Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

Bytes aneinander hängen...

e-pappy
2012-05-31
2012-06-03
  • e-pappy - 2012-05-31

    Hi zusammen!

    Hab ein Problem mit meinen Bytes
    Bei STRINGS kann man ja wunderbar mit dem Baustein CONCAT arbeiten, der dann einfach den zweiten hinten an den ersten STRING hängt.

    Gibt es das auch für BYTES?

    Probiere schon ne ganze Weile rum, aber es will nicht so wie ich will?!

    VAR
       byte1: BYTE := 16#07;
       byte2: BYTE := 16#B6;
       xStore: BOOL;
       datastorage: WORD;
    END_VAR
    IF xStore THEN
       datastorage := BYTE_TO_WORD(SHL(byte1,8))+byte2;
       xStore := FALSE;
    END_IF;
    

    Ich will nicht die beiden Bytes addieren, sondern als Ergebnis ```

    16#07B6

    ``` erhalten!

    Was mach ich falsch? Oder geht es noch irgendwie anders?

    Und vielen Dank vorweg


    Hab's selber hinbekommen... Google sei dank!

    Lösung:

    IF xStore THEN
       datastorage := SHL(BYTE_TO_WORD(byte1),8 ) + BYTE_TO_WORD(byte2);
       xStore := FALSE;
    END_IF;
    

    So funktioniert's!

     
  • Erik Böhm - 2012-06-01

    Moin
    Ich hätte die Bytes in ein ARRAY OF BYTE geschrieben und dann über einen POINTER vom entsprechenden Typ drauf zugegriffen.
    Das ginge dann auch problemlos mit mehr Bytes.
    Gruß Erik

     
  • Anonymous - 2012-06-03

    Originally created by: mg

    Ich hätte das so gemacht (ungetestet aber sollte funktionieren)
    BYTE_TO_WORD(Wert1)*16#100+BYTE_TO_WORD(Wert2)
    Aber deines funktioniert garantiert auch.

    Mg

     

Log in to post a comment.