安慶西門子6ES7972-0BB12-0XA0
安慶西門子6ES7972-0BB12-0XA0
⑤ 多主站系統(tǒng):總線上連有多個(gè)主站。這些主站與各自從站構(gòu)成相互獨(dú)立的子系統(tǒng)。每個(gè)子系統(tǒng)包括一個(gè)DPMI.的若干從站及可能的DPM2設(shè)備。任何一個(gè)主站均可讀取DP從站的輸入/輸出映象,但只有一個(gè)DP主站允許對(duì)DP從站寫入數(shù)據(jù)。
子程序 子程序返回指令 子程序調(diào)用指令 (CALL) 把程序控制權(quán)交給子程序 (n) 可以帶 參數(shù)或不帶參數(shù)調(diào)用子程序 通過(guò)選擇 Edit>Insert> Subroutine 加入一個(gè)子程序 有條件子程序返回指令 (CRET) 根據(jù)該指令前面的邏輯關(guān)系 決 定是否終止子程序 ( ) 操作數(shù) 無(wú) 數(shù)據(jù)類型 無(wú) 執(zhí)行完子程序以后 控制程序回到子程序調(diào)用指令的下一條指 令 圖 9–55 是調(diào)用子程序并從子程序返回的舉例 使 ENO = 0 的出錯(cuò)條件是 SM4.3 (運(yùn)行時(shí)間) 0008 (zui多子 程序嵌套超界) 注意 Micro/WIN32 為每個(gè)子程序自動(dòng)加入返回指令 子程序的嵌套深度zui多是 8 層 盡管子程序不禁止遞歸調(diào)用 (自己調(diào)用自己) 但使用時(shí)要慎重 當(dāng)有一個(gè)子程序被調(diào)用時(shí) 系統(tǒng)會(huì)保存當(dāng)前的邏輯堆棧 置棧頂值為 1 堆棧的其他值為零 把控 制交給被調(diào)用的子程序 當(dāng)子程序完成之后 恢復(fù)邏輯堆棧 把控制權(quán)交還給調(diào)用程序 因?yàn)槔奂悠骺稍谥鞒绦蚝妥映绦蛑g自由傳遞 所以在子程序調(diào)用時(shí) 累加器的值既不保存也不恢 復(fù) 帶參數(shù)調(diào)用子程序 子程序可能包含要傳遞的參數(shù) 參數(shù)在子程序的局部變量表中定義 (見(jiàn)圖 9-53) 參數(shù)必須有一個(gè)符 號(hào)名 (zui多 8 個(gè)字符) 變量類型和數(shù)據(jù)類型 子程序zui多可以傳遞 16 個(gè)參數(shù) 局部變量表中的變量類型區(qū)定義變量是傳到子程序 (IN) 傳入和傳出子程序 (IN_OUT) 或者傳出子 程序 (OUT) 參數(shù)類型的特征如下所述 l IN 參數(shù)傳入子程序 如果參數(shù)是直接尋址 (如 VB10) 位置的值被傳遞到子程序 如果參數(shù)是間接尋址 (如 *AC1) 指針位置的值被傳入子程序 如果參數(shù)是常數(shù) (如 16#1234) 或者一個(gè)地址 (VB100) 常數(shù)或地址的值被傳入子程序 l IN-OUT: 參數(shù)位置的值被傳到子程序 從子程序的結(jié)果值被返回到同樣地址 常數(shù) (如 16#1234) 和地址 (如 &VB100) 不允許作為輸入/輸出參數(shù) l OUT: 從子程序來(lái)的結(jié)果值被返回到參數(shù)位置 常數(shù) (如 16#1234) 和地址 (如 &VB100) 不允許作為輸出參數(shù) l TEMP: 任何局部存儲(chǔ)器都不能用來(lái)傳遞參數(shù) 只能在子程序內(nèi)部暫時(shí)存貯數(shù)據(jù)