说明
使用指令“ATH”将 IN 输入参数中指定的 ASCII 字符串转换为十六进制数。转换结果输出到 OUT 输出参数中。
使用 IN 参数 (ASCII) 处的指针,可引用以下数据类型:STRING, WSTRING, CHAR, BYTE, Array of CHAR, Array of BYTE, WCHAR, Array of WCHAR, Array of WORD。
使用 OUT 参数(十六进制)处的指针,可引用以下数据类型:Array of CHAR, Array of BYTE, Array of WORD, STRING, BYTE, CHAR, WORD, INT, DWORD, DINT, SINT, USINT, UINT, UDINT。以下数据类型仅限于 S7-1500:Array of WCHAR, WSTRING, WCHAR, ULINT, LINT, LWORD
通过参数 N,可指定待转换 ASCII 字符的数量。最多可转换 32767 个有效 ASCII 字符。只能解释数字“0”到“9”、大写字母“A”到“F”以及小写字母“a”到“f”。所有其它字符都将转换为 0。
由于 ASCII 字符为 8 位,而十六进制数只有 4 位,所以输出字长度仅为输入字长度的一半。ASCII 字符将按照读取时的顺序装换并保存在输出中。如果 ASCII 字符数为奇数,则最后转换的十六进制数右侧的半个字节将以“0”进行填充。
参数
下表列出了“ATH”指令的参数:
参数 |
声明 |
数据类型 |
存储区 |
说明 |
---|---|---|---|---|
IN |
Input |
VARIANT |
D、L |
指向 ASCII 字符串的指针 |
N |
Input |
INT |
I、Q、M、D、L 或常量 |
待转换的 ASCII 字符数 |
RET_VAL |
Return |
WORD |
I、Q、M、D、L |
指令的状态 |
OUT |
Output |
VARIANT |
I、Q、M、D、L |
十六进制数 |
ASCII 字符和十六进制值
下表显示了 ASCII 字符及其相对应的十六进制值:
ASCII 字符 |
ASCII 编码的十六进制值 |
十六进制数 |
---|---|---|
"0" |
30 |
0 |
"1" |
31 |
1 |
"2" |
32 |
2 |
"3" |
33 |
3 |
"4" |
34 |
4 |
"5" |
35 |
5 |
"6" |
36 |
6 |
"7" |
37 |
7 |
"8" |
38 |
8 |
"9" |
39 |
9 |
"A" |
41 |
A |
"B" |
42 |
B |
"C" |
43 |
C |
"D" |
44 |
D |
"E" |
45 |
E |
"F" |
46 |
F |
示例
下表列出了 ASCII 字符串转换为十六进制数的示例:
IN 的数据类型 |
IN |
N |
OUT |
ENO 状态 |
---|---|---|---|---|
STRING, WSTRING |
'0a23' |
4 |
|
1 |
STRING, WSTRING |
‘123aFx1a23’ |
10 |
|
0 |
STRING, WSTRING |
‘a23’ |
3 |
WORD#16#A230 |
1 |
STRING, WSTRING |
‘0a23’ |
4 |
|
1 |
STRING, WSTRING |
‘aFbE’ |
1 |
|
1 |
STRING, WSTRING |
‘0a23’ |
4 |
|
1 |
STRING, WSTRING |
‘123aFC1a23’ |
10 |
|
1 |
ArrayOfCHAR, ArrayOfWCHAR |
[‘a’, ‘B’, ‘E’, ‘3’] |
4 |
WORD#16#ABE3 |
1 |
ArrayOfBYTE |
[16#39, 16#32, 16#35] |
3 |
WORD#16#9250 |
1 |
ArrayOfWORD |
[16#1234, 16#0032, 16#0031, 16#0000] |
3 |
WORD#16#0210 |
0 |
ArrayOfWORD |
[16#0031, 16#0032, 16#0033, 16#0034] |
4 |
WORD#16#1234 |
1 |
ArrayOfWORD |
[16#AB31, 16#32AF, 16#4333, 16#0034] |
4 |
WORD#16#0004 |
0 |
ArrayOfWORD |
[16#0031, 16#0032, 16#0033, 16#0034] |
4 |
[16#1234, 16#0000, 16#0000, 16#0000] |
1 |
ArrayOfWORD |
[16#0034, 16#0035, 16#0036, 16#0037, 16#0041, 16#0042, 16#0043, 16#0044] |
8 |
DWORD#16#4567_ABCD |
1 |
- ASCII
+关注
关注
5文章
170浏览量
34881 - 十六进制
+关注
关注
2文章
31浏览量
37449
原文标题:博途功能 ATH: 将 ASCII 字符串转换为十六进制数
文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。
发布评论请先登录
相关推荐
评论