Seite 1 von 2

Wiregate-Plugin Multi-RTR im TWS: Wer nutzt es und kann mal kurz analysieren

Verfasst: So Dez 22, 2019 8:53 am
von Robosoc
Wer von Euch nutzt das Wiregate Plugin Multi-RTR und könnte einmal kurz im Busmonitor analysieren, wie es sich bei Euch verhält?

Mir ist aufgefallen, dass eine Telegramm auf einer Sollwert-Adresse unmittlebar innerhalb von 3-5 Sekunden 1-3 Telegramme auf eine Ventilstellungs-Adresse erzeugt. Meist sind es 3 Telgramme. Könnt Ihr das bestätigen?

Re: Wiregate-Plugin Multi-RTR im TWS: Wer nutzt es und kann mal kurz analysieren

Verfasst: Mi Dez 25, 2019 7:30 pm
von Chris M.
Was genau suchst Du bzw. willst Du wissen?
(Und wie viele Regler hast Du bei Dir im Multi-RTR laufen?)

Re: Wiregate-Plugin Multi-RTR im TWS: Wer nutzt es und kann mal kurz analysieren

Verfasst: Do Dez 26, 2019 10:03 am
von Robosoc
Moin Chris,

seit einigen Wochen habe ich 18 Regler im Multi-RTRT am Laufen: Hier mal die aktuelle Config:

Code: Alles auswählen

