西门子PLC实现用四个按钮分别控制四个灯
用四个按钮分别控制四个灯,当其中任意一个按钮按下时对应的灯亮,多个按钮按下时灯不亮。plc软元件 | 元件文字符号 | 元件名称 | 控制功能 | |
输入 | I0.0 | SB1 | 按钮1 | 控制灯 |
I0.1 | SB2 | 按钮2 | 控制灯 | |
I0.2 | SB3 | 按钮3 | 控制灯 | |
I0.3 | SB4 | 按钮4 | 控制灯 | |
输出 | Q0.0 | EL1 | 灯1 | 照明 |
Q0.1 | EL2 | 灯2 | 照明 | |
Q0.2 | EL3 | 灯3 | 照明 | |
Q0.3 | EL4 | 灯4 | 照明 |
1.测试环境
本文档基于WinCC V7.0 ASIA,并通过MS Windows Common Controls 6.0 ListView 控件来显示读取的归档数据。需要的授权如下:
授权名称 | 个数 | 备注 |
WinCC RC V7.0 | 1 | |
WinCC连通性软件包V7.0 | 1 | 订货号为:6AV6371-1DR07-0AX0,授权通过WinCC OLE DB访问过程值归档。 |
表 01
2.实现方式总体思路介绍
本文档通过调用WinCC OLE DB数据库接口驱动(需要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 OLE DB来读取归档数据。对于已经安装WinCC的计算机,不需要安装WinCC连通性软件包。对于未安装WinCC的客户端,必须安装WinCC连通性软件包。该软件包含在WinCC V7.0的安装光盘中。
数据库连接的脚本如下所示:
'定义数据库连接变量
Dim conn
Set conn = CreateObject("ADODB.Connection")
'定义数据库查询脚本(可以根据需要自定义修改)
Dim sSQL
sSQL="Tag:R,'ProcessValueArchive\Tag1','0000-00-00 00: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查询语句