WinCC 使用VB或VBS访问WINCC6.0历史数据库

WinCC 使用VB或VBS访问WINCC6.0历史数据库
WinCC 使用VB或VBS访问WINCC6.0历史数据库

WinCC 使用VB或VBS访问WINCC6.0历史数据库

(2011-04-18 13:56:52)

从WINCC6.0开始,就开始采用SQL3000SP3做为WINCC的后台数据库了。而这个SQL2000SP3是由SIEMENS为WINCC做了二次开发的,采用了一些独有的技术,一些是我们知道的,一些是我们所不知道的。所以当我们打开SQL管理器和用高级语言访问时,和常规的SQL访问的方法是有一些出入的。即使我们能够很轻易的访问ACCESS。普通的SQL2000的数据库,不见的你就能顺利的访问到WINCC 的历史数据。

官方的资料显示:

1、WINCC的数据有设计时数据库和运行时数据库,分别放在相关的目录,对于数据使用者而言,我们知道就可以了。设计时数据库我们了解没有什么意义。但运行时数据库至少我们要知道它的名字,它的名字一般是“CC_工程名_年_月_日_时_分_秒R”,这个对于我们使用者而言,是很重要的的,无论你准备以DSN 或OLEDB的方式访问数据库,你都需要它。如果你实在不知道它的名,你可以将WINCC激活,然后在“ODBC管理器”或“SQL企业管理器”下的“DATABASE”可以看到它,它就在那里.....

2、运行时库的表的问题

其实,这个是很多的用户很关心的问题。常规的使用过高级语言访问SQL

的技术人员都知道,很多的SQL语句,如SELECT 、INSERT INTO等等,都需要指明在某一库的表中对它进行操作。因此,这个表的问题可能就是你访问SQL

的拦路虎。先告诉大家:WINCC6.0的SQL库操作是不需要表名的,因为他有自己定义的SQL语句。其实,WINCC在运行时,根据WINCC的设置,数据归档是以一定时间做为基准,形成数据片段。大体上有三个用户需要了解的表:

1:ARCHIVE(用户归档记录)

2:TAGPRESSED(TAGUNPRESSED)(压缩/非压缩变量归档记录)

3:MSARCLONG(报警记录)

事实上,我们在操作数据时,还是并不能直接使用常规的SQL来操作这些表,甚至不允许修改它,MSARCLONG情况好一些,允许插入/修改等。TAGPRESSED的数据和WINCC内设置的变量管理下的归档是对应的、MSARCLONG

的数据和WINCC内设置的报警记录下的设置是对应的、 ARCHIVE的数据和WINCC 内的用户归档数据是对应的.

一般的,当我们使用WINCC制作在线表格和在线趋势使用的都是变量管理器下的归档。因此,我们打开TAGPRESSED的表,可以看到的一些都是变量记录的内容。通常也是在这里归档了用户的生产数据。因此,我们访问WINCC历史数据库,实际上是访问这里的变量记录。

3、访问历史数据库的方法/连接字符/SQL语句

访问数据库的方法:

A:WINCCOLEDB访问压缩归档,也可以访问非压缩归档

B:MS ADO/OLEDB只能访问非压缩归档

对于这种说法,我只严正了WINCCOLEDB的方法,后者没有测试.

连接字符:

WINCCOLEDB的连接字符为(本地):

provider=winccoledbprovider.1,catalog=.\wincc,data source= 数据库名,user id=DBA,password=SQL

现在开始讲访问用户归档,过程值归档和消息归档的方法和语法:

1、查询过程值归档和消息归档的连接字符串

SET CON=Createobject("adodb.connection")

con.open

Provider=winccoledbprovider.1;catalog=cc_工程名_年_月_日_时_分_秒R,data source=.\wincc,user id=DBA,password=SQL

说明:按照WINCC规定的连接字符串,创建到数据库的连接,并且打开这个连接.其中,我们经常需要修改的是Catalog的值,这个值根据不同的工程和创建的时间不同,我们可以在ODBC管理器下或SQL的库中看到。

查询过程值归档和用户归档的SQL语句

TAG:R,'变量名1','起始时间','终止时间' where条件

说明:WHERE子句只对用户归档有效,对过程值归档无效.

