應用指令用於幫助開發者提升開發效率,降低開發難度,依指令架構主要分為兩大類:應用函式庫、系統物件。
兩者主要差異是,應用函式庫提供許多事先編寫好的小區塊的MSM程式碼片段,用於階梯圖與程式單元,使用者可自行擴充;系統物件則是由韌體根據特定應用提供的程式,用於程式單元,使用者不可自行擴充。
1.1. 應用函式庫
應用函式特點:
l 兩層樹狀結構,由頂層依序往下為:庫名→應用指令(API)。
l 庫提供許多事先編寫好的小區塊的MSM程式碼片段。
l 可同時用於階梯圖與程式單元,有些只能用於程式單元。
l 使用者可自行擴充。
1.2. 官方應用函式庫ASD
由台達原廠提供的一套函式庫,所有應用指令均有範例專案可參考。
l 應用函式庫主要針對協助Ladder編程設計,但部分PLC屬性為X者,須使用觸發來呼叫。
l 若指令屬性標記為偵錯,可於另一個Task使用Task0Error、Task1Error、Task2Error、Task3Error來檢測是否運作中發生錯誤。
1.3. 擴充應用函式庫
應用函式庫為雙層樹狀結構,由上往下為:庫名→應用指令(API)。應用指令會依照資料夾進行分類,不同資料夾裡的應用指令名稱不可重複,在建立應用指令前,必須先建立資料夾。
以下章節將以Step by Step帶領開發者建立一個應用指令,著重於程式開發的觀念,詳細的使用者介面操作請參考EzASD軟體操作手冊。
1.1.1. 新增應用函式庫
在〔應用函式庫〕點滑鼠右鍵,利用〔設定函式庫路徑〕確認欲存放函式的路徑後,點選〔新增函式庫〕。
輸入函式庫名稱,不分大小寫,不可以有空格。
點〔確定〕後完成,可以在函式庫路徑下找到LIB1,即為該函式庫。
1.1.1. 新增資料夾
在欲新增資料夾的函式庫點滑鼠右鍵,點選〔新增資料夾〕。
輸入資料夾名稱,不分大小寫。
完成。
1.1.1. 新增應用指令
在欲新增應用指令的資料夾點滑鼠右鍵,點選〔新增應用指令〕。
輸入應用指令名稱,不分大小寫,不可以有空格。下方的描述欄位可以輸入註釋。
完成。
1.1.1. 撰寫應用指令
1.1.1.1. 應用指令撰寫概念
應用指令由指令名稱、輸入變數、輸出變數、影響變數,四者定義而成,後三者可分別由外部指定目標變數。若有其他諸如C語言的編程經驗,其實就是方法簽名(Method Signature)的概念。
圖表 1指令ADD宣告了輸入參數in、輸出參數out、影響參數int_out
指令名稱
命名方式不區分英文字母大小寫,只能使用英文字母與數字,不可以使用空白,只能使用英文字母開頭。
輸入變數(宣告類型VAR_INPUT)
傳值,有區分英文字母大小寫,可以有多個。將來源變數的內容傳送到輸入變數,不會影響來源變數。
輸出變數(宣告類型VAR_OUTPUT)
傳值,有區分英文字母大小寫,可以有多個。應用指令的程式碼運作完成後,會將計算結果傳送到指定的目標變數。
影響變數(宣告類型VAR_IN_OUT)
傳址,有區分英文字母大小寫,可以有多個。應用指令的程式運作時,直接對目標變數進行操作。
宣告輸入變數、輸出變數、影響變數
在編輯應用指令時配置Local Symbol,宣告類型會多出三個選擇VAR_INPUT、VAR_OUTPUT、VAR_IN_OUT,其他狀態開啟MSM程式單元,類型只能配置VAR(區域變數)。
應用指令程式
應用指令的程式相較其他MSM程式單元,除了多了Method Signature概念外,並沒有什麼不同。
1.1.1.1. 開始編輯應用指令
滑鼠左鍵雙擊應用指令。
開啟MSM程式編輯器,上方提示正在編輯的應用指令,與編輯MSM程式單元略有不同。
1.1.1.1. 配置輸入變數、輸出變數
點選Local Symbol配置區的〔+〕號。
輸入〔名稱〕,點選〔…〕選擇〔型態〕,配置〔宣告類型〕。
配置三個變數,注意類別與資料型態。
1.1.1.1. 撰寫應用指令程式
鍵入以下程式碼,程式碼將提供一個相加的指令s1 + s2 = d。
1.1.1.1. 使用自訂的應用指令
如下圖建立一個階梯圖,並拉入上一小節建立好的應用指令,結果:DV0.0 = ON的時候會將 var1 + var2 傳送到 var3。