CODESYS - the IEC 61131-3 automation software

Welcome to the official CODESYS Forum by 3S-Smart Software Solutions GmbH | A member of the CODESYS Group
Deutsche Version English version russian version 
It is currently Sun Feb 17, 2019 11:25 am

All times are UTC+01:00




Post new topic  Reply to topic  [ 3 posts ] 
Author Message
 Post subject: Fehler mit dem Befehl _
PostPosted: Sat Jan 19, 2019 11:01 am 
Offline

Joined: Wed Nov 28, 2018 11:12 am
Posts: 3
Liebe Community,

ich habe bei Codesys folgendes Problem:

Ich möchte einen Rubik's Cube mit Roboter, Kamera und Pi lösen.
Mit der Kamera lese ich den Status des Würfels ein, der Roboter führt die benötigten Bewegungen mit dem Würfel aus und der Pi ist für die Steuerung und
Berechnung zuständig.
Das einlesen des Würfels klappt ohne Probleme und auch das Verdrehen des Würfels via Roboter.
Auf dem Pi läuft die neuese Codesys-Version 3.5.14.0 Außerdem habe ich eine Shell-Datei, die mir bei Übergabe des aktuellen Status des Würfels den Lösungsweg
für den Roboter in ein Textdokument auf den Pi schreibt. Dieses lese ich bei Codesys mit dem Befehl SysProcess._(pszCommand:='/home/pi/list.sh'..., aus und übergebe den Lösungsweg an den Roboter.

Lasse ich das Programm einmal durchlaufen funktioniert alles ohne Probleme.
Nun zum Problem:
Wenn ich nun jedoch ein zweites mal den Würfel lösen lassen möchte bekomme ich in Codesys die Fehlermeldung: "AUSNAHMEFEHLER" beim erneuten Aufrufversuch des Shell Skriptes.
Starte ich den Pi ein mal mit "sudo reboot" neu, lässt sich der Würfel wieder lösen. Starte ich allerdings nur die Codesys-Runtime mit "sudo restart CodesysControl" neu,
so bekomme ich wieder den gleichen Fehler.
Dies lässt natürlich vermuten, dass sich das Shell - Skript nicht richtig beendet o.ä.. Allerdings kann ich das Shell-Skript direkt über die Shell des Pi mehrmals hintereinander
und sogar mehrmals parallel ohne Probleme laufen lassen. Außerdem konnte ich nach einmaligem Durchlauf des (Codesys)Programms keine Zombie Prozesse via "htop" entdecken.
Daher vermute ich, dass bei der Codesys - Shell - Kommunikation etwas fehlschlägt.

Das Shell-Skript rufen wir bei Codesys über den Befehl SysProcess._(pszCommand :=algorithm_command, pszSTDOut:=test_string,..... auf. (siehe Screenshot)
Beim trouble-shooting habe ich zusätzlich festgestellt, dass jedes Unterprogramm genau zwei mal direkt hintereinander durchlaufen wird, obwohl ich eine standardmäßige Schrittkette für die Aufrufe der Unterprogramme verwende. (siehe Screenshot)
Allerdings werden die Unterprogramme auch im ersten Durchlauf zwei mal durchlaufen.

Über neue Lösungsansätze würde ich mehr sehr freuen :)

Da dies mein erster Eintrag in diesem Forum ist, hoffe ich das ich nichts vergessen habe. Falls ihr noch mehr Informationen oder Screenshots benötigt sagt mir doch bitte bescheid.

Vielen Dank im Voraus und beste Grüße

Lars


You do not have the required permissions to view the files attached to this post.


Top
   
PostPosted: Sun Jan 20, 2019 10:59 am 
Offline
Site Admin

Joined: Mon Sep 05, 2005 9:42 am
Posts: 3143
Hi,
denke du musst ins SPS Log schauen um mehr info über die Exception zu bekommen.
SysProcess auch in einer eigenen Task aufrufen - machst du das?
Diese while für SysProcess ? Eher nicht mach doch ne State Machine mit Case damit da nicht alles blockiert.
Nur so ein paar Ansätze.
Grüße
Edwin


Top
   
PostPosted: Sun Jan 20, 2019 12:01 pm 
Offline

Joined: Wed May 30, 2018 8:49 pm
Posts: 1
Hallo Lars
schau mal in die DoDeSys-Hilf: IEC-Aktionrn werden zweimal aufgerufen

Abarbeitungsreihenfolge in AS

Grundsätzliches Verhalten der Elemente

Aktiver Schritt: Ein aktiver Schritt ist ein Schritt, dessen Aktionen gerade ausgeführt werden. Im Online-Betrieb stellt CODESYS aktive Schritte in blau dar.

Initialschritt: Im ersten Zyklus nach Aufruf einer AS-POU wird der Initialschritt automatisch aktiv und die Schrittaktion wird ausgeführt.
CODESYS führt IEC-Aktionen mindestens zweimal aus. Das erste Mal nach Aktivwerden des Schrittes, das zweite Mal - aber erst im nächsten Zyklus - nach Deaktivieren des Schrittes.

Gruss Reinhard


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 3 posts ] 

All times are UTC+01:00


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited