有的没的
占个位置
在这个帖子里边讲一下关于tcon_ip_v4的配法

= =写到notion了 请查收

#plc #modbus
一个modbus-tcp的配置例子(mb_client\mb_server)

图1为tia portal块配置 图2为通信流程图

1. 客户端发起请求 - 读取从地址 40001 开始的 3 个保持寄存器(每个16位,即一个word或者一个int)

2. 服务器查找数据 - 从 DB1.DBX0.0 开始的数据区读取对应值。
从图上可见mb_server准备的寄存器区域可以比查询长度的长。

数据映射关系:

40001 (地址0) ↔️ DB1.DBW0
40002 (地址1) ↔️ DB1.DBW2
40003 (地址2) ↔️ DB1.DBW4

3. 服务器响应 - 返回 6 个字节的数据(3个寄存器×2字节/寄存器)
客户端接收 - 数据存储到 MB_DATA_PTR 指向的位置

#modbus #plc
#plc #modbus

modbus中,client向server发起请求。中文行话中,client是主站,server是从站,因为client发起请求。

modbus的寄存器都是word长度的,所以只要绑定的db中都是存储的word类型变量。那么modbus的寄存器编号和db就能对起来。但是,modbus寄存器编号从1开始,dbx地址是从0开始。所以,40001,就代表的p#db1.dbx0.0 word 1

4xxxx代表的是寄存器类型,不是功能码为4。功能码可以不了解,tia portal的块会帮忙handle

### Modbus寄存器类型

1. **保持寄存器(Holding Registers, 4xxxx)**:
   - 读写寄存器。
   - 通常用于存储设备的配置参数、输出值等。
   - 通过功能码03(读取)和06/16(写入)访问。

2. **输入寄存器[DI](Input Registers, 3xxxx)**:
   - 只读寄存器。
   - 存储设备的输入数据或传感器数据。
   - 通过功能码04访问。

3. **线圈[DO](Coils, 0xxxx)**:
   - 读写位。
   - 表示数字输出的状态(开/关)。
   - 通过功能码01(读取)和05/15(写入)访问。

4. **离散输入(Discrete Inputs, 1xxxx)**:
   - 只读位。
   - 表示数字输入的状态。
   - 通过功能码02访问。
 
 
Back to Top