Tc-Bibliothek SPiiPlus-ES bei mehr als 8 Achsen
Die TwinCAT-Bibliothek Inm_SPiiPlusES_64_axes_n.n.nn.lib unterstützt bis zu 26 oder 27 Achsen pro ES-Controller (je nach Ausbau) und insgesamt maximal 64 Achsen, die beliebig auf ES-Controller verteilt werden können. Jeder Achse wird eine dedizierte Task (Buffer) zugewiesen. Es wird keine Standard-Schnittstelle wie dem Position-Profile-Mode (PPM) verwendet, da die Achse-Buffer viel mehr Funktionalität unterstützen. Die Funktionen sind an die Beckhoff-Bibliothek Tc_MC2.lib angelehnt.
Vorteile
- Kein Programmieren der ACS-Buffer notwendig
- Kein zusätzliches Achs-Interface, TwinCAT-Quellcode mit Funktionsbausteinen der Tc_MC2.lib kann zum größten Teil weiter genutzt werden
- Bis zu 26/27 PDO-Achsen für SPiiplus-ES32 möglich anstelle der ACS-Standardanwendung mit 8 PDO- und 24 SDO-Achsen
.png)
Bausteine
- Um Namenskonflikte bei gleichzeitigem Betrieb von Virtuellen Achsen (Tc_MC2.Lib) zu vermeiden, erhalten die Baustein die Erweiterung _SPES.
- An die Tc_MC2.lib angelehnte Bausteine beginnen mit MC_ für Motion Control, eigene Funktionsblöcke FB_.
- Die Bausteine unterstützen die Zustandsmaschine aus Execute + Busy + Done + CommandAborted.
- Beliebig viele Instanzen pro Achse sind möglich mit Ausnahme von MC_Power_SPES und MC_ReadStatus_SPES.
- Positionen und Profilwerte werden in Ingenieurwerten (mm, mm/s, mm/s2, mm/s3 bzw. °, °/s, °/s2, °/s3) vorgebenen, die Positionsgenauigkeit ist variabel, so dass auch große Positionen vorgegeben werden können. Kräfte werden in N und Drehmomente in Nm vorgegeben. Zeiten werden in ms oder s vorgegeben.
Bewegungsfunktionen
| Name | Beschreibung | Erweiterungen |
| MC_MoveAbsolute_SPES |
Absolute Positionierung auf Basis PTP
|
|
| MC_MoveRelative_SPES |
Relative Positionierung auf Basis PTP/r
|
|
| FB_MoveAbsolute_ShortMoves_SPES |
Absolute Positionierung auf Basis BPTP für kurze Bewegunen, Vorgabe eines Ziels und einer Positionierzeit, vorteilhaft besonders für kurze Bewegungen |
|
| FB_MoveRelative_ShortMoves_SPES |
Relative Positionierung auf Basis BPTP/r für kurze Bewegunen, Vorgabe einer Distanz und einer Positionierzeit, vorteilhaft besonders für kurze Bewegungen |
|
| FB_SearchLabel_SPES |
Markensuchfahrt mit Auswertung von IST.MARK. Wenn die Marke (digitaler Eingang) gefunden wurde, wird noch eine definierte Strecke (+/-) verfahren, wenn keine Marke im Markensuchfenster erkannt wurde, wird das ursprüngliche Ziel der Markensuchfahrt angefahren, Unterschiedliche Geschwindigkeiten für die Suchfahrt und das Positionieren nach gefundener Marke zur Erhöhung der Genauigkeit zum Finden der Marke |
|
| MC_Home_SPES |
Drive-Based Homing HOME (wesentlich einfacher zu nutzen als das TwinCAT-eigene Homing für Virtuelle Achsen) mit allen von ACS angegebenen Homing-Methoden |
|
| MC_SetPosition_SPES |
Setzen einer Position mit SET FPOS oder SET APOS |
|
| MC_Jog_SPES_SPES |
Tippen mit JOG |
|
| MC_Halt_SPES |
Halten mit HALT, nutzt den vorgegeben Deceleration-Wert |
|
| MC_QuickStop_SPES |
Schnellstopp mit KILL mit der im ES-Controller vorgegebenen KDEC-Rampe |
|
| MC_TorqueControl_SPES |
Open-Loop-Vorgabe einer Kraft oder eines Drehmomentes mit Geschwindigkeitsklammer* *) provisorische Implementierung im separaten Buffer vorhanden, Integration in den D-Buffer gegen Aufwandsentschädigung möglich |
|
Achsfunktionen
| Name | Beschreibung | Erweiterungen |
| MC_Power_SPES |
Bestromen und Stromlosschalten auf Basis ENABLE, COMMUT, DISABLE und FLCEAR
|
|
| MC_Reset_SPES |
Fehler quittieren mit FCLEAR Achse, oder global mit FCLEAR ALL (muss parametriert werden pro Achse) |
Funktionen der Achsreferenz
| Name | Beschreibung | Erweiterungen |
| MC_ReadStatus_SPES |
Statusbaustein des Antriebs und zugleich aktive Achsreferenz, gemeinsame Schnittstelle für alle Bausteine inklusive Übertragung vom und zum Antrieb, genauer zum vorgesehenen Antriebsslot (4x INT32 lesend und schreibend) |
|
|
FB_BptpParams_SPES |
Funktionsbauteine (intern) zur änderungsbetriebenen Übertragung von Parametern |
Statusfunktionen
| Name | Beschreibung | Erweiterungen |
| ReadActualPosition_SPES |
Lesen der aktuellen Position |
|
| ReadActualVelocity_SPES |
Lesen der aktuellen Geschwindigkeit |
|
| MC_ReadAxisError_SPES |
Lesen Antriebsfehler |
|
| FB_MotorRMS_SPES |
Lesen der aktuellen Motorauslastung in % |
|
Besondere Eigenschaften
Logging
Alle Ereignisse, wie Befehle und Meldungen (Done und Fehler), werden in einem großen Ringbuffer mit 128 Meldungen pro Achse aufgezeichnet:
- Zeitabstand zum Vorbefehl, Position, Befehl mit allen Befehlsparametern
- Befehlssynchrone Fehler (Error) an Position mit Zeitdifferenz zum Vorbefehl
- Befehlssychrone Fertigmeldung (Done) an Position und Zeitfifferenz
- Asynchrone Fehler (wie Überlast) (Error) mit Position
- Das komplette Array (von 1 bis 128 letzen Einträgen) kann pro Achse auf dem MMI-Terminal ausgegeben werden. Ausgaben erfolgen nur auf Anforderung durch Starten eines Buffers. Die Funktion ist sehr hilfreich für die Inbetriebsetzung einer Maschine oder bei der Fehlerfindung im laufenden Betrieb.
Durch die Ausgabe der Position bei einem Schleppfehlerereignis könnte z. B. auf bestimmte schwergängige Stellen geschlossen werden. Der Stempel mit der Zeitdifferenz ermittelt den Zeitkonsum pro Befehl und kann zur Optimierung der SPS-Abfolgen eingesetzt werden.
Optimierte Parameterübertragung
- Die für die Parameterübertragung (Profile) notwendige Sequenzialisierung (durch begrenzte PDO-Größe) erfolgt via Prozessdaten (PDO-Slot) anstelle der langsameren CoE-Übertragung mittels TwinCAT-SDO. Alle so übertragenen Parameter werden gespiegelt, nur geänderte Parameter werden erneut übertragen (Feststellung durch Spiegelvariablen), der Spiegel wird bei Kommunikationsfehlererkennung zurück gesetzt. Alle Parameter-Fehler sind im D-Buffer definiert, so dass diese auch bei Buffer-Fehler erhalten bleiben.
- Ändert sich z.B. bei einem Positionierbefehl z. B. nur die Zielposition, ist keine Parameterübertragung notwendig, die Positionierung wird im ersten Zyklus angestoßen.
- Parameter, die besonders wichtig sind (u. a. KDEC-Rampe) werden nicht in TwinCAT übertragen, sondern nur im Buffer #1 eingestellt.
- Besonders häufig zu ändernde Werte werden mittels USERCOMMAND (frei belegbar) in einem reservierten PDO-Slot übertragen, Istposition und USERSTATUS (frei belegbar) werden in zwei reservierten PDO-Slots übertragen
Optimierte Anwendungsunterstützung
- Automatisiertes Nachstarten von Buffern (parametrierbar), falls Buffer durch einen Achsfehler abgebrochen wird, die Funktion ist während der Inbetriebnahme abschaltbar
- Call-up-Funktionen vom D-Buffer in die einzelnen Achs-Buffer zur Nutzung von PreCall (z. B. PEG aktivieren), PostCall (z. B. PEG deaktivieren) vor und Nach Bewegungen und User-Defined Homing-Routinen, falls die ACS-vorgegebenen Methoden nicht ausreichend sind
- Life-Bit pro Achse, nach spätestens 50 ms erkennt TwinCAT, dass mit einem Achsbuffer z. B. durch Stoppen des Buffers keine Kommunikation stattfindet
- Keine Ausführung von Positionierungen, deren Ziel rechnerisch über den Software-Limits (SRLIMIT und SLLIMIT) liegt, also keine Positionierung mit Stoppen am Limit und Fehlermeldung, sondern Fehlermeldung sofort befehlssynchron per USER DEFINED ERROR vor Losfahren, keine Ausführung von Positionierungen, ohne dass das Bezugssystem definiert ist (HOME oder SET FPOS, SET APOS)
- Sequenzielles Bestromen zur Reduzierung von Belastungsspitzen durch ENABLE + COMMUT (USAGE, USGTRACE)
- Spezielle EtherCAT-Diagnose für beide EtherCAT-Schnittstellen per Buffer-Ausgabe
Support von Digitalen Zwillingen (DZ)
Durch das Schreiben (Spiegeln) von Istwerten (z. B. Istpositionen) auf Ausgänge ist das gleichseitige Lesen (durch das DZ-Programm) und Schreiben (Gateway für ACS-Simulator) jederzeit möglich.