ich möchte mit SysProcess ein Skript auf den RPi aufrufen das ein anderes Skript (lolDHT) aufruft und mir nur einen Prozesswert von einem Sensor zurück gibt.
Allerdings bekomme ich keine Werte zurück und finde den Fehler nicht.
Auch eine Veränderung der Zykluszeit über einen extra Task mit 10s hat keine Lösung gebracht.
Mein SysProzess mit Task 10s:
command1:='bash /home/pi/temp.sh';IFxExecuteSysPTHEN
  xExecuteSysP :=FALSE;
  SysProcess._(pszCommand:=command1, pszStdOut:=stdout, udiStdOutLen:=SIZEOF(stdout),pResult :=ADR(Result));
  Ergebnis :=stdout;END_IF
versuche mal dein script zu vereinfachen.. die runtime läüft schon als root also ruf doch mal direkt deinen Befehl mit SysProcess in CODESYS auf
"loldht" 7 und parse ihn oben in CODESYS.
Bei deinem script kommt als Fehler '2' zurück -> ERR_PARAMETER dieses zusammen setzen der Befehle "loldht 7 | grep" wird's sein.
Grüße
Edwin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2016-03-26
Originally created by: PI-Beginner
Hallo Edwin,
ich habe jetzt das loldht-Skript direkt in den Pfad root/lol_dht22/ Kopiert.
bzw. command1 schaut jetzt so aus: ```
command1:='/root/lol_dht22/loldht 0';
auch eine Variante mit
command1:='./lol_dht22/loldht 0';
``` bleibt ergebnislos.
Als Result erhalte ich immer 25 und stdout bleibt leer. Was bedeutet das?
Task habe ich jetzt auf 5 Sekunden eingestellt weil der Sensor meist lange braucht bis er die Werte hat.
Gruß
Jan
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi,
Result 25 bedeutet keine Rechte für dieses Kommando.
Bitte dein Befehl im /etc/CODESYSControl.cfg freishalten oder AllowAll
alle Kommandos freischalten:
[SysProcess]
Command=AllowAll
ich würde loldht direkt in /root legen oder aber alternativ /usr/bin halt irgendwo wo Linux die die Befehle finder.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2016-03-28
Originally created by: PI-Beginner
Hallo Edwin,
hab jetzt nochmal die /etc/CODESYSControl.cfg überarbeitet. Dachte ich hatte schon mal früher den SysProcess auf Command=AllowAll gesetzt. Wird dieser Eintrag bei einem Update überschrieben?
Da ich jetzt alle Daten im Codesys habe muss ich nur noch den Luftfeuchtigkeit-Wert aus dem String extrahieren (parsen).
Hast du ein Bespiel an dem ich mir Orientieren kann? Die Hilfe konnte mir nicht weiterhelfen
Danke für deine Unterstützung.
Gruß
Jan
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Originally created by: PI-Beginner
Hallo,
ich möchte mit SysProcess ein Skript auf den RPi aufrufen das ein anderes Skript (lolDHT) aufruft und mir nur einen Prozesswert von einem Sensor zurück gibt.
Allerdings bekomme ich keine Werte zurück und finde den Fehler nicht.
Auch eine Veränderung der Zykluszeit über einen extra Task mit 10s hat keine Lösung gebracht.
Mein SysProzess mit Task 10s:
Mein Skript temp.sh:
Kann mir jemand einen Tipp geben wo der Fehler ist?
Grüße
Jan
Originally created by: PI-Beginner
Hallo,
anders gefragt: Was für Bedingungen und Regeln gelten für "SysProcess" damit es sicher funktioniert?
Was geht bzw was geht nicht?
Gibt es eine andere Möglichkeit Skripte unter Linux in Codesys aus zu führen?
Grüße
Jan
Hi,
versuche mal dein script zu vereinfachen.. die runtime läüft schon als root also ruf doch mal direkt deinen Befehl mit SysProcess in CODESYS auf
"loldht" 7 und parse ihn oben in CODESYS.
Bei deinem script kommt als Fehler '2' zurück -> ERR_PARAMETER dieses zusammen setzen der Befehle "loldht 7 | grep" wird's sein.
Grüße
Edwin
Originally created by: PI-Beginner
Hallo Edwin,
ich habe jetzt das loldht-Skript direkt in den Pfad root/lol_dht22/ Kopiert.
bzw. command1 schaut jetzt so aus: ```
command1:='/root/lol_dht22/loldht 0';
auch eine Variante mit
command1:='./lol_dht22/loldht 0';
``` bleibt ergebnislos.
Als Result erhalte ich immer 25 und stdout bleibt leer. Was bedeutet das?
Task habe ich jetzt auf 5 Sekunden eingestellt weil der Sensor meist lange braucht bis er die Werte hat.
Gruß
Jan
Hi,
Result 25 bedeutet keine Rechte für dieses Kommando.
Bitte dein Befehl im /etc/CODESYSControl.cfg freishalten oder AllowAll
alle Kommandos freischalten:
[SysProcess]
Command=AllowAll
ich würde loldht direkt in /root legen oder aber alternativ /usr/bin halt irgendwo wo Linux die die Befehle finder.
Originally created by: PI-Beginner
Hallo Edwin,
hab jetzt nochmal die /etc/CODESYSControl.cfg überarbeitet. Dachte ich hatte schon mal früher den SysProcess auf Command=AllowAll gesetzt. Wird dieser Eintrag bei einem Update überschrieben?
Da ich jetzt alle Daten im Codesys habe muss ich nur noch den Luftfeuchtigkeit-Wert aus dem String extrahieren (parsen).
Hast du ein Bespiel an dem ich mir Orientieren kann? Die Hilfe konnte mir nicht weiterhelfen
Danke für deine Unterstützung.
Gruß
Jan