变量名:这个变量名要和WINCC下的变量管理器的过程值归档名要一致.其格式为:归档名/变量名.

起始时间和终止时间可以用相对时间和绝对时间,一般绝对时间比较容易理解,就是从开始时间到终止时间就好了.例如,查询从2006/3/12 12:20:20秒到2006/3/13/ 12:20:20秒的数据,则应该写成'2006-3-12 12:20:20'

'2006-3-13 12:20:20'就好了。

当然拉,也可以用相对时间格式,就是比目前时间的相对值,有个前移后移的问题,很简单的。

这里特别需要注意的是:记录到SQL数据库的时间都是格林威治时间,和中国的东8区有8个小时的时间差,也就是说记录的时间比本机PC时区晚8小时,这一点我们在测试是尤其重要。因为你是时间不正确,可能数据就没有显示,而导致你怀疑连接/命令/记录的有效性访问SQL数据库的方法过程描述。这和访问普通的数据库的方法大致上是相同,唯一的就是由于WINCC的数据是经过了压缩的。

1、定义连接字符串,就是前面所讲到的。

2、创建ADODB的CONNECTION对象,在VB中直接用

CREATEOBJECT(ADODB.CONNECTION)函数,在ASP的VB脚本中,需要使用内置SERVER对象创建CONNECTIONG对象。

3、打开到数据库的连接,使用CONNECTION的OPEN函数

4、创建COMMAND对象,并定义COMMAND对象采用用CMDTEXT方法,表明将要使用命令文本的方式来获取数据记录。

5、创建RECORDSET对象,并用COMMAND对象的返回记录集填充这个记录集。

6、RECORDSET对象的数据就可以被你任意的使用了

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 常用脚本

DeactivateRTProject ();//退出系统 #pragma code("useadmin.dll") #include"PWRT_api.h" #pragma code() char* CUser=NULL; CUser=GetTagChar("@CurrentUser"); if (strlen(CUser)==0) { PWRTSilentLogin("operator","123456");//用户“operator",密码"123456”登录} OpenPicture("@MAIN.pdl"); } 在画面中结合不同按钮来组态下面 C 操作 Login Action for login (for example, "mouse click" event): #pragma code ("useadmin.dll") #include "PWRT_api.h" #pragma code() PWRTLogin('c'); Logout Action for logout (for example, "mouse click" event): #pragma code ("useadmin.dll") #include "PWRT_api.h" #pragma code() PWRTLogout(); PWRTLogin 参数必须是CHAR 字符。它指定了显示对话框的监视器。如果只使用一个监视器,那么保留默认参数“c”或者指定“1”。 注意 可以使用PASSLoginDialog 函数来代替PWRTLogin 或者PWRTLogout 函数。这个函数需要和函数PWRTLogin 相同的参数。PWRTLogin 和PASSLoginDialog 函数可以调用登录界面,在上面可以登录或者注销。函数PWRTLogout 被正确执行并且不调用登录界面。 正确执行后这两个函数都返回“1”。然而,登录不会等到显示对话框之后。 注意 如果使用多个显示器,为了能使登录对话框显示在合适的显示器上,需要WinCC Basic Process Control (OS项目编辑器)。 不使用WinCC Basic Process Control 时,可以指定显示器编号,但登录对话框始终显示在第一个显示器上。 #include"apdefap.h"//调用函数代码 void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)

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/c38774949.html,mand") Set oCom.ActiveConnection = conn https://www.360docs.net/doc/c38774949.html,mandType = 1 https://www.360docs.net/doc/c38774949.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/c38774949.html,mand") With objCommand .ActiveConnection = objConnection .CommandText = strSQL End With

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/c38774949.html,mand") 'https://www.360docs.net/doc/c38774949.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功能使用总结

