Umwandlung Bitspalte -> Bitzeile
Dieser FP-Befehl wandelt eine Bitspalte aus einem Adressbereich um, der am Eingang s_Start beginnt, und gibt jedes Bit in einer Bitzeile am Ausgang d zurück. Die Bitposition wird am Eingang n_Pos festgelegt (Bereich 0–15). Dieser Befehl ist die Umkehrung des Befehls FP_WORD_TO_BITCOLUMN.
Eingang
Anfangsadresse der Bitspalte
Bitposition (Bereich 0–15)
Ausgang
Ergebnis
wenn der mit dem Index-Modifizierer definierte Bereich größer ist als der zulässige Bereich
wenn 0 ³ n_Pos > 15
wenn s_Start außerhalb des zulässigen Bereichs liegt
wenn der mit dem Index-Modifizierer definierte Bereich größer ist als der zulässige Bereich
wenn 0 ³ n_Pos > 15
wenn s_Start außerhalb des zulässigen Bereichs liegt
Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung dieser Funktion verwendet werden. Für alle Programmiersprachen wird der gleiche POE-Kopf verwendet.
VAR
bStart: BOOL:=FALSE;
(*activates the function*)
iPosition: INT:=10;
(*specifies the position
of the column*)
wBit_combination: WORD:=16#0;
(*result after a 0->1 leading
edge from start:
2#1100011110111000*)
END_VAR
Wenn die Variable bStart auf TRUE gesetzt wird, wird die Funktion ausgeführt. Die Bitspalte an Bitposition 10 des Datenbereichs mit der Anfangsadresse DT10 wird als 0101 0001 1101 1001 am Ausgang d ausgegeben.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 6 ;
NETWORK_BODY
B(B_F,FP_BITCOLUMN_TO_WORD!,,13,1,26,6,,?DEN?Ds_Start?Dn_Pos?AENO?Cd);
B(B_CONTACT,,bStart,6,2,8,4,);
B(B_VARIN,,DT10,11,3,13,5,);
B(B_VARIN,,iPosition,11,4,13,6,);
B(B_VAROUT,,wBit_combination,26,3,28,5,);
L(1,3,6,3);
L(8,3,13,3);
L(1,0,1,6);
END_NETWORK_BODY
END_NET_WORK
END_BODY
IF bStart then
FP_BITCOLUMN_TO_WORD(s_Start := DT10, n_Pos := iPosition, d => wBit_combination);
END_IF;