Ja, die Hardware-Adressen im Prozessabbild und damit auch die Modbus-Registeradressen ergeben sich automatisch nach einem immer gleichen festen Regelwerk. Wenn sich pyhsikalisch am Knoten etwas verschiebt kannst Du recht einfach auf die neuen Adressen schließen. Das Problem, Du müsstest jede im Programm verwendete Adrese anpassen, was schnell recht Aufwendig wird. Es ist daher einfacher in der Steuerungskonfiguration oder dem Modbus Master Konfigurator Variablennamen für jeden Kanal zu definieren und diese Variablen namen im Programm zu verwenden. Wenn sich dann etwas physikalisch verschiebt, brauchst Du nur in der Steuerungskonfiguration oder dem MB Master Konfigurator eine Klemme manuell einschieben. Die Adressen verschieben sich dann zwar, aber die Variablennamen bleiben gleich und referenzieren einfach auf die neuen Adressen, womit im Programm keine Änderungen vorgenommen werden müssen.
Das gleiche funktioniert mit der Java-basierten
CODESYS 2 und der HTML5 Visu von e!COCKPIT, da Du hier ja auch Variablen verknüpfst. Das setzt aber natürlich einen Controller voraus. Wenn Du jetzt mit einer anderen Visu-Software und einem Koppler arbeiten willst, musst Du natürlich den Knotenaufbau kennen oder dynamisch auslesen.
Zur Querkommunikation zum PC wird dann häufig Modbus TCP eingesetzt. Aber auch 3S hat eine gute aber teure Lösung. Wenn Du fertige und universelle Software für Applikationserstellung und Visu einsetzt, kann Dir das aber egal sein, da das automatisch im Hintergrund läuft. Es gibt hier einige gute Lösungen am Markt, alle mit Vor- und Nachteilen. Neu ist auch das WAGO building, was eine zentrale Verwaltung über die Cloud bietet. Schaut recht interessant aus, aber gearbeitet habe ich damit bisher noch nicht. Aber auch hier gilt, fertige Software mit automatischer Erkennung der Hardware und ohne das man sich über die Adressierung Gedanken machen muss.
Edit: BTW, wenn Du mit einem Koppler arbeitest und die Applikation auf einem PC in der "Ferne", dann kannst Du bei Netzwerkausfall nicht mal mehr Dein Licht einschalten
Ich würde daher immer einen Controller einsetzen. Und mit der WebVisuApp oder e!COCKPIT ist die Visualisierung ja auch schnell auf dem Tablet oder Smartphone.