1、Wincc online trend控件实现多条曲线查询 项目要求,查询任意时段内的两条曲线的历史数据 1、首先在变量记录中设置需要记录的变量,如果需要在一个控件内显示两条曲线,做数据 归档时,归档属性最好是一致的,归档属性不一样是否会出现问题,这个没测试,有兴趣的可以测试一下。 2、数据记录设置OK后,新建画面插入online trend控件,我的项目需要把趋势打印出来, 所以把控件的工具栏全部隐藏。 3、双击online trend控件,添加需要显示的归档变量。选择公共X,Y轴等参数。坐标显示 根据自己使用选择,基本上不用设置太多参数。 4、添加需要显示的历史归档变量后,就需要写脚本了,西门子工控网论坛有实例,实例提 示针对于一条曲线时使用,咨询西门子技术支持,如果需要同时显示两条曲线时,需要对两条曲线分别进行设置属性“控件.index=0,1”,但是测试其实只设置index=0的起始及结束时间就OK,就是论坛给的实例不是只针对于一条曲线,两条曲线时同样适用,再多的曲线就没测试了。 5、西门子默认的时间格式为“MM-DD-YYYY HH-MM-SS”格式,所以在设置趋势起始及 结束时间时需要注意。 6、注:导入归档数据需要一定的时间,建议按钮触发。尝试在画面打开时触发脚本,有的 时候会出现历史数据加载不上来。 7、脚本如下,仅供参考 Dim objConnection Dim strConnectionString Dim strSQL Dim objrs Dim chaxun '定义曲线控件 Dim TREND Dim strval_1

Dim strval_2 Dim strval_t1 Dim strval_t2 '初始化程序,省略N行。。。。。。。。。。。。。。。。。。。。。。。。。。。。 '初始化程序,省略N行。。。。。。。。。。。。。。。。。。。。。。。。。。。。 chaxun=HMIRuntime.Tags("管号查询输入").Read strConnectionString = "Provider=MSDASQL;DSN=REPORT;UID=;PWD=;" strSQL = "select * from report where guanhao='"&chaxun&"';" Set objConnection = CreateObject("ADODB.Connection") objConnection.ConnectionString = strConnectionString objConnection.Open Set objrs = CreateObject("ADODB.RecordSet") objrs.open strSQL,objConnection /赋值程序,省略,,,,,,,,,,,,,,,,,,,,,,/ /赋值程序,省略,,,,,,,,,,,,,,,,,,,,,,/ objrs.close Set objrs = Nothing objConnection.Close Set objConnection = Nothing '趋势时间设定 Set trend = ScreenItems("控件1") strval_r=HMIRuntime.Tags("测试日期_read").Read strval_t1=HMIRuntime.Tags("开始时间_read").Read strval_t2=HMIRuntime.Tags("测试时间_read").Read

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脚本个人经验总结

