利用ODBC访问WINCC的历史数据库

利用ODBC访问WINCC的历史数据库
利用ODBC访问WINCC的历史数据库

WINCC作为一个工控软件,有着工控软件的一系列特征:能显示实时数据,历史数据,生成实时数据曲线与历史数据曲线,并能生成报表。然而WINCC与其它的工控软件包有不同的地方:它的数据是保存在标准的及功能强大的Sybase SQL Anywhere数据库中,所以,我们可以像访问一般的数据库一样,通过ODBC直接访问WINCC的历史数据库。

一、通过Sybase Central 4.0访问显示数据

Wincc 在安装时就把Sysbase数据引擎与Sybase Central 4.0一同安装到系统中,你可以在Program Files\Sybase\Shared\ 中找到Sybase Central 4.0 ,你可在在其目录下\java\中发现scjview.exe,该程序功能相当于SQL server 的企业管理器。你可以通过其查看你在WinCC中的归档数据。

使用方法:

1) 运行WINCC,这时WINCC会在ODBC中添加两条数据源:

CC_FY_02-10-16_10:40:18

CC_FY_02-10-16_10:40:18R

其中CC_FY_02-10-16_10:40:18R 是可以通过Sybase Central 4.0 及别的一些工具不用用户名与密码读取的。这就是我们WinCC的历史数据库。

注意:这两条ODBC名不是一成不变的,它是结构如下

CC_FY_02-10-16_10:40:18R

CC:固有的,指明是WinCC生成的ODBC。

FY:项目名,这是我这个WinCC项目名称

02-10-16:最后一次修改的日期。

10:40:18:最后一次修改的时间。

R:表示是运行库。

2)、运行scjview.exe,点击Adaptive Server AnyWhere 7 按右键,选择Connect。将会弹出Connect配置界面。

在Identification的页面,选中ODBC SOURCE NAME 点BROWSE则会列出所有对Sybase 数据引擎的ODBC名,选择CC_FY_02-10-16_10:40:18R,点击“OK“、“OK“即可。

这时在Adaptive Server AnyWhere 7下面会出现你的计算机名,并已连通了你的WINCC历史数据库。

好了,我们现在可以查看WinCC的历史数据了。

展开:Adaptive Server AnyWhere 7(DBA)

展开:TABLE

我们现在可以看到数据库的表名与表结构了:

表名:PDE#HQZ#GAS_PRE 组成方式如下

PDE:固有

HQZ:归档名称

GAS_PRE:变量名。

表结构:有三个字段:T, V, F

T:时间

V:值

F:标志

由于没有可靠的资料可查,其F的名值表示的含义就不得而知,不过,在我的使用中,我将F值8392705作为一个合法值,在WINCC的处理中没有出过错,但别的FLAG值的含义,只能问西门子公司了。

二、利用VB编写程序访问WINCC历史数据库。

上面已明确描述了WINCC的历史数据库的结构组成与表结构,那么我们就可以通过编程访问WINCC的历史数据库。如其它通过ODBC访问的数据一样。如下面的小例子

在VB中,先引用ADO组件。并声明ADO变量。

Private cn As ADODB.Connection

Private rs As ADODB.Recordset

Const dsn = “CC_FY_02-10-16_10:40:18R”

Private sub insertData(nowV alue as double)

Dim nowtime as string

Nowtime =now

cn.Open dsn, "", ""

sqlstr=” insert into PDE#HQZ#GAS_PRE(T,V,F) V alues(…”+ Nowtime +”?,”+ nowV alue +”, 8392705) ”

cn.Execute sqlstr

cn.close

End sub

本程序中的子程序只处理了数据插入,其它读出就更为简单,与其它的ADO访问是一模一样的,这里就不多说了。

三、结语

能通过ODBC访问WINCC的历史数据,给我们提供了更多了解决办法,特别是在企业信息化平台上使用非实时数据方面,可以人为给WINCC添加正确的历史数据,使WINCC的功能更为强大。

由于ODBC名与项目的修改时间有关,所以在项目频繁变化时,请不要使用这个功能。

WinCC在启动时自动添加ODBC名,在关闭时自动删除,所以,在WINCC关闭后,不能再通过ODBC访问ODBC。

