技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 一組PLC程序的邏輯錯(cuò)誤分析

一組PLC程序的邏輯錯(cuò)誤分析

時(shí)間:2018-03-14 10:39:26來(lái)源:網(wǎng)絡(luò)轉(zhuǎn)載

導(dǎo)語(yǔ):? plc程序設(shè)計(jì)具有不尋常的軟件編程模式。設(shè)計(jì)中需要考慮多個(gè)并行線程,它們之間的交互作用,以及在時(shí)間域上的行為。在plc的五種主要的編程語(yǔ)言當(dāng)中,源自繼電器控制系統(tǒng)的梯形圖語(yǔ)言采用了一種簡(jiǎn)單的方式巧妙地處理了并行程序設(shè)計(jì)問(wèn)題

1引言

可編程序控制器(簡(jiǎn)稱plc)是一種工業(yè)自動(dòng)控制中使用的計(jì)算裝置。它廣泛應(yīng)用于鋼鐵、石油、化工、電力、建材、機(jī)械制造、汽車、輕紡、交通運(yùn)輸、航天、環(huán)保及文化娛樂(lè)等各個(gè)行業(yè)。小到家用設(shè)備,大到航天器材,都有plc的應(yīng)用。

典型的plc由一個(gè)專用的cpu,一個(gè)存儲(chǔ)器和一組輸入輸出端口構(gòu)成,如圖1所示。它通過(guò)輸入端口接收來(lái)自傳感器的信號(hào),并通過(guò)輸出端口發(fā)出控制信號(hào)驅(qū)動(dòng)同它連接的外部設(shè)備。存儲(chǔ)器中安放控制程序,系統(tǒng)的活動(dòng)由控制程序所驅(qū)動(dòng)。

plc系統(tǒng)每隔一定的時(shí)間間隔(比如5毫秒)從輸入端口讀入信號(hào),執(zhí)行計(jì)算,然后向輸出端口發(fā)送輸出信號(hào)。每一“輸入-計(jì)算-輸出”周期稱為一個(gè)掃描周期。plc程序在每個(gè)掃描周期中重復(fù)執(zhí)行一遍。plc的簡(jiǎn)單應(yīng)用有洗衣機(jī)控制,電梯控制。復(fù)雜的應(yīng)用有自動(dòng)機(jī)床控制,自動(dòng)化工程控制。

plc程序設(shè)計(jì)具有不尋常的軟件編程模式。設(shè)計(jì)中需要考慮多個(gè)并行線程,它們之間的交互作用,以及在時(shí)間域上的行為。在plc的五種主要的編程語(yǔ)言當(dāng)中,源自繼電器控制系統(tǒng)的梯形圖語(yǔ)言采用了一種簡(jiǎn)單的方式巧妙地處理了并行程序設(shè)計(jì)問(wèn)題,然而,由于plc編程問(wèn)題的固有復(fù)雜性,以及測(cè)試手段的缺乏,許多plc程序中依然存在大量的錯(cuò)誤。

為了解決這一問(wèn)題,靈芯實(shí)驗(yàn)室正在開(kāi)發(fā)plc測(cè)試系統(tǒng),為plc程序的調(diào)試提供解決方案。在這一系統(tǒng)的試用過(guò)程中,在兩本plc入門(mén)教科書(shū)的6個(gè)簡(jiǎn)單程序例子中發(fā)現(xiàn)其中的4個(gè)程序里面至少包含8個(gè)錯(cuò)誤。

●一個(gè)搶答器程序在兩個(gè)參賽者同時(shí)按下?lián)尨鸢粹o時(shí),只有其中一個(gè)人的警報(bào)器能夠發(fā)出警報(bào);

●一個(gè)噴泉程序中,噴水組在幾個(gè)指定時(shí)間上沒(méi)有按要求停止噴水,或開(kāi)始噴水;

●一個(gè)交通燈控制程序中,綠燈閃爍控制不正常;系統(tǒng)啟動(dòng)的時(shí)候,一個(gè)方向綠燈亮,另一個(gè)方向的紅燈卻不亮;強(qiáng)通結(jié)束之后,交通燈沒(méi)有立即恢復(fù)正常運(yùn)行;

●在另一個(gè)交通燈程序中,按下停止按鈕之后,所有的燈熄滅,但兩個(gè)方向人行道上卻亮紅燈。

