6AV6381-2CB08-0AV0

2024-11-16 07:05 183.193.25.115 1次
发布企业
上海工智达电气技术有限公司商铺
认证
资质核验:
已通过营业执照认证
入驻顺企:
1
主体名称:
上海工智达电气技术有限公司
组织机构代码:
91310117MADP2FAE31
报价
人民币¥12269.00元每套
西门子
WinCC 系统软件 V8.0亚洲版
WinCC
V8.0亚洲版
德国
净重0.262KG
关键词
西门子,WinCC,系统软件,V8.0亚洲版,全新原装
所在地
上海市松江区科技园区平原街880弄65号201
联系电话
15221760199
手机
15221760199
联系人
田子龙  请说明来自顺企网,优惠更多
请卖家联系我
15221760199

产品详细介绍

6AV6381-2CB08-0AV0

通过VBS脚本在ListView控件中显示WinCC的变量记录


       在实际应用中,客户对于WinCC变量记录的显示需求各式各样,比如在Excel或者Word中显示变量记录,以特定的表格显示历史数据等等。当WinCC集成的在线表格控件不能满足客户需要时,就需要通过自定义的方式来显示变量归档。主要分为两部分: (1)从WinCC中读取归档数据
(2)将归档数据以特定的格式显示出来
       本文档介绍从WinCC读取归档数据的通用方法,并以ListView为例,介绍如何显示归档数据。对于其它控件,客户也可以参考本文档的脚本和编程思路。

1.测试环境
        本文档基于WinCC V7.0ASIA,并通过MS Windows Common Controls 6.0 ListView控件来显示读取的归档数据。需要的授权如下:

授权名称个数备注
WinCCRC V7.01
WinCC连通性软件包V7.01订货号为:6AV6371-1DR07-0AX0,授权通过WinCC OLE DB访问过程值归档。

表 01

关于WinCC连通性软件包的使用,请参考下面的帮助文档:37436159

2.实现方式总体思路介绍
        本文档通过调用WinCC OLEDB数据库接口驱动(需要WinCC连通性软件包的授权)来访问WinCC的变量归档,并在微软的ListView控件中显示归档数据。程序结构如下所示:


图1

其中,自定义函数的说明如下表所示:

函数名称功能
WinCCDataSourceAccess(connObj, pSQL)建立到数据库的连接。参数connObj为连接对象(ADODB.Connection),参数pSQL为要执行的SQL查询语句
WinCCDataSourceClose(pRecordset, connObj)断开与数据库的连接,释放资源。参数pRecordset为ADODO.RecordSet对象,参数connObj为连接对象(ADODB.Connection)
AddListViewHeaderColumn(pRecordset, pListView)添加ListView的列名。参数pRecordset为ADODO.RecordSet对象,参数pListView为ListView对象
FillListView (pRecordset, pListView)参数pRecordset为ADODO.RecordSet对象,参数pListView为ListView对象。

表 02

具体代码见附件。  

3.具体实现方法和代码

3.1创建到归档数据库的连接

       由于WinCC的变量归档为压缩数据,必须通过WinCC OLEDB来读取归档数据。对于已经安装WinCC的计算机,不需要安装WinCC连通性软件包。对于未安装WinCC的客户端,必须安装WinCC连通性软件包。该软件包含在WinCCV7.0的安装光盘中。        数据库连接的脚本如下所示:
'定义数据库连接变量
Dim conn

Set conn= CreateObject("ADODB.Connection")

'定义数据库查询脚本(可以根据需要自定义修改) Dim sSQL

sSQL="Tag:R,'ProcessValueArchive\Tag1','0000-00-0000:01:00.000','0000-00-00 00:00:00.000'"

'通过调用自定义的数据库连接函数,建立与数据库的连接 Dim oRs

Set oRs=WinCCDataSourceAccess(conn,sSQL)

        其中,自定义的数据库连接函数WinCCDataSourceAccess(connObj,pSQL),参数connObj为连接对象(ADODB.Connection),参数pSQL为要执行的SQL查询语句,具体代码如下所示: FunctionWinCCDataSourceAccess(connObj,pSQL)
