Hinweise zur Dokumentation

Diese Beschreibung wendet sich ausschließlich an ausgebildetes Fachpersonal der Steuerungs- und Automatisierungstechnik, das mit den geltenden nationalen Normen vertraut ist.
Zur Installation und Inbetriebnahme der Komponenten ist die Beachtung der nachfolgenden Hinweise und Erklärungen unbedingt notwendig.

Das Fachpersonal hat sicherzustellen, dass die Anwendung bzw. der Einsatz der beschriebenen Produkte alle Sicherheitsanforderungen, einschließlich sämtlicher anwendbaren Gesetze, Vorschriften, Bestimmungen und Normen erfüllt.

Disclaimer

Diese Dokumentation wurde sorgfältig erstellt. Die beschriebenen Produkte werden jedoch ständig weiter entwickelt.
Deshalb ist die Dokumentation nicht in jedem Fall vollständig auf die Übereinstimmung mit den beschriebenen Leistungsdaten, Normen oder sonstigen Merkmalen geprüft.
Falls sie technische oder redaktionelle Fehler enthält, behalten wir uns das Recht vor, Änderungen jederzeit und ohne Ankündigung vorzunehmen.
Aus den Angaben, Abbildungen und Beschreibungen in dieser Dokumentation können keine Ansprüche auf Änderung bereits gelieferter Produkte geltend gemacht werden.

Marken

Beckhoff®, TwinCAT®, EtherCAT®, Safety over EtherCAT®, TwinSAFE®, XFC® und XTS® sind eingetragene und lizenzierte Marken der Beckhoff Automation GmbH.
Die Verwendung anderer in dieser Dokumentation enthaltenen Marken oder Kennzeichen durch Dritte kann zu einer Verletzung von Rechten der Inhaber der entsprechenden Bezeichnungen führen.

Patente

Die EtherCAT Technologie ist patentrechtlich geschützt, insbesondere durch folgende Anmeldungen und Patente:
EP1590927, EP1789857, DE102004044764, DE102007017835
mit den entsprechenden Anmeldungen und Eintragungen in verschiedenen anderen Ländern.

Die TwinCAT Technologie ist patentrechtlich geschützt, insbesondere durch folgende Anmeldungen und Patente:
EP0851348, US6167425 mit den entsprechenden Anmeldungen und Eintragungen in verschiedenen anderen Ländern.

Copyright

© Beckhoff Automation GmbH & Co. KG, Deutschland.
Weitergabe sowie Vervielfältigung dieses Dokuments, Verwertung und Mitteilung seines Inhalts sind verboten, soweit nicht ausdrücklich gestattet.
Zuwiderhandlungen verpflichten zu Schadenersatz. Alle Rechte für den Fall der Patent-, Gebrauchsmuster- oder Geschmacksmustereintragung vorbehalten.


Übersicht

In vielen Anwendungen ist es notwendig zwei oder mehr Achsen miteinander zu synchronisieren. In der TwinCAT NC PTP können Achsen aneinander gekoppelt werden. Eine Master-Achse wird dann aktiv verfahren und ein oder mehrere gekoppelte Slave-Achsen werden durch die NC synchron mitpositioniert.
Die einfachste Kopplungsart ist die Linearkopplung mit einem festen Übersetzungsverhältnis (elektronisches Getriebe).

Für manche Anwendungen ist eine komplexere, mathematisch nicht durch eine Formel beschreibbare Kopplung von Master und Slave notwendig. Diese Abhängigkeit kann durch eine Tabelle beschrieben werden, in der zu jeder Master-Position eine zugehörige Slave-Position festgehalten wird.
Die TwinCAT NC PTP bietet die Möglichkeit, eine Slave-Achse über eine Tabelle an eine Master-Achse zu koppeln (elektronische Kurvenscheibe). Dabei enthält die Tabelle eine Anzahl von vorgegebenen Stützstellen, zwischen denen die NC Position und Geschwindigkeit interpoliert.

FIFO-Achsen werden in einer FIFO-Gruppe zusammengefasst. Sie erweitern das Tabellenkonzept für beliebige, üblicherweise nicht zyklisch wiederkehrende Abläufe. Hier wird keine vor Ablauf erstellte Master-Slave-Tabelle vorgegeben, sondern die aktuellen Achspositionen werden permanent durch ein SPS-Programm "nachgefüttert". Indem die FIFO-Achsen in einer FIFO-Gruppe zusammengefasst werden, lassen sich synchronisierte Bewegungen zwischen den Achsen realisieren.

Das vorliegende Dokument beschreibt die FIFO-Gruppen anhand eines SPS-Programmes, das schrittweise erläutert wird.

NC FIFO-Achsgruppe

Zum Verfahren einer oder mehrerer Achsen in einer FIFO-Gruppe sind einige vorbereitende Schritte notwendig:

  • Alle Achsen werden im PTP-Modus auf eine Grundposition gefahren.
  • Die Achsen werden in die FIFO-Gruppe eingruppiert.
  • Der FIFO-Speicher wird vollständig oder teilweise mit Achspositionsdaten gefüllt.
  • Die FIFO-Gruppe wird gestartet und arbeitet die bisher in der Tabelle eingetragenen Positionen aus dem FIFO-Speicher ab.
  • Der FIFO-Speicher wird durch die SPS während der Abarbeitung permanent mit FIFO-Daten nachgefüllt, bis das logische Ende der Positionierung erreicht ist.

Weitere Information dazu findet sich im Kapitel TwinCAT FIFO.


Installieren und Starten

Das Beispielprogramm FIFO Axis liest die Positionsdaten einer FIFO-Gruppe aus einer Datei ein und füttert damit den FIFO-Speicher der Gruppe. Die FIFO-Gruppe wird gestartet und fährt, bis der Datenstrom abreißt. Ein Ende des Datenstromes kann nur eintreten, wenn das logische Ende der Positionierung erreicht ist oder die Datenrate beim "Nachfüttern" nicht ausreichend hoch ist.

  • Beispielprogramm Fifo Axis laden

