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