西門子以太網通訊處理器
異步指令
簡介
在程序處理過程中,同步和異步指令有著顯著不同。
“同步”和“異步”屬性與指令調用與執行間的時間順序相關。
以下情況適用于同步指令:同步指令調用結束時,指令執行也結束。
而異步指令,則情況有所不同:異步指令調用結束時,異步指令的執行不一定結束。這也
就意味著,異步指令的執行可以跨多次調用。在 CPU 中,異步指令的執行與循環用戶程
序同時執行。異步指令會在 CPU 中生成作業進行處理。
異步指令通常用于數據的傳輸(模塊的數據記錄、通信數據、診斷數據)。
西門子以太網通訊處理器
同步/異步指令之間的不同之處
下圖顯示了異步指令和同步指令處理的不同之處。在該圖中,指令完成之前(如,*傳
輸數據記錄),異步指令指令調用了五次。
使用同步指令,在每次調用中全面執行該指令。
并行處理異步指令作業
CPU 可并行執行多個異步指令作業。在以下情況下,CPU 將并行執行多個作業:
●
同時調用多個異步指令作業。
●
未超出指令可并行運行的大作業數量。
下圖顯示了兩個 WRREC 指令作業的并行處理。在該圖中,在一個特定的周期內并行執
行這兩個指令。
指令作業的調用分配
要跨多個調用執行一個指令,CPU 需向該指令正在運行的作業分配一個后續調用。
CPU 可通過以下兩種方式為作業分配一個調用,具體取決于指令的類型:
●
通過指令的背景數據塊(“SFB”類型)
●
使用指令的輸入參數標識該作業。在異步指令的執行過程中,這些輸入參數必須與執
行過程中的各調用相匹配。
示例:通過輸入參數 LOW_LIMIT、UP_LIMIT、COUNT、ATTRIB 和 SRCBLK.,標
識指令作業“Create_DB”