陈奕良,张帆
(广东金明精机股份有限公司,广东 汕头 515098)
WINCC是一种实现现场数据采集、过程可视化和过程监控的自动化工具,俗称SCADA。其运行在windows环境下,具有很好的兼容性和扩展性,适合复杂系统操作和数据监控。本文以WINCC professional V15为例,主要使用WINCC组态软件开发第三方设备的可视化操作界面、过程数据监控以及数据库记录功能。
WINCC的组态如图1所示。
图1 WINCC自动化组态
第三方自动化设备由乙方提供,为采购设备,并不参与甲方设备的系统集成,因此无法直接由WINCC组态软件的默认HMI通讯通道进行访问。其控制系统由西门子SIMOTION控制器和西门子触摸屏组成,如图2所示,SIMOTION是以设备代理的形式与触摸屏通讯,是单独的一个自动化组态系统,没法集成到WINCC里。不过基本市售的工业HMI触摸屏都是支持OPC通讯的,西门子的也不例外,可以设置作为OPC服务器,这样WINCC作为客户端就能访问西门子触摸屏的变量了。
图2 第三方设备自动化组态
WINCC组态软件支持多种PLC控制器驱动,比如西门子的S7-300/400和S7-1200/1500系列,第三方的比如AB和三菱的TCP/IP协议等等,但是和第三方品牌或者乙方的设备通讯时必须有对方的编程源程序或者有支持与其得通讯驱动,在本例WINCC就不具备西门子自家的SIMOTION通讯驱动,所以和第三方设备通讯最适合的方式就是OPC访问。
OPC(OLE for Process Control)技术是指为了给工业控制系统应用程序之间的通信建立一个接口标准,在工业控制设备与控制软件之间建立统一的数据存取规范。它给工业控制领域提供了一种标准数据访问机制,将硬件与应用软件有效地分离开来,是一套与厂商无关的软件数据交换标准接口和规程,主要解决过程控制系统与其数据源的数据交换问题,可以在各个应用之间提供透明的数据访问。
首先在乙方提供的HMI组态程序中,设置其HMI触摸屏作为OPC服务器运行,并记下其IP地址以便在WINCC中寻找远程OPC服务器,如图3所示。
图3 HMI触摸屏作为OPC服务器运行
接着在WINCC的连接通道中添加一个连接,通信驱动程序选择OPC UA,并命名为OPCHMI。然后在此连接的参数界面中的OPC服务器栏目中选择添加远程服务器地址即是上面记下的IP地址,就会访问到HMI触摸屏所建立的OPC服务器OpcUaServerWinCC作为此连接的URL地址,如图4所示。
图4 添加OPC通信连接通道
添加好OPC连接通道后,就可以访问所需要的设备变量,建立的变量表如图5所示,可以按自己的习惯进行变量的命名。
图5 访问OPC服务器建立变量表
WINCC组态软件最基本也是最必须的是可视化的过程监控画面,在本文案例中操作员在中控室需要对第三方设备的生产运行状态通过WINCC上位机对其进行实时监控。此设备为薄膜分切机,主要由放卷机、牵引机、分切刀、收卷机几个部分组成,操作员希望得到机组运行线速度、放卷宽度、材料厚度、放卷收卷计长、薄膜收卷分切规格等信息进行监控。过程画面的组要组成要素为 文本域、I/O域、按钮。
文本域的作用为设置标题和变量信息,I/O域的作用为过程变量的输入输出读写操作,按钮则有各种各样的过程操作功能。其中I/O的过程变量设置一般为手动输入,但对于较大的过程控制系统而言,存在功能相同编号顺序不同的过程变量,对于这种变量如果每个都进行手动输入设置,会浪费电气工程师大量的时间进行重复工作,而WINCC支持VBS脚本,我们可以利用VBS脚本对这种类型的过程变量进行动态赋值。比如此过程画面中存在8个收卷机卡位,每个卡位需要访问的过程变量类型都是相同的,我们可以将其变量以类似“收卷张力_1”这种名字加序号的命名形式进行命名,然后将I/O域也以此名字规则进行命名,并在过程值属性中的动态化栏目添加VBS动作,将其过程值以I/O域的名字进行赋值,即可在WINCC运行画面中自动获得过程值。之后将I/O进行复制粘贴操作,粘贴时新的I/O域会自动以“收卷张力_2”这样序号自动递增的形式命名,这样就自动化组态了其他功能相同编号顺序不同的过程变量,非常简便聪明,大大减少了以往电气工程师需要一个个手填过程画面I/O域过程变量这样低效可怜的工作,如图6所示。
最后过程画面实际运行的效果如图7所示。
图6 使用VBS脚本动态获得重复性的过程变量
图7 WINCC过程控制画面运行效果
SCADA一 般 指SCADA系 统。SCADA(Superv isory Control And Data Acquisition)系统,即数据采集与监视控制系统。既然进行了数据采集,那势必得将采集到的数据进行数据记录,WINCC组态软件和组态王、IFIX这些知名得组态软件一样,有过程值归档的功能,可以在数据记录栏目中选择自己需要的过程值变量进行归档,并可设置采集周期、分段时间等。不过此归档形式在导出到数据库的操作并不直接,需要通过一些非标准的协议和软件环境才能导出到数据库,并且在数据库内还得对数据进行二次处理转换,相当不便,因此本文案例中使用WINCC支持的VB脚本进行过程变量的数据库记录操作。
首先要连接数据库,VBA提供了对象访问的函数,比如在Createobject函数可以创建并返回一个对ActiveX对象的引用,要创建 ActiveX 对象,只需将CreateObject 返回的对象赋给一个变量。以下为连接本机数据库服务器的代码:
"Con="Provider=SQLOLEDB.1;Password=密码;Persist Security Info=True;User ID=账号;Data Source=电脑名称数据库连接名"
Con="Provider=SQLOLEDB.1;Password=jm 666;Persist Security Info=True;User ID=sa;Data Source=" & SmartTags("@LocalMachineName") &"JMJJTEST"
Set conn = CreateObject("ADODB.Connection")
conn.ConnectionString=Con
conn.CursorLocation=3
conn.Open
之后需要创建WINCC过程变量所需的数据库,将其命名为winccdatabase,代码如下:
"创建数据库,只能创建一次
"sSql="create database 数据库名称;"
sSql="create database winccbase;"
Set oRs = CreateObject("ADODB.Recordset")
Set oCom = CreateObject("ADODB.Command")
Set oCom.ActiveConnection = conn
oCom.CommandType = 1
oCom.CommandText = sSql
Set oRs = oCom.Execute
Set oRs = Nothing
conn.Close
Set conn = Nothing
SmartTags("dataBaseCreated") = 1
之后需要在上面创建的数据库中建立存储数据的数据表,将其命名为MesCutSplit,代码如下:
"创建数据表,只能创建一次
"sSql="create table 数据表名称 (字段名1 类型,字段名2 类型,字段名3 类型,字段名3 类型,字段名4 类型);",create_time datetime是必要的,插入时间
sSql="create table MECutSplit_" & Year(Now)& " (create_time datetime,fHeight real,fLength r e a l,f Widthreal,f Screens in t,f Machine Speed real,fWindingTension real,fTension real);"
oCom.CommandText = sSql
Set oRs = oCom.Execute
Set oRs = Nothing
conn.Close
Set conn = Nothing
以上数据表含义为下:
表:MECutSplit_2021
create_time 创建时间
fHeight 厚度
fLength 长度(放卷长度)
fWidth 宽度
fScreens 卡位(显示张力卡位1-8)
fMachineSpeed 机速
fWindingTension 收卷张力(当然卡位1-8的其中一个张力)
fTension 放卷张力
之后需要将脚本设置定时将这些过程变量插入到数据表,其代码如下:
卡位收卷张力
VB
sData(0)=SmartTags("daHua#setThickness")
sData(1)=SmartTags("actUnwindLength")
sData(2)=SmartTags("daHua#setUnwindWidth")
sData(3)=SmartTags("MES
")
sData(4)=SmartTags("daHua#actualSpeed")
sData(5)=SmartTags("MES
")
sData(6)=SmartTags("daHua#setUnwindTensi on")
sSql="insert into MECutSplit_" & Year(Now)& " VALUES("" & Now & ""," & sData(0) & "," &sData(1) & "," & sData(2) & "," & sData(3) & "," &sData(4) & "," & sData(5) & "," & sData(6) & ");"
oCom.CommandType = 1
oCom.CommandText = sSql
Set oRs = oCom.Execute
Set oRs = Nothing
conn.Close
Set conn = Nothing
SQL
ACCESS
ERP
最后实现的数据库记录效果如图8所示,每隔所设定的间隔时间数据就会自动插入到数据表中,因为数据库为,所以车间行政办公人员通过联网后可以通过或者系统访问设备的生产记录归档,从而实现了设备生产的信息自动化,达到工业4.0。
图8 实现的数据库记录
本文介绍了WINCC组态软件和第三方设备的SCADA应用系统,分别对WINCC组态系统和通信连接原理进行了介绍,重点阐述了与第三方设备的通讯连接访问方法和过程值的数据采集和记录功能,该功能在薄膜拉伸机组系统已有应用,方便了工厂在使用过程的设备管理,而WINCC组态软件的运行环境是Windows操作系统,在工厂应用中实现数据共享和追溯查询,符合当前工业4.0的时代发展。