郑跃鹏
(1.中国煤炭科工集团 太原研究院,山西 太原 030006;2.山西天地煤机装备有限公司,山西 太原 030006)
随着互联网技术的不断发展,计算机远程测控技术在工业工程中的应用越来越广泛[1-4],工业生产过程中需要及时了解现场设备的运行情况并及时做出相应的调整。 因此,远距离测控技术的应用显得尤为重要。
组态王作为一种新型的工业自动化控制系统软件[4],它由标准的工业计算机软、硬件平台构成,具有适应性强、开放性好,开发周期短等优点,广泛应用于电力、水利、煤矿等自动化生产领域。它的采集数据模块具有与各种大规模厂商智能仪表连接的驱动程序,然而对于小规模厂商和自主设计的板块没有相应的驱动[5]。 针对上述问题,组态王提供了一种DDE 模块,方便用户与外部数据的动态交换。
VisualBasic 6.0(本文中简称VB)是一款简单的可视化编程语言, 开发者可以利用其提供的开发平台建立相应的应用程序[6]。在各种程序开发中,VB 得到了广泛的应用,同时在VB 中提供的串行通信控件MSComm, 为开发者实现上位计算机与现场各种仪表进行通信提供了一种有效途径。 此外VB 还支持DDE 技术,利用该技术可以方便地开发出Windows 环境下的DDE 程序。
为了满足现代工业数据开放性的要求,利用组态王建立OPC 服务器实现动态数据的共享与上传,针对组态王与各种智能仪表之间的数据传输问题,给出了一种基于组态王DDE 模块与VB之间的通讯方法[7-8]。
利用VB 在Windows 操作平台的开发优势,基于组态王内部嵌入的与DDE 通讯的模块,开发出组态王与DDE 双向数据交换的信息交流模式,然后利用组态王的OPC 开放式服务器,将数据上传至公共平台进行数据的汇总(见图1)。
图1 组态王OPEC 的开放式系统原理结构
组态王提供DDE 通信接口,作为服务器时,通过设置变量属性、允许DDE 访问来实现;作为客户时,通过新建设备可设置具体的DDE 属性,如DDE 设备名称、服务程序名、话题名等(见表1)。
表1 组态王DDE 模块与VB 之间的通讯协议
组态王软件拥有DDE 客户和服务器支持,通过DDE 方式应用程序能很好地与组态王进行数据交换。 DDE 客户支持可以把应用程序端采集的数据传递给组态王, 用于组态进行数据分析;服务器支持可以让组态王发出的信息动作于应用程序端, 让其进行处理,VB 与组态王在PC上的控制流程见图2。
图2 VB 与组态王在PC 上的控制流程
贵州省遵义市的一家煤矿进行智能化改进工程, 以便在调度室内实现远程控制瓦斯泵、水泵等设备的启停操作,以及瓦斯浓度、流量等数据的远程传输监测。 在此之前,重庆某大学已经布置了测量井下瓦斯流量、浓度等参数的测控系统, 拒绝提供程序供应协议和对外开放接口;同时矿方不想重复增加测控设备造成成本上升。通过技术交流后制定方案,最终采用以VB 软件开发的后台应用程序作为瓦斯测控平台部分数据传输的中转站, 通过组态王的开发系统的内置COM 串口,实现数据的处理和分析,计算出瓦斯流量日、月、年的总量计算。同时在瓦斯泵房布置温度、水位等传感器,通过UDP 通讯协议实现瓦斯泵房泵站电机、水泵等设备的启停操作,同时通过水位、温度的检测实现设备的预警和自动停机保护功能,测控平台通讯控制结构见图3。
图3 测控平台通讯控制结构
在Microsoft Visual Basic 的开发程序界面(见图4),利用Form、Command、Text 等内置的控件属性来实现数据的传输、 控制。 首先通过Command1 控件查询指定的数据文件,若发现则返回值设置为“已找到”,否则返回值设置为“未找到”; 然后通过Command2 控件将发现的数据导入VB 程序内; 点击Command3 控件对数据进行排序,实现数据的排列整理,最后传入相应的Text 控件内, 完成.txt 文件与VB 程序之间的桥梁搭接。
图4 VB 开发程序段
在启动组态王测控系统之前,首先启动编写完工的VB 程序,点击打开抽放数据源(见图5),将Sensor-Sort 文件与DDE 程序关联,然后点击创建、查看排序文件,保证数据关联的准确性。
图5 VB 程序与txt 文本在PC 端的数据关联
在组态王应用程序的开发系统界面,选择左侧设备文件下的DDE 板块,新建dde 模块,选择标准的Windows 数据交换方式,然后在数据词典中创建关联变量,图中变量的名字与VB 程序中的text 文件的名字保持一致,连接设备选择dde,从而实现组态王中DDE 模块与VB 程序之间的数据交换的功能(见图6)。
图6 组态王DDE 模块与VB 程序关联
PC 端运行组态王开发程序, 通过以太网的通讯形式,接入到煤矿的环网光纤,然后通过分站引出的网线实现与PLC 的通讯, 从而实现远程监测实时数据与控制瓦斯泵、水泵启停的功能。
由于PLC 采集数据的频率较高, 加上数据传输的体量大,因此采用UPD 通讯协议,为了提高数据传输的效率,采用十六进制进行实时数据的双向传输,调试中接收的部分网络数据如图7所示。 数据传输部分程序段如下:
图7 16 进制网络数据接收
LD Always_On:SM0.0
MOVB VB2002,VB3003
MOVB VB2003,VB3002
ITD VW3002,VD4002
AENO
DTR VD4002,VD6002
AENO
MOVR VD6002,轴温1 传感器:VD632
/R 100.0,轴温1 传感器:VD632
组态王应用程序的控制界面如图8 所示,瓦斯泵的启停控制程序依据现场的工艺流程进行程序化编译, 鼠标点击相应设备的控制按钮,设备即启动或者停止, 图中出现模拟的流动状态,清晰的表明设备的运行状态。
图8 测控系统界面与PLC 可编程控制器
本文利用VB 在Windows 环境运行的前提下进行编程,实现了读取文件中数据的功能。 在目前的数字化信息时代中,各家企业都对自己的技术协议加以保护,不向第三方开放接口。 通过DDE 模块在VB 与组态王之间搭建桥梁,实现数据的共享,减少了企业的设备投入成本,为数据传输提供了一个简捷的方法。同时利用组态王的内置嵌入的SQL 模块化数据处理、曲线绘制,强化了智能化监测的视觉效果。