通过DIY学习组态软件原理
今天剑工将带领控友们制作DIY监控软件。前提是这里的组态软件是基于excel工具,我想大家都会在工作中接触到excel,如果你想快速建立一个监控组态软件可以follow me了。 首先你要准备两个软件,一个是excel,另一个就是kepware(opc server可以连接市面上任何plc),kepware使用测试版。 1、安装kepware,这个和安装任何软件都一样,next下去就可以了。 2、然后打开kepware,设置你要连接plc类型和通讯参数以及内存地址。 3、打开excel,利用绘图功能绘制简单工艺流程图,同时也可以通过组合图形绘制出来罐体,阀门,仪表等。 4、在excel上填写需要动态显示数据的IO域,并在邻格写上单位符号。 5、打开excel为了能够运行 Excel中的 VBA宏脚本,首先需要调整安全性设置。在“工具->宏->安全性”中,将 Excel的安全级别设置为启用宏。 在 Excel中创建一个接口,在 VisualBasic 编辑器中的“工具->引用”中,选中“OPC DA Automation 2.0”组件,使 VisualBasic能够识别 OPC对象。 创建所需的所有对象,如:“MyOPCGroup”对象 Dim: 创建一个变量 WithEvents: 这个对象可以提供事件(如 DataChange) MyOPCGroup: 对象名 As OPCGroup: 变量类型 Dim WithEvents MyOPCServer as OpcServer Dim WithEvents MyOPCGroup as OpcGroup Dim MyOPCGroupColl as OPCGroups Dim MyOPItemColl as OPCItem Sub StartClient() ’Microsoft Excel建立与 OPC服务器的连接; Set MyOPCServer = New OpcServer ’为“MyOPCServer”对象分配内存; MyOPCServer.Connect ServerName, NodeName ServerName :OPC DA 服务器的名称为 "KEPOPCServerV40" NodeName:运行系统的计算机名称 Set MyOPCGroupColl = MyOPCServer.OPCGroups Microsoft Excel与 OPC服务器的连接一旦建立,OPC组即被创建。这个通过集合对象来实现; Set MyOPCGroup = MyOPCGroupColl.Add(GroupName) 创建的组通过“MyOPCGroup”变量来寻址。设置 MyOPCGroup.IsSubscribed = True,以便OPC组能够提供 DataChange等事件。 Set MyOPCItemColl = MyOPCGroup.OPCItems ’创建OPC项 MyOPCItemColl.AddItems 2, ItemIDs, ClientHandles, ServerHandles, Errors ItemIDs 存储在单元格 B1/D1中,把指定的 ItemIDs 传送给集合对象 "MyOPCItemColl.AddItems" Private Sub MyOPCGroup_DataChange() 在 Microsoft Excel中,调用如下用于 OPC组事件处理的程序,它是 OPC服务器的DataChange 事件,DataChange()这个事件处理程序提供了许多参数,如 ItemValue(OPC项的值),客户端句柄等。通过 DataChange事件,当 OPC项的值变化时,数据会自动发送。OPC项的当前值显示在单元格 B2/D2中。 Private Sub worksheet_change() 如果在 Microsoft Excel的单元格 B3/D2中输入一个值,通过函数MyOPCGroup.SyncWrite将 OPC项写入到 WinCC,写入值和服务器句柄以参数形式传递给此函数。 Sub StopClient() 最后,断开与 OPC服务器的连接。 6、动态数据有了以后,就可以完成数据监视和数据报警,并可以设置简单的数据报警变色,给予操作人员警示。报警条件是通过excel的公式变色来完成的。 7、还可以在excel上的另一个sheet上放置简单的存储的历史数据和报警记录以及需要回写PLC的配方数据。历史数据可以通过VBA放置定时器,自定义时间把实时数据放在这个sheet上区域内,同理完成报警记录。至于回写PLC的配方数据的方法,见5部分。 8、有了历史数据,在excel就可以轻松绘制出来历史趋势了,就是拖出chart 图,然后选择历史存储数据就可以轻松显示,如果需要前后拖动可以添加数据指针。 这样我们就完成一个简单DIY的组态软件,通过这个过程大家是不是了解组态软件的一些原理。这个组态软件也可以用在临时监控数据和出差调试时使用,比较简易方便。 |