西門子S7-200SMART PLC轉(zhuǎn)換指令用法解析
王曾
發(fā)布于2023-04-24 10:46
164
6
標(biāo)簽:西門子PLC
導(dǎo)讀:
在上一篇轉(zhuǎn)換指令解析一里為大家介紹了字符串于其它數(shù)據(jù)格式轉(zhuǎn)換的指令及其使用方法,本篇介紹十六進(jìn)制與ASCII字符之間的轉(zhuǎn)換。主要是ATH、HTA這兩個(gè)指令。ASCII字符與字符串的區(qū)別是ASCII字符是不帶長(zhǎng)度字節(jié)的一串ASCII碼序列,而字符串是帶長(zhǎng)度字節(jié)的一串ASCII碼序列。 免費(fèi)試學(xué)三菱/西門子PLC教程
一、 所需軟件及硬件
西門子200SMART編程軟件V2.7版,200SMART ST30 CPU一臺(tái),通信網(wǎng)線一條。
二、 轉(zhuǎn)換指令含義及用法
1. 十六進(jìn)制轉(zhuǎn)換為ASCII字符
該指令的形式及在指令列表中的位置如下圖1所示:
圖1
HTA指令是將從輸入字節(jié)IN開始的十六進(jìn)制數(shù)轉(zhuǎn)化為從OUT開始的ASCII字符,轉(zhuǎn)換的最大數(shù)目為255,超出該長(zhǎng)度指令將會(huì)報(bào)錯(cuò)。比如VW100里的16進(jìn)制數(shù)為16#AB85,占兩個(gè)字節(jié),轉(zhuǎn)換為ASII字符后放在以VB200為首字節(jié)的地址區(qū)里,那么一共占用了四個(gè)字節(jié),VB200到VB203,分別存儲(chǔ)“A”、“B”、“8”、“5”。由此可見(jiàn)轉(zhuǎn)換后ASCII字符序列所占用的字節(jié)數(shù)是轉(zhuǎn)換前16進(jìn)制數(shù)所占用字節(jié)數(shù)的2倍,因?yàn)橐粋€(gè)16進(jìn)制數(shù)占用半個(gè)字節(jié),而一個(gè)字符占用1個(gè)字節(jié)。轉(zhuǎn)換后的結(jié)果如下圖2所示:
圖2
2. ASCII字符轉(zhuǎn)換為十六進(jìn)制
該指令的形式及在指令列表中的位置如下圖3所示:
圖3
ATH指令是將長(zhǎng)度為 LEN、從 IN 開始的 ASCII 字符轉(zhuǎn)換為從 OUT 開始的十六進(jìn)制數(shù)??赊D(zhuǎn)換的最大 ASCII 字符數(shù)為 255 個(gè)字符。需要注意的是,該指令可轉(zhuǎn)換的ASCII有效字符為數(shù)字0-9(16進(jìn)制30-39)及大寫的字母A-F(16進(jìn)制41-46)。若超出這個(gè)范圍指令將報(bào)錯(cuò)。比如VB300至VB303這四個(gè)字節(jié)里分別存放了ASCII字符“C”、“D”、“6”、“9”,執(zhí)行完ATH指令,VW310中的數(shù)值為16#CD69,與HTA指令相反,轉(zhuǎn)換后的結(jié)果如下圖4所示:
圖4
三、 總結(jié)
今天講的兩個(gè)指令比較簡(jiǎn)單,大家多做練習(xí),一定可以掌握。這類指令雖然不常用,但某些場(chǎng)合還是會(huì)應(yīng)用到,所以希望大家能熟練使用,對(duì)今后的編程肯定會(huì)有幫助。