'建立到数据库的连接
On Error Resume Next
'读取本地的WinCC运行数据库名称
Dim DatasourceNameRT,DataConnectionName
Set DatasourceNameRT = HMIRuntime.Tags("@DatasourceNameRT")
DatasourceNameRT.Read

'定义数据库连接字符串 Dim sPro, sDsn,sSer

sPro ="Provider=WinCCOLEDBProvider.1;"

sDsn ="Catalog=" & DatasourceNameRT.Value & ";"

sSer ="Data Source=.\WinCC"

DataConnectionName = sPro + sDsn + sSer ' 定义查询语句字符串
Dim sSQL
sSQL=pSQL

'建立连接 Dim oRs,oCom,conn
Set conn = CreateObject("ADODB.Connection")
Set conn=connObj
conn.ConnectionString = DataConnectionName
conn.CursorLocation = 3
conn.Open
' 创建查询的命令文本
Set oRs = CreateObject("ADODB.Recordset")

Set oCom= CreateObject("ADODB.Command")

oCom.CommandType = 1

SetoCom.ActiveConnection = conn

oCom.CommandText=sSQL '执行查询
Set oRs = oCom.Execute

'返回结果 Set WinCCDataSourceAccess=oRs

Iferr.number <> 0 Then

MsgBox"error Code" & Err.Number & "Source:" & Err.Source & "errordescription" & Err.Description err.clear

EndIf

On ErrorGo to 0

EndFunction

        自定义函数的创建过程为:在WinCC项目管理器中右键点击全局脚本打开VBS全局脚本编辑器项目函数新建函数。具体如下图所示:


图2

3.2注册Microsoft ListView Control 6.0控件

       打开WinCC图形编辑器。在右侧的对象选项板中单击“控件”,选中“ActiveXControl”,点击右键,选择“添加移除”。在弹出菜单中,选择“Microsoft ListView Control6.0”,点击“OK”确认。


图3

        之后,将“Microsoft ListViewControl6.0”拖动到画面编辑器中,并将对象名称设置为Control1。 注意:在脚本中,当定义ListView对象时用到对象名称Control1。详情请参考图1的步骤2。

3.3添加ListView 控件的列名        在ListView中添加列名,步骤如图1的步骤3。自定义函数AddListViewHeaderColumn(pRecordset,pListView)的具体代码如下所示:
Function AddColumnHeader(pRecordset, pListView)
'添加ListView列名

'用于错误捕获和处理 On Error Resume Next

DimoRs,columnCount

SetoRs=CreateObject("ADODB.Recordset")

SetoRs=pRecordset

'获取数据库中的列数 columnCount=oRs.Fields.Count

'定义操作的ListView对象 Dim ListViewT

SetListViewT=pListView '清空ListView对象的列数
ListViewT.ColumnHeaders.Clear

'用查询的数据库表格列名来为ListView添加列名(*2) Dim AddColumnIndex

ForAddColumnIndex=0 To columnCount-1

ListViewT.ColumnHeaders.Add , ,CStr(oRs.Fields(AddColumnIndex).Name)

Next '发生错误,提示消息框
If err.number <> 0 Then

MsgBox"AddColumnHeader函数报错,Source:" & Err.Source & vbCr & "Errordescription:" & Err.Description

err.clear

EndIf

On ErrorGoto 0

EndFunction

3.4填充ListView 控件        在ListView中添加列名,步骤如图1的步骤4。自定义函数FillListView (pRecordset, pListView)的具体代码如下所示:
Function FillListView(pRecordset,pListView)
'用数据库查询的值填充ListView
On Error Resume Next

'获取查询记录条数 Dim recordsCount,oRs
Set oRs=CreateObject("ADODB.Recordset")
Set oRs=pRecordset
recordsCount=oRs.RecordCount

'定位到条记录 If (recordsCount > 0) Then
oRs.MoveFirst

'定义大的查询条目(*3) Dim maxLine,n

maxLine= 10 n=0
'填充数据值列
Do While (Not oRs.EOF And n < maxLine)

n = n +1

DimoItem,ListViewT Set ListViewT=pListView
Set oItem = ListViewT.ListItems.Add()

