Byte to Bool in SCL

Zuviel Werbung?
-> Hier kostenlos registrieren
Ähm so, aktueller Status. Es funktioniert. Ich hatte einen kleinen dummen Fehler bei der Verwendung des Bausteins.

Also hier ist der Code, so wie es funktioniert:

Code:
FUNCTION BYTE_TO_BIT : VOID // FC 683
TITLE   = 'Version 3.0.00'
VERSION : '3.0'
AUTHOR  : 
NAME    : BYTOB
FAMILY  : BYTOB


VAR_INPUT
    InByte :   BYTE;
END_VAR


VAR_OUTPUT
    BIT_0 :    BOOL;
    BIT_1 :    BOOL;
    BIT_2 :    BOOL;
    BIT_3 :    BOOL;
    BIT_4 :    BOOL;
    BIT_5 :    BOOL;
    BIT_6 :    BOOL;
    BIT_7 :    BOOL;
END_VAR


VAR_TEMP
    Temp_Struct : STRUCT
        Byte_0  : BYTE;
        Byte_1  : BYTE;
    END_STRUCT;
    
    TempBool AT Temp_Struct : ARRAY[0..15] OF BOOL;
END_VAR


Temp_Struct.Byte_0 := InByte;


BIT_0 := TempBool[0];
BIT_1 := TempBool[1];
BIT_2 := TempBool[2];
BIT_3 := TempBool[3];
BIT_4 := TempBool[4];
BIT_5 := TempBool[5];
BIT_6 := TempBool[6];
BIT_7 := TempBool[7];


END_FUNCTION

Btw: Falls noch jemand dieser "Fehler" bei der Verwendung des Codebausteines in KOP passiert. An die Ausgänge nicht immer die selbe temporäre Variable schreiben!!

@Larry und @ JesperMP : Vielen Dank für die Hilfe!!!
 
Eigentlich wundert es mich das die bits nicht mit 1 Byte versetzt sind wegen "Big Endian".
Aber diese Little/Big Endian Geschickte wird nie natürlich für mich.
Gut dass es geklappt hat !
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Eigentlich wundert es mich das die bits nicht mit 1 Byte versetzt sind wegen "Big Endian".
Die sind deshalb nicht versetzt weil TempBool ein ARRAY OF BOOL ist. Wenn TempBool oder Temp_Struct ein Word wäre, dann würde sich Big Endian auswirken.

Harald
 
Zurück
Oben