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