01
开篇
S7-1500 运动控制是工程师们非常常用的功能,在使用的过程中,指令或者工艺对象往往会报错,对调试生产造成一定的困扰,这里就为大家总结一下如何查找故障代码、如何显示、如何复位,以及简单的故障处理等问题。
在开始讲之前,首先要知道西门子为运动控制功能准备的故障处理手册,从 V17 V6.0 工艺对象版本开始,这个手册独立发布,目前最新版 V19 V8.0 工艺对象的下载链接二维码如下:
该手册包含所有故障代码、报警文本、解决方案,以及故障响应,建议下载收藏保存。即使您使用的是低版本工艺对象,也可以使用这个手册。
1.1 故障分类
S7-1500 运动控制指令错误代码在输出引脚 ErrorID处展示,大体分为两类,一类是16#8001,这种称为工艺报警;一类是16#8XXX(不包括16#8001)就是一般错误。
为了消除错误代码显示,工艺报警需要MC_RESET指令进行复位,并且故障真的排除了,错误代码才会清除;而一般错误只要不触发指令了错误代码就消失了。
一般错误,往往是指令使用了错误、无效的参数,所以改正了错误也就不会再报了,这些仅仅以代码形式体现,这个比较简单,这里不做具体分析,可以参考上面手册中关于错误代码的表格自行查找错误。
而工艺报警是运行时出现的各种错误,这些错误会指向工艺对象,例如轴、外部编码器、运动系统等。这些报警可以在HMI/WinCC的报警视图显示,在工艺对象的诊断页面也有简单的显示,方便故障诊断,后文我们将重点分析工艺报警。
除了指令报错,还有就是驱动器本身的报警与故障,如果我们在驱动器组态中激活如图1中的PROFIdrive 标准诊断,则这些报警与故障将显示在PLC的诊断缓冲区,便于判断驱动故障。这些报警与故障解决后,也可以通过 MC_RESET 指令进行复位(工艺对象 V5.0 版本开始)。
图1、激活 PROFIdrive 标准诊断
不同的PROFIdrive消息类别、含义与诊断缓冲区事件 ID 对照关系如图2所示。
图2、事件ID与含义
驱动故障具体解决办法这里不做解释,可以自行查阅相关手册、文档、视频资料等。
1.2 工艺报警
工艺报警简单的说可以分为三类:
可确认的警告:轴受限运动
需要确认的报警:中止作业
严重错误:中止作业,并且需要重启工艺对象
结合分类,西门子对不同报警给予了不同的报警响应,使用工艺对象中的变量<TO>
图3、错误响应变量
不同的报警以编号来区分,使用变量
图4、工艺报警编号
报警编号基本是一类的错误归类到一起,比较常见的例如编号1xx通常的是组态错误,编号4xx通常是通信故障、驱动编码器故障等,编号5xx通常是各种工艺受限,例如跟随误差、监视窗口、限位等。
虽然在程序中可以通过上述方式读到报警编号,但是很多时候我们并不这样去处理,一是不够直观,另一个主要问题是,很多时候一个报警编号对应很多种场景,如图5所示。
图5、报警示例
图5中展示的仅仅是报警编号531的部分报警,从图中可知这几种错误都会导致<TO>
图6、报警显示
从图中的事件文本能得知报警编号531,轴名称以及有效的事件,这样我们才能进行下一步的操作处理。
当然,工艺对象调试面板也能显示些信息,但是由于不够精确,所以不是特别推荐。
正式生产时我们推荐使用HMI/WinCC报警视图来显示事件文本,如果不使用西门子HMI/WinCC,也可以使用Web Server消息页面显示事件文本。
不同的工艺报警按照前面的分类,会对两个状态字产生影响:
<TO>
图7、错误字与报警字
这两个状态字都是DWord类型,也就是由32个位组成,每个位代表一个错误种类,每种报警对其中的指定位进行置位,例如多次提到的报警编号531(碰到硬限位开关),对<TO>
图8、531的错误字
报警编号具体对哪个状态字哪个位产生影响可以查看开篇提到的手册。通过对状态字其中的位进行判断也可以辅助我们进行诊断编程。和<TO>
1.3 故障复位
开篇提到工艺报警必须使用MC_RESET进行复位,但是这么说其实并不完整。
准确的说对于普通的工艺报警来说,除了MC_RESET以外我们也可以使用HMI/WinCC报警视图的“确认”,工艺对象调试面板的“确认”,Web Server消息页面的“确认”,以及TIA Portal 诊断显示的“确认”等多种方式进行,如图9红框所示。
图9、各种确认方法
但是还有一类更特殊的工艺报警就只能使用MC_RESET来复位了,那就是最开始分类时提到的严重错误,需要重启工艺对象。
这种需要重启工艺对象的故障目前主要集中在报警编号1xx的组态错误、2xx的内部错误等,这些故障通常是需要重新组态编译下载,那没什么说的。我们最需要关注的是报警编号531中部分需要重启工艺对象的故障。
前面提到的例子中“逼近正硬限位开关”的错误是531中最常见的故障,而需要重启的部分,如图10所示。
图10、需要重启工艺对象的531
帮助手册说明比较晦涩,简单的说就是要么两个限位开关同时激活,要么在错误的方向上激活了限位开关,例如轴正向运行撞上了负向限位开关等、或者轴静止时操作人员不小心碰到了限位开关。这些在调试中比较常见,而在实际生产中往往是传感器或线路出了问题。当然从图中我们也可以得知,V7.0工艺对象以后,只针对可遍历的硬限位开关有此需要了。
遇到这样的故障只有两种方式复位,一个是CPU断电重启,另一个是使用MC_RESET指令,但是注意需要将默认为False的Restart引脚修改为True,然后在Execute触发复位才可以,如图11红框所示,这就是重启工艺对象。
图11、通过MC_RESET重启工艺对象
注意:把Restart设置为True,不能复位那些不需要重启工艺对象的故障。
基于这个问题,我们可以这样设计项目,例如使用WinCC报警视图的复位按钮复位常规错误,MC_RESET的Restart常置为True,然后WinCC中单独设置一个按钮关联这个MC_RESET的Execute触发,也就是说MC_RESET仅用于重启工艺对象。或者说使用两个不同背景的MC_RESET,一个用于复位,一个用于重启工艺对象。
注意:使用MC_RESET重启工艺对象将导致增量编码器设置的原点信号丢失!
1.4 常见工艺报警的解决方向
最后简单介绍一下常见工艺报警编号的大体解决方向。
报警102、103:调整驱动装置组态时出错,调整编码器组态时出错。通常是组态出错,输入了错误驱动器、编码器参数。首先需要确保驱动器中的报文和TIA Portal中组态一致,其次可以使用自动获取方式避免出错,如果第三方驱动器、编码器不支持自动获取需要按照工艺对象手册中要求在第三方驱动器、编码器中查找正确参数。
报警411、421、431:该逻辑地址处的编码器故障、该逻辑地址处的驱动装置故障、该逻辑地址下的设备的通信发生故障。通常是PN故障导致,尤其是IRT通信对网络要求更加严格,建议网络中使用专门的Profinet交换机。此外STO端子闪断也会造成故障。
报警521:跟随误差。该故障是跟随误差超出限制,建议检查OB91循环时间是否合理,伺服是否进行过一键优化,工艺对象的位置控制回路中的增益设置是否合适,如果是外部编码器则考虑响应是否及时,机械的安装精度是否足够等多方面。
报警531:各种限位开关错误。如前所述,主要就是轴撞到了限位开关,尤其注意的是限位开关的异常行为。
报警551:基于驱动器/轴参数,无法达到最大速度。该故障并不会导致轴停止,产生原因是在工艺对象>扩展参数>位置限制>动态限值中的最大速度设置过大导致,正常的最大速度是由驱动最大转速、齿轮比、丝杠螺距决定。
1.5 总结
以上就是关于运动控制故障的一些总结,后续我们还会撰写运动控制其他话题,敬请关注我们的公众号:西门子工业1847俱乐部。
最后送上我们1847网站上的几个相关专题:
跟我学S7-1500T基础
S7-1500T同步功能初探
S7-1500T小技巧
S7-1500T 解释器功能初探
更多内容请参考