OP
themasterchris
Level-2
- Beiträge
- 73
- Reaktionspunkte
- 1
-> Hier kostenlos registrieren
also bei length = 40 bekomm ich den Fehler 8389 statt 8383 das geht also auch nicht.
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
16#8389 | Ungültige Datenbereich-Definition:
| Überprüfen Sie die Definition der Datenbereiche. Siehe Kapitel Zugriff auf Datenbereiche in DBs anstelle des direkten Zugriffs auf MODBUS-Adressen ab Version V4.0 |
Die hohen Registernummern sind überhaupt kein Problem. Dafür gibt es von Siemens den HR_Start_Offset.Dann hast Du Pech, Du kannst keine Variablen mit so hohen Registernummern in einen DB schreiben.
Da ist bei Siemens zweicks 16 bit Adressierung dann der Baustein zu klein.
Vielleicht adressiert der Modbus-Master falsch oder anders als erwartet? Oder liest manchmal zusätzliche nicht vereinbarte Register z.B. für Verbindungstest?Der Fehler 8383 steht nicht dauerhaft an. Jedoch kommt er immer wieder mal.
Bei Modbus muss man immer damit rechnen, dass der Partner die Register +/-1 anders zählt als vereinbart/dokumentiert. Deshalb würde ich den Holdregister-DB zunächst vorsichtshalber mit mindestens 1 Reserve-Registerpaar davor und danach deklarieren. Ich würde auch nicht einfach Array[19006..19043] of Word deklarieren, sondern eine Struktur mit den richtigen Datentypen deklarieren, umso einfacher wird dann das kopieren der Aktualwerte in die Holdregister:laut Aussage des Gegenüber möchte er die Daten nun folgendermaßen abholen:
L1-L2 -> 19006
L2-L3 -> 19008
L3-L1 -> 19010
P Gesamt -> 19026
Q Gesamt: -> 19042
Aber was muss ich da jetzt im HR_Start_Offset einstellen, damit es klappt?
Wir verwenden essentielle Cookies, damit diese Website funktioniert, und optionale Cookies, um den Komfort bei der Nutzung zu verbessern.
Siehe weitere Informationen und konfiguriere deine Einstellungen