Schreiben von Doppelworten
Servus Thomas,
ich glaube einen Fehler beim Schreiben von Datendoppelworten festgestellt zu haben (auch mit der letzten Version 0.5).
Im Visualisierungssystem (Zenon) ist eine Doppelwortvariable auf DB309.DBD8 definiert (belegt dadurch die Bytes 8, 9, 10, 11). Das Lesen (Anzeige in der Visualisierung) funktioniert, jedoch beim Schreiben bleibt der Wert unverändert, solange man kleine Zahlenwerte eingibt (Zahlenwerte kleiner 2^24, so dass das höherwertigste Byte 8 gleich Null bleibt).
Bei Eingabe von Werten, die auch das höherwertigste Byte "benötigen", verändert sich der Wert, jedoch ist das zurückgelesene Ergebnis anders, weil die Bytes 9,10,11 nicht geschrieben werden.
Die Angefragten Daten an PLCSIM zeigen auch, dass nur Byte 8 geschrieben wird (Auszug - die Read Einträge von DB309 stammen vom Lesezyklus vorher):
Read PLCSim: DB309.DBB8
Read PLCSim: DB309.DBB9
Read PLCSim: DB309.DBB10
Read PLCSim: DB309.DBB11
Read PLCSim: DB309.DBB12
Read PLCSim: DB309.DBB13
Read PLCSim: DB309.DBB14
Read PLCSim: DB309.DBB15
Write PLCSim: DB309.DBB8
Bei einer auf Byte 10 definierten Wortvariable (belegt die Bytes 10, 11) funktioniert hingegen das Lesen und Schreiben einwandfrei, die Log-Einträge zeigen auch, dass Byte 10 und 11 geschrieben werden.
Read PLCSim: DB309.DBB8
Read PLCSim: DB309.DBB9
Read PLCSim: DB309.DBB10
Read PLCSim: DB309.DBB11
Read PLCSim: DB309.DBB12
Read PLCSim: DB309.DBB13
Read PLCSim: DB309.DBB14
Read PLCSim: DB309.DBB15
Write PLCSim: DB309.DBB10
Write PLCSim: DB309.DBB11
Mit einer echten CPU sind mir mit Zenon keine Probleme beim Schreiben von Doppelwortvariablen bekannt, daher gehe ich davon aus, dass die Schreibtelegramme an NetToPLCSim die richtigen Datentypkennungen, usw. enthalten. Bei Anzeige der Angefragten Datenbereiche (Items) werden scheinbar keine Write Einträge gelistet (nur Read-Request...).
Könntest du dies bei Gelegenheit überprüfen oder mir einen Tipp geben, in welchem Quellcodefile ich am besten zuerst suchen sollte.
Danke,
Thomas H.