本文来自: 中国自学编程网(https://www.360docs.net/doc/3314036896.html,) 详细出处参考:https://www.360docs.net/doc/3314036896.html,/html/20070419/6927.html

WinCC的实时数据通过OPC DA记录到MS Access、MS SQL Server和Oracle数据库中的方法指南(中文)

? ???WinCC Industrial Data Bridge WinCC? ??OPC DA? MS Access?MS SQL Server Oracle Ё How to transfer process data of WinCC to MS Access,MS SQL Server and Oracle via WinCC Industrial Data Bridge and OPC DA

? Getting-Started???WinCC ? ?? ? ? ???? ??Oracle 9i????? ?? ?偸? ?? ? ??OPC DA? WinCC? MS Access? MS SQL Server? Oracle Key Words Industrial Data Bridge, OPC DA, WinCC, MS Access, MS SQL Server, Oracle A&D Service & Support Page 2-15

? ? ???:LQ&& ,QGXVWULDO 'DWD %ULGJH :LQ&&? ??23& '$? 06 $FFHVV?06 64/ 6HUYHU 2UDFOH Ё :LQ&& ,QGXVWULDO 'DWD %ULGJH?? ? ?? ??:LQ&& ,QGXVWULDO 'DWD %ULGJH :LQ&&? ??23& '$? 2UDFOH Ё ? ˉ ?? A&D Service & Support Page 3-15

? ???WinCC Industrial Data Bridge WinCC? ??OPC DA? MS Access?MS SQL Server Oracle Ё :LQ&& ,QGXVWULDO 'DWD %ULGJH?? ? WinCC/IndustrialDataBridge( ? ?) ? ? ( )? IT??? ?? ? ????? ?? ? 乚 ??OPC IT?? ?SQL ?? ?? ? ? ( Ё OPC?SQL? OLE-DB?Office? )? ? ? ?????? ???? ?? ??? ? ?? ??? (?????)?? ? OPC DA ? WinCC ⑤???? ? ?? ? ? ?? ?128? 512?2K 10K? ? ?? ? ? ? ???? ??П????“IndustrialDataBridge”?? ? (? ??OPC)???“ IndustrialDataBridge”? OPC ? ? ? ⑤ ?? П???? x??OPC ? ?? ?? ? ? ???SCADA ????? x ?? Excel Accesㄝ ?? ?г ? ?? ? ? ? x SQL ?? ?? ??? ?? ??? ??偅 ?????OPC? ?? ⑤?? ? ? ? ?/ ? ? ? ?? ?x ??? ?? ⑤?? ? ? ? ?? WinCC ?? ?? ? ?? ?? ?OPC DA ???WinAC ODK ?/ ? ?? ? ?? ? ? ?? x ? ? IT? A&D Service & Support Page 4-15

wincc中使用VBS脚本读写SQLServer数据库文件

Wincc读写SQLServer数据库 一、在数据库中建立数据库文件,文件名为“读写数据库”,在数据库中建立新的表,命名为“个人信息”分别建立编号、姓名、年龄。 二、数据库中建立表后,在wincc中建立与数据库中类型相同的变量,变量类型相同在读写数据时很重要。在图形编辑器中新建画面,并在画面中增加三个输入输出域,并连接变量。 三、添加两个按钮控件,分别命名为写数据、读数据 1、在写数据按钮中写入一下VBS脚本 wincc变量写入数据库 定义变量 Dim sCon Dim sSql Dim oRs Dim conn Dim oCom Dim Con Dim Data1, Data2, Data3 ‘读取wincc变量 Data1=HMIRuntime.tags("编号").read Data2=HMIRuntime.tags("姓名").read Data3=HMIRuntime.tags("年龄").read ‘连接数据库 Con="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=读写数据库;Data Source=.\WINCC" Set conn = CreateObject("ADODB.Connection") conn.ConnectionString = Con conn.CursorLocation = 3 conn.Open ‘写入数据库 sSql="insert into个人信息V ALUES('" & Data1 & "','" & Data2&"','"&Data3&"');" Set oRs = CreateObject("ADODB.Recordset") Set oCom = CreateObject("https://www.360docs.net/doc/3314036896.html,mand") Set oCom.ActiveConnection = conn https://www.360docs.net/doc/3314036896.html,mandType = 1 https://www.360docs.net/doc/3314036896.html,mandText = sSql Set oRs = oCom.Execute Set oRs = Nothing conn.Close Set conn = Nothing 在实际项目中需要修改的只有定义变量时增加或减少数据data的个数,Data1=HMIRuntime.tags("编号").read中的变量名,数据库的名字,以及数据库的表名 2、在读数据按钮中写入一下VBS脚本

WINCC数据库画面引用

来做了一个WinCC与数据库连接的程序,功能如下: 1、要求用户输入“实验目的”和“实验日期”,点击“建立表格”,则在数据库中创建了以“实验目的+时间”为名字的表 2、点击“连接数据库”连接上数据库,并开始写入数据 3、点击“断开数据库”则停止记录数据 做法: 通过一个数字量来判断数否记录数据,若该数字量是1则开始记录数据,否则停止。记录数据的时间间隔是1秒 在”建立表格“键入代码: Dim objConnection Dim strConnectionString Dim strSQL Dim objCommand Dim objscreen Dim obj_item Dim obj_item1 Dim biaoming Dim shjian Set shjian = HMIRuntime.Tags("shjian") Set biaoming = HMIRuntime.Tags("biaoming") Set objscreen=HMIRuntime.Screens("database") Set obj_item=objscreen.ScreenItems("IOField1") Set obj_item1=objscreen.ScreenItems("IOField") 注:不同界面的不同对象的引用方法 If shjian.Read= "" Or biaoming.Read= "" Then MsgBox "Please enter the table name and date!" Else strConnectionString = "Provider=MSDASQL;DSN=t;UID=;PWD=;" strSQL="create table " & Trim( obj_item.OutputValue ) & Trim( obj_item1.OutputValue ) & " (name varchar(64),age varchar(20))" 注:这是两个输入控件的连接方法(建立的表格) Set objConnection = CreateObject("ADODB.Connection") objConnection.ConnectionString = strConnectionString objConnection.Open Set objCommand = CreateObject("https://www.360docs.net/doc/3314036896.html,mand") With objCommand .ActiveConnection = objConnection .CommandText = strSQL End With

Wincc变量记录及报警记录优化

Wincc变量记录及报警记录优化(图) 2010-04-12 18:01 Wincc变量归档(图) 最近在一个项目上,发现Wincc项目运行一段时间后,界面的操作响应变慢了。Wincc运行Runtime 时,发现进度在55%等待时间很长,界面提示为:变量记录管理启动中。怀疑系统运行效率下降和Wincc变量记录有关。 检查变量记录,文件大小为12~20G。咨询西门子工程师,他给出的解决方案是,减小每一个变量归档的大小,减小最长变量归档。具体作法如下: 1.打开Wincc变量记录设定:

2.右击快速归档,打开归档属性:

3.设定单个分段最大大小为:100~200M,单个分段包含的时间段为:1天。这两个参数,以最先达到的为有效; 4.设定所以分段最大尺寸为:10G,最长时间为3个月。这两个参数,以最先达到的为有效; 5.设定归档备份保存位置:选择“备份组态”选项卡,选择“激活备份”,设定目标路径。

5.这里需要注意,当达到记录文件达到10G,或者达到3个月,则Wincc开始了备份。例如达到了3个月,3个月后的第一天,系统将把3个月前的第一天的记录放置到备份数据路径下,并不再连接到数据库上。而新的数据将被保存在ArchiveManager文件夹下,并被连接到数据库上。 6.如果要查询3个月前的数据,则需要在Runtime运行的情况下,打开“变量记录”窗口-》“归档组态”-》右击“快速归档”。快捷菜单中,选择“连接归档”。从备份归档文件夹下,选择要连接的归档文件。 另外,对于报警记录无法自动连接归档的情况,也可以使用6所示方法。 对于报警在报警控件中显示只有1000条的问题。报警控件限制最大报警显示条数为1000条。如果要查询之前的报警,可以使用日期方式,选择要查询的起始和结束日期,进行查询。

WINCC中使用ADO对象连接数据库 例子 常用属性 方法

在WINCC中连接数据库可以使用ADO控件进行连接数据库,但是通常都不是用的ADO控件进行连接数据库,以下讲讲winccZ中使用ADO对象连接查询数据库。以下以报警记录为例。 一、了解ADO对象 1.1ADO对象操作数据库是微软提供的一种接口。 1.2对ADO对象的访问使用CreateObject函数(详情请参看CreateObject函数资料) ADO组件的前缀是ADODB,所以访问的时候必须为ADODB.XX(X代表对象) eg: dim conn,oRs,oCom Set conn = CreateObject("ADODB.Connection") 'Connection对象 Set oRs = CreateObject("ADODB.Recordset") 'ADODB.Recordset对象 Set oCom = CreateObject("https://www.360docs.net/doc/3314036896.html,mand") 'https://www.360docs.net/doc/3314036896.html,mand命令对象 二、对象 2.1 Connection 对象 2.1.1 open 方法 语法 connection.Open ConnectionString,UserID,Password,OpengOptions 说明 ConnectionString:可选参数,字符串,包含连接信息 UserID:可选参数,字符串,包含建立连接时候用的用户名 Password:可选参数,字符串,包含建立连接时候用密码 OpenOptions:可选参数,连接打开方式 eg1:(连接数据库代码方法1,仅连接部分代码) Dim conn Dim tagDSNName Set tagDSNName = HMIRuntime.Tags("@DatasourceNameRT") Set conn = CreateObject("ADODB.Connection") conn.ConnectionString = "Provider=WinCCOLEDBProvider.1;Catalog="&tagDSNName.Read&";Data Source=.\WinCC" conn.CursorLocation = 3 conn.Open

wincc与SQL数据库交换数据

wincc与SQL数据库交换数据 2007-5-14 21:52 提问者:43494538|悬赏分:10 |浏览次数:1948次 查了一下午资料这是我写的VBS程序用来写数据到SQL数据库程序还是不能正常运行到cn.open语句时停止请各位高手指点一下万分感谢Dim strcn,cn,a,b,c Dim is_SQL,rscom Set cn=CreateObject("ADODB.Connection") Set rscom=CreateObject("ADODB.Recordset") a=HMIRuntime.Tags("text").Read b=HMIRuntime.Tags("text1").Read c=HMIRuntime.Tags("text2").Read strcn="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=banpi;Data Source=123\wincc" 'banpi是在SQL数据库建立的database,123是wincc中建立的项目 cn.ConnectionString=strcn is_SQL ="insert into panpi(yuanliao,chang,kuan) Values('"&a&"','"&b&"','"&c&"')" 'panpi是banpi数据库下的一个table cn.open '测试时程序到这里不往下走应该是连接SQL数据库出错了吧cn.Execute is_SQL

WinCC V6.2 数据库访问

WinCC V6.2 数据库访问 我们现在的WinCC教材是以WinCC V6.0 SP3为软件平台而开发的,而之后,Siemens 又推出了V6.2、V7.0版本的WinCC。目前,BU大力推的是V7.0的WinCC,我们的WinCC 教材也准备升级为V7.0版本。但从用户的角度来说,对V7.0版本的WinCC还有一个逐步接受的过程,以后,我们碰到的客户,可能很多还是使用V6.2版本的软件。所以,我们还是有必要熟悉一下WinCC V6.2。本文主要介绍WinCC V6.2的数据库访问,由于WinCC V7.0和WinCC V6.2采用的都是SQL Server 2005数据库,故本文对了解WinCC V7.0的数据库访问也是有帮助的。 (一)若采用WinCC V6.2,原来的教材中有关操作和界面的变化 1. 打开SQL Server管理工具 SQL Server 2005和SQL Server 2000在界面上还是有很大不同的,原来的企业管理器变成了SQL Server Management Studio (SSMS)。 图1. 启动SSMS 2. 选择身份认证方式: WinCC 系统在SQL Server中注册了自己的账户,如WinCCAdmin、WinCCConnect等,所以,WinCC使用到了SQL Server的认证方式。外部程序访问数据库时,可以采用Windows 集成的认证方式。

图2. 选择身份认证方式 图3. WinCC在SQL Server中注册的用户3. 查看ValueID和ValueName的对应关系

4. 查看组态的消息 5. 查看归档片段的消息

WINCC报警变量记录数据查询方法

按时间查询报警记录 用到控件为listView,textbox,progctrl,ImageComboCtrl Sub X6309X94AE1X0000X59CB_X6309X94AE1X0000X0000_X6309X94AE1X0000X005 8_X6309X94AE1X00009_OnClick(ByVal Item) Dim sPro Dim sDsn Dim sSer Dim sCon Dim sSql Dim oRs Dim conn Dim oCom Dim oItem Dim comItem Dim m, n, s Dim oList Dim T1,T2,T3,T4,T5,T6,record1,record2 Dim a,b Set oList = ScreenItems("ListView1") Set T1=ScreenItems("T1") Set T2=ScreenItems("T2") Set T6=ScreenItems("2") Set T3=ScreenItems("3")

Set T4=ScreenItems("4") Set T5=ScreenItems("pro") Set record1=ScreenItems("5") Set record2=ScreenItems("6") oList.View =3 oList.ListItems.Clear https://www.360docs.net/doc/3314036896.html,boItems.Clear https://www.360docs.net/doc/3314036896.html,boItems.Clear sPro = "Provider=WinCCOLEDBProvider.1;" sDsn = "Catalog=CC_HJ_07_08_19_17_28_13R;" sSer = "Data Source=.\WINCC" sCon = sPro + sDsn + sSer sSql = "ALARMVIEW:Select * FROM AlgViewCHT WHERE DateTime>'"+Trim(T1.Text)+"' AND DateTime<'"+Trim(T2.Text)+"'" Set conn = CreateObject("ADODB.Connection") conn.ConnectionString = sCon conn.CursorLocation = 3 conn.Open Set oRs = CreateObject("ADODB.Recordset") Set oCom = CreateObject("https://www.360docs.net/doc/3314036896.html,mand")

wincc的ODBC连接

对WinCC的远程ODBC连接 显示订货号 问题: WinCC V5.1版本的标准设置中,不可以设置ODBC连接。它被用来通过MS Access, MS Query 等访问WinCC数据库。需要注意哪些设置? 解答: WinCC 站方面的准备(如果要访问运行系统的数据库,必须启动WinCC 运行系统)。打开“Sybase Central”,确定WinCC的数据库名。 图1:启动“Sybase Central” 选择菜单选项“工具> 连接”。在打开的掩码中按以下输入 用户ID:dba 口令:sql

图2:登录到数据库 在Sybase窗口中,可看到WinCC站名在窗口左边。点击+ 图标放大画面。现在可看到2个数据库。记住想要进行远程访问的数据库名。以RT 结尾的数据库为运行系统数据库,其它的为CS数据库。 图3a: 确定数据库名 鼠标右键点击所要数据库的属性,也可以选择数据库名并将它复制到剪贴板。如果这样做并将

名字储存在文本文件中,可以避免符号使用中的错误。(图3b)。 图3b:复制数据库名到剪贴板 远程站上的必要设置(另一台计算机)。 从控制面板中启动“数据源(ODBC)” (Windows NT)或通过“启动> 程序> ODBC数据管理器”(Windows 2000)启动。

图4:ODBC窗口中的设置 切换到“系统DSN”标签并选择“添加”(在此需注意“用户DSN”与“系统DSN”间的不同。有关于它们的解释在同窗口中的蓝色文本框中) 图5:选择驱动程序“Adaptive Server Anywhere 7.0”

在“ODBC”标签中,输入一个独有的名,例如在数据库中的名(但它也可以是所选择的其他名字)。必须在“延迟AutoCommit直到语句关闭”下打勾,以便在关闭一个链接着的表格时传送所做的改变。 图6:ODBC标签中的设置 请注册如下:(图7): 用户ID:dba 口令:sql

WINCC连接远程SQL

WINCC连接远程SQL 前端时间帮朋友用WINCC实现一个功能,需要用到连接远程SQL数据库的地方,本来以为会很简单的,把连接SQL数据库的脚本改成远程计算机的名称或者IP地址就好了,在家里用虚拟机测试的时候,发现没那么简单,最后折腾了大半天,才终于给搞好了。把折腾的步骤总结测试一下,这里给以后需要用到的朋友参考一下吧。其实主要还是SQL服务器需要开启远程访问功能,一边搜索一边测试,才弄好的。 1、远程服务器用虚拟机+WIN7+SQL2008,系统和软件全新安装,安装后,创建一个名位:SQLTEST的数据库,然后创建一个TALBETEST的表格,表格两列分别为int类型的ID和real类型的REALT,并插入两行数据用作测试。 2、添加一个用户用作远程登录,用户名:rem,密码:123456,并在用户映射属性里面勾选对应的数据库和属性,这里只设置允许读写的选项。

3、开始菜单-SQL Server文件夹-配置工具下打开SQL Server配置管理 器,开启TCP/IP远程访问,并设置远程访问端口。 里面的服务配置里面启用TCPIP协议:

IPALL就可以了。

4、防火墙设置。如果在远程电脑使用ssms测试连接不上,那就需要设置一下WIN7的防火墙了,在防火墙的高级设置里面,入站规则和出站规则,分别加入1433的端口允许,下图以出站规则为例。你也可以直接关闭防火墙, 这样就不用设置了

访问类型选择端口,点下一步 端口根据上面设置的,这里是1433,然后点下一步

操作里面选择允许连接,然后点下一步 配置文件全选,点下一步

WinCC实现声音报警的方法

#include "apdefap.h" int gscAction( void ) { #pragma code("Winmm.dll") VOID WINAPI PlaySoundA(char* pszSound,char* hmode,DWORD dwFlag); #pragma code( ) if (GetTagByte("TI101")>100) {PlaySoundA("C:\\\\Program Files\\\\Windows NT\\\\Pinball\\\\SOUND36.WAV",NULL,1);} return 0; } 报警可以用以下两种实现方法: 1、建一个全局脚本,时基为2S #include "apdefap.h" int gscAction( void ) { #pragma code("Winmm.dll") VOID WINAPI PlaySoundA(char* pszSound,char* hmode,DWORD dwFlag); #pragma code( ) if (GetTagByte("TAG")==1) 或if (GetTagByte("TAG")>500) {PlaySoundA("d:\\ringout.wav",NULL,1);} return 0; } 用以上程序就可以实现单个变量报警,开关量为1或模似量大于500都可以报警,

用户可以根据自己的情况改变以上数值,如果有多个变量可以增加多个if . 2、通过报警记录,先在报警记录中组态好报警记录 建一个全局脚本,时基为2S #include "apdefap.h" int gscAction( void ) { MSG_RTDATA_STRUCT mRT; int i; char* pszToken; //Now is my code #pragma code("Winmm.dll") BOOL WINAPI sndPlaySoundA(char* szWave,DWORD dwFlag); #pragma code() DWORD SND_ASYNC=0x0001; DWORD SND_LOOP=0x0008; DWORD alarmsum,alarmunack; LPCMN_ERROR errorunack,errorsum; #pragma code("msrtcli.dll") #pragma code() LPDWORD lpdwServiceID; MSG_SERVICE_NOTIFY_PROC lpfnNotifyProc;

利用ODBC访问WINCC的历史数据库

WINCC作为一个工控软件,有着工控软件的一系列特征:能显示实时数据,历史数据,生成实时数据曲线与历史数据曲线,并能生成报表。然而WINCC与其它的工控软件包有不同的地方:它的数据是保存在标准的及功能强大的Sybase SQL Anywhere数据库中,所以,我们可以像访问一般的数据库一样,通过ODBC直接访问WINCC的历史数据库。 一、通过Sybase Central 4.0访问显示数据 Wincc 在安装时就把Sysbase数据引擎与Sybase Central 4.0一同安装到系统中,你可以在Program Files\Sybase\Shared\ 中找到Sybase Central 4.0 ,你可在在其目录下\java\中发现scjview.exe,该程序功能相当于SQL server 的企业管理器。你可以通过其查看你在WinCC中的归档数据。 使用方法: 1) 运行WINCC,这时WINCC会在ODBC中添加两条数据源: CC_FY_02-10-16_10:40:18 CC_FY_02-10-16_10:40:18R 其中CC_FY_02-10-16_10:40:18R 是可以通过Sybase Central 4.0 及别的一些工具不用用户名与密码读取的。这就是我们WinCC的历史数据库。 注意:这两条ODBC名不是一成不变的,它是结构如下 CC_FY_02-10-16_10:40:18R CC:固有的,指明是WinCC生成的ODBC。 FY:项目名,这是我这个WinCC项目名称 02-10-16:最后一次修改的日期。 10:40:18:最后一次修改的时间。 R:表示是运行库。 2)、运行scjview.exe,点击Adaptive Server AnyWhere 7 按右键,选择Connect。将会弹出Connect配置界面。 在Identification的页面,选中ODBC SOURCE NAME 点BROWSE则会列出所有对Sybase 数据引擎的ODBC名,选择CC_FY_02-10-16_10:40:18R,点击“OK“、“OK“即可。 这时在Adaptive Server AnyWhere 7下面会出现你的计算机名,并已连通了你的WINCC历史数据库。

