STEP7-Micro/Win在程序編輯器窗口中為每個POU提供單獨的頁面。主程序總是第1頁,后面是子程序或中斷程序。由于每個程序在編輯器窗口中是分開的,所以編譯時會在程序末尾自動添加無條件結束指令或無條件返回指令,用戶程序只能使用條件結束指令和條件返回指令。
通常,具有特定功能和多種用途的程序段被視為子程序。子程序可以多次調用、嵌套(最多8層)或遞歸調用(自己調用)。有兩種指令:子程序調用和子程序返回。子程序返回分為條件返回和無條件返回。子程序調用指令用于主程序或其他調用子程序的程序,子程序的無條件返回指令在子程序的最后一個網段。梯形圖指令系統可以自動生成子程序的無條件返回指令,無需用戶輸入。
子程序的調用是有條件的,不調用時子程序中的指令不會被執行,因此使用子程序可以減少掃描時間,使整個程序功能清晰,易于檢查和維護,減少存儲空間。為了移植子程序,應避免使用全局符號和變量,如V存儲區的絕對地址。
編程軟件的程序數據窗口下方有主程序(OBI)、子程序(SUB0)和中斷服務程序(INT0)的選項卡。單擊子程序選項卡進入SUB0子程序顯示區。也可以通過指令樹的項目進入子程序SUB0顯示區。添加子程序時,可以用編輯菜單中的插入項添加子程序,子程序號N會從0向上自動生成。右鍵單擊指令樹中子程序或中斷程序的圖標,在彈出菜單中選擇重命名,修改它們的名稱。
子程序可以有要傳遞的參數(變量和數據),然后相應的參數可以包含在子程序調用指令中,可以在子程序和調用程序之間傳遞。參數(變量和數據)必須有符號名(最多8個字符)、變量和數據類型等。一個子程序最多可以傳遞16個參數。傳遞的參數在子程序局部變量表中定義。局部變量表中有四種類型的變量:輸入、輸出、輸入/輸出和溫度。
●輸入類型:將指定位置的參數傳入子程序。參數的尋址方式可以是直接尋址(如VB10)、間接尋址(如*ACl)或立即數(如1234)。您也可以將數據的地址值傳遞給子程序(&VB100)。
●OUT類型:是子程序的結果值(數據),返回給調用它的POU。常量和地址值不允許作為輸出參數。
●IN/OUT類型:指定位置的參數傳遞給子程序,子程序的結果值返回到同一地址。常量和地址值不允許作為輸出參數。
●TEMP類型:本地內存只能作為子程序內部的臨時內存,不能用來傳遞參數。
局部變量表的數據類型可以是能量流、布爾(位)、字節、字、雙字、整數、雙整數、實數。能量流是指只允許位輸入操作的布爾能量流(布爾型)。梯形圖表示為用觸點(位輸入)連接電源總線和命令盒。
在局部變量表中輸入變量名、變量類型、數據類型等參數后,雙擊指令樹中的子程序(或單擊框快捷按鈕,在彈出菜單中選擇子程序項),帶參數的子程序調用指令框將顯示在梯形圖顯示區。
局部變量表中變量類型的修改方法是用光標選中變量類型區域,點擊鼠標右鍵得到下拉菜單,選擇插入項,彈出下拉子菜單。單擊選定類型,在光標所在的變量類型區域中獲取選定類型。
給定程序傳遞參數時,放在子程序的局部內存(L)中,局部變量表最左邊一列是每個傳遞參數的局部內存地址。
當子程序被調用時,輸入參數被復制到本地存儲器。子程序完成后,輸出參數從本地存儲器復制到指定的輸出參數地址。
以上屬于基礎內容,不明白的朋友可以去看一套plc視頻教程,更容易理解。本文來源:www.jcpeixun.com
?
審核編輯:ymf
評論
查看更多