★WinCC画面显示读取连接其他数据库的数据_OKOK道★WinCC画面显示读取连接其他数据库的数据_OKOK道
1.1 注意点:1、 不要设置 ODBC2、 脚本连接字符串 strConnectionString DriverSQL 密码为空, ServerServerWSYWINCCuidpassdatabasemesdbsql 其中 uid 为空。 不
能填写,否则连接不上。 下段是读取 DNS 的名字的语句: strConnectionString
DriverSQL ServerServerWSYWINCCuidpassdatabasemesdbsql strConn...
★WinCC画面显示读取连接其他数据库的数据_OKOK道
1.1 注意点:1、 不要设置 ODBC2、 脚本连接字符串 strConnectionString DriverSQL 密码为空, ServerServerWSYWINCCuidpassdatabasemesdbsql 其中 uid 为空。 不
能填写,否则连接不上。 下段是读取 DNS 的名字的语句: strConnectionString
DriverSQL ServerServerWSYWINCCuidpassdatabasemesdbsql strConnectionString ProviderMSDASQLDSNWSYWINCCUIDPWD 不能 正确连接,只能在应用程序中
实现。 Dim DsnStr DsnStrHMIRuntime.TagsDatasourceNameRT.Read 取当前的 DSN
值 strConnectionString ProviderMSDASQLDSNDsnStrUIDPWD 可以 正确连接
3、 strConnectionString ProviderMSDASQLDSN mesdbsqlUIDPWD 也可以4、
strSQL use mesdbsql SELECT FROM dbo.sup_user5、 第一列的值:
oItem.TextoRs.Fields0.Value 第 1 列的值第 0 个字段的值
oItem.SubItems1oRs.Fields1.Value 第 2 列第 1 个字段的值6、 ListViewCtrl 的属
性 ListViewCtrl.View Report-3 ListViewCtrl.GridLinesYes1.1.1 原因分析:
ProviderMSDASQL 这样的数据源是需要设置 ODBC 的,在
DsnStrHMIRuntime.TagsDatasourceNameRT.Read 取当前的 DSN 值中,WINCC 的
DSN 会自动添加到 ODBC 的设置当中。也就是说:在 WinCC 当中连接数据库必
须有 ODBC 的数据源。1.1.2 补充1.1.2.1Windows 独立应用程序中的连接字符串
(不是脚本)strConnectionString ProviderSQLOLEDB.1Integrated SecuritySSPIPersist SecurityInfoFalseInitial CatalogmesdbsqlData SourceWSYWINCCstrConnectionString
ProviderSQLOLEDB.1Integrated SecuritySSPIPersist SecurityInfoFalseInitial CatalogmesdbsqlData SourceWSYwincc1.1.2.2Oracle 的脚本连接字符串1、 在本机安
装 Oracle 的客户端;2、 Oracle 的客户端测试链接成功;3、 建立 ODBC 连接:
建立 ODBC 连接名字如:aaa4、 连接字符串: (DSN 的方法) Dim DsnStr
DsnStrHMIRuntime.TagsDatasourceNameRT.Read 取当前的 DSN 值 DsnStr aaa
odbc 的名字 MsgBoxDsnStr odbc 的名字 strConnectionString
ProviderMSDASQLDSNDsnStrUIDPWD 可以 正确连接(另一种方法)1.2 VBS 读
取数据库
的示例Sub OnClickByVal ItemDim objConnectionDim
strConnectionStringDim VoltageValueDim strSQLDim DateTimeValueDim objCommandDim oRsDim oListDim oItemDim nDim RecordCountDim StartTimeDim EndTimeSet StartTimeScreenItemsStartTime 获取查询起始时间的日期时间拾取控件
Set EndTimeScreenItemsEndTime 获取查询结束时间的日期时间拾取控件
strConnectionString DriverSQLServerServerWSYWINCCuidpassdatabasemesdbsql 可
以正确连接strConnectionString ProviderMSDASQLDSNWSYWINCCUIDPWD 不能
正确连接Dim DsnStrDsnStrHMIRuntime.TagsDatasourceNameRT.Read 取当前的
DSN 值MsgBoxDsnStr DSN 的名字是 CC_Crane500_2011_10_12_CC 的 WinCC
的运行库strConnectionString ProviderMSDASQLDSNDsnStrUIDPWD 可以正确连
接(另一种方法)strSQL use mesdbsql SELECT FROM dbo.sup_user 一定要用 use
mesdbsqlMsgBoxStartTime.Value strSQL use mesdbsql SELECTUSERID PASSWORDNAMEDEPARTMENTIDSEXregtime FROM dbo.sup_user strSQL use mesdbsql SELECTUSERID PASSWORDNAMEDEPARTMENTIDSEXregtime FROM dbo.sup_user WHEREregtime Between StartTime.Value and EndTime.Value ORDER BY regtimeDESCHMIRuntime.TracestrSQLSet objConnection CreateObjectADODB.ConnectionSet oRs
CreateObjectADODB.RecordsetobjConnection.ConnectionString strConnectionStringobjConnection.OpenSet objCommand
CreateObjectADODB.CommandWith objCommand .CommandType
1 .ActiveConnection objConnection .CommandText strSQLEnd WithSet oRsobjCommand.ExecuteSet oListScreenItemsEvent_ListViewoList.ListItems.Clear 清
除所有记录oList.ColumnHeaders.Clear 清除所有列oList.ColumnHeaders.Add 故障
名称90oList.ColumnHeaders.Add 时间90oList.ColumnHeaders.Add 电压
60oList.ColumnHeaders.Add 电流60oList.ColumnHeaders.Add 母线电压/速度
110oList.ColumnHeaders.Add 母线电流/速度给定
140oList.Height480OList.Width350oRs.MoveFirstRecordCount0Do While Not oRs.EOFoRs.MoveNextRecordCountRecordCount1Loop只显示最后 6 个记录,前面
多余的不显示IfRecordCount6 Then nRecordCount-6 oRs.MoveFirst Do While n0 oRs.MoveNext nn-1 LoopElse oRs.MoveFirst 少于 6 个则全部显示,移到第一个记录
End IfDo While Not oRs.EOFSet oItemoList.ListItems.AddoItem.TextoRs.Fields0.Value 第 1 列的值第 0 个字段的值oItem.SubItems1oRs.Fields1.Value 第 2 列第 1 个字
段的值oItem.SubItems2oRs.Fields2.Value 第 3 列第 2 个字段的值
oItem.SubItems3oRs.Fields3.Value 第 4 列第 3 个字段的值
oItem.SubItems4oRs.Fields4.Value 第 5 列第 4 个字段的值
oItem.SubItems5oRs.Fields5.Value 第 6 列第 5 个字段的值
oRs.MoveNextLoopoRs.CloseSet oListNothingSet oItemNothingSet objCommand NothingobjConnection.CloseSet objConnection NothingEnd Sub1.3 截取一段的记
录:只显示最后 6 个记录,前面多余的不显示IfRecordCount6 Then nRecordCount-6
oRs.MoveFirst Do While n0 oRs.MoveNext nn-1 LoopElse oRs.MoveFirstEnd If1.4 时
间控件1.4.1 注册控件 C:WINDOWSsystem32MSCOMCT2.OCX1.4.2 插入控件
1.4.3 设置控件属性 用户定义时间格式 yyyy-MM-dd HH:mm:ss MM HH 这两个要
大写 UpDown:可以通过上下键调节时间1.4.4 设置控件属性时的问题第一次设置
时,不能正确正常显示。保存,再重新调用就能正确显示。1.4.5 读取时间控件的值
Sub OnOpenDim StartTimeSet StartTimeScreenItemsStartTimeStartTime.Value StartTime.Value -8 减去 8 天StartTime.Value StartTime.Value -8/24 减去 8/24 天
8 小时MsgBoxStartTime.Value End Sub1.5 表格每分钟刷新一次的示例1.5.1 画面带
开的 VC 脚本include apdefap.hvoid OnOpenPicturechar lpszPictureName char lpszObjectName char lpszPropertyNamepragma codekernel32.dllvoid GetLocalTimeSYSTEMTIMElpstpragma codeSYSTEMTIME
timeGetLocalTimetimeSetPropBOOLtest_SQL.PDL按钮 2Visible0 //按钮没有
Enabled 属性,只有
VisibleSetPropBOOLtest_SQL.PDLStartTimeEnabled0SetPropBOOLtest_SQL.PDLEndTimeEnabled0SetPropDoubletest_SQL.PDLStartTimeHourtime.wHour-10SetPropDoubletest_SQL.PDLStartTimeMinute0SetPropDoubletest_SQL.PDLStartTimeSecond0SetPropDoubletest_SQL.PDLStartTimeMilliseconds0//SetTagWordVarnametime.wMinute//SetTagWordVarnametime.wYear//SetTagWordVarnametime.wMonth//SetTagWordVarnametime.wDayOfWeek//SetTagWordVarnametime.wDay//SetTagWordVarnametime.wHour//SetTagWordVarnametime.wSecond//SetTagWordVarnametime.wMilliseconds1.5.2 输出域秒钟的输出值 VBS 脚本Sub OutputValue_OnPropertyChangedByval Item
Byval valueDim EndTimeSet
EndTimeHMIRuntime.ActiveScreen.ScreenItemsEndTimeEndTime.Value StartTime.Value -8/24 减去 8/24 天8 小时EndTime.Value Now 更改当前时间Dim
isRefreshSet
isRefreshHMIRuntime.ActiveScreen.ScreenItemscheck1IfisRefresh.Process0 Then 取反
-isRefresh,选择框的选择值Process,不是 value wscript.quit 退出本脚本End IfIfvalue
0 Then wscript.quit 0 秒时,退出本脚本End If只有0 秒时,执行下列语句MsgBox此
处刷新End Sub1.5.3 复选框的选择框 VC 脚本include apdefap.hvoid
OnPropertyChangedchar lpszPictureName char lpszObjectName charlpszPropertyName
long valuepragma optionmbcsifvalue0 SetPropBOOLtest_SQL.PDL按钮 2Visible1 //按
钮没有 Enabled 属性,只有Visible SetPropBOOLtest_SQL.PDLStartTimeEnabled1 SetPropBOOLtest_SQL.PDLEndTimeEnabled1else SetPropBOOLtest_SQL.PDL按钮
2Visible0 //按钮没有 Enabled 属性,只有Visible
SetPropBOOLtest_SQL.PDLStartTimeEnabled0
SetPropBOOLtest_SQL.PDLEndTimeEnabled01.6 WinCC 读取 Access 数据库
本文档为【★WinCC画面显示读取连接其他数据库的数据_OKOK道】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。