Skip to main content
Makro Sprache Bewegung | 01 Mai 2017 | |

Makro Sprache Bewegung

Valid for S300, S700

Fahraufträge in EEPROM oder RAM

Um in einem PLC - Programm Fahraufträge zu bewältigen, verwenden Sie die Befehle XWRITE und COMMAND, die auf die ASCII - Variablen zugreifen:

Beispiel:
COMMAND('ORDER 192 49000 2800 8192 50 50 0 0 0 0'); 
Erstellt einen Fahrauftrag mit der Nummer 192 mit der Zielposition 49000, Sollgeschwindigkeit 2800, Auftragstyp „absolut",  Beschleunigungs- und Bremsrampe 50ms, kein Folgeauftrag.

Es ist auch möglich, einzelne Werte eines im RAM gespeicherten Fahrauftrags zu ändern: 
COMMAND (‘MTMUX 195’);  // Pointer auf Fauhrauftrag 195 einstellen  
XWRITE (‘O_P’, TEMPVAR); // Wert der Variablen TEMPVAR schreiben

Mit Hilfe dieser beiden Zeilen wird die Position des Fahrauftrags Nr. 195 in TEMPVAR verändert.

Fahrauftrag Nr. 0

Den ASCII Befehlen

O_P 
O_V 
O_C 
O_ACC1 
O_ACC2 
O_DEC1 
O_DEC2 
O_FT 
O_FN

sind Makrovariablen zugeordnet, die dieselben Namen wie die ASCII - Befehle tragen. Diese Befehle schreiben direkt in den Fahrauftrag Nr. 0, ohne den ASCII - Befehl XWRITE aufzurufen.

Beispiel: 
Die Zeilen 
O_P := 35000; 
O_V := 50000; 
setzen die Position von Fahrauftrag Nr. 0 auf 35000 und die Geschwindigkeit auf 50000.

Fahrauftrag starten

Ein Fahrauftrag („Motion Task") kann mit Hilfe der folgenden Zeilen gestartet werden: 

MOVEP_NR:=0;               // Nummer des Fahrauftrages einstellen 
SETPTR(TRJ,G_STARTMOVE);   // Fahrauftrag starten

Tippbetrieb starten (in OPMODE 8)

VJOGIO:=MYJOGSPEED;       // Tipp - Geschwindigkeit einstellen
SETPTR(TRJ,G_MOVEJOGIO);  // Bewegung starten

Referenzfahrt starten

SETPTR(TRJ,G_MOVEREF);    // Referenzfahrgeschwindigkeit VREF wird benutzt

Bewegung beenden

SETPTR(TRJ,G_STOPMOVE);

OPMODE wechseln

NOPMODE:=TEMPVAR1;        // set new OPMODE
FUNCTION(CALCOPMODE);     //do some internal adjustments

Camming Funktionen

Bis zu 8 Profile (Tabellen) können im Verstärker gespeichert werden. Alle Profile zusammen können bis zu 8.000 Punkte beschreiben. Tabellennummer startet mit 0. 
Die Systemvariablen LTABL0,...LTABL7 beschreiben die Länge der Tabellen.

Wenn einer Camming Tabelle basierend auf einem externen Master (z.B. einem Encoder) gefolgt werden soll, muss der Parameter EXTPOS auf einen negativen Wert gesetzt werden (passend zum Encoder). Das Camming kann dann auf die Variable PFB0 bezogen werden. Camming wird im OPMODE 5 durchgeführt, die Position kommt von der Tabelle, die vom Macro NEWPOS ausgewertet wird.

Die folgenden Funktionen können verwendet werden:

FUNCTION4(GETTAB,TABVAL,TABNR,INDEX,TABREST);

Diese Funktion holt einen Wert aus einer Tabelle und führt eine (lineare) Interpolation zwischen zwei Werten durch. Alle Variablen müssen im LONG Format definiert sein. 

Parameter Bedeutung
FUNCTION4 Startet eine Funktion mit 4 Variablen des Types LONG
GETTAB Funktionsname
TABVAL Funktionsergebnis
TABNR Tabellennummer
INDEX Pointer für die Tabelle. Wert der Tabellenposition INDEX wird verwendet.
TABREST Rest, wird für die Interpolation zwischen Tabellenwerten verwendet. Format 0...1023

Der Wert von TABVAL wird wie folgt berechnet:

TABVAL:=TABLE{TABNR}{INDEX} + ((TABLE{TABNR}{INDEX+1}-TABLE{TABNR}{INDEX})*TABREST)>>10;

FUNCTION5(GEARALL,POSOUT,TABVAL,MYGEARI,MYGEARO,MYREST);

Diese Funktion  führt eine Multiplikation und Division aus und berücksichtigt den sich aus der Division ergebenden Rest.  Anwendung: Sinnvoll bei Gearing-Funktionen? Alle Variablen müssen im LONG Format definiert sein.

Parameter Bedeutung
FUNCTION5 Startet eine Funktion mit 5 Variablen des Types LONG
GEARALL Funktionsname
POSOUT Funktionsergebnis
TABVAL Eingangswert für die Funktion
MYGEARI Übersetzuing Nenner
MYGEARO Übersetzung Zähler
MYREST Rest, darf nicht vom Nutzerprogramm verändert werden

Diese Funktion führt folgende Berechnung durch:

TEMP = TABVAL*MYGEARO+MYREST; POSOUT = TEMP/MYGEARI; MYREST = TEMP%MYGEARI; (% steht für Modulooperation)

Durch Mitführen von MYREST wird ein Weglaufen der Achse durch ständige Fehler der Division verhindert.

Back to top

About this Article

Kollmorgen Support