PLCopen-Programmierung
Eine Liste der PLCopen-Funktionen sind in den jeweiligen PLCopen-Beschreibungen zu finden.
Innerhalb der Motion Control Platform (MCP) werden für die Bewegungsaufgaben verschiedene Funktionsbausteine (FB) zur Verfügung gestellt. Diese FB wirken auf eine einzelne Achse und werden über die SPS bedient. Jede Achse ist hierbei als s.g. Single Axis Interpolator (SAI) im System angelegt.
Solche Achsen können alternativ auch über das NC-Programm angesprochen werden, da ein solcher SAI wie eine herkömmliche Spindel im System angelegt wird. Für die nachfolgenden FBs stehen dazu spezielle NC-Befehle zur Verfügung, über die eine PLCopen konforme Programmierung in NC-Syntax möglich ist:
MC_Home | Referenzpunktfahrt |
MC_MoveAbsolute | Achsbewegung auf absolute Position |
MC_MoveAdditive | Relative Achsbewegung zur kommandierten Position |
MC_MoveRelative | Relative Achsbewegung zur aktuellen Position |
MC_MoveSuperImposed | Relative Achsbewegung zu einer bereits aktiven Bewegung |
MC_MoveVelocity | Endlose Achsbewegung mit einer Geschwindigkeit |
MC_Stop | Anhalten einer Achsbewegung |
MC_GearIn | Getriebekopplung mit Übersetzung |
MC_GearOut | Lösen einer Getriebekopplung |
MC_Phasing | Phasenverschiebung von Kopplungen |
MC_TouchProbe | Messen von Achspositionen |
Folgendes Topologiebild zeigt die grundsätzliche Anordnung der SAI-(Spindel-)Achsen im Gesamtsystem:
Eine SAI-Achse wird im NC-Programm in spindelspezifischer Programmiersyntax angesprochen. Dazu muss sie analog zur Konfiguration einer Spindel in der Kanalparameterliste mit ihrem Adressbuchstaben und weiteren Daten im NC-Kanal bekannt gemacht werden. Wichtige Einträge in den Kanalparametern sind insbesondere:
- spdl_anzahl (P-CHAN-00082) – Gesamtzahl der (SAI-)Spindeln
- bezeichnung (P-CHAN-00007) – Name der (SAI-)Spindel
- log_achs_nr (P-CHAN-00036) – Logische Achsnummer der (SAI-)Spindel
Weitere Informationen können der Dokumentation [1]-Kapitel: Konfiguration der Spindeln- und dem Kapitel Parametrierung von Spindeln entnommen werden.
Die PLCopen-Funktionen
- MC_MoveSuperImposed
- MC_GearIn
- MC_GearOut
- MC_Phasing
- MC_TouchProbe
erfordern zusätzliche spezifische SAI-Eigenschaften der (Spindel-)Achse, die in den Achsparametern konfiguriert werden. Die notwendigen Einstellungen können der Dokumentation [2]-Kapitel: Einstellungen für SAI- entnommen werden.
Im Folgenden wird zum jeweiligen NC-Befehl der zugehörige FB dargestellt. Die Syntax dieser NC-Befehle sowie die Einheiten der programmierten Werte lehnen sich dabei an die entsprechenden Eingangspins (VAR_INPUT) der zugeordneten FB's an.
|
<Spindelname>[ <FB-Name> <Eingangspin1> <Eingangspin2> <Eingangspin n...> { \ } ] |
Der Achsname zu Beginn des NC-Befehls adressiert die (SAI)-Spindelachse, die über den NC-Kanal angesprochen wird.
Die Beschreibungen der Eingangspins sowie der Einheiten und Wertebereiche können auch der Dokumentation [9] entnommen werden.
Hinweis
Alle Werte der Eingangspins werden in metrischen Einheiten programmiert. In der Grundeinstellung müssen die Werte in den spezifizierten internen Einheiten (z.B. 0.1 µm) angegeben werden. Mit P-CHAN-00182 kann auf die Angabe der Werte in Standardeinheiten (z.B. mm) umgeschaltet werden.
Der Eingangspin "Execute" wird immer implizit durch die Programmierung des NC-Befehls belegt. Es ist daher in den NC-Befehlen kein eigenes Schlüsselwort für diesen Pin vorhanden.
Für eine übersichtliche Programmierung des Befehls über mehrere Zeilen kann innerhalb der Klammerung [...] das Zeilentrennzeichen '\' verwendet werden.
Die Schlüsselworte "Id" und "WaitSyn" für die Job-Synchronisierung im NC-Programm haben in der PLC keine enstprechenden PINs. Die beiden Schlüsselworte stehen ab der CNC-Version V3.01.3100.01 zur Verfügung
Standardmäßig werden PLCopen-Funktionen unabhängig von der übrigen NC-Programmbearbeitung ausgeführt. Eine Synchronisierung zwischen PLCopen-Einzelachsaufträgen und der Bahnbewegung erfolgt nicht.
Für die Synchronisierung der PLCopen-Funktionen mit dem Programmablauf können jedoch Wartebedingungen definiert werden. Hierfür existieren zwei Möglichkeiten.
1) Synchronisierung am Satzende:
Die Angabe des Schlüsselworts "WaitSyn" veranlasst die CNC, vor dem Weiterschalten in den nächsten NC-Satz auf den Abschluss des PLCopen-Auftrags zu warten. Sind in der NC-Zeile mehrere PLCopen-Aufträge programmiert, erfolgt die Weiterschaltung erst, sobald alle Aufträge, für die das Schlüsselwort "WaitSyn" angegeben ist, fertig sind.
Syntax |
<Spindelname>[ <FB-Name> [WaitSyn] <Eingangspin2> <Eingangspin n...> { \ } ] |
Programmierbeispiel
N10 G01 X100 F10000
N20 S[MC_MoveAbsolute WAIT_SYN POSITION=900000 …]
;Weiterschaltung in Satz N30 erfolgt sobald die Spindel S die ;Position 90° erreicht hat
N30 G01 X200 F100
2) Späte Synchronisierung:
Über das Schlüsselwort "Id" kann einem PLCopen Auftrag eine Job-ID zugeordnet werden. Mit dem Befehl #WAIT MC_STATUS SYN [ID<JobNr>] kann zu einem späteren Zeitpunkt auf das Ende des PLCopen-Auftrags gewartet werden.
Syntax |
<Spindelname>[ <FB-Name> [Id=..>] <Eingangspin2> <Eingangspin n...> { \ } ] |
#WAIT MC_STATUS SYN [ID=.. { ID=.. } ] |
Falls mehrere PLCopen-Aufträge mit identischen Jobnummern gestartet werden, so wird die Jobnummer der zuletzt beauftragen PLCopen-Funktion zugeordnet. Eine späte Synchronisierung auf Auftragsende ist dann nur für den zuletzt gestarteten Auftrag möglich.
Programmierbeispiel
N10 G01 X100 F10000
N20 S[MC_MoveAbsolute Id100 POSITION=900000 …]
N30 G01 X200
N40 S2[MC_MoveVelocity Id200 Velocity=10000 …}
N50 G01 X300
N60 #WAIT MC_STATUS SYN [ID100 ID200]
; Weiterschaltung in Satz N70 erfolgt, falls Spindel S die
; Position 90° und Spindel S2 die Drehzahl 10°/s erreicht hat
N70 G0 X0