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