LinuxSysCallSync2
Baustein-Typ:
Verhaltensmodell:
Bibliothek:
Symbol in CODESYS:
Beschreibung
Der FB übergibt einen Linux-Befehl mit Parametern (max. 255 Zeichen) an das Betriebssystem des
Geräts und gibt den Rückgabewert des Befehls aus. Die Standardausgabe (stdout) des Linux-Befehls
wird in einem String-Puffer gespeichert.
Der übergebene Befehl wird synchron zum aufrufenden IEC-Task ausgeführt, das bedeutet:
•
Während der Ausführung des Befehls wird die Abarbeitung des IEC-Task blockiert.
•
Mögliche unerwünschte Effekte bei der Abarbeitung der IEC-Applikation durch einen lang
andauernden Linux-Befehl, z.B. beim Kopieren großer Datenmengen.
u Bei lang andauernden Befehlen die FBs für asynchrone Befehlsausführung verwenden:
•
(Ò LinuxSysCallAsync / 168)
•
(Ò LinuxSysCallAsync2 / 170)
Eigenschaften des Puffers für die Standardausgabe
•
mögliche Puffergröße 1...10000 Bytes
•
Wenn die Standardausgabe eines Linux-Befehls größer ist, als die definierte Puffergröße, werden
nicht alle Informationen im Puffer gespeichert und gehen teilweise verloren.
•
Beispiel mit definierter Puffergröße = 1000 Bytes (→ folgendes Programmierbeispiel):
– Bei einer Länge der Standardausgabe von 1500 Bytes gehen die Bytes 0...499 der
Standardausgabe verloren. Die Bytes 500...1499 der Standardausgabe sind anschließend im
Puffer (psCmdStdOut) enthalten.
Programmierbeispiel:
VAR
sCmdStdOut : STRING(1000); /// buffer size
instLinuxSysCallSync2.psCmdStdOut : LinuxSysCallSync2; /// instance of FB
END_VAR;
instLinuxSysCallSync2.psCmdStdOut := ADR(sCmdStdOut);
Eingangsparameter
Parameter
Datentyp
xExecute
BOOL
174
Funktionsbaustein (FB)
EXECUTE
ifmDevice_ecomatDisplay.library
Beschreibung
Ausführung des FB steuern
Mögliche Werte
FALSE => TRUE
FB wird einmal
ausgeführt
sonst.
keine Auswirkungen
auf FB-Abarbeitung