S7-200ASCII碼轉(zhuǎn)換
發(fā)布于2023-01-03 14:32
19
2
標(biāo)簽:ASCII碼轉(zhuǎn)換
S7-200轉(zhuǎn)換指令中的ITA、DTA、RTA是將16位整數(shù)、32位整數(shù)及浮點(diǎn)數(shù)轉(zhuǎn)換為ASCII的指令,梯形圖編程相似,如將16位整數(shù)1234轉(zhuǎn)換為ASCII碼的程序格式如圖3-77所示。
梯形圖中的IN為需要轉(zhuǎn)換的數(shù)據(jù),OUT為轉(zhuǎn)換結(jié)果存儲器起始地址。
FMT為轉(zhuǎn)換格式,長度1字節(jié),bit2~bit0用于指定小數(shù)點(diǎn)后的數(shù)據(jù)位數(shù);bit3用于指定小數(shù)點(diǎn)的表示形式;bit7~bit4用于浮點(diǎn)數(shù)轉(zhuǎn)換時的數(shù)據(jù)長度指定,具體如下。
bit2~bitO:小數(shù)點(diǎn)后的數(shù)據(jù)位數(shù)指定。可以表示的范圍為0~7,實(shí)際只能使用0~5;當(dāng)指定6、7時,全部ASCII作為空格處理。
bit3:小數(shù)點(diǎn)的ASCII碼顯示形式指定。bit3="1",小數(shù)點(diǎn)以","表示;bit3=“0”,小數(shù)點(diǎn)以“.”表示。
bit7~bit4:浮點(diǎn)數(shù)轉(zhuǎn)換時的ASCII字符長度指定,允許為3~15。即S7-200中規(guī)定最多只能轉(zhuǎn)換成15個ASCII字符,其中數(shù)據(jù)最大13位字符、符號1位字符、小數(shù)點(diǎn)1位字符。
例如:定義FMT為130,因?qū)?yīng)二進(jìn)制值為10000010,所以規(guī)定轉(zhuǎn)換后的數(shù)據(jù)長度為8字符,小數(shù)點(diǎn)后2位。
對于整數(shù)(16位)、雙整數(shù)(32位),bit7~bit4=0000,ASCII字符長度指定辦法如下。a.整數(shù)(16位)轉(zhuǎn)換為ASCII(ITA指令):數(shù)據(jù)范圍-32768~32767,數(shù)據(jù)占5位字符、符號占1位字符、小數(shù)點(diǎn)占1位字符,實(shí)際需要7位字符,由于每一ASCII字符需要占用1個字節(jié),因此,存儲器占用連續(xù)8字節(jié)長度(實(shí)際需要7字節(jié))。
b.雙整數(shù)(32位)轉(zhuǎn)換為ASCII(DTA指令):數(shù)據(jù)范圍-2147483648~2147483647,數(shù)據(jù)占10位字符、符號占1位字符、小數(shù)點(diǎn)占1位字符,實(shí)際需要12位字符,由于每一ASCII字符需要占用1個字節(jié),因此,存儲器占用連續(xù)12字節(jié)長度。
因此,對于圖3-77的程序,定義FMT為2,小數(shù)點(diǎn)后的數(shù)據(jù)為2位,小數(shù)點(diǎn)以“.”表示。因此,轉(zhuǎn)換后的數(shù)據(jù)應(yīng)為12.34對應(yīng)的ASCII碼“00 31 322E 333 34”(參見表3-5)。
S7-200轉(zhuǎn)換指令中的ATH、HTA是十六進(jìn)制數(shù)與ASCII碼間的轉(zhuǎn)換指令,梯形圖編程相似,ATH指令的程序格式如圖3-78所示。
梯形圖中的 ATH為 ASCII碼轉(zhuǎn)換成十六進(jìn)制數(shù)的指令(HTA:十六進(jìn)制數(shù)轉(zhuǎn)換成ASCII碼)。IN為需要轉(zhuǎn)換的數(shù)據(jù);OUT為轉(zhuǎn)換結(jié)果存儲器起始地址;LEN為轉(zhuǎn)換數(shù)據(jù)的長度,單位為字節(jié)。
對于圖3-78中的程序,假設(shè)VB40以后的連續(xù)8個字節(jié)存放的分別是ASCII碼“32 35、41、43、36、38、46、32",轉(zhuǎn)換成十六制數(shù)后為"35AC68F2"(參見表3-5)。
ATH、HTA指令編程需要注意如下兩點(diǎn)。
a.每次可以轉(zhuǎn)換的ASCII代碼數(shù)量不可以超過255個;
b. ASCIl碼必須為十六進(jìn)制數(shù)可以對應(yīng)的字符0~9、A~F(即表3-5中的代碼編號30~39、41~46,其余代碼為非法)。