轉(zhuǎn)換指令是指對(duì)操作數(shù)的類(lèi)型進(jìn)行轉(zhuǎn)換,包括數(shù)據(jù)的類(lèi)型轉(zhuǎn)換、碼的類(lèi)型轉(zhuǎn)換以及數(shù)據(jù)和碼之間的類(lèi)型轉(zhuǎn)換。
一、數(shù)據(jù)類(lèi)型轉(zhuǎn)換
(一)字節(jié)與整數(shù)
1、字節(jié)到整數(shù)
BTI,字節(jié)轉(zhuǎn)換為整數(shù)指令。使能輸入有效時(shí),將字節(jié)輸入數(shù)據(jù)IN轉(zhuǎn)換成整數(shù)類(lèi)型,并將結(jié)果送到OUT輸出。字節(jié)型是無(wú)符號(hào)的,所以沒(méi)有符號(hào)擴(kuò)展。
使能流輸出ENO斷開(kāi)的出錯(cuò)條件:SM4.3(運(yùn)行時(shí)間);0006(間接尋址)。
指令格式:BTIIN,OUT
例:BTIVB0,AC0
2、整數(shù)到字節(jié)
ITB,整數(shù)轉(zhuǎn)換字節(jié)指令。使能輸入有效時(shí),將整數(shù)輸入數(shù)據(jù)IN轉(zhuǎn)換成字節(jié)類(lèi)型,并將結(jié)果送到OUT輸出。輸入數(shù)據(jù)超出字節(jié)范圍(0~255)則產(chǎn)生溢出。
移位指令影響的特殊存儲(chǔ)器位:SM1.1(溢出)。
使能流輸出ENO斷開(kāi)的出錯(cuò)條件:SM1.1(溢出);SM4.3(運(yùn)行時(shí)間);0006(間接尋址)。
指令格式:ITBIN,OUT
例:ITBAC0,VB10
(二)整數(shù)與雙整數(shù)
1、雙整數(shù)到整數(shù)
DTI,雙整數(shù)轉(zhuǎn)換為整數(shù)指令。使能輸入有效時(shí),將雙整數(shù)輸入數(shù)據(jù)IN轉(zhuǎn)換成整數(shù)類(lèi)型,并將結(jié)果送到OUT輸出。輸入數(shù)據(jù)超出整數(shù)范圍則產(chǎn)生溢出。
移位指令影響的特殊存儲(chǔ)器位:SM1.1(溢出)。
使能流輸出ENO斷開(kāi)的出錯(cuò)條件:SM1.1(溢出);SM4.3(運(yùn)行時(shí)間);0006(間接尋址)。
指令格式:DTIIN,OUT
例:DTIAC0,VW20
2、整數(shù)到雙整數(shù)
ITD,整數(shù)轉(zhuǎn)換為雙整數(shù)指令。使能輸入有效時(shí),將整數(shù)輸入數(shù)據(jù)IN轉(zhuǎn)換成雙整數(shù)類(lèi)型(符號(hào)進(jìn)行擴(kuò)展),并將結(jié)果送到OUT輸出。
使能流輸出ENO斷開(kāi)的出錯(cuò)條件:SM4.3(運(yùn)行時(shí)間);0006(間接尋址)。
指令格式:ITDIN,OUT
例:ITDVW0,AC0
(三)雙整數(shù)與實(shí)數(shù)
1、實(shí)數(shù)到雙整數(shù)

2、雙整數(shù)到實(shí)數(shù)
DTR,雙整數(shù)轉(zhuǎn)換實(shí)數(shù)指令。使能輸入有效時(shí),將雙整數(shù)輸入數(shù)據(jù)IN轉(zhuǎn)換成實(shí)型,并將結(jié)果送到OUT輸出。
使能流輸出ENO斷開(kāi)的出錯(cuò)條件:SM4.3(運(yùn)行時(shí)間);0006(間接尋址)。
指令格式:DTRIN,OUT
例:DTRAC0,VD100