# Configuration:
%controllers = (
#1. Obergeschoss
'R10' => {'SetPointGA' => '1/4/3',  'SetPointRRD' => 'R10_Soll', 'SensorGA'   => '1/4/7',  'ActuatorGA' => '1/4/0',  'ActuatorRRD' => 'R10_Stell', 'ProportionalGain' => 5,  'IntegralTime' => 240 },
'R11' => {'SetPointGA' => '1/4/13', 'SetPointRRD' => 'R11_Soll', 'SensorGA'   => '1/4/17', 'ActuatorGA' => '1/4/10', 'ActuatorRRD' => 'R11_Stell', 'ProportionalGain' => 5,  'IntegralTime' => 240 },
'R12' => {'SetPointGA' => '1/4/23', 'SetPointRRD' => 'R12_Soll', 'SensorGA'   => '1/4/27', 'ActuatorGA' => '1/4/20', 'ActuatorRRD' => 'R12_Stell', 'ProportionalGain' => 5,  'IntegralTime' => 240 },
'R13' => {'SetPointGA' => '1/4/33', 'SetPointRRD' => 'R13_Soll', 'SensorGA'   => '1/4/37', 'ActuatorGA' => '1/4/30', 'ActuatorRRD' => 'R13_Stell', 'ProportionalGain' => 5,  'IntegralTime' => 240 },
'R14' => {'SetPointGA' => '1/4/43', 'SetPointRRD' => 'R14_Soll', 'SensorGA'   => '1/4/47', 'ActuatorGA' => '1/4/40', 'ActuatorRRD' => 'R14_Stell', 'ProportionalGain' => 5,  'IntegralTime' => 240 },
'R15' => {'SetPointGA' => '1/4/53', 'SetPointRRD' => 'R15_Soll', 'SensorGA'   => '1/4/57', 'ActuatorGA' => '1/4/50', 'ActuatorRRD' => 'R15_Stell', 'ProportionalGain' => 5,  'IntegralTime' => 240 },
#2. Obergeschoss
'R20' => {'SetPointGA' => '2/4/3',  'SetPointRRD' => 'R20_Soll', 'SensorGA'   => '2/4/7',  'ActuatorGA' => '2/4/0',  'ActuatorRRD' => 'R20_Stell', 'ProportionalGain' => 5,  'IntegralTime' => 240 },
'R21' => {'SetPointGA' => '2/4/13', 'SetPointRRD' => 'R21_Soll', 'SensorGA'   => '2/4/17', 'ActuatorGA' => '2/4/10', 'ActuatorRRD' => 'R21_Stell', 'ProportionalGain' => 5,  'IntegralTime' => 240 },
'R22' => {'SetPointGA' => '2/4/23', 'SetPointRRD' => 'R22_Soll', 'SensorGA'   => '2/4/27', 'ActuatorGA' => '2/4/20', 'ActuatorRRD' => 'R22_Stell', 'ProportionalGain' => 5,  'IntegralTime' => 240 },
'R23' => {'SetPointGA' => '2/4/33', 'SetPointRRD' => 'R23_Soll', 'SensorGA'   => '2/4/37', 'ActuatorGA' => '2/4/30', 'ActuatorRRD' => 'R23_Stell', 'ProportionalGain' => 5,  'IntegralTime' => 240 },
'R24' => {'SetPointGA' => '2/4/43', 'SetPointRRD' => 'R24_Soll', 'SensorGA'   => '2/4/47', 'ActuatorGA' => '2/4/40', 'ActuatorRRD' => 'R24_Stell', 'ProportionalGain' => 5,  'IntegralTime' => 240 },
'R25' => {'SetPointGA' => '2/4/53', 'SetPointRRD' => 'R25_Soll', 'SensorGA'   => '2/4/57', 'ActuatorGA' => '2/4/50', 'ActuatorRRD' => 'R25_Stell', 'ProportionalGain' => 5,  'IntegralTime' => 240 },
#3. Obergeschoss
#Regelung der Fussbodenwaerme 
#'R30' => {'SetPointGA' => '3/4/3',  'SetPointRRD' => 'R30_Soll', 'SensorGA'   => '3/4/6',  'ActuatorGA' => '3/4/0',  'ActuatorRRD' => 'R30_Stell', 'ProportionalGain' => 3,  'IntegralTime' => 160 },
#'R31' => {'SetPointGA' => '3/4/13', 'SetPointRRD' => 'R31_Soll', 'SensorGA'   => '3/4/16', 'ActuatorGA' => '3/4/10', 'ActuatorRRD' => 'R31_Stell', 'ProportionalGain' => 3,  'IntegralTime' => 160 },
#'R32' => {'SetPointGA' => '3/4/23', 'SetPointRRD' => 'R32_Soll', 'SensorGA'   => '3/4/26', 'ActuatorGA' => '3/4/20', 'ActuatorRRD' => 'R32_Stell', 'ProportionalGain' => 3,  'IntegralTime' => 160 },
#'R34' => {'SetPointGA' => '3/4/33', 'SetPointRRD' => 'R34_Soll', 'SensorGA'   => '3/4/36', 'ActuatorGA' => '3/4/30', 'ActuatorRRD' => 'R34_Stell', 'ProportionalGain' => 3,  'IntegralTime' => 160 },
#'R35' => {'SetPointGA' => '3/4/43', 'SetPointRRD' => 'R35_Soll', 'SensorGA'   => '3/4/46', 'ActuatorGA' => '3/4/40', 'ActuatorRRD' => 'R35_Stell', 'ProportionalGain' => 3,  'IntegralTime' => 160 },
#'R36' => {'SetPointGA' => '3/4/53', 'SetPointRRD' => 'R36_Soll', 'SensorGA'   => '3/4/56', 'ActuatorGA' => '3/4/50', 'ActuatorRRD' => 'R36_Stell', 'ProportionalGain' => 3,  'IntegralTime' => 160 }, 
#Regelung der Luftwaerme
#'R30' => {'SetPointGA' => '3/4/3',  'SetPointRRD' => 'R30_Soll', 'SensorGA'   => '3/4/7',  'ActuatorGA' => '3/4/0',  'ActuatorRRD' => 'R30_Stell', 'ProportionalGain' => 5,  'IntegralTime' => 240 },
#'R31' => {'SetPointGA' => '3/4/13', 'SetPointRRD' => 'R31_Soll', 'SensorGA'   => '3/4/17', 'ActuatorGA' => '3/4/10', 'ActuatorRRD' => 'R31_Stell', 'ProportionalGain' => 5,  'IntegralTime' => 240 },
#'R32' => {'SetPointGA' => '3/4/23', 'SetPointRRD' => 'R32_Soll', 'SensorGA'   => '3/4/27', 'ActuatorGA' => '3/4/20', 'ActuatorRRD' => 'R32_Stell', 'ProportionalGain' => 5,  'IntegralTime' => 240 },
#'R34' => {'SetPointGA' => '3/4/33', 'SetPointRRD' => 'R34_Soll', 'SensorGA'   => '3/4/37', 'ActuatorGA' => '3/4/30', 'ActuatorRRD' => 'R34_Stell', 'ProportionalGain' => 5,  'IntegralTime' => 240 },
#'R35' => {'SetPointGA' => '3/4/43', 'SetPointRRD' => 'R35_Soll', 'SensorGA'   => '3/4/47', 'ActuatorGA' => '3/4/40', 'ActuatorRRD' => 'R35_Stell', 'ProportionalGain' => 5,  'IntegralTime' => 240 },
#'R36' => {'SetPointGA' => '3/4/53', 'SetPointRRD' => 'R36_Soll', 'SensorGA'   => '3/4/57', 'ActuatorGA' => '3/4/50', 'ActuatorRRD' => 'R36_Stell', 'ProportionalGain' => 5,  'IntegralTime' => 240 }, 
#4.Obergeschoss
'R41' => {'SetPointGA' => '4/4/13', 'SetPointRRD' => 'R41_Soll', 'SensorGA'   => '4/4/16', 'ActuatorGA' => '4/4/10', 'ActuatorRRD' => 'R41_Stell', 'ProportionalGain' => 3,  'IntegralTime' => 160 },
'R43' => {'SetPointGA' => '4/4/23', 'SetPointRRD' => 'R43_Soll', 'SensorGA'   => '4/4/26', 'ActuatorGA' => '4/4/20', 'ActuatorRRD' => 'R43_Stell', 'ProportionalGain' => 3,  'IntegralTime' => 160 },
#Regelung der Fussbodenwaerme 
'R40' => {'SetPointGA' => '4/4/3',  'SetPointRRD' => 'R40_Soll', 'SensorGA'   => '4/4/6',  'ActuatorGA' => '4/4/0',  'ActuatorRRD' => 'R40_Stell', 'ProportionalGain' => 3, 'IntegralTime' => 160 },
'R44' => {'SetPointGA' => '4/4/3',  'SetPointRRD' => 'R44_Soll', 'SensorGA'   => '4/4/36', 'ActuatorGA' => '4/4/30', 'ActuatorRRD' => 'R44_Stell', 'ProportionalGain' => 3, 'IntegralTime' => 160 },
'R45' => {'SetPointGA' => '4/4/3',  'SetPointRRD' => 'R45_Soll', 'SensorGA'   => '4/4/46', 'ActuatorGA' => '4/4/40', 'ActuatorRRD' => 'R45_Stell', 'ProportionalGain' => 3, 'IntegralTime' => 160 },
'R47' => {'SetPointGA' => '4/4/3',  'SetPointRRD' => 'R47_Soll', 'SensorGA'   => '4/4/56', 'ActuatorGA' => '4/4/50', 'ActuatorRRD' => 'R47_Stell', 'ProportionalGain' => 3, 'IntegralTime' => 160 },
#Regelung der Luftwaerme
#'R40_l' => {'SetPointGA' => '4/4/3',  'SetPointRRD' => 'R40_Soll_l', 'SensorGA'   => '4/4/7',  'ActuatorGA' => '4/4/9',  'ActuatorRRD' => 'R40_Stell_l', 'ProportionalGain' => 5,  'IntegralTime' => 240 },
#'R44_l' => {'SetPointGA' => '4/4/3',  'SetPointRRD' => 'R44_Soll_l', 'SensorGA'   => '4/4/7',  'ActuatorGA' => '4/4/39', 'ActuatorRRD' => 'R44_Stell_l', 'ProportionalGain' => 5,  'IntegralTime' => 240 },
#'R45_l' => {'SetPointGA' => '4/4/3',  'SetPointRRD' => 'R45_Soll_l', 'SensorGA'   => '4/4/7',  'ActuatorGA' => '4/4/49', 'ActuatorRRD' => 'R45_Stell_l', 'ProportionalGain' => 5,  'IntegralTime' => 240 },
#'R47_l' => {'SetPointGA' => '4/4/3',  'SetPointRRD' => 'R47_Soll_l', 'SensorGA'   => '4/4/7',  'ActuatorGA' => '4/4/59', 'ActuatorRRD' => 'R47_Stell_l', 'ProportionalGain' => 5,  'IntegralTime' => 240 },
);
%default = (
  'SetPointDPT'   => 9.001,
  'SensorDPT'     => 9.001,
  'ActuatorDPT'   => 5.001,
  'DisableDPT'    => 1.003,
  'SetPointInit'  => 15.0,
  'SetPointLFlag' => 0, # true
  'ActuatorLFlag' => 1, # true
  'MinUpdateRate' => 5 * 60, # 5 minutes
);

