RS485通信基础知识

发布时间:2019-7-6    查看:15913

文档下载:RS485通信基础知识

1. 485通信

1.1. 通信连接

1.1.1. 接口定义:

       智能型数显仪表一般采用RS485通信接口方式,一般为三个端子:A+,B-,COM。如下图1:

       当一条总线上有多台485通讯设备时,连线要采用手拉手的接线方法,一条总线上建议最多不超过32台设备。如图2


图1:485通讯接线方法


图2:多台设备的485总线连接

1.1.2. 通信接口及转换器

       由于仪表采用RS485通信接口,一般常见的PLC、触摸屏等都有此接口。但是电脑上一般没有此接口。与电脑进行通信时,需要进行接口转换,常见的设备有:USB转RS485转换器RS232转RS485转换器以太网转RS485串口服务器通信管理机等。如图3:


图3:常见串口转换器

1.2. 通信设置

1.2.1. 协议:仪表支持标准的Modbus-RTU串口通信协议;参考相关国家标准:GB/T  19582.1-2008GB/T  19582.2-2008

1.2.2. 数据传输格式为:1位起始位,8位数据位,1位停止位,无校验位。

1.2.3. 仪表常规设置出厂值为:ADD地址:1,波特率:9600,CRC校验:N

1.2.4. 数据字节顺序:H-L(高在前,低在后)

1.2.5. 数据格式:整型(32位长整型long,16位短整型short),32位浮点型float。根据不同系列仪表不同。


1.3. 寄存器地址

1.3.1. 我公司说明书中寄存器地址,也叫变量地址或地址映射表,用十六进制地址码表示,如0X2000表示十六进制地址2000。32位数据占用2个寄存器位置(4字节),16位数据占用1个寄存器位置(2字节)。32位数据地址以0,2,4,6......等地址分别表示各参数占用的寄存器位置;16位数据以地址0,1,2,3......等地址表示各参数占用的寄存器位置。

如下图4:


图4:传感器表和电力表的参数地址表

1.3.2.计算机读取数据时,就从以上变量地址中读取相应数据。一般计算机与仪表通信时,上位机上直接用十六进制数据进行访问;但多数的工控组态软件、监控系统软件、PLC、触摸屏等,需要转换为十进制地址码进行读取。

如下图5、图6、图7设置,读0X4000开始的A相电压值,需将0X4000转换为十进制数得到16384,再用400001+16384=416385


图5:组态王串口设备测试时寄存器地址设置

图6:昆仑通态触摸屏设备通道采集设置


图7:西门子s7-200smart PLC读指令设置

1.4. 数据转换

1.4.1. 仪表一般用十六进制数据进行发送,上位机接收到数据后,需要进行数据转换处理,常用的一般是长整型、短整型、浮点型。long长整型数据为32位,占用2寄存器,4字节; short短整型数据为16位,占用1个寄存器,2字节;float浮点型为32位数据,占用2寄存器4字节。

1.4.2.上位机在处理数据时需要根据产品的实际数据类型做相应转换,以下表为例:


1.4.3. PLC存储区数据说明

       设读取的数据存储在以VB100开始的V存储区中,那么对于long\short\float等不同类型数据,应根据PLC定义的类型进行转换:


1.5.显示处理

1.5.1. 整型数据转换为十进制后,需要将小数点进行处理,可根据说明书进行小数点的倍率换算,一般是将转换的十进制数整数乘以小数位数。如:

2.Modbus-RTU通信协议简单介绍

2.1. 介绍

      Modbus协为工控行业的标准协议,分为两种协议,一种为Modbus-RTU串口协议,另一种Modbus-TCP网口协议

      Modbus协议为莫迪康(Modicon)开发的,后来被施耐德收购,现在已作为施耐德的标准协议。modbus协议在工业控制中得到了广泛的应用,它已经成为一种通用的工业标准,该协议支持rs-232、rs-422、rs-485和以太网设备。不同厂商生产的控制设备通过modbus协议可以连成通信网络,进行集中监控。许多工控产品,例如plc、变频器、人机界面、dcs和自动化智能仪表等,都在广泛地使用modbus协议。

       根据传输网络类型的不同分为串行链路上的modbus和基于tcp/ip协议的modbus。

       Modbus串行链路协议是一个主-从协议,采用请求-响应方式,主站发出带有从站地址的请求报文,具有该地址的从站接收到后发出响应报文进行应答。

       Modbus协议中,一条RS-485串行总线中只有一个主站,可以有1~247个从站。modbus通信只能由主站发起,从站在没有收到来自主站的请求时,不会发送数据,从站之间也不会互相通信。


2.2. modbus的报文传输模式---RTU模式

       Modbus网络上的rtu模式的报文以字节为单位进行传输,一个字节由两个十六进制数组成。传输的每个字节包含一个起始位,8个数据位(先发送最低的有效位),奇偶校验位、停止位与ascii模式的相同,报文最长为256字节。

       Modbus的rtu模式报文的最后两个字节是循环冗余校验码(crc)。其校验方式是将整个报文的所有字节(不包括最后两个字节)按规定的方式进行位移并进行xor(异或)计算。接收方在收到该字符串时按同样的方式进行计算,并将结果与收到的循环冗余校验码进行比较,如果一致则认为通信正确,如果不一致,则认为通信有误,从站将发送crc错误应答。 

       Modbus中rtu采用crc-16的冗余校验方式。


2.3.modbus功能码

2.4. 通信报文举例说明