国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

“電氣控制與PLC”課程中疑難指令的教學(xué)探討

2012-08-23 03:23:24王榕生
電氣電子教學(xué)學(xué)報 2012年5期
關(guān)鍵詞:順序控制堆棧梯形圖

王榕生

(福州大學(xué)電氣工程與自動化學(xué)院,福建福州 350108)

0 引言

“電氣控制與PLC”課程中梯形圖的編程形式具有形象直觀的特點(diǎn),易于被學(xué)生接受[1-5]。然而,課程通篇貫穿邏輯思維與推理,又涉及大量指令內(nèi)容,而使部分學(xué)生產(chǎn)生畏難情緒,學(xué)習(xí)信心不足。尤其是那些PLC特有的指令及控制環(huán)節(jié)方面會存在理解上的難度,如果講述不透,將影響學(xué)生對后續(xù)內(nèi)容的學(xué)習(xí)。因此這部分內(nèi)容事實上成了本門課程的教學(xué)難點(diǎn)。本文結(jié)合教學(xué)實踐,試圖解決PLC中的一些疑難指令的教學(xué)及一些容易忽視的問題。

1 暫存繼電器TR釋疑

TR不是編程指令,而是暫存繼電器[1-2]。盡管教材給出了明確說明,但對其在程序中所起作用,缺乏必要闡釋,導(dǎo)致概念不清。在歐姆龍CPM1A系列PLC中只提供編號TR0~TR7共8個暫存繼電器,數(shù)目雖少,卻構(gòu)成了全部工作數(shù)據(jù)區(qū)中的一個分區(qū),足見其地位之重要。暫存繼電器TR實質(zhì)是“?!?,可形象比喻為裝東西的口袋,裝什么東西呢?弄清這點(diǎn)很重要,這是打開TR這把鎖的鑰匙。以下通過圖1所示的暫存繼電器TR的實例加以說明。

1 使用暫存繼電器TR實例

上圖的梯形圖支點(diǎn)意義是其左側(cè)繼電器00000參與(或控制)其后所有的邏輯運(yùn)算。因此,程序從上到下先進(jìn)行(00000)與(00001)之間的邏輯“與”運(yùn)算,將結(jié)果輸出給(01000);再進(jìn)行(00000)的復(fù)位操作,使其復(fù)0;然后進(jìn)行(00000)與(00002)之間的邏輯“與”運(yùn)算,其結(jié)果輸出給(01001)。

整個邏輯關(guān)系簡單明了,但里面隱藏著一個問題,即RESET指令有可能改變(00000)的邏輯值,影響到其后的邏輯運(yùn)算。如果在程序開始運(yùn)行時(00000)的邏輯值為1,在RESET指令執(zhí)行后,又使(00000)由1復(fù)位為0,導(dǎo)致參與后續(xù)邏輯“與”運(yùn)算的(00000)的值不再是原值,顯然違背了梯形圖原有的邏輯關(guān)系。

為避免這一情況發(fā)生,其解決辦法是在梯形圖的支點(diǎn)處擺放如圖1中的TR0。即如同設(shè)置一個“口袋”,將其左邊(00000)的值收入囊中,起到保存“原生態(tài)”的作用。欲達(dá)此目的,相關(guān)的兩個動作不可或缺,一是“裝入”,即OUT TR0指令;另一則是“取出”,即 LD TR0指令,否則“口袋”形同虛設(shè)?!把b入”指令OUT TR0必須緊跟在所要保存的繼電器(圖例為00000)的加載指令之后,“取出”指令LD TR0則應(yīng)放在涉及“口袋”中的量的邏輯運(yùn)算之前。有了暫存繼電器TR之后,就不用擔(dān)心程序中任何地方是否改變了支點(diǎn)左側(cè)的繼電器值了。問題的關(guān)鍵是能否正確使用OUT TR0與LD TR0這兩個指令。

當(dāng)程序運(yùn)行到 RESET 00000指令時,如果(00000)為1,則對(00000)作復(fù)位操作,其值變?yōu)?。雖然改變了(00000)的原值,但其后跟隨的指令LD TR0將TR0內(nèi)的值即(00000)原值重新賦給了R,即所謂“取出”,使隨后參與邏輯運(yùn)算的(00000)仍為原值,從而確保了梯形圖原有的邏輯關(guān)系。

那么是否凡遇有支點(diǎn)都要使用TR呢?未必盡然。如果梯形圖所有邏輯運(yùn)算都不改變支點(diǎn)左側(cè)繼電器原值,例如在圖1梯形圖中如果沒有RESET 00000指令,可不使用TR。同理,雖然使用了TR,但邏輯運(yùn)算未改變支點(diǎn)左側(cè)繼電器原值之前也可不使用LD TRx(x=0~7)指令。例如,上例中RESET 00000指令前的LD TR0指令可改用LD 00000,因為此時的(00000)值尚未變化。