$GlobalDisableGA = '0/4/0';

$reset      = 0; # set to 1 to reset the states, run script and change to 0 again
$show_debug = 1; # switches debug information that will be shown in the log

#############################################################################
1;
Es sind einige Regler mit einer # deaktivert, diese Regel ich anders (zum Teil über den LE, zum Teil garnicht mehr).

Durch einen Absturz des TWS und der anschließenden Analyse (siehe hier), ist mir aufgefallen, dass das Plugin anscheinend manchmal einge Stellwerttelegramme innerhalb der gleichen Sekunde mehrmals sendet. Beispiel:

Bild

Das Beispiel habe ich in wenigen Sekunden ohne große Suche gefunden: In rot sind 4! Zeilen dargestellt, in denen die zweite Schnittstelle des TWS950 (daher vermute ich, dass der Ursprung die Plugins sind, diese Vermutung könnte aber auch falsch sein) innerhalb der gleichen Sekunden 4x das gleiche Telegramm gesendet hat. Warum verstehe ich nicht. Ob das Plugin im Wiregat das gleiche Verhalten hatte, kann ich leider auch nicht sagen.

Aber ein paar Minuten später wurde für die gleiche GA jeweils nur ein Telegramm erzeugt. 1x als Antwort auf eine neue Sollwertvorgabe und einmal im 5 Minuten Zyklus. Ich habe aber auch schon Fälle gehabt, wo als Antwort auf eine neue Sollwertvorgabe 3 Telegramme entstanden sind...deshalb hatte ich meine Ursprungsfrage im ersten Beitrag hier so formuliert.