WinCCV7中如何能生成操作员地操作记录簿

WinCC V7中如何生成操作员的操作记录 1.操作员输入消息的分类 对于某些重要的对象和数据进行操作,根据需要可以在操作过程中触发操作员输入消息,操作员输入消息根据操作的对象和操作类型的不同,分为以下三类: a. “图形编辑器”中相应对象的属性中有“操作员输入消息”选项,例如:在 I/O 域中输入数值,文本列表中选择文本等。 对象属性功能支持的对象类型 操作员输入消息定义操作后是否输 出消息 I/O 域、文本列表、组合框、列表框、复选框、 单选框、滚动条 操作员激活报表定义是否记录操作 的原因 I/O 域、文本列表、组合框、列表框、滚动条 b. 对于操作可选图形 WinCC 对象,其属性中没有“操作员输入消息”选项,例如:对于按钮的操作等。 c. 在报警控件中对于消息的操作,例如确认锁定/释放消息等。 1.1如何限制用户对画面对象的操作 如上图中,通过按钮PIC1切换画面。如果需要限定某些操作员不能切换画面,就可以在按钮属性“其他”的“授权”中指定操作此对象所需要的权限。然后,在“用户管理器”中创建新用户,并分配相应权限即可。这样,如果没有用户登陆,或登陆用户没有按钮预先定义的授权,则无法操作按钮。

