Beispiel31: Funktionsbaustein TON in TwinCAT3 C++
Dieser Artikel beschreibt die Implementierung eines Verhaltens in C++, das vergleichbar mit einem TON Funktionsbaustein von SPS / IEC-61131-3 ist.
Source
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
Das Verhalten dieses Moduls ist vergleichbar mit einem Modul, das mit dem Cyclic IO-Assistenten erstellt wurde. m_input.Value wird dem m_Output.Value hinzugefügt. Im Gegensatz zum Modul Cyclic IO, fügt dieses Modul lediglich m_input.Value zu m_Output.Value hinzu, wenn die definierte Zeitspanne (1000ms) abgelaufen ist.
Dies wird mit Hilfe einer CTON Klasse erzielt, die mit dem TON Funktionsbaustein von SPS / 61131 vergleichbar ist.
Das Beispiel verstehen
Die C++ Klasse CTON (TON.h/.cpp) stellt das Verhalten eines TON Funktionsbausteins von SPS / 61131 zur Verfügung. Die Methode Update() ist vergleichbar mit dem Rumpf des Funktionsbausteins, der regelmäßig aufgerufen werden muss.
Die Methode Update() erhält zwei „in“ Parameter:
- IN1: Startet die Zeitschaltuhr mit steigender Flanke, setzt die Zeitschaltuhr mit fallender Flanke zurück.
- PT: Beschreibt die abzuwartende Zeit, bevor Q gesetzt wird.
Und zwei „out“ Parameter:
- Q: Ist TRUE, wenn PT Sekunden nach IN eine steigende Flanke aufwies.
- ET: Bezeichnet die abgelaufene Zeit.
Darüber hinaus muss ITcTask zur Abfrage der Zeitbasis bereitgestellt werden.