通过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
。