1. 项目需求与整体方案设计
1.1 为什么是S7-200Smart与G120这对组合
工厂里做设备改造或者新装小型产线,经常遇到这样一个场景:甲方指定了西门子的控制系统,但对成本又卡得比较紧,同时现场还要求变频器实现网络通讯而不是简单的端子启停。这时候,很多人的第一反应是上S7-1200或S7-1500,毕竟Profinet通讯在200这一代PLC上确实不如1200系那么顺手。
但实际项目中,S7-200Smart的使用量比很多人想象中大得多。它本质上是一款主打经济型的微型PLC,价格便宜、本体自带以太网口,而且软件编程环境STEP 7-MicroWIN SMART是免费的。在很多中小型设备上,它的点位够用、响应够用、稳定性和抗干扰能力也够用,完全没必要为了上1200去多花预算。而G120变频器又是西门子通用驱动产品里最主流的一款,从0.37kW到250kW的功率范围跨度很大,模块化结构允许选装不同的控制单元、通讯板卡,也很适合和西门子PLC配合使用。
所以这套组合的本质是:用最经济的方式,在不需要太多工艺逻辑的小型系统里实现PLC对变频器的全生命周期管理——启动、停止、调速、状态监控、故障诊断、参数读写。项目标题里提到的Profinet通讯,就是让这种管理变成现实的那根“数据管道”。
1.2 通讯方案选型:Profinet、USS还是Modbus
在S7-200Smart这个平台上,控制G120其实有三条路:Modbus RTU、USS协议、Profinet。
Modbus RTU走的是RS485,成本最低,但速度慢、接线麻烦,而且S7-200Smart的Modbus RTU库函数操作起来并不算舒服,需要手动管理通讯缓冲区,还要关注轮询周期。USS协议是西门子特有的一种串行通讯协议,同样基于RS485,速度也不快,而且这种协议在非西门子设备上完全没意义。
相比之下,Profinet的优势就很明显了:通讯速度快(典型循环时间几个毫秒到几十个毫秒),物理上就是一根普通的网线,不需要额外的通讯模块(S7-200Smart本体网口可以支持Profinet),而且G120侧只要加一个通讯板或者选装带Profinet接口的控制单元就能接入。更重要的是,Profinet通讯是周期性交换数据的,PLC的输入映象区和输出映象区会定时自动更新变频器的状态字、实际转速和设定值、控制字等信息,不需要像Modbus那样每条消息都要手动组织报文。
我自己的看法是,如果现场条件允许——以太网能铺到控制柜、用户愿意多花一点通讯硬件预算——那直接选Profinet,别犹豫。原因后面会详细说:调试方便程度和后期故障排查的体验差距非常大。
1.3 系统整体架构
整套系统从硬件上看由四部分组成:S7-200Smart PLC(CPU SR30或SR40即可,具体看IO点数)、G120变频器(带Profinet通讯板或者选用本身集成了PN接口的控制单元)、工业以太网交换机(如果设备数量少,可以直接PLC网口和变频器网口直连,无需交换机)、以及上位机(用于组态和调试,项目初期用于下载程序和配置变频器,后期可用于HMI监控)。
从数据流向上看,PLC作为Profinet IO控制器(Master),G120作为Profinet IO设备(Slave)。PLC周期性向变频器发送控制字(Control Word, 简称CTW)和主设定值(Main Setpoint, 简称NSOLL),变频器周期性向PLC反馈状态字(Status Word, 简称STW)和实际转速(Main Actual Value, 简称NACT)。
引用一句我做项目时经常跟新人说的一句话:Profinet通讯,玩的就是这四个字的周期性交换,理解了这个,后面所有的问题——报文组态、控制字赋值、状态字解析——都只是细节问题。
2. 硬件接线与变频器侧关键设置
2.1 网线怎么接才不容易出问题
G120变频器的Profinet通讯接口分两种形态:一种是通讯板CU240E-2 PN,模块上直接集成Profinet接口,这种板的网口是两个RJ45,一进一出,方便做线性拓扑串接;另一种是通过CBE2通讯板扩展出来的,上面同样有两个网口。S7-200Smart本体上的以太网口只有一个RJ45。
接线注意事项:
- 优先推荐PLC和变频器通过交换机连接。虽然两个设备直连也能通讯,但考虑到现场调试时可能还需要电脑同时和PLC、变频器通讯,交换机真的能省很多事。
- 网线必须是工业级屏蔽双绞线,至少是Cat5e以上。建议进柜的网线两端做好屏蔽层接地处理,因为变频器本身就是一个大功率干扰源,如果网线和动力线平行布线,非屏蔽网线很容易受到干扰导致通讯周期不稳定。
- 网线长度不要超过100米,这是一般以太网的限制。实际项目中如果超过80米,建议改用光缆或者中间加交换机做中继。
- 如果现场有多个变频器和多台PLC,要用交换机做星型拓扑,Profinet也支持线性拓扑和环形拓扑(需要支持MRP协议),但小型项目不要贪多,星型最稳妥。
2.2 G120变频器基本参数设置与调试技巧
变频器侧设置是整个项目中非常容易踩坑的一步。很多人喜欢直接用厂家的快速调试流程(Quick Commissioning),输入几个电机铭牌参数就完事,结果一联动通讯就发现问题。这里我建议强制自己养成一个好习惯:除了电机参数,控制方式、通讯相关参数、命令源和设定值源必须动手确认一遍。
以G120的BOP-2(基本操作面板)为例,你至少需要完成以下几个步骤:
第一步:恢复出厂设置(如果变频器是二手的或者之前被其他人动过参数)
P0010 = 30(恢复出厂值) P0970 = 1(恢复参数) 完成后变频器会自动重启。
第二步:快速调试(P0010 = 1)
- P0100 = 0:功率单位是kW(国内一般用kW,如果习惯用HP可设成1)
- P0304:电机额定电压(V)
- P0305:电机额定电流(A)
- P0306:电机额定功率(kW)
- P0307:电机额定频率(Hz)
- P0308:电机额定转速(r/min)
- P0309:电机额定功率因数(cosφ)
- P0310:电机额定转矩(一般保持默认)
- P0311:电机冷却方式(大部分项目是自冷)
这些参数必须和电机铭牌完全一致。有人觉得差一点没关系,实际运行时变频器会依据这些参数计算电机模型,偏差大了轻则报过电流,重则导致控制系统震荡。
第三步:退出快速调试
P0010 = 0,进入运行准备状态。
第四步:设置通讯和控制相关参数
这一步是重点,我列成表格:
| 参数 | 设置值 | 含义 |
|---|---|---|
| P0015 | 与宏程序选择相关,可保持默认 | 不启用宏程序,以免覆盖后续手动参数 |
| P0700(命令源) | 6 | 命令源是Profinet通讯(通过控制字控制启停) |
| P1000(设定值源) | 6 | 设定值源是Profinet通讯(通过主设定值控制频率) |
| P2000(参考频率) | 50.00 Hz | 归一化基准:100%主设定值对应的实际频率 |
| P2009(标定) | 1 | 允许在通讯中直接传输带符号的标定频率值(有些版本默认0,建议确认) |
| P2010(USS/PROFIBUS地址) | 1 | 如果用到PROFIBUS或USS时有效,Profinet模式下不太需要关注;但建议确认不冲突 |
| P2030(通讯协议) | 2 | 选择Profinet(CU240E-2 PN板卡显示为PN) |
这里特别强调一点:P0700和P1000是决定变频器“听谁的指挥”的两个核心参数,必须确认是通讯(6),否则通讯报文来了变频器也不会理会。很多新人的问题就出在这里——网线接了,PLC程序下载了,控制字也下了,变频器就是不动,查了半天结果发现P0700还是默认的1(端子控制)。
另外还有个细节:V20、G120等变频器在修改P0015宏程序时会自动关联P0700/P1000等参数,如果之前启用了宏程序,自己改P0700可能会被当成冲突。所以我的建议是:除非你对宏程序的内部逻辑很熟,否则小型项目一律不用宏程序,所有参数手工设置,心里最踏实。
2.3 变频器硬件识别与IP地址规划
G120变频器上一般有一个“Node ID”或“IP地址”相关的拨码开关,老款的CBE2通讯板上有两个旋转开关,用来设定IP地址的末两位。CU240E-2 PN板卡很多型号已经改用软件设定IP地址,不再需要拨码盘。实际操作时请对照变频器手册确认自己手上的硬件版本。
如果支持软件设定,可以在变频器的BOP-2面板上直接设置IP地址,也可以连接调试软件(变频器的调试工具,如Starter或Startdrive的在线功能)进行配置。但要注意:Profinet的IP地址和设备名称(Device Name)是两个不同的概念,Profinet IO通过设备名称识别从站设备,IP地址反而更像是一个“附加信息”。因此在组态时,设备名称必须和PLC工程中分配的站名完全一致,否则即使IP地址配对了,PLC也找不到这个变频器。
推荐的项目习惯:IP地址用192.168.0.x网段,具体地址从101开始分配——S7-200Smart默认地址是192.168.0.1,电脑和交换机在这个网段,避免冲突。设备名称用G120_PN_01这样有意义的命名,不要图省事只用IP地址,否则后期站点多了会非常混乱。
3. PLC侧与Profinet通讯组态实操
3.1 在STEP 7-MicroWIN SMART中添加G120的GSD文件
S7-200Smart的Profinet通讯组态与S7-1200/1500的TIA Portal不同,它的编程软件STEP 7-MicroWIN SMART的Profinet功能相对精简,但也遵循标准的Profinet IO组态流程。核心步骤如下:
第一步:安装GSD文件
GSD(General Station Description,通用站点描述文件)是G120作为Profinet从站的“身份证”,里面描述了设备支持哪些报文类型、哪些数据槽位、哪些诊断功能。这个文件需要从西门子技术支持网站下载,搜索“G120 GSD”或者直接在产品支持页面下载对应固件版本的GSDML描述文件。
下载后,在STEP 7-MicroWIN SMART中,通过菜单“工具 > Profinet > 添加设备描述文件”导入GSD文件。注意版本匹配:G120的固件版本不同,对应的GSD版本也不同,尽量选择和实际设备固件一致的版本,否则组态里的报文选项可能对不上。实际上从软件版本较新之后,更推荐用Startdrive进行G120的调试和组态,然后再把组态数据通过GSD文件方式导入到MicroWIN SMART,不过这里只讨论MicroWIN SMART自身支持的Profinet组态做法。
第二步:在Profinet组态界面添加设备
在MicroWIN SMART中,Profinet组态界面可以从左侧导航打开。选择“Profinet”配置页,将PLC的角色设置为“IO控制器”,然后在“IO设备”列表中添加G120设备。选择G120后,软件会要求分配设备名称和设备编号。这时候设备名称必须和变频器侧设置的名称完全一致,这是组态成功与否的关键点之一。
第三步:分配IO地址
组态完成后,需要在PLC中输入映象区(I区)和输出映象区(Q区)中给G120分配地址。MicroWIN SMART处理Profinet IO地址的方式比较直接,类似于扩展IO的地址分配。需要你根据实际组态内容决定:例如输入起始地址设为IW64,输出起始地址设为QW64。后面编写程序读写地址时,就用这些地址操作。
3.2 报文类型的选择:标准报文1还是其他报文
G120的Profinet报文(Telegram)有很多种:标准报文1、标准报文2、标准报文20、标准报文21、标准报文352等。每种报文定义了通信数据的排列方式和含义。对大多数应用场景,标准报文1是最常用的,因为它够用且结构清晰:
标准报文1的组成:
- 输出数据(PLC → 变频器,2个字):控制字(CTW) + 主设定值(NSOLL)
- 输入数据(变频器 → PLC,2个字):状态字(STW) + 实际转速(NACT)
这就是最经典的“双字交换”结构。对启停、调速、状态监控来说已经完全够用。如果你的项目还需要读电流、读电压、读故障代码、读报警信息,那就需要选更长的报文,例如标准报文20(可以包含多个过程数据,可自由配置PZD元素)或者标准报文1加扩展的诊断块。
我个人的经验是:第一次做这个项目,或者对Profinet还不熟的时候,先用标准报文1把整个链路打通。等你确认了通讯架构没问题、控制逻辑能跑了,再考虑换成包含更多诊断数据的报文。不要把第一步想得太复杂,通讯协议是通路,工艺功能才是目的。
3.3 通讯数据区规划与变量表设计
在MicroWIN SMART的符号表中定义好对应的符号,这一步极其推荐,因为如果直接使用裸地址(例如直接用VW1000对应控制字),后面程序写多了根本记不住哪里是什么。
我通常会建立这样的变量表:
| 地址 | 符号名 | 注释 |
|---|---|---|
| QW64 | G120_CTW | 变频器控制字 |
| QW66 | G120_NSOLL | 主设定值,单位0.01Hz(需参考P2009等标定方式) |
| IW64 | G120_STW | 变频器状态字 |
| IW66 | G120_NACT | 实际转速反馈 |
再附加两个中间变量:
| 地址 | 符号名 | 注释 |
|---|---|---|
| VW100 | HMI_频率设定 | 来自触摸屏或上位机的频率设定值 |
| VW104 | HMI_启停命令 | 触摸屏控制字的中间值 |
这一步看似简单,但对后期调试排障帮助极大。特别是如果你需要在触摸屏或者上位机软件上直接监控这些字,直接调用符号比抠地址舒服得多。
3.4 用网线连接PLC和电脑时的IP地址规划
在给PLC下载组态和程序之前,电脑需要能访问到PLC。S7-200Smart的默认IP地址通常是192.168.0.1,电脑端需要设置同网段静态IP,比如192.168.0.10。
下载步骤简述:
- 用网线连接电脑和PLC(或者通过交换机中转)。
- 打开STEP 7-MicroWIN SMART,在通讯设置中刷新设备,确认能搜到PLC。
- 如果PLC的IP地址被改过,可以先用“查找CPU”功能搜索,再通过软件直接修改IP和设备名称。
- 下载程序:先下载组态(硬件配置),再下载程序块。注意:有Profinet组态时,组态下载最好提前进行,下载完成后PLC会重启一次并尝试连接最后一个已知状态的IO设备。
4. PLC控制程序设计与变频器启停控制
4.1 控制字与状态字的位含义
很多人第一次接触标准报文1时,被控制字里那一堆“位”搞到头晕。其实控制字和状态字就是一个16位的二进制开关组合,每一位都有特定的功能。不需要死记硬背,但要理解核心几位。
变频器控制字(PLC发送给变频器,例如16#047E就是一个经典值):
| 位 | 含义 | 说明 |
|---|---|---|
| bit0 | ON/OFF1 | 1:合闸使能,0:自由停车OFF1 |
| bit1 | OFF2 | 1:合闸允许(非急停),0:脉冲封锁/急停 |
| bit2 | OFF3 | 1:运行允许(非快速停车),0:快速停车 |
| bit3 | 禁止脉冲 | 0 允许脉冲输出(正常运行时必须为0) |
| bit4 | 禁止斜坡发生器 | 0 允许斜坡上升/下降 |
| bit5 | 斜坡发生器保持 | 0 正常 |
| bit6 | 使能设定值 | 1:使能设定值,变频器接纳速度设定值 |
| bit7 | 故障确认 | 上升沿触发故障复位 |
| bit10 | 由PLC控制 | 1:由PLC控制(与P0700对应) |
| bit15 | 1 | 有些手册要求预留为1,常见组合是16#047F |
常用的启动控制字组合:
- 停止:16#047E(ON/OFF1 = 0)
- 启动:16#047F(ON/OFF1 = 1)
- 故障复位:16#04FE(bit7上升沿)
注意:16#047E和047F这种写法在MicroWIN SMART的整数运算里可以直接用16进制常量,非常直观。
变频器状态字(变频器反馈给PLC):
| 位 | 含义 |
|---|---|
| bit0 | 合闸就绪(Ready to switch on) |
| bit1 | 运行就绪(Ready to run) |
| bit2 | 运行中(Running) |
| bit3 | 变频器使能(Enable) |
| bit6 | 合闸激活(Switch-on active) |
| bit7 | 报警字 |
| bit9 | 要求通过PLC控制 |
| bit10 | 已达到设定频率 |
| bit12 | 抱闸打开(如果使用了电机抱闸) |
| bit13 | 电机过载报警 |
| bit15 | 故障(Fault) |
这些状态条件可以组合用来判断变频器当前处于什么阶段:
- 16#xx01:尚未合闸
- 16#xx31:已就绪,等待启动命令
- 16#xx33:正在运行
- 16#xx37:变频器使能且运行中
有人问:为什么控制字和状态字的位定义看起来“有点乱”?因为这套定义来自早期的工业传动通讯规范,为了兼容历史设备,设计时没有做太多“人性化”优化。理解它的逻辑之后会发现,最终就是几个常用的二进制组合而已。
4.2 梯形图核心逻辑示例
以控制一台电机启停和调速为例,用S7-200Smart的梯形图实现:
第一段:频率设定值预处理
频率设定值来自触摸屏(0-50.00 Hz),需要转换成与P2000对应的“归一化值”。标准报文1中主设定值的数据格式是整数,满量程16384(16#4000)对应P2000设定的参考频率(默认50.00Hz)。
// 触摸屏设定频率 0.00 ~ 50.00 Hz // 存储在VD100,格式为实数或双整数,例如5000表示50.00Hz // 转换为Profinet标定量:0 ~ 16384 // 公式:N = 频率值 / P2000参考频率 * 16384 // 例如50.00Hz -> 16384 LD SM0.0 MOVR VD100, VD200 // 读取设定频率(实数) DIVR VD200, VD204 // 除以50.0 (P2000) MULR VD200, VD208 // 乘以16384.0 ROUND VD200, VD212 // 取整 MOVW VD212, VW214 // 写入Q区前的数据区 // 如果直接用INT运算,注意符号位和溢出实际项目中更常见的做法是用整数运算直接计算:
// 设定频率存储在VW100,单位0.01Hz,范围为0~5000(0.00~50.00Hz) // 满量程对应16384 // 计算比例:VW100 * 16384 / 5000 LD SM0.0 MUL VW100, 16384, VD300 // 32位乘法,结果在VD300 DIV VD300, 5000, VD304 // 32位除法,商在VW304 MOVW VW304, VW214 // 送到输出数据区的设定值位置注意:计算要区分16位和32位运算。16位乘法结果可能溢出,所以要小心使用32位运算。
第二段:启停逻辑
用两个自锁按钮(按一下启动,按一下停止)来控制:
// 网络1:启动逻辑 LD I0.0 // 启动按钮 O M0.0 // 保持自锁 AN I0.1 // 停止按钮 = M0.0 // 网络2:启动控制字生成 LD M0.0 = M0.1 // 网络3:输出控制字 LD SM0.0 MOVW QW64, VW400 // 读取当前控制字 // 如果需要启动:置bit0 = 1,bit1 = 1,bit2 = 1,bit6 = 1 LD M0.1 MOVW 16#047F, VW402 // 如果需要停止:bit0 = 0,其它维持 LDN M0.1 MOVW 16#047E, VW402 MOVW VW402, QW64其实更稳妥的做法是:控制字先在V区中构建好,最后统一MOV到QW64。这样可以避免扫描周期中间变频器收到“半新半旧”的控制字,减少偶发性的误动作。
第三段:状态字读取和运行状态判断
// 读取变频器状态字 LD SM0.0 MOVW IW64, VW410 // 运行状态:bit2 = 1 且 bit1 = 1 LDW= VW410, 16#3333 // 也可以做位运算,这里简化判断 = M0.2 // 运行指示灯 // 故障状态:bit15 = 1 LDW= VW410, 16#8000 = M0.3 // 故障指示灯如果需要比较状态字是否包含某位,更严谨的方式是用与运算:
LD SM0.0 MOVW VW410, VW412 ANDW VW412, 16#0004, VW414 // 取bit2 LDW>= VW414, 4 = M0.2 // 运行中4.3 故障复位与报警处理逻辑
变频器报故障时,面板上会显示故障代码(例如F0001过流、F0002过压、F0003欠压等)。这些故障不仅可以在面板上查看,还可以通过通讯读取故障状态字来获取。标准报文1中没有专门的故障代码字,所以需要依赖状态字bit15(故障)以及G120的报警数据。若要多层次读取故障代码,就要考虑使用更长的报文类型(如标准报文20)来读取诊断信息。
故障复位的梯形图逻辑:当检测到故障(状态字bit15=1),按下复位按钮后,需要把控制字的bit7从0变成1,然后保持至少几毫秒,再清0,形成一个上升沿。建议的逻辑:
// 故障复位按钮 I0.2 LD I0.2 EU = M0.5 // 复位信号上升沿 LD M0.5 MOVW 16#04FE, VW420 // 写入带故障复位的控制字 MOVW VW420, QW64 // 延迟后复位控制字: TON T37, 10 // 100ms延时 LD T37 MOVW 16#047E, VW420 MOVW VW420, QW64注意:故障复位期间,如果变频器仍然处于故障状态,它不会接受其他启动命令,这是正常的。故障状态被复位后,状态字bit15会变0,然后才能重新置位bit0启动。
常见错误:有人直接把控制字写成16#04FF(启动+复位同时置位),这样变频器可能无法正确识别复位上升沿。正确做法是:先给复位位上升沿,等故障清了,再给启动信号。
4.4 频率设定值的标定与工程量转换
前面提到主设定值满量程16384对应P2000参考频率,在程序里要做换算。但实际项目中有个更常见的问题:触摸屏或上位机上操作员习惯输入“Hz”而不是“归一化值”,所以PLC程序里必须做一次工程量到通讯值的映射。
以P2000 = 50.00Hz为例:
通讯传输值 = 实际频率 / P2000 * 16384 例如:实际频率 25.00Hz -> 通讯传输值 = 25/50*16384 = 8192反向换算:
实际频率 = 通讯传输值 / 16384 * P2000如果P2000设成100.00Hz,那么25Hz对应4096,分辨率变差了。所以建议P2000不要随便改得太大,一般就设成50.00Hz,让调速范围正好落在满量程的一半以下,精度最好。
实际转速反馈NACT的换算同理:如果P2000=50Hz,那么NACT=8192时实际频率是25Hz。需要特别留意的是,NACT有时会带符号位(例如负转速反馈),要看具体变频器固件和报文定义。
5. 通讯调试、常见故障排查与避坑实录
5.1 通讯不通时该怎么排查
我遇到过不少朋友问:PLC和G120的Profinet通讯总是建立不起来,查了半天不知道哪出问题。这种问题通常可以按以下顺序排查:
第一步:确认物理链路
用网线把电脑直接连到G120,看电脑网口是否亮起。如果灯不亮,先检查网线——不要用普通家用网线直接怼,确认极性、线序和屏蔽层。如果没有问题,再连接到交换机上,确认交换机的端口指示灯正常。
第二步:确认IP地址和网络属性
电脑、PLC、变频器必须在同一网段。例如PLC是192.168.0.1,变频器是192.168.0.101,电脑是192.168.0.10,这就是一个没问题的网段。如果变频器IP是192.168.1.100,那么通讯就无从谈起。
第三步:检查设备名称
在G120的BOP-2面板上或者调试软件(如Startdrive)里查看设备名称,再对比MicroWIN SMART的Profinet组态里的设备名称。名称不区分大小写,但空格、特殊符号最好别用,否则容易出错。名称不匹配的现象是:PLC组态里显示“IO设备不可用”或者“设备名错误”,变频器面板上有可能看到通讯故障报警(如F01985看门狗超时等)。
第四步:查看PLC的诊断缓冲区
MicroWIN SMART的诊断功能不如TIA Portal强大,但还是能提供一些有用信息。查看“诊断 > 诊断缓冲区”,看看有没有Profinet IO相关的报警。常见报错:
- “IO设备错误”:要么是名称不匹配,要么是从站设备未在运行。
- “看门狗已触发”:通讯周期阻塞或PLC扫描周期过长。
第五步:检查报文类型
确认PLC组态中的报文类型和变频器侧实际使用的报文类型一致。之前遇到过一个项目,PLC组态里选的标准报文1,但是变频器侧在调试软件里被设置成了标准报文20,结果数据完全对不上——控制字发过去,变频器不动作,状态字读回来也是乱码。这种问题排查起来特别隐蔽,因为通讯本身是通的(你看网络连接是正常的),但实际上丢数据了。
5.2 控制字发了但变频器不动,排查思路
这是“通讯上了但不干活”的典型问题,比通讯不通更让人抓狂。归根结底,问题出在三层:命令源设置、控制字内容、使能条件。
第一步:确认P0700参数。如果P0700不是6,那不管PLC发什么报文,变频器都会根据P0700设定的方式(面板/端子)来控制。可以先把P0700设为6,确认无误。
第二步:确认P1000参数。P1000决定变频器从哪里取速度设定值,如果保持默认的面板电位器方式,PLC发来的设定值就会被忽略。此处设成6。
第三步:检查参数P0840、P0844、P0852等使能条件。G120有一套扩展参数用来定义“允许运行”的组合条件。默认情况下,端子上的某些信号可能需要是“1”才能使能运行(例如P0844是OFF1命令源,半夜某个端子悬空可能导致信号为0,= 0则不允许合闸)。如果你用的是纯通讯控制而且没有接任何端子,需要确保这些使能信号满足运行条件。如果条件不满足,变频器会一直停在“待机”状态,不会响应启动命令。
第四步:观察状态字。把状态字监控出来,看看bit0是否=1(合闸就绪)。如果bit0=0,说明变频器还没准备好合闸,可能是使能条件不满足或正在执行OFF2/OFF3停车方式。根据状态字的值反推是哪个条件缺失。
第五步:确认控制字内容是否确实写入。在MicroWIN SMART的“状态表”中强制监控QW64的值,确认它不是0或不是旧值。要注意的是,Profinet的输出区是周期性刷新的,如果在程序里用MOV指令写了之后又被其他程序段的旧值覆盖,就会出现“明明写了,变频器却没收到”的假象。解决方法是最终只保留一个写QW64的网络,尽量用公共变量而不是在多个程序段里都直接操作QW64。
5.3 通讯周期性中断或看门狗超时
这类问题在工业现场太常见了。现象就是:运行一段时间后变频器停机,面板上报看门狗超时(例如F01215或F01985),PLC侧诊断缓冲区显示通讯故障。
排查方向:
- 通讯周期太长。Profinet通讯周期一般设成几毫秒到几十毫秒,如果PLC扫描周期做得太长(例如超过了看门狗时间),从站设备就认为控制器“失联”了。S7-200Smart的扫描周期如果不注意优化,在复杂程序里可能达到几十毫秒。这种情况下,检查看门狗时间和PLC扫描周期是否匹配,如果无法缩短扫描周期,适当延长看门狗时间也是一种办法(但不要无限延长,影响安全性)。
- 电磁干扰。这个可能性在有大功率变频器的柜子里特别常见。变频器运行时的高频谐波会通过网线干扰通讯。解决手段:使用屏蔽网线并可靠接地;PLC和变频器之间的网线不要和动力线捆扎在一起;交换机尽量用工业级产品;必要时在网线靠近变频器的一端加磁环。
- 电源波动。G120独立供电的通讯板如果供电电压不稳,也可能出现偶发性的丢包。检查变频器的进线电压是否稳定。
5.4 关于S7-200Smart的Profinet限制
很多电工朋友从S7-1200转到S7-200Smart时会有点不适应,这里我把S7-200Smart在Profinet方面的一些限制列出来,方便大家评估项目是否够用:
- S7-200Smart的Profinet功能是通过固件和软件配合实现的,支持作为IO控制器连接少量的IO设备,但支持的设备数量和刷新周期能力不如S7-1200。实际项目里挂十台以内的G120通常没问题,再多就要评估一下了。
- S7-200Smart本体以太网口只有一个,如果你既要连变频器,又要连触摸屏,还要连电脑调试,必须要通过交换机解决。
- 部分S7-200Smart型号(尤其是早期的)可能需要升级固件才能支持Profinet通讯,购买设备和做项目前最好先确认固件版本。官方固件升级比较简单,用专用工具通过网络即可,但要注意别把IP地址和设备名称搞丢了。
5.5 我踩过的几个坑
说起来不好意思,第一次做这个项目的时候我也栽过跟头,写出来给大家当反面教材。
第一个坑:变频器设备名称里加了中文。当时图省事,直接在BOP-2上输入了一个中文名称(其实是想叫“主提升电机”),面板上看起来没问题,但PLC组态里输入中文站名后,MicroWIN SMART提示设备名称非法,保存都保存不了。后来才知道Profinet的设备名称只允许字母、数字、横杠、点这些ASCI字符,而且横杠不能作为名称开头。改成G120_MainLift之后一切正常。
第二个坑:用了普通家用5类网线。调试阶段临时没有工业网线,随手找了一根网线的跳线,结果通讯不稳定,时不时丢包,速度稍微一快就报看门狗。换回工业屏蔽网线后瞬间稳定。所以网线这事真的没有商量余地。
第三个坑:程序里多个网络重复写QW64。当时为了让启停控制和故障复位都“及时响应”,在三个不同程序网络里都写了MOVW到QW64的动作。结果就出现了一个怪现象:按下启动按钮后变频器偶尔不动作,多按两次又好了。后来在状态表里监控QW64,发现它的值在几个扫描周期之间来回跳——被后一个网络覆盖回了旧值。最后改成:只有最后一个网络统一写QW64,前面网络只修改VW区的“虚拟控制字”,问题彻底消失。这也算是一个经典教训吧。
第四个坑:P0015宏程序覆盖了P0700。有一次为了快速调试,启用了一个宏程序,结果项目做完试机的时候,变频器怎么都不听PLC的命令,后来发现宏程序把P0700改回了面板控制的值。从那以后我再也不在G120上用宏程序,所有参数都手动确认一遍,哪怕是多花五分钟。
6. 项目经验总结与后续扩展建议
做这个项目时最大的体会是:通讯协议本身并不难,难的是硬件位的对应关系、报文组态的一致性、以及电气环境给通讯链路带来的干扰问题。如果你能把这三块都理顺,那这套方案在小型设备上完全称得上“高性价比稳定方案”。
再分享一个我后来常用的扩展做法:在标准报文1的基础上,添加一个“自由报文”的PZD数据区,用来传输变频器的输出电流和故障代码。这样触摸屏上可以直接显示电机电流和故障原因,用户看着方便,维护人员排查起来也快。具体做法是在Startdrive中修改报文类型,把PZD2之后的通道映射成电流值和故障代码,然后在PLC程序中读出对应的点位并做工程量换算。这个扩展不需要改变控制字/状态字的逻辑,投资小、收益大,我强烈推荐有精力的同行试试。
最后想强调一点关于后续维护的细节:在所有文档、图纸、变频器铭牌标签上,一定要清晰标注通讯插槽编号、IP地址和站点名称。调试时图省事不标,半年后设备出问题,现场工程师检修时,光靠猜IP和回忆站点名称就能浪费一个小时。这是我见过最多的“隐性工期消耗”,希望各位不要走同样的弯路。