- 艾寶物聯IOBOV? ─ 工業無線測控專家
數據處理指令含批復位指令、編、譯碼指令及平均值計算等指令。其中批復位指令可用于數據區的初始化,編、譯碼指令可用于字元件中某一置 1 位的位碼的編譯?,F擇要介紹如下。
(1) 區間復位指令
該指令的助記符、指令代碼、操作數范圍、程序步如表所示。
區間復位指令的要素表
指令名稱 |
助記符 |
指令代碼位數 |
操作數范圍 |
程序步 |
|
D1 ( . ) |
D2 ( . ) |
||||
區間復位 |
ZRST ZRST(P) |
FNC40 ◥ (16) |
T 、 M 、 S 、 T 、 C 、 D (D1 ≤ D2) |
ZRST 、 ZRSTP…5 步 |
|
區間復位指令也稱為成批復位指令,使用如圖所示。當 M8022 由 OFF → ON 時,區間復位指令執行。位元件 M500~M599 成批復位、字元件 C235~C255 成批復位、狀態元件 S0~S127 成批復位。
目標操作數 [D1] 和 [D2] 指定的元件應為同類元件, [D1] 指定的元件號應小于等于 [D2] 指定的元件號。若 [D1] 的元件號大于 [D] 的元件號,則只有 [D1] 指定的元件被復位。
該指令為 16 位處理,但是可在 [D1][D2] 中指定 32 位計數器。不過不能混合指定,即不能在 [D1] 中指定 16 位計數器,在 [D2] 中指定 32 位計數器。
圖 8-23 ZRST 區間復位指令使用說明
(2) 解碼指令
該指令的助記符、指令代碼、操作數范圍、程序步如表所示。
解碼指令的要素表
指令名稱 |
助記符 |
指令代碼位數 |
操作數范圍 |
程序步 |
||
S ( . ) |
D ( . ) |
n |
||||
解碼 |
DECO DECO(P) |
FNC38 ◥ (16) |
K 、 H X 、 Y 、 M 、 S T 、 C 、 D 、 V 、 Z |
Y 、 M 、 S T 、 C 、 D 、 |
K 、 H 1≤n≤ 8 |
DECO 、 DECOP…7 步 |
( a )當 [D] 是位元件時 , 以源 [S] 為首地址的 n 位連續的位元件所表示的十進制碼值為 Q , DECO 指令把以 [D] 為首地址目標元件的第 Q 位 ( 不含目標元件位本身 ) 置 1 ,其他位置 0 。說明如圖所示 , 源數據 Q=20+21=3, 因此從 M10 開始的第 3 位 M13 為 1 。當源數據 Q 為 0, 則第 0 位 ( 即 M10) 為 1 。
若 n=0 時,程序不執行; n=0~8 以外時,出現運算錯誤。若 n=8 時, [D] 位數為 28=256 。驅動輸入 OFF 時,不執行指令,上一次解碼輸出置 1 的位保持不變。
若指令是連續執行型,則在各個掃描周期都執行,必須注意。
( b )當 [D] 是字元件時,以源 [S] 所指定字元件的低 n 位所表示的十進制碼 Q , DECO 指令把以 [D] 所指定目標字元件的第 Q 位(不含最低位)置 1 ,其他位置 0 。說明如圖 8-24 ( b )所示,源數據 Q=20+21=3 ,因此 D1 的第 3 位為 1 。當源數據為 0 時,第 0 位為 1 。
若 n=0 時,程序不執行; n=0~4 以外時,出現運算錯誤。若 n=4 時, [D] 位數為 24=16 。驅動輸入 OFF 時,不執行指令,上一次解碼輸出置 1 的位保持不變。
DECO 指令應用如圖所示,根據 D0 所存儲的數值,將 M 組合元件的同一地址號接通。在 D0 中存儲 0~15 的數值。取 n=K4 ,則與 D0 ( 0~15 )的數值對應, M0~M15 有相應 1 點接通。
n 在 K1~K8 間變化,則可以與 0~255 的數值對應。但是為此解碼所需的目標的軟元件范圍被占用,務必要注意,不要一其他控制重復使用。
(3) 編碼指令
該指令的助記符、指令代碼、操作數范圍、程序步如表所示。
編碼指令的要素表
指令名稱 |
助記符 |
指令代碼位數 |
操作數范圍 |
程序步 |
||
S ( . ) |
D ( . ) |
n |
||||
編碼 |
ENCO ENCO(P) |
FNC42 ◥ (16) |
X 、 Y 、 M 、 S T 、 C 、 D 、 V 、 Z |
T 、 C 、 V 、 Z 、 D 、 |
K 、 H 1≤n≤ 8 |
ENCO 、 ENCOP…7 步 |
( a )當 [S] 是位元件時,以源 [S] 為首地址、長度為 2n 的位元件中,最高置 1 的位置被存放到目標 [D] 所指定的元件中去, [D] 中數值的分為由 n 確定。說明如圖 8-26 ( a )所示,源元件的長度為 2n=23=8 位 M10~M17 ,其最高置 1 位是 M13 即第 3 位。將“ 3 ”位置數(二進制)存放到 D10 的低 3 位中。
當源數的第一個(即第 0 位)位元件為 1 ,則 [D] 中存放 0 。當源數中無 1 ,出現運算錯誤。
若 n=0 時,程序不執行; n=1~8 以外時,出現運算錯誤。若 n=8 時, [S] 位數為 28=256 。驅動輸入 OFF 時,不執行指令,上一次編碼輸出保持不變。
若指令是連續執行型,則在各個掃描周期都執行,必須注意。
( b )當 [S] 是字元件時,在其可讀長度為 2n 位中,最高置 1 的位被存放到目標 [D] 所指定的元件中去, [D] 中的數值的范圍由 n 確定。說明如圖 8-26 ( b )所示,源字元件的可讀長度為 2n=23=8 位,其最高置 1 位是第 3 位。將“ 3 ”位置數(二進制)存放到 D1 的低 3 位中。
當源數的第一個(即第 0 位)位元件為 1 ,則 [D] 中存放 0 。當源數中無 1 ,出現運算錯誤。
若 n=0 時,程序不執行; n=1~4 以外時,出現運算錯誤。若 n=4 時, [S] 位數為 24=16 。驅動輸入 OFF 時,不執行指令,上一次編碼輸出保持不變。
若指令是連續執行型,則在各個掃描周期都執行,必須注意。