现场总线技术的高速交互RS485与Modbus协议的无缝融合
在工业控制、电力通讯和智能仪表等领域,串口通信一直是数据交换的主要方式。最初使用的是RS232接口,但由于其对环境干扰敏感性较高,导致信号传输错误的问题。为了解决这一问题,1979年施耐德电气提出了Modbus协议,现在RS485通信中广泛采用了这个协议。在了解RS485与Modbus通信之前,我们需要先认识到现场总线技术定义下的高速交互能力。
【RS485通信】
实际上,RS232已经存在于市场,但它也存在一些不足之处:
接口信号电平值过高,为十几伏特,对芯片易造成损坏,同时与TTL电平不兼容。
使用共地模式的传输容易产生干扰,并且抗干扰性能较弱。
传输距离和速率都有限,最多只能在两点之间进行通信,不支持多机联网。
针对这些缺陷,出现了新的接口标准,如RS485,它具有以下优势:
逻辑“1”表示为两线间的+(2—6)V差异压力;逻辑“0”表示为-(2—6)V差异压力。接口信号电平比RS232降低,不易损坏芯片,而且与TTL电平兼容,便于连接。
RS485提供快速的数据传输速度,可以达到10Mbps以上,其物理结构采用平衡驱动器和查分接收器组合,大大提高了抗干扰能力。
传输距离可达1200米左右,但速率与距离成反比,只有100KB/s以下的速率才能达到最大距离。如果需要更远距离,可以使用中继设备。
可以实现总线式联网,允许挂载多个收发器,从现有芯片来看,有32、64、128、256等不同数量设备驱动器可供选择。这种网络通常采用主从结构,即一个主机带多个从机。
然而,在连接RS-485链路时,如果忽略信号地的连接,这种方法虽然能正常工作,却会埋下隐患。这主要是因为共模干扰问题和EMI问题。当网络线路模电压超出范围时,就会影响稳定性甚至损坏接口。此外,由于PC默认只带有RS232接口,可以通过转换或PCI卡直接输出为RS485类型。
【Modbus通信协议】
Modbus是一种通用的工业标准化语言,它使得不同厂商生产的控制设备可以通过网络相互沟通,以实现集中监控功能。此协议定义了一种消息结构,用以描述访问请求过程以及响应来自设备请求的一般格式,以及如何检测错误并记录它。
Modbus具有几个显著特点:
标准开放,无需支付许可证费用,也不会侵犯知识产权。目前,有超过400家厂商支持此协议,并拥有超过600种产品。
Modbus可以支持各种电气接口,如串行端口(Serial Port)、USB等,还可以在各种介质上传送,如双绞线(Twisted Pair)、光纤(Fiber Optic)及无线(Wireless)等。
Modbus帧格式简单紧凑,可理解且易用,对用户来说开发简单,对厂商来说使用方便。
一、Modbus寄存器类型说明
寄存器被分为四类:用于设定输出状态或读取该状态(Holding Register)、用于输入端子设置或读取输入状态(Input Register)、用于保持运行中的参数设置(Coil Status)以及用于获取输入信息但不可写入修改(Discrete Input)。
二、Modbus通讯数据格式
单个写入指令:将一个字节写入指定位置;多个写入指令:一次性写入多个字节;读取指令则是从指定位置获取一个或一系列字节至本地系统处理。
三、Modbus功能码简述
功能码包括位操作命令如读/写单/批量内置变阻元件及其输入状态,以及字节操作命令如读/写保存寄存器及其输入寄存器内容。