需要注意的是,在“用户管理器”中列出的1--17号权限的名称,仅是权限编号的别名而已,没有任何实际的功能。例如,画面中按钮1需要1号权限,按钮2需要2号权限…….按钮17需要17号权限;这样,只要用户管理器中的用户分配了相应的权限编号,如1、3、13号权限,那么这个用户只能操作1、3、13号按钮,其他按钮则无法操作。 在按钮的“事件”中插入以下脚本可以弹出用户登陆的对话框。 #pragma code("useadmin.dll") #include "pwrt_api.h" #pragma code() PWRTLogin('1'); //登陆C脚本 在按钮的“事件”中插入以下脚本可以注销当前登陆的用户。 #pragma code("useadmin.dll") #include "pwrt_api.h" #pragma code() PWRTLogout(); //注销C脚本 也可以在项目属性中,为用户登陆的对话框分配热键。 1.2 记录操作员登陆/注销的消息

Wincc数据库培训教程(1)

https://www.360docs.net/doc/3314036896.html,
WinCC V5&V6 Database
WinCC的数据库
? WinCC V5.x
Sybase Anywhere 7 (最好的小型数据库)
? WinCC V6.x
MicroSoft SQL Server 2000 (中型数据库)
A&D CS HMI Zhu yu
2003.8