oItem.text = oRs.Fields(0).Value

oItem.SubItems(1) = oRs.Fields(1).Value

oItem.SubItems(2) = FormatNumber(oRs.Fields(2).Value, 4)

oItem.SubItems(3) = Hex(oRs.Fields(3).Value)

oItem.SubItems(4) = Hex(oRs.Fields(4).Value)

oRs.MoveNext

Loop

3.5关闭到归档数据库的连接         关闭与数据库的连接并释放资源,步骤如图1的步骤5。自定义函数WinCCDataSourceClose(pRecordset,connObj)的具体代码如下图所示:
Function WinCCDataSourceClose(pRecordset,connObj)
'关闭数据库连接,释放资源
'获取连接和查询对象
Dim oRs,conn

SetoRs=pRecordset Set conn=connObj

oRs.Close

Set oRs= Nothing

conn.Close

Set conn= Nothing

EndFunction

3.6运行结果        本文档介绍的脚本,其运行结果如下图所示:


图4

3.7更改代码以满足更广泛的需求
       对于不同客户的定制化需求,可以通过修改少量代码实现。
     (1) 不同的查询需求,修改sSQL变量的值。
'修改变量sSQL的值
Dim sSQL

比如,如果需要动态制定查询时间,可以在画面中输入查询日期,通过HMIRuntime.Tags(“变量名”)来获得查询条件,再赋值给sSQL。      (2) ListView需要使用不同的列名。
修改函数AddListViewHeaderColumn中的如下内容:
‘用查询的数据库表格列名来为ListView添加列名 (*2)
Dim AddColumnIndex

ForAddColumnIndex=0 To columnCount-1

Next

      (3)ListView需要填充不一样的行数和内容。 修改函数FillListView中的如下内容:
Dim maxLine,n

maxLine= 10 '改变此值,可以更改大显示的条目数 n=0
'修改填充内容,请修改下面Do While循环中的代码
Do While (Not oRs.EOF And n < maxLine)

n = n +1

oItem.text = oRs.Fields(0).Value

oItem.SubItems(1) = oRs.Fields(1).Value

oItem.SubItems(3) = Hex(oRs.Fields(3).Value)

oItem.SubItems(4) = Hex(oRs.Fields(4).Value)

oRs.MoveNext

Loop


关于上海工智达电气技术有限公司商铺首页 | 更多产品 | 联系方式 | 黄页介绍
成立日期2024年06月21日
主营产品西门子PLC HMI 工业软件 电线电缆 变频器 伺服数控系统
经营范围经营范围包括一般项目:技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广;通用设备修理;专用设备修理;电气设备修理;家用电器安装服务;普通机械设备安装服务;机械电气设备销售;电子专用设备销售;数控机床销售;机械设备销售;电线、电缆经营;电子元器件与机电组件设备销售;电工仪器仪表销售;电力电子元器件销售。
公司简介上海工智达电气技术有限公司成立于2024年,公司下设技术部、销售部、维修部、物流部、等专职部门。公司为自动化控制以及电气传动领域产品销售、技术服务、技术培训以及项目咨询为一体的企业。致力成为行业内优秀的自动化技术服务商。公司定位------做客户贴心的自动化专家,提供全系列,全方位,全周期的自动化产品和技术服务!——定位于自动化领域,突显于专业化水准技术支持------公司拥有完整的技术队伍(各类 ...
公司新闻
我们的其他产品
顺企网 | 公司 | 黄页 | 产品 | 采购 | 资讯 | 免费注册 轻松建站
免责声明:本站信息由上海工智达电气技术有限公司自行发布,交易请核实资质,谨防诈骗,如有侵权请联系我们   法律声明  联系顺企网
提醒:因为软件开发行业无明确禁止法规, 该企业仅提供软件开发外包定制服务,项目需取得国家许可,严禁非法用途。 违法举报
© 11467.com 顺企网 版权所有
ICP备案: 粤B2-20160116 / 粤ICP备12079258号 / 粤公网安备 44030702000007号 / 互联网药品信息许可证:(粤)—经营性—2023—0112