新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 一組PLC程序的邏輯錯誤分析

一組PLC程序的邏輯錯誤分析

作者: 時間:2014-01-13 來源:網(wǎng)絡(luò) 收藏

圖5 定時器分配程序圖

圖6 梯形圖

4 十字路口交通燈控制程序

題目:交通燈控制程序

來源:plc應(yīng)用技術(shù)開發(fā)與實踐

編程平臺:omron公司cqm1系列

●任務(wù)描述

工作順序:啟動按鈕,南北綠燈,東西紅燈,東西綠燈,南北紅燈。按此順序循環(huán)。

時序控制:(90秒周期)

●主干道

南北左轉(zhuǎn)燈:綠10秒,黃2秒,紅78秒;

南北直行燈:紅10秒,綠30秒,綠閃3秒,黃2秒,紅45秒;

東西方向左轉(zhuǎn)燈和直行燈的工作方式與上相仿,但延遲45秒。人行道燈與主干道直行燈相同。

●強(qiáng)通控制

打開強(qiáng)通開關(guān),強(qiáng)通方向綠燈亮,斷開強(qiáng)通開關(guān),綠燈閃3秒,恢復(fù)正常控制;

閃爍控制,亮0.5秒,暗0.5秒,持續(xù)3秒;

這個程序比較長,不便全部抄錄在此。這里僅指出程序中的幾個錯誤,并列出相關(guān)的程序段。

圖7程序的實現(xiàn)

程序錯誤(1):閃爍控制錯誤。閃爍過程通過一個專門的程序段控制,按要求該程序應(yīng)該每隔0.5秒輸出1,然后0.5秒輸出0,不斷循環(huán)。圖7是書中該程序的實現(xiàn):

其中只用到tim050一個定時器,計時單位為十分之一秒。omron的tim型定時器的工作方式同西門子ton型定時器相仿,當(dāng)輸入為1時啟動計時,一旦輸入轉(zhuǎn)0,立即停止計時,定時器變量輸出復(fù)位為0。

起始狀態(tài)tim050的值為0,取反后送入定時器1,啟動計時,5個單位之后到時定時器產(chǎn)生信號1。該信號經(jīng)反饋之后,把0送入定時器,這一輸入值立即把定時器輸出重新變?yōu)?。因此,該段程序只能產(chǎn)生非常短暫的1,而不是持續(xù)0.5秒的1。當(dāng)該信號用于驅(qū)動綠燈時,無法產(chǎn)生正常的均勻閃爍效果。

●程序修正(見圖8)

圖8 程序修正圖

這里用了兩個定時器,當(dāng)?shù)谝粋€定時器tim050到時之后,它的輸出信號1送到第二個定時器tim051啟動后者計時。但tim051需要5個單位之后才能到時,在這段時間內(nèi),tim050依然的輸入依然是1,因此它能夠把1繼續(xù)保持0.5秒,由此產(chǎn)生一個均勻的每隔0.5秒變化的脈沖。

程序錯誤(2):在系統(tǒng)初始啟動階段,南北方向綠燈亮,但東西方向的左轉(zhuǎn)紅燈和直行紅燈沒有同時點亮

原因分析:由于相關(guān)程序比較長,不便在這里展示,這里我們僅分析一下出錯的原因及解決的辦法。原程序中采用順序啟動各個顏色燈的方法。即左轉(zhuǎn)綠燈10秒后啟動直行綠燈,30秒后綠閃,2秒后黃燈,然后55秒紅燈。然而,按這一順序運(yùn)行時,一開始南北直行紅燈的10秒缺掉了,東西左轉(zhuǎn)紅燈45秒漏了,最后東西直行紅燈55秒也漏了。要改變這一情況,需要改變后一程序,同時再引入兩個定時器,把紅燈控制切分成兩段完成。

可能人們認(rèn)為上一個問題不算嚴(yán)重,因為原來程序在啟動一分鐘之后就能達(dá)到正常。但下面的強(qiáng)通控制的錯誤確是比較嚴(yán)重的。所謂強(qiáng)通是指緊急車輛到達(dá)路口時,人工控制按下相應(yīng)方向的強(qiáng)通開關(guān),使得這一方向的綠燈亮,另一方向亮紅燈。緊急車輛過去之后,強(qiáng)通開關(guān)方塊,強(qiáng)通方向綠燈閃動三下之后,恢復(fù)原來的系統(tǒng)運(yùn)行。

程序錯誤(3):強(qiáng)通按鈕放開之后,按規(guī)定強(qiáng)通方向綠燈應(yīng)該閃爍三下,然后熄滅,但實際情況是綠燈沒有按照規(guī)定閃爍和停止,而是持續(xù)發(fā)亮。

原因分析:

我們以東西向直行綠燈控制程序段為例分析這一問題。

該程序中100.12為控制東西向綠燈的輸出變量。該方向的強(qiáng)通通過hr0.00控制,強(qiáng)通按鈕按下之后,該變量為1,從而引起100.12輸出為1,綠燈亮。強(qiáng)通按鈕放開之后,這條通路切斷,hr0.01變?yōu)?之后,hr0.03會變?yōu)?,過程在這里略去。hr0.03所在的通路將產(chǎn)生一個3秒鐘的閃爍脈沖。編程者的意圖是通過它在結(jié)束強(qiáng)通之后制造一個綠燈閃爍過程。然而,由于變量100.12的反饋存在,一旦該變量為1,它將自動地繼續(xù)保持為1。只有兩種方式可以使它恢復(fù)為0,一種是30秒定時器到時(tim010),另一個是另一方向的強(qiáng)通信號hr0.01。在同方向強(qiáng)通信號結(jié)束之后,一般情況下,上述兩個信號均不會轉(zhuǎn)為1,因此綠燈無法馬上停止。系統(tǒng)并不產(chǎn)生規(guī)定的效果。

西門子plc相關(guān)文章:西門子plc視頻教程




關(guān)鍵詞: PLC程序 存儲器 邏輯錯誤

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