MODBUS TCP/IP协议规范详细介绍

2010年02月05日
资料类型文件资料大小0
下载次数0资料图片【点击查看】
上 传 人默认需要积分0
关 键 词
暂无上传相关文件
【资料简介】
1.该规范的发展概况

原始版本1997年9月3日作为公共评论的草案。

再版1999年3月29日,即修订版1.0。

没有大的技术改动,仅作了补充说明。增加了附录A和B作为对一些常用执行问题的回应。


该Modbus/TCP规范在万维网上公开发行。它表明的意愿是把它作为工业自动化领域具有互用性的标准。

既然MODBUS和MODBUS/TCP作为事实上的“实际”标准,而且很多生产商已经实现了它的功能,此规范主要是阐述在互连网上具有普遍可用性的基于TCP通讯协议的MODBUS报文的特殊编码。

2. 概 述

MODBUS/TCP是简单的、中立厂商的用于管理和控制自动化设备的MODBUS系列通讯协议的派生产品。显而易见,它覆盖了使用TCP/IP协议的 “Intranet”和“Internet”环境中MODBUS报文的用途。协议的zui通用用途是为诸如PLC’s,I/O模块,以及连接其它简单域总线或 I/O模块的网关服务的。

MODBUS/TCP协议是作为一种(实际的)自动化标准发行的。既然MODBUS已经广为人知,该规范只将别处没有收录的少量信息列入其中。然而,本规 范力图阐明MODBUS中哪种功能对于普通自动化设备的互用性有价值,哪些部分是MODBUS作为可编程的协议交替用于PLC’s的“多余部分”。

它通过将配套报文类型“一致性等级”,区别那些普遍适用的和可选的,特别是那些适用于特殊设备如PLC’s的报文。

2.1 面向连接

在MODBUS中,数据处理传统上是无国界的,使它们对由噪音引起的中断有高的抵抗力,而且在任一端只需要zui小的维护信息。

编程操作,另一方面,期望一种面向连接的方法。这种方法对于简单变量通过*的“登录”符号完成,对于Modbus Plus变量,通过明确的“程序路径”容量来完成,而“程序路径”容量维持了一种双向连接直到被*击穿。

MODBUS/TCP处理两种情况。连接在网络协议层很容易被辨认,单一的连接可以支持多个独立的事务。此外,TCP允许很大数量的并发连接,因而很多情况下,在请求时重新连接或复用一条长的连接是发起者的选择。

熟悉MODBUS的会感到惊讶:为什么面向连接TCP协议比面向数据报的UDP要应用广泛。主要原因是通过封装独立的“事务”在一个连接中,此连接 可被识别,管理和取消而无须请求客户和服务器采用特别的动作。这就使进程具有对网络性能变化的适应能力,而且容许安全特色如防火墙和代理可以方便的添加。

类似的推理被zui初的万维网的所采用,他们选用TCP及端口80去实现一个作为单一事务的zui小的*网询问。

2.2 数据编码

MODBUS 采用“big-endian”来表示地址和数据对象。

这就意味着当一个数字表示的数量大于所传输的单一字节,zui大有效字节将首先被发送。例如:

16
bits
0x1234
将为
0x12
0x34

32
bits
0x12345678L
将为
0x12
0x34

0x56
0x78


2.3参考编号的解释

MODBUS将其数据模型建立在一系列具有不同特征的表的基础之上。这四个基本表如下

l 离散输入 单比特,由I/O系统提供,只读

l 离散输出 单比特,由应用程序更改,读写

l 输入寄存器 16比特,数值,由I/O系统提供 ,只读

l 输出寄存器 16比特,数值,由应用程序更改,读写

输入和输出之间以及可寻址位和可寻址代码的数据对象之间的差别并不意味着任何应用性能的不同。如果这是我们所讨论的目标机械的zui自然的解释,那么认为所有的四个基本表是相互覆盖的看法也是非常普通而*可以接受的。

对于每一个基本表,协议允许单独选择65536个数据对象中的任何一个,而且对那些对象的读写操作可以跨越多个连续的数据对象,直到达到基于处理事务功能代码的数据大小限制。

这儿没有假定数据对象代表一种真正邻接的数据阵列,而这是大多数简单PLC’s的解释。

“读写常用参考”功能代码被定义为携带32位的参考值并且能允许在“非常”大的空间里可以直接访问数据对象。现在没有可以利用这一特点的PLC设备。

一个易造成混乱的潜在来源是用于MODBUS功能的参考值和用于Modicon PLC’s的“寄存器值”之间的关系。由于历史原因,用户参考值使用从1开始的十进制数表示。而MODBUS采用更普通的从0开始的无符号整数进行软件数 据整理分析。

于是,请求从0读取寄存器的Modbus消息将已知值返回建立在寄存器4:00001(存储类型4=输出寄存器,参考值00001)中的应用程序。

2.4隐含长度基本原则

所有的MODBUS 请求和响应都被设计成在此种方法下工作,即接收者可确认消息的完整性。对于请求和响应为固定长度的功能代码,仅发送功能代码就足够了。对于在请求和响应中 携带不定长数据的功能代码,数据部分前将加上一个字节的数据统计。

当 Modbus通过TCP运送,前缀中携带附加的长度信息以便接收者识别消息的边界,甚至消息被分成若干组进行传输。外在的和隐含的长度准则的存在,以及 CRC-32检错代码(以太网)的使用使请求和响应消息中发生未被识别的错误的机率减至无限小。

3. 一致性等级概述

当从草稿开始定义一种新的协议,有可能加强编码方式和阐述的一致性。MODBUS由于其*的特性,已经在很多地方得到了实施,必须避免破坏它已经存在的实施。

因此,已经存在的成套的处理类型被划分出一致性等级:等级0代表普遍使用且总体上一致的功能;等级2代表有用的功能,但带有某些特性。现存装置的不适应于互用性的功能也已确认。

必须注意到,将来对该标准的扩充将定义附加的功能代码来处理现存事实标准不适用的情形。然而,被提议扩充的详细资料出现在本手册中将会另人误解。通过将代 码“随机的”发送或者即便是通过检查异常响应的类型来确定特别的目标装置是否支持特别的功能代码总是可能的,而且该方法将保证引入这些扩充的现使用的 MODBUS设备的连续的互用性。事实上,这就是当前功能代码的分级原则。

旗下子站

工控网机器人3D打印物联网仪器仪表工业软件



关于我们|本站服务|会员服务|企业建站|旗下网站|友情链接| 兴旺通| 产品分类浏览|产品sitemap

智能制造网 - 工业4.0时代智能制造领域“互联网+”服务平台

Copyright gkzhan.comAll Rights Reserved法律顾问:浙江天册律师事务所 贾熙明律师

客服热线:0571-87756395加盟热线:0571-87759904媒体合作:0571-89719789

客服部:编辑部:展会合作:市场部:

返回首页