PLCnext Technology-Systemvariablen
Für PLCnext Technology-Steuerungen sind folgende Systemvariablen verfügbar: Die Variablen sind in der Datenliste des Steuerungsknotens in der ANLAGE enthalten.
Weitere Infos
Eine aktuelle Liste und Beschreibung der bereitgestellten Systemvariablen finden Sie in der PLCnext-Dokumentation. |
Dieses Thema enthält die folgenden Abschnitte:
Hinweis
Unsichtbare Zuordnungen von Systemvariablen: Ab der Steuerungs-Firmware-Version 2025.6 sind die Zuordnungen zwischen Systemvariablen und Prozessdaten-Elementen (PDIs) in der Datenliste nicht mehr sichtbar. Diese PDI-Verbindungen werden durch Firmware- oder Feldbuskomponenten bereitgestellt. Obwohl die Zuordnungen nicht mehr sichtbar sind, bestehen die Verbindungen zwischen Variablen und PDIs nach dem Start der Steuerung weiter. Die Verbindungen werden von der Firmware hergestellt. Die Funktion bleibt also gewährleistet, auch wenn die Zuordnungen nicht mehr sichtbar sind. In der Datenliste kann in der Spalte 'Prozessdaten-Element' trotz der Anzeige 'Prozessdaten-Element auswählen...' keine Auswahl getroffen werden. Beispiel: Ansicht der Datenliste nach FW 2025.6:
 |