https://www.360docs.net/doc/3314036896.html,
WinCC V5&V6 Database
WinCC V5.x的数据库
? ? ? ? 变量记录和消息记录 数据库的结构 数据的存储方式 数据库的访问方式
A&D CS HMI Zhu yu
2003.8

https://www.360docs.net/doc/3314036896.html,
WinCC V5&V6 Database
数据库管理工具
? SCView:Sybase Central View
数据库管理工具,直接在“开始\运行”调用
? ISQL:Interactive SQL Sybase Anywhere的SQL工具,可以在SCView中直接调用
以窗口或命令行形式运行
A&D CS HMI Zhu yu
2003.8

https://www.360docs.net/doc/3314036896.html,
WinCC V5&V6 Database
数据库的一般结构
? 关系型数据库
- 由表(Table)组成,表的纵向为域(Field),横 向为记录(Record) 表间可以用相同的指建立连接,拼成虚拟的新表, 称为视图(View) 表或视图可以通过SQL(结构化查询语言)进行 检索和操作


A&D CS HMI Zhu yu
2003.8

【WinCC】使用VBS读取报警记录数据到EXCEL

【WinCC】使用VBS读取报警记录数据到EXCEL 1概述 介绍如何在WinCC项目中使用VBS脚本读取报警记录归档数据,并把获取的数据保存成新的Excel文件。 2软件环境 Windows XP SP3中文版、WinCC7.0 SP2 ASIA、Microsoft office Excel 2007 3访问原理 WinCC报警记录数据是以压缩的形式存储在数据库中,需要通过WinCC连通性软件包提供的OLE-DB接口才能够解压并读取这些数据。 当使用OLE-DB方式访问数据库时关键需要注意连接字符串的写法和查询语句的格式。连接字符串格式为“Provider=WinCCOLEDBProvider.1; Catalog= ***; Data Source= ***;”,其中:Catalog为WinCC运行数据库的名称,当修改项目名称或在其它计算机上打开原项目时, Catalog会发生变化。建议使用WinCC内部变量“@DatasourceNameRT”获得当前项目的Catalog。Data Source 为服务器名称,格式为“<计算机名称>\WinCC”。 3.1 查询语句格式 查询语句的格式要求如下: AlARMVIEW:SELECT * FROM [ WHERE……optional ] 其中参数信息如下所示: ViewName:数据库表名。必须用需要的语言指定该表。 比如:中文字符表名为:ALGVIEWCHT,英文字符表明为:ALGVIEWENU等。 Condition:为过滤标准。 详细说明请参见下表:

