西門子6ES7512-1DM03-0AB0簡(jiǎn)介
西門子PLC轉(zhuǎn)換指令
轉(zhuǎn)換指令是指對(duì)操作數(shù)的類型進(jìn)行轉(zhuǎn)換,包括數(shù)據(jù)的類型轉(zhuǎn)換、碼的類型轉(zhuǎn)換以及數(shù)據(jù)和碼之間的類型轉(zhuǎn)換。 |
一、數(shù)據(jù)類型轉(zhuǎn)換 |
(一)字節(jié)與整數(shù) 1、字節(jié)到整數(shù) BTI,字節(jié)轉(zhuǎn)換為整數(shù)指令。使能輸入有效時(shí),將字節(jié)輸入數(shù)據(jù)IN轉(zhuǎn)換成整數(shù)類型,并將結(jié)果送到OUT輸出。字節(jié)型是無(wú)符號(hào)的,所以沒有符號(hào)擴(kuò)展。 指令格式: BTI IN, OUT 例: BTI VB0, AC0 2、整數(shù)到字節(jié) ITB,整數(shù)轉(zhuǎn)換字節(jié)指令。使能輸入有效時(shí),將整數(shù)輸入數(shù)據(jù)IN轉(zhuǎn)換成字節(jié)類型,并將結(jié)果送到OUT輸出。輸入數(shù)據(jù)超出字節(jié)范圍(0~255)則產(chǎn)生溢出。 指令格式: ITB IN, OUT 例: ITB AC0, VB10 (二)整數(shù)與雙整數(shù) 1、雙整數(shù)到整數(shù) DTI,雙整數(shù)轉(zhuǎn)換為整數(shù)指令。使能輸入有效時(shí),將雙整數(shù)輸入數(shù)據(jù)IN轉(zhuǎn)換成整數(shù)類型,并將結(jié)果送到OUT輸出。輸入數(shù)據(jù)超出整數(shù)范圍則產(chǎn)生溢出。 指令格式: DTI IN, OUT 例: DTI AC0, VW20 2、整數(shù)到雙整數(shù) ITD,整數(shù)轉(zhuǎn)換為雙整數(shù)指令。使能輸入有效時(shí),將整數(shù)輸入數(shù)據(jù)IN轉(zhuǎn)換成雙整數(shù)類型(符號(hào)進(jìn)行擴(kuò)展),并將結(jié)果送到OUT輸出。 指令格式:ITD IN, OUT 例:ITD VW0, AC0 (三)雙整數(shù)與實(shí)數(shù) 1、實(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輸出。 指令格式: DTR IN, OUT 例: DTR AC0, VD100 圖2 雙整數(shù)到實(shí)數(shù) 圖3 雙整數(shù)到實(shí)數(shù) (四)整數(shù)與BCD碼 1、BCD碼到整數(shù) BCDI,BCD碼轉(zhuǎn)換為整數(shù)指令。使能輸入有效時(shí),將BCD碼輸入數(shù)據(jù)IN轉(zhuǎn)換成整數(shù)類型,并將結(jié)果送到OUT輸出。輸入數(shù)據(jù)IN的范圍為0~9999。 指令格式:BCDI OUT 例:BCDI AC0 ![]() 圖4 BCD碼到整數(shù) 2、整數(shù)到BCD碼 IBCD,整數(shù)轉(zhuǎn)換為BCD碼指令。使能輸入有效時(shí),將整數(shù)輸入數(shù)據(jù)IN轉(zhuǎn)換成BCD碼類型,并將結(jié)果送到OUT輸出。輸入數(shù)據(jù)IN的范圍為0~9999。 指令格式:IBCD OUT 例:IBCD AC0 ![]() 圖5 整數(shù)到BCD碼 (五)程序?qū)嵗?br data-filtered="filtered" style="overflow-wrap: break-word;"/> 模擬量控制程序中的數(shù)據(jù)類型轉(zhuǎn)換。將模擬量輸入端采樣值由整數(shù)轉(zhuǎn)換為雙整數(shù),然后由雙整數(shù)轉(zhuǎn)換為實(shí)數(shù),再除以一個(gè)比例因子得到plc可以處理的范圍內(nèi)的值。 圖6 程序?qū)嵗?/div> |
二、編碼和譯碼 |
1、編碼 ENCO,編碼指令。使能輸入有效時(shí),將字型輸入數(shù)據(jù)IN的有效位(值為1的位)的位號(hào)輸出到OUT所的字節(jié)單元的低4位。即用半個(gè)字節(jié)來對(duì)一個(gè)字型數(shù)據(jù)16位中的1位有效位進(jìn)行編碼。 指令格式: ENCO IN, OUT 例: ENCO AC0, VB0 以本指令為例,指令執(zhí)行情況如表所示。 圖7 編碼指令執(zhí)行結(jié)果 2、譯碼 DECO,譯碼指令。使能輸入有效時(shí),將字節(jié)型輸入數(shù)據(jù)IN的低4位所表示的位號(hào)對(duì)OUT所的字單元的對(duì)應(yīng)位置1,其他位置0。即對(duì)半個(gè)字節(jié)的編碼進(jìn)行譯碼來選擇一個(gè)字型數(shù)據(jù)16位中的1位。 指令格式: DECO IN, OUT 例: DECO VB0, AC0 圖8 譯碼指令執(zhí)行結(jié)果 |
三、七段碼 |
SEG,七段碼指令 使能輸入有效時(shí),將字節(jié)型輸入數(shù)據(jù)IN的低4位有效數(shù)字產(chǎn)生相應(yīng)的七段碼,并將其輸出到OUT所的字節(jié)單元。 |
四、字符串轉(zhuǎn)換 |
1、指令種類 2、指令介紹 下面僅以ASCII碼轉(zhuǎn)換16進(jìn)制指令為例說明字符串與其他數(shù)據(jù)類型之間的轉(zhuǎn)換。 ATH,ASCII碼轉(zhuǎn)換16進(jìn)制指令: 指令盒中有3個(gè)操作數(shù):IN,開始字符的字節(jié)地址,字節(jié)類型;LEN,字符串的長(zhǎng)度,字節(jié)類型,最大長(zhǎng)度為255;OUT,輸出目的開始字節(jié)地址,字節(jié)類型。使能輸入有效 時(shí),把從IN開始的長(zhǎng)度為L(zhǎng)EN的ASCII碼轉(zhuǎn)換為16進(jìn)制數(shù),并將結(jié)果送到OUT開始的字節(jié)進(jìn)行輸出。 3、程序?qū)嵗?/p> 以上面的指令為例,條指令的執(zhí)行結(jié)果如表所示,程序如圖所示。 圖9 指令A(yù)TH執(zhí)行結(jié)果 圖10 程序?qū)嵗?p style="text-align: center"> ![]() |