Das Beispielprogramm verwendet die SPS-Bibliothek TcNcFifoAxis.lib, die als zusätzliches Produkt erhältlich ist. Es arbeitet mit Simulationsachsen (Achsen mit Simulationsencoder) und ist somit ohne weitere Hardware auf jedem Windows NT PC lauffähig.

Die Datei TcNcFifoAxisSample.wsm wird in den TwinCAT System Manager geladen und das System mit dieser Einstellung gestartet.

Die NC-Konfiguration enthält einen PTP-Kanal mit vier PTP-Achsen und einen FIFO-Kanal, der zunächst keine Achse enthält. Unterhalb des FIFO-Kanals wird die FIFO-Gruppe konfiguriert. Der FIFO-Speicher bietet Platz für 250 Positionseinträge für vier Achsen.

Die Zeitbasis des FIFO-Speichers ist hier 2 ms. In diesem Fall ist die Zeitbasis synchron zur Zeitbasis der NC, was jedoch nicht zwingend sein muss. Die Zeitbasis der FIFO-Einträge bestimmt, in welchem zeitlichen Abstand ein neuer Wert aus dem FIFO-Speicher zur Positionierung der Achsen herangezogen wird. Weitere Information dazu findet sich im Kapitel TwinCAT FIFO.

Die Geschwindigkeit der Achsen ergibt sich aus der Positionsdifferenz zweier benachbarter FIFO-Einträge dividiert durch die Zeitbasis der FIFO-Einträge. Diese Geschwindigkeit kann durch Änderung des Kanal-Overrides beeinflußt werden. Der Override kann während der Positionierung zwischen 0% und 100% variiert werden. Ein Wert von 0% führt zum Stillstand der Achsen, jedoch nicht zum Stop des Positionierauftrages. Die Override-Typen werden im Kapitel "Override" beschrieben.

Das Beispielprogramm setzt die Existenz einer Datei mit Positionsdaten im Verzeichnis C:\CamDesign voraus, das Verzeichnis kann jedoch wie weiter unten beschrieben geändert werden.

  • FifoTableBig5.Bin

Das Beispielprogramm TcNcFifoAxisSample.pro wird in das TwinCAT PLC-Control geladen, übersetzt und gestartet.

Um das Ergebnis überprüfen zu können wird das TwinCAT Scope genutzt. Mit der mitgelieferten Einstellung TcNcFifoAxisSample.scp können die Achsbewegungen aufgezeichnet werden.


Programmstruktur

Das Hauptmodul Main ruft die Bausteine AxisEnable und Sequence auf. Der Baustein AxisEnable aktiviert alle notwendigen Freigabesignale für die Achsen und soll hier nicht weiter beschrieben werden.

Das Programmodul Sequence steuert den Ablauf zum Konfigurieren der FIFO-Gruppe, Nachfüttern der FIFO-Daten und Verfahren der Achsen.


Globale Variablen

In den globalen Variablen wird die zu verwendende Positionsdatendatei festgelegt. Der Dateiname bzw. der Pfad zu dieser Datei kann hier geändert werden. Weiterhin werden hier die Achs- und Kanalschnittstellen deklariert und Datenpuffer für des Lesen der FIFO-Daten aus einer Datei angelegt.


Funktionsbaustein Sequence

Der Funktionsbaustein Sequence steuert den Ablauf.

  • Im Schritt ReadDimStep werden die im TwinCAT Systemmanager konfigurierten Dimensionen, d. h. Anzahl der Achsen und Anzahl der Zeilen des FIFO-Speichers gelesen.
  • Anschließend wird die Positionsdatendatei geöffnet und der Dateikopf ausgelesen. Der Dateikopf enthält die Anzahl der Zeilen und Spalten in der Datei.
  • Der wichtigste Schritt folgt mit StepReadTable. Hier werden die Daten aus der Datei in zwei abwechselnd beschriebene Puffer von ca. 64 KByte Größe eingelesen (Aktion ReadFile). Aus diesen Zwischenpuffern wird der FIFO-Speicher permanent bis zum maximalen Füllstand nachgeladen (Aktion FillFifo). Nachdem der FIFO-Speicher das erste mal gefüllt wurde, werden die Achsen gestartet (Aktion RunTable).
  • Nachdem alle Positionen abgefahren sind, stoppt die FIFO-Gruppe und die Gruppe wird im Schritt StepConfigPTP aufgelöst.
  • Zum Schluss wird die Datei geschlossen.

In diesem Programm werden zur Demonstration die Achspositionsdaten aus einer Datei gelesen. Die Positionsdaten können natürlich auf verschiedenste Weise bereitgestellt werden. So können sie z. B. auch zur Laufzeit direkt berechnet werden oder durch ein Meßsystem erfasst werden.

Der Programmlauf sollte nicht zu einem beliebigen Zeitpunkt unterbrochen werden, um zum Beispiel eine neue Programmversion in das TwinCAT Laufzeitsystem zu laden. Es ist anderenfalls möglich, dass Dateien geöffnet bleiben und beim nächsten Start der SPS nicht neu geöffnet werden können. Der Ablauf bleibt in diesem Fall in einem der Schritte mit einem Fehlercode stehen. Starten Sie dann das TwinCAT System über das TwinCAT-Icon in der Taskbar neu.


Externer Sollwertgenerator

TwinCAT NC PTP bietet die Möglichkeit, eigene Sollwertgeneratoren zu programmieren, um Achsen zu verfahren. Dieses Beispiel zeigt, wie ein SPS-Sollwertgenerator in das System integriert werden kann. Das Programm realisiert einen 3-Phasen Generator mit rechteckigem Beschleunigungsprofil.

