文档介绍:MODBUS--TCPIP协议--介绍
1.该规范的发展概况
                              
    原始版本1997年9月3日作为公共评论的草案。
    再版1999年3月29日,即则
    所有的MODBUS 请求和响应都被设计成在此种方法下工作,即接收者可确认消息的完整性。对于请求和响应为固定长度的功能代码,仅发送功能代码就足够了。对于在请求和响应中 携带不定长数据的功能代码,数据部分前将加上一个字节的数据统计。
    当 Modbus通过TCP运送,前缀中携带附加的长度信息以便接收者识别消息的边界,甚至消息被分成若干组进行传输。外在的和隐含的长度准则的存在,以及 CRC-32检错代码(以太网)的使用使请求和响应消息中发生未被识别的错误的机率减至无限小。
                              
 
 
 
 
3. 一致性等级概述
                              
    当从草稿开始定义一种新的协议,有可能加强编码方式和阐述的一致性。MODBUS由于其先进的特性,已经在很多地方得到了实施,必须避免破坏它已经存在的实施。
    因此,已经存在的成套的处理类型被划分出一致性等级:等级0代表普遍使用且总体上一致的功能;等级2代表有用的功能,但带有某些特性。现存装置的不适应于互用性的功能也已确认。
    必须注意到,将来对该标准的扩充将定义附加的功能代码来处理现存事实标准不适用的情形。然而,被提议扩充的详细资料出现在本手册中将会另人误解。通过将代 码“随机的”发送或者即便是通过检查异常响应的类型来确定特别的目标装置是否支持特别的功能代码总是可能的,而且该方法将保证引入这些扩充的现使用的 MODBUS设备的连续的互用性。事实上,这就是当前功能代码的分级原则。
                              
                               
     这是最小的有用功能,对主站和从站来说。
         读乘法寄存器 (fc 3)
         写乘法寄存器 (fc 16)
                              
1
                              
    这是附加的被普遍实现的和能共同使用的成套功能,正如前面介绍过的,许多从站把输入,输出,离散值和寄存器值作为同等的进行处理。
l         读线圈 (fc 1)
l         读离散输入 (fc 2)
l         读寄存器输入 (fc 4)
l         写线圈 (fc 5)
l         写单一寄存器 (fc 6)
l         读异常状态字 (fc 7)
                              
    此功能对于每一个从站系列显然具有不同的含义。
                              
2
                              
    这些是需要HMI和管理等例行操作的数据传送功能。
l         强制型多路线圈 (fc 15)
l         读一般参考值 (fc 20)
    该功能可以处理并发的多个请求,而且能接收32位的参考数值。当前的584和984PLC’s仅使用此功能接收类型6的参考值(扩展的寄存器文件)。
    该功能最适于扩充以处理大的寄存器空间和缺少诸如“未定位”变量的参考值的数据对象。
                              
l         写一般参考值 (fc 21)
    此功能可以处理并发的多个请求,也可接收32位的参考数值。当前的584和984PLC’s仅使用此功能接收类型6的参考值(扩展的寄存器文件)。
    该功能最适于扩充以处理大的寄存器空间和缺少诸如“未定位”变量的参考值的数据对象。
l         掩膜写寄存器 (fc 22)
l         读/写寄存器 (fc 23)
                              
    此功能把一定范围的寄存器输入和输出当作单一的处理事务。使用MODBUS是执行规则的带有I/O模块的状态影象交换的最好办法。
    如此,高性能的通用的数据采集装置可以执行功能3,16和23,从而把快捷的数据规则交换(23)和执行特殊数据对象的