ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

S7-200 SMART通过PROFINET控制V90 PN伺服完整指南

S7-200 SMART通过PROFINET控制V90 PN伺服完整指南 1. 为什么我敢用S7-200 SMART直接带V90 PN先交代一下背景。之前做过一台小型贴标设备原来是用S7-200 SMART配步进电机跑低速和小行程还行一旦提速到每分钟两三百件步进就开始丢步最后只能停下来等机械调整。老板不想换大型PLC也不想引入太复杂的TIA架构但伺服是非上不可了。当时摆在面前的选择有三个换S7-1200、用S7-200 SMART加脉冲伺服、或者让S7-200 SMART直接通过PROFINET带V90 PN。前两个方案要么贵要么浪费第三个方案当时网上资料稀碎很多人说不行理由是“200 SMART就是个经济型PLC跟PN伺服扯不上关系”。结果我实测下来S7-200 SMART通过PROFINET控制V90 PN完全可行而且整体开发效率比我预想的高很多。这篇文章就把我整个项目从评估、选型、组态、写程序到调试踩坑的过程完整讲一遍内容包括S7-200 SMART的PROFINET能力边界、V90 PN的报文配置、控制字和状态字的逻辑、STEP 7 Micro/WIN SMART里的组态步骤以及几处非常容易翻车的地方。1.1 这套组合最适合哪类项目先说清楚适用范围免得有人拿着这篇文章去干完全不匹配的活。S7-200 SMART通过PROFINET带V90 PN最适合的是单轴、双轴的小型设备比如贴标机、点胶机、小型装配线、切割平台、往复输送定位以及那种原来用步进但精度和响应跟不上、又不想推翻整台设备控制方案的改造项目。这类项目有几个共同点轴数少一般不超过两个同步轴运动逻辑简单不需要复杂插补PLC程序量不大不需要分布式IO和大量功能块预算敏感老板希望把伺服的钱花在机械上而不是控制器上。我做的贴标设备就是典型——主轴送料、副轴贴标两个V90 PN一个S7-200 SMART CPU SR40组态完事。如果你的项目涉及多轴插补、电子凸轮、高速同步追赶那这套方案就不合适了。虽然S7-200 SMART支持连接多个PROFINET从站但它的运动控制能力和CPU算力摆在那里别硬上。后面第7部分我会说清楚哪些情况不建议用。1.2 S7-200 SMART对PROFINET支持的真实边界很多人一听说“S7-200 SMART支持PROFINET”就以为它和S7-1200/1500的PROFINET完全一样这是个容易踩的认知坑。我从固件和功能两个层面说。第一固件门槛。S7-200 SMART必须使用V2.5及以上固件的CPU才支持PROFINET IO控制器功能。老设备如果固件是V2.3或V2.4先得升级固件。升级方式一般是通过Micro SD卡做固件更新去西门子官网下载对应的固件版本文件拷到SD卡根目录插入CPU的卡槽上电等待面板指示灯闪烁完成更新。别嫌麻烦这一步不搞定后面全白搭。第二角色定位。S7-200 SMART在PROFINET网络里只能作为IO控制器也就是“主站”去连接各种IO设备和驱动设备不能像S7-1200那样在某些场景下做IO设备被别人控制。对于带V90 PN来说这完全够用我们本来就是要让PLC去指挥驱动器的。第三实时性和周期。S7-200 SMART的PROFINET只支持RT实时通信不支持IRT等时同步实时。这意味着它跟V90 PN之间能够稳定交换过程数据但无法保证像高端伺服系统那样的等时同步和纳秒级抖动指标。需要说明的是V90 PN本身支持RT模式在Startdrive里配置时只要把通信模式选为RT就不会出兼容性问题。实际跑下来4ms到16ms的循环周期对小型设备完全没问题。第四带宽和地址区。S7-200 SMART的PROFINET IO功能可以连接多个从站但每个从站占用的IO地址空间有限。拿V90 PN标准报文1来说PLC到驱动器是4个字节2个字驱动器到PLC也是4个字节。如果你用标准报文3或报文5数据量会翻倍。在Micro/WIN SMART的PROFINET向导里分配IO起始地址时要注意别把地址空间占得太靠后后面还要留给本机IO和扩展模块。1.3 为什么不绕道S7-1200很多同行问我既然要上伺服为什么不干脆换成S7-1200搭Startdrive那套组合更顺。我给的理由很简单成本、时间、存量逻辑。S7-1200加上PROFINET伺服方案确实强大但整条链路的软件门槛和工程成本高不少。设备里原本就是S7-200 SMART的梯形图程序包含大量设备逻辑、互锁和触摸屏变量地址直接换1200意味着整套程序重写、变量表重新映射、触摸屏通讯协议也要处理。而S7-200 SMART通过PROFINET带V90 PN只增加了一段通信组态原有程序逻辑基本保留只是在程序里多了“往QW0写控制字、向QW2写速度值”这几个动作。相比之下利润和工期都不会失控。另外必须说一句公道话S7-200 SMART在Micro/WIN SMART里的PROFINET向导做得挺友好添加GSDML文件、拖入IO设备、分配地址基本是填空式的不需要写底层的硬件描述文件也不需要懂复杂的GSD语法。对于长期在小型设备上干活的电气工程师来说这不折腾人。2. 硬件清单、供电接线和通信前置条件这一部分看起来基础但恰恰是很多人在现场卡住的地方。我不打算罗列一堆型号只讲我实际用过的组合以及接线时必须注意的几个点。2.1 我用的硬件配置单项目实际配置如下PLCS7-200 SMART CPU SR40固件升级到V2.6自带以太网口和RS485口。选SR40是因为设备上有不少继电器输出点和原有模块兼容。伺服驱动器西门子V90 PN400W规格。伺服电机和V90 PN配套的1FL6022电机带抱闸。带抱闸很重要因为竖直方向的负载断电时需要锁住。编码器电缆、动力电缆都是V90原装电缆带抱闸的那根动力电缆多两根抱闸线。交换机设备旁边需要接HMI和编程电脑PLC和两个V90的网口都接到一台普通工业交换机上。这里我要多说一句如果你只有一台V90和一台S7-200 SMART理论上PLC的以太网口和V90的PROFINET口直连就可以通。但S7-200 SMART的以太网口同时还负担编程下载、HMI通讯、Modbus TCP通讯等功能单网口设备上我强烈建议加一台普通交换机再组网。直连虽然也能通但后续调试时要么拔线插电脑要么改IP非常折腾。2.2 V90的STO回路、抱闸和电源处理V90 PN在接线上有两个非常容易忽略的关口一个是安全转矩关闭端子STO一个是抱闸控制。先说STO。V90驱动器上有X10端子排其中带有STO回路如果这个回路没有闭合驱动器上电后就会报安全相关的报警电机根本无法使能。正确做法是把X10端子排上对应的STO和STO-插针短接具体插针号以用户手册为准我用的400W驱动器是把1/2和3/4分别短接。这不是可有可无的安全措施而是“不短接就别想动”的硬门槛。有些设备在最终交付时会把STO接到外部安全继电器上但调试初期最常见的做法就是短接。再说抱闸。电机带抱闸时抱闸电源和控制逻辑必须处理好。V90本身没有直接驱动抱闸的输出口一般是通过控制单元的输出点控制一个中间继电器再让继电器触点为抱闸线圈供电。在很多改造项目里大家会把“电机抱闸松开”和“伺服使能”绑在一起处理。我的建议是抱闸松开信号一定要在驱动器使能之后再去置位否则电机会出现“闸还没完全打开就收到运行指令”的情况轻则异响重则过载报警。最后是供电。V90 PN常见的供电是220V单相或三相如果设备只有单相220V选型时就要确认驱动器型号支持单相输入。千万别把380V直接怼上去那一下就炸了。电源侧的滤波、接触器、断路器按常规设计即可但建议在驱动器主回路前加一个接触器做急停断主电的控制这样比单纯发停止指令更安全。2.3 PROFINET对IP地址和设备名称的硬性要求PROFINET和普通以太网最大的一点不同是它除了IP地址还有一个“设备名称”Device Name的概念。IP地址负责网络寻址设备名称才是PROFINET IO控制器识别从站的真正依据。S7-200 SMART在组态里指定了“我连接的V90叫什么名字”V90那边也必须配置成这个名字两者完全一致通信才能建立。注意这个名字是大小写敏感的而且一般不允许使用特殊字符和空格。我习惯用简单的小写名称比如v90-pn1、v90-pn2全小写下划线结构免得在大小写上出问题。IP地址方面PLC和V90要在同一个网段。S7-200 SMART固定IP比如192.168.0.10两个V90分192.168.0.20和192.168.0.21掩码统一255.255.255.0。V90默认IP可能是出厂值必须通过调试工具改成和PLC同一网段。名字和IP不一致是最典型的通信失败原因。3. PROFIdrive协议是通信的入场券报文、控制字、标定如果你从来没有接触过PROFIdrive协议第一次打开报文配置界面时大概率会懵。一堆英文缩写STW1、ZSW1、NSOLL_B、NIST_A不知道谁该发给谁。这里我用最直白的方式把它讲明白这也是整篇文章里我认为最重要的理论部分。3.1 报文到底传什么控制字/状态字/速度字的映射V90 PN和S7-200 SMART之间的PROFINET通信说白了就是周期性地、以固定长度交换若干个16位字。PLC发给V90的是“控制命令”V90发回给PLC的是“运行状态”。以最常用的标准报文1为例PLC发给V90的数据区包含两个16位字第1个字控制字1英文简称STW1。里面的每一位都是一个开关量比如“上电”“允许运行”“故障复位”。第2个字速度设定值英文简称NSOLL_B是一个带符号的16位整数正数正转负数反转大小代表速度高低。V90发回给PLC的数据区同样包含两个16位字第1个字状态字1简称ZSW1。里面的每一位表示驱动器当前状态比如“已就绪”“正在运行”“有故障”。第2个字速度实际值简称NIST_B是当前电机实际转速的反馈。用一张表格表示就是数据方向第1个字第2个字含义PLC → V90STW1NSOLL_B控制字 速度设定V90 → PLCZSW1NIST_B状态字 速度反馈3.2 标准报文1和报文3怎么选在V90的Startdrive配置中你会看到很多报文类型比如标准报文1、标准报文3、标准报文5、标准报文7。很多人一上来就选标准报文3觉得“数字越大越高级”这是误区。标准报文1是纯速度控制数据最短响应最快也是最容易调试的。如果你的项目只需要给驱动器一个速度值让它转起来然后用PLC做定位逻辑或位置闭环那就选标准报文1。标准报文3比报文1多了位置相关数据比如位置实际值、位置误差等适合让PLC读取电机的位置反馈或者实现一些简单的位置控制。但数据字多了一倍程序处理也复杂一些。我建议首次调通通信的读者先选标准报文1。先把控制字和速度值跑通确认通信正常、电机能转、方向正确、状态字能读到然后再根据实际需要换更大的报文。很多人一上来就想把位置、速度、扭矩全塞进一组报文里最后自己都分不清QW0、QW2、QW4各是什么调试时非常痛苦。3.3 速度设定值和实际值怎么换算这是我最想强调的一点。V90收到的速度设定值和“每分钟多少转”不是直接相等的它遵循PROFIdrive的标准标定规则数值16#4000也就是十进制的16384代表“100%参考速度”。参考速度的大小由驱动器参数P2000定义常见设置为电机的额定转速比如1500rpm或3000rpm。所以实际速度的计算公式是实际设定值十进制 目标转速 ÷ P2000参考转速 × 16384举个例子P2000设为1500rpm想让电机以1200rpm的转速正转那么1200 ÷ 1500 × 16384 13107PLC里写入QW2的值就是13107对应十六进制约0x3333。如果想反转写入负值即可比如-13107。反向换算也一样当V90反馈回来一个速度实际值时如果IW2读到的数受是16384那就代表当前转速为参考转速。如果你的触摸屏要显示实际转速就需要在PLC里做一次乘除法运算把16384对应的值还原成rpm。这里要特别提醒一点PLC里处理有符号数时要注意数据类型。S7-200 SMART的V存储区里同一个字你可以按有符号数或无符号数来理解取决于你怎么做运算。速度值肯定是有符号的所以所有参与速度计算的变量都应该按INT类型处理避免把一个转负数的二进制码当成正数。4. 组态全流程从V90参数到Micro/WIN SMART的PROFINET理论讲完开始实际操作。我们先把V90的参数准备好再进S7-200 SMART侧做组态最后验证通信握手。整个过程正常顺利的话一个小时左右就能完成第一次数据交换。4.1 用Startdrive把V90先“喂饱”参数V90的调试我习惯用SINAMICS Startdrive这个是TIA Portal的驱动组态插件。如果你的电脑里没有TIA Portal也可以使用西门子官方的V-ASSISTANT调试软件功能类似。我这里以Startdrive为例说明。第1步新建一个项目把V90 PN设备添加到网络视图里。在离线状态下双击V90设备进入驱动调试图。第2步设置驱动运行模式。我们要做的是速度控制所以把运行模式选为“速度控制”或“转速控制”不要选“基本定位”。如果选了基本定位V90会自己接管很多位置逻辑和PLC程序会产生一堆权限冲突。第3步配置“设定值通道”和“通信报文”。在PROFINET通信设置中选择标准报文1注意把报文类型记录下来稍后在Micro/WIN SMART里必须选同一类型。第4步设置参考速度P2000。这里建议设成伺服电机的额定转速我测试时用的电机是3000rpm所以P2000设为3000。如果设成1500那么16#4000对应的就是1500rpm按这个比例跑计算公式就根据3.3节的公式来。第5步设置设备名称和IP地址。设备名称写成和PLC组态一致的名称比如v90-pn1IP设为192.168.0.20。这里有个细节下载参数到V90时设备名称和IP会随参数一起写入。第6步一键下载参数完成。下载后V90会重新启动启动后面板应该显示正常状态不会出现通信类报警。4.2 在Micro/WIN SMART中导入GSDML并添加V90S7-200 SMART的工程软件是STEP 7 Micro/WIN SMART。注意版本要跟上我用的是V2.5以上版本否则PROFINET向导选项可能都看不到。第1步打开项目在左侧向导区域找到“PROFINET”功能点击进入。第一次使用时向导会提示添加GSDML文件。V90对应的GSDML文件一般在V90调试软件的安装目录里或者从西门子官网下载。添加时要注意文件版本和你V90固件版本匹配否则后面组态时可能识别不出正确的报文。第2步在PROFINET组态界面中添加一个IO设备类型里找到SINAMICS V90拖入网络视图。此时组态软件会让你填写设备名称必须填写刚才V90里下载进去的那个名字比如v90-pn1一个字符都不能差。第3步配置从站的报文类型。在V90设备的报文槽位里选择“标准报文1”。此时Micro/WIN SMART会自动分配一组IO地址默认从I0.0开始。我习惯把IO起始地址往后挪一点比如IW100开始避免和CPU本机输入输出地址冲突。第4步点击保存编译下载到PLC。这里要特别注意S7-200 SMART的PROFINET组态下载到PLC后PLC会重启这是正常现象等一下就行。4.3 通信地址、报文槽和设备名称的对齐前面第三步里Micro/WIN SMART分配的IO地址就是你在梯形图里直接使用的硬地址。它遵循一个简单的规则第一个输出字也就是PLC写到V90的控制字对应QW100如果起始地址是100。第二个输出字也就是速度设定值对应QW102。第一个输入字也就是V90的状态字对应IW100。第二个输入字也就是速度反馈对应IW102。这个映射关系不是猜的是报文槽的数量和Micro/WIN SMART的地址分配算法决定的。标准报文1有两个输出字两个输入字所以起始地址加0、加2就是每个字的地址。如果你用了标准报文3输出会增加一个位置字那速度值就可能落到QW104而不是QW102。所以哪怕只多一个报文字地址也会变。记地址之前先数清楚报文槽。4.4 下载后如何确认握手成功组态下载完之后怎么确认通信真的通了首先看V90面板。V90的六段数码管上如果显示正常的驱动器状态并且没有“通讯中断”类的报警一般说明PROFINET周期性通信已经建立了。部分固件版本下面板会直接显示出“当前控制字/状态字”相关信息或者在Startdrive在线诊断界面能看到PROFINET通信状态为“Good”。然后看PLC侧。在Micro/WIN SMART的PROFINET诊断页面里可以查看“IO设备状态”如果显示“存在”且“良好”说明握手成功。如果状态是“不可用”或“检查未通过”大概率是设备名称不匹配或者IP不在同一网段。更粗暴有效的验证办法是直接在程序里写一小段测试逻辑往QW100写16#047F给QW102写一个固定速度值比如16384如果电机转起来了说明整条链路是通的。再读一下IW100看看状态字第二位是不是变成了1表示驱动器正在运行。5. 控制程序怎么写启停、速度设定和故障复位组态通了只是万里长征第一步。真正的控制逻辑是让S7-200 SMART像指挥官一样准确控制V90的启停、方向和速度并且在出故障时能够复位和报警。5.1 控制字的基础流程047E/047F和状态字判断我前面说过控制字STW1的每一位都对应一个功能。实际调试时我们不用每次按位去拼直接用两个固定值即可16#047E表示“允许运行但未给启动命令”可以理解为待机状态。16#047F表示“全面使能并启动”电机可以通电运行。如果把16#047E的二进制展开它的含义是无OFF2、无OFF3、允许运行、斜坡发生器使能、设定值输入使能、过程数据使能只有0号位启动运行为0。改成16#047F就是最后一位也置1发出运行命令。我之前就是从这两个值开始在两台设备上都没出现意外。程序逻辑可以这样写// 默认输出控制字为待机状态 LD SM0.0 MOVW 16#047E, MW10 // 启动按钮I0.0停止按钮I0.1 LD I0.0 O M0.0 AN I0.1 M0.0 // 运行状态时输出运行命令 LD M0.0 MOVW 16#047F, MW10 // 将控制字传递到PROFINET输出 LD SM0.0 MOVW MW10, QW100写入QW100的数值会以每个扫描周期一次的频率通过PROFINET发到V90。如果停止按钮按下M0.0被复位MW10重新变成16#047EV90按OFF1斜坡停车。状态字ZSW1也要读回来判断。我习惯把IW100的值传到一个中间变量MW20然后按位检查// 读状态字 LD SM0.0 MOVW IW100, MW20 // 第0位为1表示准备好接通 LD SM0.0 LDW MW20, 16#0231 S M1.0, 1 // 第2位为1表示正在运行 LD SM0.0 LDW MW20, 16#0233 S M1.1, 1 // 第3位为1表示有故障 LD SM0.0 ANDW MW20, 16#0008 MOVW MW20, MW22 ANDB 16#08 M1.2这里说一句状态字不是只有两种值实际运行中可能会有各种报警位和运行位组合。更稳妥的判断方法是“位测试”而不是“等于某个固定值”。我上面的示例用了等于判断只是为了展示清晰实际项目里建议用ANDW做位与单独取出某一位来用这样即使其他位有变化也不影响判断。5.2 从模拟量或HMI数值换算速度设定值速度设定值在PLC里怎么来决定了这台上位机的控制方式。我遇到两种常见场景一种是从触摸屏直接输入转速另一种是PLC读取外部模拟量调速。先说触摸屏方案。触摸屏输入的目标转速是整数单位rpm存到VD300里然后换算成PLC发到QW102的PROFIdrive标定值// VD300中为触摸屏输入的目标转速如1500 LD SM0.0 MOVR VD300, VD100 *R 16384.0, VD100 /R 3000.0, VD100 // 这里3000是P2000 ROUND VD100, VD104 DTI VD104, VW108 // 反转时速度值可能是负数程序里确保VW108按INT处理 MOVW VW108, QW102如果触摸屏输入的不是转速而是百分比比如0到100%那公式更简单直接用16384乘以百分比。再说模拟量方案。S7-200 SMART的模拟量输入AIW0采集0到20mA或者0到10V信号数值范围一般是0到27648。要把它映射到速度值就按线性比例计算// 把AIW0的0~27648映射成0~16384 LD SM0.0 ITD AIW0, VD110 DTR VD110, VD110 MOVR VD110, VD114 /R 27648.0, VD114 MOVR VD114, VD118 *R 16384.0, VD118 ROUND VD118, VD122 DTI VD122, VW116 MOVW VW116, QW102注意这种情况下的速度方向是单向的如果模拟量要控制正反转可能需要在中点加一个偏置或者用两个模拟量通道做方向切换。项目里如果需要正反转同时调速度建议直接上触摸屏或上位机发带符号的速度值别用模拟量绕弯子。5.3 带斜坡和限位的正反转V90本身有斜坡发生器在Startdrive里可以设置加减速时间。但如果你需要在PLC侧做更灵活的速度曲线比如不同段位用不同加减速时间也可以在PLC里写斜坡功能块。我项目里的做法是把斜坡时间交给V90PLC只负责把速度设定值按需求改变。因为V90的斜坡是专门为伺服调校的平滑度比PLC里做的那种几个扫描周期加定值的斜坡要好很多。正反转的切换通过速度设定值的正负号实现。有一点要注意切换方向前最好先把速度给定为0并等待状态字里“速度已到零”或至少等待一个较短的斜坡建立时间再给反向速度。如果直接从一个正速度跳到负速度V90内部会做一个快速穿越零点的处理冲击感会比较强某些机械结构可能受不了。限位信号方面正负限位开关接入PLC输入点程序中做硬连锁一旦限位动作立即把QW102清零输出控制字切换到16#047E让驱动器在当前斜坡下停车。复位限位后操作员需要按启动按钮重新给运行指令不允许自动恢复。5.4 硬件和软件双重联锁伺服设备的安全逻辑永远是第一位的。我在程序中做了几层连锁第一层是急停回路。急停按钮带常闭触点接入PLC的输入点急停释放时该点为ON急停按下时为OFF。控制字的待机状态16#047E只在急停释放时才被写入急停按下时直接把QW100写成16#0000也就是所有控制位清零。第二层是抱闸控制。抱闸继电器线圈接入PLC输出点程序里只有在M0.0运行标志为ON且状态字第2位为1正在运行之后才允许置位抱闸输出。停车时先撤掉运行命令等状态字显示驱动器停止或转速反馈低于某个阈值再断开抱闸输出。这个顺序在垂直轴上特别重要顺序反了轻则撞车重则坠落。第三层是限位和超速保护。除了硬件限位我还在软件里做速度上限判断防止触摸屏误写了超大的速度值。一旦设定值绝对值超过P2000对应的最大转速就钳位到最大值并给出HMI上的报警提示。别小看这一条实际调试时手误把速度值多打个0电机直接窜到最高转速的事我见得不只一次。5.5 故障复位与报警记录V90报故障后要复位才能再运行。复位方式可以通过控制字的第7位实现也就是故障复位位。正确做法是给一个“低电平到高电平的跳变”不能一直置位。示例逻辑// I0.2为复位按钮 LD I0.2 EU // 上升沿脉冲 S M2.0, 1 // 故障复位标志置位 // 在下一个扫描周期把复位标志写入控制字的第7位 LD M2.0 MOVW 16#047F, MW10 OW MW10, 16#0080, MW10 // 置位第7位 NOP // 保持一两个扫描周期 R M2.0, 1实际使用中故障复位信号保持的时间不宜过短也要确保前面的使能条件都满足复位后驱动器能马上接受运行命令。如果复位信号发出后故障依然存在程序里要做个超时判断比如2秒后故障位仍为1就在触摸屏上提示“复位失败请检查驱动器故障码”。V90的面板会显示故障代码这也是我保存报警信息的第一来源。PLC里可以顺便把状态字保存到掉电保持区历史报警时能复盘一下当时的控制字和速度值排查问题效率高很多。6. 我调试中实际踩过的坑和对应解法这部分是最值钱的。理论再多不如现场一个坑一个坑地蹚过来。我挑了七个最具代表性的问题按从接线到通信再到运动的顺序说。6.1 V90一上电就报警STO端子没短接第一次通电时V90面板直接跳出一个报警代码查手册才知道是STO安全回路断开。我记得很清楚当时还把几个端子来回查了一遍最后发现X10端子排上的短接片松了。这个问题看起来小但非常容易迷惑第一次用V90的人。只要STO回路没闭合V90会认为安全功能触发拒绝一切运行命令。所以通电之前先把X10端子对照手册检查一遍短接片压紧然后给驱动器通电面板应该进入正常待机状态。6.2 PROFINET连上后反复掉线状态一会有一下没有一次调试PLC组态下载完电机能转但转不到一分钟通信就断了V90面板报通讯故障然后过几秒又自动重连。查了半天发现是交换机上还挂着调试电脑的无线网卡这个无线网卡时不时广播一些组播数据把PROFINET的实时数据包给挤出去了。换了个工业交换机并且把调试电脑的无线网卡禁用之后问题消失。所以我的建议是PROFINET网络里尽量不要混入普通办公网络设备尤其是带WiFi的笔记本连接。调试电脑要用有线网口网卡的电源管理里的“允许计算机关闭此设备以节约电源”选项也关掉否则电脑休眠时网卡掉线也会把交换机端口搞出异常。6.3 电机低速抖动、速度跟随滞后程序都写完了0到3000rpm的加减速看起来也平顺但低速运行时电机明显有抖动。一开始怀疑机械问题拆开传动部分检查了一遍没有异常。后来在Startdrive里查看速度反馈波形发现低速时的速度波动比较大。解决办法是把V90的速度环比例积分参数稍微调软一点同时PLC侧的速度设定值加了斜坡滤波。低速抖动很大程度是速度环响应太激进和机械形成共振。另外检查一下编码器电缆的屏蔽层是不是单端接地我那次是编码器电缆屏蔽层两端都接地了形成地环路把编码器信号污染了。改成一端接地后波形干净很多。6.4 位置不准到底是PLC算还是V90算设备要做定长定位我一开始想用PLC的位置闭环让PLC读取V90反馈的位置信息实测发现精度总是差一点。原因在于S7-200 SMART的扫描周期和PROFINET通信周期叠加后位置采样的延迟是在不断抖动的你很难靠一个固定补偿值去消除。最后我的方案是定位任务下放到V90内部做。V90在基本定位模式下可以自己接收位置设定值、控制加减速、完成回零和定位。PLC的角色变成“发定位命令、监测状态、处理故障和逻辑互锁”这样位置环闭在V90内部和PLC扫描周期无关精度直接上了一个台阶。这也是我在第3.2节强调标准报文1和报文3差异的原因。如果你要做定位就别试图用PLC去算PID位置环直接让V90干它擅长的活。S7-200 SMART通过PROFINET真正擅长的是逻辑顺序控制和人机交互不是高速位置伺服运算。6.5 常见的几个故障代码和排查方向现象可能原因排查方向V90上电报警STOX10短接片松动检查X10端子排对照手册确认短接针脚通信反复中断网络中有非PROFINET设备、IP冲突检查交换机端口、禁用电脑WiFi、确认IP不重复电机不转控制字未给到16#047F、使能条件不满足PLC在线监控QW100的值和状态字电机只抖动不转报文类型不匹配、速度设定值太小核对PLC和V90报文槽位看看P2000抱闸电机坠落抱闸顺序反了必须先在驱动器停止后再断开抱闸运行方向反了速度设定值符号不对V90中可通过参数改变方向或者程序里取负6.6 一个容易被忽略的IP冲突最后压轴说一个隐蔽的坑。有次一切组态都对V90就是不通信后来用电脑Ping了一下V90的IP发现居然有另一台设备也占着这个IP。原来是因为之前调试时把另一台旧PLC的IP设成了192.168.0.20断电后这台旧PLC没关一直在线。两台设备抢一个IP导致V90的IP时通时不通。排查方法很简单把V90单独接到电脑上给电脑配同一网段的IP然后ping一下V90的地址如果能响应说明网络没问题。如果ping的结果不稳定或者延迟明显就要考虑是不是有别的设备占用了这个地址。7. 最后算一笔账这套方案替我省了多少这一节不是广告只是结合我实际项目的财务和技术账给大家一个参考。S7-200 SMART加V90 PN的方案到底值不值心里有数之后再做决策。7.1 成本对比如果走传统方案S7-1200加V90PLC本体价格就比S7-200 SMART高出一截再加上TIA Portal授权费用、Startdrive插件授权以及可能额外增加的通信模块总成本会明显上一个台阶。而S7-200 SMART加V90 PN通信功能是CPU自带的不需要增加PROFINET通信模块只需要一个普通工业交换机。对单轴或双轴设备来说成本优势非常明显。7.2 开发时间对比从我第一次接触这套组合到把第一台设备调通算上查手册和踩坑的时间大概三天。如果只算配置和调试而且对流程熟悉一天甚至半天就能完成从零到电机转动。原因是S7-200 SMART的PROFINET向导和Startdrive的报文配置都是图形化操作不需要手工写复杂报文结构。相比用S7-1200做同样的事省去了很多TIA Portal工程管理和库调用的学习成本。7.3 什么情况下不建议用这套写到这里必须把话说全。这套方案并不适合所有场合。如果你要做多轴直线插补或圆弧插补S7-200 SMART的运动控制能力不够老老实实上高端控制器。如果项目对同步精度要求极高比如电子齿轮、追剪飞剪S7-200 SMART只是RT通信达不到IRT等时同步的严格指标硬上的话同步精度很难保证。另外如果设备将来要扩展大量分布式IO节点和第三方PROFINET从站虽然S7-200 SMART能连多个从站但每个从站的报文和诊断管理能力都有限不如S7-1200来得从容。整体上S7-200 SMART通过PROFINET控制V90 PN是在预算、工期和控制复杂度之间取得平衡的方案。它适合中小型设备的伺服化改造更适合那些不想被复杂工程环境绑架、希望用一台小PLC搞定单轴双轴精确定位的项目。最后再分享一个我个人的实用习惯调试这种PROFINET伺服项目时不管多忙我会先在纸上把控制字和状态字的每一位含义抄一遍贴在工控柜门上再用宏定义把常用的16#047E、16#047F、故障复位位都写成符号名。做到这一步后面不管是自己维护还是同事接手都省去大量拿着说明书翻位定义的时间。这套组合我已经在多个项目里稳定运行希望这篇文章能让你少走点弯路。
返回列表