(一)Modbus通信协议简介

1、简介

   Modbus是一种串行通讯协议,是Modicon公司于1979年为使用可编程逻辑控制器PLC通讯而发表。Modbus是工业领域通讯协议的业界标准,是工业电子设备之间经常使用的链接方式。Modbus在工业控制领域通讯协议中被普遍使用基于如下几个特色:编程

  1. 公开发表而且无版权要求;
  2. 易于部署和维护;
  3. 对供应商来讲,修改移动本地的比特或字节没有不少限制。

2、Modbus通信方式

  1. 以太网上的 TCP/IP ;
  2. 各类媒体(有线:EIA/TIA-232-EEIA-422EIA/TIA-485-A ;光纤、无线等)上的异步串行传输;Modbus RTU和Modbus ASCII通信既是采用该方式;
  3. Modbus Plus,一种高速令牌传递网络。

 

3、协议描述

  Modbus协议定义了一个控制器能认识使用的消息结构,而无论它们是通过何种网络进行通讯的。它描述了一控制器请求访问其它设备的过程,若是回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。   服务器

  经过此协议,控制器相互之间、或控制器经由网络(如以太网)能够和其它设备之间进行通讯。Modbus协议使用的是主从通信技术,即由主设备主动查询和操做从设备。通常将主控设备方所使用的协议称为Modbus Master,从设备方使用的协议称为Modbus Slave。典型的主设备包括工控机和工业控制器等;典型的从设备如PLC可编程控制器等。Modbus通信物理接口能够选用串口(包括RS23二、RS485和RS422),也能够选择以太网口。其通讯遵循如下的过程:网络

  1. 主设备(客户机)向从设备(服务器)发送请求;
  2. 从设备(服务器)分析并处理主设备(客户机)的请求,而后向主设备(客户机)发送结果;
  3. 若是出现任何差错,从设备(服务器)将返回一个异常功能码 。

  当在一Modbus网络上通讯时,此协议决定了每一个控制器需要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。若是须要回应,控制器将生成反馈信息并用Modbus协议发出。在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。异步

  Modbus的工做方式是请求/应答,每次通信都是主站先发送指令,能够是广播,或是向特定从站单播,从站响应指令,并按要求应答,或者报告异常;当主站不发送请求时,从站不会本身发出数据,从站和从站之间不能直接通信。测试

  Modbus协议可以应用在不一样类型的总线或者网络。对应不一样的总线或网络,Modbus协议引入一些附加域映射成应用数据单元(ADU),即ADU = 附加域 + PDU。例如:编码

  • RS232 / RS485 ADU = 253 字节+服务器地址(1 byte) + CRC (2 字节) = 256 字节 ;
  • TCP MODBUS ADU = 249 字节+ MBAP (7 字节) = 256 字节 。

4、数据编码

  MODBUS 使用一个‘big-Endian’ 表示地址和数据项。这意味着当发射多个字节时,首先发送最高有效位。 例如:
spa

Register size :
16 - bits
value:
0x1234

the first byte sent is :3d

0x12orm

then:blog

0x34

5、数据模型

  MODBUS 以一系列具备不一样特征表格上的数据模型为基础。四个基本表格为:

6、功能码

  有三类Modbus功能码。分别是:

  1.公共功能码:

  • 是较好地被定义的功能码 ;
  • 保证是惟一的;
  • MODBUS 组织可改变的 ;
  • 公开证实的 ;
  • 具备可用的一致性测试 ;
  • MB IETF RFC 中证实的 ;
  • 包含已被定义的公共指配功能码和将来使用的未指配保留供功能码 。

  2.用户定义功能码:

  • 有两个用户定义功能码的定义范围,即 65 72 和十进制 100 110 ;
  • 用户没有 MODBUS 组织的任何批准就能够选择和实现一个功能码 ;
  • 不能保证被选功能码的使用是惟一的 ;
  • 若是用户要从新设置功能做为一个公共功能码,那么用户必须启动 RFC,以便将改变引入公共分类中,而且指配一个新的公共功能码 。

  3.保留功能码:

  • 一些公司对传统产品一般使用的功能码,而且对公共使用是无效的功能码 。

  4.公共功能码定义以下表所示:

相关文章
相关标签/搜索