Diese Funktion liest selektiv den E/A-Kanalstatus eines TM3-Analog- oder -Temperaturmoduls, der durch ModuleIndex angegeben wird. Der Funktionsbaustein schreibt den Status für jeden angeforderten Kanal ab der Speicherposition, auf die durch pStatusBuffer verwiesen wird.
Die allgemeine Darstellung in den Sprachen AWL (IL) oder ST finden Sie im Kapitel Darstellung von Funktionen und Funktionsbausteinen.
Jeder Analog-/Temperatur-E/A-Kanal des angeforderten Moduls benötigt ein Byte Speicher. Wenn dem Puffer nicht genügend Speicher für die Anzahl der angeforderten Kanalzustände des E/A-Moduls zugewiesen ist, kann es sein, dass die Funktion den Speicher überschreibt, der für andere Zwecke zugewiesen wurde, oder vielleicht versucht, einen eingeschränkten Speicherbereich zu überschreiben.
WARNUNG | |
---|---|
Die folgende Tabelle beschreibt die Eingangsvariablen:
Eingang |
Typ |
Kommentar |
---|---|---|
ModuleIndex |
BYTE |
Index des Erweiterungsmoduls (0 für das Modul, das sich am nächsten bei der Steuerung befindet, 1 für das zweitnächste usw.). |
StatusOffset |
BYTE |
Offset des in der Statustabelle zu lesenden ersten Status. |
StatusSize |
BYTE |
Anzahl der in der Statustabelle zu lesenden Bytes. |
pStatusBuffer |
POINTER TO BYTE |
Puffer mit der Lesestatustabelle (IBStatusIWx / IBStatusQWx). |
In der folgenden Tabelle wird die Ausgangsvariable beschrieben:
Ausgang |
Typ |
Kommentar |
---|---|---|
TM3_GetModuleInternalStatus |
Gibt den Wert |
In den folgenden Beispielen wird beschrieben, wie der interne Status des Moduls abgerufen wird:
VAR
TM3AQ2_Channel_0_Output_Status: BYTE;
END_VAR
TM3AQ2 is on position 1
Status of channel 0 is at offset 0
We read 1 channel
TM3_GetModuleInternalStatus(1, 0, 1, ADR(TM3AQ2_Channel_0_Output_Status));
status of channel 0 is in TM3AQ2_Channel_0_Output_Status
TM3AQ2-Modul (2 Ausgänge)
Abrufen des Status des ersten Ausgangs QW0
StatusOffset = 0 (0 Eingänge x 2)
StatusSize = 1 (1 zu lesender Status)
pStatusBuffer muss mindestens 1 Byte sein
VAR
TM3AM6_Channels_1_2_Input_Status: ARRAY[1..2] OF BYTE;
END_VAR
TM3AM6 is on position 1
Status of channel 1 is at offset 1
We read 2 consecutive channels
TM3_GetModuleInternalStatus(1, 1, 2, ADR(TM3AM6_Channels_1_2_Input_Status));
status of channel 1 is in TM3AM6_Channels_1_2_Input_Status[1]
status of channel 2 is in TM3AM6_Channels_1_2_Input_Status[2]
TM3AM6-Modul (4 Eingänge, 2 Ausgänge)
Abrufen des Status von Eingang IW1 & IW2 (IW0 ist der erste Eingang)
StatusOffset = 1 (1 zu überspringender IW0-Status)
StatusSize = 2 (2 zu lesende Status)
pStatusBuffer muss mindestens 2 Byte umfassen