Beispiele zu den Synchronisationsarten im Zusammenhang mit Bewegungen
![]() | In den folgenden Beispielen wird zu Vereinfachung die DIN-Syntax mit kanalspezifischer Ausgabe verwendet. Die Parametrierung erfolgt mit dem bekannten Parameter P-CHAN-00041 (m_synch[..]). |
MVS_SVS
Freigabe der Bewegung erst nach Quittierung der M-Funktion durch die PLC
Initialisierung in der Kanalparameterliste
m_synch[..] 0x2
Programmierbeispiel
N20 G00 X25
N30 X50
N40 X75 M25 (M25 vom Typ MVS_SVS )
N50 G01 X100 F2000
N60 X125 Z100
M30

Bei Bearbeitung des Satzes N40 wird M25 ausgegeben und vor Beginn der Bewegung in N40 auf die Quittierung der PLC gewartet.
MVS_SNS
Bearbeitung des nachfolgenden CNC-Satzes erst nach Quittierung der M-Funktion durch die PLC.
Initialisierung in der Kanalparameterliste
m_synch[..] 0x4
Programmierbeispiel
N20 G00 G90 X25
N30 X50
N40 X75 M25 (M25 vom Typ MVS_SNS )
N50 G01 X100 F2000
N60 X125 Z100
M30

Bei Bearbeitung des Satzes N40 wird M25 ausgegeben und die Bewegung fortgesetzt. Ist die Quittierung von M25 nicht rechtzeitig erfolgt, so wird am Ende von N40 angehalten.
MNS_SNS
Anhalten am Satzende bis zur Quittierung der M-Funktion durch die PLC.
Initialisierung in der Kanalparameterliste
m_synch[..] 0x8
Programmierbeispiel
N20 G00 X25
N30 X50
N40 X75 M25 (M25 vom Typ MNS_SNS )
N50 G01 X100 F2000
N60 X125 Z100
M30

Nach Bewegung in N40 wird in jedem Fall angehalten und nach Ausgabe von M25 auf die Quittierung durch die PLC gewartet.
MNE_SNS
Die Ausgabe der M-Funktion wird durch ein Ereignis ausgelöst. Bewegungsfreigabe über das Satzende hinaus erst nach Quittierung der M-Funktion durch die PLC.
Initialisierung in der Kanalparameterliste
m_synch[..] 0x20
Programmierbeispiel
N05 X0 Y0
N10
G108 (Start Messen Kantenstoßen)
N20 G01 X90 Y90
F20
N30 G01 X150 Y150
M33 F8 (M33 vom TypMNE_SNS)
N40
G107 (Ende Messen Kantenstoßen)
N50 G00 X200 Y200
M30

Ein Messereignis in N30 führt zur Ausgabe von M33. Dann wird noch der durch das Messverfahren bestimmte Restweg zurückgelegt. Anschließend wird auf die Quittierung von M33 durch die PLC gewartet.
MVS_SLM
Satzübergreifende, implizite Synchronisation bei Übergang zum nächsten Vorschub-Bewegungssatz (G01, G02, G03). Bewegungsfreigabe über das Ende dieses Bewegungssatzes hinaus erst nach Quittierung der M-Funktion durch die PLC
Initialisierung in der Kanalparameterliste
m_synch[..] 0x4000
Programmierbeispiel
N05 M24 (M24,Synchronisationstyp MVS_SLM)
N10 M25 G00 X25 (M25,Synchronisationstyp MVS_SLM)
N20 X50
N30 X75
N40 X100
N50 G01 X125 F2000 <--Triggerung von M24, M25 vor
Ausführung des Bewegungssatzes
N60 Z100
M30

