为了方便PLC设备维护人员在设备出现故障时进行问题排查和程序调试,本文设计了基于虚拟串口的PLC设备远程监控的程序传输方法,实现了程序的高效稳定传输。本文使用Microsoft.NET的MFC开发平台编程实现,为用户提供友好的操作界面,并充分利用MFC的多线程技术和串口控件,搭建了基于虚拟串口的串口通信和基于TCP/IP协议的网络通讯的传输结构。本文给出了两种通讯方式下通讯协议的设计和通讯接口的具体实现,并对程序传输进行了测试。
PLC(Programmable Logic Controller)作为高性能的微机化自动化设备,目前在国内外已广泛应用于钢铁、石油、电力、机械制造、交通运输、环保等各个行业[1]。随着其应用的推广,控制对象越来越复杂, 使用的环境越来越复杂, 控制要求也越来越高, 传统的PLC 设备程序调试模式已难以适应发展的需求[2]。
设备远程监视及控制已经成为自动化设备行业中不可或缺的部分, 在多设备、多使用场景的情况下, 及时对PLC 进行监控排除故障是有效解决问题的关键。当设备出现客户无法排除的故障时,维护人员如能及时的对PLC 进行远程数据和程序监控,则能及时解除故障,减少客户解决问题的时间,提高设备的利用率。为了保证远程监控调试程序的便利性及高效性,本文在本地程序调试模式的基础上探讨通过虚拟串口以及网络监控的模式来进行PLC 程序的远程上传与下载。
本文以欧姆龙公司CP1H 型PLC 设备为控制对象。运行在PLC 设备上的程序由PC 端的欧姆龙编程软件Cx-programmer 进行编译, 生成的CXP 程序文件可以通过USB和RS232 串口两种方式下载至PLC [3]。
虽然USB 的传输速度快,但受到成本高、开发复杂、需要驱动程序支持等因素限制;串口传输的速度相对较慢, 但其开发成本较低、本地对接方便且无需驱动程序支持, 故本文选择串口作为程序传输的接口。
2. 软件总体设计方案 2.1. 软件整体架构 PLC 设备运行在各种工业环境中,通过安装在其上的HLK-RM04 模块(串口—以太网—无线网模块)收集存储于PLC 数据区的参数数据,进行回传以判断当前设备状态,当某参数超限时可判断设备出现某种故障。由于需要对多台设备进行监控,PLC 远程监控软件采用C/S 模式,通过服务器端的数据库做统一的数据存储及转发。远程监控客户端安装在本地PC 上,通过虚拟串口对与Cx-programmer 软件互连, 编写好的程序经服务器通过网络发送至PLC。网络通信均采用TCP/IP 协议,以保证传输数据的准确性。
远程监控软件的架构如图1 所示。
从结构上划分,PLC 远程监控系统主要由以下4 个部分组成: