KNX TP1 Klemme benötigt viel Zeit für eine Nachricht

Schakus

Level-1
Beiträge
20
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Forumgemeinde!
Ich habe eine TP1 Klemme für KNX im Einsatz. Das funktioniert auch alles ganz gut, jedoch benötigt die TP1 Klemme zum senden von Nachrichten zwischen 20 und 30 Sekunden.
Das ist natürlich deutlich zu viel...
Hier ein Bild, der Glastaster sendet einen neuen Wert, welcher in der Funktion der SPS empfangen wird, und als update auch wieder herausgeht (so kann die SPS ebenfalls über z.B. Visualisierung die Ausgänge schalten und es wird korrekt auf dem Taster dargestellt).

wago_1.PNG

Code:
M1_003_switch(
    bPortKNX:= 1, 
    dwIndex_DPT:= 003, 
    xSwitch_IN:= bathroom.xLight,  // top light
    xUpdate_KNX:= TRUE, 
    xSwitch_OUT=> bathroom.xLight,
    xUpdate_PLC=> );

Das ist der Code dazu. Wenn ich mit der SPS verbunden bin, sehe ich die Änderung den xSwitch_IN und xSwitch_OUT sofort, es wird jedoch erst viel später übertragen.
Woran kann das liegen?
 
Wieviele Objekte sind auf der TP1- Klemme?

Prüfe die Taskkonfiguration, hast Du den KNX- Master in einem separaten Task laufen. welche Priorität?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
TRUE auf xUpdate_KNX macht keinen Sinn, der Eingang wertet eh nur steigede Flanken aus.
Eine Wertänderung auf xSwitch_IN löst ohnehin ein Senden am KNX aus:
knx_update.JPG

...aus dem Anwendungshinweis Wago_KNX...

Warum ist in diesem FB xSwitch_IN & xSwitch_Out mit der selbigen Variable beschaltet? -Fehler!

Du sendest & empfängst gleichzeitig auf die gleiche Variable.



Warum sind einige KNX- Telegramme mit der Priorität "Hoch" gesetzt?

Das wird eigentlich nur bei Alarme o.ä. gesetzt.

Was zeigt die Auslastung im ETS- Busmonitor an?
 
Es sind momentan fast 40 Objekte und werden in Zukunft noch einige dazukommen.

Ich habe mir die Taskkonfiguration angeschaut, ich habe dort lediglich den PLC_Task und den VISU_Task.
Der KNX Master läuft mit allen Objekten in einer POU, wie könnte ich dies optimieren (diese wird im PLC aufgerufen)?

xUpdate_KNX - sorry, das war noch ein Versuch, dieses Problem selbstständig zu lösen! Habe ich noch nicht gelöscht. Bei allen anderen Objekten habe ich das nicht.

Ja du hast recht, ich habe die Variable für das Forum umbenannt. Eigentlich sind es zwei verschiedene Variablen, welche ich dann in einer Funktion setze:
Code:
M1_003_switch(
    bPortKNX:= 1, 
    dwIndex_DPT:= 003, 
    xSwitch_IN:= bathroom.xLight,  // top light
    xUpdate_KNX:= , 
    xSwitch_OUT=> bathroom.xLightKNX,
    xUpdate_PLC=> );
Ich mache dort eine Flankenauswertung und setze dann jeweils die Variable für die Web-Visiualisierung und die Hauptvariable xLight. xLightKNX ist immer der Wert, welcher aus dem KNX Bus kommt. Es gibt dann noch eine Variable xLightVIS für die Visualisierung.

Die KNX Telegramme habe ich ebenfalls als Versuch, das Problem selbsständig zu lösen, hoch gesetzt.

Die Auslastung auf dem KNX Bus ist sehr gering. Es werden wenig Daten übertragen, die meisten nämlich nur bei einer Änderung. Also es können 3 Minuten ohne Datenverkehr vergehen. Die meiste Zeit ist Ruhe auf dem Bus.
 
