一起西门子840D系统报警12080#的处理过程
晚上,真准备洗澡时,突然公司同事的电话滴滴、滴滴的在呼叫我,应该是有设备故障了的情况,于是,暂停洗澡拿起电话开始了接听。同事电话中大致描述了一台西门子840D系统设备,不知道什么原因,反正什么都不会“动”了,通过简单的了解,大概清楚了不会动,这里的动仅仅指通道轴和伺服轴在auto状态时。我让他按老规矩把系统报警信息发上来,很快新他报价信息通过维修上传了,图示:
![](/club/bbs/upload/image/20230922/6383098020804665789179598.jpg)
看了看系统报警,应该是属于NCK编程方面的报警。系统明显提示是通道2的N100步这里有标注0.4方面的错误,报警号12080#错误引起的,其它4个5字头的报警信息实际上都是由于12080# 通道2的报警触发的裙带错误,属于同一个报警信息触发的。
打开西门子840D诊断手册,查阅12080#错误的含义,图示:
![](/club/bbs/upload/image/20230922/6383098025038191152147889.jpg)
官方提供的报警解释是:语法错误。比如有gotof、gotob指令没有完整写入跳转条件;没有给变量写入操作数等。既然系统报警号N100这步的报警,我于是重新拿起电话打给同事,让他仔细核实这个N100步的程序是否与原来的有异样?不一会,同事给我电话说大致检查了一边,没有发现有异样。同时,同事他感觉无法找到问题的所在后,重新对系统设备做了重新断电再启动的过程,结果当NCK程序运行到通道2的N100这步时,系统出现了上述的报警而停止。我让同事在手动JOG状态下,将各通道轴移动到起始位置,然后再启动auto,结果同样是这个报警,说明问题仍然没有找到正确的切入点。
类似的NCK语言,我曾经有遇到过几次,其中,一些错误比较明显的是如通道2子程序中编辑了非通道2的nck指令,如编辑了通道1或者通道3的那些命令,显然是不合规的语言错误,另外,输入的语言也有一次,具体是同事在编辑NCK加工程序中,在电脑上输入了半角语法,通过U盘导入到系统后,系统一直有语言报警,但是,在op屏上很难看的出来这样的错误,最后是我切换其它加工程序过程中通过对比排除,找到是这个加工程序的输入语法问题。于是,我让同事先用手机拍下通道2的NCK程序照片,然后对照将N100这步程序,通过op面板手工输入试试。告诉可行的排障方式后,担心同事对设备的熟悉程度,还是千叮咛万嘱咐要求同事务必确认输入的语言、语法的基本注意事项,自己也趁这个间隙抓紧时间把澡给洗了。另外,担心晚间同事输入出错,我让同事为了安全起见,把加工的模具拆卸掉,这样哪怕输入数据的错误,设备在没有模具条件下空运行也不至于撞车事故的出现,安全是第一位考虑的要因。
在洗澡过程中,我突然想起这台设备的NCK编程架构的子程序的多层嵌套,在通道2应该有2个加工的子程序的,而同事一直给我的只是其中的一个通道2的。莫非,另外那个的N100步上真的存在了“问题”?电话中我还是确认过,加工这个产品的NCK加工程序是否是新的,回复说这个产品已经有很多加工过了的,那么,NCK程序应该属于是已经在用的程序,基本的语法错误的可能性几乎没有。赶紧洗完澡,再次打电话过去,让同事把另外的通道2子程序给我发上来确认,很快通道2的加工程序通过微信上传上来了,图示:
![](/club/bbs/upload/image/20230922/6383098029539437061927553.jpg)
同事操作时一个“不经意”的输入错误,造成了系统的报警,这个我在回复电话中一直强调,既然系统报警12080# 通道2的N100步错误一定是存在的,图示也验证了我的判断。当N100 $P_UIFR [2,X2,TR] -0.1 ;X轴的偏差,一个非常明显的输入方式错误映入眼帘时,我马上把具体位置标注好,发给了公司同事,让他在这个偏差赋值中加入一个“等于”的符号。这样,N100 $P_UIFR [2,X2,TR] = -0.1 ;这样的语法才是正确的,问题找到,在回复问题原因过程中也让同事准备安装模具,准备生产了。几个小时过去,看到同事发上来的产能报告,足已经说明那边已经在正常生产了,此,一个简单的NCK编程错误排障过程,让同行在类似排障时可以做的参考。