PLC 通讯管理系统在智能铸造工厂开发应用
2021-12-29王锦强
王锦强,杨 军,常 涛
(共享智能铸造产业创新中心,宁夏银川 750021)
1 PLC 通讯管理系统开发的背景
随着我国工业自动化技术的飞速发展,工业生产规模不断扩大,过程控制复杂程度也大幅度提高,工控系统需要集成数量和种类不断增多的现场信息,因此人们对自动化监控系统的要求越来越高。信息化在铸造企业生产运营中的应用逐步深入,智能化车间在传统的铸造企业中也成为现实,推进全部数字化管理,大数据、互联网+、人工智能等思想逐步在智能铸造工厂中实现应用。本文针对铸造企业的特点,开发了适用于智能铸造工厂的PLC 通讯管理系统,实现铸造工厂上层管理系统和底层设备的高效通讯。
2 PLC 通讯管理系统在智能铸造工厂中实现的必要性
现有智能单元和底层设备间通讯交互主要两种方式:一是通过MySql、SqlServer 等关系数据库,另一种是通过第三方Kepware、Wincc 等OPC 软件和PLC 进行通讯。
3D 打印砂芯、砂型智能铸造车间主要流程可分为:砂芯、砂型打印、砂芯、砂型清理、浸涂、微波烘干、入立体库、组芯、流砂、浇注、冷却、打箱、清理、砂处理、加工等工序,智能工厂涉及的设备有砂芯、砂型3D 打印机、物流AGV、砂箱缓存工位、清砂站、桁架机械抓手、浸涂池、微波烘干、立体库、砂芯缓存工位、流砂机等,所有设备均需实现物联网且能实现自动运行和过程数据采集,整个工序需要PLC、非标数采设备数量多于20 个,涉及设备参数变量6 000 个以上。
使用第三方Kepware、Wincc 等OPC 软件存在主要问题:设备变量较多时会增加读写延时;商业版的软件费用较高,分多套部署费用昂贵;智能单元前期测试过程信号模拟、上线集成过程难度较大;多变量实时性的监控对系统资源开销较大。当前智能铸造工厂智能单元系统和下层通讯的设备品牌有西门子S7 系列、三菱、欧姆龙、施耐德、倍福等,非标协议设备有测温枪、光谱仪、扫码枪等,其他信号交互方式有MySql、SqlServer 关系数据库、Redis 内存数据库。基于现有智能工厂系统架构,开发形成一套用于数采、过程控制、集成多种设备、关系数据,上层智能单元系统可统一使用的Http 数据接口,同时利用多线程技术+Redis 为智能单元提供实时数采,功能实现后不仅能降低上层智能单元的开发难度,并能将整个智能铸造系统架构按模块解耦[1]。
3 PLC 通讯管理系统开发实现
3.1 智能工厂PLC 通讯管理系统的架构设计
经过多方调研,使用C#.net 实现系统开发的方式可行,在上述这些数据交互方式中,通过以太网关系数据库的方式实现信号交互较为常规;西门子S7 系列(200、200Smart、300、400、1200、1500)[2]、施耐德、倍福、三菱、欧姆龙等PLC 均可通过基于以太网TCP/IP 的ModbusS7AdsOPCUA 等协议实现通讯[3-4];其它非标设备常用COM 口通讯,远程访问可使用NPort 进行转换,在服务器使用虚拟COM 报文通讯,由于不同设备的报文手法和解析机制不同,可按技术说明书解析使用。
该通讯系统不仅需要实现和下层PLC、数据库的通讯,还需要完成和上层智能单元的通讯,过程控制和智能单元交互的数据量较小且频次较低,可通过当前较为流行的HttprestfulAPI。而部分涉及过程监控及统计分析的数采变量,每次读取数据量较大且读取频次较高,部分相同变量需要由多个上层系统获取,此类数采由实时性更好、体量较小、能被多个服务器共享的内存数据库Redis 集群方式实现较为理想,最终系统实现架构如图1 所示。
图1 使用PLC 通讯管理系统后的智能工厂系统架构
3.2 PLC 通讯管理系统的功能模块
PLC 通讯管理系统需要实现三个功能模块:前端管理模块、过程控制的PLC 通讯功能模块、数采推送功能模块。
根据实际应用情况,三个系统可使用一个项目两种方式去实现,前端管理模块、Http 协议过程控制的PLC 通讯功能模块可以用统一B/S 架构实现,以便后期PLC 设备、变量等基础信息维护,而数采推送Redis 功能由于涉及多线程高速读写,适合用C/S 架构方式实现。两种功能块使用同一种底层通讯方式。
3.3 PLC 通讯管理系统在智能铸造工厂的应用
完成开发后,智能单元和设备信号交互通过调用PLC 通讯管理系统中json 格式Restful API 接口实现。为了方便智能单元在设备调试完成前的测试,本系统增加测试变量管理功能,实现为智能单元提供模拟交互信号,大幅度缩短后期进厂调试过程。智能单元为多系统分布式部署,在每个智能单元服务器安装内存数据库Redis 并设置为集群模式。系统将设备数据采集并推送到分布式Redis 集群,实现智能单元共享访问,实现后前端PLC 设备、变量、测试流程配置界面如图2 所示。
图2 PLC 通讯管理系统管理界面
前期的智能单元开发过程中,由于系统多个流程需要和设备交互信号,所以项目中智能单元的开发往往需要滞后到设备调试完成后。而在该PLC 通讯方式实现后,可以模拟设备和智能单元进行信号的交互,系统的开发测试阶段提前到工厂硬件建设初期,大幅度缩短进厂开发调试周期。
针对智能铸造工厂的特点,在多种类型底层设备通讯开发过程中,通讯通道建立和数据解析是关键的两个步骤,通道的建立过程常规PLC 基本都支持以太网通讯。非标设备(如测温枪、扫码枪、光谱仪)一般支持COM 通讯,通过以太网作为传输通道必须使用NPort 等设备将COM 转为以太网通讯,在服务器中再用虚拟串口将以太网转为COM 口。与获取数据报文代码的开发过程较为类似;数据报文的解析过程由于不同设备的报文收发机制不同,报文的数据字节、校验字节、启停字节在长度、排序、类型转换过程中的规律等都千差万别,所以解析过程较为繁琐耗时,通过对当前设备使用工具不断的抓包分析比对找出规律,进而按规律进行解析反复验证、优化。目前开发的PLC 通讯管理系统在3D 打印砂型、砂芯智能铸造工厂得到较好的应用,实现了工厂上层铸造管理系统和底层设备的高效通讯,实现了高效率管理。
4 总结
PLC 通讯管理系统过程控制基于B/S 架构轻量级开发,整体部署文件约10M,在有多个上层系统、多设备、多变量时可以分布式部署,这样将会大幅度降低单个服务器的压力,整体提升上层系统和设备通讯的效率。C/S 架构的推数据模块由于使用Redis,能高速比对出上次和本次数采数据是否有变化,采集的数据有变化时再向智能单元推送,能大幅度较少对整体服务器带宽资源占用,降低数据冗余。
遵从软件开发的高内聚低耦合思想,使用该方式将上层智能单元和底层设备的耦合性降低,一方面有利于后期迭代优化,另一方面降低上层系统开发的难度,让开发人员只关心当前业务的开发,降低开发难度。开发的PLC 通讯管理系统在智能铸造工厂已得到较好的应用。