Was wird online im Taskmanager an Zykluszeiten angezeigt?
ggf erst mal zum testen auf Freilaufenden Zyklus stellen & den Durchschnitt des Zyklus vergleichen.

Pro TP1 können 250 Objekte verknüpft werden, wenn mehr benötigt werden können weitere TP Klemmen gesetzt werden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die durchschnittliche Zykluszeit für PLC_Task 3940, max 254.000.
Auch auf durchlaufend wird das nicht wirklich besser, schwankt um ca den gleichen Wert wie vorher.

Bringt es etwas, den KNX Task von dem Rest zu entkoppeln und gesondert im Taskmanager aufzuführen?


EDIT:
Ich habe den KNX Task entkoppelt (freilaufend und zyklisch probiert). Die Verzögerung ist immer noch sehr groß, Zykluszeit unter 1000. Ein besseres Beispiel ist die Solltemperaturverschiebung, denn der Taster sendet lediglich einen boolschen Wert für erhöhen oder verringern. Online sehe ich den neuen Solltemperaturwert auch sofort ohne verzögerung in e!cockpit, nur auf dem Taster erscheint er nicht. In ETS5 kann man sehen, wie lange die TP1 Klemme dafür benötigt:

wago_1.PNG

Code:
    M1_032_bathroom_temp_set(
    bPortKNX:= 001, 
    dwIndex_DPT:= 032, 
    rValue_IN:= bathroom.rSetTemp, 
    xUpdate_KNX:= , 
    rValue_OUT=> , 
    xUpdate_PLC=> );
Ich sende lediglich die Solltemperatur bei einer Änderung an den Taster. An der Stelle sehe ich online direkt den neuen Wert, es dauert trotzdem meist ca. 20 Sekunden, bis auf dem Taster und in ETS5 die Nachricht angezeigt wurde.

Ich habe gerade keine weitere Idee, du etwa? :)
 
Zuletzt bearbeitet:
Die durchschnittliche Zykluszeit für PLC_Task 3940, max 254.000.
Auch auf durchlaufend wird das nicht wirklich besser, schwankt um ca den gleichen Wert wie vorher.
Die Zykluswerte sind 3940 mikrosekunden zu max. 254.000 mikrosekunden?
Mach mal ein Screenshot vom Taskmanager online mit den Zykluszeiten.

Welchen Controller hast Du im Einsatz?

Was läuft noch auf dem Controller?

Ich würde zum testen mal nur die KNX- Kommunikation probieren, ein separates Prg nur mit KNX.

Je nach Umfang kann man z.B. Reglerberechnungen von Feldbuskommunikation o.ä. mit unterschiedlichen Taskprioritäten trennen.

Wie viele Klemmen sind am Controller?
 
Korrekt, sehr hohe Zykluszeiten.
wago_1.PNG

Screenshot mit KNX als extra Task.

Die SPS ist eine 750-8202

Auf dem Controller läuft bisher sonst nicht viel, paar Temperaturwerte werden gelesen und in Visu dargestellt. Bisher ist auch nur ein Raum mit einem Taster via KNX verbunden, dort passiert auch nicht viel. Heizungssteuerung ist auch noch nicht im Betrieb.

Klemmen am Controller:
- 1x 8 DI
- 3x 16 DO
- 2x 4AI RTD (Temperatursensoren)
- 1x KNX
- 1x DALI
- 1x 3 Phase POM (Strommessung)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hast Du mal Static- Analysis zur Compilierung aktiviert?
static.JPG

Wenn Du keine Lizenz hierfür hast, wird eine Light Version angezeigt.


Vermutlich ist irgendwas im PRG, was hier ausbremst.

Kannst Du vielleicht zum testen ein neues PRG nur mit der KNX Kommunikation aufspielen?
Die Klemmen (DALI, POM usw.) können ja am PFC gesteckt bleiben.