语音报警的组态 在工业现场安全是极其重要的,无论从那个角度讲我们应该利用一切手段减少故障的发生。在故障已经发生的时候,应该在第一时间以多种方式通知操作人员有故障发生。现代微处理计算机的处理速度可以完全胜任对于图形,语音地同时处理。所以我们可以利用计算机的声卡和音箱在有故障发生的时候产生语言报警,但是问题是WinCC本身并不能产生语音的功能,而且其内部的上千个函数也没有提供处理声音的函数。解决这个问题的方法归功于微软开发的WinCC与操作系统地完美结合,因为在WinCC中可以直接调用Windows的API函数。实现的具体C脚本代码如下: long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) { #pragma code(\"Winmm.dll\") void WINAPI PlaySoundA(char *pszSound,char *hmode,DWORD dwflay); #pragma code() if(GetTagBit(\"112排泥备泵故障\")) PlaySoundA(\"d:\\\\\\\\winnt\\\\\\\\media\\\\\\\\Mircosoft sound.wav\",NULL,8); return 1020; }重新启动后,不使用登录窗口如何以一个缺省用户的身份自动登录?怎样确保运行期间有个缺省用户始终处于登入状态?即使另外一个用户已经预先退出。 解答: 重新启动以及在运行期间,您希望HMI系统达到最小的实用性而不使用登录窗口。然而,对于高级操作,登录功能应当保留。此外,如果没有用户登录,则有一个缺省的用户自动登录。缺省用户的权限可以在用户管理器中根据需要设定。 可使用下面的C脚本执行此项功能,请按照下列步骤进行: 将附件中的函数“Silentlogin.pas”复制到项目中的“PAS”子文件夹中。 在项目中选择Global Script > C Editor > Actions > Global Actions并打开全局动作(Global Action)“Silentlogin.pas”。 在“PWRTSilentLogin (“Login”,“Password”);”一行中,用缺省的用户名替换用户“Login”,用缺省用户的口令代替“Password”。 无限循环命令 static int a=0, b=0; if(GetTagBit("BINi_pictu_dyn_09")) { if(b==0) a++; else a--; if(a==7) b=1; if(a==0) b=0; }

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脚本案例保留

WinCC脚本案例保留 2010-09-16 16:44 最近做一个WinCC跟ERP通讯的一个小项目,将脚本语言保留下来,以备不时之需! 仅仅是保留,各位看官如发现不妥之处请加以指教. 1.通过扫描枪扫描到ID号传给PLC,WinCC读取到ID号从ERP数据库中查找相关数据,写回到PLC,并给PLC一个写完成确认信号.(数据库是SqlServer2000) Dim DB240trigger,db241trigger db240trigger=HMIRuntime.Tags("db240itrigger").Read db241trigger=HMIRuntime.Tags("DB241itrigger").Read Dim ss,str str=HMIRuntime.Tags("DB240szcoil_ID").Read ss=CStr(str) If (db240trigger=1 And db241trigger=0 ) Then Dim sPro,sDsn,sSer,sCon,sSql Dim oRsMaterial,conn,oCom,oItem,oRsSCHEMA Dim database,server,uid,pwd sCon ="driver=sql server;server=10.51.103.96;DATABASE=brgs_release;uid=sa;pwd=pasword" Set conn = CreateObject("ADODB.Connection") conn.ConnectionString = sCon conn.Open Set oRsMaterial = CreateObject("ADODB.Recordset") sSql= "SELECT * FROM dbo.BRGS_GP_Material where MkNo='" & CStr(ss) & "'" oRsMaterial.open ssql,conn,1,1 Dim m,n m=oRsMaterial.recordcount If m<>1 Then MsgBox "这个ID号找不到唯一的一条参数信息,请手动输入信息!" Exit Function End If Dim sCon2,sSql2

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

VB操作wincc脚本心得

Vbs 操作wincc画面脚本总结 一:不使用变量单纯的操作界面 1.操作某个画面中控件的属性如Home1.Pdl(总窗体)下的画面窗口2(画面窗口) Sub OnClick(ByVal Item) Dim objCircle Dim screenname Dim pwname Set objCircle= ScreenItems("圆1" ) objCircle.Radius = 60 Set screenname=HMIRuntime.Screens("Home1") //获取要操作的窗体 Set pwname=screenname.ScreenItems("画面窗口2") //获取要操作的控件,这里填入你要操作的控件名 MsgBox(objCircle.Radius) //输出圆的半径 MsgBox (pwname.Picturename) //输出当前画面窗口2的名字 End Sub 注意当调用某窗体下的某控件的某个属性时,需要声明两个对象,一个接纳这个控件,一个接纳值例如 Dim object Dim value Set object =HMIRuntime.Screens("Home1").ScreenItems("画面窗口2") Set value=object.picturename 2.更改画面窗口的对象 Sub OnClick(Byval Item) Dim opObject Set opObject=HMIRuntime.Screens ("Home1").ScreenItems("画面窗口2") opObject.PictureName="Page1.Pdl" End Sub 3.设置文本 Set titleTxt=HMIRuntime.Screens ("Home1").ScreenItems("静态文本2") titleTxt.Text =titleTxt.Text+"EF" //获取文本的值并追加字符 4.vb 字符串函数 VB的字符串截取函数有Left(字符串,n),返回字符串前N个字符;Mid(字符串,p,n),从第p个字符开始,向后截取N个字符;right(字符串,n),返回字符串的最后n个字符。 获取下标

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,然后点下一步

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

利用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数据库培训教程(1)

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

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


A&D CS HMI Zhu yu
2003.8

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 视频教程知识点总结 第一讲组态软件基础 一、WinCC简介 1、WinCC 西门子视窗控制中心SIMATIC WinCC(Windows Control Center)是在计算机上对PLC 控制的运行设备进行状态监控的软件,是PC上的监控软件。 运行该软件,可以动画监视现场设备的运行状况,监视相应的运行参数,以及更改、设置系统的运行数据。 2、WinCC的特点 (1)开放性 WinCC对用户所添加的任何形式的扩充是绝对开放,该绝对开放性是通过WinCC的模块结构及其强大的编程接口来获取的。 (2)将应用软件集成到WinCC中 WinCC提供了一些方法将其他应用程序和应用程序块统一地集成到用于过程控制的用户界面中。OLE应用程序窗口和OLE自定义控制或Active控制可以集成到WinCC应用软件中。 (3)WinCC中的数据管理 WinCC的数据库为Windows SQL,从属于WinCC,该数据库用于存储所有面向列表的组态数据(如变量列表和消息文本),以及当前过程数据(如消息,测量值和用户数据记录等)该数据库具有服务器功能。

(4)在项目开始之前规定组态分类 a、文件夹名称 除一些特殊字符(例如\)之外,文件夹名称允许使用所有的字符。还允许使用数字0~9. b、变量名称 变量名称可以多于8个字符。但应尽量避免太长的名称。WinCC项目的变量名称必须是唯一的。如果变量名称还包含了其他信息,这对用户将非常有用。 c、画面名称 确定画面名称时应注意其长度的影响,太长的名称(文件名)不容易识别(列表框中的选择,脚本中的调用等)。根据经验表明,长度最好不超过28个字符,画面名称应遵守以下限制条件:①最大长度为255个字符;②不使用某些特殊字符(例如\);③画面名称中的字母不区分大小写。 二、WinCC软件的安装 1、安装S7-300/400PLC编程软件STEP7及PLCSIM; 2、安装数据库软件SQL Server 2000; 3、安装消息列队(软件操作); 4、安装WinCC(建议不选典型安装,选择全部安装)。 三、WinCC管理器 1、WinCC项目管理器的结构 WinCC项目管理器的用户界面由以下元素组成:标题栏、菜单栏、工具栏、状态栏、浏览窗口和数据窗口:

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))" 注:这是两个输入控件的连接方法(建立的表格)

