說明
使用該指令,可以將在輸入 IN 中指定的十六進制數轉換為 ASCII 字符串。轉換結果存儲到參數 OUT 指定的地址中。
使用參數 N,可指定待轉換十六進制字節的數量。由于 ASCII 字符為 8 位,而十六進制數只有 4 位,所以輸出值長度為輸入值長度的兩倍。在保持原始順序的情況下,將十六進制數的每個半位元組轉換為一個字符。
可最多有 65635 個字符寫入 ASCII 字符串。轉換結果以數字 0 ~ 9 和大寫字母 A ~ F 表示。
該指令不檢測任何錯誤條件。
參數
下表列出了“HTA”指令的參數:
參數 | 聲明 | 數據類型 | 存儲區 | 說明 |
---|---|---|---|---|
IN | Input | POINTER* | I、Q、M、D | 十六進制數的起始地址 |
N | Input | WORD | I、Q、M、D、L、P 或常量 | 待轉換的十六進制字節數 |
OUT | Output | POINTER* | D、L | 結果的存儲地址。 |
* 指針格式為雙字,用于跨區域間接寄存器尋址 |
示例
只有輸入 I 0.0 的信號狀態為“1”(激活),才執行該指令。在本示例中,N 輸入參數設置為 3,表示要轉換三個十六進制字符。將十六進制字節存儲在以 IN 指針指定的地址為起點的數據塊 1 中:DB1.DBX10.0。字符串將輸出到由 OUT 指針指定的地址處:從 DB2.DBX0.0 開始(數據塊 2)。
下表列出了十六進制數轉換為 ASCII 字符串的示例:
IN | N | OUT | BR 狀態 |
---|---|---|---|
W#16#0123 | 2 | '0123' | 1 |
16#123AF01023 | 4 | '123AF010' | 0 |
下表顯示了 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" |
-
存儲
+關注
關注
13文章
4462瀏覽量
86883 -
ASCII
+關注
關注
5文章
172瀏覽量
35546 -
Out
+關注
關注
0文章
31瀏覽量
13292
原文標題:博途西門子-HTA: 將十六進制數轉換為 ASCII 字符串
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論