- 艾寶物聯(lián)IOBOV? ─ 工業(yè)無(wú)線(xiàn)測控專(zhuān)家
1、 數據傳送指令
數據傳送指令包括MOV(傳送)、SMOV(BCD碼移位傳送)、CML(取反傳送)、BMOV(數據塊傳送)、FMOV(多點(diǎn)傳送)、XCH(數據交換)。這里主要介紹MOV(傳送)指令。
傳送指令MOV將源操作數據傳送到指定目標,其指令代碼為FNC12,源操作數[S·]可取所有的數據類(lèi)型,即K、H、KnX、KnY、KnM、KnS、T、C、D、V、Z,其目標操作數[D·]為KnY、KnM、KnS、 T、C、D、V、Z。
如圖1所示,,當X0為ON時(shí),執行連續執行型指令,數據100被自動(dòng)轉換成二進(jìn)制數且傳送給D10,當X0變?yōu)?span >OFF時(shí),不執行指令,但數據保持不變;當X1為ON時(shí),T0當前值被讀出且傳送給D20;當X2為ON時(shí),數據100傳送給D30,定時(shí)器T20的設定值被間接指定為10秒,當M0閉合時(shí),T20開(kāi)始計時(shí);MOV(P)為脈沖執行型指令,當X5由OFF變?yōu)?span >ON時(shí)指令執行一次,(D10)的數據傳送給(D12),其它時(shí)刻不執行,當X5變?yōu)?span >OFF時(shí),指令不執行,但數據也不會(huì )發(fā)生變化;X3為ON時(shí),(D1、D0)的數據傳送給(D11、D10),當X4為ON時(shí),將(C235)的當前值傳送給(D21、D20)。注意:運算結果以32位輸出的應用指令、32位二進(jìn)制立即數及32位高速計數器當前值等數據的傳送,必須使用(D)MOV或(D)MOV(P)指令。
如圖2所示,可用MOV指令等效實(shí)現由X0~X3對Y0~Y3的順序控制。
2、比較指令
比較指令有比較(CMP)、區域比較(ZCP)兩種,CMP的指令代碼為FNC10,ZCP的指令代碼為FNC11,兩者待比較的源操作數[S·]均為K、 H、KnX、KnY、KnM、KnS、T、C、D、V、Z,其目標操作數[D·]均為Y、M、S。
CMP指令的功能是將源操作數[S1·]和[S2·]的數據進(jìn)行比較,結果送到目標操作元件[D·]中。在圖3中,當X0為ON時(shí),將十進(jìn)制數100與計數器C2的當前值比較,比較結果送到M0~M2中,若100>C2的當前值時(shí),M0為ON,若100=C2的當前值時(shí),M1為ON,
若100<C2的當前值時(shí),M2為ON。當X0為OFF時(shí),不進(jìn)行比較,M0~M2的狀態(tài)保持不變。
ZCP指令的功能是將一個(gè)源操作數[S·]的數值與另兩個(gè)源操作數[S1·]和[S2·]的數據進(jìn)行比較,結果送到目標操作元件[D·]中,源數據[S1·]不能大于[S2·]。在圖4中,當X1為ON時(shí),執行ZCP指令,將T2的當前值與10和150比較,比較結果送到M0~M2中,若10>T2的當前值時(shí),M0為ON,若10≤T2的當前值≤150時(shí),M1為ON,若150<T2的當前值時(shí),M2為ON。當X1為OFF時(shí),ZCP指令不執行,M0~M2的狀態(tài)保持不變。
3、加1指令和減1指令
加1指令INC和減1指令DEC的操作數均可取KnY、KnM、KnS、T、C、D、V、,它們不影響零標志、借位標志和進(jìn)位標志。INC的指令代碼為FNC24,DEC的指令代碼為FNC25。INC指令的功能是將指定的目標操作元件[D·]中二進(jìn)制數自動(dòng)加1,DEC指令的功能是將指定的目標操作元件[D·]中二進(jìn)制數自動(dòng)減1,
如圖5所示,當X0每次由OFF變?yōu)?span >ON時(shí),D20中的數自動(dòng)增加1,當X1每次由OFF變?yōu)?span >ON時(shí),D21中的數自動(dòng)減1。
若用連續執行型加1指令INC或連續執行型減1指令DEC,當條件成立時(shí),在每個(gè)掃描周期內指定的目標操作元件[D·]中數據要自動(dòng)加1或自動(dòng)減1。16位數據運算時(shí),+32767再加1就變?yōu)?span >-32768,-32768再減1就變?yōu)?span >+32767。32位數據運算時(shí),+2147483647再加1就變?yōu)?span >-2147483648,-2147483648再減1就變?yōu)?span >+2147483647。