在编制PLC程序时,不管是新手还是老手,都会犯下面的这种低级错误。因为这种错误是非语法上的,所以用编程软件也不能检查出错误之处。此错误一旦发生,自己有时还很难发现,直至上机调试运行时,所控设备不能运行或运行到某个位置停止不前,才察觉出来有问题,再对PLC程序逐条逐句查找分析,或采取对程序逐条逐句执行,费时费工。
那么究竟是什么问题易使我们犯下这种低级错误呢?
继电器电气控制的固有思维,在编制程序时,某个或几个输入点采用物理常闭触点(如停止开关、行程限位开关),在程序中,仍延续继电器电气控制方式编制,即仍采用常闭接点作为导通条件使用。
下面用一个简单的启停与自锁电路示例来说明:
根据上图编制的不能运行的错误PLC程序如下:
PLC上电后,X000、X002常闭点就会断开。即逻辑值为“0”Y0=(Y0+X001)×X000×X002从上面数字逻辑表达式可知,在按下启动按钮SB1后,X001的逻辑值为“1”,而Y0的逻辑值永远不会变化,始终为“0”。原因是与PLC内部输入电路有关,以下是PLC内部输入等效电路:
正确的PLC程序如下:
PLC上电后,X000、X002常开点就会闭合。即逻辑值为“1”Y0=(Y0+X001)×X000×X002只要按下启动按钮SB1后,X001的逻辑值为“1”,Y0逻辑值就为“1”。松开启动按钮SB1,X001的逻辑值为“0”但Y0逻辑值为“1”,Y0与X001是或的关系,保证了Y0逻辑值始终为“1”,即自锁。直至按下停止按钮或出现过载 (FR0动作),Y0的逻辑值才变为“0”。
通过上面的简单示例可知,新手可能还未弄懂外部为常闭输入时,经PLC内部输入电路后逻辑值发生了“非”的变化。以及继电器电气控制固有思维影响,老手是出于疏忽。这虽然是低级错误,也易发生在程序编制过程中。
相关文章









