632
浏览面向PLC的多协议工业网关的设计与实现
摘要:可编程逻辑控制器(Programmable Logic Controller,PLC)是工业自动化领域的核心设备,其常用的工业现场总线协议多达数十种,各大PLC厂商也基本都有各自的总线协议,不同种类的PLC通信协议之间无法兼容适配。同时,随着越来越多的PLC接入互联网,网络带宽浪费和数据传输不安全的问题愈发明显。针对上述问题,本文设计了一种面向PLC的多协议工业网关,主要的研究内容如下:(1)通过分析工业4.0环境下PLC数据采集的发展现状,设计了一种面向PLC的多协议工业网关,以实现不同种类PLC的数据采集与转发;根据工业数据处理需求设计并搭建了网关的软硬件平台:硬件平台包括主控芯片的接口规划与扩展模块的电路设计;软件平台包括Open Wrt系统的内核裁剪、网卡驱动的移植以及设备树的修改。(2)针对不同种类的PLC通信协议之间不能兼容适配的问题,根据软件模块化的思想,设计了网关的数据采集模块:根据多任务并行处理需求,设计了网关的多线程工作模式,并对具体线程进行了规划;根据现阶段PLC的通信接口要求,设计了网关的网口和串口函数,由此构成了网关的基本采集逻辑和架构;以Modbus、AB CIP、S7这三种PLC通信协议为例,对它们的通信步骤和协议框架进行了具体分析,以此总结出了PLC通信协议的分析和扩展方法,并根据主流PLC的轮询式通讯模式,设计了PLC通信协议库的调用框架,实现了网关与不同种类PLC之间的通信;根据服务器的数据处理需求,设计了网关的协议转换模型,对PLC对象数据进行地址映射,将不同种类的PLC通信协议数据转换成统一的消息格式进行转发,便于服务器统一调用。(3)针对现阶段网络带宽浪费和数据传输不安全的问题,根据软件模块化的思想,设计了网关的数据转发模块:基于消息队列遥测传输(Message Queuing Telemetry Transport,MQTT)设计了网关的云交互协议体系;通过分析不同种类的PLC通信协议指令构成,以MQTT为框架,设计了一种用于网关结合上位机软件采集终端PLC数据的应用层规范—异构协议,从而提供一种代替Java Script对象简谱(Java Script Object Notation,JSON)的面向工业PLC通信协议的统一数据格式规范;根据PLC数据的读写需求设计了九种MQTT消息主题,并结合异构协议设计了消息转发的具体逻辑;针对工业环境下数据转发的安全性需求,设计了基于国密SM4的加密通信模块:实验对比表明,SM4算法加解密同一段明文所花费的时间是AES算法的43.2%,效率更高。(4)对所设计的网关进行了测试与分析:搭建了软件开发环境并在x86 Linux主机上部署了EMQ服务器,作为MQTT的消息代理;设计了一种基于MQTT通信的上位机软件,通过对应的MQTT消息主题以及消息转发逻辑对网关进行远程配置管理;进行了PLC—网关—上位机软件之间的双向通信测试,实验结果表明三者之间可以正常通信,该网关对于所测试的五种PLC机型具有很好的连通性;进行了异构协议流量测试,实验对比表明,采用异构协议格式的报文相比JSON格式节省了73%~75%的流量。
关键词:工业网关;PLC数据采集
文章目录
摘要
Abstract
第一章 绪论
1.1 研究背景与意义
1.2 国内外发展现状
1.2.1 PLC数据采集的发展现状
1.2.2 工业网关的发展现状
1.3 论文的研究内容与章节安排
第二章 网关的软硬件平台搭建和整体架构规划
2.1 网关的硬件平台搭建
2.1.1 硬件体系结构设计
2.1.2 主控芯片接口规划
2.1.3 4G模块电路设计
2.1.4 电源电路设计
2.1.5 通信接口电路设计
2.2 网关的软件平台搭建
2.3 网关软件的整体架构规划
2.4 本章小结
第三章 网关的数据采集模块设计
3.1 多线程设计
3.2 串口和网口函数设计
3.2.1 串口函数设计
3.2.2 网口函数设计
3.3 PLC通信协议分析与总结
3.3.1 通用Modbus协议分析
3.3.2 罗克韦尔AB CIP协议分析
3.3.3 西门子S7协议分析
3.3.4 PLC通信协议分析和扩展方法总结
3.4 PLC通信协议库设计
3.5 通信协议转换模型设计
3.6 本章小结
第四章 网关的数据转发模块设计
4.1 MQTT平台设计
4.1.1 MQTT概述
4.1.2 MQTT平台体系架构设计
4.2 异构协议设计
4.2.1 异构协议概述
4.2.2 异构协议格式
4.2.3 异构协议对象
4.3 异构协议在MQTT平台中的应用
4.3.1 MQTT消息主题设计
4.3.2 基于MQTT的异构协议消息转发设计
4.4 网关加密通信设计
4.4.1 加密通信概述
4.4.2 基于国密SM4的加密通信设计
4.4.3 SM4与AES的算法实现与比较
4.5 本章小结
第五章 网关的功能测试与分析
5.1 软件开发环境搭建
5.2 MQTT服务器搭建
5.3 上位机软件设计
5.4 测试与分析
5.4.1 双向通信功能测试
5.4.2 异构协议流量测试
5.5 本章小结
第六章 总结与展望
6.1 总结
6.2 展望
致谢
[1]PLC在电气自动化控制中的应用研究[J]. 姜国正. 冶金与材料. 2021(06)
[2]Linux使用pthread对时间管理的探究[J]. 张彦博. 电子世界. 2021(20)
[3]工业互联网环境下的工业大数据采集与应用[J]. 刘欣,李向东,耿立校,孙红桃. 物联网技术. 2021(08)
[4]基于体域网的低能耗多协议转换网关设计[J]. 高丽,王杨,赵翼,张鑫. 计算机技术与发展. 2021(08)
[5]MQTT协议在智能电力网关中的实现[J]. 赵睿林. 电器与能效管理技术. 2021(07)
[6]基于Samba的企业级授权文件共享服务器[J]. 常磊. 信息与电脑(理论版). 2021(09)
[7]应用于智慧社区的安全接入网关设计与实现[J]. 薛艺泽,鄢金端,曹鹏益. 中国安全防范技术与应用. 2021(02)
[8]边缘计算网关的功能设计与系统实现[J]. 刘亮,李卉. 电测与仪表. 2021(08)
[9]一种西门子S7私有协议的Fuzzing漏洞检测方法[J]. 刘金永,王勇,李双飞,朱毅文. 上海电力大学学报. 2020(04)
[10]一种批量文件加密实时传输及存储的方法[J]. 谭文贵. 电子技术与软件工程. 2020(15)