簡介
在程序執(zhí)行過程中,同步和異步指令有著顯著不同。
“同步”和“異步”屬性與指令調(diào)用與執(zhí)行間的時間順序相關(guān)。
以下情況適用于同步指令:同步指令調(diào)用完成時,指令執(zhí)行也完成。
而異步指令,則情況有所不同:異步指令調(diào)用完成時,異步指令的執(zhí)行不一定完成。這也就意味著,異步指令的執(zhí)行可以跨多次調(diào)用。在 CPU 中,異步指令的執(zhí)行與用戶程序循環(huán)同時進(jìn)行。異步指令在 CPU 中生成待處理的作業(yè)。
異步指令通常用于傳輸數(shù)據(jù)(例如,模塊的數(shù)據(jù)記錄、通信數(shù)據(jù)、診斷數(shù)據(jù))。
同步/ 異步指令之間的不同之處
下圖顯示了異步指令和同步指令處理的不同之處。在該圖中,CPU 在指令執(zhí)行完成(如,完成傳輸數(shù)據(jù)記錄)之前,調(diào)用該異步指令五次。
對于同步指令,每次調(diào)用時都會完全執(zhí)行。

① 第一次調(diào)用異步指令,開始執(zhí)行
② 中間調(diào)用異步指令,繼續(xù)執(zhí)行
③ 最后一次調(diào)用異步指令,執(zhí)行完成
④ 每次調(diào)用后,作業(yè)會完全通過同步指令進(jìn)行處理。
完全處理的作業(yè)的持續(xù)時間
異步指令作業(yè)的并行處理
CPU 可同時執(zhí)行多個異步指令作業(yè)。在以下情況下,CPU 將并行執(zhí)行多個作業(yè):
● 用于異步指令的作業(yè)會啟動,而該指令的其它作業(yè)仍在運(yùn)行中。
● 但不超出該指令可同時運(yùn)行的作業(yè)最大數(shù)目。
下圖顯示了 WRREC 指令中兩個作業(yè)的并行處理。在一段時間內(nèi),兩個指令同時執(zhí)行。

為作業(yè)分配指令調(diào)用
要跨多個調(diào)用執(zhí)行一個指令,CPU 需向該指令正在運(yùn)行的作業(yè)唯一指定一個后續(xù)調(diào)用。
CPU 可通過以下兩種方式為作業(yè)分配一個調(diào)用,具體取決于指令的類型:
● 使用指令的背景數(shù)據(jù)塊(“SFB” 類型)
● 使用指令的作業(yè)標(biāo)識輸入?yún)?shù)。在異步指令的執(zhí)行過程中,這些輸入?yún)?shù)必須與執(zhí)行過程中的各調(diào)用相匹配。
示例:“Create_DB” 指令的作業(yè)由輸入?yún)?shù) LOW_LIMIT、UP_LIMIT、COUNT、ATTRIB 和 SRCBLK 標(biāo)識
下表列出了標(biāo)識指令的輸入?yún)?shù)。


異步指令的狀態(tài)
異步指令通過塊參數(shù) STATUS/RET_VAL 和 BUSY 顯示指令的狀態(tài)。有些異步指令也會使用塊參數(shù) DONE 和 ERROR 顯示。
下圖顯示了兩個異步指令 WRREC 和 CREATE_DB 的執(zhí)行

① 輸入?yún)?shù) REQ 用于啟動作業(yè),執(zhí)行異步指令。
② 輸出參數(shù) DONE 用于指示該作業(yè)已完成且無錯誤。
③ 輸出參數(shù) BUSY 用于指示作業(yè)是否正在執(zhí)行。BUSY =1 時,為該異步指令分配資
源。BUSY = 0 時,未分配資源。
④ 輸出參數(shù) ERROR 用于指示發(fā)生了錯誤。
⑤ 輸出參數(shù) STATUS/RET_VAL 用于提供有關(guān)作業(yè)執(zhí)行的狀態(tài)信息。發(fā)生錯誤后,輸出參數(shù) STATUS/RET_VAL 用于接收錯誤信息。
資源的使用
異步指令在執(zhí)行過程中將占用 CPU 中的資源。根據(jù) CPU 類型和指令的不同,資源的使用具有一定限制。CPU 可同時執(zhí)行最大數(shù)目的異步指令作業(yè)。在作業(yè)成功完成后或在出錯后,這些資源將再次可用。
示例:對于 RDREC 指令,S7-1500 CPU 可以并行處理最多 20 個作業(yè)。
如果超出指令的最大并行作業(yè)數(shù)量,則會出現(xiàn)以下情況:
● 該指令將在塊參數(shù) STATUS 中返回錯誤代碼 80C3(資源不足)。
● CPU 將停止執(zhí)行作業(yè),直至資源再次可用。
說明
低層級的異步指令
某些異步指令可使用一個或多個低層級的異步指令進(jìn)行處理。下表列出了這種相關(guān)性。
請注意,每條級別較低的指令通常占用指令資源池中的一個資源。
審核編輯:湯梓紅
-
plc
+關(guān)注
關(guān)注
5052文章
14831瀏覽量
488802 -
cpu
+關(guān)注
關(guān)注
68文章
11339瀏覽量
226026 -
指令
+關(guān)注
關(guān)注
1文章
624瀏覽量
37679
原文標(biāo)題:PLC1500異步指令
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機(jī)器人及PLC自動化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
MODBUS轉(zhuǎn)PROFINET網(wǎng)關(guān)臺達(dá)變頻器接入1500
基于MicroLogix 1500的PLC操作應(yīng)用
PLC1500地址分配
同步/ 異步指令之間的不同之處
1500PLC的通信知識
MODBUS轉(zhuǎn)PROFINE網(wǎng)關(guān)接入西門子PLC1500 PROFINET網(wǎng)絡(luò)的使用方法
PLC1500異步指令
評論