我們認(rèn)為這一發(fā)現(xiàn)是不同尋常的。雖然每個(gè)程序員和教師都會(huì)犯編程錯(cuò)誤,但是我們還從未在任何一本程序設(shè)計(jì)的教科書(shū)中發(fā)現(xiàn)如此高比例的程序錯(cuò)。這一現(xiàn)象初步證實(shí)了plc程序錯(cuò)誤的廣泛性和嚴(yán)重性。

本文將逐一分析上述每一個(gè)程序的錯(cuò)誤,指出錯(cuò)誤原因。其中大部分程序,我們給出糾正了錯(cuò)誤的新程序。期望這一分析能夠幫助plc程序員和教師提高plc程序設(shè)計(jì)的正確性。plc程序的執(zhí)行原理以及梯形圖的語(yǔ)義將在例子的介紹中同時(shí)給予解釋。我們相信,通過(guò)分析錯(cuò)誤來(lái)學(xué)習(xí)是掌握遍程技巧的好方法

2搶答器程序

題目:搶答器程序

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

編程平臺(tái):西門(mén)子公司s7-200

問(wèn)題描述:

(1)主持人控制開(kāi)始按鈕;

(2)3個(gè)搶答者每人控制自己的搶答按鈕;

(3)開(kāi)始按鈕按下之后所有警報(bào)器斷電;

(4)之后每個(gè)搶答按鈕按下將使自己的警報(bào)器得電,并鎖住其他搶答者輸入信號(hào)的有效性。

變量分配:

i0.0主持人按鈕;

i0.1,i0.2,i0.3分別為三個(gè)搶答者按鈕;

q0.0,q0.1,q0.2分別為對(duì)應(yīng)于搶答者的警報(bào)器輸出;

原書(shū)給出的搶答器梯形圖程序(見(jiàn)圖2)。

圖2搶答器梯形圖程序

plc程序語(yǔ)義:

上述梯形圖程序的語(yǔ)義可以用比較簡(jiǎn)短的方式表達(dá)出來(lái):

q0.0:=(i0.1orq0.0)and~i0.0and~q0.1and~q0.2;

q0.1:=(i0.2orq0.1)and~i0.0and~q0.0and~q0.2;

q0.2:=(i0.3orq0.2)and~i0.0and~q0.0and~q0.1;

其中~i0.0表示i0.0的邏輯非。

plc的程序周期性地重復(fù)執(zhí)行,每個(gè)周期時(shí)間很短。在一個(gè)周期中,plc將讀入輸入值(這里是i0.1,i0.2和i0.3),經(jīng)過(guò)對(duì)上述程序的計(jì)算之后,把輸出變量(這里是q0.0,q0.1和q0.2)的值送到外部。注意上述程序在每個(gè)周期中都重復(fù)執(zhí)行。在每個(gè)周期中,程序的執(zhí)行由上往下由左至右。

當(dāng)一個(gè)搶答按鈕按下之后(比如i0.1=1),對(duì)應(yīng)的輸出(q0.0)馬上變成1。在下一周期中,即使該按鈕方開(kāi)(i0.1=0)程序的輸出依然會(huì)保持為0,原因是程序依靠自反饋?zhàn)饔茫╫rq0.0)。同時(shí),由于在另外兩個(gè)程序段中含有~q0.1,因此它們的輸出都無(wú)法變成1,直到主持人按鈕i0.0把q0.0重新置0為止。

●程序問(wèn)題

如果兩個(gè)搶答者在同一時(shí)刻按下按鈕,在程序中處于前面的搶答者的警報(bào)器輸出正常,另一個(gè)搶答者的警報(bào)器沒(méi)有輸出。

●程序分析

本問(wèn)題分成三個(gè)程序段,它們本應(yīng)并行執(zhí)行方能達(dá)到公平的效果。但plc的cpu只能順序執(zhí)行程序,因此在程序中位置處于前面的搶答者的輸出產(chǎn)生之后,后面的程序輸出就被立即阻斷。因此兩個(gè)按鈕同時(shí)按下時(shí),只有其中的一個(gè)得到響應(yīng)。