表1查询参数表 3.2查询结果 查询结果作为记录集返回。可以根据需要有选择的返回特定的数据集。例如:oRs.Fields(0).Value 返回的是消息的编号;oRs.Fields(2).Value 返回的是消息的时间戳;oRs.Fields(37).Value返回的是消息文本的内容。记录集的结构如下表所示:

wincc访问Acess数据库

wincc访问Acess数据库 我用的时wincc6.2,怎样去读写另一台电脑上的一个Acess数据库中的内容? 最佳答案 WINCC的VBS可以很好的操作EXCEL,操作ACCESS也没有问题。 Wincc用VBS脚本读写ACESS数据库 首先要进入系统的数据库设定。设定完后,将ACess数据库的路径存入Wincc中对应的一个变量。然后在用到数据库内容的地方,用 SubOnOpen() ”“打开时检查一下系统路径 IfTrim(HMIRuntime.Tags(“Db_Path”).Read)=““Then MsgBox”请检查系统数据库路径,系统检测到不正常!现在路径是:”&HMIRuntime.Tags(“Db_Path”).Read Else ”“定义combol对象 Dimcom Setcom=ScreenItems(“combolbox_receipe”) com.Clear

com.AddItem”请选择配方...”,0 ”“首先打开数据库 DimConn,ResultSet SetConn=CreateObject(“ADODB.Connection”) SetResultSet=CreateObject(“ADODB.Recordset”) Conn.open”Provider=Microsoft.Jet.OLEDB.4.0;DataSource=“& HMIRuntime.Tags(“Db_Path”).Read ResultSet.open”Select*Fromrecipe”,Conn,1,1 ”“依次读出数据库中配方的数量 DoWhileNotResultSet.EOF com.AddItemResultSet(“name”).value,ResultSet(“Id”).valuE ResultSet.MoveNext Loop com.ListIndex=0 SetResultSet=Null”“结果集置空 SetConn=Null”“连接置空 ResultSet.Close”“结果集关闭 Conn.close”“连接关闭

