用户工具

站点工具


knowledge:electronic:modbus
no way to compare when less than two revisions

差别

这里会显示出您选择的修订版和当前版本之间的差别。


前一修订版
knowledge:electronic:modbus [2023/06/07 04:23] (当前版本) – 外部编辑 127.0.0.1
行 1: 行 1:
 +====== Modbus ======
 +Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议。
 +ModBus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。
 +ModBus网络只有一个主机,所有通信都由他发出。网络可支持247个之多的远程从属控制器,但实际所支持的从机数要由所用通信设备决定。采用这个系统,各PC可以和中心主机交换信息而不影响各PC执行本身的控制任务。
  
 +Modbus是一种串行通信协议,是Modicon于1979年,为使用可编程逻辑控制器(PLC)通信而发表的。Modbus是工业领域通信协议的业界标准,并且现在是工业电子设备之间相当常用的连接方式。Modbus比其他通信协议使用的更广泛的主要原因有:
 +
 +  - 公开发表并且无版税要求
 +  - 相对容易的工业网络部署
 +  - 对供应商来说,修改移动本地的比特或字节没有很多限制
 +Modbus允许多个 (大约240个) 设备连接在同一个网络上进行通信,举个例子,一个由测量温度和湿度的装置,并且将结果发送给计算机。在数据采集与监视控制系统(SCADA)中,Modbus通常用来连接监控计算机和远程终端控制系统(RTU)。
 +
 +===== 协议版本 =====
 +
 +Modbus协议目前存在用于串口、以太网以及其他支持互联网协议的网络的版本。
 +
 +大多数Modbus设备通信通过串口EIA-485物理层进行。
 +
 +对于串行连接,存在两个变种,它们在数值数据表示不同和协议细节上略有不同。Modbus RTU是一种紧凑的,采用二进制表示数据的方式,Modbus ASCII是一种人类可读的,冗长的表示方式。这两个变种都使用串行通讯(serial communication)方式。RTU格式后续的命令/数据带有循环冗余校验的校验和,而ASCII格式采用纵向冗余校验的校验和。被配置为RTU变种的节点不会和设置为ASCII变种的节点通信,反之亦然。
 +
 +对于通过TCP/IP(例如以太网)的连接,存在多个Modbus/TCP变种,这种方式不需要校验和的计算。
 +
 +对于所有的这三种通信协议在数据模型和功能调用上都是相同的,只有封装方式是不同的。
 +
 +Modbus有一个扩展版本Modbus Plus(Modbus+或者MB+),不过此协议是Modicon专有的,和Modbus不同。它需要一个专门的协处理器来处理类似HDLC的高速令牌旋转。它使用1Mbit/s的双绞线,并且每个节点都有转换隔离装置,是一种采用转换/边缘触发而不是电压/水平触发的装置。连接Modbus Plus到计算机需要特别的接口,通常是支持ISA(SA85),PCI或者PCMCIA总线的板卡。
 +
 +===== 实现 =====
 +
 +几乎所有的实现都是官方标准的某种变体。不同的供应商设备之间可能无法正确的通信。一些主要的变化有:
 +
 +**数据类型**
 +  * IEEE标准的浮点数
 +  * 32位整型数
 +  * 8位数据
 +  * 混合数据类型
 +  * 整数中的位域
 +  * multipliers to change data to/from integer. 10, 100, 1000, 256 ...
 +
 +**协议扩展**
 +  * 16位的从站地址
 +  * 32位的数据大小(1个地址 = 返回32位数据)
 +  * 字交换数据
knowledge/electronic/modbus.txt · 最后更改: 2023/06/07 04:23 由 127.0.0.1