Wir haben einige TP1 Klemmen im Einsatz.

Bin gerade an einem Projekt mit 2 TP1 (je 180 KNX Objekte) , 3 DALI Master( je 40 EVG) + Modbus TCP Kommunikation an einem PFC8212.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hier mal zum Vergleich ein PFC100 mit einer TP1( ca. 80 Objekte) eines Therapiezentrum, der ist gerade für mich per VPN erreichbar.
zykus.JPG

Klar ist jetzt geschlossen, ist aber trotzdem "Musik" auf dem KNX (Temperaturregler, Luftfeuchtigkeit usw.)
 
Ich habe eben die Analyse ausgeführt. Keine Warnungen.

Ich habe alle anderen Funktionen auskommentiert, ohne Erfolg.

Firmware Revision: 03.01.07(13)





Als Prioritäten habe ich eben den KNX Task auf 10, PLC auf 12 und VISU auf 15 stehen gehabt.

Leider hab ich mir mein Projekt gerade wohl mit dem Taskmanager abgeschossen... Es kam eine Fehlermeldung, dass mein Task nicht gelöscht werden konnte und ich eine Email an Wago senden soll. Jetzt kommen beim erstellen von Tasks immer Fehlermeldungen. Ich werde das Projekt wohl in ein neues kopieren müssen...
 
Hast Du mal per SSH/ Linux Console HTOP aufgerufen?
htop.JPG

Dort könnte man die Auslastung sehen, vielleicht sogar womit die CPU beschäftigt ist.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hab ich mir eben angesehen, Auslastung erzeugt nur ein codesys Task, zwischen 15 und 25% dauerhaft.

Ich sehe online ja direkt meinen neuen Soll Temperaturwert, dieser ändert sich sofort, jedoch löst die TP1 Klemme nicht sofort ein Paket mit diesem Wert aus.
 
Hab ich mir eben angesehen, Auslastung erzeugt nur ein codesys Task, zwischen 15 und 25% dauerhaft.

Ich sehe online ja direkt meinen neuen Soll Temperaturwert, dieser ändert sich sofort, jedoch löst die TP1 Klemme nicht sofort ein Paket mit diesem Wert aus.

Wo siehst Du die Änderung des Soll Temperaturwert online? Im Wago-PRG?

Zur Not rudimentär den PFC nur mit TP1 und KNX PRG an KNX NG & einem KNX Taster u.ä. testen.

Putzig, so ein Verhalten der TP1....

In der ETS ist die Klemme "nur" als TP1 eingefügt, nicht in Kombination als Router u.ä.?
knx.JPG
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich kann den Wert am rValue_IN der KNX Funktion sehen, auch direkt die Änderung des Wertes, trotzdem wird der neue Wert nicht sofort gesendet. Das erkennt man ja auch mit ETS5...

Ich werde jetzt das Projekt neu erstellen und dann noch einmal versuchen.

EDIT: ein Neustart von e!Cockpit hat den Bug vom Taskmanager behoben. Also kann ich mir die Arbeit sparen, ein neues Projekt zu erstellen.
 
Der Status ist immer 'OK'.

Was interessant ist, nach einem warmen Reset, kann ich 1, manchmal 2 mal in Echtzeit die Temperatur verstellen, siehe Foto:
wago_1.PNG

Danach geht das nicht mehr oder vielleicht im richtigen Moment...
Man erkennt auf dem Foto, dass die TP1 nur wenige Millisekunden später schon den Wert sendet, wie es sein soll. Das macht sie 2x und dann nicht mehr. Der Status ist immer OK.
Ich denke das könnte etwas mit der KNX Config und den ganzen Objekten zusammenhängen. Ich möchte diese ungerne löschen, denn das hätte in ETS5 einiges an Arbeit zur Folge, ich werde sie jedoch noch einmal kontrollieren.

Hast du noch eine Idee?
 
Zurück
Oben