VB操作wincc脚本心得精选文档

V B操作w i n c c脚本心 得精选文档 TTMS system office room 【TTMS16H-TTMS2A-TTMS8Q8-

Vbs 操作wincc画面脚本总结 一:不使用变量单纯的操作界面 1.操作某个画面中控件的属性如 Home1.Pdl(总窗体)下的画面窗口2(画面窗口) Sub OnClick(ByVal Item) Dim objCircle Dim screenname Dim pwname Set objCircle= ScreenItems("圆1" ) objCircle.Radius = 60 Set screenname=HMIRuntime.Screens("Home1") //获取要操作的窗体 Set pwname=screenname.ScreenItems("画面窗口2") //获取要操作的控件,这里填入你要操作的控件名 MsgBox(objCircle.Radius) //输出圆的半径 MsgBox (pwname.Picturename) //输出当前画面窗口2的名字 End Sub 注意当调用某窗体下的某控件的某个属性时,需要声明两个对象,一个接纳这个控件,一个接纳值例如 Dim object Dim value Set object =HMIRuntime.Screens("Home1").ScreenItems("画面窗口2") Set value=object.picturename

2.更改画面窗口的对象 Sub OnClick(Byval Item) Dim opObject Set opObject=HMIRuntime.Screens ("Home1").ScreenItems("画面窗口2") opObject.PictureName="Page1.Pdl" End Sub 3.设置文本 Set titleTxt=HMIRuntime.Screens ("Home1").ScreenItems("静态文本2") titleTxt.Text =titleTxt.Text+"EF" //获取文本的值并追加字符 4.vb 字符串函数 VB的字符串截取函数有Left(字符串,n),返回字符串前N个字符; Mid(字符串,p,n),从第p个字符开始,向后截取N个字符;right(字符串,n),返回字符串的最后n个字符。 获取下标 VB中的InStr()函数与InStrRev()函数: 都是在主字符串当中搜寻寻找子字符串,返回找到的子字符串在主字符串中出现的位置; 不同在于; InStr()函数,从左开始向右寻找,InStrRev()函数,从右开始向左寻找。 截取 right 和left 获取长度 Len

相关文档
最新文档