2 關(guān)于指令的微分與非微分形式

PLC指令具有微分和非微分兩種形式,凡微分型指令均在助記符前加@符予以標(biāo)識。大多數(shù)應(yīng)用指令兼有微分型/非微分型。兩種指令形式的功能完全一樣,區(qū)別在于指令的執(zhí)行條件。對于非微分型指令,當(dāng)執(zhí)行條件為ON時,則每個掃描周期都執(zhí)行該指令;對于微分型指令僅在其執(zhí)行條件由OFF跳變?yōu)镺N時才執(zhí)行一次,如果執(zhí)行條件沒有OFF到ON的變化,則該指令不執(zhí)行。然而教學(xué)中發(fā)現(xiàn)不少學(xué)生對此感到抽象。究其原因有兩個方面:①如何理解執(zhí)行條件由OFF到ON的變化;②將指令設(shè)計為兩種形式的意義在哪里?

先談第一個問題。為厘清執(zhí)行條件由OFF到ON的變化,關(guān)鍵要將PLC固有工作方式即所謂“循環(huán)掃描”結(jié)合起來講?!把h(huán)掃描”即為重復(fù)地執(zhí)行程序。無論程序何種結(jié)構(gòu)及其大小,一旦PLC開機(jī),都對程序重復(fù)運(yùn)行,循環(huán)不已。因此,程序中每條指令也將一遍遍地執(zhí)行,然而事先須考察執(zhí)行條件是否滿足,滿足則執(zhí)行,否則不執(zhí)行??疾彀础把h(huán)掃描”運(yùn)行節(jié)拍進(jìn)行。如果指令為非微分型,當(dāng)每個掃描周期的執(zhí)行條件都為ON時,則重復(fù)執(zhí)行該指令,直到條件變?yōu)镺FF時停止執(zhí)行;如果指令為微分型,則要考察前后兩次掃描周期執(zhí)行條件的變化來決定當(dāng)前是否執(zhí)行指令。如果上次掃描周期的執(zhí)行條件為OFF,當(dāng)前掃描周期的執(zhí)行條件變?yōu)镺N,則PLC感知了條件的上跳變化,則執(zhí)行指令,否則不執(zhí)行。請看圖2所示的例子。

圖2 微分指令執(zhí)行原理示意圖

上圖的梯形圖示出了微分指令@INC(功能為加1運(yùn)算)執(zhí)行原理,該指令的執(zhí)行條件是(00000)繼電器。梯形圖右側(cè)箭頭線代表對程序一遍遍掃描,實線表示執(zhí)行@INC指令,虛線表示不執(zhí)行該指令。箭頭下方數(shù)字表示掃描序號,上方為每次掃描時@INC指令執(zhí)行條件(00000)的狀態(tài)。當(dāng)?shù)谝槐閽呙钑r,25315先對(000)通道清零,之后由于(00000)=OFF,則指令@INC不執(zhí)行,于是(000)=0;第二遍掃描時,(00000)=ON,PLC感知了(00000)邏輯量的上跳變化,因此執(zhí)行@INC,使(000)=1;第三遍掃描時,(00000)仍為ON,相對于上次掃描沒有發(fā)生上跳變化,則不執(zhí)行@INC,(000)值仍為1。后續(xù)掃描如保持(00000)ON不變,則都不執(zhí)行@INC。由此看出當(dāng)執(zhí)行條件變?yōu)镺N時,PLC對微分指令只執(zhí)行一次。所以從指令執(zhí)行次數(shù)方面考察,非微分型指令可簡單理解為執(zhí)行多次的指令,微分指令則為只執(zhí)行一次的指令。

由此引出了第二個問題,即為什么PLC將指令設(shè)計為兩種形式,其實際意義在哪里?前已提到PLC的固有工作方式是“循環(huán)掃描”,它是針對控制目標(biāo)的實現(xiàn)需要PLC重復(fù)執(zhí)行程序這一通常情況而設(shè)計的,但不排除實際應(yīng)用中存在只執(zhí)行一次指令的需要。試想如果拿掉圖2中INC指令前的@使之變?yōu)榉俏⒎种噶?,則一旦執(zhí)行條件(00000)為ON,經(jīng)一段時間運(yùn)行后,(000)值是多少就難以確知了,程序變得無甚意義。所以PLC的兩種指令形式,是針對不同控制需要而設(shè)計的,不可混用。

