Unit_AnalogInOut_FPG_A44Funktion zum Schreiben und Lesen eines FPG-A44-Moduls.
Diese Funktion schreibt digitale Werte in die Ausgangskanäle des Analogmoduls und liest digitale Umwandlungswerte aus dessen Eingangskanälen. Die digitalen Werte, die umgewandelt und als analoge Werte ausgegeben werden sollen, werden bei iOutChannel0 bis iOutChannel3 festgelegt. Die digitalen Umwandlungswerte aus dem Analogmodul werden je nach Kanal in den Ausgangsvariablen iInChannel0 bis iInChannel3 gespeichert.
Der Eingangs- und Ausgangstyp (Spannung oder Strom) wird auch mit dieser Funktion festgelegt.

Eingang
Gibt die Steckplatznummer an.
Setzt den digitalen Wert, der umgewandelt und vom Analogmodul ausgegeben werden soll.
Legt den Spannungs- oder Stromeingang für jede Kanalnummer fest.
TRUE: Stromeingang
FALSE: Spannungseingang
Legt den Spannungs- oder Stromeingang für jede Kanalnummer fest.
TRUE: Stromausgang
FALSE: Spannungsausgang
Ausgang
Gibt die konvertierten Digitaldaten aus dem entsprechenden Kanal des Analogmoduls zurück.
Spannungsausgang |
Stromausgang | ||
|---|---|---|---|
Digitalwert (INT) |
Analogwert |
Digitalwert (INT) |
Analogwert |
4095 |
10V |
4095 |
20mA |
2048 |
5V |
2048 |
12mA |
0 |
0V |
0 |
4mA |
-2048 |
-5V |
||
-4095 |
-10V |
||
A/D-Umwandlung
Spannungseingang |
Stromeingang |
||
|---|---|---|---|
Digitalwert (UINT) |
Analogwert |
Digitalwert (UINT) |
Analogwert |
65535 |
10V |
65535 |
20mA |
32768 |
5V |
39321 |
12mA |
0 |
0V |
13107 |
4mA |
0 |
0 |
||

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
iOutChannel0: INT:=0;
iOutChannel1: INT:=0;
iOutChannel2: INT:=0;
iOutChannel3: INT:=0;
bSetInChannel0ToCurrent: BOOL:=FALSE;
bSetOutChannel0ToCurrent: BOOL:=FALSE;
bSetInChannel1ToCurrent: BOOL:=FALSE;
bSetInChannel2ToCurrent: BOOL:=FALSE;
bSetInChannel3ToCurrent: BOOL:=FALSE;
bSetOutChannel1ToCurrent: BOOL:=FALSE;
bSetOutChannel2ToCurrent: BOOL:=FALSE;
bSetOutChannel3ToCurrent: BOOL:=FALSE;
uiInChannel0: UINT:=0;
uiInChannel1: UINT:=0;
uiInChannel2: UINT:=0;
uiInChannel3: UINT:=0;
END_VAR

BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 1 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 16 ;
NETWORK_BODY
B(B_F,Unit_AnalogInOut_FPG_A44!,,14,1,29,16,,?DiOutChannel0?DiOutChannel1?DiOutChannel2?DiOutChannel3?DiSlotNumber?DbSetInChannel0ToCurrent?DbSetInChannel1ToCurrent?DbSetInChannel2ToCurrent?DbSetInChannel3ToCurrent?DbSetOutChannel0ToCurrent?DbSetOutChannel1ToCurrent?DbSetOutChannel2ToCurrent?DbSetOutChannel3ToCurrent?AuiInChannel0?AuiInChannel1?AuiInChannel2?AuiInChannel3);
B(B_VARIN,,iOutChannel0,12,2,14,4,);
B(B_VARIN,,iOutChannel1,12,3,14,5,);
B(B_VARIN,,iOutChannel2,12,4,14,6,);
B(B_VARIN,,iOutChannel3,12,5,14,7,);
B(B_VARIN,,4,12,6,14,8,);
B(B_VARIN,,bSetInChannel0ToCurrent,12,7,14,9,);
B(B_VARIN,,bSetInChannel1ToCurrent,12,8,14,10,);
B(B_VARIN,,bSetInChannel2ToCurrent,12,9,14,11,);
B(B_VARIN,,bSetInChannel3ToCurrent,12,10,14,12,);
B(B_VARIN,,bSetOutChannel0ToCurrent,12,11,14,13,);
B(B_VARIN,,bSetOutChannel1ToCurrent,12,12,14,14,);
B(B_VARIN,,bSetOutChannel2ToCurrent,12,13,14,15,);
B(B_VARIN,,bSetOutChannel3ToCurrent,12,14,14,16,);
B(B_VAROUT,,uiInChannel0,29,2,31,4,);
B(B_VAROUT,,uiInChannel1,29,3,31,5,);
B(B_VAROUT,,uiInChannel2,29,4,31,6,);
B(B_VAROUT,,uiInChannel3,29,5,31,7,);
L(1,0,1,16);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
Unit_AnalogInOut_FPG_A44(iOutChannel0 := iOutChannel0,
iOutChannel1 := iOutChannel1,
iOutChannel2 := iOutChannel2,
iOutChannel3 := iOutChannel3,
iSlotNumber := 4,
bSetInChannel0ToCurrent := bSetInChannel0ToCurrent,
bSetInChannel1ToCurrent := bSetInChannel1ToCurrent,
bSetInChannel2ToCurrent := bSetInChannel2ToCurrent,
bSetInChannel3ToCurrent := bSetInChannel3ToCurrent,
bSetOutChannel0ToCurrent := bSetOutChannel0ToCurrent,
bSetOutChannel1ToCurrent := bSetOutChannel1ToCurrent,
bSetOutChannel2ToCurrent := bSetOutChannel2ToCurrent,
bSetOutChannel3ToCurrent := bSetOutChannel3ToCurrent,
uiInChannel0 => uiInChannel0,
uiInChannel1 => uiInChannel1,
uiInChannel2 => uiInChannel2,
uiInChannel3 => uiInChannel3);