read_rtc指令讀取的PLC日期bcd碼怎樣轉(zhuǎn)換成單個的ascⅱ碼
林慧玲
發(fā)布于2014-03-21 17:24
5
0
標(biāo)簽:
用read_rtc指令讀取plc實(shí)時時鐘,得到8個字節(jié)的bcd碼,現(xiàn)在需要將這8個字節(jié)日期bcd碼的前6個字節(jié)轉(zhuǎn)換成ascⅱ碼用于發(fā)送給微型打印機(jī)打印,假設(shè)讀取的前6個日期數(shù)據(jù)是13年11月27日23時47分56秒,分別存儲在以下數(shù)據(jù)區(qū)內(nèi):年13存在vb100中;月11存在vb101中;日27存在vb102中;時23存在vb103中;分47存在vb104中;秒56存在vb105中,怎樣將這6個字節(jié)的bcd碼數(shù)據(jù)轉(zhuǎn)換成單個的ascⅱ碼(就是說要將日期數(shù)據(jù)1,3,1,1,2,7,2,3,4,7,5,6,轉(zhuǎn)換成12個單獨(dú)的ascⅱ碼用于發(fā)送給微型打印機(jī)打?。鯓幼瞿?,
佳答案
這種轉(zhuǎn)換可以自己編程。數(shù)字(十進(jìn)制)0,1,2,3,4,...的ascⅱ碼(十六進(jìn)制)為30h,31h,32h,33h,34h,,,,,,。不難看出,兩者之間相差30h。這樣:
1、例如,年13存在vb100中,可以應(yīng)用移位等方法方法先從vb100的高四位(即十進(jìn)制1)取出后存入一字節(jié)單元的低四位中(即為00000001)。
2、將上述字節(jié)單元中的數(shù)值(即為00000001)與30h(即為00110000)相加,其后為00110001,這就是bcd碼1的ascii碼了,。
3、如法炮制,將應(yīng)用移位等方法方法先從vb100的低四位(即十進(jìn)制3)取出后存入一字節(jié)單元的低四位中(即為00000011)。與30h(即為00110000)相加,其后為00110011,這就是bcd碼3的ascii碼了,。
4、所謂的bcd碼就是用二進(jìn)制表示的十進(jìn)制數(shù),只是數(shù)字轉(zhuǎn)換ascii碼的編程是較簡單的,不需求人。關(guān)鍵就是一個將高四位與低四位的數(shù)值弄清即可。可以編制一個子程序,多次調(diào)用即可。