plc的編程模式來(lái)源于繼電器電路控制系統(tǒng),在那些系統(tǒng)中,上述三個(gè)程序段對(duì)于三個(gè)并行運(yùn)行的電路,但是轉(zhuǎn)到cpu中之后,這些程序就不得不順序執(zhí)行。并行模型與順序執(zhí)行的沖突是許多程序錯(cuò)誤的原因。在作者先前的論文中就對(duì)這一問(wèn)題進(jìn)行了分析[1]。

在順序執(zhí)行的機(jī)器上面實(shí)現(xiàn)plc并行語(yǔ)義是可能的。但是依然需要小心各種陷阱。下面的第一次嘗試存在一個(gè)錯(cuò)誤,再后面一個(gè)程序改正了這個(gè)錯(cuò)誤,通過(guò)了程序測(cè)試。

●程序修正嘗試

克服上面問(wèn)題的一個(gè)自然的想法是使用中間變量保存每個(gè)程序段的輸出。這一思路導(dǎo)致下面的程序?qū)崿F(xiàn)(見(jiàn)圖3):

圖3程序修正嘗試程序?qū)崿F(xiàn)圖

使用這一程序時(shí),如果兩個(gè)搶答者的按鈕同時(shí)按下,對(duì)應(yīng)的兩個(gè)警報(bào)器會(huì)同時(shí)響。但是,在下一周期,兩個(gè)警報(bào)器的輸出又會(huì)同時(shí)恢復(fù)到0。原因是每一個(gè)搶答輸入都會(huì)導(dǎo)致另一個(gè)搶答無(wú)效,兩個(gè)搶答輸入就會(huì)同時(shí)導(dǎo)致對(duì)方無(wú)效。

●最終程序

下面的程序克服了上述問(wèn)題,并且通過(guò)了基本的測(cè)試檢查(見(jiàn)圖4)。

它同前面程序不同之處在于把q0.0等變量的管轄范圍放寬了,因此一旦q0.0為1,只要主持人按鈕不按下,它的值就能繼續(xù)保持下去。

圖4基本測(cè)試檢查結(jié)果

3噴泉程序

題目:plc在噴泉中的應(yīng)用

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

編程平臺(tái):三菱公司fx2n系列

問(wèn)題描述

(1)噴泉有a,b,c3組噴頭;

(2)按動(dòng)開(kāi)始按鈕后,a組先噴,10秒后停,然后b組和c組同時(shí)噴;

(3)b和c噴10秒后b停,再10秒后c停;

(4)a,b又噴,5秒后,c也噴,持續(xù)10秒后全部停;

(5)再5秒后重返上述(2)到(4)步;

(6)按動(dòng)停止按鈕后,a,b,c3組噴頭全部停。

輸入輸出變量分配:

x0001:開(kāi)始按鈕

x0002:結(jié)束按鈕

y0001:a組噴頭

y0002:b組噴頭

y0003:c組噴頭

內(nèi)部繼電器:m0—m5

定時(shí)器分配(見(jiàn)圖5):

t0:a組噴10秒;0—10

t1:b,c組噴10秒;10—20

t2:c組噴10秒;20—30

t3:a,b組噴5秒;30—35

t4:a,b,c組噴10秒;35—45

t5:a,b,c組停噴5秒;45—50

同前一程序相比,這一程序中增加了t0,t1等定時(shí)器。定時(shí)器用t標(biāo)識(shí),它的上方是定時(shí)器變量名,下方是預(yù)定的定時(shí)延遲。本例使用的是ton類型定時(shí)器,這種定時(shí)器只要輸入端由0轉(zhuǎn)1計(jì)時(shí)就開(kāi)始,在計(jì)時(shí)過(guò)程中,輸入端必須始終保持為1,一旦定時(shí)器到時(shí),它所對(duì)應(yīng)的變量就立即由0轉(zhuǎn)1。在計(jì)時(shí)過(guò)程中,如果輸入端轉(zhuǎn)0,則計(jì)時(shí)停止,定時(shí)器到時(shí)之后,只要輸入端繼續(xù)為1,那么計(jì)時(shí)器變量也繼續(xù)保持為1,一旦輸入變0,計(jì)時(shí)變量也轉(zhuǎn)為0。本例中的定時(shí)器按十分之一秒為單位計(jì)時(shí)。

