3. S7-1200/1500与G120变频器PROFINET通讯:硬件组态、设备名称与IP地址分配、报文配置与控制字状态字解析
各位工程师朋友,大家好。今天我们来聊聊S7-1200/1500与G120变频器通过PROFINET通讯这件事。说实话,这个组合在工业现场太常见了,几乎每个项目都会碰到。我刚开始接触时也踩过不少坑,今天就把这些经验分享给你们。
3.1 硬件组态——先把“路”铺好
硬件组态说白了,就是让PLC和变频器互相认识。在TIA Portal里操作,其实不复杂。
第一步:添加PLC
新建项目后,双击“添加新设备”,选你的S7-1200或1500型号。我个人习惯把CPU型号和固件版本都核对清楚,不然下载时容易报错。
第二步:添加G120变频器
在“硬件目录”里找到“驱动器”->“西门子变频器”->“G120”。注意选对控制单元型号,比如CU240E-2或CU250S-2。拖到网络视图里,系统会自动生成一个PROFINET接口。
关键点:G120的PROFINET接口默认是“PN-IO”,别选成“PN-IF”了。我遇到过有人选错,结果通讯死活不通。
第三步:连接设备
在网络视图里,把PLC的PROFINET接口和G120的接口用线连起来。系统会自动分配IO地址,一般不用改。
3.2 设备名称与IP地址分配——给设备起个名
PROFINET通讯里,设备名称比IP地址更重要。为什么?因为PROFINET是靠设备名称来识别设备的,IP地址反而是辅助的。
设备名称设置:
- 在G120的属性里,找到“PROFINET接口[X1]”->“以太网地址”
- 勾选“生成PROFINET设备名称”,我一般用“g120_drive_01”这种格式
- 注意:名称不能有空格,不能以数字开头,长度不超过127个字符
小技巧:设备名称最好和项目里的设备编号对应,比如“g120_line1_motor2”。这样后期维护时,一看就知道是哪个设备。
IP地址分配:
IP地址可以手动设置,也可以用DCP协议自动分配。我建议手动设置,避免冲突。比如PLC用192.168.0.1,G120用192.168.0.2,子网掩码255.255.255.0。
注意:IP地址必须在同一网段,否则通讯不上。我曾经在项目现场排查了半天,结果发现IP地址写错了。
3.3 报文配置——选对“语言”才能沟通
报文就是PLC和变频器之间传输的数据格式。G120支持多种标准报文,我常用的有这三种:
| 报文类型 | 数据长度 | 适用场景 |
|---|---|---|
| 标准报文1 | 2个字(4字节) | 简单启停、速度控制 |
| 标准报文20 | 6个字(12字节) | 需要读取实际速度、电流等 |
| 标准报文352 | 12个字(24字节) | 高级应用,如位置控制 |
怎么选?
- 如果只是控制电机启停和速度,标准报文1就够了
- 如果需要监控电流、转矩等,用标准报文20
- 如果要做定位控制,那就得上标准报文352
在TIA Portal里配置时,双击G120,在“报文配置”里选择对应的报文类型。注意:PLC和变频器的报文类型必须一致,否则数据对不上。
避坑指南:我曾经在项目里用了标准报文1,但PLC程序里却读取了第3个字的数据,结果全是0。后来才发现报文1只有2个字,第3个字根本不存在。
3.4 控制字与状态字解析——读懂“暗号”
控制字和状态字是PLC和变频器通讯的核心。控制字是PLC发给变频器的指令,状态字是变频器反馈给PLC的状态。
控制字(STW1):
标准报文1的控制字是第一个字,各位的含义如下:
| 位 | 含义 | 说明 |
|---|---|---|
| Bit 0 | ON/OFF1 | 1=启动,0=停车 |
| Bit 1 | OFF2 | 0=紧急停车 |
| Bit 2 | OFF3 | 0=快速停车 |
| Bit 3 | 使能运行 | 1=允许运行 |
| Bit 4 | 斜坡发生器使能 | 1=使能 |
| Bit 5 | 继续启动 | 1=继续 |
| Bit 6 | 设定值使能 | 1=使能 |
| Bit 7 | 故障确认 | 上升沿确认故障 |
状态字(ZSW1):
状态字是变频器反馈的第一个字,各位含义如下:
| 位 | 含义 | 说明 |
|---|---|---|
| Bit 0 | 准备好 | 1=准备好 |
| Bit 1 | 运行中 | 1=正在运行 |
| Bit 2 | 正向运行 | 1=正转 |
| Bit 3 | 故障 | 1=有故障 |
| Bit 4 | OFF2激活 | 1=OFF2未激活 |
| Bit 5 | OFF3激活 | 1=OFF3未激活 |
| Bit 6 | 禁止合闸 | 1=可以合闸 |
| Bit 7 | 报警 | 1=有报警 |
怎么用?
在PLC程序里,用MOVE指令把控制字写到PQW(过程输出字),用MOVE指令从PIW(过程输入字)读取状态字。比如:
// 启动变频器
L 16#047E // 控制字:启动+使能
T "G120".STW1
// 读取状态字
L "G120".ZSW1
T MW100
经验之谈:控制字16#047E是启动的经典值,包含了ON/OFF1、使能运行、斜坡发生器使能、设定值使能等。我一般用这个值作为启动指令。
3.5 知识体系总览
为了让大家更直观地理解整个通讯流程,我画了一张图:
这张图把整个通讯流程串起来了。从PLC到G120,中间经过报文配置,最后通过控制字和状态字实现数据交换。你想想看,是不是很清晰?
3.6 实战小贴士
最后,分享几个我在项目中总结的经验:
- 先检查硬件:通讯不上时,先看网线有没有插好,交换机有没有供电。我遇到过好几次,折腾半天结果是网线松了。
- 设备名称要唯一:同一个PROFINET网络里,设备名称不能重复。我曾经在调试时发现两个G120用了同一个名称,结果只有一个能通讯。
- 报文类型要匹配:PLC和变频器的报文类型必须一致。我建议在TIA Portal里直接复制粘贴,避免手误。
- 控制字要按顺序:启动变频器时,控制字要按顺序发送。先发OFF2和OFF3解除,再发使能,最后发启动。顺序错了,变频器可能不响应。
重要提醒:在调试时,建议先用TIA Portal的“在线诊断”功能检查通讯状态。如果看到“设备名称错误”或“IP地址冲突”,先别急着改程序,检查一下硬件配置。
好了,关于S7-1200/1500与G120的PROFINET通讯,今天就聊到这里。硬件组态、设备命名、报文配置、控制字状态字,这几个环节环环相扣,缺一不可。希望今天的分享能帮到你们。
公众号:蓝海资料掘金营,微信deep3321