(四)整數(shù)與BCD碼
1、BCD碼到整數(shù)
BCDI,BCD碼轉(zhuǎn)換為整數(shù)指令。使能輸入有效時(shí),將BCD碼輸入數(shù)據(jù)IN轉(zhuǎn)換成整數(shù)類(lèi)型,并將結(jié)果送到OUT輸出。輸入數(shù)據(jù)IN的范圍為0~9999。
指令格式:BCDIOUT
例:BCDIAC0

(五)程序?qū)嵗?/p>
模擬量控制程序中的數(shù)據(jù)類(lèi)型轉(zhuǎn)換。將模擬量輸入端采樣值由整數(shù)轉(zhuǎn)換為雙整數(shù),然后由雙整數(shù)轉(zhuǎn)換為實(shí)數(shù),再除以一個(gè)比例因子得到PLC可以處理的范圍內(nèi)的值。

1、編碼
ENCO,編碼指令。使能輸入有效時(shí),將字型輸入數(shù)據(jù)IN的低有效位(值為1的位)的位號(hào)輸出到OUT所的字節(jié)單元的低4位。即用半個(gè)字節(jié)來(lái)對(duì)一個(gè)字型數(shù)據(jù)16位中的1位有效位進(jìn)行編碼。
使能流輸出ENO斷開(kāi)的出錯(cuò)條件:SM4.3(運(yùn)行時(shí)間);0006(間接尋址)。
指令格式:ENCOIN,OUT
例:ENCOAC0,VB0
以本指令為例,指令執(zhí)行情況如表所示。

2、譯碼
DECO,譯碼指令。使能輸入有效時(shí),將字節(jié)型輸入數(shù)據(jù)IN的低4位所表示的位號(hào)對(duì)OUT所的字單元的對(duì)應(yīng)位置1,其他位置0。即對(duì)半個(gè)字節(jié)的編碼進(jìn)行譯碼來(lái)選擇一個(gè)字型數(shù)據(jù)16位中的1位。
使能流輸出ENO斷開(kāi)的出錯(cuò)條件:SM4.3(運(yùn)行時(shí)間);0006(間接尋址)。
指令格式:DECOIN,OUT

SEG,七段碼指令
使能輸入有效時(shí),將字節(jié)型輸入數(shù)據(jù)IN的低4位有效數(shù)字產(chǎn)生相應(yīng)的七段碼,并將其輸出到OUT所的字節(jié)單元。
四、字符串轉(zhuǎn)換
1、指令種類(lèi)
◆ASCII碼轉(zhuǎn)換16進(jìn)制指令
◆16進(jìn)制到ASCII碼
◆整數(shù)到ASCII碼
◆雙整數(shù)到ASCII碼
◆實(shí)數(shù)到ASCII碼
2、指令介紹
下面僅以ASCII碼轉(zhuǎn)換16進(jìn)制指令為例說(shuō)明字符串與其他數(shù)據(jù)類(lèi)型之間的轉(zhuǎn)換。
ATH,ASCII碼轉(zhuǎn)換16進(jìn)制指令:
指令盒中有3個(gè)操作數(shù):IN,開(kāi)始字符的字節(jié)地址,字節(jié)類(lèi)型;LEN,字符串的長(zhǎng)度,字節(jié)類(lèi)型,大長(zhǎng)度為255;OUT,輸出目的開(kāi)始字節(jié)地址,字節(jié)類(lèi)型。使能輸入有效時(shí),把從IN開(kāi)始的長(zhǎng)度為L(zhǎng)EN的ASCII碼轉(zhuǎn)換為16進(jìn)制數(shù),并將結(jié)果送到OUT開(kāi)始的字節(jié)進(jìn)行輸出。
3、程序?qū)嵗?/p>
以上面的指令為例,條指令的執(zhí)行結(jié)果如表所示,程序如圖所示。
