TM3_GetModuleInternalStatus: Abrufen des internen Status des TM3-Moduls

Beschreibung der Funktion

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.

HINWEIS: Dieser Funktionsbaustein ist für die Verwendung mit analogen und Temperatur-E/A-Modulen vorgesehen. Informationen zum Status digitaler E/A-Module finden Sie unter TM3_GetModuleBusStatus.
HINWEIS: Der Wert der Diagnosebytes kann nur dann durch Aufrufen der Funktion TM3_GetModuleInternalStatus aktualisiert werden, wenn der Parameter Status aktiviert auf der Registerkarte E/A-Konfiguration deaktiviert ist.

Grafische Darstellung

Darstellung in AWL (IL) und ST

Die allgemeine Darstellung in den Sprachen AWL (IL) oder ST finden Sie im Kapitel Darstellung von Funktionen und Funktionsbausteinen.

Beschreibung der E/A-Variablen

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
UNBEABSICHTIGTER GERÄTEBETRIEB
Stellen Sie sicher, dass pStatusBuffer auf einen Speicherbereich zeigt, der ausreichend für die Anzahl der zu lesenden Kanäle zugewiesen wurde.
Die Nichtbeachtung dieser Anweisungen kann Tod, schwere Verletzungen oder Sachschäden zur Folge haben.

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

TM3_ERR_CODE

Gibt den Wert TM3_NO_ERR (00 hex) zurück, wenn der Befehl fehlerfrei ausgeführt wurde. Andernfalls wird der ID-Code des erkannten Fehlers zurückgegeben. Für die Zwecke dieses Funktionsbausteins zeigt jeder zurückgegebene Wert ungleich null an, dass das Modul nicht mit der Statusanforderung kompatibel ist oder dass das Modul andere Kommunikationsprobleme hat.

Beispiel

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