问题描述:
Somachine 或 Machine Expert 中如何把ascii码转成字符显示?所属产品线:
EcoStruxure Machine Expert(原SoMachine)解决方法:
使用该功能块 :ArrayOfByte_TO_String
输入:ARRAY [1..255] OF BYTE = 72, 69, 76, 76, 79;
顺序:TRUE
空格:FALSE
字符串:'HELLO'
如以上所示,输出字符串中字符的顺序与输入字节的顺序对应,即数组 [1..255] 的第一个位置处的字节值为 72,它与输出的第一个位置处的字符串值(该值为 H)对应。数组 [1..255] 的第二个位置处的字节值为 69,它与输出的第二个位置处的字符串值(该值为 E)对应,依此类推。
输入:ARRAY [1..255] OF BYTE = 65, 66, 67, 68, 69, 70, 71;
字节顺序:FALSE
插入空格:FALSE
字符串:‘BADCFEG’
如以上所示,输出字符串中字符的顺序改变,即数组 [1...255] 第一个位置处的字节值为 65,它与输出的第二个位置处的字符串值(该值为 A)对应;数组 [1..255] 的第二个位置处的字节值为 66,它与输出的第一个位置处的字符串值(该值为 B)对应。同样,数组 [1..255] 的第三个位置处的字节值为 67,它与输出的第四个位置处的字符串值(该值为 C)对应;数组 [1..255] 的第四个位置处的字节值为 68,它与输出的第三个位置处的字符串值(该值为 D)对应,依此类推。
输入:ARRAY [1..255] OF BYTE = 72, 69, 76, 76, 79;
顺序:FALSE
空格:TRUE
字符串:‘EHLL O’
输入:ARRAY [1..255] OF BYTE = 65, 66, 67, 68, 69, 70, 71;
顺序:FALSE
空格:TRUE
字符串:‘BADCFE G’
如以上示例 3 和 4 所示,示例 3 中的输入数为 5,示例 4 中为 7。由于 5 和 7 均为奇数,顺序输入为 FALSE 且空格输入为 TRUE,因此字符串输出分别为 'EHLL O' 和 'BADCFE G'。
注意: 但是,如果输入中的字节数为 255,顺序输入为 FALSE 且空格输入为 TRUE,则空格输入会变得没有意义,如下面的示例 5 中所述。
输入:ARRAY [1..250] OF BYTE = 65 和 ARRAY [251..255] OF BYTE = 66, 67, 68, 69, 70;
顺序:TRUE
空格:TRUE/FALSE
String[1..250]: 'A' 和 String[251..255] = ‘CBEDF’
如以上示例中所示,如果输入中的字节数为 255,则字符串输出不受空格输入的影响。
输入:ARRAY [1..255] OF BYTE = 65, 66, 67, 68, 69, 70, 71;
顺序:TRUE
空格:TRUE
字符串:‘ABCDEFG’
如以上所示,如果顺序输入为 TRUE,则空格输入无关紧要。
是否有帮助?