[Beckhoff] Probleme beim auslesen des "online change count"

chrisdutz

Level-2
Beiträge
52
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich bin immer noch dabei den ADS/AMS Treiber in PLC4X zu verbessern.

Momentan lese ich beim Verbindungsaufbau die symbol-table und die data-types.

Auch Subscriben wir zu Änderungen an der symbol-version oder dem online-change counter, um mitzubekommen, dass sich das Programm geändert hat.
Hat es das, laden wir die info neu.

Nun haben wir hier einen fall, in dem dies ein recht großes Programm ist. Daher wollten wir so etwas wie einen cache bauen.

Wenn ich mich verbinde, dann lade ich zuerst diese zwei Versionen. Haben sie sich nicht geändert, dann nehmen wir die Daten aus dem cache, haben sie sich geändert, dann laden wir es neu und aktualisieren den cache.

Meine read-requests liefern auch die richtigen Versionen (Habe sie mir im TwinCat3 selbst angeschaut.
Sowie ich allerdings die Subscription anlege, bekomme ich ziemlich flott eine notification in der die zwei Versionen drin stehen. Die symbol version ist hier auch immer korrekt, die online-change version ist allerdings eine extrem hohe zahl:
139468800 = 0x08502000 (Oder 0x00205008 auf der Leitung)

Was hat es mit diesem Wert auf sich? Egal was die online-version ist, es scheint immer der gleiche Wert zu sein, den ich nach einer subscription bekomme.

Viele Grüße,
Chris
 
Hat sich zum Glück erledigt.

Ich hatte leider einen zusätzlichen Schritt in meine Verarbeitung eingebaut, der die echten datentypen in den typ-children aktualisiert hat. Dabei ist dann aber leider der offset flöten gegangen und der offset jedes kindes war bei mir 0 ... insofern hatte ich das falsche feld aboniert und deshalb nur schmodder bekommen und auch keine updates.

Viele Grüße,
Chris
 
Zurück
Oben