Hallo zusammen,
ich habe ein Script via CODESYS zu starten. Die Steuerung läuft auf einem Raspberry Pi 3. Das Ziel ist ein Screenshot durch einen Knopfdruck oder Eingang zu erstellen. Dafür benutze ich das "Sys Process Execute Command" Kommando. Dafür habe ich die Bibliotheken eingebunden und die CODESYSControl.cfg folgendermaßen angepasst:
Auf dem Raspberry habe ich folgendes Script erstellt:
und es ausführbar gemacht mit
Schließlich habe ich das Script mit dem Raspberry Terminal getestet (Eingabe im Terminal: "takeScreenshot") und es funktioniert wunderbar.
In CODESYS habe ich folgenden Codeblock erstellt:
Das Problem... Es funktioniert nicht. Als Result bekomme ich eine "0" zurück. Wenn ich als sCommand "reboot" oder "ifdown" eingebe funktioniert das ohne Probleme. Wenn ich "takeScreenshot" funktioniert es nicht, obwohl wenn ich das Kommando genau so in das Terminal eingebe es funktioniert... :(
Die Leerzeichen bei dem Kommando sind in meinem Code natürlich nicht drin, aber irgendwie bekomme ich Probleme wenn ich das hier im Editor zusammen schreibe :confused:.
Ich bin für jede Hilfe dankbar.
Viele Grüße
Andreas
ich habe ein Script via CODESYS zu starten. Die Steuerung läuft auf einem Raspberry Pi 3. Das Ziel ist ein Screenshot durch einen Knopfdruck oder Eingang zu erstellen. Dafür benutze ich das "Sys Process Execute Command" Kommando. Dafür habe ich die Bibliotheken eingebunden und die CODESYSControl.cfg folgendermaßen angepasst:
Code:
[SysProcess]
Command=AllowAll
Auf dem Raspberry habe ich folgendes Script erstellt:
Code:
#!/bin/sh
DISPLAY=:0 scrot -d 1 'screenshot.png'
und es ausführbar gemacht mit
Code:
sudo chmod +x /usr/bin/takeScreenshot
Schließlich habe ich das Script mit dem Raspberry Terminal getestet (Eingabe im Terminal: "takeScreenshot") und es funktioniert wunderbar.
In CODESYS habe ich folgenden Codeblock erstellt:
Code:
IF take_Screenshot AND NOT take_Screenshot_old THEN
sCommand := 'takeScreenshot';
SysProcess.Sys Process Execute Command(sCommand, ADR(Result));
END_IF
take_Screenshot_old:=take_Screenshot;
Das Problem... Es funktioniert nicht. Als Result bekomme ich eine "0" zurück. Wenn ich als sCommand "reboot" oder "ifdown" eingebe funktioniert das ohne Probleme. Wenn ich "takeScreenshot" funktioniert es nicht, obwohl wenn ich das Kommando genau so in das Terminal eingebe es funktioniert... :(
Die Leerzeichen bei dem Kommando sind in meinem Code natürlich nicht drin, aber irgendwie bekomme ich Probleme wenn ich das hier im Editor zusammen schreibe :confused:.
Ich bin für jede Hilfe dankbar.
Viele Grüße
Andreas