Master_Modbus_Status-Register umbenennen mit PiCtory

Rund um die Software von Revolution Pi
Post Reply
User avatar
Joerg
Posts: 5
Joined: 28 Feb 2020, 07:33
Answers: 0

Master_Modbus_Status-Register umbenennen mit PiCtory

Post by Joerg »

Hallo,
wenn ich im Web-UI das Master_Modbus_Status-Register umbennene, z.B. in "Modbus_Master_Status_NEU" kann ich es mittels piTest zwar auslesen, aber der Inhalt ist immer 255. Ich habe festgestellt, dass ich in der Konfigurationsdatei (_config.rsc) zusätzlich noch

Code: Select all

"ModbusMasterStatus_ModbusTCPMaster_20180122_1_1": "Modbus_Master_Status_NEU",
eintragen muss damit das Umbenennen funktioniert.
Hintergrund: Ich betreibe mehrere MODBUS-TCP Master und vergebe jedem Master einen eigenen, eindeutigen Status-Registernamen (statt _i02, _i03 etc...)
Ist das ein "Schönheitsfehler" oder ist das Umbenennen nicht gewollt?
Frank
Posts: 65
Joined: 09 Jan 2017, 10:46
Answers: 0

Re: Master_Modbus_Status-Register umbenennen mit PiCtory

Post by Frank »

Hallo Joerg,

eigentlich sollte ein direkter Eingriff in die _config.rsc Datei nie nötig sein - wir müssen also erst mal rausfinden, was bei Dir genau die Ursache der Problematik ist. Zuerst noch eine Rückfrage ...

Wenn ich mir ein virtuelles Modbus-Master Gerät in 'PiCtory' in die Konfiguration ziehe, den Namen des 'Modbus_Master_Status' ... Werts in 'Modbus_Master_Status_NEU' umbenenne, die Konfiguration dann speichere und mir die _config.rsc Datei anschaue, dann finde ich da nur folgenden Effekt dieser Umbenennung ganz am Ende der Input-Werte:

Code: Select all

["Modbus_Master_Status_NEU","255","8","100",false,"0096", "",""]

Ich finde nichts, das auch nur annähernd so aussieht wie Dein Eintrag:

Code: Select all

"ModbusMasterStatus_ModbusTCPMaster_20180122_1_1": "Modbus_Master_Status_NEU",

Ich denke wir müssen erst mal dieses Verständnisproblem - auf meiner Seite - aus dem Weg räumen.

Freundliche Grüße
Frank
User avatar
Joerg
Posts: 5
Joined: 28 Feb 2020, 07:33
Answers: 0

Re: Master_Modbus_Status-Register umbenennen mit PiCtory

Post by Joerg »

Hallo Frank,
vielen Dank für die schnelle Rückmeldung. Nach dem Anlegen eines neuen virtuellen Modbus-Master Gerätes existiert dieser zweite Eintrag noch nicht (extend Block ist leer). Er kommt erst, wenn unter "erweiterte Daten" des Masters abzufragende Register eingetragen werden. Danach wird der extend-Block gefüllt:

Code: Select all

            "extend": {
                "deviceMisc": {
                    "tbl_A_rowcount": "1",
                    "ModbusMasterStatus_ModbusTCPMaster_20180122_1_1": "Modbus_Master_Status_NEU2",
                    "MasterStatusReset_ModbusTCPMaster_20180122_1_1": "Master_Status_Reset_i08"
                },
Wenn jetzt "Modbus_Master_Status_NEU2" in "Modbus_Master_Status_NEU3" via Web-UI umbenannt wird, bleibt der Eintrag im extend-Block auf "Modbus_Master_Status_NEU2". Mit dieser Beschreibung müsste es nachzuvollziehen sein,.
Frank
Posts: 65
Joined: 09 Jan 2017, 10:46
Answers: 0

Re: Master_Modbus_Status-Register umbenennen mit PiCtory

Post by Frank »

Hallo Joerg,

danke für die Erläuterung - jetzt ist mir die Sache klar:

Das Problem entsteht dadurch, dass der 'extend'-Block der _config.rsc Datei aktuell nur dann refreshed wird, wenn man das 'Extended Data' Fenster nochmal öffnet und mit 'OK' wieder verlässt. Also NICHT wenn man nur den Namen eines Werts ändert. Ich bin mir nicht mehr ganz sicher, ob das seinerzeit aus Performance-Gründen so umgesetzt, oder schlicht vergessen wurde, dass eigentlich nach JEDER Änderung eines Werte-Namens auch dieser Block berücksichtigt werden muss. Sobald man einen Werte-Namen ändert läuft ja im Hintergrund eine recht komplizierte Funktion ab, die alle Namen auf Eindeutigkeit prüft. Die war bei einer komplexeren Konfiguation mit vielen Modulen zu Anfang relativ langsam.

Ich nehme das Problem jetzt mal als Bug auf und versuche es möglichst für die anstehende neue Release gleich zu beheben - schonmal danke für den Hinweis!

Als 'Workaround', um den direkten Eingriff in die .rsc Datei zu vermeiden kann ich Dir also aktuell nur das oben Beschriebene anbieten: sobald Du einen Werte-Namen geändert hast bitte nochmal kurz das 'Extended Data' Fenster des Geräts öffnen und sofort wieder mit 'OK' schliessen - dann müsste der 'extend' Block neu in die .rsc-Datei geschrieben werden!

Gruß
Frank
User avatar
Joerg
Posts: 5
Joined: 28 Feb 2020, 07:33
Answers: 0

Re: Master_Modbus_Status-Register umbenennen mit PiCtory

Post by Joerg »

Hallo Frank,
schön das Du das Problem nachvollziehen konntest und Danke für den Workaround!
Gruß,
Joerg
Frank
Posts: 65
Joined: 09 Jan 2017, 10:46
Answers: 0

Re: Master_Modbus_Status-Register umbenennen mit PiCtory

Post by Frank »

Hallo nochmal,

ich hab mir das Problem jetzt etwas näher angeschaut, weil ich mich gewundert hab, dass vor Dir noch niemand darauf gestossen ist: der Fehler tritt wohl nicht bei ALLEN Wertenamen auf, sondern nur bei den beiden Spezialfeldern 'Modbus_Master_Status' und 'Master_Status_Reset', weil die im Code an mehreren Stellen gesondert behandelt werden; deshalb ist der Fehler damals wohl unter dem Radar durchgeflogen. Aber gut, dass wir die Lücke jetzt schliessen können!

Gruß
Frank
User avatar
Ingo
Posts: 267
Joined: 10 Nov 2016, 21:56
Answers: 1
Location: Luth.Wittenberg

Re: Master_Modbus_Status-Register umbenennen mit PiCtory

Post by Ingo »

hallo,
jetzt wird mir auch klar warum ich damals immer Probleme mit den Statusabfragen und den Reset hatte und es immer zu Fehlern gekommen ist das der Modbus machte was er wollte weil die Konfiguration nicht passte. Da iat auch niemand draufgekommen da mal zu schauen, bis heute*g
Post Reply