基于物联网的PLC程序远程升级系统
作者: 朱金仁 胡余波
摘要:PLC传统的升级方式需要技术人员到现场进行操作,此方式工作效率低、时间与人力成本高。鉴于此,文章设计并实现了一种基于物联网的PLC程序远程升级系统,该系统利用物联网技术构建一条从组态软件到生产现场PLC的虚拟串口线,技术人员在办公室即可实现对生产现场PLC程序的远程升级,无需到现场操作。实验结果表明:该系统能够稳定、可靠的实现PLC程序的远程升级。
关键字:PLC;物联网;远程升级;虚拟串口线;GX Works2
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2025)09-0115-03 开放科学(资源服务) 标识码(OSID) :
PLC 是可编程逻辑控制器(Programmable LogicController) 的缩写,是一种专门用于工业领域的数字电子设备,可高效、稳定的控制机器和设备的运行,实现自动化生产。通常情况下,当现场PLC的技术需要更新或者程序出现故障时需要对PLC的程序进行更新。此外,当PLC控制系统的生产需求发生变化时,也需要对PLC程序进行更新。在数字化、智能化的工业浪潮中,PLC作为工业自动化系统的核心部件,其程序的更新与维护及其重要。传统的PLC更新方式往往需要现场工程师的实地操作,这种方式不仅效率低下,而且时间与人力成本较高。
PLC远程升级技术是指在不关闭PLC系统的情况下,通过远程方式对PLC程序进行更新升级。国内外的PLC厂商、研究机构都在积极开展PLC远程升级技术的研究和应用。孟庆龙等[1]提出了一种基于差分技术的PLC固件远程升级方法,此方式需对PLC固件进行编码、解码,过程复杂。国外工控巨头都推出了工业软件对自家的PLC产品进行远程升级[2],如西门子的TIA Portal软件,施耐德的Unity Pro软件等,但对其他厂家的PLC不兼容,缺乏通用性,而且一般要求现场具备有线宽带或Wi-Fi条件。为解决在不具备有线宽带的环境下,对不同厂家的PLC实现远程升级的问题,本文设计了一种基于物联网的PLC远程升级系统,利用此系统,可对不同型号的PLC进行远程升级,具有很好的兼容性。
1 总体架构
利用物联网技术构建一条从组态软件直达现场PLC的网络虚拟串口线,达到远程下载更新PLC程序的效果。构建虚拟串口线需要建立一个由设备端、云平台、客户端、组态软件构成的物联网通信系统,系统总体架构图如图1所示。1) 设备端,由PLC、网络模块组成,PLC与网络模块通过串口进行连接。网络模块先在云平台进行注册,上电后主动连接云平台,与云平台之间保持心跳连接,实时的向云平台上传采集的PLC数据。2) 云平台,是整个系统的核心,具有设备管理、用户管理、设备运行、设备日志等功能,负责整个系统数据的存储、分发与处理。通过mstc命令方式登录云平台,在云平台创建用户并为用户分配所属的网络模块。3) 客户端,客户端运行在Windows系统,使用在云平台创建的用户和密码进行登录,负责对网络模块进行串口、网口配置。4) 组态软件,和客户端运行在同一台计算机,对PLC程序的读取和下载。利用VSPD软件创建一对虚拟串口[3],组态软件通过虚拟串口与客户端实现数据交互。
2 系统需求分析
实现PLC程序的远程在线更新是本方案的核心需求,技术人员无需到生产现场,在办公室就能够掌握现场PLC的实时状态,通过组态软件能够以无线方式远程读取现场PLC的程序,在组态软件中对程序进行修改完善并下载到PLC中,从而减少工程师的现场操作,提高工作效率、降低生产成本。整个系统的需求按照重要性概括为以下几点:1) 网络模块与云平台之间的数据传输延迟时间控制在0.5秒内,丢包率控制在0.1%以内。2) 对传输的数据包建立加解密与校验机制,建立用户管理体系,防止未授权用户访问并对数据的篡改;3) 能够兼容多种型号的PLC设备,通过模块内置的串口或网口与PLC连接,实现数据的采集与转发。4) PLC状态数据可视化,能够对PLC进行远程故障诊断。
3 关键技术
系统采用的关键技术包含如下几点。
1) 设备端与云平台保持间隔时间为0.5秒的心跳连接,系统采用阿里云服务器,设备端内置云平台服务器域名,网络模块上电连接网络后直接寻址云平台服务器,向服务器发送进行连接的请求,服务器收到网络模块的连接请求后,打开连接,与网络模块保持间隔时间为0.5秒的心跳包连接,通过发送心跳包,网络模块实时向平台上报采集的PLC数据。2) 采用Socket与UDP协议传输AES加密的自定义数据报文,UDP协议[4-5]提供快速数据传输能力,适用于对设备实时性要求较高的场景,但在网络数据的可靠传输上存在弱点。本系统采用AES算法进行数据加密[6],在数据报文头尾部添加CRC校验码[7],通过时序控制按序发送数据包,建立动态缓存区,对接收的报文进行完整性检验,保证收、发数据包的完整性、安全性与可靠性。3) 断线重连机制,网络模块与云平台之间通过心跳连接保持实时连接状态,若3秒内未接收到模块数据包,则认为与平台断线,网络模块将对云平台发起重新连接。
4) 身份验证和权限校验机制,云平台在接收通道命令前,对客户端进行身份验证和权限校验,只有云平台创建的用户才能对PLC程序进行远程升级,有效防止未授权用户访问并篡改数据。
4 系统设计
4.1 物联网云平台
物联网云平台是整个物联网系统的枢纽,承担设备接入、数据通信、远程监控、数据存储与处理、数据分发等关键任务。物联网云平台采用分层架构设计,保证系统的安全性、稳定性与可靠性。1) 接入层,负责PLC设备的接入认证及数据的初步处理,使不同品牌和型号的PLC设备能够接入平台,目前,平台支持三菱、西门子的PLC、支持Modbus协议。2) 通信层,实现PLC设备与云平台之间的数据通信。采用Socket套接字与UDP协议传输自定义的数据报文,对报文进行加密,保障数据传输的安全性。3) 处理层,对接收到的数据进行解密解析、处理和存储。提取出有用的信息,如PLC设备的运行状态、故障报警等。同时将处理后的数据转发给相应的应用服务。4) 应用层,提供丰富的应用服务,如远程监控、程序更新、数据分析等。提供标准的API接口,用户可以用组态软件、JAVA、C++等调用API从云平台获取数据进行二次开发,实现远程组态监控、APP监控等。
4.2 网络模块及参数设置
网络模块分为内置sim卡和带网口的两种,通过串口与设备相连,无须设置,上电即可使用。如图2所示为4G网络模块,其性能参数为:1) 丢包率,常规环境下(非理想状态) 0.1%,即大概 1 000 个包丢 1 个包。2) 通讯速率:快速时为 300 毫秒延时(要求秒内必须有数据包发送) ,慢速时为 1 600 毫秒延时。3) 适用于交互式命令,例如 MODBUS 通信协议和多种 PLC 通信协议。
每个模块具有一个SN号,使用前在云平台进行注册并分配给指定用户,在云平台的客户端通过用户账户及对应的密码进行登录,在设备列表中按照SN 号选定模块,进行串口或网口设置,如图3所示为在客户端软件中设置4G模块的串口参数。
4.3 应用端软件
应用端软件包括安装在同一台电脑上的PLC的组态软件、云平台客户端软件、VSPD虚拟串口工具。不同厂家的PLC采用不同的组态软件,如三菱的GXWorks2。VSPD虚拟串口工具可创建虚拟串口对,使云平台客户端软件与组态软件利用虚拟的串口对进行串口通信。
打开客户端软件后进入登录界面,用在云平台创建的用户名及密码进行登录,登录成功后在主页显示用户所管理的网络模块信息,如图3所示,显示网络模块的编号,模块的描述信息、模块的离、在线状态、信号强度等信息。客户端的功能包括远程设置、开始设备上下载、停止设备上下载、后台运行等功能。按照SN 号选定模块,点击远程设置,进入参数设置界面,可按照实际要求对模块进行设置。然后点击“开始设备上下载”,打开组态软件,即可执行远程读取、写入PLC程序操作。操作完成后点击“停止设备上下载”并退出程序。
5 远程升级测试与分析
5.1 测试实验
测试实验所需的器材包括三菱FX0S型号PLC、远桥物联4G模块、串口连接线、Windows 7系统的电脑,电脑上安装云平台PC客户端软件、虚拟串口软件VSPD、三菱PLC 组态软件GX Works2,电脑上通过mstc命令远程访问云平台。将三菱PLC通过串口与4G模块连接,如图4所示。测试流程如下:1) 登录云平台,在设备管理模块添加测试用4G模块SN号,将模块添加到数据库中;2) 在云平台创建测试账号与密码,如账户为test,密码默认123456,将测试模块的SN 号添加到test账户下;3) 利用虚拟串口软件VSPD创建一对虚拟串口,如图5所示,云平台客户端和三菱PLC的组态软件GX Works2通过虚拟串口实现数据互通;4) 利用测试账户test及密码登录云平台客户端软件,对网络模块进行远程设置,选择端口号,配置与PLC互通的串口参数及PLC设备类型;5) 将PLC通过RS485与网络模块连接,连接后对PLC及模块上电,观察模块上RX/TX指示灯是否正常闪烁,闪烁表示通信正常;6) 打开三菱PLC的组态软件GX Works2,进行20次PLC程序的远程读取和写入测试。
5.2 实验结果及分析
经过20次测试,采用本系统均能够成功读取、写入PLC 程序,实现了PLC 程序的远程升级,成功率100%。如图6、7所示为远程读取、写入PLC程序的界面。经过测试统计,每次读取、写入PLC相同程序的耗时在40秒左右。当然,这个时间受PLC程序的大小、4G模块的网络环境影响。
6 总结与展望
本文设计并实现了一种基于物联网的PLC程序远程升级系统,通过本系统,技术人员在办公室就可实现对生产现场的PLC程序完成远程更新。本系统目前支持三菱、西门子、信捷等型号的PLC程序的远程升级,经过多次测试,均成功完成PLC程序升级,系统性能稳定、安全可靠。在后续,我们将继续完善系统,提高系统的扩展性,支持更多型号的PLC协议。
此外,将开发移动端的程序,使用户通过APP即可远程设置模块参数、实时查看PLC的状态信息,进一步丰富系统生态。