Weitere Informationen zum Thema Externer Sollwertgenerator.

Die Vorgehensweise zum Speichern und Installieren des Beispielprogramms ist mit dem Beispiel Achse verfahren vergleichbar. Das Programm ist lauffähig ab TwinCAT Version 2.9.

  • Beispielprogramm 1 Externer Sollwertgenerator

  • Beispielprogramm 2 Externer Sollwertgenerator


Beispiel für antriebsgeführtes Referenzieren einer SERCOS-Achse

TwinCAT NC: Beispiel NC-PTP

Antriebsgeführtes Referenzieren einer SERCOS-Achse

Ein SERCOS-Antrieb bietet die Referenzierfunktion (Homing) als antriebsgeführten Ablauf an. In diesem Fall wird also nicht durch das TwinCAT-NC System, sondern durch den Antrieb selbst referenziert. Dieses Beispiel zeigt, wie das antriebsgeführte Referenzieren durch die TwinCAT SPS initialisiert und angestoßen wird.

Die Vorgehensweise zum Speichern und Installieren des Beispielprogramms ist mit dem Beispiel Achse verfahren vergleichbar.

  • Beispielprogramm Antriebsgeführtes Referenzieren einer SERCOS-Achse

Das Beispielprogramm verwendet folgende speziellen Fehlercodes:

16#FFFFFFFF - Das Beispielprogramm unterstützt keine Parameter-Skalierung in S-0-0044

16#FFFFFFFE - Der SERCOS-Antrieb hat den Referenziervorgang mit Fehler abgebrochen

16#FFFFFFFD - Der Referenziervorgang wurde beendet aber der Antrieb hat das Referenz-Flag in S-0-0403 nicht gesetzt


Installieren und Starten

TwinCAT NC: Beispiel NC-PTP

Beispielprogramm installieren und starten

TwinCAT NC PTP bietet dem SPS-Programmierer einfache Funktionsbausteine an, um NC-Achsen zu bedienen. Dieses Beispiel beschreibt, wie eine Achse in das TwinCAT-System eingebunden und verfahren wird.

  • Beispielprogramm NC PTP speichern

Das Beispielprogramm arbeitet mit Simulationsachsen (Achsen mit Simulationsencoder) und ist somit ohne zusätzliche Hardware auf jedem Windows NT PC lauffähig. Die Datei TcNcsample PTPmove.wsm wird in den TwinCAT System Manager geladen und das System mit dieser Einstellung gestartet.

  • WSM-Datei laden
  • Einstellung über das Menü Actions - Save To Registry registrieren
  • TwinCAT-System über das Zahnrad-Symbol starten

Um das Ergebnis überprüfen zu können wird das TwinCAT Scope genutzt. Mit der mitgelieferten Einstellung TcNcsample PTPmove.scp kann die Achsbewegung aufgezeichnet werden.

  • SCP-Datei in das TwinCAT ScopeView laden
  • Die Aufzeichnung über das Menü oder über die Taste F5 starten. (Die Scope-Konfiguration enthält eine Triggerbedingung, so dass die Aufzeichnung nach dem Start über F5 erst mit dem Start der Achse beginnt)

Zuletzt wird das Beispielprogramm TcNcsample PTPmove.pro in das TwinCAT PLC-Control geladen, übersetzt und gestartet.

  • PRO-Datei laden
  • SPS-Projekt über das Menü Project - Rebuild All übersetzen.
  • SPS-Projekt über das Menü Online - Login in das Laufzeitsystem laden
  • Programm über das Menü Online - Run starten

Nachdem das Programm gestartet wurde wird die Achse im Simulationsmodus verfahren und die Aufzeichnung beginnt. Im Bild sind Position, Geschwindigkeit und Beschleunigung der Achse zu sehen.


Achskopplung mit Getriebefaktor

TwinCAT NC PTP bietet dem SPS-Programmierer einfache Funktionsbausteine an, um NC-Achsen zu bedienen. Dieses Beispiel zeigt, wie eine Slave-Achse an eine Master-Achse über einen festen Getriebefaktor gekoppelt wird.

Die Vorgehensweise zum Speichern und Installieren des Beispielprogramms ist mit dem Beispiel Achse verfahren vergleichbar. Das Programm ist lauffähig ab TwinCAT Version 2.8.

  • Beispielprogramm Achskopplung

Als Ergänzung zur Achskopplung mit festem Getriebefaktor, gibt es die Möglichkeit, den Getriebefaktor zyklisch anzupassen. Damit lassen sich dynamische Master-Slave-Kopplungen aufbauen bei der die Geschwindigkeit des Slaves durch die SPS geregelt werden kann.

  • Beispielprogramm Achskopplung mit dynamisch änderbarem Getriebefaktor


ASCII-Tabellenformat

Alle Zahlenwerte der Tabellenspalten werden in der Textdatei durch Tabulatoren getrennt. Eine neue Tabellenzeile beginnt in einer neuen Zeile der Datei.

Diese Beispieltabelle deckt einen Verfahrweg der Master-Achse von 0 bis 14 mm ab. Die Daten können sowohl absolut als auch relativ interpretiert werden.

Die erste Spalte der Tabellendatei enthält ausgewählte Master-Positionen über den gesamten Verfahrweg der Achse (Stützstellen). In der zweiten Spalte ist jeweils der zugehörige Wert der Slave-Position abgelegt.

Beachten Sie bitte, dass die Tabelle die erste und letzte Achsposition enthalten muss, da sich der Verfahrweg der Master-Achse aus dem letzten minus dem ersten Wert ergibt. Sie benötigen zum Beispiel für eine äquidistante Tabelle von 0° bis 360° mit einer Auflösung von 0,1° genau 3601 Wertepaare. In diesem Fall müssen die Master-Positionen 0° und 360° explizit in der Tabelle enthalten sein!