3 關(guān)于順序控制步轉(zhuǎn)換條件

PLC中的控制問題只要屬于順序控制類型,無論大小,都能通過套用PLC提供的模板輕易得以解決,因此能在很大程度上減輕編程難度。順序控制編程涉及兩大步驟:畫功能表圖和畫梯形圖。功能表圖應(yīng)準(zhǔn)確表達(dá)每步所做的事項及步與步之間的轉(zhuǎn)換條件,畫梯形圖則是在此基礎(chǔ)上套用模板而已。然而必須指出步與步之間的轉(zhuǎn)換條件體現(xiàn)在梯形圖模板時卻發(fā)生了變形,即加入了上一步控制位這一條件,使步轉(zhuǎn)換條件變?yōu)槎呦唷芭c”的邏輯條件。那么我們不禁要問,所加入的條件是必要的嗎?教材或參考書對此缺乏必要闡釋,使不少學(xué)生產(chǎn)生困惑。為澄清這一問題,應(yīng)扣緊順序控制的實質(zhì)要求,即下一步活動必須在前一步活動結(jié)束之后才能展開,這就意味著整個控制過程不充許發(fā)生任何跳轉(zhuǎn)。試想如果在梯形圖的轉(zhuǎn)換條件中取消上一步控制位,僅留下步轉(zhuǎn)換條件,將會發(fā)生什么情況。我們現(xiàn)在結(jié)合圖3所示的實例進(jìn)行討論。

圖3 順序控制示例

在上圖所示的順序控制梯形圖中,每個梯級的步轉(zhuǎn)換邏輯條件為控制位 20000、20001、20002、20003 分別與 00000、00001、00002、00003 繼電器相“與”。假設(shè)將其中的控制位取消,留下 00000、00001、00002、00003位似乎也能實現(xiàn)步轉(zhuǎn)換。如果控制位20001為ON,即當(dāng)前活動步為“工進(jìn)”,當(dāng)該步結(jié)束時必使00001繼電器為ON,進(jìn)而使20002為ON,即活動步轉(zhuǎn)為“快進(jìn)”,并使上一步控制位20001變?yōu)镺FF,似乎也符合順序控制邏輯要求。但這樣一來埋下了一個隱患,即只要發(fā)生某種干擾使轉(zhuǎn)換條件00000、00001、00002、20003繼電器位中的任何一個為ON都可觸發(fā)相應(yīng)控制位為ON,使該步變?yōu)榛顒硬?,而不管其上一步是否結(jié)束了活動狀態(tài),這就導(dǎo)致了事實上的程序跳轉(zhuǎn),違背了順序控制的本意。由此可見在步轉(zhuǎn)換邏輯條件中加(串)入上一步控制位是完全必要的,它對步轉(zhuǎn)換起到了嚴(yán)格限制作用,使其僅在上一步活動結(jié)束后方可進(jìn)行,以防止干擾引起程序跳轉(zhuǎn),確保順序控制按正確邏輯步驟推進(jìn)。

4 常用指令容易忽略的問題

PLC常用指令是關(guān)于“位”的邏輯運(yùn)算指令,其中的加載指令LD N應(yīng)予以特別重視,因為它包含兩種不同操作。然而教學(xué)中發(fā)現(xiàn)學(xué)生對該指令的認(rèn)知只停留在助記符所表達(dá)的操作功能層面上,卻忽視了隱藏在助記符后面的另一操作功能。恰恰這一忽視對后續(xù)“塊”邏輯運(yùn)算指令的教學(xué)影響很大,因此有必要對加載指令LD N功能作深入解讀。

圖4 塊邏輯運(yùn)算示例

LD N指令包含的兩種操作功能分別是,①將N繼電器狀態(tài)送入結(jié)果寄存器R;②結(jié)果寄存器R的原內(nèi)容存入堆棧。對這兩種操作應(yīng)理解為有先有后,第2種操作在先,第1種操作在后,否則R的原內(nèi)容將丟失(被覆蓋)。于是指令執(zhí)行時,先將R的內(nèi)容保存進(jìn)堆棧中,然后再接收N繼電器狀態(tài)。該指令對R內(nèi)容的保存功能對“塊”邏輯運(yùn)算指令功能的發(fā)揮至關(guān)重要,同時也是正確理解與運(yùn)用“塊”邏輯運(yùn)算指令的關(guān)鍵所在?,F(xiàn)在可通過圖4所示的實例進(jìn)行剖析。算,即(00000)·(00001)+(00002),結(jié)果存入 R中。接下來進(jìn)行第二“塊”邏輯運(yùn)算時務(wù)必先應(yīng)用指令LD 00003將R內(nèi)容即第一“塊”的邏輯運(yùn)算結(jié)果轉(zhuǎn)存堆棧S中。再加載(00003)至R,連同其后的AND NOT 00004和OR NOT 00005指令完成第二“塊”的邏輯運(yùn)算。至此,前兩“塊”邏輯運(yùn)算都告完成,結(jié)果分別存放在堆棧S與R中。接下來應(yīng)用AND LD指令進(jìn)行堆棧S與R內(nèi)容相“與”,即前兩

