傳統的PLC編程語言隻有兩種,指令表(IL)及梯形圖(LD),有的稱梯形邏輯圖(LLD)。而今為便于各類型的工程技術人員都能使用PLC,PLC廠商都增加了它的編程語言。國際電工組織也制定與幾次修訂了PLC編程語言國際标準。并在1993年做了全面修訂後稱之為IEC 61131-3的修訂版。我國在1995年11月發布了GB/T 15969-1/2/3/4标準,與IEC 61131-1/2/3/4等同。該标準推薦了6種編程語言,除了指令表及結構化文本(ST)為文字語言,還有梯形圖、功能塊圖(FBD)、連續功能圖(CFC)及順序功能圖(SFC)等圖形語言。
目前,IEC 61131-3編程語言不僅用于PLC,而且還用于集散型控制系統、工業控制計算機、數控系統和遠程終端單元。
由于這個标準的建立是在PLC已廣泛使用之後,加上它不是強制性标準,所以,有些老的PLC廠商還是在原來語言的基礎上做了擴展,并沒有完全采用這個标準。再就是,即使語言相同,但細節還是有不少差異。
倒是國産PLC,如和利時公司的LM、LK系列機,是在有了标準之後才開發的,能全面采用這個标準。再就是ABB公司的PLC也使用标準規定的6中語言編程。
下面就給大家簡要介紹一番:
指令表(IL)
指令表語言是PLC編程最基本的語言。但是,用它編的程序,可讀性較差,目前已不常用。故不在此做介紹。
結構化文本語言(ST)
ST語言與BASIC語言、PASCAL語言或C語言等類似。它沒有單一的指令,隻有由一組指令構成的含義完整的各種語句。具體語句有賦值語句、條件語句、選擇語句、循環語句及其他語句(EXIT語句、RETURN語句、功能塊調用語句等)。
不同品牌PLC的ST語言所提供的函數、運算符可能略有不同。
ST語言功能比圖形語言強,但不如圖形語言直觀,目前用的還不大普及。如歐姆龍PLC隻是在自編功能塊的程序中才可使用它。
同樣為ST語言,各PLC廠商的細節不完全一樣。
梯形圖(LD)
梯形圖來源于美國,是一種基于梯級的圖形符号布爾語言。
梯形圖語言與電氣原理圖相對應,與原有繼電器邏輯控制技術相一緻。與原有的繼電器邏輯控制技術不同的是,梯形圖中的功率流不是實際意義的電流,内部的繼電器也不是實際存在的繼電器。
梯形圖的左母線好像電氣原理圖的電源線一樣,一般不直接與輸出類指令(相當于電氣原理圖的負載)相連,中間總要有能建立邏輯條件的一些指令(相當于電氣原理圖的控制元件)。但有的PLC也允許這麼做。
用梯形圖符号編的PLC程序,很像電氣原理圖。如上圖所示。圖b為施耐德公司Naza PLC用的梯形圖。
下圖所示為與IL語言程序對應的梯形圖程序
關于梯形圖的文章有很多,在此不再贅述,本公衆号以前也發過幾篇文章,大家可以去看一看:
關于PLC梯形圖,你想知道都在這裡!
想短時間内掌握西門子PLC梯形圖的編程方法就一定要看這篇文章!
學PLC必看:看懂電動機控制系統中PLC梯形圖和語句表
PLC常用的基本控制電路及梯形圖
功能塊圖(FBD)
FBD語言(一種對應于邏輯電路的圖形語言),與電子線路圖中的信号流圖非常相似。FBD廣泛地用于過程控制。
FBD語言是以功能模塊為單位,描述控制功能。特别是控制規模較大、控制關系較複雜的系統,用它表達将更為方便。
目前,PLC廠商推出一些高功能及高性能的硬件模塊的同時,多提供與其有關的功能塊圖程序,這為用戶使用這些硬件及進行編程提供了很大方便。
FBD語言占用内存較大,執行時間較長,因此,這種語言多隻在大、中型可編程序控制器和集散控制系統的編程和組态中采用。
連續功能圖(CFC)
CFC與FBD類似,也是按需要選用種種功能塊。所不同的是,它更靈活,塊的位置可任意擺放,特别有信号反饋時,畫起來更方便。
為了塊的執行有明确的順序,它的每個塊的右上角都标有序号。但在實際表達時,這個标号也可選擇不顯示。
FBD及CFC語言在DCS系統編程中用得較多。此外,由于這兩種語言差别不大,有時,僅使用FBD語言。因而,有的也把IEC 61131-3自動化編程語言說成5種。
順序功能圖(SFC)
SFC語言以描述控制程序的順序為特征,以圖形方式,簡單、清楚地描述系統的所有現象,并能對系統中存有的像死鎖、不安全等反常現象進行分析和建模,并可在此基礎上編程。所以,得到了廣泛的應用。
其實,SFC語言僅僅是一種組織程序的圖形化方式。其實際使用要與其它語言配合,否則無法實現其功能。所以,嚴格地講,它不能算是完整的編程語言。
1.組成
步(Step)
用方框表示,分有初始步、活動步、不活動(休止)步三種。一個步是否為活動步,即是否處于激活狀态,則取決于上一步及與其相應的轉移。
動作(Action)
動作是步的組成部分,一個步含有一個或多個動作,用一個附加在步上的矩形框來表示。每一動作中的程序代碼都可以用IEC的任一語言如ST、FBD、LD或IL來編寫。每一動作還有一個修飾詞(Qualifier),用來确定步激活時其動作什麼時候執行或終止。
有向連線
從上到下、從左到右的步間連線。也可用加箭頭做非上下、左右的步間連線。
轉移
在有向連線上的垂直短線。與轉移相關的邏輯條件,用文字、布爾代數表達式、圖形符号标注在轉移短線旁。
2.SFC轉移規則
步的轉移指的是有向連線相連的前後步激活狀态的轉換。
步間轉移的規則是:
①步間的轉移邏輯條件為真;
②被轉移步的前一步是活動的。
不滿足此兩條件,将不轉移。
為了啟動順序功能流程圖程序的執行,總是要指定一個初始步,其标志為S0,是程序運行開始時被激活的那個步。有個這個初始步,則随着相應轉移邏輯條件滿足,流程圖中步的激活狀态将逐步轉換,直至最後一步被激活,或根據有向線指定路線不停地循環轉換。
3.SFC主要形式
根據結構的不同,可分為以下幾種形式:單序列控制、并行序列控制、分支結構序列、轉移序列等。
下圖所示為一段SFC語言編寫的程序。
同樣稱SFC語言,但有的是合乎标準的,如歐姆龍CJ2所用的,其Action有以上修飾詞。有的沒有,使用時要看具體軟件的說明。
本文選自《PLC實用編程指南 第3版》
編後語
,