西門子益陽(中國)總代理
(2)16進制數(shù)與ascii碼轉(zhuǎn)換指令 有hex→ascii轉(zhuǎn)換指令asci(fnc82)、ascii→hex轉(zhuǎn)換指令hex(fnc83)兩條指令
hex→ascii轉(zhuǎn)換指令asci(p)的功能是將源操作數(shù)[s.]中的內(nèi)容(十六進制數(shù))轉(zhuǎn)換成ascii碼放入目標操作數(shù)[d.]中。如圖3- 79所示,n表示要轉(zhuǎn)換的字符數(shù)(n=1~256)。m8161控制采用16位模式還是8位模式。16位模式時每4個hex占用1個數(shù)據(jù)寄存器,轉(zhuǎn)換后每兩個ascii碼占用一個數(shù)據(jù)寄存器;8位模式時,轉(zhuǎn)換結(jié)果傳送到[d.]低8位,其高8位為0。plc運行時m8000為on,m8161為off,此時為16位模式。當x0為on則執(zhí)行asci。如果放在d100中的4個字符為oabch則執(zhí)行后將其轉(zhuǎn)換為ascii碼送入d200和d201中,d200高位放a的ascii碼41h,低位放0的ascii碼30h,d201則放bc的ascii碼,c放在高位。該指令的源操作數(shù)可取所有數(shù)據(jù)類型,目標操作數(shù)可取kny、knm、kns、t、c和d。只有16位運算,占用7個程序步。
ascii→hex指令hex(p)的功能與asci指令相反,是將ascii碼表示的信息轉(zhuǎn)換成16進制的信息。如圖3-80所示,將源操作數(shù)d200~d203中放的ascii碼轉(zhuǎn)換成16進制放入目標操作數(shù)d100和d101中。只有16位運算,占7個程序步。源操作數(shù)為k、h、knx、 kny、knm、kns、t、c和d,目標操作數(shù)為 kny、knm、kns、t、c、d、v和z。
(4)校驗碼指令 校驗碼指令ccd(p)(fnc84)的功能是對一組數(shù)據(jù)寄存器中的16進制數(shù)進行總校驗和奇偶校驗。如圖3-81所示,是將源操作數(shù)[s.]的d100~d102共6個字節(jié)的8位二進制數(shù)求和并“異或,結(jié)果分別放在目標操作數(shù)d0和d1中。通信過程中可將數(shù)據(jù)和、“異或結(jié)果隨同發(fā)送,對方接收到信息后,先將傳送的數(shù)據(jù)求和并“異或,再與收到的和及“異或結(jié)果比較,以此判斷傳送信號的正確與否。源操作數(shù)可取knx、 kny、knm、kns、t、c和d,目標操作數(shù)可取knm、kns、t、c和d,n可用k、h或d,n=1~256。為16位運算指令,占7個程序步。
以上prun、asci、hex、ccd常應用于串行通信中,配合rs指令。
(5)模擬量輸入指令 模擬量輸入指令vrrd(p)(fnc85)是用來對fx2n-8av-bd模擬量功能擴展板中的電位器數(shù)值進行讀操作。如圖3-82所示,當x0為on時,讀出fx2n-8av-bd中0號模擬量的值(由k0決定),將其送入d0作為t0的設定值。源操作數(shù)可取k、h,它用來模擬量口的編號,取值范圍為0~7;目標操作數(shù)可取kny、knm、kns、t、c、d、v和z。該指令只有16位運算,占5個程序步。
(6)模擬量開關設定指令 模擬量開關設定指令vrsc(p)(fnc86)的作用是將fx-8av中電位器讀出的數(shù)四舍五入整量化后以0~10之間的整數(shù)值存放在目標操作數(shù)中。它的源操作數(shù)[s.]可取k和h,用來模擬量口的編號,取值范圍為0~7;目標操作數(shù)[d.]的類型與vrrd指令相同。該指令為16位運算,占9個程序步。