
1. 项目概述与方案选型1.1 这套方案解决什么问题最近在客户现场调试一套小型伺服定位系统遇到的配置就是“S7-200 SMART PLC通过Profinet实现对V90 PN电机的控制”。说实话以前这种小吨位设备大多数用脉冲方式控制伺服一根脉冲线一根方向线最多再加上使能和复位信号简单粗暴但没什么“科技感”。可随着现场总线的普及甲方点名要求走Profinet原因也简单接线少、抗干扰好、能实时读回更多状态甚至能实现远程诊断。所以这套方案不仅仅是让电机转起来而是把S7-200 SMART PLC和V90 PN伺服驱动通过工业以太网这条“桥梁”真正变成一套数字化控制系统。这套方案比较适合做单轴或两三轴的小型自动化设备比如小型包装机、切割机、送料机构、拧紧工位。如果你手里刚好有一台S7-200 SMART又想用V90 PN伺服又不想加脉冲模块或定位模块那这篇文章基本就是照着抄作业的流程。1.2 为什么选S7-200 SMART加V90 PN先解释一个很多人问的问题S7-200 SMART不是老掉牙的小型PLC吗V90 PN不是西门子中高端伺服吗这俩能组合吗答案是能。而且这个组合在中小型项目里非常有性价比。S7-200 SMART本身就带以太网口固件版本V2.2以上支持Profinet IO控制器功能而V90 PN驱动器的核心卖点就是原生PROFINET通信不需要额外的CM模块。两边都是自带以太网口网线一插组态一下就能把控制字、速度给定、状态字和实际速度这些数据来回传递。相比传统脉冲控制Profinet总线方案最大的优势是反馈信息量丰富。脉冲控制你只能知道“我发了多少脉冲”但驱动器是否有报警、当前实际转速是多少、转矩是多少都很难实时读到。走Profinet后这些数据全是现成的你在HMI上做个状态监控页面非常轻松。另外Profinet是实时以太网数据刷新周期能在个位数毫秒内完成对于绝大多数小型伺服应用来说完全够用。1.3 硬件和软件准备清单项目开始前先把手头东西备齐。我建议以S7-200 SMART CPU ST60为例因为这款CPU点数多、程序容量大做单轴控制不会捉襟见肘。当然ST40、SR60这些型号也可以只要固件版本支持Profinet组态就行。PLC西门子S7-200 SMART CPU ST60固件版本V2.4以上伺服驱动西门子V90 PN伺服驱动器配200V或400V电机按负载选功率电机与V90驱动器匹配的1FL6伺服电机通信网线普通的工业以太网屏蔽线水晶头带金属壳软件STEP 7 Micro/WIN SMART V2.4以上编程软件调试工具V90调谐软件V-ASSISTANT以及对应的GSDML设备描述文件电源24V直流开关电源给PLC和驱动器控制端子供电这里有一个容易漏掉的细节V90驱动器需要将Profinet设备描述文件导入到Micro/WIN SMART里导错版本会导致组态报错。所以下载GSDML文件时要注意和V90型号、固件版本一一对应。2. 核心原理Profinet通信和V90 PN报文结构2.1 Profinet到底是什么如果你第一次接触工业现场总线可以先这样理解Profinet就是用标准以太网线在控制器和设备之间定时、实时地交换数据。控制器IO控制器按周期发送输出数据给设备IO设备设备也按周期把输入数据传回控制器。数据不是零散地收而是打包成固定的“报文”每个报文里面规定了第几个字节是什么含义。这套机制有点像快递分拣每个箱子是固定的尺寸箱子里每个位置固定放什么东西。控制器往第1个格子里放“启动指令”驱动器只要按规矩从第1个格子取出来执行即可。因为双方都严格遵循同一张“箱子说明书”所以通信效率高、出错概率低。这张“说明书”就是GSDML文件。2.2 V90 PN常用报文怎么看V90 PN支持多种Profinet报文最基础的、也是项目里用得最多的是“报文1”。报文1的输入输出各6个字节结构如下数据方向字节排列含义控制器输出第1、2字节QW0控制字1STW1控制器输出第3至第6字节QD2速度设定值NSOLL驱动器反馈第1、2字节IW0状态字1ZSW1驱动器反馈第3至第6字节ID2实际速度NIST控制字和状态字是16位的速度设定值和实际速度是32位带符号整数。这里的“QW0、QD2”是举例实际地址取决于你在组态时给V90分配的IO起始地址。如果起始地址是0那么输出区就是Q0.0开始长度6个字节输入区就是I0.0开始长度6个字节。报文1非常适合速度模式。你只需要往控制字里写使能命令往速度给定里写转速电机就能转起来。如果再配合驱动器内部的斜坡函数发生器启停都很平滑。2.3 控制字和状态字重点位讲解控制字STW1各位含义很多初学时不用全背但下面这几个位一定要理解位序功能说明位0ON/OFF11表示运行请求0表示自由停车或斜坡停车位1OFF20表示自由停车正常运行时保持1位2OFF30表示快速停车正常运行时保持1位3使能运行1表示允许运行位6使能脉冲1表示允许功率级输出位7故障确认上升沿可复位故障工程中最常用的控制字是16#047F它把OFF2、OFF3、使能运行、使能脉冲等关键位全部置1电机会进入“准备好可以转”的状态。如果要快速停车则可以将控制字改成16#04FC强制OFF2和OFF3生效这通常用于急停回路。状态字ZSW1则不一样。位0表示驱动器“待机”位1表示“运行准备就绪”位2表示“运行使能”位3则是故障标志。每次调试第一件事就是看状态字的位3是不是1。如果是说明伺服有故障必须先处理报警再给使能。2.4 速度给定值的换算关系V90 PN的速度给定值不是直接写“3000”而是按比例换算的。SINAMICS家族统一使用16#4000十进制16384代表100%额定转速。也就是说如果电机额定转速是3000rpm那么给定值16384对应3000rpm给定值8192对应1500rpm。换算公式速度给定值 目标转速 / 电机额定转速 × 16384比如目标转速是1200rpm额定转速3000rpm那么给定值就是1200 / 3000 × 16384 6553.6取整655416#199A。如果你需要反方向旋转直接把给定值写成负数即可例如-1200rpm对应-6554二进制上就是32位带符号数。这个细节值得反复强调。很多人第一次调试V90上来就写1000结果电机慢得像蜗牛爬就是因为把“1000RPM”当成了“1000个内部单位”。3. 实操步骤组态、接线、程序一次讲完3.1 网络组态前的准备工作先把电脑、PLC、V90驱动器的IP地址规划好。Profinet通信要求网络内设备名称和IP地址唯一而且设备名称必须符合Profinet规范只能使用字母、数字、点、连字符不能以数字开头。我习惯把PLC的IP设为192.168.0.40V90驱动器设为192.168.0.30电脑设为192.168.0.10。不要用默认的192.168.0.1很多现场都会冲突。接线就更简单了。PLC的以太网口和V90的PROFINET接口之间用一根标准工业网线直连。如果设备数量多中间可以加Profinet交换机。这里要注意不要拿普通家用网线糊弄工业环境里电机启停瞬间的电磁干扰很容易让普通网线丢包到时候伺服偶发掉线你排查半天都不一定想到是网线问题。3.2 在Micro/WIN SMART中组态V90第一步把V90的GSDML文件导入软件。打开STEP 7 Micro/WIN SMART在“工具”菜单里找到“PROFINET向导”或直接在系统块中打开PROFINET组态界面。导入文件后在设备目录里找到V90 PN驱动器的型号拖拽到网络视图上。第二步配置设备名称和IP地址。我给V90起的设备名是“v90_pn”IP地址按规划填好。然后选择报文类型为“标准报文1”。这里有个关键操作分配IO地址。比如我给输入区分配I0.0到I5.7给输出区分配Q0.0到Q5.7。分配完成后软件会自动计算出控制字在QW0、速度设定值在QD2反馈状态在IW0、实际速度在ID2。记住这个地址映射后面写程序全部依赖它。第三步把组态下载到PLC。重新上电后PLC会周期性地和V90建立Profinet通信关系。如果在“PROFINET”页面能看到设备状态为“已存在”说明物理通信已经建立。3.3 V90驱动器侧参数设置V90侧要用V-ASSISTANT软件进行调试。连接驱动器的USB调试接口读取驱动器参数然后做以下几项必设置首先是电机识别。V90驱动器通常能自动识别电机铭牌数据你只需要确认电机型号正确。驱动器会读取电机内部的电子铭牌所以这一步只要确保编码器线插好基本不会错。然后是设置运行模式。如果只需要速度控制就在“控制模式”里选择“速度控制S”或者对应的“速度模式”。我们这里用速度模式因此需要将控制权交给PROFINET也就是选择“通信报文”为报文1。注意驱动器和PLC组态的报文必须完全一致否则通信建立后数据对不上。最后是设备名称和IP。在V-ASSISTANT的“Profinet”页面把刚才在PLC侧配置的设备名“v90_pn”和IP 192.168.0.30写入驱动器。激活后驱动器会重启并应用新配置。3.4 PLC控制程序怎么写程序的核心逻辑可以概括为三件事启动、停止、调速。我推荐在Micro/WIN SMART中用梯形图实现结构清晰后期维护的人也好上手。下面是一段典型的控制逻辑伪代码启动按钮M0.1置位为1时向QW0写入16#047F同时将速度设定值发给QD2停止按钮M0.2置位为1时向QW0写入16#04FC让驱动器快速停车每15ms刷新一次控制字防止通信掉线导致状态不一致速度设定值VD100的换算我直接放在运算指令里完成。比如HMI给定的目标是VD104单位rpm那么程序里做一次乘除法LD SM0.0 MOVR VD104, LD0 *R 16384.0, LD0 /R 3000.0, LD0 ROUND LD0, LD4 MOVD LD4, QD2这段程序的意思是把转速值从实数转换成伺服需要的整数设定值。注意我这里是按额定转速3000rpm示例如果你的电机是2000rpm或2500rpm分母要改成对应数值。状态反馈更简单直接把IW0传送到MW0然后在触摸屏上显示MW0的各个bit就可以看到“准备就绪”“运行中”“故障”这些信息。实际转速ID2可以转成实数后除以16384再乘以额定转速最终显示为rpm。3.5 首次试运行流程组态下载后不要急着给速度。按下控制器启动按钮之前先看状态字。如果ZSW1的故障位为1就要重新检查驱动器报警代码。V90的报警可以通过驱动器面板直接读出常见的有F52955、F32115等分别对应通信超时和编码器反馈故障。确认无故障后先写一个较小的速度给定值比如设定为300rpm对应的数值。观察电机是否平稳启动、方向是否正确。如果方向反了不要把程序里的正负数反过来而是调整V90驱动器的“旋转方向”参数这样可以保持整套逻辑的一致性。跑通后再把速度升到实际工况值。4. 常见问题与排查技巧实录4.1 PLC搜索不到V90设备这是调试中最常见的故障几乎每个新手都会遇到一次。当你把网线插好后在Micro/WIN SMART的Profinet组态界面刷新设备列表结果只有PLC自己没有V90。这时候先检查V90驱动器的设备名称和IP是否已写入。注意修改V90的Profinet名称后驱动器必须重新上电才能生效。其次检查电脑网卡的IP地址是否和PLC、V90在同一网段。再不行就换一根网线不要嫌麻烦。我曾经遇到过一个案例折腾了一下午最后发现V90面板上的IP设置居然比PLC组态多了一个数字纯粹是手误。4.2 通信已经建立但电机不转动通信状态是好的状态字也显示无故障但电机就是不动。这种问题十有八九出在控制字或者速度给定上。先用在线监控看QW0的值。如果QW0不是16#047F说明使能位没写好。再看看QD2的值是不是0。如果是0电机当然不动。更隐蔽的问题是QD2虽然写了值但PLC的字节序和V90不一致。S7-200 SMART默认高字节在前而V90也遵循Profinet网络字节序通常不需要额外调整但如果你从第三方设备移植程序过来就要特别注意“大端小端”。4.3 电机旋转时抖动或啸叫如果电机转起来声音不正常别急着改控制字十有八九是驱动器内部参数还没优化好。V90和S7-200 SMART之间只传递速度设定驱动器内部的速度环、电流环需要根据负载惯量比做一次自动优化。我在现场的做法是先用V-ASSISTANT的“一键优化”功能让驱动器识别负载惯量比然后再把速度环增益稍微调低一点避免低速抖动。有些设备机械刚性差增益太高会引起共振。如果你听到高频啸叫声优先减小速度环增益而不是去动滤波器参数。4.4 控制字地址和速度给定值错位Profinet报文数据是连续排列的一旦起始地址设置错误所有数据都会错位。比如你把输出区设成Q0.0到Q3.7只分配了4字节但报文1要求6字节软件根本不会让你保存。如果强行用旧版本组态工具跳过检查可能出现QW0控制字正确但QD2读取到的是控制字的一部分这时候电机给定永远是乱码。所以组态IO地址时一定要保证输出区和输入区长度都不小于6字节。建议统一按“分配起始地址后软件自动偏移”的习惯来检查确认QW0之后的下一个双字就是速度给定不要自己手动计算偏移。4.5 运行中偶发Profinet通信掉线这种偶发问题最让人头疼。现象是电机运行一段时间后突然报警状态字变成故障控制模块显示“设备不可访问”。排查优先级第一换工业屏蔽网线并确保网线长度不要超过100米第二检查PLC和V90之间是否有大功率变频器之类的干扰源如果必须穿同一走线槽建议型线槽隔开第三在控制程序中增加通信超时后的数据保持逻辑不要让控制字在掉线瞬间变成0。最直接的办法是在V90侧设置一个“通信看门狗”一旦通信中断时间超过设定值驱动器按急停方式停车保护设备安全。5. 一些调试心得和下一步扩展方向最后聊点个人经验。第一次做S7-200 SMART和V90 PN通信时我也走过不少弯路。最深的体会是这类Profinet控制项目真正花时间的不是接线和写程序而是前期参数核对。尤其是设备名、IP地址、报文类型这三样只要有一项对不上后面全白费。后来我养成了一个习惯每次开工前先做一张“通信参数对照表”左边写PLC组态的值右边写V90调试软件里的值逐条勾选确认基本能避开90%的坑。另外有个小技巧在S7-200 SMART程序里把V90的故障状态字映射到PLC的Q0.2并接一个指示灯。这样现场操作员不需要看触摸屏也能第一时间知道伺服有没有报警。后续如果想扩展这套方案还能从单轴变多轴把多台V90 PN驱动器都挂在同一条Profinet网络上PLC依次给每个驱动器分配起始地址即可。如果再往上走换成S7-1200或S7-1500程序结构几乎可以平移只是组态工具变成了TIA博途。对于手里已经有S7-200 SMART和V90 PN的人来说先把单轴跑通后面无论做多轴还是项目升级都会轻松很多。