![]() | Wird die MVS_SLM M-Funktion im Vorschubbewegungssatz programmiert, so erfolgt entsprechend MVS_SVS die Synchronisation vor Beginn dieser Bewegung.Bsp. N10 G01 F100 M24 |
MVS_SLP
Programmierte Synchronisation (#EXPL_SYN)
Initialisierung in der Kanalparameterliste
m_synch[..] 0x8000
Programmierbeispiel
N05 M26 G00 X25 (M26, Synchronisationstyp MVS_SLP)
N10 M27 (M27, Synchronisationstyp MVS_SLP)
N20 X50N30 X75N40 X100N50 G01 X125 F2000
N60 #EXPL SYN Triggerung von M26, M27 vor
Ausführung des nächsten Satzes
N70 G00 X0
N80 X0 Y0
M30

Verhalten der späten Synchronisation (MVS_SLM, MVS_SLP) bei Programmende
Ist nach Programmierung einer MVS_SLM M-Funktion kein Vorschub Bewegungssatz, bzw. nach Programmierung einer M-Funktion mit Synchronisationsart MVS_SLP kein #EXPL SYN mehr im aktuellen CNC-Programm vorhanden, so bleibt die M-Funktion auch über das CNC-Programmende hinaus aktiv. Eine Synchronisation findet dann in einem folgenden CNC-Programm bei Erreichen der Trigger-Bedingung statt.
Programmierbeispiel
%PRG1
N05 M26 G00
X25 (M26, Synchronisationstyp MVS_SLM)
N10 M27 (M27, Synchronisationstyp MVS_SLP)
M30 (M26, M27 am Programmende noch)
(aktiv)
%PRG2
N10 G01 F100 X10
<--Triggerung von M26 vor
Ausführung der Bewegung
N20 #EXPL SYN Triggerung von M27 vor
Ausführung des nächsten Satzes
M30
Sind beim Start eines CNC-Programms noch ausstehende M-Funktionen mit später Synchronisationsart aus dem vorangegangenen CNC-Pro-gramm vorhanden, so kann hier grundsätzlich eine Synchronisation erzwungen werden.
Hierzu ist der Kanalparameter P-CHAN-00033 (late_sync_ready) mit 1 zu belegen.
Initialisierung in der Kanalparameterliste
late_sync_ready 1
Programmierbeispiel
%PRG1
N05 M26 G00 X25 (M26, Synchronisationstyp MVS_SLM)
N10 M27 (M27, Synchronisationstyp MVS_SLP)
M30 (M26, M27 am Programmende noch aktiv)
%PRG2 <--Triggerung und warten auf Quittierung von
M26, M27 vor Start des Programms
N10 G01 F100 X10
M30
MET_SVS, MEP_SVS
Vorgezogene Ausgabe der M-Funktion gemäß Weg- oder Zeitangabe, Bewegungsfreigabe erst nach Quittierung der M-Funktion durch die PLC
Initialisierung in der Kanalparameterliste
m_synch[..] 0x01000000 (Synchronisation MEP_SVS)
m_synch[..]0x02000000 (Synchronisation MET_SVS)
Programmierbeispiel
N10 G01 X10 G90
F5000
N20 X20
N30 X30
N40 X40
N50 M96 (M96 MEP_SVS m_pre_outp = 250000,)
(oder MET_SVS m_pre_outp = 300000us)
N55 X80
N60 X0
M30

Festlegung des Wegvorlaufes bzw. Zeitvorlaufes
Die Kanalparameter P-CHAN-00070(m_pre_outp[i]) und P-CHAN-00107(h_pre_outp[i]) werden in Verbindung mit den Synchronisationstypen MET_SVS und MEP_SVS verwendet. Die Parameter legen den Wert für die Ausgabe vor Bearbeitung der M/H-Funktionen im Bahninterpolator fest. Beim Typ MET_SVS erfolgt die Angabe des Zeitvorlaufs, beim Typ MEP_SVS erfolgt die Angabe des Wegvorlaufes
Beispielhafte Initialisierung in der Kanalparameterliste für 2 M-Funktionen:
- Die anwenderspezifische M-Funktion M96 soll 10 Millimeter vor Erreichen der Synchronisationsposition in der Satzsequenz an die PLC ausgegeben werden
- Die anwenderspezifische M-Funktion M97 soll 40 Millisekunden vor Erreichen des Synchronisationszeitpunktes in der Satzsequenz an die PLC ausgegeben werden.
# Festlegung der M-Funktionen und Synchronisationsarten
#======================================================
:
m_synch[96] 0x01000000 MEP_SVS
m_synch[97] 0x02000000 MET_SVS
#
# Einstellung Vorausgabezeit/-weg mit MET_SVS, MEP_SVS
#=======================================================
m_pre_outp[96] 100000 in 0.1 um
m_pre_outp[97] 40000 in us
![]() | Die Festlegung des Weg-/Zeitvorlaufes einer M/H-Funktion kann auch über das NC-Programm durch entsprechende Variablen verändert werden (z.B. V.G.M_FCT[MNr].PRE_OUTP_PATH , siehe[PROG]). |
MOS_TS
Ausgabe der M-Funktion vor dem Satz, keine Synchronisation. Bei diesem Typ wird ein Zeitoffsetwert bezogen auf den Satzwechselpunkt bereitgestellt.
Bedingt durch die Abtastung mit der Zykluszeit tzykl liegt zwar der Ausgabepunkt einer M-Funktion auf Interpolatorebene zeitlich im Abtastraster, aber um maximal einen Abtasttakt zeitlich versetzt zum Satzwechselpunkt. In der PLC kann der exakte Ausgabezeitpunkt mit Hilfe des mitgeführten Zeitoffsets der M-Funktion in der PLC ermittelt und ausgeführt werden. (siehe auch[HLI], pMHTechno^.D_Time).
Initialisierung in der Kanalparameterliste
m_synch[..] 0x00040000 (MOS_TS)
Programmierbeispiel
N10 G01 X25 G90 F5000
N20 X50
N30 M25 (M25 MOS_TS)
N40 X100
N50 X200
M30

Der Ausgabepunkt der M-Funktion liegt zeitlich im Abtastraster, aber nicht exakt auf der Satzgrenze zwischen den beiden Bewegungsätzen N20 und N40. Zur Steuerung der hochgenauen Ausgabe in der PLC wird der Zeitoffset tcr (Bruchteil eines Zyklustaktes, kennzeichnet die exakte Lage des Abtasttaktes bezogen auf die Satzgrenze) bei der Berechnung des Ausgabezeitpunktes berücksichtigt.
![]() | Typischerweise wird die exakte zeitliche Ausgabe mit Hilfe einer speziellen zeitlich hochauflösenden Timer-Hardware realisiert. |
ProgrammierbeispielExakte wegsynchrone Ansteuerung von I/Os
Ein Laser (100µm Strahlbreite) soll beim Schneiden positionsgenau ein-/ausgeschaltet werden. Die Toleranz liegt im Bereich von 10 µs bzw. von ½ Strahlbreite = 50 µm. Die zeitliche Auflösung durch den Interpolationstakt der CNC (typisch 1ms) ist hierfür nicht ausreichend. Durch Verwendung einer zeitlich hochauflösenden Hardware und Algorithmen in der PLC lässt sich das Problem lösen.
Die Totzeit in der Systemkette CNC zum Antrieb muss größer sein als die Totzeit in der Systemkette zum Lasersystem.

Im vorliegenden Fall wird von einer typischen Totzeit von 800μs des Lasersystems ausgegangen. Bei der Positionierkette CNC Antrieb liegt die Totzeit typisch bei 5 Taktzyklen (5 * 1 ms = 5 ms). Das Positionsregelsystem im Antrieb arbeitet schleppabstandsfrei (aktive Vorsteuerung). Wenn dennoch erforderlich, muß der Schleppabstand abgeschätzt werden. In der PLC wird die Totzeit der Positionierkette für die Ansteuerung des Lasers mit der Zeit TDPLC berücksichtigt. Die PLC verzögert also den von der CNC bereitgestellten M-Code des Bahninterpolators um n Takte. Das exakte Schaltsignal für den Laser innerhalb des Folgetaktes wird in der PLC auf Basis der Interpolationsdaten und der Totzeit berechnet und über eine Hardwareklemme mit einem hohen Basistakt (z. B. 1µs) erzeugt.