這個(gè)程序含有三個(gè)錯(cuò)誤,它的某些噴頭在預(yù)定停止的時(shí)刻沒(méi)有停止,在預(yù)定開(kāi)始的時(shí)刻沒(méi)有開(kāi)始。

程序錯(cuò)誤(1):按照要求程序開(kāi)始后20秒,c組噴發(fā)應(yīng)該停止,但該程序卻沒(méi)有停止c的噴發(fā)。

原因分析

c的噴發(fā)受到m1,m2和m3的控制,它們分別控制c組的第一,第二和第三次噴發(fā)。在第二次噴發(fā)結(jié)束之后,m2為0,噴發(fā)本應(yīng)停止,但調(diào)試中發(fā)現(xiàn)c的輸出(y0002)繼續(xù)為1,單步調(diào)試發(fā)現(xiàn),此時(shí)m1為1,由此造成c組輸出繼續(xù)。分析發(fā)現(xiàn),產(chǎn)生m1的梯形圖有錯(cuò)。應(yīng)該使用m1來(lái)產(chǎn)生反饋,但程序中用了b組的輸出變量y0001。該變量恰好在c組第二次噴發(fā)之后重新置1,因此造成了c組繼續(xù)噴發(fā)。將此處改成m1之后這一錯(cuò)誤即可消除。

程序錯(cuò)誤(2):程序開(kāi)始后50秒,a組噴發(fā)應(yīng)該重新開(kāi)始,但實(shí)際運(yùn)行中并未開(kāi)始。

原因分析:

這是一個(gè)定時(shí)時(shí)間寫(xiě)錯(cuò)的簡(jiǎn)單錯(cuò)誤。定時(shí)器t4設(shè)定的時(shí)間應(yīng)為5秒(50),但梯形圖中錯(cuò)寫(xiě)成100(該書(shū)指令表程序中也是寫(xiě)50,梯形圖中是一個(gè)失誤)。

程序錯(cuò)誤(3):在糾正了上面兩個(gè)錯(cuò)誤之后,程序依然無(wú)法通過(guò)測(cè)試。50秒之后,c組不應(yīng)該開(kāi)始噴發(fā),但實(shí)際運(yùn)行中噴發(fā)。

原因分析:

50秒之后,程序進(jìn)入下一周期。此時(shí)程序該如何運(yùn)行在原書(shū)中沒(méi)有清楚描述,這屬于描述不全。根據(jù)程序的具體實(shí)現(xiàn),可以看出作者的意圖是在50秒之后把整個(gè)噴發(fā)過(guò)程重演一遍?;谶@樣的理解,程序應(yīng)該在50秒之后開(kāi)始a組噴發(fā),但程序運(yùn)行結(jié)果是,不但a組噴發(fā),而且c組也噴發(fā),后一行為不符合規(guī)定。

出現(xiàn)這一現(xiàn)象的原因在于,m0的梯形圖中使用了y000來(lái)實(shí)現(xiàn)反饋。這一錯(cuò)誤同第一個(gè)錯(cuò)誤類似,只是這一方式在一個(gè)周期的運(yùn)行中沒(méi)有問(wèn)題,在第二周期中就會(huì)出現(xiàn)問(wèn)題。在該圖中用m0取代y000就能消除這一錯(cuò)誤。

在消除了以上問(wèn)題之后得到梯形圖如圖6所示。

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

題目:交通燈控制程序

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

編程平臺(tái):omron公司cqm1系列

●任務(wù)描述

工作順序:?jiǎn)?dòng)按鈕,南北綠燈,東西紅燈,東西綠燈,南北紅燈。按此順序循環(huán)。

時(shí)序控制:(90秒周期)

●主干道

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

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

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

●強(qiáng)通控制

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

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

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

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

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

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

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

程序修正(見(jiàn)圖8)

圖8程序修正圖

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

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

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

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

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

原因分析:

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

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

這是一個(gè)比較嚴(yán)重的錯(cuò)誤,因?yàn)榇颂幈緫?yīng)經(jīng)過(guò)綠燈閃爍轉(zhuǎn)為紅燈,但系統(tǒng)卻始終保持綠燈。這樣的系統(tǒng)是無(wú)法接受的。

