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

Bausteine

Besondere Eigenschaften

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

Achsfunktionen

Funktionen der Achsreferenz

Statusfunktionen

Bewegungsfunktionen
Name Beschreibung Erweiterungen
MC_MoveAbsolute_SPES

Absolute Positionierung auf Basis PTP

 

  • Zusätzliche Absicherung durch Soll- und Istpositionsvergleich
  • Überwachung auf erfolgte Referenzierung
  • Modi:
    • Positionieren
    • Positionieren, dann Open-Loop
    • Positionieren, dann Closed-Loop "hinter das Ziel"
  • zusätzliches Statusbit "TimeToDestPassed", sobald sich das Ziel innerhalb einer vorgegeben Restpositionierzeit befindet
MC_MoveRelative_SPES

Relative Positionierung auf Basis PTP/r

 

  • wie MC_MoveAbsolute_SPS, aber ohne zusätzliche Absicherung durch Soll- und Istpositionsvergleich
 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

  • Zusätzliche Absicherung durch Soll- und Istpositionsvergleich
  • Überwachung auf erfolgte Referenzierung
  • Modi:
    • Positionieren ohne abschließender Wobbel-Bewegung
    • Positionieren mit abschließender Wobbel-bewegung (Amplitude, Zeit pro Durchlauf, Anzahl Wobbel-Positionierung) zur verbesserten Kontaktierung von Bauelementen oder Messtastern
  • zusätzliches Statusbit "TimeToDestPassed", sobald sich das Ziel innerhalb einer vorgegeben Restpositionierzeit befindet
 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

  • wie MC_MoveAbsolute__ShortMoves_SPS, aber ohne zusätzliche Absicherung Soll- und Istpositionsvergleich
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

  • zusätzliches Statusbit "LabelSeen", welches bei "Done" anzeigt, ob die Marke gefunden wurde oder nicht
 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

  • Nutzen aller von ACS Homing-Methoden inklusive 3 eigener User-Routinen möglich
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

 

  • Bestromen und Stromlosschalten der Achse, bei Bestromenbefehl und anstehendem Fehler wird implizit auch der Achsfehler quittiert
  • Implizietes Autokommutieren, wenn die Achse so ausgelegt ist (z. B. für Brushless-Motoren mit inkrementellem Messsystem)
  • Optional Sequenzielles Bestromen für alle Achsen des Controllers, so dass ENABLE und COMMUT zu geringeren Belastungssitzen führen, wenn viele Achsen gleichzeit bestromt werden sollen
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)

  • TimeOut-Überwachung jeder Achse

FB_BptpParams_SPES
FB_HaltParams_SPES
FB_HomeParams_SPES
FB_PtpParams_SPES
FB_SearchLabelParams_SPES
FB_TorqueControlParams_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 %

  • zurück gegeben wird ein gut interpretierbarer Wert RMS/XRMS * 100 %

 

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.