Page 1 of 1

Fehlermeldung: "piControl: logiRTS timeout, set all output to 0"

Posted: 25 Jan 2017, 16:32
by Timo
Hallo liebe RevPi Gemeinde!
Mein erster Beitrag hier hat leider mit einer Fehlermeldung zu tun. :oops:

Mein RevPi schreibt mir jeweils in die /var/log/kern.log und die /var/log/syslog ein mal pro Sekunde die Meldung "piControl: logiRTS timeout, set all output to 0".

Die Fehlermeldungen hören auf, so bald ich mich mit "logiCAD 3 compact" verbinde und das Projekt auf dem Pi stoppe. Starte ich es erneut, kommen auch die Fehlermeldungen wieder.
Das Ganze ging so weit, das der gesamte interne Speicher voll lief. Habe die beiden Logdateien dann per Konsole gelöscht und nach einem Neustart war wieder Platz.

Das Projekt an sich wird in "logiCAD 3 compact" als fehlerfrei angezeigt und lässt sich auch auf den Pi übertragen.
Auch wenn ich ein neues Projekt mit der Vorlage "logi.CAD 3 KUNBUS Revolution Pi Projekt" erstelle, dort die IP Adresse des Pi eintrage und das Programm übertrage und starte erhalte ich die Fehlermeldung.

Eventuell geht wegen dem vollgelaufenen Speicher auch mein Login auf der PiCore Loginseite nicht mehr. (Passwort ist noch unverändert) Dort kommt bei einem Loginversuch die Meldung "ERROR: user is not registered or input is invalid".

Irgendwelche Ideen, woran es liegen und wie ich es beheben könnte?

Re: Fehlermeldung: "piControl: logiRTS timeout, set all output to 0"

Posted: 25 Jan 2017, 16:59
by volker
Hallo Timo,
offenbar schlägt der eigebaute Watchdog bei Dir zyklisch statt einmalig zu. Wir versuchen das bei uns zu reproduzieren. Eine erste Sichtung des Codes hat keinerlei ursachen für dieses Verhalten erkennen lassen.
Für die Fehlersuche wäre es für uns hilfreich, wenn du uns mitteilen könntest, wieviele Tasks unter logi.CAD aktiv sind und welche Zykluszeit Du eingestellt hast. Könntest Du bitte in deine Antwort den Inhalt der Datei *.iecplc (Projektdatei in der die Tasks konfiguriert werden) kopieren?

zur Info und zum Verständnis:
Unser PiControl treiber prüft zyklisch ab, ob sich zwischenzeitlich logi.RTS bei den Daten des Prozessabbildes "bedient" hat. Das dafür vorgesehene Intervall passt sich eigentlich dynamisch an die in logi.CAD für die Task festgelegte Zykluszeit an. Sobald der Zugriff ausbleibt, werden die DIO und DO Ausgänge, die ja eigentlich von logi.RTS kontrolliert werden, auf den sicheren Zustand 0 gesetzt. Dies findet natürlich auch statt, wenn über den Onlinezugriff von logi.CAD die Task auf HALT gestellt wird. Der Damit verbundene Eintrag in die Log-Dateien sollte natürlich immer nur einmalig stattfinden. Warum er bei Dir zyklisch erzeugt wird, müssen wir gemeinsam klären.

Re: Fehlermeldung: "piControl: logiRTS timeout, set all output to 0"

Posted: 26 Jan 2017, 09:00
by Timo
Hallo Volker,

mit deiner Antwort hast du mir schon geholfen. :)
Der IoTask war der Schuldige. Den hatte ich mal drinnen, habe den Code dahinter aber wieder entfernt, den Task aber vergessen und keine Warnung, keinen Hinweis und keine Fehlermeldung am PC bekommen.

Code: Select all

{
	CHANNEL RevolutionPiChannel
		TCP
			ADDRESS := 192.168.1.100;
			PORT    := 1534;
		END_TCP
	END_CHANNEL
}

CONFIGURATION RevolutionPi
	RESOURCE RevolutionPiResource ON KunbusRevolutionPi { ON_CHANNEL := RevolutionPiChannel }
		{ INCLUDE_GLOBALS hardwareConfig }
		
		{IO} TASK PressenTask(INTERVAL := TIME#20ms, PRIORITY := 38229);
		TASK IoTask(INTERVAL := TIME#1000ms, PRIORITY := 30000);
		
		PROGRAM Pressenprogram WITH PressenTask :
			Pressenprogramm;
	END_RESOURCE
END_CONFIGURATION

Re: Fehlermeldung: "piControl: logiRTS timeout, set all output to 0"

Posted: 26 Jan 2017, 18:48
by Ingo
Hi,

ich habe das eben einmal nachgestellt bei mir.
wenn ich die Config so eintrage wie es bei Timo der Fall ist dann kommt es be mir nach dem Start zu einer Art Rückkopplung, äusserst sich so das bei der nach starten des Programms Die Anlage ein (Grün normal dauer an) anfängt zu Blinken

ich habe da stark den Verdacht das es bei Timo dazu kommt, weil er zweimal die Task drinne hat, einmal mit 20ms und das anderemal mit 100ms
{IO} TASK PressenTask(INTERVAL := TIME#20ms, PRIORITY := 38229);
TASK IoTask(INTERVAL := TIME#1000ms, PRIORITY := 30000);


ich habe bei dieser Konfig eben dieses Problem mit Blinken
Ohne die Zeile
TASK IoTask(INTERVAL := TIME#1000ms, PRIORITY := 30000); funktioniert alles so wie es soll.
Vieleicht liegt ja bei Timo genau der Fehler begraben.

Achja ich habe sie wieder auf
{IO} TASK DefaultTask(INTERVAL := TIME#20ms, PRIORITY := 38229); stehen

gruß
Ingo

Re: Fehlermeldung: "piControl: logiRTS timeout, set all output to 0"

Posted: 27 Jan 2017, 10:22
by Timo
Hallo Ingo, habe die Zeile mit dem IoTask bei mir gestern auch schon entfernt gehabt und das war die Lösung.

Und fürs Protokoll:
Falls sich - trotz richtiger Anmeldedaten - jemand nicht an der PiCore Loginseite anmelden kann, sollte man mal die Datei /var/www/data/login.json prüfen. Die hatte bei mir durch das Zumüllen des Speichers eine Dateigröße von nur noch 0 Byte.

Re: Fehlermeldung: "piControl: logiRTS timeout, set all output to 0"

Posted: 27 Jan 2017, 10:48
by volker
Hallo Sven & Ingo,
super, wie ihr Euch da gegenseitig helft! So soll community laufen. Wir haben hier uns mal Gedanken gemacht und sind zum Ergebnis gekommen, dass es tatsächlich bei mehreren Tasks unter bestimmten Umständen zu einer gestörten Watchdogfunktion kommen kann. Wir werden zusammen mti logi.cals nach einer Lösung suchen, um dieses problem abzustellen. Im Prinzip läuft es aktuell so, dass logi.cals zyklisch IOCTL Zugriffe auf das zentrale Prozessabbild macht. Wir messen im PiControl die erste Periode nach dem Anlauf und setzen dann die Watchdogperiode auf diese gemessene Zykluszeit mal 2. Das funktioniert im single task völlig stressfrei, aber bei mehreren Tasks kann es passieren, dass bei schrägen Zykluszeitverhältnissen das erste Intervall dabei nicht zu den weiteren Intervallen passt. Wir werden im neuen Forum "Neuigkeiten & Ankündigungen" auf Updates aufmerksam machen.