您的位置  > 互联网

工控行业的标准协议/原料方法/步骤串行通信协议

协议包括ASCII、RTU、TCP等。数据通信采用Maser(主)/Slave(从)方式。 终端发送数据请求消息。 从终端接收到正确的消息后,可以向从终端发送数据以响应请求; 终端还可以直接发送消息修改从机终端上的数据,实现双向读写。

协议需要验证数据。 串行协议中除奇偶校验外,ASCII 模式采用LRC 校验,RTU 模式采用16 位CRC 校验。 但是TCP模式并不提供额外的验证,因为TCP协议是面向可靠连接的协议。

工具/原材料 方法/步骤 串行通信协议的基本规则: 每个数据包由以下5部分组成: (1)从机地址; (2)要执行的功能代码; (3)寄存器地址(变量地址);(4)数据; (5)CRC校验;

(1)从机地址:地址长度为1字节,有效从机地址范围为1-247。 如果从机收到地址信息与自身地址匹配的数据包,则执行该数据包。 包含命令。 (2) 功能码:数据包中功能码的长度为一字节,用于通知从站应执行什么操作。 从站的响应数据包应包含与主站请求的操作相同的功能代码字节。 功能码见下表:

(3) 寄存器地址:从机执行有效命令时,数据区存放的位置。 不同的变量占用不同数量的寄存器。 有些地址变量占用两个寄存器和4个字节的数据。 有些变量占用1个寄存器和2个字节的数据。 请根据实际情况使用。 有的占用更多的寄存器,根据实际数据而定。 (4)数据区:数据区包含终端执行特定功能所需的数据或终端响应查询时收集的数据。 这些数据的内容可以是数值、参考地址或设定值; 例如:功能码告诉终端读取一个寄存器,数据区需要指明从哪个寄存器开始,读取多少数据。 嵌入的地址和数据根据类型和从机的不同内容有所不同; 发送寄存器值的顺序是:高位字节在前,低位字节在后。 (5) CRC 校验: -RTU 模式使用 16 位 CRC 校验。 发送设备应对数据包中的每个数据进行CRC16计算,并将最终结果存储在验证字段中。 接收设备还应对包中的每个数据(校验字段除外)进行CRC16计算,并将结果字段与校验字段进行比较; 只接受相同的包裹。 通讯异常处理 如果主站发送非法数据包或主站请求无效的数据寄存器,则会出现异常数据响应。 该异常数据响应由从机地址、功能码、故障码和验证字段组成。 根据通讯要求,异常响应功能码=请求功能码+0x80; 响应异常时,将功能号最高位设置为1。例如:主机请求的功能号为0x04,则从机返回的功能号对应0x84。

举例: 1、读取多个寄存器 举例:主机读取仪表测量值UA(A 相电压),假设当前测量到A 相电压为220.0V。 UA的地址码为(十六进制),因为UA是长整型数据(4字节),占用2个数据寄存器。 220.0V电压换算对应的十六进制数据为:(2200)。 主机发送的命令格式为:01 03 40 00 00 02 D1 CB 从机返回的命令格式为:01 03 04 00 00 08 98 FC 59

例如: 例2:写入单个寄存器 假设将温控表的温度值SV修改为150(写入设定值SV)。 SV 的地址码为(十六进制),因为 SV 是一个整数(2 个字节),占用 1 个数据寄存器。 将十进制整数 150 转换为十六进制数。 主机发送的命令格式为:01 06 20 00 00 96 02 64 从机返回的命令格式为:01 06 20 00 00 96 02 64

防范措施