Java ADS Notification

Aleksander

Level-2
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Tag zusammen,

derzeit versuche ich per Java durch Notifications auf Variablen in einem TwinCat Programm zuzugreifen.
Ich habe mich dabei an dem Tutorial für TwinCat 3 orientiert und die "adsSyncAddDeviceNotificationReq" genutzt. Das Beispiel, dass Beckhoff bereitstellt nutzt für die Identifikation der Variable IndexGroup und IndexOffset und das funktioniert auch für die Variable im Beispiel wie vorgesehen.
Mein Problem ist: ich verstehe nicht, wie ich eine andere Variable für den Prozess nutzen kann, da ich nicht weiß wie ich IndexGroup und IndexOffset ändern muss. Die Dokumentation war dabei bisher keine Hilfe.
Mein Ziel wäre es Variablen im GVL bereich per Notifications zu überwachen.
Könnte mir wer erklären, wie ich gezielt die Notifiactions auf Variablen anwende?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich würde die Variable symbolisch abonnieren und nicht mit IndexGroup und Offset. Schau mal, das gibt es bestimmt eine Methode mit dem Namen adsSyncAddDeviceNotificationReqEx oder so ähnlich(habe jetzt keine Zeit zum Nachsehen), die die symbolische Adressierung unterstützt. Sonst musst Du erst mal für jede Variabe Group und Offset ermitteln. Ist aufwendiger.
 
Ah, das ist in verschieden Überladungen organisiert. Nimm doch gleich die erste Überladung.

https://infosys.beckhoff.com/content/1033/tc3_adsnetref/7313418379.html?id=3506401860066236991

Gleich der erste Parameter variableName vom Typ String muss das qualifizierte Symbol enthalten, also so: "<Name der GVL>.<Name der Variablen>".
Dann sollte es symbolisch gehen.

Übrigen, wenn ich mich nicht verzählt habe, gibt es 4 Überladungen, die symbolisch funktionieren.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Dass hatte ich auch schon gesehen, dass scheint aber der .NET API vorbehalten zu sein. Die Java API scheint diese Funktionalität nicht zu bieten.
Ich integriere ADS über ein Beckhoff GitHub Projekt für eine JNI basierte Integration (https://github.com/Beckhoff/AdsToJava).
Aktuell sieht es so aus, als ob ich die Werte für IndexOffset und IndexGroup immer erst bestimmen muss für die Variablen.
 
Bei Java bin ich tatsächlich raus, weil ich mit .NET arbeite. Aber schau mal hier, ist das nicht genau, was Du suchst?
 
Fast, da ich das per Notification machen wollte. Ich habe jetzt eine Lösung:
Es gibt definierte IndexGroups in der eine Values by Handle sucht (0xf005), dann bestimme ich separat den Handle für die Variable beim Erstellen der Notification.
Danke für die Hilfe.
 
Zurück
Oben