LösenAnheftenSchließen

Neue Eigenschaften TwinCAT 3.1

Build 4024: noch mehr Effizienz und Durchgängigkeit im Engineering

TwinCAT-Anwender erhalten über die Visual-Studio®-Startseite zielgerichtete aktuelle Informationen.
TwinCAT-Anwender erhalten über die Visual-Studio®-Startseite zielgerichtete aktuelle Informationen.

  • Integration der Visual Studio® 2017 Shell (TcXaeShell)
  • neue Startseite mit neuem RSS-Feed mit TwinCAT-Infos
  • Support von Visual Studio 2019 (Build 4024.10 und höher)

Das Variantenmanagement vereinfacht die Versionierung und Wartung der Steuerungssoftware erheblich.
Das Variantenmanagement vereinfacht die Versionierung und Wartung der Steuerungssoftware erheblich.

  • einfache Konfiguration von Maschinenvarianten
  • variantenspezifisches De-/Aktivieren von Komponenten
  • variantenspezifisches Parametrieren
  • abgebildet durch ‚bedingte Kompilierung‘ in der SPS

Die Multi-User-Funktionalität von TwinCAT erleichtert deutlich die Inbetriebnahme auch komplexer Maschinen und Anlagen.
Die Multi-User-Funktionalität von TwinCAT erleichtert deutlich die Inbetriebnahme auch komplexer Maschinen und Anlagen.

  • Mehrere Programmierer können gleichzeitig an einem SPS-Projekt arbeiten.
  • integrierter Workflow
  • verringert die Inbetriebnahmezeit
  • hohe Nachverfolgbarkeit

Weitere neue Funktionen des TwinCAT 3.1 Build 4024

  • korrigierte Zeitstempel für Datensätze z. B. via NTP-Protokoll

In größeren Anlagen mit mehreren Steuerungen sind häufig bestimmte Daten auf einem zentralen Server zu speichern, um diese aggregierten Daten anschließend auswerten zu können. Die Schwierigkeit dabei ist, dass die Zeitstempel auf den unterschiedlichen Geräten sich nicht einheitlich generieren lassen. Werden dann Daten für eine zentrale Anwendung wie z. B. TwinCAT Scope aggregiert, ist auf dem zentralen System kein genauer zeitlicher Bezug möglich. Die Systemzeiten auf den einzelnen Steuerungen können dabei für eine Synchronisierung nicht ohne weiteres nachgestellt werden, da dies die gesamte Anwendung beeinträchtigen würde. Es bleibt nur die Möglichkeit, mithilfe einer Referenzuhr die Offsets zu den lokalen Uhrzeiten zu ermitteln, wenn Zeitstempel für zu aggregierende Daten erzeugt werden.

Aber welche Referenzuhr sollte man einsetzen? Um auf eine sehr einfache Weise bereits eine mittlere Genauigkeit zu erreichen, eignet sich der kostenlose und auf allen Beckhoff-Geräten installierte (S)NTP-Service. Dieses Verfahren reicht bei verteilten Anlagen häufig aus, wenn es nur um den Vergleich von Daten geht. Für eine noch höhere Genauigkeit bietet sich das Verfahren nach IEEE 1588 an. Diese auch PTP (Precision Time Protocol) genannte Methode kann sehr genau unterschiedliche SPSen zeitlich miteinander abgleichen, bedingt jedoch eine spezielle Hardware wie die EtherCAT-Klemme EL6688. Eine weitere Steigerung der Genauigkeit ist dann nur noch durch explizite Verkabelung – also einem EtherCAT-Kabel zwischen den Geräten – möglich.

Durch die im neuen TwinCAT Build eingeführte Schnittstelle für eines dieser Verfahren lassen sich nun korrigierte Zeitstempel für unterschiedliche Daten verwenden und in aggregierten Datenbanken somit auch vergleichbare Zeitstempel erreichen.

  • bessere Übersicht im Mapping-Dialog
  • ‚Go To Definition‘ vom SPS-Prozessabbild in den SPS-Code

Für die anwenderfreundliche I/O-Konfiguration wurde der Mapping-Dialog überarbeitet. Gleichzeitig wurde ergänzt, dass vom Prozessabbild an die entsprechende Stelle im Code gesprungen werden kann.

  • Verbesserungen in der Querverweisliste (neuer Filter, Performanceverbesserungen)
  • Schlüsselwort: ABSTRACT für abstrakte FB-/Methoden-/Eigenschaftendefinition
  • verbessertes Monitoring von Interfacevariablen
  • Mini-Icons im Solution Tree zeigen Zugriffsmodifizierer
  • ENUMs als Strings in der SPS verfügbar
  • Exception-Handling via TRY-CATCH
  • vereinfachte Kommentierungsfunktion in der SPS
  • ‚Released‘ Flag bei der Bibliothekserstellung
  • bedingte Kompilierung im Deklarationsteil verfügbar (zusätzlich zu Implementierungsteil)
  • Multi-Line-Support in Pragmadeklarationen
  • optionales Speicherformat Base64 für grafische SPS-Objekte

