RevPiLED - Relais

Topics about the Hardware of Revolution Pi
Post Reply
kuegerls
Posts: 5
Joined: 11 Jan 2024, 15:20
Answers: 0

RevPiLED - Relais

Post 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
Best Answerby dirk » 29 Feb 2024, 15:46
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.
Go to full post
User avatar
dirk
KUNBUS
Posts: 1948
Joined: 15 Dec 2016, 13:19
Answers: 4

Re: RevPiLED - Relais

Post 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
kuegerls
Posts: 5
Joined: 11 Jan 2024, 15:20
Answers: 0

Re: RevPiLED - Relais

Post 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
User avatar
dirk
KUNBUS
Posts: 1948
Joined: 15 Dec 2016, 13:19
Answers: 4

Re: RevPiLED - Relais

Post 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.
kuegerls
Posts: 5
Joined: 11 Jan 2024, 15:20
Answers: 0

Re: RevPiLED - Relais

Post 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?
User avatar
dirk
KUNBUS
Posts: 1948
Joined: 15 Dec 2016, 13:19
Answers: 4

Re: RevPiLED - Relais

Post 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.
User avatar
dirk
KUNBUS
Posts: 1948
Joined: 15 Dec 2016, 13:19
Answers: 4

Re: RevPiLED - Relais

Post 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.
Attachments
RevPiLED SUP-6983.zip
(335.1 KiB) Downloaded 19 times
kuegerls
Posts: 5
Joined: 11 Jan 2024, 15:20
Answers: 0

Re: RevPiLED - Relais

Post 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!
Post Reply