『7x24小时有问必答』
更多精彩,点击关注“电工小青年”

导读:

在上一篇转换指令解析一里为大家介绍了字符串于其它数据格式转换的指令及其使用方法,本篇介绍十六进制与ASCII字符之间的转换。主要是ATH、HTA这两个指令。ASCII字符与字符串的区别是ASCII字符是不带长度字节的一串ASCII码序列,而字符串是带长度字节的一串ASCII码序列。

一、  所需软件及硬件

西门子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

三、  总结

今天讲的两个指令比较简单,大家多做练习,一定可以掌握。这类指令虽然不常用,但某些场合还是会应用到,所以希望大家能熟练使用,对今后的编程肯定会有帮助。
来源:技成培训网,作者:技成-何晓刚,转载请注明出处!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码