基于双RS-485总线的多从机高效通讯协议的设计与实现

2021-08-19 20:20赵磊穆蔚伟杜石雷
软件 2021年2期
关键词:数据通讯控制指令字节

赵磊 穆蔚伟 杜石雷

摘 要:工业现场多从机通讯广泛的应用于各类现场通讯系统中,本文提出了基于双RS-485总线的多节点快速通讯的协议实现方法,通过双路RS-485总线连接与主控器与多个节点间,在不影响正常的数据上传交互条件下,同时有效的提高了即时控制指令的下发与执行效率;该系统采用私有化精简通讯协议,以适应多节点、多功能的高效率通讯。

关键词:工业控制;数据采集;RS-485

中图分类号:TP273 文献标识码:A DOI:10.3969/j.issn.1003-6970.2021.02.018

本文著录格式:赵磊,穆蔚伟,杜石雷.基于双RS-485总线的多从机高效通讯协议的设计与实现[J].软件,2021,42(02):061-063

Design and Implementation of Multi-Slave High-efficiency Communication Protocol Based on Dual RS-485 Bus

ZHAO Lei, MU Yuwei, DU Shilei

(Zhonghuan Information College Tianjin University of Technology, Tianjin  300380)

【Abstract】:Industrial field multi-slave communication is widely used in various field communication systems. This article proposes a protocol implementation method for multi-node fast communication based on dual RS-485 buses, which one is connected to the master through dual RS-485 buses with multiple nodes, without affecting normal data upload interaction conditions, while effectively improving the issuance and execution efficiency of real-time control instructions; the system adopts a privatized and streamlined communication protocol to adapt to multi-node, multi-functional high efficiency communication.

【Key words】:industrial control;data acquisition;RS-485

0引言

工業现场多从机通讯通讯广泛的应用于各种工业控制中,目前在工业控制中多从机的数据通讯常见于基于RS-485的Modbus-RTU协议,但在对实时控制及数据通讯并存的系统中,Modbus-RTU协议的通讯效率难以达到某些应用场景,无法兼顾数据采集、以及实时控制的要求,本文提出了一种基于双RS485总线的多节点通讯协议,在较多从机接入总线时,可以有效的提高控制指令于数据采集的通讯效率。

1物理层设计

采用RS-485串行总线作为物理层设计,系统中采用双路RS-485总线连接于系统主机与多个从机之间,RS-485总线采用平衡发送,差分接收的结构设计,因此具有抑制共模干扰的能力,采用总线式连接,实现一主多从机的链路结构,物理链路采用双路通讯设计:控制总线、数据总线,在主从通讯中,控制总线多用于实时性较高的控制指令下发,以主机发送数据为主,当各个从机接收到指令校验正确后立即执行相应操作,以提高控制指令的实时性。数据总线多用于常规性数据采集,主机常以轮询方式采集各个从机数据。物理层连接方式如图1所示。

RS-485通讯是基于通用异步串行通讯的协议标准,标准的异步串行通讯协议中以每个字节作为一帧,由多个字节组成的数据流进行通讯,通讯双方或多方事先约定好通讯速率,按照此速率组成数据帧进行通讯。异步串行通讯帧结构由以下位构成:

起始位:先发出一个逻辑”0”信号,表示传输字符的开始。

数据位:紧接着起始位之后。数据的个数可以是4、5、6、7、8等,构成一个字符。通常采用ASCII码。从最低位开始传送,靠时钟定位。

校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性。

停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。

空闲位:处于逻辑“1”状态,表示当前线路上没有数据传输。

本系统中使用规定为1位起始位,8位数据位,无校验位,1位停止位,为保证控制指令的数据稳定性,同时提高数据交互的效率,本系统中控制总线通讯速率为19200bps,数据总线通讯速率为115200bps,主机及各个从机均以此设置进行通讯。

2数据链路层设计

本系统中数据以十六进制格式构成的帧结构进行通讯,由于系统中主机设备、从机设备均连接于同一总线,每个设备将以1个字节的地址作为唯一标识,主机设备的地址固定为0x00,从机地址由设备自行固定从0x01开始编码,最大支持128个设备,但须保持各个从机设备的地址唯一,0xFF表示广播地址,所有设备均接收此数据。

主机在发送数据时在数据帧中标记接收从机,从机接收到数据后首先校验数据帧的完整性,校验成功后提取数据帧的地址字段,判断是否属于本机地址,将属于本机地址的指令进行处理,并执行相应操作。