上圖中“塊”邏輯運(yùn)算梯形圖示例中共有3個邏輯塊。梯形圖先對上方2個邏輯塊進(jìn)行“與”運(yùn)算,然后再對下方的塊進(jìn)行“或”的運(yùn)算,所得結(jié)果傳送給01000,其邏輯關(guān)系直觀明了。但如何正確地應(yīng)用指令語句加以實現(xiàn),主要取決于對LD N指令的透徹理解與正確運(yùn)用。

在圖4梯形圖中,先對第一“塊”進(jìn)行邏輯運(yùn)“塊”邏輯值相“與”運(yùn)算,結(jié)果存放R中。其后進(jìn)行第三“塊”的邏輯運(yùn)算時,同樣先應(yīng)用LD NOT 00006指令將R內(nèi)容轉(zhuǎn)移到堆棧S中,再加載(00006),連同其后的AND 00007指令完成第三“塊”邏輯運(yùn)算,其值仍在R中,再應(yīng)用OR LD指令完成堆棧S與R內(nèi)容相“或”,也就是前兩“塊”相“與”的結(jié)果再與第三“塊”邏輯值相“或”的運(yùn)算,最后通過 OUT 01000指令輸出結(jié)果。

由以上分析可以看出,在對含有“塊”邏輯運(yùn)算的梯形圖寫語句表時,應(yīng)先弄清各“塊”之間的邏輯關(guān)系,明確各“塊”邏輯運(yùn)算順序,在此基礎(chǔ)上正確運(yùn)用LD N指令及“塊”邏輯指令(AND LD與OR LD)加以實現(xiàn)。LD N指令將前一“塊”邏輯值轉(zhuǎn)存堆棧S中,并開啟下一“塊”的邏輯運(yùn)算,而“塊”邏輯指令則對之前存放于堆棧中的“塊”邏輯值再取出進(jìn)而完成規(guī)定的“塊”間邏輯運(yùn)算,其執(zhí)行總是在相關(guān)的二“塊”邏輯值算完之后,與LD N指令形成交替疊進(jìn)關(guān)系。

[1] 劉涳,常用低壓電器與可編程序控制器[M],西安:西安電子科技大學(xué)出版社,2005

[2] 鄭寶林,圖解歐姆龍PLC入門[M],北京:機(jī)械工業(yè)出版社,2008

[3] 孫振強(qiáng),可編程序控制器原理及應(yīng)用教程[M],北京:清華大學(xué)出版社,2005

[4] 俞國亮,PLC原理與應(yīng)用[M],北京,清華大學(xué)出版社,2005

[5] 何衍慶等,可編程序控制器原理及應(yīng)用技巧[M],北京:化學(xué)工業(yè)出版社,2006

猜你喜歡
順序控制堆棧梯形圖
PLC順序控制設(shè)計方法的深入探析
嵌入式軟件堆棧溢出的動態(tài)檢測方案設(shè)計*
智能變電站中順序控制的功能分析與實現(xiàn)
基于堆棧自編碼降維的武器裝備體系效能預(yù)測
基于VC的梯形圖編程軟件開發(fā)技術(shù)
繼電器電路轉(zhuǎn)為梯形圖教學(xué)經(jīng)驗淺談
電子制作(2016年15期)2017-01-15 13:39:28
淺談智能變電站的順序控制功能及應(yīng)用
智能變電站順序控制技術(shù)應(yīng)用研究
PLC梯形圖程序設(shè)計技巧及應(yīng)用
一種用于分析MCS-51目標(biāo)碼堆棧深度的方法
且末县| 大余县| 伊吾县| 台中县| 拉萨市| 连城县| 靖边县| 株洲市| 鄂托克旗| 阳江市| 科技| 新沂市| 花垣县| 昌江| 遵化市| 泰和县| 双峰县| 恩施市| 武宣县| 浠水县| 武功县| 名山县| 丰顺县| 林州市| 老河口市| 新乡县| 彰化县| 孟州市| 余干县| 奎屯市| 和平县| 万荣县| 合江县| 历史| 东源县| 清原| 江山市| 贵州省| 三台县| 来宾市| 洪江市|