modbus 协议地址

modbus 仿真软件
  • modbus slave: 用作 modbus 服务器(也叫做modbus从站), 通常用于仿真PLC设备.
  • modbus poll: 用作 modbus 客户端(也叫做modbus主站), 用于仿真上位机程序, 通常使用它在现场验证PLC设备的modbus通讯是否OK

理解 modbus 寻址

modbus 分4个数据区, 实际因为第4区可读可写, 同时按16个bit存储, 使用非常方便, 所以实际项目一般仅用第4区.

modbus 每个区的理论地址空间是 65536 个, 该寻址空间对于实际PLC设备来讲太大了, 所以PLC厂商一般采用的 9999 个地址空间, 也有仅仅提供 999 个地址空间, 这个地址通常叫做modbus协议地址, 简称协议地址, 也叫做modicon 地址(modicon公司是modbus协议的建立者, 归属施耐德).

各个功能区说明:

  • 0区, 即线圈(Coils), 只读, 每个地址1个bit, PLC厂商支持的协议地址区间: 00001 ~ 09999
  • 1区, 即离散量输入(Discrete input),可读写, 每个地址1个bit, PLC厂商支持的协议地址区间: 10001 ~ 19999
  • 3区, 输入寄存器(Input registers), 只读, 每个地址16个bit, PLC厂商支持的协议地址区间: 30001 ~ 39999
  • 4区, 保持寄存器(Holding registers), 可读写, 每个地址16个bit, PLC厂商支持的协议地址区间: 40001 ~ 49999

4区的各种地址叫法:

  • 协议地址(五码), 即 modicon 地址, 首码为功能码, 逻辑地址从1开始计, 有效范围为: 40001 ~ 49999
  • 协议地址(四码), 即 modicon 地址, 首码为功能码, 逻辑地址从1开始计, 有效范围为: 4001 ~ 4999
  • 协议地址(六码): 即 modicon 地址, 首码为功能码, 逻辑地址从1开始计, 有效范围为: 400001 ~ 465536.
  • 寄存器地址, 即首码不是功能码, 而且从0开始计, 如保持寄存器 0002, 对应的协议地址为 40003
  • NMobus 类库使用的是寄存器地址, 公式 = PLC 地址(五码) - 40001

PLC 厂商说明书往往提供地址名称和Modbus协议地址, 使用 NMobus 类库编程时候, 我们需要将其转成寄存器地址,

对应关系:
如果MB_SLAVE的MB_HOLD_REG=P#DB1.DBX0.0 WORD 5,则DB1.DBW0对应的modbus地址是40001,DB1.DBW2对应40002,DB1.DBW4对应40003,DB1.DBWn对应40001+n/2(n为偶数)。反过来的公式是:4xxxx 对应DB1.DBWm(m=2 x (xxxx-1))。

下图为西门子 S1200 的地址:

网络资料

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Modbus协议是一种通用性较强的串行通信协议,广泛应用于各种工业自动化和过程控制领域。Modbus协议支持多种传送方式,包括串行通信和以太网通信,也支持不同的通信协议,如TCP/IP协议、UDP协议等。 Modbus协议地址01 02表示Modbus协议中的功能码和寄存器地址。其中01表示读取线圈寄存器的值,02表示读取离散输入寄存器的值。读取线圈寄存器的值指的是读取具有开关状态的输出信号,如工业控制中的电磁阀、电机等;读取离散输入寄存器的值指的是读取相应的输入信号,如传感器输出的数字信号。 因此,Modbus协议地址01 02在工业自动化和过程控制领域中,可以用于读取工业设备控制的状态信息或传感器等设备输出的数字信号,进而实现对这些设备的监控和控制。在实际应用过程中,具体的读取方式和参数设置需要根据具体的设备和场景进行进一步的配置。 ### 回答2: Modbus是一种串口通信协议,可与多种设备进行通信。在Modbus协议中,地址01和02是读输入寄存器的功能码。 读取输入寄存器是Modbus协议中的一种读取方法,通常用于读取传感器等输入设备的数据。当数据被读取时,设备会将其存储在可读寄存器中,等待主机进行读取。 地址01和02的区别在于:地址01可同时读取多个输入寄存器的数据,并以16位二进制形式返回;而地址02则只能读取单个输入寄存器,并以16位二进制形式返回。 无论是使用地址01还是地址02,读取输入寄存器的过程基本相同。首先,主机要向设备发送读取指令,并指定要读取的寄存器地址和读取的寄存器数量。接下来,设备将读取的数据传输给主机,并以16位二进制形式返回。 总之,地址01和02是Modbus协议中读取输入寄存器的功能码。它们各有特点,但都可用于读取传感器等输入设备的数据。 ### 回答3: Modbus协议地址01 02代表这是Modbus协议的读取保持寄存器的功能码。在Modbus通信中,保持寄存器是一种特殊类型的寄存器,用于保存设备或系统中的信息,如控制参数、状态信息等。通过读取这些寄存器的值,可以了解设备或系统当前的运行状况。 Modbus协议地址01 02的具体含义是,读取从设备中起始地址为02的保持寄存器,连续读取一个或多个保持寄存器的值。这个功能码可以在Modbus通信协议中与其他功能码结合使用,实现对设备或系统的控制、读取和监控等操作。 需要注意的是,在使用Modbus协议地址01 02进行读取操作时,需要确保设备或系统已经正确地实现了Modbus通信协议,同时也需要对通信方式、通信速率等参数进行正确的配置,否则可能会导致通信失败或读取到错误的数据。 总之,Modbus协议地址01 02是Modbus通信协议中一个重要的功能码,可以用来读取保持寄存器的值,实现对设备或系统的控制、读取和监控等操作,并且需要在使用时确保正确配置通信参数,以确保通信成功和读取准确。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值