這一問(wèn)題的解決比較復(fù)雜一點(diǎn)。由于我們的主要任務(wù)是發(fā)現(xiàn)錯(cuò)誤,此地我們不再討論如何修正這一錯(cuò)誤的問(wèn)題。

5第二個(gè)十字路口交通燈控制程序

本節(jié)討論另一本書(shū)上的交通燈控制程序中的錯(cuò)誤。這一程序沒(méi)有處理強(qiáng)通控制這樣的復(fù)雜問(wèn)題,但是人行道控制同主干道控制分開(kāi)處理,結(jié)果在人行道控制上出現(xiàn)了錯(cuò)誤。

題目:交通燈控制程序

來(lái)源:plc應(yīng)用開(kāi)發(fā)實(shí)用子程序

編程平臺(tái):西門(mén)子s7-200

時(shí)序控制:(90秒周期)

南北主干道左轉(zhuǎn)綠10秒,綠30秒,綠閃3秒,黃2秒,紅45秒;

東西人行道:紅13秒,綠27秒,綠閃3秒,紅47秒;

東西主干道:紅45秒,左轉(zhuǎn)綠10秒,綠30秒,綠閃3秒,黃2秒;

南北人行道:紅58秒,綠27秒,綠閃3秒,紅2秒。

注:

(1)綠閃包括轉(zhuǎn)向綠燈和轉(zhuǎn)向綠燈;

(2)東西人行道指東西兩端的人行道。

測(cè)試顯示該程序時(shí)序上運(yùn)行正確,但是在關(guān)機(jī)時(shí)出了問(wèn)題。

程序錯(cuò)誤:按下系統(tǒng)停止開(kāi)關(guān),大部分燈都熄滅,但兩個(gè)方向的人行道上亮起紅燈。

程序分析:

我們以控制東西方向人行道紅燈的變量q1.3的計(jì)算為例進(jìn)行分析。下面把相關(guān)程序段專門(mén)抽出來(lái)進(jìn)行分析(見(jiàn)圖10)。

圖10相關(guān)程序段分析圖

圖中可見(jiàn),當(dāng)m0.4為0時(shí)q1.3將輸出1。當(dāng)t7,t8為0時(shí)m0.4必定為0。系統(tǒng)停止開(kāi)關(guān)是i0.2,它按下之后會(huì)使m0.1變?yōu)?,該變量是控制系統(tǒng)活動(dòng)的主要變量,它變?yōu)?將使一系列變量變?yōu)?,也包括t7和t8。然而這樣做卻沒(méi)有關(guān)掉東西兩端人行道的紅燈。南北兩端人行道紅燈采用的是類似程序,因此也沒(méi)有關(guān)掉。

程序修正:

只需把m0.1直接加入到人行道紅燈的控制中即可。

6結(jié)束語(yǔ)

本文分析了來(lái)自兩本plc教材的4個(gè)程序例子,從中找出大大小小8個(gè)錯(cuò)誤,并對(duì)這些錯(cuò)誤的原因進(jìn)行了分析。我們希望這個(gè)分析能夠幫助程序員減少編程錯(cuò)誤。

本文目的是為了揭示plc程序錯(cuò)誤的普遍性。這些錯(cuò)誤不能簡(jiǎn)單歸咎于作者的失誤,主要原因是編程模式的復(fù)雜性以及測(cè)試手段的缺乏。

失誤是人類的普遍行為。對(duì)于計(jì)算機(jī)程序這樣復(fù)雜的對(duì)象,出錯(cuò)經(jīng)常出現(xiàn)。程序編制過(guò)程本身就是一個(gè)不斷嘗試不斷糾正錯(cuò)誤的過(guò)程。然而,在plc領(lǐng)域,離線的調(diào)試工具比較薄弱,迄今為止最好的調(diào)試方式依然是現(xiàn)場(chǎng)調(diào)試,但是這一方式過(guò)于耗費(fèi)時(shí)間,而且一般教師和學(xué)生都沒(méi)有這樣的條件。這是程序錯(cuò)誤率高的根本原因。

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:高壓變頻器在循環(huán)氨水泵節(jié)能...

下一篇:改善變頻器性能方面的若干技...

中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(m.u63ivq3.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡(jiǎn)介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見(jiàn)反饋|sitemap

傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購(gòu)咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號(hào) | 營(yíng)業(yè)執(zhí)照證書(shū) | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)