Beispiel07: Empfang von ADS Notifications
Dieser Artikel beschreibt die Implementierung eines TC3 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 C++ Modulen aus betrachtet werden.
Download
Hier erhalten Sie den Quellcode für dieses Beispiel.
- 1. Entpacken Sie die heruntergeladene ZIP-Datei.
- 2. Öffnen Sie mittels eines Visual Studios, in dem TwinCAT installiert ist, das Projekt über Open Project ….
- 3. 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 erhalten Sie hier. - 4. Wählen Sie Ihr Zielsystem aus.
- 5. Bauen Sie das Beispiel (z. B. Build->Build Solution).
- 6. 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