大家好,我是讯享网,大家多多关注。
在工业控制、电力通信、智能仪器等领域。,串行通信通常用于交换数据。最初采用RS232接口。由于工业现场的复杂性,各种电气设备在环境中会产生较多的电磁干扰,从而导致信号传输错误。
1979年,施耐德电气为工业领域开发了一种总线协议Modbus协议。现在工业上很多使用RS485通信的场合都使用Modbus协议,所以今天我们就来学习一下RS485通信和Modbus通信协议。
【RS485通信】
其实RS232早于RS485诞生,但是RS232也有一些缺点:
1.接口的信号电平值较高,达到十V以上,容易损坏接口电路的芯片,与TTL电平不兼容。因此,如果与单片机电路连接,必须增加一个转换电路。
2.该接口使用的信号线与其它设备形成共地模式通信。这种共模传输容易受到干扰,抗干扰性能较弱。
3.传输距离和速度有限,通信最多只能几十米;两点之间只能进行通信,不能实现多机联网通信。
针对RS232接口的上述缺点,出现了RS485等新的接口标准。RS485具有以下特点:
1.逻辑“1”由两条线之间的电压差+(2-6)V表示;逻辑“0”用两条线之间的电压差为-(2—6) V来表示,与RS232相比,接口的信号电平更低,不容易损坏电路的芯片,而且这个电平与TTL电平兼容,所以与TTL电路连接很方便。
2.RS485通讯速度快,最高数据传输速率在10Mbps以上;其内部物理结构采用平衡驱动器和分选接收器相结合,抗干扰能力大大增加。
3.最长传输距离可达1200m左右,但传输速率与传输距离成反比。只有100KB/s以下的传输速率才能达到最大通信距离。如果需要传输更长时间,可以使用中继。
4.总线上可以通过组网实现多机通信,总线上可以挂多个收发器。从现有的RS485芯片来看,有可以挂32、64、128、256等不同设备的驱动。
RS485有两线制和四线制。四线制只能实现点对点通信,现在已经很少使用了。双线连接是一种总线拓扑,同一总线上最多可以连接32个节点。在RS485通信网络中,一般采用主从式通信方式,即一主多从。
在许多情况下,当连接RS-485通信链路时,只需用一对双绞线连接每个接口的“A”和“B”端。而忽略了信号地的连接,这种连接方式在很多场合可以正常工作,但却埋下了很大的隐患。有两个原因:
共模干扰:RS-485接口以差分方式传输信号,因此不需要相对于参考点检测信号。该系统只需要检测两条线之间的电位差。然而,人们往往忽略了收发器具有一定的共模电压范围。RS-485收发器的共模电压范围为-7 ~+12V。只有满足以上条件,整个网络才能正常工作。当网络线路中的共模电压超过这个范围时,会影响通信的稳定性和可靠性,甚至损坏接口。
EMI:发射器驱动器输出信号的共模部分需要一个返回通道。如果没有低阻返回通道(信号地),就会以辐射的形式返回源头,整个公交车就像巨型天线一样向外辐射电磁波。
由于PC机默认只有RS232接口,PC机的RS485电路可以通过以下方法获得:
1.PC机串口的RS232信号通过RS232/RS485转换电路转换成RS485信号。对于复杂的工业环境,最好选择防浪涌隔离的产品。
2.通过PCI多串口卡,可以直接选择输出信号为RS485类型的扩展卡。
[Modbus通信协议]
Modbus协议是用于电子控制器的通用语言。通过这种协议,控制器可以通过网络(如以太网)相互通信,也可以与控制器和设备通信。它已经成为通用的工业标准。有了它,不同厂家生产的控制设备可以连接成一个工业网络进行集中监控。
该协议定义了控制器可以识别和使用的消息结构,描述了控制器请求访问其他设备的过程,如何响应来自其他设备的请求,以及如何检测和记录错误。它制定了消息域结构和内容的公共格式。
Modbus具有以下特征:
1.它是标准的、开放的,用户可以免费、放心地使用Modbus协议,无需支付许可费,也不会侵犯知识产权。目前支持Modbus的厂商有400多家,支持Modbus的产品有600多种。
2.Modbus可以支持多种电气接口,如RS-232、RS-485等。也可以在各种介质上传输,如双绞线、光纤、无线等。
3.Modbus帧格式简单、紧凑,易于理解。用户使用方便,厂商开发简单。
I . Modbus寄存器类型描述
1-线圈状态:输出端口,可以设置或读取其输出状态。
2-离散输入状态:输入端口,通过外部设置改变输入状态,可读不可写。
3-Hold寄存器:控制器在运行时设置的一些参数,可以读写。
4输入寄存器:控制器运行时从外部设备获取的一些参数,可读不可写。
二、Modbus通信数据格式
单次写入:
多次写入:
阅读:
三。Modbus功能代码简介
代码可分为位操作和字节操作。位操作的最小单位是位,字节操作的最小单位是2字节。
1位操作指令:读取线圈状态01H,读取离散输入状态02H,写入单个线圈05H,写入多个线圈0FH。
2字节操作指令:读取保存寄存器03H,读取输入寄存器04H,写入单个保存寄存器06H,写入多个保存寄存器10H。
四、Modbus功能代码
本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://51itzy.com/37495.html