Binär-Tabellenformat

Das binäre Dateiformat enthält zunächst eine Versionsnummer und zwei weitere 4-Byte Longintegerwerte, die die Zeilen- und Spaltenanzahl der Tabelle definieren (Header). Anschließend folgt die notwendige Anzahl Zahlenwerte im 8-Byte Long Real (double) Format. Alle Zahlen sind mit "Little Endian" Bytefolge (Intel) gespeichert.

Im Gegensatz zum ASCII-Format ist im Binärformat der Header notwendig, da anderenfalls nur die Anzahl der Werte jedoch nicht die Anzahl der Zeilen und Spalten ermittelt werden könnte.

Das Format des Headers hat sich seit einem früheren Format geändert. Binärdateien in diesem früheren Format werden durch das später beschriebene Konvertierungsprogramm ASCII2BIN erkannt und können konvertiert werden.


Funktionsbaustein Sequence

Der Funktionsbaustein Sequence steuert den Ablauf vom Einlesen und Erzeugen einer Tabelle bis zum Verfahren der Achsen.

  • Der Schritt Init schaltet mit dem Startsignal auf die nächste zu lesende Tabellendatei um. Mit jedem Durchlauf durch Init wird zyklisch eine von vier Tabellen abgearbeitet. Die Transition Start ist nach dem Starten der SPS True. Start kann von Hand auf den Wert False gesetzt werden, um den Ablauf an definierter Stelle zu stoppen.
  • Der Schritt ReadTableStep liest eine der vier Tabellen und verwendet dazu den weiter unten beschriebenen Funktionsbaustein TableCreate.
  • Im nächsten Schritt werden Master- und Slave-Achse jeweils auf eine für beide Achsen durch die Tabelle definierte Position verfahren. In diesem Fall sind das die in der ersten Tabellenzeile definierten Positionen, da keine Offsets verwendet werden und die Tabellendaten absolut sind. Zu diesem Zeitpunkt sind die Achsen noch nicht gekoppelt, verfahren also voneinander unabhängig.
  • Stehen beide Achsen im Ziel, so werden sie im Schritt CoupleStep über die aktuelle Tabelle gekoppelt. Zur Kopplung der Achsen wird der Baustein CamTableCoupleAxes verwendet.
  • Anschließend wird die Master-Achse zu einer neuen Zielposition und danach wieder zurück zu einer Position nahe der Startposition verfahren. Die Slave-Achse wird nicht aktiv gestartet, sondern wird nun entsprechend der Master-Position und der in der Tabelle definierten Slave-Positionen positioniert.
  • Im letzten Schritt DecoupleStep werden Master und Slave entkoppelt. Der nächste Zyklus wird mit einer anderen Tabelle gefahren.

In diesem Programm wird zur Demonstration vor jedem Ankoppeln des Slaves an den Master eine Tabelle aus einer Datei gelesen. Selbstverständlich ist es möglich, den Slave beliebig oft an den Master zu koppeln und die Achsen wieder zu entkoppeln, ohne die Tabelle in der NC zu zerstören. Ein Einlesen einer Tabelle aus einer Datei ist also normalerweise nur einmal in der Initialisierungsphase notwendig. Es ist ebenfalls möglich, einen Slave nacheinander über verschiedene Tabellen an den Master zu koppeln, ohne diese jeweils neu einlesen zu müssen. Die unterschiedlichen Tabellen werden in der NC durch ihre Tabellen-ID identifiziert.

In diesem Zusammenhang sei auf den TwinCAT Kurvenscheibeneditor hingewiesen, mit dem Kurvenscheiben direkt in der TwinCAT-Umgebung grafisch erzeugt werden können. Wird dieser Editor verwendet, ist der Weg über eine externe Tabellendatei nicht mehr notwendig. Der Schritt zum Einlesen und Generieren einer Tabelle entfällt dann.

Der Programmlauf sollte nicht zu einem beliebigen Zeitpunkt unterbrochen werden, um zum Beispiel eine neue Programmversion in das TwinCAT Laufzeitsystem zu laden. Es ist anderenfalls möglich, dass Dateien geöffnet bleiben und beim nächsten Start der SPS nicht neu geöffnet werden können. Der Ablauf bleibt in diesem Fall in einem der Schritte mit einem Fehlercode stehen. Starten Sie dann das TwinCAT System über das TwinCAT-Icon in der Taskbar neu. Um den Ablauf an definierter Stelle zu stoppen setzen Sie die Variable Start in der Transition nach dem Schritt Init manuell auf FALSE und warten Sie bis der Schritt Init erreicht ist. Anschließend können Sie ein neues bzw. geändertes Programm in das Laufzeitsystem laden und starten. Unabhängig davon ist ein Online Change jederzeit möglich.


Funktionsbaustein Table_FB

TwinCAT NC: Beispiel Kurvenscheiben

Funktionsbaustein TableCreate

Der Funktionsbaustein TableCreate enthält alle notwendigen Funktionen, um Tabellenwerte aus einer Datei zu lesen und für die NC bereitzustellen.

  • Nach der Initialisierung wird die Datei gelesen. Dabei wird zwischen Binärdateien und ASCII-Dateien unterschieden.
  • In Schritt StepGenerateTable wird die Tabelle im Speicher der NC unter Angabe der Tabellen-ID angelegt.


Globale Variablen

In den globalen Variablen werden die zu verwendenden Tabellen festgelegt. In einer initialisierten Variablen vom Typ Tabledefinition werden Dateiname, Dateityp (ASCII oder BIN) und die Eigenschaften der Tabelle (linear, zyklisch, äquidistant) in der Datei festgelegt. Die in diesem Feld eingetragenen Dateien werden durch das Beispielprogramm sequentiell bearbeitet und sind unabhängig voneinander. Diese Dateiliste ist erweiterbar, wenn die Konstante MAX_NUMBER_OF_FILES heraufgesetzt wird.