WINCC与数据库连接

WinCC与数据库连接 2009-06-02 16:03 近来做了一个WinCC与数据库连接的程序,功能如下: 1、要求用户输入“实验目的”和“实验日期”,点击“建立表格”,则在数据库中创建了以“实验目的+时间”为名字的表 2、点击“连接数据库”连接上数据库,并开始写入数据 3、点击“断开数据库”则停止记录数据 做法: 通过一个数字量来判断数否记录数据,若该数字量是1则开始记录数据,否则停止。记录数据的时间间隔是1秒 在”建立表格“键入代码: Dim objConnection Dim strConnectionString Dim strSQL Dim objCommand Dim objscreen Dim obj_item Dim obj_item1 Dim biaoming Dim shjian Set shjian = HMIRuntime.Tags("shjian") Set biaoming = HMIRuntime.Tags("biaoming") Set objscreen=HMIRuntime.Screens("database") Set obj_item=objscreen.ScreenItems("IOField1") Set obj_item1=objscreen.ScreenItems("IOField") 注:不同界面的不同对象的引用方法 If shjian.Read= "" Or biaoming.Read= "" Then MsgBox "Please enter the table name and date!" Else strConnectionString = "Provider=MSDASQL;DSN=t;UID=;PWD=;" strSQL="create table " & Trim( obj_item.OutputValue ) & Trim( obj_item1.OutputValue ) & " (name varchar(64),age varchar(20))" 注:这是两个输入控件的连接方法(建立的表格)

Wincc报警文本记录

