- 機器自動化控制器原理與應用
- 徐世許
- 2969字
- 2020-12-04 16:25:45
1.5 PLC的編程語言
PLC是專為工業(yè)控制而開發(fā)的裝置,其主要使用者是工廠廣大電氣技術人員,為了適應他們的傳統(tǒng)習慣和掌握能力,通常PLC不采用微機的編程語言,而常常采用面向控制過程、面向問題的“自然語言”編程,這些編程語言有梯形圖、語句表、功能塊、結構文本。
1.5.1 梯形圖
梯形圖(LAD)表達式是在原電器控制系統(tǒng)中常用的接觸器、繼電器梯形圖基礎上演變而來的。它與電氣控制原理圖相呼應,形象、直觀和實用,廣大電氣技術人員很容易掌握,是PLC的主要編程語言。圖1-9所示為兩種梯形圖。
圖1-9 兩種梯形圖
由圖1-9可以看出,PLC梯形圖在形式上類似于繼電器控制梯形圖。它是用圖形符號、
、
、
、
等連接而成,這些符號依次為常開觸點、常閉觸點、并聯(lián)連接、串聯(lián)連接、繼電器線圈。梯形圖按自上而下、從左到右的順序排列。一般每個繼電器線圈對應一個邏輯行。梯形圖的最左邊是起始母線,每一邏輯行必須從起始母線開始畫起,然后是觸點的各種連接,最后終了于繼電器線圈。梯形圖的最右邊是結束母線,有時可以省去不畫。
在梯形圖中的每個編程元件應按一定的規(guī)則加注字母和數(shù)字串,不同的編程元件常用不同的字母符號和一定的數(shù)字串來表示。
PLC梯形圖具有以下特點:
1)梯形圖中的繼電器不是物理繼電器,每個繼電器實際上是映像寄存器中的一位,因此稱為“軟繼電器”。相應位的狀態(tài)為1,表示該繼電器線圈通電,其常開觸點閉合,常閉觸點斷開;相應位的狀態(tài)為0,表示該繼電器線圈失電,其常開觸點斷開,常閉觸點閉合。
梯形圖中繼電器線圈是廣義的,除了輸出繼電器、輔助繼電器線圈外,還包括定時器、計數(shù)器、移位寄存器以及各種算術運算等。
2)每個繼電器對應映像寄存器中的一位,其狀態(tài)可以反復讀取,因此可以認為繼電器有無限多個常開觸點和常閉觸點,在程序中可以被反復引用。
3)梯形圖是PLC形象化的編程手段,梯形圖兩端是沒有任何電源可接的。梯形圖中并沒有真實的物理電流流動,而僅是“概念”電流,是用戶程序解算中滿足輸出執(zhí)行條件的形象表示方式。“概念”電流只能從左向右流動。
4)輸入繼電器供PLC接收外部輸入信號,而不是由內部其它繼電器的觸點驅動,因此梯形圖中只出現(xiàn)輸入繼電器的觸點,而不出現(xiàn)輸入繼電器的線圈。輸入繼電器的觸點表示相應的輸入信號。
5)輸出繼電器供PLC作輸出控制用。它通過開關量輸出模塊對應的輸出開關(晶體管、雙向晶閘管或繼電器觸點)去驅動外部負載。因此,當梯形圖中輸出繼電器線圈滿足接通條件時,就表示在對應的輸出點有輸出信號。
6)當PLC處于運行狀態(tài)時,PLC就開始按照梯形圖符號排列的先后順序(從上到下、從左到右)逐一處理,也就是說,PLC對梯形圖是按掃描方式順序執(zhí)行程序。
7)用戶程序解算時,輸入觸點和輸出線圈狀態(tài)是從I/O映像寄存器中讀取的,不是解算時現(xiàn)場開關的實際狀態(tài)。梯形圖中前面程序解算的結果馬上可以被后面程序的解算所利用。
1.5.2 語句表
語句表(STL)是一種與匯編語言類似的助記符編程表達式。在許多小型PLC的編程器中沒有CRT屏幕顯示,或沒有較大的液晶屏幕顯示,就用一系列PLC操作命令組成的語句表將梯形圖控制邏輯描述出來,并通過編程器輸入到機器中去。
不同的PLC,語句表使用的助記符不相同。以OMRON的PLC為例,對應圖1-9b的語句表為:
LD 0.00(表示邏輯操作開始,常開觸點與母線連接)
OR 100.00(表示常開觸點并聯(lián))
AND NOT 0.01(表示常閉觸點串聯(lián))
OUT 100.00(表示輸出)
語句是用戶程序的基礎單元,每個控制功能由一條或多條語句組成的用戶程序來完成。每條語句是規(guī)定CPU如何動作的指令,它的作用和微機的指令一樣,PLC的語句也由操作碼和操作數(shù)組成,故其表達式也和微機指令類似。
PLC的語句:操作碼+操作數(shù)
操作碼用來指定要執(zhí)行的功能,告訴CPU該進行什么操作;操作數(shù)內包含執(zhí)行該操作所必需的信息,告訴CPU用什么地方的數(shù)據(jù)來執(zhí)行此操作。
操作數(shù)應該給CPU指明為執(zhí)行某一操作所需要信息的所在地,所以操作數(shù)的分配原則是:
1)為了讓CPU區(qū)別不同的編程元件,每個獨立的元件應指定一個互不重復的地址。
2)所指定的地址必須在該型機器允許的范圍之內。超出機器允許的操作參數(shù),PLC不予響應,并以出錯處理。
語句表編程有鍵入方便、編程靈活的優(yōu)點,但不如梯形圖形象、直觀。
1.5.3 功能塊
功能塊(FB)是一個將處理功能標準化的基本程序單元。功能塊由PLC生產廠家以庫文件形式提供,或由用戶自行定義。
功能塊定義時包括兩部分:算法和變量定義。
1.算法
功能塊的算法可由梯形圖或結構文本編寫,OMRON由編程軟件CX-P(5.0及以上版本)實現(xiàn)。
2.變量定義
變量定義要求列出每個變量的類型和屬性。
(1)變量類型
內部變量:只能在功能塊內部使用的變量。內部變量不能與功能塊的I/O參數(shù)直接建立聯(lián)系,例如,從功能塊的輸入?yún)?shù)直接獲得數(shù)據(jù),或將數(shù)據(jù)直接從功能塊輸出。
輸入變量:輸入變量從功能塊外面指定的輸入?yún)?shù)中獲得數(shù)據(jù)。每個功能塊都有一個默認輸入變量EN,EN為使能變量,功能塊創(chuàng)建時自動生成,不需要用戶定義,當EN處于ON時,功能塊執(zhí)行。
輸出變量:輸出變量可以將數(shù)據(jù)賦給功能塊外面指定的輸出參數(shù)。每個功能塊都有一個默認輸出變量ENO,ENO為使能輸出變量,功能塊創(chuàng)建時自動生成,不需要用戶定義,功能塊執(zhí)行時,ENO處于ON狀態(tài)。
外部變量:外部變量是由CX-P定義保存的系統(tǒng)變量(條件標志和一些輔助區(qū)域位),或用戶定義的全局符號(可用于每個實例中)。
(2)屬性
屬性是為變量指定名稱、數(shù)據(jù)類型、初始值等。
編程時,功能塊嵌入到程序中,稱作“例程”或“功能塊例程”,每個例程要有一個名稱。一個功能塊可以創(chuàng)建多個例程嵌入到程序中,如果這些例程具有相同的名稱,則它們使用相同的內部變量;如果這些例程具有不同的名稱,則它們使用的內部變量不同。
在程序中每創(chuàng)建一個例程,就需要為功能塊的輸入變量、輸出變量設置相應的參數(shù):I/O內存地址或者常數(shù)。
使用功能塊編程便于程序結構化,具有更好的設計質量和更短的設計時間。一旦為功能塊創(chuàng)建了標準程序并將其保存為文件,便可將功能塊嵌入程序中并設置功能塊的I/O參數(shù),功能塊可在程序中反復使用。當創(chuàng)建/調試程序時,反復使用現(xiàn)有功能塊將節(jié)省大量的時間并減少編碼錯誤,而且程序更容易理解。
OMRON為用戶提供了功能強大的功能塊庫文件,可安裝在CX-P(5.0及以上版本)中,使用非常方便。OMRON新型號的PLC(如CS1、CJ1/CJ2、CP1等)支持功能塊編程。
1.5.4 結構文本
隨著PLC技術的發(fā)展,PLC的高級功能越來越多,如果仍然用梯形圖來實現(xiàn),會很不方便。為了方便用戶使用PLC的數(shù)學運算、數(shù)據(jù)處理、圖形顯示、打印報表等功能,許多大中型或先進的PLC都配備了結構文本(ST)編程語言。
結構文本是一種類似于Pascal的高級編程語言,使用諸如選擇語句和迭代語句的語言結構。
結構文本使用語句來編寫結構化的文本程序,語句用變量和方程式來配置。
方程式是包含運算符和操作數(shù)(變量或常數(shù))的表達式。運算符包括算術運算符、比較運算符和邏輯運算符等。
語句既可以是賦值語句,也可以是控制語句。賦值語句將方程式計算的結果保存于變量中。控制語句包括選擇語句和迭代語句等。
OMRON的CS1、CJ1/CJ2、CP1等新型號的PLC均可使用結構文本編程,一般使用結構文本來創(chuàng)建功能塊。OMRON編程軟件CX-P(5.0及以上版本)支持結構文本編程。
實際上,熟悉計算機編程的人很容易使用結構文本,采用結構文本編程來實現(xiàn)一些更為復雜的數(shù)學運算并生成功能塊不但極大地節(jié)省編程時間,而且使源程序清晰、易讀,降低了出錯率。
與梯形圖相比,結構文本有兩個很大優(yōu)點,其一是能實現(xiàn)復雜的數(shù)學運算,其二是非常簡潔和緊湊。