数据采用帧结构进行发送,每帧数据由可变长度字节数据构成,控制总线、数据总线均按照该帧结构进行通讯。该数据帧由帧头、地址、功能码、帧长度、数据、校验字节构成,结构示意图如图2所示。

帧头:帧头占用1字节,由系统固定设置为0xFE,作为该数据帧的起始同步字符的开始。

地址:地址字节为数据接收方地址,由数据发送方确定,符合地址设定的从机正常接收并处理数据,不符合地址设定的从机自动放弃。

功能码:功能码为指示该帧功能作用,由数据发送方确定,数据接收方根据指令集进行指令、数据处理。

帧长度:帧长度用来标记该帧中有效载荷的数据长度,长度有效值为0-250字节。

数据:该部分为帧中有效载荷,用于传输数据使用,当该指令无需参数或数据时,该字节长度为0,当该指令含有数据,则该部分数据长度由帧长度字节标定的数据长度为准,添加数据。

校验:校验采用CRC-8对帧中所有字节进行校验,校验数据从帧头开始截止到校验字节前。当接收方接收到数据时,首先需要对数据帧进行校验,以保证数据的准确性。

数据中固定参数占用5字节,有效载荷长度可变最少为0字节,最多为250字节,即数据帧总长度最少为5字节,最大为255字节;由于帧最大长度较小,可以有效的提高数据通讯的效率。

数据帧的界定由时间差决定,每帧数据中的字节间隔不得超过单字节数据通讯时长,该时长根据通讯波特率决定;协议规定各个数据帧之间的时间差最少为5倍单字节数据通讯时长,控制总线典型空闲时间约为4.2毫秒(波特率9600bps),数据总线典型空闲时间约为0.35毫秒(波特率115200bps),即总线上接收数据的设备根据总线空闲时间判断一帧数据是否完成传输。协议规定当指令需要从机进行反馈时,从机从接收到数据至回馈数据发送间隔必须保证在100毫秒内,否则主机则认为从机故障。

3应用层设计

为了提高系统控制通讯的效率,系统采用控制指令与数据采集同步运行的工作方式,在通讯协议中预设控制指令功能码与数据采集功能码,分别应用于控制总线与数据总线。

控制指令以主机发送控制执行为主,因此当发生控制命令后可立即下发控制指令于从机,无需考虑数据采集总线工作情况,从而提高了控制指令的实时性,控制指令可以采用指定地址接收,也可以采用廣播接收方式,用于对单个从机,或所有从机进行控制指令的下发。当从机接收到控制指令,如接收成功可立即执行,如果指令接收失败或校验错误,则由从机发送错误指令至主机,主机重新发送。

主机下发控制指令后相应从机接收到指令解析成功后立即执行,如由物理链路造成数据错位导致校验失败,或从机不支持相应控制指令导致控制指令执行失败,此时从机需立即向主机发送错误代码,主机根据错误代码进行重发或异常处理。控制指令通讯流程如图3所示。

数据采集指令以主机轮询从机的方式进行,当从机接入较多时轮询时间将会相应增加,因此数据采集指令适用于实时性要求不高的数据采集,主机通过轮询方式以此发送采集指令,各个从机接收到采集指令,接收成功后上传数据,主机接收到数据后进行下一从机的轮询。

主机根据已接入总线的设备依次下发数据采集指令,对应从机接收到数据采集指令后对指令进行解析,并根据相应要求在规定时间内回复数据,当超过回馈时间,主机则认为数据采集指令未收到或接收错误,并进行重发,当多次指令未回馈,认为从机掉线,主机做出相应异常告警,并将该地址从机屏蔽,对其他正常从机继续进行数据采集。数据采集指令通讯流程如图4所示。

系统中预设部分常用指令,同时可以根据实际应用修改指令集,为提高系统的通讯效率,采用双指令集进行通讯,基本控制指令集如表1所示。

4结语

本系统设计实现了工业现场多从机高效率通讯应用,基于双RS-485总线指令、数据独立通讯的结构,并使用精简的数据结构及指令,减少数据帧大小,有效的提高了通讯速率,可以应用于要求高实时性工业控制的数据通讯。

猜你喜欢
数据通讯控制指令字节
No.8 字节跳动将推出独立出口电商APP
城轨车辆控制指令试验装置研制
机器视觉系统与PLC的数据通讯
宏指令控制的多轴系统研究及实现
No.10 “字节跳动手机”要来了?
简谈MC7字节码
高速公路隧道通风、照明联动控制方案探讨
基于C#的船舶电力推进监控系统的数据通讯设计
智能电能表数据通讯安全性分析