基于 TCP/IP通信的传输协议开发

(整期优先)网络出版时间:2020-06-02
/ 2

基于 TCP/IP通信的传输协议开发

谭耀 1王洪刚 1 黄志坚 1

浙江捷创智能技术有限公司 贵州 贵阳 550002

摘要:在工业物联网的大力发展下,如今的自动化设备彼此互联的通信技术越来越丰富,如:(1)有线传输的RS232串口、RS485总线、USB总线;(2)近距离无线传输的RF433/315M、蓝牙Bluetooth、Zigbee、Z-Wave、IPv6/6Lowpan、LoRa;(3)传统互联网WIFI、以太网;(4)移动空中网的GPRS、3G/4G、NB-IoT等。尤其近两年华为在5G技术上取得的巨大成果,更进一步推动了IIoT工业物联网中“万物互联”的进程。

本文试图开发一种在实际自动化生产过程中通用于IT和OT之间的传输协议,利用这种传输协议,可以在OT部分打包各种底层自动化设备的参数或指令,然后通过现场工作站汇总发送到IT部分的云端,也可以直接由云端访问OT部分的底层自动化设备,整个过程基于TCP/IP实现。

关键词:物联网;传输协议;Labview;TCP

中图分类号: 文献标识码:

1 引言

在复杂非标自动化设备的设计过程中,通常需要一个控制器如PLC来采集不同传感器信号和控制各种执行设备。而下位机PLC和上位机之间可以通过串口、USB或以太网来完成硬件连接,之后根据自身的协议完成通讯。然而,每个工程项目,由于不同设计人员的习惯和选型不同,可能会出现不同的设备或者同一设备使用了不同的通讯协议和连接方式,这就可能造成上下位机的数据信息交互程序设计起来较为繁杂,而且,对于后期维护、改造和获取底层设备数据信息而言,也会比较麻烦,即使有较为完整的电气图纸和相关资料,实施起来也会花费不少时间和精力。

随着工业物联网的普及和发展[1],许多PLC/DCS、执行设备的厂家开始在产品上增加了以太网接口,而DTU、RTU的发展普及,也使得许多满足MODBUS协议的传感器可以通过以太网接口同其他设备直接以太网组网。因此,本文试图以TCP/IP通信为基础,设计一种通用的科学安全的传输协议格式来完成各类设备间的数据指令的传输。

2 网络拓扑结构

本文以自己搭建的系统为研究对象,利用自己所设计的传输协议格式来实现整个系统所有设备的统一格式通讯。现场工业交换机通过DOWNLINK连接了包括现场工作站(HMI和数据库)、PLC、DTU、RTU、执行设备(如伺服驱动器、变频器等)等,拓扑结构如图1所示,

5ed5b78608128_html_c638bbacf945aec8.gif

图1 系统拓扑图

该系统的信息流主要分为OT部分和IT部分:

OT部分:传感器通过DTU将数值经交换机传入PLC中,RTU、执行设备也通过交换机和PLC进行交互,这些通讯过程都是经MODBUS TCP完成,此时,PLC内部能通过解析MODBUS协议得到目标数据,然后经过自制的传输协议格式打包这些数据,并利用自身的TCP通讯功能将打包完成的数据包传给现场工作站。

IT部分:现场工作站将来自PLC的数据包经自制的协议格式解析后,反馈在自身HMI上,同时也将数据包经交换机UPLINK上传云端,经云服务器用自制协议格式解析后在大屏显示。远程客户端也可以用同样方式获取现场设备信息,并按照自制协议格式发布关于底层一些设备的控制参数,例如工艺的更改。

这样无论是OT到IT的设备参数反馈,还是IT到OT的工艺信息发布,都能够以一种安全统一的握手协议完成。自制的传输协议除了能保证整体系统传输协议的同一性和集成性外,还可以在将来开放的网络中杜绝黑客或入侵者对核心数据的盗取和对现场设备的干扰。

3 传输协议设计

由于不同层级设备的不同需求,整个系统所传输的信息主要分为两种[2]:高层级设备向低层级设备发送读写指令;低层级设备向高层级设备回复应答指令。为满足这些功能,传输协议的格式至少应具备两种:

发送指令:

报头+命令长度+设备IP+设备端口号+指令内容+回复指令报头+回复指令长度+报尾

定义:

报头——自定义内容,用来表示当前发送设备

命令长度——该条指令的总长度多少字节

设备IP——访问设备的IP地址尾段(由于现场所有设备在同一局域网,即具备相同的IP段,只是尾段不同,如192.168.0.xxx,这个尾段最大数可用1字节表示)

设备端口号——进入目标设备IP后对其哪个端口进行操作,例如设备IP代表PLC或RTU,那么端口号就是这个设备对应的数字量或模拟量的输入输出点号数

指令内容——对目标设备的端口进行什么操作,读还是写

回复指令报头——目标设备回复的指令报头,代表目标设备的编号

回复指令长度——目标设备回复的指令长度

报尾——校验指令

回复指令:

报头+命令长度+设备IP+设备端口号+指令内容+报尾

定义与发送指令类似,不赘述。

4 通讯程序设计

本研究考虑到Labview良好的扩展性、丰富的模块、充足的论坛资源知识支持,决定以此为人机交互的组态平台软件来开发相应的上位机程序,同时选取了常见的西门子1200PLC作为下位机的试验对象,利用配套博图软件中TCP块的收发数据功能完成与上位机的数据交互。

4.1 Labview部分程序原理

利用Labview程序面板中的数据通信/协议/TCP中的函数块可以打开TCP功能,并根据需求以字节数组的形式读取或写入目标IP地址的数据包。读取时,可根据自制传输协议格式分解具体指令内容;写入时,则按照自制传输协议格式打包数据包。

4.2 西门子1200PLC部分程序原理

该部分主要利用了博图中通信指令里的TSEND_C和TRCV_C两条指令来对目标IP地址的设备进行读写操作,在与指令匹配的DB数据块中定义好与自制传输协议格式匹配的字节数组,使PLC和上位机Labview的通信中能够彼此识别握手,实现读写目的。

5 总结和展望

目前,本研究已在西门子1200PLC和树莓派上做了简单的通信试验,并验证成功,未来将会进一步选取更多种类的带以太网接口的PLC、驱动器、RTU、DTU来做通讯试验,最终搭建一套完整的基于自制传输协议的通讯系统[3],并将这个模式逐步完善推广,促使未来工业物联网的信息传输更加安全可靠。

参考文献:

[1] 梅芳权. 智慧地球与感知中国——物联网的发展分析[J]. 农业网络信息,2009(12).

[2] 谭耀. 基于语音控制的移动机器人控制系统设计与实现[D], 哈尔滨工业大学硕士学位论文, 2012:7-11.

[3] Larry L. Peterson; Bruce S. Davie, 薛静锋等译. 计算机网络——系统方法(第四版)[M]. 机械工业出版社, 2009.