产品描述
西门子清远PLC模块总代理
1.MODBUS功能码简述
下表列出MODBUS支持的部分功能代码:以十进制表示。
表1.1 MODBUS部分功能码
代码 | 中文名称 | 寄存器PLC地址 | 位操作/字操作 | 操作数量 |
01 | 读线圈状态 | 00001-09999 | 位操作 | 单个或多个 |
02 | 读离散输入状态 | 10001-19999 | 位操作 | 单个或多个 |
03 | 读保持寄存器 | 40001-49999 | 字操作 | 单个或多个 |
04 | 读输入寄存器 | 30001-39999 | 字操作 | 单个或多个 |
05 | 写单个线圈 | 00001-09999 | 位操作 | 单个 |
06 | 写单个保持寄存器 | 40001-49999 | 字操作 | 单个 |
15 | 写多个线圈 | 00001-09999 | 位操作 | 多个 |
16 | 写多个保持寄存器 | 40001-49999 | 字操作 | 多个 |
1.1功能码说明
功能码可以分为位操作和字操作两类。位操作的较小单位为BIT,字操作的较小单位为两个字节。
【位操作指令】 读线圈状态01H,读(离散)输入状态02H,写单个线圈06H和写多个线圈0FH。
【字操作指令】 读保持寄存器03H,写单个寄存器06H,写多个保持寄存器10H。
1.2寄存器地址分配
表1.2 MODBUS寄存器地址分配
寄存器PLC地址 | 寄存器协议地址 | 适用功能 | 寄存器种类 | 读写状态 |
00001-09999 | 0000H-FFFFH | 01H 05H 0FH | 线圈状态 | 可读可写 |
10001-19999 | 0000H-FFFFH | 02H | 离散输入状态 | 可读 |
30001-39999 | 0000H-FFFFH | 04H | 输入寄存器 | 可读 |
40001-49999 | 0000H-FFFFH | 03H 06H 0FH | 保持寄存器 | 可读可写 |
1.3寄存器种类说明
表1.3 MODBUS寄存器种类说明
寄存器种类 | 说明 | PLC类比 | 举例说明 |
线圈 状态 | 输出端口。可设定端口的输出状态,也可以读取该位的输出状态。可分为两种不同的执行状态,例如保持型或边沿触发型。 | DO 数字量输出 | 电磁阀输出,MOSFET输出,LED显示等。 |
离散 输入状态 | 输入端口。通过外部设定改变输入状态,可读但不可写。 | DI 数字量输入 | 拨码开关,接近开关等。 |
保持 寄存器 | 输出参数或保持参数,控制器运行时被设定的某些参数。可读可写。 | AO 模拟量输出 | 模拟量输出设定值,PID运行参数,变量阀输出大小,传感器报警上限下限。 |
输入 寄存器 | 输入参数。控制器运行时从外部设备获得的参数。可读但不可写。 | AI 模拟量输入 | 模拟量输入 |
1.4 PLC地址和协议地址区别
PLC地址可以理解为协议地址的变种,在触摸屏和PLC编程中应用较为广泛。
1.4.1 寄存器PLC地址
寄存器PLC地址指存放于控制器中的地址,这些控制器可以是PLC,也可以使触摸屏,或是文本显示器。PLC地址一般采用10进制描述,共有5位,其中**位代码寄存器类型。**位数字和寄存器类型的对应关系如表1所示。PLC地址例如40001、30002等。
1.4.2 寄存器协议地址
寄存器协议地址指指通信时使用的寄存器地址,例如PLC地址40001对应寻址地址0x0000,40002对应寻址地址0x0001,寄存器寻址地址一般使用16进制描述。再如,PLC寄存器地址40003对应协议地址0002,PLC寄存器地址30003对应协议地址0002,虽然两个PLC寄存器寄存器通信时使用相同的地址,但是需要使用不同的命令访问,所以访问时不存在冲突
Modbus地址模型的编号从1开始。
由于每一种数据都较大支持65536个元素,因此理论上,
对于线圈型数据来说,其地址范围为:000001~065536;
类似的,
离散量输入,其地址范围为:100001~165536;
输入寄存器,其地址范围为:300001~365536;
保持寄存器,其地址范围为:400001~465536;
由于65536是比较大的数值,实际应用一般不需要这么大的存储区,因此PLC厂家普遍采用的是10000以内的地址范围,即:
线圈地址范围:00001~09999;
离散量输入地址范围:10001~19999;
输入寄存器地址范围:30001~39999;
保持寄存器地址范围:40001~49999;
有了该地址模型,我们就可以从Modbus寄存器的地址判断要访问的区块的类型。比如本文开头提到到地址40001就是保持存储器的**个值的地址,而10001就是离散量输入的**个值的地址;要注意的是,保持寄存器和输入寄存器的每个值的大小为16bits(字),而线圈和离散量输入每个值的大小为1bit(位);
各PLC厂家根据PLC的实际情况,将Modbus的地址模型映射到实际的存储区。一般来说,线圈对应过程输出映像区(Q);离散量输入对应过程输入映像区(I);输入寄存器对应模拟量输入(AI);保持寄存器对应数据块或V存储区或M存储区。以西门子S7-200 SMART为例,其Modbus地址与存储器地址的对应关系
产品推荐