PLC的軟件由系統(tǒng)程序和用戶程序組成。系統(tǒng)程序由PLC制造廠商設(shè)計編寫的,并存入PLC的系統(tǒng)存儲器中,用戶不能直接讀寫與更改。系統(tǒng)程序一般包括系統(tǒng)診斷程序、輸入處理程序、編譯程序、信息傳送程序、監(jiān)控程序等。
PLC的用戶程序是用戶利用PLC的編程語言,根據(jù)控制要求編制的程序。在PLC的應(yīng)用中,最重要的是用PLC的編程語言來編寫用戶程序,以實現(xiàn)控制目的。由于PLC是專門為工業(yè)控制而開發(fā)的裝置,其主要使用者是廣大電氣技術(shù)人員,為了滿足他們的傳統(tǒng)習慣和掌握能力,PLC的主要編程語言采用比計算機語言相對簡單、易懂、形象的專用語言。

PLC編程語言是多種多樣的,對于不同生產(chǎn)廠家、不同系列的PLC產(chǎn)品采用的編程語言的表達方式也不相同,但基本上可歸納兩種類型:一是采用字符表達方式的編程語言,如語句表等;二是采用圖形符號表達方式編程語言,如梯形圖等。
以下簡要介紹幾種常見的PLC編程語言。
1.梯形圖語言
梯形圖語言是在傳統(tǒng)電器控制系統(tǒng)中常用的接觸器、繼電器等圖形表達符號的基礎(chǔ)上演變而來的。它與電器控制線路圖相似,繼承了傳統(tǒng)電器控制邏輯中使用的框架結(jié)構(gòu)、邏輯運算方式和輸入輸出形式,具有形象、直觀、實用的特點。因此,這種編程語言為廣大電氣技術(shù)人員所熟知,是應(yīng)用最廣泛的PLC的編程語言,是PLC的第一編程語言。
a) 電器控制線路圖 b)PLC梯形圖
從圖中可看出,兩種圖基本表示思想是一致的,具體表達方式有一定區(qū)別。PLC的梯形圖使用的是內(nèi)部繼電器,定時/計數(shù)器等,都是由軟件來實現(xiàn)的,使用方便,修改靈活,是原電器控制線路硬接線無法比擬的。
2.語句表語言
這種編程語言是一種與匯編語言類似的助記符編程表達方式。在PLC應(yīng)用中,經(jīng)常采用簡易編程器,而這種編程器中沒有CRT屏幕顯示,或沒有較大的液晶屏幕顯示。因此,就用一系列PLC操作命令組成的語句表將梯形圖描述出來,再通過簡易編程器輸入到PLC中。雖然各個PLC生產(chǎn)廠家的語句表形式不盡相同,但基本功能相差無幾。以下是與圖1中梯形圖對應(yīng)的(FX系列PLC)語句表程序。
步序號 指令 數(shù)據(jù)
0 LD X1
1 OR Y0
2 ANI X2
3 OUT Y0
4 LD X3
5 OUT Y1
可以看出,語句是語句表程序的基本單元,每個語句和微機一樣也由地址(步序號)、操作碼(指令)和操作數(shù)(數(shù)據(jù))三部分組成。
3.邏輯圖語言
邏輯圖是一種類似于數(shù)字邏輯電路結(jié)構(gòu)的編程語言,由與門、或門、非門、定時器、計數(shù)器、觸發(fā)器等邏輯符號組成。有數(shù)字電路基礎(chǔ)的電氣技術(shù)人員較容易掌握,如圖2 所示。
4.功能表圖語言
功能表圖語言(SFC語言)是一種較新的編程方法,又稱狀態(tài)轉(zhuǎn)移圖語言。它將一個完整的控制過程分為若干階段,各階段具有不同的動作,階段間有一定的轉(zhuǎn)換條件,轉(zhuǎn)換條件滿足就實現(xiàn)階段轉(zhuǎn)移,上一階段動作結(jié)束,下一階段動作開始。是用功能表圖的方式來表達一個控制過程,對于順序控制系統(tǒng)特別適用。
5.高級語言
隨著PLC技術(shù)的發(fā)展,為了增強PLC的運算、數(shù)據(jù)處理及通信等功能,以上編程語言無法很好地滿足要求。近年來推出的PLC,尤其是大型PLC,都可用高級語言,如BASIC語言、C語言、PASCAL語言等進行編程。采用高級語言后,用戶可以像使用普通微型計算機一樣操作PLC,使PLC的各種功能得到更好的發(fā)揮。
當PLC運行時,是通過執(zhí)行反映控制要求的用戶程序來完成控制任務(wù)的,需要執(zhí)行眾多的操作,但CPU不可能同時去執(zhí)行多個操作,它只能按分時操作(串行工作)方式,每一次執(zhí)行一個操作,按順序逐個執(zhí)行。由于CPU的運算處理速度很快,所以從宏觀上來看,PLC外部出現(xiàn)的結(jié)果似乎是同時(并行)完成的。這種串行工作過程稱為PLC的掃描工作方式。
用掃描工作方式執(zhí)行用戶程序時,掃描是從第一條程序開始,在無中斷或跳轉(zhuǎn)控制的情況下,按程序存儲順序的先后,逐條執(zhí)行用戶程序,直到程序結(jié)束。然后再從頭開始掃描執(zhí)行,周而復始重復運行。
PLC的掃描工作方式與電器控制的工作原理明顯不同。電器控制裝置采用硬邏輯的并行工作方式,如果某個繼電器的線圈通電或斷電,那么該繼電器的所有常開和常閉觸點不論處在控制線路的哪個位置上,都會立即同時動作;而PLC采用掃描工作方式(串行工作方式),如果某個軟繼電器的線圈被接通或斷開,其所有的觸點不會立即動作,必須等掃描到該時才會動作。但由于PLC的掃描速度快,通常PLC與電器控制裝置在I/O的處理結(jié)果上并沒有什么差別。