Modbus是Modicon公司于1979年开发的一种通用串行通信协议,是国际上第一个真正用于工业控制的现场总线协议。由于其功能完善且使用简单、数据易于处理,因而在各种智能设备中被广泛采用。
许多工业设备包括PLC、智能仪表等都在使用Modbus协议作为它们之间的通信标准。由于电器巨头施耐德公司的推动,加上相对低廉的实现成本,Modbus现场总线在低压配电市场上所占的份额大大超过了其他现场总线,成为低压配电上应用最广泛的现场总线。Modbus尤其适用于小型控制系统或单机控制系统,可以实现低成本、高性能的主从式计算机网络监控。2008年3月Modbus正式成为工业通信领域现场总线技术国家标准GB/T 19582—2008。
一个Modbus信息帧包括设备地址、功能代码、数据段和错误检测域。Modbus只定义了通信消息的结构,对端口没有作具体规定,支持RS-232、RS-422、RS-485和以太网设备,可以作为各种智能设备、仪表之间的通信标准,方便地将不同厂商生产的控制设备连接成工业网络。
Modbus的数据通信采用主/从方式。网络中只有一个主设备,通信采用查询-回应的方式进行,主设备初始化系统通信设置,并向从设备发送消息,从设备正确接收消息后响应主设备的查询或根据主设备的消息作出响应的动作。主设备可以是PC、PLC或其他工业控制设备,可以单独和从设备通信,也可以通过广播方式和所有从设备通信。单独通信时,从设备需要返回一消息作为回应,从设备回应消息也由Modbus信息帧构成,而以广播方式查询的,则不作任何回应。主从设备查询-回应周期如图5-14所示。
在图5-14中,查询消息中的功能代码表示被选中的从设备要执行何种功能,例如指定的从设备地址为1,功能码为03,则含义是要求读取1#从站的多个寄存器值并返回它们的内容;数据段包括了从设备要执行功能的任何附加消息,例如从哪个寄存器地址开始读数据、要读的寄存器数量是多少个;错误检测域为从设备提供了一种验证消息内容是否正确的方法。
图5-14 主从设备查询-回应周期(www.xing528.com)
如果从设备产生正常的回应,则回应消息中的功能代码是对查询消息中的功能代码的回应。数据段包括了从设备收集的数据:寄存器的数据或状态,如果在消息接收过程中发生错误,或从设备不能执行其命令,从设备将建立一个错误的消息并将它作为回应发送,功能代码将被修改以指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。错误检测域允许主设备确认消息内容是否可用。
Modbus协议目前有用于串口、以太网以及其他支持互联网协议的网络的版本,大多数Modbus设备通信通过串口EIA-485物理层进行。由于Modbus协议所具有的良好的适用性,已经得到了诸如GE、SIEMENS等大公司的应用,并把它作为一种标准的通信接口提供给用户。
对于串行连接,在Modbus系统中有两种传输模式可选择,一种为RTU(远程终端单元)模式,一种为ASCII(美国标准信息交换代码)模式。这两种模式只是信息编码不同。RTU模式采用二进制表示数据的方式,而ASCII模式使用的字符是RTU模式的两倍,即在相同传输速率下,RTU模式比ASCII模式传输效率要提高一倍;但RTU模式对系统的时间要求较高,而ASCII模式允许两个字符发送的时间间隔达到1s而不产生错误。
在一个Modbus通信系统中只能选择一种模式,不允许两种模式混合使用,即被设置为RTU通信方式的节点不会和设置为ASCII通信方式的节点进行通信,反之亦然。通信系统选用哪种传输模式可由主设备来选择。
ModbusRTU是一种较为理想的通信协议,也是得到最为广泛应用的工业化协议,常见的通信速率为9600bit/s和19200bit/s。本节主要介绍ModbusRTU的基本概念及其应用。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。