报警记录 在Wincc中可以组态事件的报警,组态事件报警基本上可以分为两个步骤。 1.在报警编辑器中设置报警的各种类别,包括上限下限值触发的模拟量报警,还有通过消 息变量触发的报警例如:开关量的报警。 2.通过对报警控件的设置实现报警显示。在画面编辑器中插入报警记录控件,报警控件具 有很多的功能。包括报警显示,对报警的确认,报警的自动归档,报警的查询等等。 首先组态一个模拟量报警,并通过此实例来说明状态变量,确认变量的定义及用法。在下一个实例中说明消息变量的使用。 模拟量报警 新建个项目命名为alarmtext点击创建按扭 打开报警记录编辑器,我们可以看到报警记录的主画面,包括消息块,消息类别,组消息,

和归档组态。 首先组态报警。组态报警就是设置报警消息的一些内容,包括时间,日期。报警地点,报警消息,产生报警的当前值以及报警的类别!报警消息的时间,日期对应消息块中的系统块。报警地点,报警消息对应消息块的用户文本块。当前值对应过程值块。故障报警对应消息类别。所以我们开始建立组态。 一.添加系统快。在消息块的系统快点击右击添加/删除

添加系统快我们可以看到系统已将编号,日期,时间选中。我们还可以添加左侧的系统快。但我们只使用编号,日期,时间选项。点击确定按钮。 我们看到所选的系统快已经显示出来

二.添加用户文本块。用户文本块采用同样的方法添加所需的块。我们采取默认选择的错误点和消息文本. 点击确定订按钮。 为了能使报警信息显示更多内容修改消息文本和错误点的字符长度改为30.双击消息文本,错误点修改。

。 三.添加过程值块 将过程值块中的过程值1,过程值2,过程值3添加到右侧如图。

自动化控制技术-Wincc中VBS读写SQLServer数据库(一)

自动化控制技术-Wincc中VBS读写SQLServer数据库(一) 一种通用访问SQL Server数据库的方式 本文全面介绍了在Wincc中如何通过使用VBS脚本对SQL Server数据库进行读写,为Wincc在非标准功能的使用上,提供一个基础。 【关键词】TIA;Wincc;自控;VBS;SQL Server;MSFlexGrid;Microsoft 1Wincc数据库简介 在西门子Wincc组态软件中,软件组态信息的存储以及项目中使用到的历史数据的存储,采用的数据库为SQL Server数据库。从Wincc 6.2版本以后,随着数据库系统安全策略的提高,软件组态信息的存储以及历史数据的存储是将数据通过压缩的形式进行存储,即加密形式存储。 这样一来,如果想访问Wincc的数据,需要Wincc系统中增加一套Connectivity授权(工业数据桥)。VBS通过Connectivity访问历史数据和标准的SQL语法有很大不同,这种形式,我们会在“自动化控制技术-Wincc中VBS读写SQLServer数据库(二)”中进行介绍。本文将首先介绍VBS如何访问我们自己建立的数据库。

2软件环境 1、操作系统:Win7 64位旗舰版 2、Wincc V7.3 3、Microsoft SQL Server 2008 R2 4、Microsoft Office 2007 5、Visual Basic 6.0 3建立数据库 1、打开数据库管理器 在开始之前,先在数据库中建立一个我们需要用到的数据库。依次点击“开始- Microsoft SQL Server 2008 R2- SQL Server Management Studio”打开数据库管理器,路径如下图 2、连接数据库服务器 打开数据库管理器后,需要选择本地数据库库服务器,如果本地计算机只有单机Wincc系统,在Server name选项中是默认的本地服务器的名称。如果是客户端,则需要在Server name后面的下拉菜单中选择数据库服务器的名称。点击“Connect”按钮,链接数据库服务器。

在WinCC中如何使用VBS读取报警记录数据到EXCEL

在WinCC中如何使用VBS读取报警记录数据到EXCEL 1概述 介绍如何在WinCC项目中使用VBS脚本读取报警记录归档数据,并把获取的数据保存成新的Excel文件。 2软件环境 Windows XP SP3中文版、WinCC7.0 SP2 ASIA、Microsoft office Excel 2007 3访问原理 WinCC报警记录数据是以压缩的形式存储在数据库中,需要通过WinCC连通性软件包提供的OLE-DB接口才能够解压并读取这些数据。关于WinCC连通性软件包的详细信息请参考连接:37436159 当使用OLE-DB方式访问数据库时关键需要注意连接字符串的写法和查询语句的格式。连接字符串格式为“Provider= WinCCOLEDBProvider.1; Catalog= ***; Data Source= ***;”,其中:Catalog为WinCC运行数据库的名称,当修改项目名称或在其它计算机上打开原项目时, Catalog会发生变化。建议使用WinCC内部变量 “@DatasourceNameRT” 获得当前项目的Catalog。Data Source 为服务器名称,格式为“<计算机名称>\WinCC”。3.1 查询语句格式 查询语句的格式要求如下: AlARMVIEW:SELECT * FROM [ WHERE……optional ] 其中参数信息如下所示: ViewName:数据库表名。必须用需要的语言指定该表。 比如:中文字符表名为:ALGVIEWCHT,英文字符表明为:ALGVIEWENU等。 Condition:为过滤标准。 详细说明请参见下表:

相关文档
最新文档