Übersicht

In vielen Anwendungen ist es notwendig zwei oder mehr Achsen miteinander zu synchronisieren. In der TwinCAT NC PTP können Achsen aneinander gekoppelt werden. Eine Master-Achse wird dann aktiv verfahren und ein oder mehrere gekoppelte Slave-Achsen werden durch die NC synchron mitpositioniert.

Die einfachste Kopplungsart ist die Linearkopplung mit einem festen Übersetzungsverhältnis (elektronisches Getriebe).

Für manche Anwendungen ist eine komplexere, mathematisch nicht durch eine Formel beschreibbare Kopplung von Master und Slave notwendig. Diese Abhängigkeit kann durch eine Tabelle beschrieben werden, in der zu jeder Master-Position eine zugehörige Slave-Position festgehalten wird.

Die TwinCAT NC PTP bietet die Möglichkeit, eine Slave-Achse über eine Tabelle an eine Master-Achse zu koppeln (elektronische Kurvenscheibe). Dabei enthält die Tabelle eine Anzahl von vorgegebenen Stützstellen, zwischen denen die NC Position und Geschwindigkeit interpoliert.

Das vorliegende Dokument beschreibt die Tabellenkopplung anhand eines SPS-Programmes, das schrittweise erläutert wird.

NC Kurvenscheibe

Zur Kopplung zweier Achsen über eine Tabelle sind einige vorbereitende Schritte notwendig. Die Tabellendaten müssen in den Speicher der TwinCAT NC übertragen werden, um anschließend die Slave-Achse über diese Tabelle an die Master-Achse zu koppeln. Im Einzelnen sind folgende Schritte notwendig, deren Programmierung später anhand eines Beispielprogramms beschrieben wird:

  • Erzeugen einer zunächst leeren Tabelle im NC-Treiber
  • Lesen von Tabellenwerten aus einer Datei. Alternativ können diese Daten direkt in initialisierten SPS-Variablen vorgehalten werden.
  • Übertragen der Daten in die NC-Tabelle
  • Verfahren der Master- und der Slave-Achse auf eine definierte Anfangsposition
  • Koppeln der Slave-Achse an die Master-Achse über die Tabelle
  • Verfahren der Master-Achse mit über die Tabelle synchronisierter Slave-Achse.

Zum Erzeugen von Tabellen bzw. Kurvenscheiben wird der TwinCAT Kurvenscheibeneditor verwendet.

Grundlagen zum Thema Kurvenscheiben werden in Kurvenscheiben-Achsen vermittelt.


Beispielprogramm installieren und starten

Das Beispielprogramm Kurvenscheiben liest die Werte einer Tabelle aus einer Datei ein, koppelt damit zwei Achsen als Master und Slave und verfährt diese. Dieser Ablauf wird nacheinander mit vier Tabellendateien durchgeführt. Die vier Tabellen werden voneinander unabhängig verwendet und sollen die Handhabung unterschiedlicher Eigenschaften im Programm verdeutlichen. Zum Beispiel sind zwei Tabellen in ASCII-Dateien gespeichert, die anderen beiden im Binärformat.

  • Beispielprogramm Kurvenscheiben

Das Beispielprogramm arbeitet mit Simulationsachsen (Achsen mit Simulationsencoder) und ist somit ohne zusätzliche Hardware auf jedem Windows NT PC lauffähig. Die Datei TcNcCammingSample.wsm wird in den TwinCAT System Manager geladen und das System mit dieser Einstellung gestartet.

Um das Ergebnis überprüfen zu können wird das TwinCAT Scope genutzt. Mit der mitgelieferten Einstellung TcNcCammingSample.scp kann die Achsbewegung aufgezeichnet werden. Die durch die Tabellen gegebene Abhängigkeit zwischen Master- und Slave-Achse wird dadurch grafisch dargestellt.

Das Beispielprogramm setzt die Existenz von vier Dateien im Verzeichnis C:\CamDesign voraus, das Verzeichnis kann jedoch, wie weiter unten beschrieben, geändert werden.

  • TableLinearEquidistant.txt
  • TableCyclicEquidistant.txt
  • TableLinearEquidistant2.BIN
  • TableCyclicEquidistant2.BIN

Zum Einlesen der Dateien benutzt dieses Programm eine zusätzliche Library ChrAsc.lib, die in das Verzeichnis TwinCAT\Plc\Lib kopiert wird.

Das Beispielprogramm TcNcCammingSample.pro wird in das TwinCAT PLC-Control geladen, übersetzt und gestartet.

Hinweis

Um das Beispielprogramm ablaufen zu lassen wird die SPS-Bibliothek TcNcCamming.lib benötigt. Diese Bibliothek ist ein zusätzliches Produkt und ist nicht im Standard-Lieferumfang von TwinCAT enthalten.


Programmstruktur

Das Hauptmodul Main ruft die Bausteine AxisEnable und Sequence auf. Der Baustein AxisEnable aktiviert alle notwendigen Freigabesignale für die Achsen und soll hier nicht weiter beschrieben werden.

Das Programmmodul Sequence steuert den Ablauf zum Erzeugen einer Tabelle, Koppeln der Achsen und Verfahren der Achsen. Eine neue Tabelle wird im zweiten Schritt der Sequence durch Aufruf des Bausteins TableCreate im Ordner Table Modules erzeugt.


Tabellenformate konvertieren

