Unit_AnalogInput_FP0_RTD_INTFunktionsbaustein zum Lesen eines FP0-RTD6-Moduls (digitale Umwandlungswerte sind vom Datentyp INT).
Dieser Funktionsbaustein liest die digitalen Umwandlungswerte von den analogen Eingangskanälen des Analogmoduls. Die digitalen Umwandlungswerte aus dem Analogmodul werden je nach Kanal in den Ausgangsvariablen iChannel0 bis iChannel5 gespeichert.
Zum Messen der RTD-Eingangsdaten können Sie folgende Geräte nutzen: Pt100 (gemäß IEC751), Pt1000 (gemäß IEC751), Ni1000 (gemäß DIN43760) oder einen Widerstand.
Das Messgerät muss mit den DIP-Schaltern und im Funktionsbaustein festgelegt werden.
Der Abtastzyklus muss mit den DIP-Schaltern festgelegt werden.

Eingang
Setzt den Offset der ersten WX/WY-Adresse des Analogmoduls entsprechend dem Installationsort.
Für analoge Erweiterungsmodule, die direkt an die CPU angeschlossen sind (ohne Adapter): Verwenden Sie ExpansionUnitToIOWordOffset_FP0 oder nehmen Sie die folgenden Einstellungen vor: 2 (WX2/WY2) für die Modulnummer 1, 4 (WX4/WY4 für die Modulnummer 2, 6 (WX6/WY6) für die Modulnummer 3
Für analoge Erweiterungsmodule, die über einen Adapter an die CPU angeschlossen sind: Verwenden Sie ExpansionUnitToIOWordOffset_FPX_FP0oder wählen Sie den Offset aus der Tabelle.
Modulposition relativ zum Adapater |
Adapterposition relativ zur CPU |
|||||||
|---|---|---|---|---|---|---|---|---|
1. Modul |
2. Modul |
3. Modul |
4. Modul |
5. Modul |
6. Modul |
7. Modul |
8. Modul |
|
1. Modul |
30 |
40 |
50 |
60 |
70 |
80 |
90 |
100 |
2. Modul |
32 |
42 |
52 |
62 |
72 |
82 |
92 |
102 |
3. Modul |
34 |
44 |
54 |
64 |
74 |
84 |
94 |
104 |
Legt die Auflösung am zugehörigen Kanal fest.
Ändern Sie diesen Wert nicht während der Laufzeit. Andernfalls kann das Umwandlungsergebnis 1s lang ungenau sein.
Legt die Temperatureinheit fest.
Legt das RTD-Gerät fest.
Die Einstellung muss den DIP-Schaltereinstellungen entsprechen.
Ausgang
Gibt die konvertierten Digitaldaten aus dem entsprechenden Kanal des Analogmoduls zurück.
Beispiel:
Thermoelement, niedrige Auflösung: 20,12°C → 201 (Messwert außerhalb des zulässigen Bereichs: 8191)
Thermoelement, hohe Auflösung 20,12°C → 2012 (Messwert außerhalb des zulässigen Bereichs: 8191)
Widerstand, niedrige Auflösung: 25Ω → 25 (Messwert außerhalb des zulässigen Bereichs: 16383)
Widerstand, hohe Auflösung: 25,4Ω → 254 (Messwert außerhalb des zulässigen Bereichs: 16383)
Zwischen dem Einschalten und der ersten gültigen Datenumwandlung ändert sich der Digitalwert zu 8191 bzw. 16383. Achten Sie darauf, dass im Programm keine Daten aus diesem Zeitraum verarbeitet werden.
Bei einem Drahtbruch ändert sich der Digitalwert zu 8191 bzw. 16383. Achten Sie auf eine drahtbruchsichere Programmierung. Ein defektes Widerstandsthermometer muss ausgetauscht werden.
Die DIP-Schaltereinstellungen werden wirksam, wenn die Stromversorgung eingeschaltet wird.
Pt100 |
Pt1000 |
Ni1000 |
Widerstand |
|
|---|---|---|---|---|
Pt100 |
Pt1000 |
Ni1000 |
Widerstand |
|
|---|---|---|---|---|
0,1s |
1s |
|
|---|---|---|
Auflösung: 0,1K/0,1F, 1Ω
Pt100 |
Pt1000 |
Ni1000 |
Widerstand |
||||
|---|---|---|---|---|---|---|---|
°C/°F |
°C/°F |
°C/°F |
Ω |
||||
Analogwert |
Digitalwert |
Analogwert |
Digitalwert |
Analogwert |
Digitalwert |
Analogwert |
Digitalwert |
-200,0/-328,0 |
-2000/-3280 |
-200,0/-328,0 |
-2000/-3280 |
-30,0/-22,0 |
-300/-220 |
+20 |
+20 |
+500,0/+800,0 |
+5000/+8000 |
+300,0/+572,0 |
+3000/+5720 |
+150,0/+302,0 |
+1500/+3020 |
+2200 |
+2200 |
Auflösung: 0,01K/0,01F, 0,1Ω
Pt100 |
Pt1000 |
Ni1000 |
Widerstand |
||||
|---|---|---|---|---|---|---|---|
°C/°F |
°C/°F |
°C/°F |
Ω |
||||
Analogwert |
Digitalwert |
Analogwert |
Digitalwert |
Analogwert |
Digitalwert |
Analogwert |
Digitalwert |
-80,00/-80,00 |
-8000/-8000 |
-80,00/-80,00 |
-8000/-8000 |
-30,00/-22,00 |
-3000/-2200 |
+20,0 |
+200 |
+80,00/+80,00 |
+8000/+8000 |
+80,00/+80,00 |
+8000/+8000 |
+80,00/+80,00 |
+8000/+8000 |
+1630,0 |
+16300 |
Diese Befehlsbeschreibung enthält nur eine grundlegende Hardware-Dokumentation. Detaillierte technische Informationen entnehmen Sie bitte dem Handbuch:

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
Inst_FP0_RTD_INT: Unit_AnalogInput_FP0_RTD_INT;
iRTD_In_Ch0: INT:=0;
iRTD_In_Ch1: INT:=0;
iRTD_In_Ch2: INT:=0;
iRTD_In_Ch3: INT:=0;
iRTD_In_Ch4: INT:=0;
iRTD_In_Ch5: INT:=0;
END_VAR
Mit ExpansionUnitNumberToIOWordOffset_FP0 oder ExpansionUnitNumberToIOWordOffset_FPX_FP0 berechnen Sie den Wort-Offset des Analogmoduls, das an die CPU angeschlossen ist.

BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 13 ;
NETWORK_BODY
B(B_FB,Unit_AnalogInput_FP0_RTD_INT!,Inst_FP0_RTD_INT,20,1,38,13,,?BiIOWordOffset?BbChannel0HighResolution?BbChannel1HighResolution?BbChannel2HighResolution?BbChannel3HighResolution?BbChannel4HighResolution?BbChannel5HighResolution?BbTemperatureInFahrenheit?BbChannel012DIPSwitchSetToResistor?BbChannel345DIPSwitchSetToResistor?CiChannel0?CiChannel1?CiChannel2?CiChannel3?CiChannel4?CiChannel5);
B(B_VARIN,,2,18,2,20,4,);
B(B_VAROUT,,iRTD_In_Ch0,38,2,40,4,);
B(B_VARIN,,FALSE,18,3,20,5,);
B(B_VAROUT,,iRTD_In_Ch1,38,3,40,5,);
B(B_VARIN,,FALSE,18,4,20,6,);
B(B_VAROUT,,iRTD_In_Ch2,38,4,40,6,);
B(B_VARIN,,FALSE,18,5,20,7,);
B(B_VAROUT,,iRTD_In_Ch3,38,5,40,7,);
B(B_VARIN,,FALSE,18,6,20,8,);
B(B_VAROUT,,iRTD_In_Ch4,38,6,40,8,);
B(B_VARIN,,FALSE,18,7,20,9,);
B(B_VAROUT,,iRTD_In_Ch5,38,7,40,9,);
B(B_VARIN,,FALSE,18,8,20,10,);
B(B_VARIN,,FALSE,18,9,20,11,);
B(B_VARIN,,FALSE,18,10,20,12,);
B(B_VARIN,,FALSE,18,11,20,13,);
L(1,0,1,13);
END_NETWORK_BODY
END_NET_WORK
END_BODY
Inst_FP0_RTD_INT(iIOWordOffset := 2,
bChannel0HighResolution := false,
bChannel1HighResolution := false,
bChannel2HighResolution := false,
bChannel3HighResolution := false,
bChannel4HighResolution := false,
bChannel5HighResolution := false,
bTemperatureInFahrenheit := false,
bChannel012DIPSwitchSetToResistor := false,
bChannel345DIPSwitchSetToResistor := false,
iChannel0 => iRTD_In_Ch0,
iChannel1 => iRTD_In_Ch1,
iChannel2 => iRTD_In_Ch2,
iChannel3 => iRTD_In_Ch3,
iChannel4 => iRTD_In_Ch4,
iChannel5 => iRTD_In_Ch5);