西门子PLC基于MODBUS RTU通信协议时的寄存器地址对应关系及注意事项 西门子PLC在使用MODBUS RTU通信协议时,寄存器的地址是如何对应的?为什么第一个寄存器地址是40001? 功能码对照表如下:(H为16进制) 功能码 描述 PLC地址 寄存器地址 位/字操作 01H 读线圈 00001~09999 0000H~FFFFH 位 02H 读离散输入 10001~19999 ...
对应的 PLC 地址就是从 40001 开始,转换方式是“协议地址 + 40001 = PLC 地址”; 有些modbus 从站把地址映射到保持寄存器区的地址超过 9999 的部分。地址范围为400001 - 465536。对应的 PLC 地址就是从 400001 开始,转换方式是“协议地址 + 400001 = PLC 地址” S7 200 RTU通讯,变频器地址为什么要加40001?
设事件交换字存储地址为0,SOE读指针地址为1,大小均为1个字;SOE读指针指针指向46时,对应地址为256;电平变化分辨率为0.1ms。装置部分点表如下所示: 下面开始报文分析: 下行帧:1104 00 00 00 01 5A 33 11为从机地址(1byte),地址号17; 04为功能码(1byte),读输入寄存器; 0000为事件交换字地址(2byte),地址...
由子程序参数HoldStart和MaxHold指定的保持寄存器区,是在GForce-200 CPU的V数据存储区中分配,此数据区不能和库指令数据区有任何重叠,否则在运行时会产生错误,不能正常通讯。注意Modbus 中的保持寄存器区按“字”寻址,即MaxHold规定的是VW而不是VB的个数。 3 Modbus RTU协议测试 包含Modbus RTU从站指令库的项目编...
注意:在Modbus二进制数据指令里,表示寄存器地址的指令数据是从0开始的,Modbus RTU的寄存器地址是从1开始,注意对应关系。用功能码是可以识别到Modbus寄存器分区的,所以在Modbus二进制数据指令里,是不填写分区代码的,这在第四、节的案例里可以看出对应关系。3.3 Modbus RTU的数据位 Modbus RTU的数据位根据不同的...
MODBUS-RTU协议详解 X输入口开关量状态读取 (读取:DI寄存器,命令号:0x02) 描述 读模块的X输入口输入信号的 ON/OFF状态。 例子:读X1-X24当前输入状态的请求&响应报文 请求: 发送数据(HEX): 01 02 00 00 00 18 78 00 解释: 01:子站地址 02:指令号,02读DI ...
将Modbus RTU从站ModSim中Modbus地址从40001开始的5个字中的数据,分别读取到Modbus RTU主站CPU1215C中地址从DB1.DBW0开始的5个字中。 1.组态Modbus RTU通信模块 在硬件目录里找到“通信模块”→“点到点”→“CM1241(RS485)”,双击或拖拽此模块至CPU左侧即可,如下图1所示: ...
最近在写一个关于电量模块的arduino lib,需要了解电量模块的寄存器读写,涉及到硬件底层知识。 先复习一下计算机原理中有关位、字节和字的关系(来自google books) 再来看电量模块寄存器使用规约,先看通讯参数方面: 寄存器地址:0004H 默认值: 0105H 0105H转换成二进制为 ...
总之,Modbus地址一般指4***(保持寄存器/输出寄存器)和3***(输入寄存器),这时应用层面的: 比如设备说明书可以简要说明设备支持Modbus RTU标准协议,并详细描述其地址对应关系为:40001 ——模拟量采集通道1,16位有符号数,...。 比如组态软件的地址设置,一般为输出寄存器,从地址1开始,连续多少个。或者指明400001:16...