(施耐德電氣(中國)投資有限公司,北京 100016)
華 镕 男,現任施耐德電氣(中國)投資有限公司工業自動化部產品推廣經理。
5 五種IEC語言
Unity Pro有五種語言可以對Atrium、Premium、M340以及Quantum自動化平臺進行編程。三種圖形設計語言包括梯形圖 (LD)、功能塊圖 (FBD) 、順序功能圖(SFC)或者Grafcet;兩種文本設計語言包括結構化文本 (ST)、 指令表 (IL)。
對于這五種語言來說,用戶可以使用與IEC 61131-3標準兼容的指令集來建立應用程序,這些應用程序可以在不同的平臺上運行。Unity Pro軟件還對標準指令集進行了擴展。因為這些擴展指令是針對Atrium/Premium/M340和Quantum PLC的,所以它們能支持更復雜應用程序的開發,以最大限度地挖掘和利用這些平臺的特性。
5.1 五種語言通用的功能
這五種語言的編輯器都提供了友好的用戶界面,可進行寫操作、讀操作以及對程序進行分析:
(1)指令表 (IL)和結構化文本 (ST)的文本編輯器支持:
● 在插入或者覆蓋模式下,輸入文本。
● 使用協助對話框,對變量、功能、功能塊或賦值指令進行輸入。
● 對輸入數據進行檢查,檢測是否有語法或語義錯誤。檢查的結果會通過紅色的波浪狀下劃線或者相關文本顏色來告知用戶。
● 用一套顏色系統,在讀操作中將文本 (黑色)和運算符 (紅色),語言關鍵字 (藍色)以及程序注釋文字 (綠色)區分開來。
(2)用于梯形圖(LD)語言,功能塊圖 (FBD)語言和順序功能圖(SFC)語言功能的圖形編輯器:
● 一套通過鼠標或者鍵盤,對各種圖形符號進行直接訪問的圖形元素 。
● 一個彈出菜單,可以通過點擊鼠標右鍵進入。
(3)沒有數量和長度限制的注釋文字。這些注釋文字可以作為文本對象被放在任何單元中(圖形語言) 或者表達式中的任何位置(文本語言)。
(4)協助性數據輸入功能有:
● 訪問DFB功能庫,變量編輯器或者用來輸入注釋文字的文本對象。
● 對變量參考表進行初始化。
● 對所選變量的動態數據表進行初始化。
● 顯示和修改所選變量的屬性。
● 在不使用數據編輯器的情況下,以實時方式創建變量。
(5)“剪切”,“復制”,“粘貼”,“刪除”,“移動”,等等。
(6)在文本行內或者頁邊設置書簽,以便于用戶可以:
● 在重要的程序段內很容易地確定行的位置 。
● 在編輯器內通過書簽,標簽或者行號和列號來進行瀏覽。
5.2 梯形圖 (LD) 語言
每一個用梯形圖語言編寫的程序段或者子程序都由一系列的欄位組成,它們由PLC按照順序執行。每個欄位由觸點、連線、線圈、操作模塊、EF/EFB/DFB功能塊、轉移、子程序調用等圖形對象(置于以行和列方式排列的單元內)所組成。
圖1 梯形圖語言結構程序
5.2.1 程序結構 (程序段或者子程序)
每一個梯形圖語言程序段都可能會包含以下內容:
(1)11到64列 (其數量由用戶設定);
(2)最多2000行 (程序段內所有的欄位) ;
(3)“混合顯示”模式支持對用于欄位變量的注釋文字,地址和符號進行不加限制的顯示。
圖2 在梯形圖語言編輯器內的工具欄
5.3 功能塊圖(FBD)語言, 用于Unity Pro大型和超大型版本
功能塊圖語言是一種圖形設計語言,它基于連接帶有變量或參數的功能塊來組成。該語言尤其適合于用來編制過程控制的應用程序。
圖3 功能塊圖語言程序
5.3.1 程序結構 (程序段或者子程序)
圖形設計語言FBD支持三種功能塊:
● 基本塊 (EF)
● 基本功能塊 (EFB),根據它們的應用類型,被劃分為不同的庫
● 派生功能塊 (DFB),和基本功能塊具有同樣的結構,不過是由用戶使用ST,IL,LD 或者FBD語言編寫的。
在同一個程序段內,可以通過特定的功能塊來調用子程序。也可以跳轉到一個功能塊實例。
一個在FBD語言中編寫的程序段包含了相當于具有30列和24行的網格信息。功能塊位于這些網格上,最小步長為一列的十分之一和一行的十分之一(稱為網點)。
圖4
5.4 順序功能圖 (SFC)和Grafcet語言
順序功能圖 (和Grafcet)語言可以用來描述自動化系統的順序流程,使用簡單的方框圖。這種格式包括了步和轉移。
SFC語言處理圖表的方式與Grafcet語言并不相同:
● SFC在一個圖中只能授予一個令牌。
● Grafcet在一個圖表中可以授予多個令牌。 Unity Pro軟件有一個用于這兩種語言的編輯器。該編輯器帶有在應用程序設置中對行為進行定義的選項 (工具/項目設置/語言擴展菜單)。
5.4.1 程序結構 (主任務程序段)
圖5 順序功能圖SFC
SFC語言只用在屬于主任務的程序段。每一個SFC程序段由一個主流程圖程序段步和用于每一個宏步的子程序段組成。該圖的內容包括:
● 宏步,它是一個獨立步,步中含有一系列步和轉移(建立一個多層體系圖結構) 。
● 步。
● 在步和轉移之間的轉移,以及定向連接 。
對應于步和轉移的動作和轉移條件,可以是以下兩種情況:
● 集成到步或者宏步中,在這種情況下,動作或者轉移由一個單一的參數來進行定義 。
● 用特定的程序段來處理,在這種情況下,需要執行專門的程序(需要用梯形圖,功能塊圖,結構化文本或者指令表語言進行編程)。
為了檢查PLC已經成功地執行了掃描,可以將活動時間(最小,最大)與每一個步相關聯。這些時間由用戶進行設定。
圖6 SFC語言程序結構
5.4.2 程序結構 (在主任務中的程序段)
對于每一個SFC程序段來說,圖形編輯器針對以下幾個方面所能提供的最大數量為:
● 一個包含32列以及200行,或者6400個單元的網格。步,轉移或者跳轉分別需要一個單元。
● 1024個步 (宏步以及在宏步中的步)。
● 可以分配給同一個步的動作為20個。
● 在同一時間內激發的步為100個。
● 在同一時間內激發的動作為100個。
圖7 SFC圖形頁面
為了容易地建立基本的流程圖,可以先在圖形頁面中建立“n”個串行步以及“m”個并行步。 然后利用對話框為步(活動時間,動作)和轉移(與轉移條件相連接的變量)等分配相關聯的屬性。
5.5 結構化文本(ST)語言
結構化文本語言是一個復雜的算法類型語言,它尤其適合于完成復雜的算術運算,桌面操作,消息管理等方面的功能。
圖8 結構化文本
5.5.1 程序結構 (程序段或子程序)
結構化文本語言用于在結構圖的基礎上,對分析進行直接轉換編程。它包含很多表達式,這些表達式由一系列逐行排列的指令構成。對一個指令行所能包含的字符數沒有限制 (唯一的限制是針對Premium和Quantum平臺的可用程序內存,TSX P57 10...40處理器是一個例外,針對它的內存限制是64Kb)。程序段的長度只受制于應用程序所用內存的容量。
可以直接從工具欄內調用四種預先格式化的表達式結構:
● 有條件的動作: IF...THEN...ELSIF...THEN...ELSE...END-IF;
● 迭代的有條件動作:WHILE...DO...END_WHILE; REPEAT...UNTIL...END_REPEAT;
● 重復的動作: FOR...TO...BY...DO...END_FOR;
● 選擇性動作: CASE...OF...ELSE...END_CASE。
圖9 ST編輯器
在這些表達式中所使用的操作數為位變量,字變量或者連接到功能塊的變量。為了使這些表達式便于讀出,語言中使用了不同的顏色,以區分對象,語言關鍵字和程序注釋文字。
作者信息:
華(施耐德電氣(中國)投資有限公司,北京 100016)