Grundsätzlich unterscheidet sich eine ASCII-Tabelle von einer Binärtabelle nur durch das Speicherformat auf dem externen Datenträger. Für den Ablauf der NC ist das Format nicht von Bedeutung. Der Vorteil einer ASCII-Tabelle ist die leichte Lesbarkeit und Editierbarkeit mit einem Texteditor. Das Binärformat lässt sich durch die SPS schneller und einfacher einlesen, da die Daten direkt aus der Datei in eine Variable übertragen werden können.

ASCII Tabellen in Binärformat konvertieren

Das mitgelieferte Zusatzprogramm ASCII2BIN konvertiert eine ASCII-Tabelle in eine Binärtabelle. Mit einem Mausklick auf Open wird eine ASCII-Datei ausgewählt und durch einen weiteren Klick auf Convert to binary file in einer Binärdatei mit der Endung .BIN gespeichert.

Binärtabellen in ASCII Format konvertieren

Mit dem Programm ASCII2BIN ist auch der umgekehrte Konvertierungsweg möglich. Dazu wird nach dem Klick auf Open eine Datei mit der Endung .BIN als Quelldatei ausgewählt. Durch diese Endung erkennt ASCII2BIN, dass eine Binärtabelle vorliegt und speichert sie durch einen Klick auf Convert to ASCII file im ASCII-Format mit der Endung .TXT ab.


Tabellen

Eine Tabelle ist eine mehrspaltige Liste von Achspositionen. Für eine Master/Slave-Achskopplung ist diese Tabelle zweispaltig. Jede Zeile enthält ein Stützstellenpaar für eine Master-Position und eine korrespondierende Slave-Position. Dabei erwartet die TwinCAT NC PTP in der ersten Spalte eine streng monoton steigende Folge von Master-Positionen, damit jeder Master-Position eine eindeutige Slave-Position zugeordnet werden kann. Eine Tabelle beschreibt also einen statischen Zusammenhang zwischen Master- und Slave-Position (Ortskurve). Zwischen jeweils zwei Stützstellen dieser Ortskurve interpoliert die TwinCAT NC PTP zur Laufzeit. Die Dynamik (Geschwindigkeit und Beschleunigung) entsteht erst zur Laufzeit durch die Sollwertgenerierung der NC, und hängt inhaltlich nur von der Master-Geschwindigkeit und den Tabellendaten ab.
Der Begriff Tabelle wird oft in verschiedenen Zusammenhängen verwendet, obwohl unterschiedliche Strukturen beschrieben werden. Daher ist eine Definition der Begriffe notwendig.

Grundlagen zum Thema werden in Kurvenscheiben-Achsen vermittelt.

NC-Tabelle

Eine Tabelle im Sinne der TwinCAT NC ist nur eine im Speicherbereich der NC definierte Datenstruktur, die die Stützstellen zur Interpolation der Achspositionen enthält. Die Tabelle wird durch eine eindeutige Tabellen-ID, ähnlich einer Achs-ID, gekennzeichnet.

Tabellendatei

Eine Tabellendatei speichert die Daten auf einem externen Datenträger und kann mit verschiedenen Software-Werkzeugen erzeugt werden.

Tabellenvariable

Um die Tabellendaten mit der TwinCAT SPS zu verarbeiten ist es notwendig, sie im Speicher der SPS in einer Variablen zu halten. Geeignet ist zum Beispiel ein zweidimensionales Array. Eine Änderung der in der Variablen enthaltenen Daten zur Laufzeit wirkt sich nicht direkt auf die Achskopplung aus. Erst nachdem die geänderten Daten in die Tabelle im Speicherbereich der NC übertragen wurden, werden sie zur Positionierung der Achsen genutzt.


Beispiel Kurvenscheibenkopplung mit Motion Functions

In vielen Anwendungen ist es notwendig zwei oder mehr Achsen miteinander zu synchronisieren. In der TwinCAT NC PTP können Achsen aneinander gekoppelt werden. Eine Master-Achse wird dann aktiv verfahren und ein oder mehrere gekoppelte Slave-Achsen werden durch die NC synchron mitpositioniert.

Mit dem TwinCAT Kurvenscheibeneditor besteht die Möglichkeit die Abhängigkeit zwischen Master- und Slave-Position zu definieren und als Kurvenscheibe bereitzustellen. Eine Kurvenscheibe kann zum einen als eine zweispaltige Tabellen von Master- und Slave-Positionen dargestellt werden (Standardtabelle). Die Masterspalte definiert Stützstellen über den Verfahrweg des Masters von einem kleinsten Positionswert aufsteigend bis zu einem größten Wert. Mit den Stützstellen der Tabelle wird aus der zweiten Spalte die zugehörige Slave-Position ermittelt. Zum anderen kann eine Kurvenscheibe als so genannte Motion Function definiert werden. Eine Motion Function ist eine einspaltige Tabelle von Stützstellen. Jede Stützstelle enthält aber nicht einfach nur eine Position, sondern eine vollständige Beschreibung des Kurvenverlaufs in einem Abschnitt (Segment) der Kurvenscheibe. Neben der Master- und Slave-Position am Anfang des Segmentes wird beispielsweise der Funktionsverlauf bis zur nächsten Stützstelle als mathematische Funktion festgelegt. Eine Motion Function benötigt dadurch nur sehr wenige Stützstellen. Trotzdem ist jeder Punkt zwischen den Stützstellen durch die mathematische Funktion exakt definiert und es gibt keine Interpolationsungenauigkeiten.

Im Gegensatz zu einer Standardtabelle können die Punkte einer Motion Function auch zur Laufzeit manipuliert werden. Dabei achtet das System darauf, das eine Manipulation erst wirkt, wenn die Änderung keinen direkten Einfluss auf den Slave hat. Positionssprünge werden so vermieden.

Das Beispielprogramm realisiert die Kurvenscheibenkopplung mit einer Motion Function. Das Programm benötigt die zusätzliche Bibliothek TcMcCam.lib, die Bestandteil des Kurvenscheibenpaketes ist.

