Modbus 基础知识

Modbus工业总线

Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气 Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工业领域通信协议事实上的业界标准,并且现在是工业电子设备之间常用的连接方式。1 Modbus比其他通信协议使用的更广泛的主要原因有:

  • 公开发表并且无著作权要求
  • 易于部署和维护
  • 对供应商来说,修改移动本地的比特或字节没有很多限制

Modbus允许多个 (大约240个) 设备连接在同一个网络上进行通信,举个例子,一个由测量温度和湿度的设备,并且将结果发送给计算机。在数据采集与监视控制系统(SCADA)中,Modbus通常用来连接监控计算机和远程终端控制系统(RTU)。

协议版本

Modbus协议目前存在用于串口、以太网以及其他支持互联网协议的网络的版本。

大多数Modbus设备通信通过串口EIA-485物理层进行2

对于串行连接,存在两个变种,它们在数值数据表示不同和协议细节上略有不同。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总线的板卡。

通信和设备

Modbus协议是一个master/slave架构的协议。有一个节点是master节点,其他使用Modbus协议参与通信的节点是slave节点。每一个slave设备都有一个唯一的地址。在串行和MB+网络中,只有被指定为主节点的节点可以启动一个命令(在以太网上,任何一个设备都能发送一个Modbus命令,但是通常也只有一个主节点设备启动指令)。

一个ModBus命令包含了打算执行的设备的Modbus地址。所有设备都会收到命令,但只有指定位置的设备会执行及回应指令(地址0例外,指定地址0的指令是广播指令,所有收到指令的设备都会执行,不过不回应指令)。所有的Modbus命令包含了检查码,以确定到达的命令没有被破坏。基本的ModBus命令能指令一个RTU改变它的寄存器的某个值,控制或者读取一个I/O端口,以及指挥设备回送一个或者多个其寄存器中的数据。

有许多modems和网关支持Modbus协议,因为Modbus协议很简单而且容易复制。它们当中一些为这个协议特别设计的。有使用有线、无线通信甚至短消息和GPRS的不同实现。不过设计者需要克服一些包括高延迟和时序的问题。

实现

几乎所有的实现都是官方标准的某种变体。不同的供应商设备之间可能无法正确的通信。一些主要的变化有:

数据类型

  • IEEE标准的浮点数
  • 32位整型数
  • 8位数据
  • 混合数据类型
  • 整数中的位域

协议扩展

  • 16位的从站地址
  • 32位的数据大小(1个地址 = 返回32位数据)
  • 字交换数据

限制

  • Modbus是在1970年末为可编程逻辑控制器通信开发的,这些有限的数据类型在那个时代是可以被PLC理解的,大型二进制对象数据是不支持的。
  • 对节点而言,没有一个标准的方法找到数据对象的描述信息,举个例子,确定一个寄存器数据是否表示一个介于30-175度之间的温度。
  • 由于Modbus是一个主/从协议,没有办法要求设备“报告异常”(构建在以太网的TCP/IP协议之上,被称为open-mbus除外)- 主节点必须循环的询问每个节点设备,并查找数据中的变化。在带宽可能比较宝贵的应用中,这种方式在应用中消耗带宽和网络时间,例如在低速率的无线链路上。
  • Modbus在一个数据链路上只能处理247个地址,这种情况限制了可以连接到主控站点的设备数量(再一次指出以太网TCP/IP除外)
  • Modbus传输在远端通讯设备之间缓冲数据的方式进行,有对通信一定是连续的限制,避免了传输中的缓冲区漏洞的问题
  • Modbus协议针对未经授权的命令或截取数据没有安全性。

立即搭建您的物联网平台?

接入设备,搭建可视化应用,仅需不到 30 分钟

进入控制台

设备轻松上云

设备统一接入

打破不同厂商设备上云孤岛,无需重复建设,海量设备接入同一个平台,搞定数据互通和智能联动。

开放接入协议
支持各类物联网设备,提供快捷且安全的接入服务。
全球接入点
支持国内及海外多地域接入,助您物联网业务全球化。
按需扩容
无需高额一次性投入,可随业务发展不断扩容。

数据采集

洞察数据价值

从设备数据采集,到实时控制,不需要复杂的操作和配置。

多数据类型
支持基本和复合数据类型,覆盖各行业物联网场景。
数据聚合分析
内置强大的历史数据分析,快速挖掘数据价值。
数据计算规则
内置规则引擎,支持云函数,实现任意业务需要。

可视化

数据及控制看板

一键添加数据和控制组件,支持丰富个性化样式,还可生成共享 URL。

50+ 可视化组件
持续新增可视化组件,助力各行业物联网场景。
个性化样式
从背景图到组件标题,每一处样式都可以灵活设置。
发布共享
生成看板共享 URL,每个看板就是一个小型应用。

App 应用

零代码 App 开发

不需要写一行代码,为您的物联网项目生成与众不同的 App。

多平台支持
公版 ThingsX App 支持 iOS/Android/微信小程序/Webapp。
OEM App
可生成您的专属 App,拥有自己的 App 名称、Logo。
多用户支持
内置用户账号体系,用户可认领设备。

SaaS 应用

一键生成 SaaS 后台

为您的客户生成独立管理后台,快速落地物联网项目。

个性化样式
从登录页到主题色,您可以设置不同的视觉效果。
自定义域名
可绑定您的域名,实现独立品牌推广。
关联看板
将精心设计的可视化看板,一键放置到 SaaS 应用中。

设备告警

简单易用的告警规则

不仅可通知项目成员,还可通知设备所属用户。

灵活的告警规则
快捷的多条件设置,让告警通知更加有效。
丰富的通知方式
支持短信、邮件、钉钉群机器人、企业微信、微信公众号。
集成自有公众号
用您的公众号为用户推送告警通知,积累私域粉丝。

API

带给您无限可能

ThingsCloud 支持完善的 API 服务,您可以基于 API 开发任意应用。

全方位开放
支持 HTTP API、MQTT 实时消息、Webhook。
集成到方案中
将 ThingsCloud 作为您的物联网中台,成为行业方案的基础设施。
应用定制服务
提供基于 API 的应用定制开发服务。

应用场景

全球 80% 的数据将来自物联网,不论是传统行业还是新兴行业,都将利用更多有价值的数据来驱动业务,实现降本增效。