Beispiel07: Empfang von ADS Notifications
Dieser Artikel beschreibt die Implementierung eines TwinCAT 3 C++ Moduls, das ADS Notifications bezüglich Datenänderungen auf anderen Modulen empfängt.
Weil jede andere ADS-Kommunikation auf ähnliche Weise implementiert werden muss, kann dieses Beispiel als allgemeiner Einstiegspunkt für die Initialisierung der ADS-Kommunikation von TwinCAT 3 C++ Modulen aus betrachtet werden.
Download
Hier erhalten Sie den Quellcode für dieses Sample:
https://github.com/Beckhoff/TC1300_Samples/tree/main/S07-AdsNotifications
- 1. Öffnen Sie mittels eines Visual Studios, in dem TwinCAT installiert ist, das Projekt über Open Project ….
- 2. Konfigurieren Sie das Signieren für dieses Projekt, indem Sie auf der Seite unter Rechtsklick auf dem Projekt->Properties->Tc Sign die TwinCAT Signierung anschalten und Ihr Zertifikat und ggf. Passwort konfigurieren.
Weitere Informationen zur Signierung der C++ Projekte im Kapitel TwinCAT. - 3. Wählen Sie Ihr Zielsystem aus.
- 4. Bauen Sie das Beispiel (z. B. Build->Build Solution).
- 5. Aktivieren Sie die Konfiguration mit einem Klick auf
.
- Das Beispiel ist einsatzbereit.
Beschreibung
Dieses Beispiel beschreibt den Empfang von ADS Notifications in einem TwinCAT C++ Modul.
Hierfür enthält die Solution 2 Module.
- Ein C++ Modul, das sich für die Abfrage von ADS Notifications einer Variablen anmeldet.
- Zum einfachen Verständnis: Ein SPS-Programm, das eine Variable MAIN.PlcVar bereitstellt.
Wenn ihr Wert sich verändert, wird eine ADS Notification an das C++ Modul geschickt. - Das C++ Modul nutzt die Möglichkeiten Meldungen aufzuzeichnen - also zum Verständnis des Codes, starten Sie einfach das Beispiel und achten dann auf den Ausgang / Fehler-Log, wenn Sie den Wert Main.PlcVar des SPS-Moduls ändern.
Die Adresse wird beim Modulübergang PREOP->SAFEOP (SetObjStatePS) vorbereitet. Die Methode CycleUpdate beinhaltet eine einfache Zustandsmaschine, die den erforderlichen ADS-Befehl sendet. Entsprechende Methoden zeigen die Empfangsbestätigungen an.
Die geerbte und überladene Methode AdsDeviceNotificationInd wird beim Eingang einer Notification aufgerufen.
Während der Abschaltung werden ADS-Meldungen beim Übergang zwecks Abmeldung versendet (SetObjStateOS) und das Modul wartet bis zum Auftreten einer Zeitüberschreitung auf den Eingang von Bestätigungen.
![]() | Beginn der Modulentwicklung Erstellen eines TwinCAT C++ Moduls mit Hilfe des ADS Port-Assistenten. Dadurch wird alles, was Sie zum Aufbau einer ADS-Kommunikation benötigen, eingerichtet. Einfach die notwendigen ADS-Methoden von ADS.h, wie im Beispiel gezeigt, verwenden und überschreiben. |
Siehe auch
