【问题标题】:ST(structure text) transfer data from hex to decimalST(结构文本)将数据从十六进制转换为十进制
【发布时间】:2017-10-15 16:53:19
【问题描述】:

我需要将数据从十六进制转换为十进制。我得到的数据是一个字符串。有人可以帮忙吗? ST能做到吗?

谢谢。

【问题讨论】:

  • 你用的是哪个PLC?
  • OpenPCS 中的结构文本(ST)。

标签: encryption hex decimal plc st


【解决方案1】:
    Dec_data:= 'ABCD';
    pVar := &iIntVar;
    usiRes:= STR_TO_BIN(Dec_data, pVar, 'X');
    strResult := BIN_TO_STR(pVar,'d');

结果是 STRING '43981'

【讨论】:

    【解决方案2】:
    data:= "005BE045";
        j := 7.0;
        result :=0.0;
        FOR i:=1 TO 8 BY 1 DO
                data2 := MID(data,L:=1,P:=i);
                IF(data2 = '0') THEN
                    count := 0.0*(16.0**j);
                ELSIF(data2 = '1') THEN
                    count := 1.0*(16.0**j);
                ELSIF(data2 = '2') THEN
                    count := 2.0*(16.0**j);             
                ELSIF(data2 = '3') THEN
                    count := 3.0*(16.0**j); 
                ELSIF(data2 = '4') THEN
                    count := 4.0*(16.0**j); 
                ELSIF(data2 = '5') THEN
                    count := 5.0*(16.0**j);
                ELSIF(data2 = '6') THEN
                    count := 6.0*(16.0**j);
                ELSIF(data2 = '7') THEN
                    count := 7.0*(16.0**j);
                ELSIF(data2 = '8') THEN
                    count := 8.0*(16.0**j);
                ELSIF(data2 = '9') THEN
                    count := 9.0*(16.0**j);
                ELSIF(data2 = 'A') THEN
                    count := 10.0*(16.0**j);
                ELSIF(data2 = 'B') THEN
                    count := 11.0*(16.0**j);
                ELSIF(data2 = 'C') THEN
                    count := 12.0*(16.0**j);
                ELSIF(data2 = 'D') THEN
                    count := 13.0*(16.0**j);
                ELSIF(data2 = 'E') THEN
                    count := 14.0*(16.0**j);
                ELSIF(data2 = 'F') THEN
                    count := 15.0*(16.0**j);
                END_IF;
                j := j-1.0;
                result:= result + count;
        END_FOR;
        astrDisplayText_20x4[4] := STR(result);
    

    只有这样...我制作的新功能,这是可行的!你怎么看?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-26
      • 1970-01-01
      • 2014-12-31
      • 2011-07-28
      • 1970-01-01
      相关资源
      最近更新 更多