Steuerungsbezogene Systemvariablen
DEVICE_STATE (Gerätestatus)
- Die Systemvariable DEVICE_STATE ist als Datenstruktur organisiert.
- Sie können die Systemvariable DEVICE_STATE verwenden, um verschiedene Informationen über den Gerätestatus der CPU abzurufen.
Hier finden Sie eine Beschreibung der Variablen
Systemvariable | Typ | Beschreibung |
DEVICE_STATE | DEVICE_STATE_X152_TYPE | Datenstruktur |
1 | BOARD_TEMPERATURE | SINT | Temperatur im Inneren des Gehäuses (in °C). |
1 | reserved1 | BOOL | Reserviert |
1 | RAMDISK_USAGE | USINT | Aktuelle Auslastung des RAM-Speichers. |
1 | CPU_LOAD_ALL_CORES | USINT | Durchschnittliche aktuelle Auslastung aller Prozessorkerne (in %). |
1 | CPU_LOAD_PER_CORE | CPU_LOAD_PER_CORE_ARRAY | Informationen über die Auslastung der einzelnen Prozessorkerne. |
1 | 1 | [1] | USINT | Aktuelle Auslastung von Prozessorkern 1 (in %). |
1 | 1 | [2] | USINT | Aktuelle Auslastung von Prozessorkern 2 (in %). |
1 | 1 | [3] | USINT | Aktuelle Auslastung von Prozessorkern 3 (in %). |
RTC (Systemzeit)
- Die Systemvariable RTC ist als Datenstruktur organisiert.
- Über die Systemvariable RTC können Sie Informationen über die Systemzeit der geräteinternen Echtzeituhr abrufen.
Hier finden Sie eine Beschreibung der Variablen
Systemvariable | Typ | Beschreibung |
RTC | RTC_TYPE | Datenstruktur |
1 | HOURS | USINT | Systemzeit (Stunden) |
1 | MINUTES | USINT | Systemzeit (Minuten) |
1 | SECONDS | USINT | Systemzeit (Sekunden) |
1 | DAY | USINT | Systemzeit (Tag) |
1 | MONTH | USINT | Systemzeit (Monat) |
1 | YEAR | UINT | Systemzeit (Jahr) |
USER_PARTITION (Partition)
- Die Systemvariable USER_PARTITION ist als Datenstruktur organisiert.
- Sie können die Systemvariable USER_PARTITION verwenden, um verschiedene Informationen und Speicherstatistiken der Benutzerpartition (Overlay-Dateisystem) abzurufen.
- Der Speicher ist in Blöcken organisiert.
- Ein Block hat eine konstante, feste Größe und eine Datei verwendet immer einen oder mehrere Blöcke.
- Eine bestimmte Anzahl an Blöcken im Linux-System ist für den Root-Benutzer reserviert. Nur der Root-Benutzer kann auf diese reservierten Blöcke zugreifen, wodurch gewährleistet wird, dass er handlungsfähig bleibt, auch wenn der Speicher belegt ist (z.B. für Protokollausgaben).
Hier finden Sie eine Beschreibung der Variablen
Systemvariable | Typ | Beschreibung |
USER_PARTITION | PARTITION_INFO | Datenstruktur |
1 | MEM_TOTAL | ULINT | Gesamtspeicher der Partition in Bytes (einschließlich reservierter Blöcke). |
1 | MEM_FREE | ULINT | Freier, verfügbarer Speicher in Bytes (ohne reservierte Blöcke). |
1 | MEM_USED | ULINT | Verwendeter Speicher in Bytes (einschließlich reservierte Blöcke). |
1 | MEM_HANDLING | ULINT | Verwendeter Speicher in % (ohne reservierte Blöcke). |
Projektbezogene Systemvariablen
Über die Systemvariable PLC_CRC_PRJ können Sie die zuletzt berechnete Prüfsumme des Standard-Projektteils (nicht sicherheitsbezogen) abrufen. Mit Hilfe dieser Prüfsumme können Sie feststellen, ob das Projekt im Vergleich zu älteren Projektversionen geändert wurde.
Systemvariable | Typ | Beschreibung |
PLC_CRC_PRJ | ULINT | CRC des nicht sicherheitsbezogenen Projekts. |
IP/TLS Sockets-bezogene Systemvariablen
Die Bibliothek 'Erweiterte Funktionen & Funktionsbausteine' enthält TCP_SOCKET- und UDP_SOCKET-Funktionsbausteine zum Öffnen und Schließen von IP-Sockets, die für die IP-Kommunikation über das Transmission Control Protocol (TCP) oder das User Datagram Protocol (UDP) verwendet werden. Darüber hinaus steht der Funktionsbaustein TLS_SOCKET zur Verfügung, um IP-Sockets zu öffnen und zu schließen, die die IP-Kommunikation über Transport Layer Security (TLS) sichern.
Sie können diese Systemvariablen verwenden, um die Anzahl der geöffneten IP-Sockets abzufragen:
Systemvariable | Typ | Beschreibung |
IP_ACTIVE_SOCKETS | UINT | Anzahl der IP-Sockets, die mit den Funktionsbausteinen TCP_SOCKET und/oder UDP_SOCKET geöffnet wurden. |
TLS_ACTIVE_SOCKETS | UINT | Anzahl der IP-Sockets, die mit dem Funktionsbaustein TLS_SOCKET geöffnet wurden. |
ESM-Systemvariablen
- Die Systemvariable ESM_DATA ist als Datenstruktur organisiert.
- Sie können die Systemvariable ESM_DATA verwenden, um Informationen über die Aufgabenbehandlung des ESM (Execution & Synchronization Manager) abzurufen.
Hier finden Sie eine Beschreibung der Variablen
Systemvariable | Typ | Beschreibung |
ESM_DATA | ESM_DAT | Datenstruktur |
1 | ESM_COUNT | USINT | Anzahl der ESMs (ein ESM pro Prozessorkern). |
1 | ESM_INFOS | ESM_INFO_ARRAY | 1 |
1 | 1 | [1] ... [2] | ESM_INFO | Information über den ESM [1 ... 2] 2. |
1 | 1 | 1 | TASK_COUNT | UINT | Anzahl der Tasks, die für den ESM konfiguriert wurden. |
1 | 1 | 1 | TICK_COUNT | UDINT | Immer 0 |
1 | 1 | 1 | TASK_INTERVAL | UDINT | Immer 0 |
1 | 1 | 1 | TASK_INFOS | TASK_INFO_ARRAY | 1 |
1 | 1 | 1 | 1 | [1] ... [16] | TASK_INFO | Information über die Tasks [1 ... 16]. |
1 | 1 | 1 | 1 | 1 | INTERVAL 1 | LINT | Zeitintervall
- Bei zyklischen Tasks: Zeitintervall in µs
- Bei azyklischen Tasks: 0
|
1 | 1 | 1 | 1 | 1 | PRIORITY 1 | INT | Priorität des Task. |
1 | 1 | 1 | 1 | 1 | WATCHDOG 1 | LINT | Watchdog-Zeit in μs (0 = kein Watchdog).Watchdog-Zeit, die für die Summe aus Ausführungszeit und Verzögerungszeit festgelegt ist.Bei Überschreitung der Zeit wird der Watchdog getriggert. |
1 | 1 | 1 | 1 | 1 | LAST_EXEC_DURATION | LINT | Ausführungszeit des Task im vorherigen Zyklus in μs.Diese beinhaltet auch Unterbrechungen durch Tasks mit höherer Priorität. |
1 | 1 | 1 | 1 | 1 | MIN_EXEC_DURATION | LINT | Minimale Ausführungszeit des Task in μs.Diese beinhaltet auch Unterbrechungen durch Tasks mit höherer Priorität. |
1 | 1 | 1 | 1 | 1 | MAX_EXEC_DURATION | LINT | Maximale Ausführungszeit des Task in μs.Diese beinhaltet auch Unterbrechungen durch Tasks mit höherer Priorität. |
1 | 1 | 1 | 1 | 1 | LAST_ACTIVATION_DELAY | LINT | Verzögerungszeit des Task im vorherigen Zyklus in μs.Eine Verzögerung tritt auf, wenn zum Zeitpunkt der Taskaktivierung Tasks mit höherer Priorität anstehen. |
1 | 1 | 1 | 1 | 1 | MIN_ACTIVATION_DELAY | LINT | Minimale Verzögerungszeit des Task in μs.Eine Verzögerung tritt auf, wenn zum Zeitpunkt der Taskaktivierung Tasks mit höherer Priorität anstehen. |
1 | 1 | 1 | 1 | 1 | MAX_ACTIVATION_DELAY | LINT | Maximale Verzögerungszeit des Task in μs.Eine Verzögerung tritt auf, wenn zum Zeitpunkt der Taskaktivierung Tasks mit höherer Priorität anstehen. |
1 | 1 | 1 | 1 | 1 | EXEC_TIME_THRESHOLD 1 | LINT | Schwellwert, der für die Summe aus Ausführungszeit und Verzögerungszeit festgelegt ist. |
1 | 1 | 1 | 1 | 1 | EXEC_TIME_THRESHOLD _CNT | ULINT | Bei einer Überschreitung des definierten Schwellwerts EXEC_TIME_THRESHOLD wird die Variable EXEC_TIME_THRESHOLD_CNT inkrementiert. |
1 | 1 | 1 | 1 | 1 | NAME 1 | STRING | Name des Task. |
1 | EXCEPTION_COUNT | USINT | Anzahl der Ausnahmefehler (Exceptions). |
1 | EXCEPTION_INFOS | ESM_EXCEPTION_INFO_ARRAY | 1 |
1 | 1 | [1] ... [2] | ESM_EXCEPTION_INFO | Information zu den Exceptions [1 ... 2] 2. |
1 | 1 | 1 | TYPE_ID | UDINT | ID der Exception. |
1 | 1 | 1 | SUB_TYPE | STRING512 | Exceptiontyp |
1 | 1 | 1 | SUB_TYPE_ID | UDINT | ID des Tasks, in welchem die Exception aufgetreten ist. |
1 | 1 | 1 | TASK_NAME | STRING | Name des Task, in welchem die Exception aufgetreten ist. |
1 | 1 | 1 | PROGRAM_NAME | STRING512 | Name der Programminstanz, in der die Exception aufgetreten ist. |
1 | 1 | 1 | INFORMATION | STRING512 | Information zu der aufgetretenen Exception. |
Profinet-Systemvariablen
Über die PND-Systemvariablen können Sie verschiedene Informationen zur Funktionalität des Profinet I-Device abrufen.
Hier finden Sie eine Beschreibung der PND_*-Variablen
Systemvariable | Typ | Beschreibung |
PND_S1_PLC_RUN | BOOL | TRUE bedeutet, dass sich die übergeordnete Steuerung im Modus BETRIEB befindet. |
PND_S1_VALID_DATA_CYCLE | BOOL | TRUE, wenn die I-Device-Konfiguration in Ordnung ist. Um den Wert abzurufen, muss die Steuerung angeschlossen sein, kann sich aber im Modus STOP oder BETRIEB befinden. |
PND_S1_OUTPUT_STATUS_GOOD | BOOL | Status der Ausgangsdaten. Um den Wert abzurufen, muss die Steuerung angeschlossen sein und sich im Modus BETRIEB befinden. |
PND_S1_INPUT_STATUS_GOOD | BOOL | Status der Ausgangsdaten. Um den Wert abzurufen, muss die Steuerung angeschlossen sein und sich im Modus BETRIEB befinden. |
PND_S1_DATA_LENGTH | WORD | Länge der Eingangs- und Ausgangsdaten in Byte. Der Wert wird nur aktualisiert, wenn die Steuerung angeschlossen ist und PND_S1_VALID_DATA_CYCLE = TRUE ist. |
PND_S1_OUTPUTS | PND_IO_512 | 1 |
PND_S1_INPUTS | PND_IO_512 | 1 |
PND_IO_DRIVEN_BY_PLC | INT | Applikative Systemredundanz des aktuell an das PN-Gerät angeschlossenen Profinet-Controllers. Mögliche Werte: 0 = Kein Profinet-Controller 1 = Profinet-Controller A 2 = Profinet-Controller B Der Wert wird nur aktualisiert, wenn die Steuerung angeschlossen ist und PND_S1_VALID_DATA_CYCLE = TRUE ist. |
Über die PNIO-Systemvariablen können Sie verschiedene Informationen über die Funktionalität des Profinet IO-Controllers abrufen.
Hier finden Sie eine Beschreibung der PNIO_*-Variablen
Systemvariable | Typ | Beschreibung |
PNIO_SYSTEM_BF | BOOL | Wenn TRUE, wurde eine fehlende Verbindung zu einem konfigurierten Profinet-Gerät festgestellt: Im Profinet-Netzwerk ist ein Fehler aufgetreten, d.h. es konnte keine Verbindung zu mindestens einem konfigurierten Profinet-Gerät hergestellt werden.Dieser Wert wird nicht gesetzt, wenn der Parameter Drive BF eines Profinet-Geräts auf FALSE gesetzt war. Das Profinet-Gerät wurde damit aus der Verbindungsüberwachung herausgenommen. |
PNIO_SYSTEM_SF | BOOL | Wenn TRUE, ist ein Diagnose-Interrupt in einem konfigurierten Profinet-Gerät aufgetreten: Mindestens ein Profinet-Gerät meldet einen Systemfehler als Diagnose-Interrupt oder Wartungsalarm. Die Fehlerpriorität ist in den folgenden Variablen zu finden: PNIO_MAINTENANCE_DEMANDED und PNIO_MAINTENANCE_REQUIRED |
PNIO_MAINTENANCE_DEMANDED | BOOL | Mit TRUE wird ein Wartungsbedarf angezeigt: Mindestens ein Profinet-Gerät meldet einen "Wartungsbedarf". Wartungsalarm mit hoher Priorität, wenn die Verbindung aktiv ist. Das betroffene Profinet-Gerät kann mit Hilfe des RALRM-Diagnose-Funktionsbausteins identifiziert werden. |
PNIO_MAINTENANCE_REQUIRED | BOOL | Mit TRUE wird ein Wartungsbedarf angezeigt: Mindestens ein Profinet-Gerät meldet "Wartung erforderlich". Wartungsalarm mit niedriger Priorität, wenn die Verbindung aktiv ist. Das betroffene Profinet-Gerät kann mit Hilfe des RALRM-Diagnose-Funktionsbausteins identifiziert werden. |
PNIO_CONFIG_STATUS | WORD | Konfigurationsstatus des Profinet-Controllers. Der WORD-Wert entspricht dem folgenden Mapping:Bit 0: PNIO_CONFIG_STATUS_READY Bit 1: PNIO_CONFIG_STATUS_ACTIVE Bit 2: PNIO_CONFIG_STATUS_CFG_FAULT |
PNIO_CONFIG_STATUS_ACTIVE | BOOL | Zielkonfiguration geladen. TRUE, wenn eine Zielkonfiguration auf den Profinet-Controller geschrieben wurde. In diesem Zustand versucht der Profinet-Controller zyklisch, eine Verbindung zu allen Geräten der Zielkonfiguration aufzubauen. |
PNIO_CONFIG_STATUS_READY | BOOL | Profinet-Controller initialisiert.
- TRUE, wenn der Profinet-Controller ohne Fehler initialisiert werden konnte.
- FALSE, wenn keine Zielkonfiguration aus PLCnext Engineer geschrieben wurde.
|
PNIO_CONFIG_STATUS_CFG_FAULT | BOOL | Gewünschte Profinet-Controller-Konfiguration wurde aufgrund eines schwerwiegenden Fehlers nicht übernommen. |
PNIO_FORCE_FAILSAFE | BOOL | Alle Profinet-Geräte werden aufgefordert, ihre konfigurierten Ersatzwerte einzustellen. Die Systemvariable kann bei Bedarf aus Ihrem Anwendungsprogramm aus geschrieben/gesetzt werden. |
PNIO_FORCE_PRIMARY | BOOL | Funktionsbausteine verwenden diese Variable für applikative Redundanz, um die SRL-Rolle des Profinet-Controllers festzulegen. |
Systemvariablen der Sicherheitssteuerung zur Verwendung im Standardprojekt
Hinweis
Die in diesem Abschnitt beschriebenen Systemvariablen sind nur verfügbar, wenn die Steuerung eine sicherheitsbezogene SPS enthält. |
SPNS
- Diese Systemvariable ist als Datenstruktur vom Typ SPNSV2_TYPE organisiert.
- Über die Systemvariablen können Sie in Ihrer (nicht sicherheitsbezogenen) Standardanwendung verschiedene Informationen über das sicherheitsbezogene Laufzeitsystem der Sicherheitssteuerung abrufen.
Hier finden Sie eine Beschreibung der Variablen
Systemvariable | Typ | Beschreibung |
SPNS | SPNSV2_TYPE | Datenstruktur |
PRJ | | |
NAME | STRING | PLCnext Engineer-Projektname. |
CRC | DWORD | Projekt-CRC (32 Bit) des Bootprojekts der sicherheitsbezogenen SPS. |
EXEC_TIME | UDINT | Dauer eines Programmzyklus der sicherheitsbezogenen SPS in µs. |
HAS_PRJ | BOOL | Das sicherheitsbezogene Anwendungsprogramm und die Programmquelle sind im Speicher der sicherheitsbezogenen SPS verfügbar. |
DIAG | | |
STATUS_REG | WORD | Diagnose-Statusregister, das die Statusinformationen der sicherheitsbezogenen SPS enthält. Dieses spiegelt zu jeder Zeit den Zustand der sicherheitsbezogenen SPS wider, einschließlich aller aufgetretenen Fehlerzustände.Zusätzliche Informationen und Fehlerparameter, insbesondere im Failure State (FS), sind in den entsprechenden Diagnose-Parameterregistern der sicherheitsbezogenen SPS enthalten (Elemente SPNS.DIAG.PARAM_REG und SPNS.DIAG.PARAM_2). Details zu den Informationen im Diagnose-Statusregister finden Sie im Handbuch zur Steuerung. |
PARAM_REG | WORD | Diagnose-Parameterregister 1 der sicherheitsbezogenen SPS (Fehlercode). |
PARAM_2_REG | WORD | Diagnose-Parameterregister 2 der sicherheitsbezogenen SPS (zusätzliche Fehlermeldungen für Service/Wartung). |
EXT_PARAM_REG | DWORD | Erweitertes Diagnose-Parameterregister der sicherheitsbezogenen SPS (zusätzliche Fehlermeldungen für Service/Wartung). |
CH2_PARAM_REG | WORD | Diagnose-Parameterregister 1 des Kanals 2 (CH2) der sicherheitsbezogenen SPS (Fehlercode). |
CH2_PARAM_2_REG | WORD | Diagnose-Parameterregister 2 des Kanals 2 (CH2) der sicherheitsbezogenen SPS (zusätzliche Fehlermeldungen für Service/Wartung). |
CH2_EXT_PARAM_REG | DWORD | Erweitertes Diagnose-Parameterregister des Kanals 2 (CH2) der sicherheitsbezogenen SPS (zusätzliche Fehlermeldungen für Service/Wartung). |
INFO | | |
CYCLE_TIME | UDINT | Zykluszeit sicherheitsbezogene SPS in µs |
TEMP | | |
TEMP_CURRENT | INT | Aktuell gemessene Temperatur in der sicherheitsbezogenen SPS |
TEMP_MIN | INT | Minimale gemessene Temperatur der sicherheitsbezogenen SPS seit dem letzten Einschalten des Geräts. |
TEMP_MAX | INT | Maximale gemessene Temperatur der sicherheitsbezogenen SPS seit dem letzten Einschalten des Geräts. |
STATUS_REG | WORD | Temperatur-Statusregister der sicherheitsbezogenen SPS 0x0000: Die Temperatur der sicherheitsbezogenen SPS ist im nicht-kritischen Bereich <= 63 °C. 0x0080: Die Temperatur der sicherheitsbezogenen SPS liegt im kritischen Bereich, nahe der Toleranzschwelle >= 64 °C und <= 73 °C. Die sicherheitsbezogene SPS bleibt im Zustand RUN und gibt gleichzeitig eine Warnung mit dem Fehlercode 0xFA41 aus. 0x8000: Die Temperatur der sicherheitsbezogenen SPS überschreitet den erlaubten Bereich (>= 74 °C). Die sicherheitsbezogene SPS geht in den sicheren Zustand und gibt eine Fehlermeldung mit dem Fehlercode 0x924D aus. |
CPU | | |
LOAD_CURRENT | INT | Aktuelle CPU-Last der sicherheitsbezogenen SPS |
LOAD_MIN | INT | Minimale gemessene CPU-Last der sicherheitsbezogenen SPS seit dem letzten Einschalten des Geräts. |
LOAD_MAX | INT | Maximale gemessene CPU-Last der sicherheitsbezogenen SPS seit dem letzten Einschalten des Geräts. |
STATUS_REG | WORD | CPU-Statusregister der sicherheitsbezogenen SPS |
FW_Version | | |
VERSION_MAJOR | BYTE | Hauptversion der Firmware der sicherheitsbezogenen SPS |
VERSION_MINOR | BYTE | Unterversion der Firmware der sicherheitsbezogenen SPS |
VERSION_BUILD | WORD | Build-Nummer der Firmware der sicherheitsbezogenen SPS |
FPGA_VERSION | | |
VERSION_MAJOR | BYTE | Hauptversion der Hardware FPGA der sicherheitsbezogenen SPS |
VERSION_MINOR | BYTE | Unterversion der Hardware FPGA der sicherheitsbezogenen SPS |
VERSION_BUILD | WORD | Build-Nummer der Hardware FPGA der sicherheitsbezogenen SPS |
NUM_OF_ACTIVE_ARS | UINT | Anzahl der aktiven Profinet-Applikationsbeziehungen (AR) |
FW_UPDATE_STATUS | UINT | Status des sicherheitsbezogenen Firmware-Updates |
SOFT_RESET_REG | WORD | Software-Reset-Register der sicherheitsbezogenen SPS |
SPLC_CONTROL_COMMAND
- Die Systemvariable SPLC_CONTROL_COMMAND ist als Datenstruktur vom Typ SPLC_CONTROL_TYPE organisiert.
- Über die Systemvariable können Sie das Rücksetzen von Diagnosewerten aus dem (nicht sicherheitsrelevanten) Standardprojekt anfordern.
Hinweis
Nach der Durchführung der Reset-Anforderung bestätigt die sicherheitsbezogene SPS über die Systemvariable SPLC_CONTROL_CONFIRM (siehe unten), dass die Diagnosewerte im nicht-sicherheitsgerichteten Projekt zurückgesetzt wurden. |
Hier finden Sie eine Beschreibung der Variablen
Systemvariable | Typ | Beschreibung |
SPLC_CONTROL_COMMAND | SPNS_CONTROL_TYPE | Datenstruktur mit 32 Bits zur Freigabe von Funktionen der sicherheitsbezogenen SPS. |
CODE | DWORD | Bit 0: Setzt die minimalen und maximalen sicherheitsrelevanten Roundtrip-Zeiten zurück (Paketumlaufzeiten SRT_MIN, SRT_MAX). Datenrichtung: Standard-Steuerung > sicherheitsbezogene SPS |
PARAM | DWORD | Bits 1 bis 31: Reserviert. |
SPLC_CONTROL_CONFIRM
- Die Systemvariable SPLC_CONTROL_CONFIRM ist als Datenstruktur vom Typ SPLC_CONTROL_TYPE organisiert.
- Diese Systemvariable zeigt im (nicht-sicherheitsbezogenen) Standardprojekt die Rückmeldung der sicherheitsbezogenen SPS an, dass Diagnosewerte rückgesetzt wurden. Dies ist die Bestätigung, dass die Anforderung zum Rücksetzen der Diagnosewerte über die Systemvariable SPLC_CONTROL_COMMAND (siehe oben) erfolgreich durchgeführt wurde.
Hier finden Sie eine Beschreibung der Variablen
Systemvariable | Typ | Beschreibung |
SPLC_CONTROL_CONFIRM | SPNS_CONTROL_TYPE | Datenstruktur mit 32 Bit zur Rückmeldung von Funktionen der sicherheitsbezogenen SPS, die über die Variable SPLC_CONTROL_COMMAND angefordert wurden. |
CODE | DWORD | Bit 0: Bestätigt das Rücksetzen der minimalen und maximalen sicherheitsrelevanten Roundtrip-Zeiten (Paketumlaufzeiten SRT_MIN, SRT_MAX). Datenrichtung: Sicherheitsbezogene SPS > Standard-Steuerung. |
PARAM | DWORD | Bits 1 bis 31: Reserviert. |
Systemvariablen der Sicherheitssteuerung
Über diese Systemvariablen können Sie Informationen über den Status der Sicherheitssteuerung abrufen.
Hinweis
Diese Systemvariablen sind ab der Firmware-Version 3.0 der Sicherheitssteuerung verfügbar. |
Hier finden Sie eine Beschreibung der Variablen
Systemvariable | Typ | Beschreibung |
SPLC_CYCLE_TIME | SAFEDINT | Zykluszeit des SafetyProxy-Task, der von der sicherheitsbezogenen SPS ausgeführt wird.Der Wert wird zu Beginn eines jeden Zyklus gelesen und ist erst nach 16 Zyklen gültig. Er wird als gleitender (geglätteter) Durchschnittswert in µs angegeben. |
SPLC_CYCLE_DURATION | SAFEDINT | Programmausführungszeit der Sicherheits-SPS (gemessen von der Aktivierung des Zyklus bis zum Ende des Zyklus). Die Dauer des Zyklus umfasst
- das Lesen der Standard-Eingangsdaten, der sicherheitsbezogenen Eingangsmeldungen,
- die Laufzeit der sicherheitsbezogenen I/O-Stacks,
- die Laufzeit des Sicherheitsprogramms,
- die Laufzeit der Synchronisation zwischen beiden Kanälen,
- die Laufzeit aller fehlersteuernden Maßnahmen, die im Rahmen des Zyklus ausgeführt werden, und
- den Schreibvorgang der sicherheitsbezogenen Ausgangsdaten.
Der Wert wird zu Beginn eines jeden Zyklus gelesen und ist erst nach 16 Zyklen gültig. Er wird als gleitender (geglätteter) Durchschnittswert in µs angegeben. |
SPLC_TEMPERATURE | SAFEDINT | Temperatur der Sicherheits-SPS.Der Wert wird zu Beginn eines jeden Zyklus gelesen. Er hat die Einheit °C. |
SPLC_PRJ_CRC | SAFEWORD | Projektprüfsumme der sicherheitsbezogenen Anwendung. Der Wert wird einmalig aus dem Bootproject-Header gelesen. |
SPLC_CLOCK_PULSE_1S | SAFEBOOL | Symmetrischer Taktpuls 1s (High 1s -> Low 1s). Impulsfolge mit T/2 = 1 Sekunde (T = 2s).Für diese Funktionalität wird die sicherheitsbezogene Zeitbasis eines jeden Kanals (Auflösung 1ms) verwendet. Jeder Kanal hat seine eigene sicherheitsbezogene Zeitbasis, die zwischen den Kanälen synchronisiert wird. Daraus leitet jeder Kanal unabhängig die Impulse ab. Die Flankenwechsel erfolgen zyklussynchron. Die Genauigkeit der Taktimpulse (Periodendauer T) hängt von der Zykluszeit ab: Treal = T + ΔT mit ΔT <= Zykluszeit |
SPLC_CLOCK_PULSE_1M | SAFEBOOL | Symmetrischer Taktpuls 1m (High 1m -> Low 1m). Impulsfolge mit T/2 = 1 Minute (T = 2m).Für diese Funktionalität wird die sicherheitsbezogene Zeitbasis eines jeden Kanals (Auflösung 1ms) verwendet. Jeder Kanal hat seine eigene sicherheitsbezogene Zeitbasis, die zwischen den Kanälen synchronisiert wird. Daraus leitet jeder Kanal unabhängig die Impulse ab. Die Flankenwechsel erfolgen zyklussynchron. Die Genauigkeit der Taktimpulse (Periodendauer T) hängt von der Zykluszeit ab: Treal = T + ΔT mit ΔT <= Zykluszeit |
SPLC_CLOCK_PULSE_1H | SAFEBOOL | Symmetrischer Taktpuls 1h (High 1h -> Low 1h). Impulsfolge mit T/2 = 1 Stunde (T = 2h).Für diese Funktionalität wird die sicherheitsbezogene Zeitbasis eines jeden Kanals (Auflösung 1ms) verwendet. Jeder Kanal hat seine eigene sicherheitsbezogene Zeitbasis, die zwischen den Kanälen synchronisiert wird. Daraus leitet jeder Kanal unabhängig die Impulse ab. Die Flankenwechsel erfolgen zyklussynchron. Die Genauigkeit der Taktimpulse (Periodendauer T) hängt von der Zykluszeit ab: Treal = T + ΔT mit ΔT <= Zykluszeit |
SPLC_CLOCK_PULSE_1D | SAFEBOOL | Symmetrischer Taktpuls 1d (High 1d -> Low 1d). Impulsfolge mit T/2 = 1 Tag (T = 2d).Für diese Funktionalität wird die sicherheitsbezogene Zeitbasis eines jeden Kanals (Auflösung 1ms) verwendet. Jeder Kanal hat seine eigene sicherheitsbezogene Zeitbasis, die zwischen den Kanälen synchronisiert wird. Daraus leitet jeder Kanal unabhängig die Impulse ab. Die Flankenwechsel erfolgen zyklussynchron. Die Genauigkeit der Taktimpulse (Periodendauer T) hängt von der Zykluszeit ab: Treal = T + ΔT mit ΔT <= Zykluszeit |
SPLC_POWER_DOWN_EVENT SV_SI | SAFEBOOL | Mit der steigenden Flanke (SAFEFALSE > SAFETRUE) zeigt diese Variable an, dass die Standard-Steuerung einen Ausfall der Versorgungsspannung gemeldet hat. Abhängig vom Typ der Standard-Steuerung (siehe Hinweis unten) hat die Sicherheitsapplikation in der Sicherheitssteuerung nun eine definierte Zeitspanne, um bestimmte Aktionen für den PowerDown-Fall zu starten. Die maximale Zeitverzögerung zwischen dem Auftreten/Melden und der Bearbeitung des PowerDown-Events entspricht der Dauer der Zykluszeit.
Hinweis
Ob das PowerDown-Event unterstützt wird, hängt davon ab, ob die Standard-Steuerung eine interne USV enthält oder nicht. Dies ist derzeit bei den Steuerungstypen NFC482, RFC4072, BPC und AXC F 3152 mit SPLC1000 der Fall. |
|
SPLC_SYS_TICK_CNT | SAFEDINT | Zeigt die Anzahl der verarbeiteten Zyklen der sicherheitsbezogenen SPS an. Der Zähler läuft bei 0x7FFFFFFF über und beginnt automatisch wieder bei 0x00000000. Wertebereich: 0 ... +2.147.483.647 dann wieder Start bei 0.Die Dauer bis zum Überlauf hängt von der Zykluszeit ab. Bei einer Zykluszeit von 5 ms läuft der Zähler nach etwa 124,27 Tagen über. |
Systemvariablen für Diagnose der Profisafe-Kommunikation und des F-Device-Status
Mit diesen Systemvariablen können Sie die sicherheitsbezogene Kommunikation und den Betriebszustand von sicherheitsbezogenen Geräten überwachen. Auf diese Weise kann die Sicherheitssteuerung den Zustand des funktionalen Sicherheitssystems bestimmen.
Hinweis
Diese Systemvariablen sind ab der Firmware-Version 3.0 der Sicherheitssteuerung verfügbar. |
Zu diesem Zweck können PLCnext Technology-Steuerungen Systemvariablen zur Verfügung stellen, die Folgendes melden:
F-Gerätebezogene Systemvariablen für den Profisafe-Datenaustausch
Über diese Systemvariablen lassen sich in einem Profisafe-Netzwerk zwischen einer Sicherheitssteuerung, die als F-Device fungiert, und dem überlagerten F-Host-Gerät Daten austauschen.
Hinweis
Diese Systemvariablen sind ab der Firmware-Version 3.0 der Sicherheitssteuerung verfügbar. |
Systemvariable | Typ | Beschreibung |
FDEV_INx mit x = 0 bis 7. | SAFEBYTE | Diese Variablen können vom F-Host des überlagerten Netzwerks geschrieben und von der Sicherheitssteuerung in Ihrer Solution gelesen werden. |
FDEV_OUTx mit x = 0 bis 7. | SAFEBYTE | Diese Variablen können von Ihrer Sicherheitssteuerung geschrieben und vom F-Host des überlagerten Netzwerks gelesen werden. |
F-Gerätebezogene Systemvariablen für dynamische F_Dest_Add-Zuweisung
Hinweis
Diese Systemvariablen sind ab der Firmware-Version 3.0 der Sicherheitssteuerung verfügbar. |
Sie können diese Systemvariablen verwenden, um einem F-Device dynamisch, d. h. aus dem sicherheitsbezogenen Anwendungsprogramm heraus, eine F_Destination_Address (F_Dest_Add) zuzuweisen. Dies kann anstelle der festen Vergabe einer F_Dest_Add im Editor 'Sicherheitsbezogene Parameter' des Steuerungsknoten in der ANLAGE erfolgen. Mit dieser Funktion kann ein F-Device dynamisch einem anderen F-Host untergeordnet werden. Ein mögliches Szenario hierfür ist die Überführung eines AGV (Automated Guided Vehicle) in einen neuen Fahrbereich.
Zu diesem Zweck gibt es eine Reihe von Systemvariablen. Diese Variablen sind in der folgenden Tabelle in der Reihenfolge beschrieben, in der sie in der Datenliste erscheinen.
Hier finden Sie eine Beschreibung der Variablen
Systemvariable | Typ | Beschreibung |
FDEV_DYN_READY | SAFEBOOL | Eingangsvariable, die die erfolgreiche Zuweisung des F_Dest_Add an das F-Device anzeigt.
-
SAFETRUE: Die in der Variablen FDEV_DYN_REQ_F_DST gespeicherte Adresse wurde übernommen und ist nun die gültige F_Dest_Add.
-
SAFEFALSE: Die Zuweisung von F_Dest_Add ist (noch) nicht gültig.
- Flanke SAFETRUE > SAFEFALSE, wenn FDEV_DYN_SET_REQ_F_DST von SAFETRUE auf SAFEFALSE wechselt.
|
FDEV_DYN_ERROR | SAFEBOOL | Eingangsvariable, die einen Fehler bei der Zuweisung der F_Dest_Add anzeigt.
-
SAFETRUE: Ein Fehler wurde erkannt. Der zugehörige Fehlercode kann aus der Variablen FDEV_DYN_DIAGCODE ausgelesen werden.
-
SAFEFALSE: Es wurde kein Fehler erkannt.
|
FDEV_DYN_USED_F_DST | SAFEDINT | Eingangsvariable, die die aktuell eingestellte F_Dest_Add des F-Device anzeigt. Der Wert dieser Variable muss unter Berücksichtigung weiterer Systemvariablen interpretiert werden:
- Wenn FDEV_DYN_MODE_F_DST = FALSE (keine dynamische, sondern statische Adresszuweisung): Anzeige der konfigurierten F_Dest_Add. Wenn das F-Device nicht parametriert ist, wird der Wert 0 angezeigt.
- Wenn FDEV_DYN_MODE_F_DST = TRUE: Anzeige der F_Dest_Add in FDEV_DYN_REQ_F_DST ab steigender Flanke von FDEV_DYN_SET_REQ_F_DST (flankengesteuerte Variable zur Adressvergabe).
Der zugewiesene Adresswert bleibt auch dann erhalten, wenn FDEV_DYN_SET_REQ_F_DST wieder auf FALSE wechselt.
|
FDEV_DYN_USED_F_SRC | SAFEDINT | Eingangsvariable, die die parametrierte/verwendete F_Source_Add anzeigt, nachdem der F-Parameterblock der überlagerten Steuerung (d. h. des neuen F-Host) empfangen wurde. |
FDEV_DYN_DIAGCODE | SAFEWORD | Diagnosemeldung. Die Meldungs-/Fehlercodes sind in der folgenden Tabelle beschrieben. |
FDEV_DYN_MODE_F_DST | SAFEBOOL | Zustandsgesteuerte Ausgangsvariable, die die Quelle der vom F-Device zu verwendenden F_Dest_Add steuert und damit die Funktion ein- und ausschaltet.
Hinweis
Die Variable wird nur ausgewertet, während sich das F-Device im Zustand Stop befindet. |
-
SAFEFALSE: Funktion ist nicht aktiviert und das F-Device bezieht seine F_Dest_Add aus dem Parameterwert, der im Editor 'Sicherheitsbezogene Parameter' des Steuerungsknotens in der ANLAGE eingestellt ist.
- Flanke SAFEFALSE > SAFETRUE: Keine Aktion, es wird auf eine steigende Flanke der Variablen FDEV_DYN_SET_REQ_F_DST gewartet.
-
SAFETRUE: Es wird die in der Variablen FDEV_DYN_REQ_F_DST eingestellte F_Dest_Add verwendet.
- Flanke SAFETRUE > SAFEFALSE: Das F-Device wendet die im Projekt konfigurierte F_Dest_Add an und führt eine Neuinitialisierung des lokalen F-Devices durch.
|
FDEV_DYN_SET_REQ_F_DST | SAFEBOOL | Flankengesteuerte Ausgangsvariable, die das Setzen der F-Dest_Add anfordert.
Hinweis
Die Variable wird nur ausgewertet, während sich das F-Device im Zustand Stop befindet. |
- Flanke SAFEFALSE > SAFETRUE: Das F-Device wendet die F_Dest_Add aus der Variablen FDEV_DYN_REQ_F_DST an und führt eine Neuinitialisierung durch.
- Flanke SAFETRUE > SAFEFALSE: Keine Aktion, das F-Device bleibt in seinem Zustand.
|
FDEV_DYN_REQ_F_DST | SAFEDINT | Ausgangsvariable, welche die als nächstes zu verwendende F_Dest_Add für das F-Device enthält. Die Übertragung erfolgt erst bei steigender Flanke der Variablen FDEV_DYN_SET_REQ_F_DST. |
Diagnosecodes, ausgegeben mit der Variablen FDEV_DYN_DIAGCODE
Code (hex) | Bedeutung | Abhilfe |
0000 | Die Funktion ist nicht aktiviert. | Gehen Sie im sicherheitsbezogenen Applikationsprogramm wie folgt vor:
- Schreiben Sie die neue F_Dest_Add in die Variable FDEV_DYN_REQ_F_DST.
- Um die Funktion zu aktivieren, setzen Sie FDEV_DYN_MODE_F_DST auf SAFETRUE.
- Um die Adresszuweisung anzufordern, setzen Sie FDEV_DYN_SET_REQ_F_DST auf SAFERTRUE.
|
8000 | Die Funktion ist aktiv. Die F_Dest_Add wurde erfolgreich zugewiesen, wenn Error SAFEFALSE ist und wenn in FDEV_DYN_USED_F_DST derselbe Wert gelesen wird, der in FDEV_DYN_REQ_F_DST geschrieben wurde. | Wenn dies beabsichtigt war, besteht kein Handlungsbedarf.Wenn es sich hierbei um ein unbeabsichtigtes Ereignis handelt, überprüfen Sie das Anwendungsprogramm und korrigieren Sie es gegebenenfalls, schreiben Sie das geänderte sicherheitsbezogene Applikationsprogramm in die Sicherheitssteuerung und starten Sie diese neu. |
C000 | Ungültige Konfiguration der Funktion aufgrund einer ungültigen F_Dest_Add-Angabe: Der Wert in der Variablen FDEV_DYN_REQ_F_DST ist ungültig (0 oder 0xFFFF). | Überprüfen Sie das Anwendungsprogramm und korrigieren Sie es gegebenenfalls, schreiben Sie das geänderte sicherheitsbezogene Applikationsprogramm in die Sicherheitssteuerung und starten Sie diese neu. |
C003 | Die in FDEV_DYN_REQ_F_DST spezifizierte F_Dest_Add stimmt nicht mit der im F-Parametersatz übergebenen F_Dest_Add überein. Dieser Status kann nur dann erscheinen, wenn die neue Verbindung zum überlagerten F-Host aufgebaut ist. | Überprüfen Sie das Anwendungsprogramm und korrigieren Sie es gegebenenfalls, schreiben Sie das geänderte sicherheitsbezogene Applikationsprogramm in die Sicherheitssteuerung und starten Sie diese neu. |