Re: Wiregate-Plugin Multi-RTR im TWS: Wer nutzt es und kann mal kurz analysieren

Verfasst: Do Dez 26, 2019 10:24 am
von Robosoc
Hier noch ein Auszug aus der Schnittstellen-Statistik dazu:

Bild

Zum Zeitstempel 05:29:05 hat die Schnittstelle 1.0.102 insgesamt 13 der 15 Telegramme erzeugt. Alles sind RTR-Stellwerte. Mit Sicherheit erzeugt vom Multi-RTR. Das ist aber soweit i.O. weil keiner der Telegramme mehrfach erzeugt wurde.

Aber eine Sekunde Später mit Zeitstempel 05:29:06 sind auch noch 9 der 12 Telegramme von 1.0.102 erzeugt und beinhalten Stellwerte (also mit Sicherheit wieder das Multi-RTR als Ursprung. Hier wurde ein Telegramm 4x und eines 2x gesendet.

Re: Wiregate-Plugin Multi-RTR im TWS: Wer nutzt es und kann mal kurz analysieren

Verfasst: Do Dez 26, 2019 11:23 am
von Chris M.
Grundsätzlich sollte der den Stellwert nur bei Wertänderung (was ja im Log nicht passiert ist) oder nach MinUpdateRate senden...

Du hast ja das Debug per "$show_debug = 1;" aktiviert. Was steht denn da im Log?

Re: Wiregate-Plugin Multi-RTR im TWS: Wer nutzt es und kann mal kurz analysieren

Verfasst: Do Dez 26, 2019 11:28 am
von gbglace
Ne KNX Telegramm Wiederholung WG fehlenden ACK auf der Empfangs-KO Seite ist es auch nicht? Womöglich ist da am anderen Ende was nicht dauerstabil am Empfangen.

Re: Wiregate-Plugin Multi-RTR im TWS: Wer nutzt es und kann mal kurz analysieren

Verfasst: Do Dez 26, 2019 4:23 pm
von Robosoc
gbglace hat geschrieben: Do Dez 26, 2019 11:28 am Ne KNX Telegramm Wiederholung WG fehlenden ACK auf der Empfangs-KO Seite ist es auch nicht? Womöglich ist da am anderen Ende was nicht dauerstabil am Empfangen.
Ich glaube ich weiß, was Du meinst, aber wie würde ich das herausfinden können?

Re: Wiregate-Plugin Multi-RTR im TWS: Wer nutzt es und kann mal kurz analysieren

Verfasst: Do Dez 26, 2019 4:30 pm
von gbglace
Wenn es regelmäßig passiert in der ETS den Busmonitor mitlaufen lassen, oder Du hast am TWS ein zweites KNX-Interface dann dieses mal nicht im Applikation-Modus laufen lassen, dann hast auch im TWS die "Hintergrund"-Telegramme mit im Logging. Dann sieht man schnell, dass das ACK fehlt.

Oder den Telegrammcounter, der müsste ja runter Zählen bei jedem weiteren Ergänzungsversuch. Aber an der Stelle kann auch sein das ich das mit den Topologiestrukturen verwechsle, da es eben auch nur eine begrenzte Anzahl Telegrammdurchgänge durch Koppler geben darf.

Re: Wiregate-Plugin Multi-RTR im TWS: Wer nutzt es und kann mal kurz analysieren

Verfasst: Do Dez 26, 2019 4:34 pm
von Robosoc
Chris M. hat geschrieben: Do Dez 26, 2019 11:23 am Du hast ja das Debug per "$show_debug = 1;" aktiviert. Was steht denn da im Log?
Hier der Log, darin sehe ich jetzt erstmal keine Besonderheit. Es geht zu diesem Zeitpunkt um den Regler R20, der ist zu allen drei Zeitpunkten 0.
Ich habe den Log-Eintrag um 05:29:05 und jeweils 1x davor und danach gewählt.

Code: Alles auswählen

2019-12-26T05:18:57.055955918+01:00 PLUGIN Multi-RTR.pl write(2/4/53=R25) 21.5 -> SetPoint dt: 65.531; 
[<]R15: 21<>21.26=>0 [-0.0520000000000003/-0.000236640198826792]; 
[>]R41: 26<>25.26=>100 [0.246666666666666/1.00168378603011]; 
R13: 22<>22=>24.4035540371007 [0/0.244035540371007]; 
[<]R20: 20.5<>22.5=>0 [-0.4/-0.00182030922174454];
[>]R40: 27<>25.26=>100 [0.579999999999999/1.0039591725573]; 
[>]R21: 25<>22.5=>100 [0.5/1.00227538652718]; 
[<]R25: 21.5<>23.5=>0 [-0.4/-0.00182030922174454]; 
R14: 22<>22=>21.484515447815 [0/0.21484515447815]; 
R10: 20<>19.75=>26.5064738160204 [0.05/0.215064738160204]; 
R22: 25<>23.26=>93.6850227665641 [0.348/0.588850227665642]; 
[<]R24: 22<>23.76=>0 [-0.352/-0.00160187211513519]; 
[>]R47: 27<>24.5=>100 [0.833333333333333/1.00568846631795]; 
[>]R44: 27<>25=>100 [0.666666666666667/1.00455077305436]; 
R12: 20.5<>20.5=>0 [0/0]; 
[<]R11: 19<>19.5=>0 [-0.1/-0.000455077305436135]; 
[>]R45: 27<>24.5=>100 [0.833333333333333/1.00568846631795]; 
R43: 22<>22=>0 [0/0]; 
[<]R23: 23.5<>23.76=>0 [-0.0520000000000003/-0.000236640198826792]; , 0s,

2019-12-26T05:29:05.764722899+01:00 PLUGIN Multi-RTR.pl write(1/4/13=R11) 19 -> SetPoint dt: 608.691; 
[<]R24: 22<>23.76=>0 [-0.352/-0.0148791013797125]; 
[>]R47: 27<>24.5=>100 [0.833333333333333/1.05283771796773]; 
R10: 20<>19.75=>26.7178246878914 [0.05/0.217178246878914]; 
R22: 25<>23.26=>95.1560248347857 [0.348/0.603560248347857]; 
[>]R45: 27<>24.5=>100 [0.833333333333333/1.05283771796773]; 
[<]R23: 23.5<>23.76=>0 [-0.0520000000000003/-0.00219804906745753]; 
R43: 22<>22=>0 [0/0]; 
[>]R44: 27<>25=>100 [0.666666666666667/1.04227017437418]; 
R12: 20.5<>20.5=>0 [0/0]; 
[<]R11: 19<>19.5=>0 [-0.1/-0.00422701743741831]; 
[>]R41: 26<>25.26=>100 [0.246666666666666/1.01563996451845]; 
R13: 22<>22=>24.4035540371007 [0/0.244035540371007]; 
[<]R15: 21<>21.26=>0 [-0.0520000000000003/-0.00219804906745753]; 
[>]R21: 25<>22.5=>100 [0.5/1.02113508718709]; 
[<]R25: 21.5<>23.5=>0 [-0.4/-0.0169080697496732]; 
R14: 22<>22=>21.484515447815 [0/0.21484515447815]; 
[>]R40: 27<>25.26=>100 [0.579999999999999/1.03677505170554]; 
[<]R20: 20.5<>22.5=>0 [-0.4/-0.0169080697496732]; , 0s,

2019-12-26T05:32:41.209504285+01:00 PLUGIN Multi-RTR.pl write(2/4/23=R22) 25 -> SetPoint dt: 215.477;
[<]R25: 21.5<>23.5=>0 [-0.4/-0.00598546994394726]; 
[>]R21: 25<>22.5=>100 [0.5/1.00748183742993]; 
R14: 22<>22=>21.484515447815 [0/0.21484515447815]; 
[>]R40: 27<>25.26=>100 [0.579999999999999/1.01301839712809]; 
[<]R20: 20.5<>22.5=>0 [-0.4/-0.00598546994394726]; 
R13: 22<>22=>24.4035540371007 [0/0.244035540371007]; 
[>]R41: 26<>25=>100 [0.333333333333333/1.00748183742993]; 
[<]R15: 21<>21.26=>0 [-0.0520000000000003/-0.000778111092713149]; 
R43: 22<>22=>0 [0/0]; 
[<]R23: 23.5<>23.76=>0 [-0.0520000000000003/-0.000778111092713149]; 
[>]R45: 27<>24.5=>100 [0.833333333333333/1.01870459357484]; 
R12: 20.5<>20.5=>0 [0/0]; 
[<]R11: 19<>19.5=>0 [-0.1/-0.00149636748598682]; 
[>]R44: 27<>25=>100 [0.666666666666667/1.01496367485987]; 
[>]R47: 27<>24.5=>100 [0.833333333333333/1.01870459357484]; 
[<]R24: 22<>23.76=>0 [-0.352/-0.0052672135506736]; 
R10: 20<>19.75=>26.7926430621907 [0.05/0.217926430621907]; 
R22: 25<>23.26=>95.6767607199091 [0.348/0.608767607199092]; , 0s

Re: Wiregate-Plugin Multi-RTR im TWS: Wer nutzt es und kann mal kurz analysieren

Verfasst: Do Dez 26, 2019 4:38 pm
von Robosoc
gbglace hat geschrieben: Do Dez 26, 2019 4:30 pm Wenn es regelmäßig passiert in der ETS den Busmonitor mitlaufen lassen,
Alles klar, danke ETS-Busmonitor läuft und über die Grafana-Schnittstellen-Analyse schaue ich, ob ich Mehrfachtelegramme habe. Dann analsysiere ich die in der ETS. Ich schicke später mal ein Ergebnis.