【问题标题】:Modbus TCP/IP Address to PLC AddessModbus TCP/IP 地址到 PLC 地址
【发布时间】:2021-12-05 11:03:28
【问题描述】:

  • 我想在你在图片中看到的plc地址的两个四位数字之间加0。

我应该使用左移吗?

你能帮帮我吗?

PLC 地址 = 404606 --> 我想要值

PLC 地址 = 440606 --> 显示给我的值

【问题讨论】:

  • 截图来自哪个应用程序? Modbus 寄存器为 16 位,因此范围从(物理地址)0 到 65535。有多种写入这些地址的方法;您正在使用的应用程序似乎使用旧的 Modicon 约定,该约定在寄存器前加上命令(4 = 读取保持寄存器)。因为输入 4605 可能会提供所需的结果(有关详细信息,请参阅 this article 中的“当 40001 真正表示 1,或 0 真正表示 1”时)。

标签: tcpclient modbus plc modbus-tcp


【解决方案1】:

很好的 Modbus。重新阅读您的问题后,我相信您正在尝试将应用程序地址定位为保持寄存器 404606。编辑控件需要保持寄存器的十进制线偏移(例如,对于 40020,您将输入 19)。

因此,要为 PLC 地址静态文本获取 HR 404606,您需要在 编辑控件 中输入 4605

【讨论】:

  • 感谢您的回复
【解决方案2】:

您将应用层地址与有线地址混淆了。 Modbus FC 基本上定义了前导数字(0、1、3 或 4,即线圈、(离散)输入、输入寄存器、保持寄存器)。

所以在应用层,保持寄存器 4001 40001 400001 电线上的一切看起来都“相同”。线路“偏移量”比应用程序“偏移量”小 1(即应用程序层 40001 线路上的偏移量为 0x0000)。无法指定线路上的应用层位数。

我们所做的是坚持使用 5 位数字,当线路偏移量超过 9999(线路上的 0x270F 或更多在应用程序级别为 10000 或更多)时,切换到 6 位应用层地址,即 49999(5位应用层) 下一个 HR 显示​​为 410000(6 位应用层) 取决于 465536 (65536 偏移量为 0xFFFF 在线上)

在数据包级别没有必要“转移”(如果您是这样想的话)。

【讨论】:

    猜你喜欢
    • 2016-04-11
    • 1970-01-01
    • 1970-01-01
    • 2015-12-19
    • 1970-01-01
    • 2011-10-01
    • 2015-06-22
    • 1970-01-01
    • 2017-07-22
    相关资源
    最近更新 更多