Modbus TCP/IP 地址到 PLC 地址
Modbus TCP/IP Address to PLC Addess
- 我想在你图中看到的plc地址的两个四位数字之间加0
我应该使用左移吗?
你能帮帮我吗?
PLC 地址 = 404606 --> 我要值
Plc 地址 = 440606 --> 显示给我的值
您将应用层地址与线路地址混淆了。 Modbus FC 基本上定义了前导数字(0、1、3 或 4,即线圈、(离散)输入、输入寄存器、保持寄存器)。
所以在应用层,保持寄存器
4001
40001
400001
所有这些在电线上看起来都“相同”。线路“偏移量”比应用程序“偏移量”小 1(即应用程序层 40001 在线路上的偏移量为 0x0000)。无法指定线路上的应用层位数。
我们所做的是坚持使用 5 位数字,当线路偏移超过 9999(线路上的 0x270F 或更多在应用程序级别为 10000 或更多)时,切换到 6 位应用层地址, IE。
49999(5 位应用层)
下一个 HR 显示为
410000(6 位应用层)
取决于
465536(线上的 65536 偏移量为 0xFFFF)
在数据包级别没有必要的“转移”(如果这是您的想法)。
好样的 Modbus。重新阅读您的问题后,我相信您正在尝试将 Application Address 作为 Holding Register 404606 的目标。编辑控件需要 Holding Register 的十进制线偏移量(例如,对于 40020,您将输入 19)。
因此,要获取 PLC 地址静态文本的 HR 404606,您需要在 编辑控件 中输入 4605。
- 我想在你图中看到的plc地址的两个四位数字之间加0
我应该使用左移吗?
你能帮帮我吗?
PLC 地址 = 404606 --> 我要值
Plc 地址 = 440606 --> 显示给我的值
您将应用层地址与线路地址混淆了。 Modbus FC 基本上定义了前导数字(0、1、3 或 4,即线圈、(离散)输入、输入寄存器、保持寄存器)。
所以在应用层,保持寄存器 4001 40001 400001 所有这些在电线上看起来都“相同”。线路“偏移量”比应用程序“偏移量”小 1(即应用程序层 40001 在线路上的偏移量为 0x0000)。无法指定线路上的应用层位数。
我们所做的是坚持使用 5 位数字,当线路偏移超过 9999(线路上的 0x270F 或更多在应用程序级别为 10000 或更多)时,切换到 6 位应用层地址, IE。 49999(5 位应用层) 下一个 HR 显示为 410000(6 位应用层) 取决于 465536(线上的 65536 偏移量为 0xFFFF)
在数据包级别没有必要的“转移”(如果这是您的想法)。
好样的 Modbus。重新阅读您的问题后,我相信您正在尝试将 Application Address 作为 Holding Register 404606 的目标。编辑控件需要 Holding Register 的十进制线偏移量(例如,对于 40020,您将输入 19)。
因此,要获取 PLC 地址静态文本的 HR 404606,您需要在 编辑控件 中输入 4605。