Beispielprogramm speichern

Beispielprogramm Kurvenscheibenkopplung mit Motion Functions


Beispiel Ändern von Zielposition und Geschwindigkeit

TwinCAT NC: Beispiel NC-PTP

Ändern von Zielposition und Geschwindigkeit

TwinCAT NC PTP bietet dem SPS-Programmierer einfache Funktionsbausteine an, um NC-Achsen zu bedienen. Dieses Beispiel zeigt, wie während der Fahrt einer Achse die Zielposition und die Geschwindigkeit verändert werden können.

Die Vorgehensweise zum Speichern und Installieren des Beispielprogramms ist mit dem Beispiel Achse verfahren vergleichbar.

  • Beispielprogramm Ändern von Zielposition und Geschwindigkeit


Globale Variablen

In den globalen Variablen werden die Achsschnittstellen zwischen SPS und NC deklariert.


Installieren und Starten

Das Beispielprogramm Fliegende Säge startet zunächst eine Master-Achse. Anschließend wird zyklisch eine Fliegende Säge angekoppelt und nach einer fiktiven Bearbeitung wieder abgekoppelt.

Das Beispielprogramm arbeitet mit Simulationsachsen (Achsen mit Simulationsencoder) und ist somit ohne zusätzliche Hardware auf jedem Windows NT PC lauffähig. Die Datei TcNcFlyingSawSample.wsm wird in den TwinCAT System Manager geladen und das System mit dieser Einstellung gestartet.

Um das Ergebnis überprüfen zu können wird das TwinCAT Scope genutzt. Mit der mitgelieferten Einstellung TcNcFlyingSawSample.scp können die Achsbewegungen aufgezeichnet werden.

Das Beispielprogramm TcNcFlyingSawSample.pro wird in das TwinCAT PLC-Control geladen, übersetzt und gestartet. Das Programm verwendet die SPS-Bibliothek TcNcFlyingSaw.lib, die als zusätzliches Produkt erhältlich ist.

Ein weiteres Beispielprogramm zeigt eine weiterentwickelte Version der Fliegenden Säge, die so genannte Universelle Fliegende Säge UFS. Für neue Projekte sollte dieses Beispiel herangezogen werden.

  • Beispielprogramm Universelle Fliegende Säge
  • Beispielprogramm Fliegende Säge


Übersicht

Einleitung

In vielen Anlagen werden Werkstücke während des Transportes bearbeitet. Dazu ist es notwendig, Werkzeuge und Werkstücke bezüglich Position und Geschwindigkeit zu synchronisieren, so dass das Werkzeug wie an einem stillstehenden Werkstück eingesetzt werden kann. Ein Beispiel für eine solche Anwendung ist eine Säge, die während der Fahrt einen Schnitt quer durch das transportierte Material führt (Fliegende Säge). Um diese Art der Anwendungen zu realisieren, stellt TwinCAT die Fliegende Säge zur Verfügung.

Slave-Achsen sind Achsen, deren Sollwerte in Abhängigkeit von den Sollwerten einer anderen Achse generiert werden. Der einfachste Typ einer Slave-Achse ist die lineare Slave-Achse, die mit einem festen Übersetzungsverhältnis an eine anderen Achse (Master-Achse oder eine weitere Slave-Achse) gekoppelt ist (elektronisches Getriebe).

Eine andere Bezeichnung für die Fliegende Säge ist die Diagonal-Slave-Achse. Im Gegensatz zu einer linearen Slave-Achse wird die Diagonal Slave-Achse aus dem Stand während der Fahrt der Master-Achse "fliegend" aufsynchronisiert und später ohne die Master-Achse anzuhalten wieder gestoppt und abgekoppelt. Dabei bewegt sich die Slave-Achse in einem Winkel diagonal zur Master-Achse.

Ein spezieller Fall der Diagonal-Slave-Achse ist die Parallel-Slave-Achse, die nicht diagonal sondern parallel zur Master-Achse fährt. Dieser Fall ist in der Praxis weitaus häufiger als die diagonale Bewegung.

Das vorliegende Dokument beschreibt die Fliegende Säge anhand eines SPS-Programmes, das schrittweise erläutert wird.

Fliegende Säge

Zum Verfahren einer Achse als Fliegende Säge sind folgende Schritte notwendig:

  • Die Slave-Achse wird unter Angabe einer absoluten Master- und Slave-Synchronposition an die Master-Achse gekoppelt. Die Slave-Achse startet daraufhin selbstständig und synchronisiert sich mit der Master-Achse. Ab der angefahrenen Synchronposition verhalten sich also Master- und Slave-Achse Orts- und Geschwindigkeitssynchron.
  • Die Slave-Achse wird nach der Bearbeitung mit einer speziellen Stoppfunktion angehalten.
  • Die Slave-Achse wird von der Master-Achse abgekoppelt.
  • Die Slave-Achse wird als unabhängige PTP-Achse auf ihre Grundposition verfahren, so dass eine neue Bearbeitung beginnen kann.
    •

    Grundlagen zum Thema werden im Kapitel Fliegende Säge vermittelt

    Universelle Fliegende Säge

    Die Fliegende Säge wurde ab TwinCAT 2.9 zur Universellen Fliegenden Säge weiterentwickelt. Grundlagen zu diesem Thema finden sich im Kapitel

    Universelle Fliegende Säge


Programmmodule

Funktionsbaustein Sequence

