TRICONEX 3625
TRICONEX 3625
【誠(chéng)信經(jīng)營(yíng)】【質(zhì)量可靠】【進(jìn)口原裝】【拆包防偽】
【超大庫(kù)存】【當(dāng)天付款】【順豐速運(yùn)】【歡迎搶購(gòu)】
一、引言
可編程序操控器(簡(jiǎn)稱plc)是一種工業(yè)自動(dòng)操控中運(yùn)用的核算設(shè)備。它廣泛運(yùn)用于鋼鐵、石油、化工、電力、建材、機(jī)械制作、汽車、輕紡、交通運(yùn)輸、航天、環(huán)保及文化娛樂(lè)等各個(gè)職業(yè)。小到家用設(shè)備,大到航天器材,都有plc的運(yùn)用。
典型的plc由一個(gè)的cpu,一個(gè)存儲(chǔ)器和一組輸入輸出端口構(gòu)成,如圖1所示。它經(jīng)過(guò)輸入端口接收來(lái)自傳感器的信號(hào),并經(jīng)過(guò)輸出端口宣布操控信號(hào)驅(qū)動(dòng)同它連接的外部設(shè)備。存儲(chǔ)器中安放操控程序,體系的活動(dòng)由操控程序所驅(qū)動(dòng)。
plc體系每隔必定的時(shí)刻距離(比方5毫秒)從輸入端口讀入信號(hào),履行核算,然后向輸出端口發(fā)送輸出信號(hào)。每一“輸入-核算-輸出”周期稱為一個(gè)掃描周期。plc程序在每個(gè)掃描周期中重復(fù)履行一遍。plc的簡(jiǎn)略運(yùn)用有洗衣機(jī)操控,電梯操控。雜亂的運(yùn)用有自動(dòng)機(jī)床操控,自動(dòng)化工程操控。
plc程序規(guī)劃具有不尋常的軟件編程形式。規(guī)劃中需求考慮多個(gè)并行線程,它們之間的交互作用,以及在時(shí)刻域上的行為。在plc的五種首要的編程言語(yǔ)傍邊,源自繼電器操控體系的梯形圖言語(yǔ)選用了一種簡(jiǎn)略的辦法巧妙地處理了并行程序規(guī)劃問(wèn)題,可是,由于plc編程問(wèn)題的固有雜亂性,以及測(cè)驗(yàn)手法的缺少,許多plc程序中仍然存在很多的過(guò)錯(cuò)。
為了處理這一問(wèn)題,靈芯實(shí)驗(yàn)室正在開(kāi)發(fā)plc測(cè)驗(yàn)體系,為plc程序的調(diào)試供給處理方案。在這一體系的試用進(jìn)程中,在兩本plc入門(mén)教科書(shū)的6個(gè)簡(jiǎn)略程序比如中發(fā)現(xiàn)其間的4個(gè)程序里面至少包含8個(gè)過(guò)錯(cuò)。
●一個(gè)搶答器程序在兩個(gè)參賽者一起按下?lián)尨鸢粹o時(shí),只要其間一個(gè)人的警報(bào)器可以宣布警報(bào);
●一個(gè)噴泉程序中,噴水組在幾個(gè)指守時(shí)刻上沒(méi)有按要求中止噴水,或開(kāi)端噴水;
●一個(gè)交通燈操控程序中,綠燈閃耀操控不正常;體系發(fā)動(dòng)的時(shí)候,一個(gè)方向綠燈亮,另一個(gè)方向的紅燈卻不亮;強(qiáng)通完畢之后,交通燈沒(méi)有當(dāng)即康復(fù)正常運(yùn)轉(zhuǎn);
●在另一個(gè)交通燈程序中,按下中止按鈕之后,所有的燈平息,但兩個(gè)方向人行道上卻亮紅燈。
咱們認(rèn)為這一發(fā)現(xiàn)是不同尋常的。盡管每個(gè)程序員和教師都會(huì)犯編程過(guò)錯(cuò),可是咱們還從未在任何一本程序規(guī)劃的教科書(shū)中發(fā)現(xiàn)如此高份額的程序錯(cuò)。這一現(xiàn)象初步證實(shí)了plc程序過(guò)錯(cuò)的廣泛性和嚴(yán)重性。
本文將逐個(gè)剖析上述每一個(gè)程序的過(guò)錯(cuò),指出過(guò)錯(cuò)原因。其間大部分程序,咱們給出糾正了過(guò)錯(cuò)的新程序。期望這一剖析可以協(xié)助plc程序員和教師提高plc程序規(guī)劃的正確性。plc程序的履行原理以及梯形圖的語(yǔ)義將在比如的介紹中一起給予解釋。咱們相信,經(jīng)過(guò)剖析過(guò)錯(cuò)來(lái)學(xué)習(xí)是把握遍程技巧的好辦法
二、搶答器程序
標(biāo)題:搶答器程序
來(lái)歷:plc運(yùn)用技術(shù)開(kāi)發(fā)與實(shí)踐
編程渠道:西門(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ù)履行,每個(gè)周期時(shí)刻很短。在一個(gè)周期中,plc將讀入輸入值(這兒是i0.1,i0.2和i0.3),經(jīng)過(guò)對(duì)上述程序的核算之后,把輸出變量(這兒是q0.0,q0.1和q0.2)的值送到外部。留意上述程序在每個(gè)周期中都重復(fù)履行。在每個(gè)周期中,程序的履行由上往下由左至右。
當(dāng)一個(gè)搶答按鈕按下之后(比方i0.1=1),對(duì)應(yīng)的輸出(q0.0)立刻變成1。在下一周期中,即使該按鈕方開(kāi)(i0.1=0)程序的輸出仍然會(huì)堅(jiān)持為0,原因是程序依托自反應(yīng)作用(orq0.0)。一起,由于在別的兩個(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)并行履行方能抵達(dá)公平的效果。但plc的cpu只能次序履行程序,因而在程序中位置處于前面的搶答者的輸出發(fā)生之后,后邊的程序輸出就被當(dāng)即阻斷。因而兩個(gè)按鈕一起按下時(shí),只要其間的一個(gè)得到呼應(yīng)。
plc的編程形式來(lái)歷于繼電器電路操控體系,在那些體系中,上述三個(gè)程序段關(guān)于三個(gè)并行運(yùn)轉(zhuǎn)的電路,可是轉(zhuǎn)到cpu中之后,這些程序就不得不次序履行。并行模型與次序履行的抵觸是許多程序過(guò)錯(cuò)的原因。在作者從前的論文中就對(duì)這一問(wèn)題進(jìn)行了剖析[1]。
在次序履行的機(jī)器上面完結(jié)plc并行語(yǔ)義是或許的??墒侨匀恍枨笮⌒母鞣N圈套。下面的*次測(cè)驗(yàn)存在一個(gè)過(guò)錯(cuò),再后邊一個(gè)程序改正了這個(gè)過(guò)錯(cuò),經(jīng)過(guò)了程序測(cè)驗(yàn)。
●程序批改測(cè)驗(yàn)
戰(zhàn)勝上面問(wèn)題的一個(gè)天然的想法是運(yùn)用中間變量保存每個(gè)程序段的輸出。這一思路導(dǎo)致下面的程序完結(jié)(見(jiàn)圖3):
圖3程序批改測(cè)驗(yàn)程序完結(jié)圖
運(yùn)用這一程序時(shí),假如兩個(gè)搶答者的按鈕一起按下,對(duì)應(yīng)的兩個(gè)警報(bào)器會(huì)一起響??墒?,在下一周期,兩個(gè)警報(bào)器的輸出又會(huì)一起康復(fù)到0。原因是每一個(gè)搶答輸入都會(huì)導(dǎo)致另一個(gè)搶答無(wú)效,兩個(gè)搶答輸入就會(huì)一起導(dǎo)致對(duì)方無(wú)效。
●終程序
下面的程序戰(zhàn)勝了上述問(wèn)題,而且經(jīng)過(guò)了根本的測(cè)驗(yàn)查看(見(jiàn)圖4)。
它同前面程序不同之處在于把q0.0等變量的統(tǒng)轄規(guī)模放寬了,因而一旦q0.0為1,只要主持人按鈕不按下,它的值就能持續(xù)堅(jiān)持下去。
圖4根本測(cè)驗(yàn)查看成果
三、噴泉程序
標(biāo)題:plc在噴泉中的運(yùn)用
來(lái)歷:plc運(yùn)用技術(shù)開(kāi)發(fā)與實(shí)踐
編程渠道:三菱公司fx2n系列
問(wèn)題描繪
(1)噴泉有a,b,c3組噴頭;
(2)按動(dòng)開(kāi)端按鈕后,a組先噴,10秒后停,然后b組和c組一起噴;
(3)b和c噴10秒后b停,再10秒后c停;
(4)a,b又噴,5秒后,c也噴,持續(xù)10秒后悉數(shù)停;
(5)再5秒后重返上述(2)到(4)步;
(6)按動(dòng)中止按鈕后,a,b,c3組噴頭悉數(shù)停。
輸入輸出變量分配:
x0001:開(kāi)端按鈕
x0002:完畢按鈕
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í)延遲。本例運(yùn)用的是ton類型守時(shí)器,這種守時(shí)器只要輸入端由0轉(zhuǎn)1計(jì)時(shí)就開(kāi)端,在計(jì)時(shí)進(jìn)程中,輸入端有必要始終堅(jiān)持為1,一旦守時(shí)器屆時(shí),它所對(duì)應(yīng)的變量就當(dāng)即由0轉(zhuǎn)1。在計(jì)時(shí)進(jìn)程中,假如輸入端轉(zhuǎn)0,則計(jì)時(shí)中止,守時(shí)器屆時(shí)之后,只要輸入端持續(xù)為1,那么計(jì)時(shí)器變量也持續(xù)堅(jiān)持為1,一旦輸入變0,計(jì)時(shí)變量也轉(zhuǎn)為0。本例中的守時(shí)器按十分之一秒為單位計(jì)時(shí)。
這個(gè)程序含有三個(gè)過(guò)錯(cuò),它的某些噴頭在預(yù)訂中止的時(shí)刻沒(méi)有中止,在預(yù)訂開(kāi)端的時(shí)刻沒(méi)有開(kāi)端。
程序過(guò)錯(cuò)(1):依照要求程序開(kāi)端后20秒,c組噴射應(yīng)該中止,但該程序卻沒(méi)有中止c的噴射。
原因剖析
c的噴射遭到m1,m2和m3的操控,它們別離操控c組的*,第二和第三次噴射。在第2次噴射完畢之后,m2為0,噴射本應(yīng)中止,但調(diào)試中發(fā)現(xiàn)c的輸出(y0002)持續(xù)為1,單步調(diào)試發(fā)現(xiàn),此刻m1為1,由此造成c組輸出持續(xù)。剖析發(fā)現(xiàn),發(fā)生m1的梯形圖有錯(cuò)。應(yīng)該運(yùn)用m1來(lái)發(fā)生反應(yīng),但程序中用了b組的輸出變量y0001。該變量恰好在c組第2次噴射之后從頭置1,因而造成了c組持續(xù)噴射。將此處改成m1之后這一過(guò)錯(cuò)即可消除。
程序過(guò)錯(cuò)(2):程序開(kāi)端后50秒,a組噴射應(yīng)該從頭開(kāi)端,但實(shí)踐運(yùn)轉(zhuǎn)中并未開(kāi)端。
原因剖析:
這是一個(gè)守時(shí)時(shí)刻寫(xiě)錯(cuò)的簡(jiǎn)略過(guò)錯(cuò)。守時(shí)器t4設(shè)定的時(shí)刻應(yīng)為5秒(50),但梯形圖中錯(cuò)寫(xiě)成100(該書(shū)指令表程序中也是寫(xiě)50,梯形圖中是一個(gè)失誤)。
程序過(guò)錯(cuò)(3):在糾正了上面兩個(gè)過(guò)錯(cuò)之后,程序仍然無(wú)法經(jīng)過(guò)測(cè)驗(yàn)。50秒之后,c組不應(yīng)該開(kāi)端噴射,但實(shí)踐運(yùn)轉(zhuǎn)中噴射。
原因剖析:
50秒之后,程序進(jìn)入下一周期。此刻程序該如何運(yùn)轉(zhuǎn)在原書(shū)中沒(méi)有清楚描繪,這歸于描繪不全。依據(jù)程序的詳細(xì)完結(jié),可以看出作者的意圖是在50秒之后把整個(gè)噴射進(jìn)程重演一遍。基于這樣的了解,程序應(yīng)該在50秒之后開(kāi)端a組噴射,但程序運(yùn)轉(zhuǎn)成果是,不但a組噴射,而且c組也噴射,后一行為不符合規(guī)則。
出現(xiàn)這一現(xiàn)象的原因在于,m0的梯形圖中運(yùn)用了y000來(lái)完結(jié)反應(yīng)。這一過(guò)錯(cuò)同*個(gè)過(guò)錯(cuò)類似,只是這一辦法在一個(gè)周期的運(yùn)轉(zhuǎn)中沒(méi)有問(wèn)題,在第二周期中就會(huì)出現(xiàn)問(wèn)題。在該圖中用m0取代y000就能消除這一過(guò)錯(cuò)。
在消除了以上問(wèn)題之后得到梯形圖如圖6所示。
四、十字路通燈操控程序
標(biāo)題:交通燈操控程序
來(lái)歷:plc運(yùn)用技術(shù)開(kāi)發(fā)與實(shí)踐
編程渠道:omron公司cqm1系列
●使命描繪
工作次序:發(fā)動(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),不便悉數(shù)抄錄在此。這兒僅指出程序中的幾個(gè)過(guò)錯(cuò),并列出相關(guān)的程序段。
圖7程序的完結(jié)
程序過(guò)錯(cuò)(1):閃耀操控過(guò)錯(cuò)。閃耀進(jìn)程經(jīng)過(guò)一個(gè)專門(mén)的程序段操控,按要求該程序應(yīng)該每隔0.5秒輸出1,然后0.5秒輸出0,不斷循環(huán)。圖7是書(shū)中該程序的完結(jié):
其間只用到tim050一個(gè)守時(shí)器,計(jì)時(shí)單位為十分之一秒。omron的tim型守時(shí)器的工作辦法同西門(mén)子ton型守時(shí)器相仿,當(dāng)輸入為1時(shí)發(fā)動(dòng)計(jì)時(shí),一旦輸入轉(zhuǎn)0,當(dāng)即中止計(jì)時(shí),守時(shí)器變量輸出復(fù)位為0。
開(kāi)始狀態(tài)tim050的值為0,取反后送入守時(shí)器1,發(fā)動(dòng)計(jì)時(shí),5個(gè)單位之后屆時(shí)守時(shí)器發(fā)生信號(hào)1。該信號(hào)經(jīng)反應(yīng)之后,把0送入守時(shí)器,這一輸入值當(dāng)即把守時(shí)器輸出從頭變?yōu)?。因而,該段程序只能發(fā)生十分時(shí)刻短的1,而不是持續(xù)0.5秒的1。當(dāng)該信號(hào)用于驅(qū)動(dòng)綠燈時(shí),無(wú)法發(fā)生正常的均勻閃耀效果。
程序批改(見(jiàn)圖8)
圖8程序批改圖
這兒用了兩個(gè)守時(shí)器,當(dāng)*個(gè)守時(shí)器tim050屆時(shí)之后,它的輸出信號(hào)1送到第二個(gè)守時(shí)器tim051發(fā)動(dòng)后者計(jì)時(shí)。但tim051需求5個(gè)單位之后才能屆時(shí),在這段時(shí)刻內(nèi),tim050仍然的輸入仍然是1,因而它可以把1持續(xù)堅(jiān)持0.5秒,由此發(fā)生一個(gè)均勻的每隔0.5秒改動(dòng)的脈沖。
程序過(guò)錯(cuò)(2):在體系初始發(fā)動(dòng)階段,南北方向綠燈亮,但東西方向的左轉(zhuǎn)紅燈和直行紅燈沒(méi)有一起點(diǎn)亮
原因剖析:由于相關(guān)程序比較長(zhǎng),不便在這兒展現(xiàn),這兒咱們僅剖析一下犯錯(cuò)的原因及處理的辦法。原程序中選用次序發(fā)動(dòng)各個(gè)顏色燈的辦法。即左轉(zhuǎn)綠燈10秒后發(fā)動(dòng)直行綠燈,30秒后綠閃,2秒后黃燈,然后55秒紅燈??墒牵催@一次序運(yùn)轉(zhuǎn)時(shí),一開(kāi)端南北直行紅燈的10秒缺掉了,東西左轉(zhuǎn)紅燈45秒漏了,后東西直行紅燈55秒也漏了。要改動(dòng)這一狀況,需求改動(dòng)后一程序,一起再引進(jìn)兩個(gè)守時(shí)器,把紅燈操控切分紅兩段完結(jié)。
或許人們認(rèn)為上一個(gè)問(wèn)題不算嚴(yán)重,由于本來(lái)程序在發(fā)動(dòng)一分鐘之后就能抵達(dá)正常。但下面的強(qiáng)通操控的過(guò)錯(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)的體系運(yùn)轉(zhuǎn)。
程序過(guò)錯(cuò)(3):強(qiáng)通按鈕鋪開(kāi)之后,按規(guī)則強(qiáng)通方向綠燈應(yīng)該閃耀三下,然后平息,但實(shí)踐狀況是綠燈沒(méi)有依照規(guī)則閃耀和中止,而是持續(xù)發(fā)亮。
原因剖析:
咱們以東西向直行綠燈操控程序段為例剖析這一問(wèn)題。
該程序中100.12為操控東西向綠燈的輸出變量。該方向的強(qiáng)通經(jīng)過(guò)hr0.00操控,強(qiáng)通按鈕按下之后,該變量為1,從而引起100.12輸出為1,綠燈亮。強(qiáng)通按鈕鋪開(kāi)之后,這條通路堵截,hr0.01變?yōu)?之后,hr0.03會(huì)變?yōu)?,進(jìn)程在這兒略去。hr0.03所在的通路將發(fā)生一個(gè)3秒鐘的閃耀脈沖。編程者的意圖是經(jīng)過(guò)它在完畢強(qiáng)通之后制作一個(gè)綠燈閃耀進(jìn)程??墒?,由于變量100.12的反應(yīng)存在,一旦該變量為1,它將自動(dòng)地持續(xù)堅(jiān)持為1。只要兩種辦法可以使它康復(fù)為0,一種是30秒守時(shí)器屆時(shí)(tim010),另一個(gè)是另一方向的強(qiáng)通信號(hào)hr0.01。在同方向強(qiáng)通信號(hào)完畢之后,一般狀況下,上述兩個(gè)信號(hào)均不會(huì)轉(zhuǎn)為1,因而綠燈無(wú)法立刻中止。體系并不發(fā)生規(guī)則的效果。
這是一個(gè)比較嚴(yán)重的過(guò)錯(cuò),由于此處本應(yīng)經(jīng)過(guò)綠燈閃耀轉(zhuǎn)為紅燈,但體系卻始終堅(jiān)持綠燈。這樣的體系是無(wú)法承受的。
這一問(wèn)題的處理比較雜亂一點(diǎn)。由于咱們的首要使命是發(fā)現(xiàn)過(guò)錯(cuò),此地咱們不再評(píng)論如何批改這一過(guò)錯(cuò)的問(wèn)題。
五、第二個(gè)十字路通燈操控程序
本節(jié)評(píng)論另一本書(shū)上的交通燈操控程序中的過(guò)錯(cuò)。這一程序沒(méi)有處理強(qiáng)通操控這樣的雜亂問(wèn)題,可是人行道操控同主干道操控分開(kāi)處理,成果在人行道操控上出現(xiàn)了過(guò)錯(cuò)。
標(biāo)題:交通燈操控程序
來(lái)歷:plc運(yùn)用開(kāi)發(fā)實(shí)用子程序
編程渠道:西門(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è)驗(yàn)顯示該程序時(shí)序上運(yùn)轉(zhuǎn)正確,可是在關(guān)機(jī)時(shí)出了問(wèn)題。
程序過(guò)錯(cuò):按下體系中止開(kāi)關(guān),大部分燈都平息,但兩個(gè)方向的人行道上亮起紅燈。
程序剖析:
咱們以操控東西方向人行道紅燈的變量q1.3的核算為例進(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。體系中止開(kāi)關(guān)是i0.2,它按下之后會(huì)使m0.1變?yōu)?,該變量是操控體系活動(dòng)的首要變量,它變?yōu)?將使一系列變量變?yōu)?,也包含t7和t8??墒沁@樣做卻沒(méi)有關(guān)掉東西兩頭人行道的紅燈。南北兩頭人行道紅燈選用的是類似程序,因而也沒(méi)有關(guān)掉。
程序批改:
只需把m0.1直接加入到人行道紅燈的操控中即可。
六、結(jié)語(yǔ)
本文剖析了來(lái)自兩本plc教材的4個(gè)程序比如,從中找出大大小小8個(gè)過(guò)錯(cuò),并對(duì)這些過(guò)錯(cuò)的原因進(jìn)行了剖析。咱們希望這個(gè)剖析可以協(xié)助程序員削減編程過(guò)錯(cuò)。
本文目的是為了揭示plc程序過(guò)錯(cuò)的遍及性。這些過(guò)錯(cuò)不能簡(jiǎn)略歸咎于作者的失誤,首要原因是編程形式的雜亂性以及測(cè)驗(yàn)手法的缺少。
失誤是人類的遍及行為。關(guān)于核算機(jī)程序這樣雜亂的對(duì)象,犯錯(cuò)經(jīng)常出現(xiàn)。程序編制進(jìn)程自身就是一個(gè)不斷測(cè)驗(yàn)不斷糾正過(guò)錯(cuò)的進(jìn)程??墒牵趐lc范疇,離線的調(diào)試工具比較單薄,迄今中止好的調(diào)試辦法仍然是現(xiàn)場(chǎng)調(diào)試,可是這一辦法過(guò)于消耗時(shí)刻,而且一般教師和學(xué)生都沒(méi)有這樣的條件。這是程序過(guò)錯(cuò)率高的根本原因。