Modbus定义了四种可访问的数据模型,分别是:离散量输入线圈输入寄存器保持寄存器;

离散量输入只能以位(Bit)的形式访问,它是只读的,可以对应PLC的数字量输入;

线圈也要以位的形式进行访问,它可读可写,可以对应PLC的数字量输出;

输入寄存器要以字(Word)的形式进行访问,它是只读的,一般对应PLC的模拟量输入;

保持寄存器也要以字(Word)的形式进行访问,它可读可写,一般对应PLC的内部数据寄存器,比如西门子S7-200 SMART的V存储区,S7-1200/1500的数据块等;

数据模型是一种抽象的概念,在实际应用中,要将其对应的具体的物理地址才有意义。

于是Modbus协议又采用了一种地址模型,将各种数据模型进行编号,线圈编号为0,离散量输入为1,输入寄存器为3,保持寄存器为4;

Modbus地址模型的编号从1开始。由于每一种数据都最大支持65536个元素,因此理论上,

对于线圈型数据来说,其地址范围为:000001~065536;

类似的,

离散量输入,其地址范围为:100001~165536;

输入寄存器,其地址范围为:300001~365536;

保持寄存器,其地址范围为:400001~465536;

由于65536是比较大的数值,实际应用一般不需要这么大的存储区,因此PLC厂家普遍采用的是10000以内的地址范围,即:

线圈地址范围:00001~09999;

离散量输入地址范围:10001~19999;

输入寄存器地址范围:30001~39999;

保持寄存器地址范围:40001~49999;

我的书《西门子S7-200 SMART PLC应用技术》有关于Modbus的介绍,如果你感兴趣,可以看看下面的链接:

#电气自动化##Modbus##PLC#

西门子S7-200 SMART PLC 应用技术—编程+通信+装调+案例(双色印刷+视频讲解 大量工程实例介绍、工艺介绍、在线交流平台)