河北西門子S7-200SMART代理經(jīng)銷商
西門子S7-200 PLC整數(shù)轉(zhuǎn)換為ASCII碼指令I(lǐng)TA及應(yīng)用實例

整數(shù)轉(zhuǎn)換為ASCII碼指令ITA(Integer To ASCII)。指令格式如圖4-53所示,由圖可以看出,它有2個數(shù)據(jù)輸入端及1個輸出端:

圖4-53 整數(shù)轉(zhuǎn)換為ASCII碼指令
①IN:整數(shù)數(shù)據(jù)輸入。
②FMT:轉(zhuǎn)換精度或轉(zhuǎn)換格式(小數(shù)位的表示方式),數(shù)據(jù)類型為字節(jié)。
③OUT:連續(xù)8個輸出字節(jié)的首地址,數(shù)據(jù)類型為字節(jié)。
當(dāng)允許輸入EN有效時,把整數(shù)輸入數(shù)據(jù)IN,根據(jù)FMT的轉(zhuǎn)換精度,轉(zhuǎn)換成始終是8個字符的ASCII碼,并將結(jié)果送到首地址為OUT的8個連續(xù)字節(jié)存儲單元。
FMT的定義如下:

在FMT中,高4位必須是0,C為小數(shù)點的表示方式:C=0時,用小數(shù)點來分割整數(shù)和小數(shù);C=1時,用逗號來分割整數(shù)和小數(shù)。nnn表示小數(shù)的位數(shù),nnn=000~101,分別對應(yīng)0~5個小數(shù)位,小數(shù)部分的對位方式為右對齊。

【例】 指令:ITA VW10,VB100,10。表明FMT精度控制字為1010,即C=1,nnn=010時,即用逗號來分割整數(shù)和小數(shù),將數(shù)據(jù)IN的后兩位取做小數(shù)位,其他位作為整數(shù)位,在OUT( VB100)為首地址的8個字節(jié)中的表示方式如表4-19所示。
表4-19 經(jīng)FMT后的數(shù)據(jù)格式

注:表4119中()內(nèi)為ASCII碼所對應(yīng)的字符,經(jīng)過ITA指令轉(zhuǎn)換后所得為對應(yīng)字符的ASCII值。
十六進制數(shù)轉(zhuǎn)換為ASCII碼指令HTA(HEX TO ASCII)。指令格式如圖4-51所示,由圖可以看出,它有2個數(shù)據(jù)輸入端及1個輸出端:
①IN:十六進制數(shù)開始位的字節(jié)首地址。
②LEN:轉(zhuǎn)換位數(shù),字節(jié)型,大長度為255。
③OUT:輸出字節(jié)的首地址。
當(dāng)允許輸入EN有效時,把從輸入數(shù)據(jù)IN開始的長度為LEN位的十六進制數(shù),轉(zhuǎn)換成ASCII碼,并將結(jié)果送到首地址為OUT的字節(jié)存儲單元。
如果輸入數(shù)據(jù)中有非法的ASCII字符,則終止轉(zhuǎn)換操作,特殊繼電器SM1.7置1。
【例】 圖4-52是一個十六進制數(shù)轉(zhuǎn)換為ASCII碼指令編程的例子。當(dāng)I0.0接通時,從VB100開始的連續(xù)2個單元的十六進制數(shù)(24、56)被轉(zhuǎn)換成ASCII碼,依次存放到以VB200開始的連續(xù)單元中。

圖4-51 十六進制數(shù)轉(zhuǎn)換為ASCII碼指令
ASCII碼轉(zhuǎn)換為十六進制數(shù)指令ATH(ASCII TO HEX)
指令格式如圖4-49所示,由圖可以看出,它有2個數(shù)據(jù)輸入端及1個輸出端:

圖4-49 ASCII碼轉(zhuǎn)換為十六進制數(shù)指令
①IN:開始字符的字節(jié)首地址。
②LEN:字符串長度,字節(jié)型,大長度為255。
③OUT:輸出字節(jié)的首地址。
當(dāng)允許輸入EN有效時,把從輸入數(shù)據(jù)IN開始的長度為LEN的ASCII碼,轉(zhuǎn)換為十六進制數(shù),并將結(jié)果送到首地址為OUT的字節(jié)存儲單元。
如果輸入數(shù)據(jù)中有非法的ASCII字符,則終止轉(zhuǎn)換操作,特殊繼電器SM1.7置1。
【例】 圖4-50是一個ASCII碼轉(zhuǎn)換為十六進制數(shù)指令編程的例子。當(dāng)I0.0接通時,從VB10開始的連續(xù)3個單元的ASCII值為“3”、“5”、“8”(因為ASCII碼“0”的存儲值為16 #30即2#00110000,所以2#00110011表示ASCII碼“3”),轉(zhuǎn)換為十六進制數(shù)(358X),其中X表示該位數(shù)據(jù)不受這個指令的影響。轉(zhuǎn)換后的數(shù)據(jù)是從高位到低位依次存放到以VB20開始的連續(xù)單元中。
如果在PLC的輸出端上接數(shù)碼管,可應(yīng)用七段顯示碼指令,將輸入字節(jié)的低4位所對應(yīng)的數(shù)據(jù),直接顯示在數(shù)碼管上。指令格式如圖4-48所示。

圖4-48 七段顯示碼指令
當(dāng)允許輸入EN有效時,將字節(jié)型輸入數(shù)據(jù)IN的低4位對應(yīng)的七段顯示碼(0~F),輸出到OUT的字節(jié)單元。如果該字節(jié)單元是輸出繼電器字節(jié)QB,則可直接驅(qū)動數(shù)碼管。
影響允許輸出ENO正常工作的出錯條件為:SM4.3(運行時間)、0006(間接尋址)。
1)編碼指令ENCO( Encode)。編碼指令的功能是對字型輸入數(shù)據(jù)的低有效位的位號進行編碼后,送到輸出字節(jié)的低4位,指令格式如圖4-45所示。
在梯形圖中,編碼指令以功能框的形式編程,指令名稱為“ENCO”。當(dāng)允許輸入EN有效時,將字型輸入數(shù)據(jù)IN的低有效位(值為1的位)的位號(00~15)進行編碼,編碼結(jié)果送到由OUT字節(jié)的低4位。
影響允許輸出ENO正常工作的出錯條件為:SM4.3(運行時間)、0006(間接尋址)。
2)譯碼指令DECO( Decode)。譯碼指令的功能是將字節(jié)型輸入數(shù)據(jù)的低4位內(nèi)容譯成位號,并將輸出字的該位置1,其余位置0,指令格式如圖4-46所示。

圖4-45 編碼指令

圖4-46 譯碼指令
在梯形圖中,譯碼指令以功能框的形式編程,指令的名稱為“DECO”。當(dāng)允許輸入EN有效時,將字節(jié)型輸入數(shù)據(jù)IN的低4位的內(nèi)容譯成位號(00~15),且將由OUT字的該位置1,其余位置0。
影響允許輸出ENO正常工作的出錯條件為:SM4.3(運行時間)、0006(間接尋址)。
【例】 圖4-47是一個編碼指令的例子。為了只執(zhí)行一次編碼操作,EN端需受邊沿觸發(fā)指令控制,從運行結(jié)果可以看出VB0的值為3。

河北西門子S7-200SMART代理經(jīng)銷商