PLCopen-Programmierung

Eine vollständige Liste der PLCopen-Funktionen findet sich in der Befehlsübersicht im Anhang unter PLCopen-Programmierung.

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:

SAI-Achsen in CNC-Topologie
Abb.: SAI-Achsen in CNC-Topologie

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:

Weitere Informationen können der Dokumentation [1]-Kapitel: Konfiguration der Spindeln- und dem Kapitel Parametrierung von Spindeln entnommen werden.

Die PLCopen-Funktionen

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.

Allgemeine Syntax eines (SAI-)NC-Befehls:

<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

notice

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

prg_example

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

prg_example

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