【问题标题】:How to get ASCII code of char in Codesys?如何在 Codesys 中获取字符的 ASCII 码?
【发布时间】:2019-11-26 12:15:57
【问题描述】:

我需要在 Codesys 中获取 char 的字节码(使用 ST 语言)。有办法吗?

例如,在 c++ 中它很简单:

int c = 'h';

【问题讨论】:

    标签: string char ascii st codesys


    【解决方案1】:

    有几种方法可以做到这一点,但概念是相同的。你把它转换成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 *)
    

    【讨论】:

      【解决方案2】:

      使用变量创建函数 CHR():

      FUNCTION CHR : BYTE
      VAR_INPUT
          CHAR:STRING(1);
       END_VAR
      VAR
          pBYTE:POINTER TO BYTE;
      END_VAR
      

      使用以下代码:

      pBYTE := ADR(CHAR);
      CHR := pBYTE^;
      

      这项工作做得很好

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-31
        • 2014-08-12
        • 1970-01-01
        • 2020-06-17
        • 1970-01-01
        • 2023-03-22
        相关资源
        最近更新 更多