rs485通讯接口与modbus协议

rs485通讯接口与modbus协议

工业控制、电力通信、智能仪表等领域,数据交换通常采用串行通信方式。最初采用RS232接口。由于工业领域的复杂性,各种电气设备在环境中会产生更多的电磁干扰,从而导致信号传输误差。另外,RS232接口只能实现点对点通信,没有组网功能,最大传输距离只能达到数十米,不能满足长途通信的要求。RS485解决了这些问题。数据信号的差分传输可以有效地解决共模干扰问题。最大距离可达到1200米,并允许多个收发器连接到同一总线。随着越来越多的工业应用通信,施耐德电气于1979年开发了一种工业现场总线协议Modbus协议。目前,Modbus协议在许多工业通信场合都使用RS485。

rs485通讯接口与modbus协议RS485的特点

1.       差分输入的最大优点是可以抑制共模干扰。特别是在工业领域,环境更为复杂,干扰也更大,如果通信采用差分方式,可以有效地抑制共模干扰。RS485是一种差分通信方式。它的通信线路是两条,通常分别用A和B或D+和D-表示。逻辑“1”用两条线之间的电压差表示为+(0.2-6)V,逻辑“0”用两条线之间的电压差表示为-(0.2-6)V,是典型的差分通信。

2.       RS485通讯速度快,最大传输速度可达10MB/s以上。

3.       RS485内部物理结构采用平衡驱动与差分接收相结合,抗干扰能力大大提高。

4.       最长传输距离可达1200米左右,但其传输速率与传输距离成反比。只有当传输速度低于100kb/s时,才能达到最大通信距离。如果变速器需要更远,可以使用继电器。

5.多机通信可以通过总线上的网络实现。总线上允许多个收发器。根据现有的RS485芯片,有32、64、128、256等不同设备的驱动程序

RS485通信电缆接线图

RS485接线图
RS485接线图

RS485接口非常简单。它类似于RS232中使用的MAX232。与单片机的UART串行接口直接连接只需一个RS485转换器,充分利用与UART一致的异步串行通信协议。但由于RS485是一种差分通信,它不能同时接收和发送数据,也就是说,它是一种半双工通信。

rs485通讯接口与modbus协议Modbus协议的特点

Modbus协议是用于电子控制器的通用语言。通过该协议,控制器可以相互通信,控制器可以通过网络(如以太网)与其他设备通信,已成为工业标准。利用它,可以将不同厂家生产的控制设备接入工业网络进行集中监控。该协议定义了控制器可以识别的数据结构,而不管它们通过哪个网络进行通信。它描述了控制器请求访问其他设备的过程,如何响应来自其他设备的请求,以及如何检测错误记录。它为通信数据的模式和内容建立了一种通用的格式。

在多机通信中,Modbus协议规定每个控制器必须知道其设备地址,根据地址识别发送的数据,决定是否生成动作,以及生成何种动作。如果控制器想要响应,生成的反馈信息将由Modbus协议发送。

Modbus协议允许在各种网络架构内进行简单的通信。每个设备(PLC、人机界面、控制面板、驱动器、输入输出设备)都可以使用Modbus协议启动远程操作。一些网关允许使用Modbus协议在多个总线或网络之间进行通信。

rs485通讯接口与modbus协议沟通注意事项通讯说明

控制器采用RS-485总线,协议符合ModBus RTU规约。

数据传输均采用8位数据位、1位停止位、无奇偶校验位。波特率可设为1200-9600 bit/s。 通讯传送分为独立的信息头,和发送的编码数据。以下的通讯传送方式定义与RTU通讯规约相兼容:

初始结构 = >=4字节的时间 地址码 = 1 字节 功能码 = 1 字节 数据区 = N 字节

错误校检 = 16位CRC码 结束结构 = >=4字节的时间

地址码:地址码为通讯传送的第一个字节。这个字节表明由用户设定地址码的从机将接收由主机发送来的信息。并且每个从机都有具有唯一的地址码,并且响应回送均以各自的地址码开始。主机发送的地址码表明将发送到的从机地址,而从机发送的地址码表明回送的从机地址。

功能码:通讯传送的第二个字节。ModBus通讯规约定义功能号为1到127。本控制器利用其中的一部分功能码。作为主机请求发送,通过功能码告诉从机执行什么动作。作为从机响应,从机发送的功能码与从主机发送来的功能码一样,并表明从机已响应主机进行操作。如果从机发送的功能码的最高位 (比如功能码大于127),则表明从机没有响应操作或发送出错。

数据区:数据区是根据不同的功能码而不同。 CRC码:二字节的错误检测码。

当通讯命令发送至仪器时,符合相应地址码的设备接通讯命令,并除去地址码,读取信息,如果没有出错,则执行相应的任务;然后把执行结果返送给发送者。返送的信息中包括地址码、执行动作的功能码、执行动作后结果的数据以及错误校验码。如果出错就不发送任何信息。

发表评论