# Modbus-Master-Konfigurator: Modbus RTU zyklisch Lesen, nur bedingt Schreiben



## PacmanII (15 Januar 2020)

Hallo zusammen,


ich lese mit 750-8202 Controllern mehre Thermokon WRF04 Raumbediengeräte aus (Temperatur, Soll-Temp-Offset, Raumbelegung (über Taster toggelbar, Status wird durch LED signalisiert)). Das funktioniert seit vielen Monaten über den Modbus-Master-Konfigurator mit Modbus RTU problemlos. Nun soll in den Raumbediengeräten die Raumbelegung von extern geschaltet, sprich geschrieben werden. (Hintergrund: Raumbuchungen erfolgen über einen externen Kalender, welcher den Sollwert für die Raumbelegung über Modbus TCP zur Wago schickt, das funktioniert auch alles schon und soll hier keine Rolle spielen)


Woran es bei mir hapert, ist das Schreiben des Wertes in das Raumbediengerät. Im Modbus Master Konfigurator kann ich ja einen Wert zum Schreiben anlegen, das hab ich auch schon getan. Allerdings wird dann der Sollwert dauerhaft geschrieben, was dazu führt, dass der Benutzer den Taster am Raumbediengerät nicht mehr verwenden kann, da die Wago die Belegung ständig überschreibt. 


Den alten Wert erst vom Gerät zu lesen und dann gleich wieder in das Gerät zurück zu schreiben habe ich auch schon versucht, allerdings führt das dazu, dass bei ungünstigem Timing ein Tastendruck am Gerät untergeht wenn das Lesen noch vor dem Tastendruck geschieht und das Schreiben danach (sieht für den Benutzer so aus, als ob der Taster prellt, da die LED kurz an- und danach gleich wieder ausgeht). Das ist also auch keine schöne Lösung.

Ich möchte also nur bei Änderung der Soll-Raumbelegung den Wert einmalig an das Gerät schreiben, ansonsten nur lesen. Hat das schon mal jemand hinbekommen bzw. geht das mit dem Modbus-Master-Konfigurator überhaupt? Evtl. durch Anpassung des vom Konfigurator generierten Codes?

Bin für jede Hilfe oder Anregung dankbar!

*Ergänzung: ich verwende noch Codesys 2.3*


----------



## Tobsucht (15 Januar 2020)

Hallo,

wir hatten schon in anderen Threads das Ergebnis, dass der Konfigurator nur zyklisch arbeitet.
Wenn Du Werte nur einmal schreiben willst, muss Du das selbst ausprogrammieren.
Du kannst den Modbus_Extended_Master aus der Bibliothek modb_l05.lib verweden.

Grüße


----------



## PacmanII (15 Januar 2020)

Hm, danke für deine Antwort. Das von Hand zu programmieren scheint auf den ersten Blick nicht ganz einfach zu sein. Weißt du ob man wenigstens den Konfigurator mit Handcode kombinieren kann, also alle Leseoperationen über den Konfigurator und die Schreiboperationen von Hand über modb_l05 implementieren? Oder kommt sich das dann gegenseitig in die Quere?


----------



## holgermaik (15 Januar 2020)

Hallo Pacemann


> Weißt du ob man wenigstens den Konfigurator mit Handcode kombinieren kann


Du kannst den Code vom Konfigurator umschreiben, macht aber keinen Sinn.

Dein Stichwort wäre "MODBUS_EXTENDED_MASTER" und "JobList". Im Wagohinweis "A102607d" ist alles erläutert.

Ich habe früher 12 Thermokon betrieben mit einer Jobliste von 36 Jobs. Job 1- 12 wurden immer abgearbeitet um Daten lesen, im Job 13 - 24 wurden Worte geschrieben (z.B. neuer Sollwert, Raumbelegung, ...) im Job 25 - 36 worden Coil geschrieben (Anzeige von Symbolen).
Der Indexzähler lief dabei also immer von 1 - 12. Wollte ich z.B. in Adresse 2 den Sollwert ändern habe ich den Indexzähler einmalig nach 12 auf 14 gesetzt. Somit wurde dann einmalig schreiben auf Adresse 2 angestoßen. Genauso bei den Piktokrammen (z.B. das Heizsymbol) im Job 26 für Adresse 2.

Holger


----------



## PacmanII (16 Januar 2020)

Hey danke für den Anwendungshinweis, den kannte ich tatsächlich noch nicht. Damit hält sich das von "Hand programmieren" tatsächlich in Grenzen. Ich experimentiere mal damit rum...


----------



## snoety (6 November 2022)

Moin, hab ein ganz ähnlichen Anwendungsfall, und zwar bei einem Stulz4web Modul. Jedoch findet die Anbindung dort über Modbus TCP statt. Gibt es da auch eine Lösung mit einer Joblist oder Ähnlichen?


----------



## Tobsucht (7 November 2022)

Der Modbus Master Konfigurator unterstützt auch Modbus TCP.
Alternativ von Hand mit ETHERNET_MODBUSMASTER_TCP aus WagoLibModbus_IP_01.


----------



## snoety (7 November 2022)

Ja ich weiß das der Konfigurator Modbus TCP auch unterstützt. Jedoch schreibt dieser es immer Zyklisch. Ich möchte aber das nur temporär geschrieben wird.
Werde dann mal den ETHERNET_MODBUSMASTER_TCP probieren


----------