Der Funktionsbaustein Sequence steuert den Ablauf.

  • Der Schritt StepStartMaster startet die Masterachse im Endlosbetrieb und simuliert damit z. B. eine Vorschubkette in einer Maschinenstraße.
  • Im nächsten Schritt StepCoupleSlave wird die Slave-Achse unter Angabe der Master-Synchronposition an die Master-Achse gekoppelt. Die Kopplung geschieht frühzeitig weit vor Erreichen dieser Postition, um der NC ein Aufsynchronisieren zu ermöglichen. Die NC berechnet aus den Koppelparametern eine dynamische Koppelposition und startet ab dieser Position die Slave-Achse. Daher muss die logische, durch die SPS bestimmte, Koppelposition unbedingt vor der dynamischen Koppelposition liegen!
  • Nach einer fiktiven Bearbeitung wird die Slave-Achse im Schritt StepStopSlave gestoppt. Das geschieht mit einer speziellen Stoppfunktion, da das Stoppen einer gekoppelten Slave-Achse nur im speziellen Fall der Fliegenden Säge erlaubt ist.
  • Nachdem die Slave-Achse steht, wird sie im Schritt StepDecoupleSlave von der Master-Achse entkoppelt.
  • Im StepReturnSlave wird die Slave-Achse als jetzt unabhängige PTP-Achse auf ihre Ausgangsposition zurückgefahren.
  • Anschließend beginnt der Bearbeitungszyklus von vorn


Programmstruktur

Das Hauptmodul Main ruft die Bausteine AxisEnable und Sequence auf. Der Baustein AxisEnable aktiviert alle notwendigen Freigabesignale für die Achsen und soll hier nicht weiter beschrieben werden.

Das Programmmodul Sequence steuert den Ablauf zum Betrieb der Fliegenden Säge.


Beispiel Positionskompensation einer Achse

TwinCAT NC: Beispiel NC-PTP

Positionskompensation einer Achse (Superposition)

TwinCAT NC PTP bietet dem SPS-Programmierer einfache Funktionsbausteine an, um NC-Achsen zu bedienen. Dieses Beispiel zeigt, wie an einer fahrenden Achse eine Positionskompensation durchgeführt wird.

Die Vorgehensweise zum Speichern und Installieren des Beispielprogramms ist mit dem Beispiel Achse verfahren vergleichbar.

  • Beispielprogramm Positionskompensation


Zyklisches Achsinterface

Zur Verbindung von NC und SPS hat jede Achse ein zyklisches Interface. Dieses Interface besteht aus zwei Datenstrukturen, über die NC und SPS Informationen austauschen. Die eine Struktur enthält Daten die von der NC für die SPS bereitgestellt werden, die Andere enthält in umgekehrter Richtung SPS-Daten für die NC. Beide Datenstrukturen werden in der SPS als Variable deklariert und später im TwinCAT SystemManager mit den Interface-Strukturen der NC-Achse verbunden.


Achsfreigaben setzen

Damit eine Achse überhaupt bewegt werden kann, müssen von der SPS zunächst Freigabesignale gesetzt werden. Dabei ist zwischen Software-Freigaben und Hardware-Freigaben zu unterscheiden. Eine Hardware-Freigabe schaltet einen Antrieb über ein digitales Signal in einen betriebsbereiten Zustand. Da in diesem Beispiel mit Simulationsachsen gearbeitet wird, ist eine Hardware-Freigabe nicht notwendig. Unabhängig davon benötigt die TwinCAT-NC eine Software-Freigabe, um eine Achse in den betriebsbereiten Zustand zu schalten. Weiterhin kann die Soll-Geschwindigkeit jeder Achse durch einen Geschwindigkeits-Override zwischen 0% und 100% beeinflusst werden, welcher im Normalfall auf 100% eingestellt wird. Bei einem Wert von 0% wird sich die Achse nicht bewegen.

  • Reglerfreigabe
  • Vorschubfreigabe für die positive Richtung
  • Vorschubfreigabe für die negative Richtung
  • Geschwindigkeits-Override 100%

In dem Beispielprogramm werden die Freigaben durch den Funktionsbaustein MC_Power in das zyklische Interface der Achse geschrieben.


Übersicht

TwinCAT NC PTP bietet dem SPS-Programmierer einfache Funktionsbausteine an, um NC-Achsen zu bedienen. Dieses Beispiel beschreibt, wie eine Achse in das TwinCAT-System eingebunden und verfahren wird.


Programmstruktur

Das Hauptmodul Main ruft die Bausteine AxisEnable und MC_MoveAbsolute auf und steuert den Ablauf zum Betrieb der Achse.


Programmablauf

Achsfreigaben setzen

Das Programm startet mit dem Programmbaustein MAIN, in dem als erstes das Programm AxisEnable zum Setzen der notwendigen Achsfreigaben durchlaufen wird. Mit dem Setzen der Freigaben wird die Achse betriebsbereit.

Programmbaustein MAIN

Der Ablauf zum Verfahren der Achse wurde im Programmbaustein MAIN programmiert. Der Ablauf startet die Achse auf die Zielposition 2000 mm und verfährt Sie anschließend auf Position 0 mm. Dieser Zyklus wird ständig wiederholt.

Starten und Überwachen einer Achse

Im zweiten Schritt MOVESTATE_FORWARD wird die Achse auf die Zielposition 2000 mm mit der Geschwindigkeit 1000 mm/s gestartet. Der Start wird in der Aktion MoveAction mit dem Funktionsbaustein MC_MoveAbsolute durchgeführt.


Beispiel Postionskompensation einer Slave-Achse

TwinCAT NC: Beispiel NC-PTP

Positionskompensation einer Slave-Achse

TwinCAT NC PTP bietet dem SPS-Programmierer einfache Funktionsbausteine an, um NC-Achsen zu bedienen. Dieses Beispiel zeigt, wie an einer an einen Master gekoppelten Slave-Achse während der Fahrt eine Positionskompensation durchgeführt wird.

Die Vorgehensweise zum Speichern und Installieren des Beispielprogramms ist mit dem Beispiel Achse verfahren vergleichbar.

  • Beispielprogramm Positionskompensation an einer Slave-Achse