You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CODESYS中获取MODBUS TCP保持寄存器的原始内存地址

CODESYS 3.5 地址与Modbus TCP保持寄存器映射指南

1. 先搞懂CODESYS地址的含义

比如%IW0的拆解:

  • %:全局变量标识
  • I:输入区域(Input),同理Q是输出、M是内存区、DB是数据块
  • W:字类型(16位),正好对应Modbus保持寄存器的16位长度;如果是B是字节、D是双字(32位)
  • 0:区域内的偏移量(0基索引)

2. 核心映射规则:以CODESYS Modbus Slave配置为准

不要迷信硬转公式,CODESYS作为Modbus TCP从站时,必须通过Modbus Server功能块的映射配置来确定对应关系,这是唯一准确的方式:

  • 打开CODESYS项目,在设备树里找到Communication下的Modbus TCP Server节点
  • 进入映射配置界面,会清晰列出CODESYS地址(如%IW0、%MW10)对应的Modbus保持寄存器地址(格式通常是4xxxx的10进制数,比如40001)

3. 常规默认映射参考(仅作快速验证)

如果你的项目用了CODESYS默认配置,通常有以下对应关系:

  • 全局输入字%IWn → Modbus保持寄存器40001 + n(因为Modbus是1基索引,CODESYS是0基)
  • 全局内存字%MWn → Modbus保持寄存器40101 + n(不同项目起始地址可能调整)
  • 数据块字DBx.DBWn → 需要手动在映射里指定,比如把DB1.DBW0映射到40201

4. 示例:%IW0转Modbus原始地址

假设默认输入区域起始寄存器是40001:

  • 10进制地址:40001
  • 16进制地址:0x9C41(40001转16进制的结果)

5. 针对IFM CR1203的额外提示

  • 该型号PLC的CODESYS项目通常自带Modbus映射模板,可以在设备的示例项目中找到参考配置
  • 如果找不到模板,直接新建Modbus Server功能块,手动添加需要映射的CODESYS变量,配置对应的Modbus寄存器地址即可

内容的提问来源于stack exchange,提问作者user19365766

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 00:26:01