Im Bereich der SPS wurden zahlreiche Verbesserungen eingepflegt, um noch schneller und effektiver SPS-Code entwickeln und testen zu können. Gerade bei der objektorientierten Programmierung ist das Ziel eine bessere und einfachere Wartbarkeit und Wiederverwendung von Code. Die Nutzung von Interfaces ist hierbei eine Grundeigenschaft. Bisher konnte bei der Verwendung von Interface-Pointern zwar die Adresse angezeigt werden, eine Pointer-Dereferenzierung wurde aber nicht durchgeführt. Das ist jetzt mit Build 4024 möglich und führt ebenfalls zu einem verbesserten Engineering.

In den Hochsprachen C++ und C# ist die Programmierung von abstrakten Klassen mit abstrakten Methoden und Eigenschaften weit verbreitet. Diese Möglichkeit steht dem SPS-Programmierer zur Verfügung: Mit abstrakten Klassen lassen sich einfach Muster für Bausteine oder Klassen erzeugen. Diese Muster können beim Ableiten der abstrakten Klasse mit Code gefüllt werden. Damit nähern sich die SPS-Programmierer einen Schritt an die Möglichkeiten von C++ und C# an. Ähnlich verhält es sich mit der Ausnahmebehandlung. Kommt es zu einer Ausnahme (Exception), möchte auch der SPS-Programmierer darauf reagieren. Im Fall einer Division durch Null kann es sinnvoll sein, eine bestimmte Routine auszuführen, um die Maschinein einen sicheren Zustand zu bringen und so Maschinenschäden zu verhindern.

Der Mapping-Dialog wurde dahingehend optimiert, dass nicht alle Knotenebenen aufgeklappt sind. Dies führt zu einem kleineren Scroll-Bereich und zu einer besseren Übersicht während des Anlegens einer Verknüpfung, z. B. von der SPS zum I/O. So können die gesuchten Teilnehmer in diesem Dialog einfacher gefunden werden. Eine Option ermöglicht das Umschalten zwischen der alten, der neuen und einer automatisch angepassten Ansicht. Mit dem „Go To LinkVariable“ konnte der Nutzer einfach von einem I/O-Teilnehmer zum Prozessabbild und zurückspringen. Bisher gab es aber keine Möglichkeit, vom Prozessabbild in den Code zu wechseln. Das ist jetzt mithilfe des Befehls „Go To Definition“ möglich, was die Fehlersuche erleichtert. Zudem wird das Programm übersichtlicher, da mit dieser Funktionalität auf die noch häufig verwendeten globalen Variablenlisten verzichtet werden kann.

Ein weiterer Vorteil liegt darin, dass der Programmcode von Bausteinen in grafischen Sprachen im Binärformat Base64 gespeichert werden kann. Auf diese Weise lässt sich das Laden und Speichern von Programmen mit einem hohen Anteil an grafischen Sprachen beschleunigen.

  • automatischer Start des PLC-HMI-Clients lokal auf der Runtime
  • dynamische Skalierung für die Bedienelemente der Kategorie Messgeräte
  • Offline-Rotation von Elementen
  • Performanceverbesserungen beim Öffnen von Dialogen
  • automatische Übernahme der Skalierungsoptionen des TargetVisu-Objekts in die Tc3PlcHmi.ini-Datei

Es wurden vielfältige Optimierungen für die PLC-HMI durchgeführt. Diese reichen vom automatischen Start des PLC-HMI-Clients auf den Runtimes über die dynamische Skalierung von Bedienelementen der Kategorie Messgeräte bis hin zu Performanceverbesserungen beim Öffnen von Dialogen.

  • Austausch von TcCOM-Modulen bei laufender Maschine für C++ und MATLAB®/Simulink®
  • Repository für versionierte C++-Projekte
  • neue Art der Signierung von TcCOM-Modulen

Bisher war es nur dem SPS-Programmierer möglich, im laufenden Betrieb der Maschine den Steuerungscode zu ändern. Da sich im praktischen Einsatz viele Maschinen oder Anlagen nicht oder nur selten anhalten lassen, ist das ein absolut notwendiges Feature. Wird C++ oder MATLAB®/Simulink® für die Maschinensteuerung verwendet, konnte man diesen Code bisher nur in Verbindung mit einem Maschinenneustart ändern. Dies ist allerdings in manchen Applikationen nicht zulässig. So dürfen insbesondere im Bereich von Prüfmaschinen Prozesse in der Regel nicht unterbrochen werden. Trotzdem sind immer wieder Programmänderungen erforderlich. Als Lösung für diese Anforderung hat Beckhoff im neuen TwinCAT Build die Möglichkeit implementiert, auch C++- und MATLAB®/Simulink®-Code im laufenden Betrieb auszutauschen. Hierzu wird der entsprechende Code speziell versioniert und die vorhandene Version − unter Erhalt der Daten − durch eine neuere ersetzt.

  • basiert auf dem AutomationML-Format
  • bidirektionaler Austausch von I/O-Topologien mit ECAD-Tools
  • inkrementeller Import von I/O-Topologien
  • voll integriert in TwinCAT

