西门子200SMART编程软件V2.7版,200SMART ST30 CPU一台,通信网线一条。
1. 十六进制转换为ASCII字符
该指令的形式及在指令列表中的位置如下图1所示:
图1
HTA指令是将从输入字节IN开始的十六进制数转化为从OUT开始的ASCII字符,转换的***大数目为255,超出该长度指令将会报错。比如VW100里的16进制数为16#AB85,占两个字节,转换为ASII字符后放在以VB200为首字节的地址区里,那么一共占用了四个字节,VB200到VB203,分别存储“A”、“B”、“8”、“5”。由此可见转换后ASCII字符序列所占用的字节数是转换前16进制数所占用字节数的2倍,因为一个16进制数占用半个字节,而一个字符占用1个字节。转换后的结果如下图2所示:
图2
2. ASCII字符转换为十六进制
该指令的形式及在指令列表中的位置如下图3所示:
图3
ATH指令是将长度为 LEN、从 IN 开始的 ASCII 字符转换为从 OUT 开始的十六进制数。可转换的***大 ASCII 字符数为 255 个字符。需要注意的是,该指令可转换的ASCII有效字符为数字0-9(16进制30-39)及大写的字母A-F(16进制41-46)。若超出这个范围指令将报错。比如VB300至VB303这四个字节里分别存放了ASCII字符“C”、“D”、“6”、“9”,执行完ATH指令,VW310中的数值为16#CD69,与HTA指令相反,转换后的结果如下图4所示:
图4
今天讲的两个指令比较简单,大家多做练习,一定可以掌握。这类指令虽然不常用,但某些场合还是会应用到,所以希望大家能熟练使用,对今后的编程肯定会有帮助。
来源:技成培训网,作者:技成-何晓刚,转载请注明出处!