Modbus介绍


1.简介:Modbus是一种通信协议,用于不同厂商之间的设备交换数据

Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气 Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。
Modbus已经成为工业领域通信协议的业界标准,并且现在是工业电子设备之间常用的连接方式。
Modbus在工业环境下很流行,因为它是公开发布而免版税的。它是为工业应用开发的,与其他标准相比,它相对易于部署和维护,除了要传输的数据格式的大小外,几乎没有其他限制。

2.Modbus与RS485、RS232、RS422之间的关系

2.1.1.什么是RS485

通讯协议主要是实现两个设备之间的数据交换功能,通讯协议分硬件层协议和软件层协议。硬件层协议决定数据如何传输问题,比如要在设备1向设备2发送0x63,0x63的二进制数为0110 0011,这8个二进制数从设备1传输到设备2,涉及到1怎么传,0怎么传的问题,这就是硬件层要解决的问题。
RS485就是硬件层协议,同类的还有RS232,SPI,IIC等。

2.1.2.RS485电气特性

RS485的电气特性:

  • 逻辑“1”以两线之间电压差+(2-6)V表示;
  • 逻辑“0”以两线之间电压差-(2-6)V表示;
    接口信号电平比RS232(3-15V)降低了,就不容易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL电路连接。

RS485标准只对接口的电气特性做出决定,而不涉及接插件、电缆、协议;因此用户需要再RS485应用的网络基础上建立自己的应用层通信协议。
而Modbus就是应用层协议的一种,还有其他协议,如电表的645协议,也可用自己制定简单的通讯协议。

2.2.Modbus与RS485

Modbus与RS485在OSI模型中的位置:

上面说了,Modbus其实只是一种通信协议(软件),就像汉语和英语一样,就是一种交流语言,一种机器之间的交流语言。那么交流就要有沟通的桥梁或者说传输的介质(硬件),不同的介质(硬件平台)具有不同的电气特性和连接方式,比如RS232,RS485;
如果把Modbus比作英语,RS232比作印度人,RS485比作美国人,印度人之间讲英语时,理解为基于RS232的modbus通信,美国人之间讲英语时,理解为基于RS485的modbus通信。
总的来说,Modbus需要通过多种类型的物理介质进行通信,例如:

  • 串行RS232

  • 串行RS485

  • 串行RS422

  • 以太网

    最初的Modbus接口在RS-232串行通信上运行,但是大多数后来的Modbus实现使用RS-485,因为它允许:距离更长,速度更快,单个多点网络可接多个设备。

    3.Modbus通信协议

    串行端口和以太网存在多种版本的Modbus协议,最常见的是:

  • Modbus RTU

  • Modbus ASCII

  • Modbus TCP

    Modbus RTU,Modbus ASCII所用的物理硬件接口都是串行(Serial)通讯口(RS485,RS232,RS422),而Modbus TCP则是为了顺应当今世界发展潮流,什么都可以用Ethernet网或者Internet来连接,传送数据。所以有了Modbus TCP模式,该模式的硬件接口就是以太网(Ethernet)口了,也就是我们电脑上一般用的网络口。
    Modbu还有一个扩展版本Modbus Plus(Modbus+或者MB+),该协议是Modicon专有的,和Modbus不同。它需要一个专门的协处理器来处理类似HDLC的高速令牌旋转。它使用1Mbit/s的双绞线,并且每个节点都有转换隔离装置,是一种采用转换/边缘触发而不是电压/水平触发的装置。连接Modbus Plus到计算机需要特别的接口,通常是支持ISA(SA85),PCI或者PMCIA总线的板卡。

    4.Modbus通信方式:主-从模式

    Modbus串行链路协议是一个主-从协议。

    • 至少且只有1个主机,其他都是从机
    • 不管任何时候,从机都不能主动向主机发送数据
    • 主机具有访问从机的权限,从机不可主动访问从机,任何一次数据交换,都要由主机发起

    在同一时刻,只有一个主节点连接于总线,一个或多个子节点 (最大编号为 247 ) 连接于同一个串行总线。子节点之间从不会互相通信。
    主节点有两种方式与子节点发出请求:

    (1) 单播模式:点对点发送,主节点发送请求,子节点回应。

    (2) 广播模式:广播发送,主节点发送,子节点不回应。

    Modbus设备使用Master-Slave(Ethernet称为Client-Server)技术进行通信,其中只有一个设备(Master 或Server)可以请求数据(称为查询)。

    其他设备(Slaves或Clients)通过将请求的数据提供给主服务器或执行查询中请求的操作来进行响应。

    从站是任何外围设备,例如I / O传感器,阀门,网络驱动器或其他测量类型的设备,它们处理信息并使用Modbus将其响应消息发送到主设备。

    主机可以寻址单个从机或向所有从机发起广播消息。从站将分别对所有寻址到它们的消息查询返回响应,但不响应广播消息。

    从站不会自行回复消息,而仅响应从主站发送的消息查询。

    对于使用以太网的协议(例如Modbus TCP),任何设备都可以发出Modbus命令,因此所有设备都可以充当主设备,尽管通常只有一个设备充当主设备。


文章作者: niww
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 niww !
 上一篇
Modbus消息帧 Modbus消息帧
一、Modbus消息帧串口通信消息帧在串口传输模式中(ASCII或RTU),传输设备以将Modbus消息转为有起点和终点的帧,这就允许接收的设备在消息起始处开始工作,读地址分配信息,判断哪一个设备被选中(广播方式则传给所有设备),判知何时信
2020-06-10
下一篇 
JS中byte转String乱码 JS中byte转String乱码
项目中遇到一个问题,在JS中将byte数组转化为String的时候,有中文的情况下会出现乱码问题: function decodeToString(payload) { return String.fromCharCode.apply(
2020-04-23
  目录