通过Modbus主站对Profinet寄存器读写
1. 简介
在modbus客户端页面,通过modbus从站通用寄存器地址,实现对profinet寄存器的读写操作。因为modbus主站开发时间较早,modbus主站配置的信号可以作为变量在编程界面直接使用。此方法可以使用户更简单的读写寄存器。
2. 环境配置
Profinet版本:0.3.0及以上版本
PLC设备:无要求
软件版本:0.29.2-beta.30及以上版本
3. Modbus客户端配置
操作步骤如下:
主站连接从站,添加
Modbus TCP设备,IP地址修改为:127.0.0.1,端口默认502;
批量添加modbus寄存器输出信号,信号地址
300-363;
打开
Modbus TCP从站开关,端口默认502;
4. 软profinet配置
- 安装Profinet服务。2025.03及后续的ARCS版本均已自带Profinet服务,无需手动安装。直接进入Profinet界面打开服务,稍后即可看到当前安装的Profinet版本。Prtofinet从站合PLC主站完成连接后,界面的灯会由黄色变成绿色。
5. 地址查询
此处使用的PLC型号为 西门子 S7-200 SMART,此PLC仅支持STEP 7-Micro/WIN SMART软件。
在配置中可以看到,SLOT4的起始地址为
128,通用寄存器起始地址偏移8字节,所以SLOT4的通用寄存器起始地址为136,对应的机器人的通用寄存器是int16Register[32]。
查找Modbus从站地址表,通用寄存器的起始地址是
300,对应的是int16Register[0]。int16Register[32]对应的是modbus332地址。SLOT4通用寄存器数量是32个,通过从站地址可以控制profinet寄存器的写入。
Modbus从站通用寄存器地址表:
Profinet通用寄存器表(PLC ->机器人):

地址对应表:
| Profinet通用寄存器地址 | Robot寄存器序号 | Modbus从站通用寄存器地址 | |
|---|---|---|---|
| 1 | IW136 | int16Register[32] | 332 |
| 2 | IW138 | int16Register[33] | 333 |
| 3 | IW139 | int16Register[34] | 334 |
| ... | ... | ... | ... |
| 32 | IW198 | int16Register[63] | 363 |

同样的,根据配置表可知,SLOT5的起始地址为
128,根据Profinet地址表可知通用寄存器起始地址偏移8字节,所以SLOT5的通用寄存器起始地址为136,对应的机器人的通用寄存器是int16Register[0]。查找Modbus从站地址表,对应modbus从站的通用寄存器地址300-331,共32位偏移地址,通过从站地址可以监测profinet寄存器地址。Profinet通用寄存器表(机器人 ->PLC):

地址对应表:
profinet通用寄存器地址 Robot寄存器序号 modbus从站通用寄存器地址 1 QW136 int16Register[0] 300 2 QW138 int16Register[1] 301 3 QW139 int16Register[2] 302 ... ... ... ... 32 QW198 int16Register[31] 331 
通过modbus主站页面可以控制profinet寄存器的读写操作。
示例1:
控制写入,通过modbus从站地址333,向PLC发送数据111,通过PLC 监控表监控地址IW138,值已变成111。
示例2:
监控读取,PLC通过profinet地址136,向机器人发送数据222,通过modbus信号页面监控地址300,值已变成222。