Basierend auf dem AutomationML-Format wird ein bidirektionaler Austausch von I/O-Topologien in das TwinCAT Engineering integriert. Dieser kann zur Interaktion mit ECAD-Tools verwendet werden und unterstützt auch inkrementelle Updates der I/O-Topologien.

  • Es können benutzerdefinierte Funktionsblöcke angelegt und beliebig oft instanziiert werden (inklusive GoToDefinition, Online View, Verschachtelung bis zu 2 Ebenen).
  • Mehrfachverwendung von Variablen
  • globale Variablen

Neben Security spielt natürlich auch Safety eine wichtige Rolle im TwinCAT-System.Deshalb wurden zahlreiche Eigenschaften ergänzt, die das Arbeiten im Safety-Bereich vereinfachen. Eine der wichtigsten Neuerungen ist die Mehrfachverwendung von Variablen. Variablen müssen somit nicht mehr eindeutig sein, sondern können auf lokaler und auch globaler Ebene – über ein gesamtes Safety-Projekt hinweg – deklariert und genutzt werden. Damit wird das Arbeiten im Bereich Safety einfacher und effektiver. Weiterhin lassen sich basierend auf bestehenden und zertifizierten Funktionsbausteinen eigene Funktionsblöcke definieren und mehrfach instanziieren. Damit muss beispielsweise eine Funktionalität wie z. B. Sicherheitstür nur einmal erstellt werden. Bei mehreren Sicherheitstüren in einer Applikation kann dieser Baustein dann einfach in mehreren Instanzen und auch mit unterschiedlichen I/O-Belegungen bzw. Parametern wiederverwendet werden.

  • „Secure ADS“-Erweiterung (nutzt TCP-Port 8016): Verschlüsselte ADS-Kommunikation

Das Beckhoff-Protokoll ADS wurde schon mit der ersten TwinCAT-Version eingeführt und im Kern nie geändert – aber natürlich immer wieder um wichtige Features erweitert. Eine neue Eigenschaft im TwinCAT Build 4024 ist, dass sicher per ADS kommuniziert werden kann. Hierbei wird eine verschlüsselte Verbindung zwischen zwei Teilnehmern aufgebaut, die dann wie gewohnt ADS-Telegramme austauschen können.

Beim Anlegen einer neuen Verbindung zwischen zwei ADS-Geräten kann die Authentifizierung über Zertifikate sichergestellt werden. Dabei werden alleTelegramme automatisch verschlüsselt. Mit TLS hat sich Beckhoff entschieden, das bekannteste Verfahren für Authentifizierung und Verschlüsselung zu nutzen. Um die Zertifikate und deren Verwaltung muss sich der Programmierer nicht kümmern. Das erledigt das TwinCAT-System selbstständig im Hintergrund. Durch die Integration in die zentrale TwinCAT-Kommunikationskomponente (TwinCAT Router) ergeben sich auch für ADS nutzende Bestandsanwendungen die Möglichkeit, durch Rekonfiguration der Verbindung eine verschlüsselte Verbindung zu nutzen, ohne dass die eigentliche Anwendung neu geschrieben oder auch nur neu kompiliert werden muss.

  • Projekt Wizard für den einfachen Einstieg in die Scope-Konfiguration
  • neue Single Bar und Digital Charts
  • Dynamic Style für die dynamische Umschaltung der Darstellung in Abhängigkeit von Variablen
  • Shapes: Einblenden von geometrischen Figuren in XY Plots
  • Vision Trigger: fügt Bilder mit Zeitstempel in den Scope Datenstrom ein
  • Headless mode: erlaubt es, den View während der Aufnahme vom Server zu trennen
  • Marker: mit Docking-Funktion an der X-Achse und Beschriftungs-Label
  • integriertes Dictionary mit physikalischen Einheiten
  • Clear Display Option, um das Chart nach Ablauf der Display-Zeit zu leeren

Mit dem neuen TwinCAT Scope New Project Wizard ist es möglich, einen einfachen und geführten Projektstart mit dem Scope View zu realisieren. Dabei können nicht nur die bisherigen YT-, XY- und Array-Bar-Charts, sondern auch die neuen Single-Bar- und Digital-Charts konfiguriert werden. Des Weiteren ist es nun möglich, mit der Dynamic-Style-Funktion das Aussehen der Graphen zur Laufzeit zu verändern. Werden Schwellwerte erreicht, kann beispielsweise die Farbe eines Kanals geändert werden. Auch geometrische Figuren lassen sich nun im XY-Chart einbauen. Eine ganz neue Funktionsgruppe bilden die Vision-Trigger: Sie ermöglichen es, Kamerabilder, die mit einem Zeitstempel versehen sind, direkt im Chart darzustellen.