开始接触西门子伺服控制时,是以单轴伺服控制开始的,即300PLC控制S120伺服驱动器,报文采用的是111报文定位控制。在网上找到了111报文的现有工程作范本,节省了很多时间,但是由于一次就好用了,没有深究具体的接口信号含义。其中qPZD1.r2090_4和qPZD1.r2090_5两个接口信号在示例程序中定义是控制字中的紧急停止和轴禁止信号。紧急停止顾名思义就认为是类似于急停的安全互锁信号,轴禁止就考虑为轴互锁信号,实际程序中也是这个含义去编程处理的。

之后在正常的控制过程中一直没有出现问题,也一直延续这种控制做了好些设备。直到在客户现场运行了3年的机床出现了一次意外,才发现这个控制程序是有bug的。我们现场设备采用的是MDI方式,通过对驱动速度和位置方式赋值控制机床。当某一段程序没有执行完,这时设备出现了故障,需要将自动切换为手动时,程序中做的是轴禁止处理,方式切换了,伺服滑台确实停掉了,但是当方式切换到自动方式后,滑台又进给了,这肯定是有问题!当客户把问题反馈给我们后,由于客户生成任务很急,当时做了临时处理,比如切换方式时把当前值赋值到驱动器中,保证滑台不继续进给。后续联系西门子客服进行请教后,发现问题出在接口信号没有搞清楚。

qPZD1.r2090_4在starter中真正的含义是取消任务;qPZD1.r2090_5在starter中真正的含义是立即停止;在切换模式或处理其他互锁的时候,先立即停止正在运转的程序任务,再将任务取消,就解决了实际问题。