陳璐 安徽省淮南技工學(xué)校 232100
可編程控制器(PLC)是在繼電器控制和計(jì)算機(jī)控制基礎(chǔ)上開發(fā)的工業(yè)自動(dòng)控制裝置,是計(jì)算機(jī)技術(shù)在工業(yè)控制領(lǐng)域的一種應(yīng)用技術(shù)。其主要使用者是工廠廣大電氣技術(shù)人員,為了適應(yīng)他們的傳統(tǒng)習(xí)慣,通常PLC 不采用微機(jī)的編程語言,而常常采用面向控制過程、面向問題的“自然語言”編程。下面就PLC 編程談?wù)劰P者的見解。
IEC(國際電工委員會(huì))于1994 年5 月公布的IEC1131-3(可編程控制器標(biāo)準(zhǔn)的第三部分)中定義了5 種PLC 編程語 言:(1) 梯 形 圖LAD(Ladder Diagram)(2) 語 句 表STL(Statement List)(3) 功 能 塊 圖 FBD(Function Block Diagram)(4) 結(jié)構(gòu)文本ST(Structured Text)(5) 順序功能圖SFC(Sequential Function Chart)。目前,梯形圖和語句表是PLC 的主要編程語言,其中梯形圖是使用得最多的編程語言,被稱為PLC 的第一編程語言。
梯形圖程序中輸入信號(hào)和輸出信號(hào)之間的邏輯關(guān)系一目了然,易于理解并與繼電器電路的表達(dá)方式相似,由于梯形圖一定能也較易于轉(zhuǎn)化為語句表,因此,在設(shè)計(jì)以開關(guān)量控制為主的控制程序時(shí)建議使用梯形圖。有時(shí)把梯形圖也稱為電路或程序。梯形圖的設(shè)計(jì)稱為編程。
盡管梯形圖與繼電器電路圖在結(jié)構(gòu)形式、元件符號(hào)及邏輯控制功能等方面相類似,但它們又有許多不同之處,梯形圖具有自己的編程規(guī)則。
(1)外部輸入、輸出繼電器、內(nèi)部繼電器、定時(shí)器、計(jì)數(shù)器等器件的接點(diǎn)可多次重復(fù)使用,無需用復(fù)雜的程序結(jié)構(gòu)來減少接點(diǎn)使用次數(shù)。
(2)梯形圖按“自上而下,從左到右”的順序繪制。每一邏輯行總是起于左母線,然后是觸點(diǎn)的連接,最后終止于線圈或右母線(右母線可以不畫出)。左母線與線圈之間一定要有觸點(diǎn),而線圈與右母線之間則不能有任何觸點(diǎn)。
(3)梯形圖中的觸點(diǎn)可以任意串聯(lián)或并聯(lián),但繼電器線圈只能并聯(lián)而不能串聯(lián)。
(4)觸點(diǎn)的使用次數(shù)不受限制。
(5)同一編號(hào)的線圈在同一程序中,使用了兩次或多次,稱為“雙線圈輸出”。雙線圈輸出容易引起錯(cuò)誤操作,應(yīng)盡量避免線圈重復(fù)使用。
(6)對(duì)于不可編程梯形圖必須通過等效變換,變成可編程梯形圖。
(7)有幾個(gè)串聯(lián)電路相并聯(lián)時(shí),應(yīng)將串聯(lián)觸點(diǎn)多的回路放在上方,在有幾個(gè)并聯(lián)電路相串聯(lián)時(shí),應(yīng)將并聯(lián)觸點(diǎn)多的回路放在左方。
PLC 編程技巧是在實(shí)踐中不斷總結(jié)出來的。較好地掌握編程技巧,可提高編程的速度和質(zhì)量。下面六點(diǎn)是筆者編程是常用的技巧。
1、“上沉下輕”
在每一邏輯行中,串聯(lián)觸點(diǎn)多的支路應(yīng)放在梯形圖上方。如果將串聯(lián)觸點(diǎn)多的支路放在梯形圖下方,則語句增多,程序變長(zhǎng)。如圖1 所示。
圖1 為兩個(gè)邏輯功能相同的梯形圖,但它們對(duì)應(yīng)的語句表程序卻不相同,掃描時(shí)間也不同。如將圖1(a)中并聯(lián)的兩條支路上、下對(duì)換,則變換后的梯形圖即圖1(b),原有的邏輯關(guān)系保持不變,但程序簡(jiǎn)化了。
(a)梯形圖語句表 (b)梯形圖語句表
0 LD 0003 0 LD 0001
1 LD 0001 1 AND 0002
2 AND 0002 2 OR 0003
3 ORB 3 OUT 2001
4 OUT 2001 4 END
5 END
2、“左沉右輕”
在每個(gè)邏輯行中,并聯(lián)觸點(diǎn)多的電路應(yīng)放在梯形圖左方。如果將并聯(lián)觸點(diǎn)多的電路放在梯形圖右方,則語句增多,程序變長(zhǎng)。如圖2 所示。
圖2 為兩個(gè)邏輯功能相同的梯形圖,但它們對(duì)應(yīng)的語句表程序卻不相同,掃描時(shí)間也不同。如將圖2(a)中串聯(lián)的兩部分電路左、右對(duì)調(diào),則變換后的梯形圖即圖2(b),原有的邏輯關(guān)系保持不變,但程序簡(jiǎn)化了。
(a)梯形圖語句表 (b)梯形圖語句表
0 LD 0003 0 LD 0001
1 LD 0001 1 OR 0002
2 OR 0002 2 AND 0003
3 ANB 3 OUT 2001
4 OUT 2001 4 END
5 END
3、合并邏輯行
梯形圖中,當(dāng)多個(gè)邏輯行都具有相同條件時(shí),常將這些邏輯行合并,能節(jié)省語句數(shù)。如圖3(a)所示,并聯(lián)觸點(diǎn)0001、0002 是各個(gè)邏輯行所共有的相同條件,可合并成如圖3(b)所示的梯形圖,利用主控指令或分支指令來編程。當(dāng)相同條件復(fù)雜時(shí),可節(jié)省許多存儲(chǔ)空間,這對(duì)存儲(chǔ)容量小的PLC 很有意義。
4、等效變換
梯形圖中,不允許一個(gè)觸點(diǎn)上有雙向“電流”通過,如圖4(a)所示,觸點(diǎn)0005 上有雙向“電流”通過,該梯形圖不可編程,這是不允許的。對(duì)于這樣的梯形圖,應(yīng)跟據(jù)其邏輯功能作適當(dāng)?shù)牡刃ё儞Q,如圖4(b)所示。再將其簡(jiǎn)化成如圖4(c)所示的梯形圖
弄通有關(guān)PLC 程序設(shè)計(jì)理論是重要的。沒有經(jīng)驗(yàn),僅有理論,既無法深刻理解理論,又無法靈活應(yīng)用理論。任何理論也都只是經(jīng)驗(yàn)的總結(jié),歸根到底也都有是來自實(shí)踐。
1、經(jīng)驗(yàn)積累
經(jīng)驗(yàn)有別人的,也有自己的,都很重要。前者要靠細(xì)心學(xué)習(xí),后者要靠用心積累,都要在一定的時(shí)間與必要的精力。別人的經(jīng)驗(yàn)有上了書的或登載在雜志上的。有的是細(xì)心學(xué)習(xí)別人的,但多數(shù)是我自己的經(jīng)驗(yàn)。所有的例子都經(jīng)我測(cè)試過,都經(jīng)實(shí)踐證明是可行的。我想,別的書本或雜志上介紹的也會(huì)是這樣的。所以學(xué)習(xí)這樣楊功的經(jīng)驗(yàn)是必要的。還有就是你同事的經(jīng)驗(yàn),也是值得學(xué)習(xí)。這種經(jīng)驗(yàn)離你很“近”,很易借鑒。自己的經(jīng)驗(yàn)則是最重要的,要在自己的實(shí)踐中,積累自己的經(jīng)驗(yàn),同時(shí),最好在學(xué)別人的經(jīng)驗(yàn)時(shí),也能親自作些測(cè)試,能使自己也有類似的經(jīng)歷,進(jìn)而把這些經(jīng)驗(yàn)變成自己的。這也是自己經(jīng)驗(yàn)的重要積累。
2、經(jīng)驗(yàn)升華
經(jīng)驗(yàn)還有待升華。升華有三個(gè)層次:最低的層次就是建立一個(gè)典型的程序庫,供今后再用。若程序復(fù)雜,還可建一些功能塊,或子程序,以便以后引用。其次,要總結(jié)出有效算法。如單按鈕起停程序庫等。最高層次的升華是把經(jīng)驗(yàn)上升到理論的高度,為豐富PLC 程序設(shè)計(jì)理論作貢獻(xiàn)。我想,隨著PLC使用的普及與提高,是會(huì)有越來越多從經(jīng)驗(yàn)中升華出來的,而又能用以指導(dǎo)實(shí)踐的PLC 編程理論的。
3、經(jīng)驗(yàn)應(yīng)用
經(jīng)驗(yàn)積累、經(jīng)驗(yàn)升華都是為了應(yīng)用。經(jīng)驗(yàn)應(yīng)用有三方面:
1)用作工程設(shè)計(jì)模板。設(shè)計(jì)新系統(tǒng)時(shí),選用一個(gè)或幾個(gè)與現(xiàn)設(shè)計(jì)工程類似的,已取得成功的工程,作樣板進(jìn)行設(shè)計(jì)。這既可減輕設(shè)計(jì)的工作量,又增加設(shè)計(jì)的成功率。這也是信息可重用的一大好處。
2)用作程序設(shè)計(jì)參考。在無成功的工程可作樣板時(shí),在新設(shè)計(jì)的邏輯中,仍有相當(dāng)一部分控制邏輯,可采用或借用已有典型邏輯,這也可減少設(shè)計(jì)的工作量,增加設(shè)計(jì)的成功率。
3)用作算法設(shè)計(jì)參考。在既無樣板可參照,又無典型可采用時(shí),還可運(yùn)用過去的一些成功的算法。
總之,PLC 編程要理論與實(shí)踐相結(jié)合,時(shí)時(shí)刻刻做個(gè)有心人,堅(jiān)持不懈,循序漸進(jìn),方能提高自己的編程水平。