Page 1 of 1
RevPiLED - Relais
Posted: 16 Feb 2024, 11:29
by kuegerls
Hallo,
mein System:
RevPi Connect S: 6.1.46-rt13-v7l, Codesys Runtime 4.10.0.0, revolutionpibridge-V1.4.1.0
RevPi Con Can
ich möchte per Relais "piTest -w RevPiLED,0" und "piTest -w RevPiLED,64" ein Gerät (CANopen Master) Ein- und Ausschalten. Funktionierte einwandfrei, wenn ich ich jedoch Codesys starte habe ich keinerlei Zugriff auf RevPiLED, weder per "piTest" noch kann ich per mapping in Codesys den Zustand ändern. Einzig nach Änderung des Bits in PiCtory, speichern als Start-Conf und Neustart des RevPi konnte ich eine Zustandsänderung herbeiführen, die anderen Methoden funktionieren weiterhin nicht.
An was kann das liegen? Bitte um Hilfe, Vielen Dank im Voraus!
LG
Stefan
Re: RevPiLED - Relais
Posted: 16 Feb 2024, 12:29
by dirk
Hallo Stefan,
sobald die CODESYS Runtime aktiv ist, übernimmt diese das Prozessabbild. Dein (paralleler) Zugriff über die Userspace Applikation "piTest" funktioniert. Jedoch nach Bruchteilen einer Sekunde wird der Wert dann wieder überschrieben.
Die Sache mit dem Default Wert via PiCtory kann ich mir nur dadurch erklären, dass CODESYS per Default nur erforderliche Variablen aktualisiert. Daher, wenn Du den Wert eingetragen hast in PiCtory und im CODESYS Projekt nicht aktualisierst, dann lässt sich das Verhalten nachvollziehen.
Du kannst das Verhalten, wie CODESYS Variablen aktualisiert, umstellen, siehe hier:
https://help.codesys.com/api-content/2/ ... interface/
Eine weitere Möglichkeit hat Amar in diesen Beitrag beschrieben, indem Du auf die Variable im Programm zugreifst:
viewtopic.php?p=15432&hilit=amar#p15430
Weiterhin gibt es noch diese Sache zu beachten - eine Änderung an der Datei "/etc/CODESYSControl_User.cfg":
viewtopic.php?p=15432&hilit=amar#p15439
Re: RevPiLED - Relais
Posted: 20 Feb 2024, 08:35
by kuegerls
Hallo Dirk,
ich greife jetzt per Programm im Codesys auf die Variable zu (habe mich an die Punkte deiner Antwort gehalten). Das Verhalten vom RevPiLED - Relais bleibt jedoch unverändert:
- Wert wird per Programm geändert
- sowohl im Codesys als auch per "piTest" wird der geänderte Wert angezeigt
- am Gerät springt der Wert jedoch wieder auf den Wert der PiCtory Konfiguration zurück
- im Codesys und auch per "piTest" wird weiterhin der vom Programm geänderte Wert angezeigt
Wieso wird der Wert weiterhin überschrieben?
LG
Stefan
Re: RevPiLED - Relais
Posted: 21 Feb 2024, 08:41
by dirk
Hi Stefan,
Das CODESYS-Anwendungsprogramm erzeugt beim Start der Steuerungslaufzeit eine config.rsc.
Mit dieser werden die Variablen im Prozessabbild (inkl. RevPiLED) auf den Standardwert aktualisiert.
Wird die Variable RevPiLED in der CODESYS-Applikation aufgerufen, so wird sie zyklisch aktualisiert.
piTest kann nur geschrieben werden, wenn das CODESYS-Programm läuft und die RevPiLED-Variable nicht aus der Anwendung aufgerufen wird.
Beim Start der CODESYS-Laufzeit wird die Variable RevPiLED auf Null gesetzt, da ein Treiber-Reset durchgeführt und das Prozessabbild in den Ausgangszustand zurückgesetzt wird.
Im Allgemeinen sollte die gleichzeitige Verwendung von piTest und CODESYS zum Schreiben von Ausgaben in das Prozessabbild vermieden werden.
Re: RevPiLED - Relais
Posted: 21 Feb 2024, 10:47
by kuegerls
Hallo Dirk,
ich verwende piTest nur mehr zum Lesen des Wertes von RevPiLED.
Beim Starten der Steuerungslaufzeit verhält sich die Variable auch so wie du es beschrieben hast -> Standardwert.
Wenn ich jedoch den Wert per CODESYS-Programm ändere, springt der Wert sofort wieder auf den Standardwert zurück. Im CODESYS I/O Mapping wird aber der vom Programm geänderte Wert angezeigt, als Info habe ich mir auch den Wert per piTest ausgelesen, auch dort wird der geänderte und nicht der Standard-Wert angezeigt.
Warum wird der Wert noch immer in den Ausgangszustand zurück gesetzt?
Re: RevPiLED - Relais
Posted: 27 Feb 2024, 15:42
by dirk
Hi Stefan, ich werde einen Testaufbau erstellen, das ist seltsam und das Verhalten sollte nicht sein. Danke für deine Geduld.
Falls du einen
SOS-Report und deine CODESYS Applikation an
support@kunbus.com zusenden möchtest, wäre ich dankbar.
Re: RevPiLED - Relais
Posted: 29 Feb 2024, 15:46
by dirk
Hi Stefan, Das Problem kann darauf zurückzuführen sein, dass GPIOs_A_B im Codesys-Gerätebaum nicht deaktiviert sind.
CODESYS FAQ | The LEDs on the RevPi Connect are controlled, although my program does not use them, what can I do?
Das folgende Programm testet das Ein- und Ausschalten des Relaisanschlusses X2 durch Schreiben des Wertes 0 oder 64 in Abhängigkeit von einem digitalen Eingang von einem DIO-Modul.
Re: RevPiLED - Relais
Posted: 01 Mar 2024, 07:55
by kuegerls
Hallo Dirk, nach dem Deaktivieren von GPIOs_A_B im Gerätebaum funktioniert das Ein- und Ausschalten des Relais. Vielen Dank für die Hilfe!