我需要在Codesys (使用ST语言)中获取char的字节代码。有办法做到这一点吗?
例如,在c++中,它非常简单:
int c = 'h';
发布于 2019-11-27 11:45:53
有几种方法可以做到这一点,但概念是相同的。您可以将其转换为BYTE
。
VAR
sTest: STRING(1) := 'h';
bChar: BYTE;
END_VAR
bChar := STRING_TO_BYTE(sTest);
但我最喜欢使用指针。下面是返回字符串中给定字符ASCII代码的函数示例。
FUNCTION STRING_TO_ASCII: BYTE
VAR_INPUT
pbIn: POINTER TO BYTE;
bCharNum: BYTE; (* Character number in a string start with 0 *)
END_VAR
pbIn := pbIn + bCharNum;
STRING_TO_ASCII := pbIn^;
END_FUNCTION
现在你可以在程序中使用它了
VAR
sTest: STRING(250) := 'Hello Wold!';
bChar: BYTE;
END_VAR
bChar := STRING_TO_ASCII(sTest, 0); (* Character H *)
bChar := STRING_TO_ASCII(sTest, 1); (* Character e *)
发布于 2021-02-02 17:11:40
使用变量创建函数CHR():
FUNCTION CHR : BYTE
VAR_INPUT
CHAR:STRING(1);
END_VAR
VAR
pBYTE:POINTER TO BYTE;
END_VAR
使用以下代码:
pBYTE := ADR(CHAR);
CHR := pBYTE^;
这项工作做得很好。
https://stackoverflow.com/questions/59050795
复制相似问题