plc的軟件由系統(tǒng)程序和用戶程序組成。
系統(tǒng)程序由plc制造廠商設(shè)計(jì)編寫的,并存入plc的系統(tǒng)存儲(chǔ)器中,用戶不能直接讀寫與更改。系統(tǒng)程序一般包括系統(tǒng)診斷程序、輸入處理程序、編譯程序、信息傳送程序、監(jiān)控程序等。
plc的用戶程序是用戶利用plc的編程語言,根據(jù)控制要求編制的程序。在plc的應(yīng)用中,最重要的是用plc的編程語言來編寫用戶程序,以實(shí)現(xiàn)控制目的。由于plc是專門為工業(yè)控制而開發(fā)的裝置,其主要使用者是廣大電氣技術(shù)人員,為了滿足他們的傳統(tǒng)習(xí)慣和掌握能力,plc的主要編程語言采用比計(jì)算機(jī)語言相對(duì)簡單、易懂、形象的專用語言。
plc編程語言是多種多樣的,對(duì)于不同生產(chǎn)廠家、不同系列的plc產(chǎn)品采用的編程語言的表達(dá)方式也不相同,但基本上可歸納兩種類型:一是采用字符表達(dá)方式的編程語言,如語句表等;二是采用圖形符號(hào)表達(dá)方式編程語言,如梯形圖等。
以下簡要介紹幾種常見的plc編程語言。
梯形圖語言是在傳統(tǒng)電器控制系統(tǒng)中常用的接觸器、繼電器等圖形表達(dá)符號(hào)的基礎(chǔ)上演變而來的。它與電器控制線路圖相似,繼承了傳統(tǒng)電器控制邏輯中使用的框架結(jié)構(gòu)、邏輯運(yùn)算方式和輸入輸出形式,具有形象、直觀、實(shí)用的特點(diǎn)。因此,這種編程語言為廣大電氣技術(shù)人員所熟知,是應(yīng)用最廣泛的plc的編程語言,是plc的第一編程語言。
如圖1所示是傳統(tǒng)的電器控制線路圖和plc梯形圖。
從圖中可看出,兩種圖基本表示思想是一致的,具體表達(dá)方式有一定區(qū)別。plc的梯形圖使用的是內(nèi)部繼電器,定時(shí)/計(jì)數(shù)器等,都是由軟件來實(shí)現(xiàn)的,使用方便,修改靈活,是原電器控制線路硬接線無法比擬的。
這種編程語言是一種與匯編語言類似的助記符編程表達(dá)方式。在plc應(yīng)用中,經(jīng)常采用簡易編程器,而這種編程器中沒有crt屏幕顯示,或沒有較大的液晶屏幕顯示。因此,就用一系列plc操作命令組成的語句表將梯形圖描述出來,再通過簡易編程器輸入到plc中。雖然各個(gè)plc生產(chǎn)廠家的語句表形式不盡相同,但基本功能相差無幾。以下是與圖1中梯形圖對(duì)應(yīng)的(fx系列plc)語句表程序。
步序號(hào) 指令數(shù)據(jù)
0 ld x1
1 or y0
2 ani x2
3 out y0
4 ld x3
5 out y1
可以看出,語句是語句表程序的基本單元,每個(gè)語句和微機(jī)一樣也由地址(步序號(hào))、操作碼(指令)和操作數(shù)(數(shù)據(jù))三部分組成。
邏輯圖是一種類似于數(shù)字邏輯電路結(jié)構(gòu)的編程語言,由與門、或門、非門、定時(shí)器、計(jì)數(shù)器、觸發(fā)器等邏輯符號(hào)組成。有數(shù)字電路基礎(chǔ)的電氣技術(shù)人員較容易掌握,如圖2所示。
功能表圖語言(sfc語言)是一種較新的編程方法,又稱狀態(tài)轉(zhuǎn)移圖語言。它將一個(gè)完整的控制過程分為若干階段,各階段具有不同的動(dòng)作,階段間有一定的轉(zhuǎn)換條件,轉(zhuǎn)換條件滿足就實(shí)現(xiàn)階段轉(zhuǎn)移,上一階段動(dòng)作結(jié)束,下一階段動(dòng)作開始。是用功能表圖的方式來表達(dá)一個(gè)控制過程,對(duì)于順序控制系統(tǒng)特別適用。
隨著plc技術(shù)的發(fā)展,為了增強(qiáng)plc的運(yùn)算、數(shù)據(jù)處理及通信等功能,以上編程語言無法很好地滿足要求。近年來推出的plc,尤其是大型plc,都可用高級(jí)語言,如basic語言、c語言、pascal語言等進(jìn)行編程。采用高級(jí)語言后,用戶可以像使用普通微型計(jì)算機(jī)一樣操作plc,使plc的各種功能得到更好的發(fā)揮。