一組PLC程序的邏輯錯誤分析
圖5 定時器分配程序圖
圖6 梯形圖
4 十字路口交通燈控制程序
題目:交通燈控制程序
來源:plc應用技術開發(fā)與實踐
編程平臺:omron公司cqm1系列
●任務描述
工作順序:啟動按鈕,南北綠燈,東西紅燈,東西綠燈,南北紅燈。按此順序循環(huán)。
時序控制:(90秒周期)
●主干道
南北左轉(zhuǎn)燈:綠10秒,黃2秒,紅78秒;
南北直行燈:紅10秒,綠30秒,綠閃3秒,黃2秒,紅45秒;
東西方向左轉(zhuǎn)燈和直行燈的工作方式與上相仿,但延遲45秒。人行道燈與主干道直行燈相同。
●強通控制
打開強通開關,強通方向綠燈亮,斷開強通開關,綠燈閃3秒,恢復正??刂?;
閃爍控制,亮0.5秒,暗0.5秒,持續(xù)3秒;
這個程序比較長,不便全部抄錄在此。這里僅指出程序中的幾個錯誤,并列出相關的程序段。
圖7程序的實現(xiàn)
程序錯誤(1):閃爍控制錯誤。閃爍過程通過一個專門的程序段控制,按要求該程序應該每隔0.5秒輸出1,然后0.5秒輸出0,不斷循環(huán)。圖7是書中該程序的實現(xiàn):
其中只用到tim050一個定時器,計時單位為十分之一秒。omron的tim型定時器的工作方式同西門子ton型定時器相仿,當輸入為1時啟動計時,一旦輸入轉(zhuǎn)0,立即停止計時,定時器變量輸出復位為0。
起始狀態(tài)tim050的值為0,取反后送入定時器1,啟動計時,5個單位之后到時定時器產(chǎn)生信號1。該信號經(jīng)反饋之后,把0送入定時器,這一輸入值立即把定時器輸出重新變?yōu)?。因此,該段程序只能產(chǎn)生非常短暫的1,而不是持續(xù)0.5秒的1。當該信號用于驅(qū)動綠燈時,無法產(chǎn)生正常的均勻閃爍效果。
●程序修正(見圖8)
圖8 程序修正圖
這里用了兩個定時器,當?shù)谝粋€定時器tim050到時之后,它的輸出信號1送到第二個定時器tim051啟動后者計時。但tim051需要5個單位之后才能到時,在這段時間內(nèi),tim050依然的輸入依然是1,因此它能夠把1繼續(xù)保持0.5秒,由此產(chǎn)生一個均勻的每隔0.5秒變化的脈沖。
程序錯誤(2):在系統(tǒng)初始啟動階段,南北方向綠燈亮,但東西方向的左轉(zhuǎn)紅燈和直行紅燈沒有同時點亮
原因分析:由于相關程序比較長,不便在這里展示,這里我們僅分析一下出錯的原因及解決的辦法。原程序中采用順序啟動各個顏色燈的方法。即左轉(zhuǎn)綠燈10秒后啟動直行綠燈,30秒后綠閃,2秒后黃燈,然后55秒紅燈。然而,按這一順序運行時,一開始南北直行紅燈的10秒缺掉了,東西左轉(zhuǎn)紅燈45秒漏了,最后東西直行紅燈55秒也漏了。要改變這一情況,需要改變后一程序,同時再引入兩個定時器,把紅燈控制切分成兩段完成。
可能人們認為上一個問題不算嚴重,因為原來程序在啟動一分鐘之后就能達到正常。但下面的強通控制的錯誤確是比較嚴重的。所謂強通是指緊急車輛到達路口時,人工控制按下相應方向的強通開關,使得這一方向的綠燈亮,另一方向亮紅燈。緊急車輛過去之后,強通開關方塊,強通方向綠燈閃動三下之后,恢復原來的系統(tǒng)運行。
程序錯誤(3):強通按鈕放開之后,按規(guī)定強通方向綠燈應該閃爍三下,然后熄滅,但實際情況是綠燈沒有按照規(guī)定閃爍和停止,而是持續(xù)發(fā)亮。
原因分析:
我們以東西向直行綠燈控制程序段為例分析這一問題。
該程序中100.12為控制東西向綠燈的輸出變量。該方向的強通通過hr0.00控制,強通按鈕按下之后,該變量為1,從而引起100.12輸出為1,綠燈亮。強通按鈕放開之后,這條通路切斷,hr0.01變?yōu)?之后,hr0.03會變?yōu)?,過程在這里略去。hr0.03所在的通路將產(chǎn)生一個3秒鐘的閃爍脈沖。編程者的意圖是通過它在結束強通之后制造一個綠燈閃爍過程。然而,由于變量100.12的反饋存在,一旦該變量為1,它將自動地繼續(xù)保持為1。只有兩種方式可以使它恢復為0,一種是30秒定時器到時(tim010),另一個是另一方向的強通信號hr0.01。在同方向強通信號結束之后,一般情況下,上述兩個信號均不會轉(zhuǎn)為1,因此綠燈無法馬上停止。系統(tǒng)并不產(chǎn)生規(guī)定的效果。
西門子plc相關文章:西門子plc視頻教程
評論