Danfoss MCO 305 Programming guide [de]

MCO 305 Befehlsreferenz
Inhaltsverzeichnis
MCO 305 Befehlsreferenz lesen ................................................3
Verfügbare Literatur für FC 300, MCO 305 und MCT 10 Motion Control Tool...........4
Symbole und Konventionen ...........................................................................5
Abkürzungen...............................................................................................5
Definitionen ................................................................................................6
Befehlsreferenz ........................................................................9
Anhang................................................................................. 149
Neues in der aktuellen Version ab MCO 5.00 ................................................ 149
Technische Referenz ................................................................................. 154
Abbildungen............................................................................................ 162
Stichwortverzeichnis................................................................................. 165
Copyright ¤ Danfoss A/S, 2010
Warenzeichen VLT ist ein eingetragenes Warenzeichen von Danfoss.
Hiperface® ist ein eingetragenes Warenzeichen der Sick Stegmann GmbH, Max Stegmann GmbH
Antriebstechnik-Elektronik.
Microsoft, Windows 2000 und Windows XP sind entweder eingetragene Warenzeichen oder Warenzeichen der
Microsoft Corporation in den USA und/oder anderen Ländern.
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 1
MCO 305 Befehlsreferenz
MCO 305 Befehlsreferenz lesen
Befehlsreferenz lesen
Die Befehlsreferenz ergänzt das MCO 305 Projektierungshandbuch mit der detaillierten Beschreibung aller Befehle. Bitte lesen Sie auch das Produkthandbuch, um sicher und professionell mit dem System zu arbeiten und beachten Sie vor allem auch die Sicherheitshinweise und allgemeinen Warnungen.
Das Kapitel Befehlsreferenz lesen informiert über die Symbole, Abkürzungen und Definitionen, die in diesem Handbuch benutzt werden.
Seitenteiler für „Befehlsreferenz lesen”.
Das Kapitel Befehlsreferenz enthält die detaillier­te Beschreibung aller Befehle mit deren Syntax sowie Programmbeispielen.
Seitenteiler für „Befehlsreferenz”.
Das Kapitel Anhang berichtet über „Neues in der aktuellen Version”. Erfahrene Anwender finden aus­führliche Informationen in der Technischen Referenz zum Beispiel „Array Structure of CAM Profiles”. Das Handbuch schließt mit einem Stich­wortverzeichnis.
Seitenteiler für „Anhang”.
In der Online-Hilfe finden Sie im Kapitel Programmbeispiele etwa 50 kurze Beispiele, die Sie benutzen können, um sich mit dem Programm vertraut zu machen oder direkt in Ihr Programm kopieren können.
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 3
MCO 305 Befehlsreferenz
__ MCO 305 Befehlsreferenz lesen __
Verfügbare Literatur für FC 300, MCO 305 und MCT 10 Motion Control Tool
Das MCO 305 Produkthandbuch liefert die erforderlichen Informationen zum Einbau und für die
Inbetriebnahme des MCO 305 sowie für die Optimierung der Steuerung.
Das MCO 305 Projektierungshandbuch enthält alle technischen Informationen über die Optionskarte
sowie Informationen für die Realisierung kundenspezifischer Designs und Anwendungen.
Diese MCO 305 Befehlesreferenz ergänzt das MCO 305 Projektierungshandbuch mit der detaillierten
Beschreibung aller Befehle.
Das VLT® AutomationDrive FC 300 Produkthandbuch liefert die erforderlichen Informationen für die
Inbetriebnahme und den Betrieb des Frequenzumrichters. Das VLT® AutomationDrive FC 300 Projektierungshandbuch enthält alle technischen Informationen zum
Frequenzumrichter sowie Informationen zur kundenspezifischen Anpassung und Anwendung.
Das VLT® AutomationDrive FC 300 MCT 10 Produkthandbuch bietet Informationen für die Installation
und den Gebrauch der Software auf einem PC.
Die technische Literatur von Danfoss Drives ist auch online unter www.danfoss.com/drives verfügbar.
4 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
__ MCO 305 Befehlsreferenz lesen __
Symbole und Konventionen
In diesem Handbuch verwendete Symbole:
ACHTUNG!:
Kennzeichnet einen wichtigen Hinweis.
Kennzeichnet eine allgemeine Warnung.
Konventionen
Die Informationen in diesem Handbuch sind weitestgehend systematisiert und typografisch folgendermaßen beschrieben:
Menüs und Funktionen, Befehle und Parameter Menüs und Funktionen sind kursiv geschrieben, zum Beispiel Steuerung o Parameter. Befehle und Parameternamen sind in Großbuchstaben geschrieben, zum Beispiel: AXEND und KPROP;
Parameter sind kursiv geschrieben, zum Beispiel: Proportionalfaktor. Parameter-Einstellungen Werte, die für Parameter-Einstellungen ausgewählt werden können, stehen in eckigen Klammern, z. B. [3]. Tasten Die Namen der Tasten und Funktionstaten stehen ebenfalls in eckigen Klammern, zum Beispiel die
Steuerungstaste [Strg]-Taste oder nur [Strg], die [Esc]-Taste oder die [F1]-Taste.
Abkürzungen
Ampere, Milliampere A, mA
Benutzereinheiten BE
Digitaler Signal-Prozessor DSP
Frequenzumrichter FU
Hauptistwert HIW
Hauptsollwert HSW
LCP Bedieneinheit LCP
Bit mit dem niedrigsten Stellenwert LSB
Motion Control Option MCO
Motion Control Tool MCT
Minute Min
Maschinennullpunkt MN
Höchstwertiges Bit MSB
Master Unit MU
Nach plus schaltender digitaler Ausgang
Parameter Par.
PID Regelung PID
Nach minus schaltender digitaler Ausgang
Pulse pro Umdrehung [PPR] Pulse/U
Quadcounts qc
Sekunde, Millisekunde s, ms
Abtastzeit (Sample time) st
Steuerwort STW
Umdrehungen pro Minute U/Min
Volt V
Zustandswort ZSW
NPN
PNP
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 5
MCO 305 Befehlsreferenz
__ MCO 305 Befehlsreferenz lesen __
Definitionen
MLONG
Eine untere oder obere Grenze für viele Parameter ist:
-MLONG = -1.073.741.824 MLONG = 1.073.741.823
Quadcounts
Inkrementalgeber: 4 Quadcounts entsprechen einer Drehgeber-Umdrehung. Absolutgeber: 1:1 (1 qc entspricht einer Dreh­geber-Umdrehung).
Aus den beiden Spuren (A/B) der Inkrementalgeber wird durch Flankenauswertung eine Vervierfachung der Inkremente erzeugt. Dies verbessert die Auf­lösung.
Ableitung der Quadcounts.
Benutzereinheiten
Die Einheiten für den Antrieb oder den Slave und den Master können in beliebiger Weise definiert werden, so dass der Anwender mit sinnvollen Werten arbeiten kann.
Die Faktoren SYNCFACTM / SYNCFACTS, POSFACT_Z / POSFACT_N sind ab Version MCO 5.00 nicht mehr auf kleine Werte begrenzt.
Intern werden sie wie folgt behandelt: Wann immer ein Wert mit einem Getriebefaktor multipliziert werden muss (d.h. Master Inkremente per ms), wird zuerst geprüft, ob eine Multiplikation einen Überlauf erzeugt. Falls dies der Fall wäre, wird ein Faktor (64 Bit) benutzt, bestehend aus
SYNCFACTS/SYNCFACTM zum Multiplizieren von delta_master. Falls kein Überlauf entsteht, wird zuerst mit SYNCFACTS multipliziert und dann durch SYNCFACTM geteilt. Der Fehler wird wie folgt behandelt:
Normaler Fall Die Multiplikation mit SYNCFACTS erzeugt keinen Fehler, aber die Division durch SYNCFACTM besagt, dass
das Ergebnis um 1/2³² falsch sein kann. Das bedeutet, dass (im schlimmsten Fall) solch ein Fehler jede ms auftritt, d.h. dass nach 1193 Stunden (49,71 Tage) ein Fehler von 1 qc (Slave) gemacht wird.
Hohe Faktor-Werte In diesem Fall könnte der benutzte Faktor selbst (SYNCFACTS/SYNCFACTM) um 1/2³²
falsch sein. Das heißt, dass im schlimmsten Fall jede ms ein Fehler von delta_master * 1/2³² auftritt. Angenommen, es wird ein Drehgeber mit 1000 Strichen (4000 qc) pro Umdrehung eingesetzt. Weiter angenommen, dass mit 2000 U/min gefahren wird, d.h. mit einer Geschwindigkeit von 133 qc/ms. Das bedeutet, dass ein Fehler von 133 * 1/2³²
per ms gemacht wird. Daraus folgt, dass im schlimmsten Fall (maximaler Fehler jede ms
immer in der gleichen Richtung) ein Fehler von 1 qc nach 9 Stunden entstehen könnte. Das sollte in den meisten Anwendungen nicht relevant sein.
6 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
__ MCO 305 Befehlsreferenz lesen __
Benutzereinheiten [BE]
Wegangaben in Fahrbefehlen erfolgen immer in Benutzereinheiten und werden intern in Quadcounts umge­rechnet. Diese wirken sich auf alle Befehle für das Positionieren aus: z.B. APOS, POS.
Auch für die Kurvenscheibensteuerung kann der Anwender sinnvolle Einheiten wählen, um die Kurve für den Master und den Slave zu beschreiben. Zum Beispiel 1/100 mm oder bei Anwendungen, bei denen eine Um­drehung betrachtet wird 1/10 Grad.
Bei der Kurvenscheibensteuerung wird der maximale Fahrabstand des Slaves bzw. die Zykluslänge des Slaves in Benutzereinheiten BE [qc] angegeben.
Sie normieren die Einheit mit einem Faktor. Dieser ist ein Bruch, der sich aus Zähler und Nenner zusam­mensetzt:
[BE]nheitBenutzerei1
Par. 32-12 Benutzerfaktor Zähler POSFACT_Z Par. 32-11 Benutzerfaktor Nenner POSFACT_N
Die Normierung bestimmt, wie viele Quadcounts eine Benutzereinheit ergeben: Wenn der Faktor zum Beispiel 50375/1000 beträgt, entspricht eine BE genau 50,375 qc.
ACHTUNG!:
Wenn die Benutzereinheiten in qc umgerechnet werden, wird der Integer-Wert benutzt. Wenn qc in Benutzereinheiten umgerechnet werden, wird gerundet.
Master Units [MU]
Die Kurvenlänge bzw. Master-Zykluslänge und andere Angaben (zum Beispiel der Markerabstand) für die Kurvenscheibensteuerung werden in Master-Units MU angeben.
[MU]UnitMaster1
Par. 33-10 Synchronisationsfaktor Master SYNCFACTM Par. 33-11 Synchronisationsfaktor Slave SYNCFACTS
ZählerktorBenutzerfa12-32Par.
NennerktorBenutzerfa11-32Par.
MasterorationsfaktSynchronis1033Par.
SlaveorationsfaktSynchronis1133Par.
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 7
MCO 305 Befehlsreferenz
Befehlsreferenz
Im folgenden Abschnitt finden Sie alle Befehle in alphabetischer Reihenfolge ausführlich beschrieben mit Syntax-Beispielen sowie kurzen Programmbeispielen. Bitte lesen Sie auch den Abschnitt „Grundlagen” im Kapitel „Programmieren” im MCO 305 Projektierungshandbuch.
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 9
MCO 305 Befehlsreferenz
__ Befehlsreferenz __
ACC
Kurzinfo Beschleunigung für Fahrbefehle setzen
Syntax ACC a
Parameter a = Beschleunigung
Beschreibung Der Befehl ACC bestimmt die Beschleunigung für die nächsten Fahrbefehle
(Drehzahl-, Positionier- oder Synchronisationsmodus). Der Wert bleibt solange gültig, bis mit einem weiteren ACC Befehl eine neue Beschleunigung gesetzt wird.
Der Wert bezieht sich auf die Parameter 32-81 Kürzeste Rampe und 32-80 Maximalgeschwindigkeit sowie 32-83 Geschwindigkeitsteiler.
ACHTUNG!:
Wurde vor einem Fahrbefehl noch keine Beschleunigung definiert, wird mit dem Default-Wert aus Par. 32-85 Default-Beschleunigung beschleunigt.
ACHTUNG!:
Wenn die MCO 305 zum Steuern des FC 300 benutzt wird, sollten die Rampen immer über die Optionskarte eingestellt werden und nicht im FC 300. Die FC 300­Rampen müssen dabei immer auf Minimum stehen.
Befehlsgruppe REL, ABS
Querverweise DEC, VEL, POSA, POSR,
Parameter: 32-81 Kürzeste Rampe, 32-80 Maximalgeschwindigkeit, 32-83 Geschwindigkeitsteiler
Syntax-Beispiel ACC 10 /* Beschleunigung 10 */
Beispiel Minimale Beschleunigungszeit: 1000 ms
Maximale Geschwindigkeit: 1500 U/Min (25 U/s) Geschwindigkeitsteiler: 100
Programmbeispiel ACC_01.M
10 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
APOS
Kurzinfo Aktuelle Position einer Achse abfragen
Syntax erg = APOS
Rückgabewert erg = Istposition in Benutzereinheiten (BE) absolut zum aktuellen Nullpunkt
Wegangaben in Fahrbefehlen erfolgen immer in Benutzereinheiten und werden intern in Quadcounts umgerechnet. (Siehe auch Benutzerfaktor Zähler und Nenner in Parameter 32-12 und 32-11.)
Die Benutzereinheit (BE) entspricht in der Standardeinstellung der Anzahl Quad­counts:
Parameter
Beschreibung Der Befehl APOS kann die Position der Achse absolut zum aktuellen Nullpunkt
abfragen.
ACHTUNG!:
Wenn ein mit SETORIGIN gesetzter und aktiver Temporärnullpunkt existiert, bezieht sich der Positionswert auf diesen Nullpunkt.
__ Befehlsreferenz __
ZählernheitBenutzerei12-32Par.
NennernheitBenutzerei11-32Par.
1
ACHTUNG!:
Das Ergebnis muss nicht der Ziel- oder Sollposition entsprechen, wenn man mit APOS die Position abfragt. Es können sich Fehler oder Abweichungen durch die Mechanik und den abgerundeten Dezimalstellen in den Benutzereinheiten ergeben.
APOS wird von den Parametern 32-12 und 32-11 sowie den Befehlen SETORIGIN p und DEFORIGIN beeinflusst.
Beispiel: POSA 2000
Initial
PRINT "Istposition erreicht", APOS Ausgabe: Istposition erreicht 2000
(abhängig von den PID Einstellungen könnte eine kleine Abweichung auftreten)
Beispiel mit SETORIGIN SETORIGIN 2000
POSA 2000 PRINT "Istposition”, APOS
Ausführung
2000
Ausgabe: Istposition 2000
Beim Programmstart wird in diesem Beispiel die absolute Position 2000 qc als Start­position festgelegt; dann wird der Antrieb um 2000 qc entsprechend dem Positionierbefehl weiter gefahren.
Befehlsgruppe SYS
Querverweise CPOS, DEFORIGIN, SETORIGIN, POSA, POSR
Parameter: 32-12
Benutzerfaktor Zähler, 32-11 Benutzerfaktor Nenner
Syntax-Beispiel PRINT APOS /* Istposition der Achse am PC ausgeben */
Programmbeispiel APOS_01.M, GOSUB_01.M, MOTOR_01.M
0
Nach der
Nach der
Positionierung
0
Initial
0
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 11
MCO 305 Befehlsreferenz
g
APOSDIFF
Kurzinfo Overflow-Handling von Inkrementalgebern in Anwendungen.
Syntax erg = APOSDIFF oldpos
Parameter n = Achsnummer
oldpos = APOS zu einem früheren Zeitpunkt
Rückgabewert Liefert die Differenz zwischen APOS und oldpos (erg = APOS – oldpos) in BE.
Beschreibung Dieser Befehl vereinfacht die Behandlung des Überlaufs von Inkrementalgebern in
Anwendungen. Wenn zum Beispiel der Anwender eine aktuelle Position in seinem Pro den Überlauf der Position berücksichtigen. Statt dessen kann dieser Befehl benutzt werden; siehe unten.
Intern prüft diese Routine, ob die Differenz größer als POS_LIMIT (0x3FFFFFFF) ist. Falls ja, wird angenommen, dass ein Überlauf stattfand und es wird korrekt gehandhabt.
ACHTUNG!:
Dies löst aber nicht das Überlaufproblem wenn in der Anwendung Benutzereinheiten BE benutzt werden.
__ Befehlsreferenz __
ramm speichert und später die Differenz berechnen will, muss er normalerweise
Portabilität
Standardbefehl ab MCO 5.00
Befehlsgruppe SYS
Querverweise APOS
Syntax-Beispiel oldpos = APOS
….. diff = APOSDIFF oldpos // liefert die Differenz zwischen APOS und oldpos in BE // zur Handhabung von Overflow, falls notwendig (diff = APOS – oldpos)
AVEL
Kurzinfo Aktuelle Geschwindigkeit der Achse abfragen.
Syntax erg = AVEL
Rückgabewert erg = aktuelle Geschwindigkeit der Achse in BE/s; Wert mit Vorzeichen
Beschreibung Diese Funktion liefert die aktuelle Geschwindigkeit der Achse in Benutzereinheiten
pro Sekunde (BE/s) zurück. Die Genauigkeit der Werte hängt von der Messdauer (Mittelung) ab. Diese ist standardgemäß auf 20 ms eingestellt, kann aber vom Anwender mit dem _GETVEL Befehl verändert werden. Es genügt den Befehl einmal aufzurufen, um von da an mit einer anderen Messzeit zu arbeiten. So stellt der Befehl:
var = _GETVEL 100 die Messdauer auf 100 ms ein, so dass man bei AVEL und MAVEL eine wesentlich
bessere Auflösung der Geschwindigkeit erhält, schnelle Änderungen dagegen erst mit einer Verzögerung von maximal 100 ms.
Befehlsgruppe SYS
Querverweise MAVEL, APOS, _GETVEL
Syntax-Beispiel PRINT AVEL /* aktuelle Geschwindigkeit der Achse am PC ausgeben */
12 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
__ Befehlsreferenz __
AXEND
Kurzinfo Status der Programmausführung abfragen.
Syntax erg = AXEND
Rückgabewert erg = Achsstatus mit folgender Bedeutung:
Wert Bit
128 7 1 = Motor ist zurückgesetzt (reset), d.h. er ist startbereit und
regelt wieder, z.B. nach ERRCLR, MOTOR STOP, MOTOR ON 64 6 1 = Lageregelung ist abgeschaltet, Motor ist aus 4 - 5 nicht verwendet 8 3 1 = Motor ist im Zustand STOP 4 Bit 2 1 = Drehzahlmodus ist aktiv 2 Bit 1 1 = Positioniervorgang ist aktiv 1 Bit 0 1 = Zielposition erreicht; Motor im Stillstand
Beschreibung Der Befehl AXEND liefert den aktuellen Status der Achse bzw. den Stand der
Programmausführung. Damit können Sie zum Beispiel abfragen, wann die „Position erreicht” ist und ein
Positionierbefehl (POSA, POSR) wirklich abgeschlossen ist. Wenn Bit 1 auf [0] gesetzt ist, ist der Positioniervorgang abgeschlossen und die Position erreicht.
Wenn aber der Positionierbefehl mit MOTOR STOP unterbrochen wurde und später mit CONTINUE fortgesetzt wird, dann würden folgende Bits auf [1] gesetzt sein:
das Bit 0 für „Motor ist im Stillstand” das Bit 1 für „Positioniervorgang aktiv” das Bit 3 für „Motor ist im Zustand STOP” das Bit 6 für „Lageregelung abgeschaltet”
Der Befehl AXEND eignet sich besonders um im NOWAIT ON Zustand festzustellen, ob eine Bewegung abgeschlossen ist.
Befehlsgruppe SYS
Querverweise WAITAX, STAT, NOWAIT
Syntax-Beispiel NOWAIT ON // nicht warten bis Position erreicht ist
POSA 100000 WHILE (AXEND&2) DO // Solange Positioniervorgang aktiv, Schleife wiederholen IF IN1 THEN // wenn Eingang 1 gesetzt ist VEL 100 // Geschwindigkeit erhöhen POSA 100000 WAIT IN1 OFF // warten, bis Taste losgelassen ENDIF ENDWHILE // Position erreicht
Syntax-Beispiel IF (AXEND&64) THEN
OUT 1 1 // Ausgang 01 setzen, wenn Lageregelung abgeschaltet ELSE OUT 1 0 ENDIF
Programmbeispiel AXEND_01.M
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 13
MCO 305 Befehlsreferenz
j
CANDEL
Kurzinfo Löscht alle oder einzelne CAN-Objekte
Syntax CANDEL objnr
Parameter objnr = Objektnummer, die beim Definition des Objektes zurück gegeben wurde
= –1 löscht alle Objekte (außer den Standardobjekten)
Beschreibung Mit dem Befehl CANDEL können CAN-Ob
DEFCANIN oder DEFCANOUT angelegt wurden.
ACHTUNG!
Standardobjekte für die gepufferte Ein-/Ausgabe (OUTMSG oder INMSG) können damit nicht gelöscht werden. Diese können nur beim Initialisieren nicht angelegt werden.
CANIN
Portabilität
Befehlsgruppe CAN
Syntax-Beispiel CANDEL –1 /* es werden alle CAN-Objekte gelöscht */
Optionaler Befehl; Funktion „Einzelnes Objekt löschen” ab MCO 5.00.
__ Befehlsreferenz __
ekte wieder gelöscht werden, die zuvor mit
Kurzinfo Liest ein Objekt über den CAN-Bus
Syntax status = CANIN objnr timeout control varhi varlo
Parameter objnr = Objektnummer, die beim Definition des Objektes zurückgegeben
wurde.
Timeout = –1 es wird nicht auf die Daten gewartet
= 0 es wird gewartet, bis die Daten kommen > 0 es wird
timeout [ms] auf die Daten gewartet
control = 0 es wird geprüft, ob neue Daten gekommen sind.
Anschließend werden neue Daten in die Variablen kopiert
= 1 es wird ein Remote-Frame gesendet, und es wird in
Abhängigkeit von
timeout auf die Daten gewartet
varhi Byte 0 bis 3 der CAN-Objektdaten varlo Byte 4 bis 7 der CAN-Objektdaten
Rückgabewert status = –1 keine Daten angekommen
= 0 ok
Beschreibung Der Befehl CANIN kopiert die Daten (falls vorhanden) des CAN-Objektes objnr in
die Variablen
varhi und varlo. Wenn control = 1 ist, werden die Daten zuerst ange-
fordert. Es ist möglich alle Transmit-PDOs eines digitalen Eingangs-Moduls oder des CAN-
Drive-Status unter Verwendung eines einzigen CAN-Telegramms zu sammeln. Diese Funktion ist auf den Master-Bus
beschränkt. Die Funktion muss das CAN­Objekt 15 benutzen, das intern die Anzahl der verwendbaren CAN-Objekte auf dem Master-Bus um 1 reduziert.
Zum Aktivieren der Funktion muss der Befehl CANINI 999 benutzt werden Dieser Befehl aktiviert den Empfang der TxPDOs durch Interrupt und speichert
jedes erhaltene PDO in einen Puffer mit der Tiefe von 1. Dies funktioniert für alle IDs von 1 bis 127. Das heißt, wenn irgendein I/O-Modul in diesem Bereich ein TxPDO sendet, wird es erfasst und im Puffer gespeichert. Das nächste TxPDO des gleichen Moduls überschreibt natürlich das erste. Der Puffer kann mit folgendem Befehl ausgelesen werden:
erg = CANIN (id * 100) timeout 0 hi lo
14 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
__ Befehlsreferenz __
Dieser Befehl liefert -1 wenn keine neue Information im Puffer war, andernfalls liefert er 0. Timeout kann normal benutzt werden:
-1 wartet nicht, 0 wartet auf neue Information (ohne Abbruch), n wartet n ms.
Das Ergebnis wird in hi und lo geliefert, aber es wird gleich in Bytes angeordnet, so dass diese benutzt werden können, falls sie mit PDO[] gelesen werden. Das heißt, wenn lo eine 32-Bit Zahl enthält, kann es sofort benutzt werden, ohne die Bytes neu zu ordnen.
Wann immer ein neuer CANINI Befehl benutzt oder ein neues Programm gestartet wird, ist diese Funktion deaktiviert.
Natürlich beansprucht diese Funktion den Prozessor weil sie starken PDO Traffic auf dem Bus verursacht.
Es ist nicht Befehlen auf dem gleichen Bus zu verwenden. Dies kann zu unerwarteten Ergeb­nissen führen. Wenn zum Beispiel ein digitales CANopen-I/O-Modul mit ID 3 auf dem Master-Bus mit einem IN (3*256+1) oder CANINI 3 999 benutzt wird, wird dies zu einer Situation führen, in der der Befehl IN zwar arbeitet, aber es werden nicht die PDOs mit den oben beschriebenen CANIN Befehl geliefert. Der Grund hierfür ist, dass zwei CAN-Objekte mit der gleichen ID existieren. In diesem Fall bedient der Prozessor nur die erste. Wie oben erwähnt, wird Objekt 15 für den Empfang von allen PDOs benutzt, in diesem Fall also das letzte.
Portabilität Optionaler Befehl;
erweiterte Befehle CANINI und CANIN für den Einsatz eines einzigen CAN­Telegramms ab MCO 5.0.
Befehlsgruppe CAN
Querverweise CANOUT, CANDEL, DEFCANOUT, DEFCANIN
Syntax-Beispiel MSG = 0
temp = 0 /* Variablen definieren */ rx1 = DEFCANIN 42 8 /* es wird ein RX-Objekt angelegt */ STAT = CANIN rx1 1000 0 MSG temp /* 1s auf Daten warten */
Programmbeispiel CAN_sample.M, CANIN.M
empfehlenswert diese Funktion gemeinsam mit anderen CAN-IO
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 15
MCO 305 Befehlsreferenz
CANINI
Kurzinfo Initialisiert die notwendigen Objekte (PDOs) für den Datenaustausch mit CANopen-
Teilnehmern oder aktiviert die erweiterte CANINI, CANIN Funktion.
Syntax CANINI nr, nr, nr, …,
CANINI 999 CANINI nr, nr, 999, nr
ist auch möglich, jedoch nur im gleichen Befehl. Der nächste neue Befehle würde sonst die vorhergehenden Parameter löschen.
Parameter nr = guard * (busoffset * 1000 + id)
guard = –1, +1 (ohne / mit Guarding) busoffset = 100000 , 0 (Slave-Bus, Master-Bus) Beispiele für CANINI Werte:
Beschreibung Der Befehl CANINI nimmt Kontakt zu den CAN-Modulen auf und legt entsprechende
permanente CAN-Objekte an, um mit diesen Modulen kommunizieren zu können (PDO). Das hat den Vorteil, dass diese Eingangsmodule auch für Interrupt-Funktio­nen verwendet werden können ohne den Bus permanent zu belasten.
Wenn Sie keine Interrupts benötigen, können Sie mit CANINI die Abarbeitung der Befehle IN und INB beschleunigen, da die entsprechenden Module dann bei jeder Zustandsänderung eines Eingangs diese Information selbstständig schicken.
Es wird dringend empfohlen Eingangsmodule die mit CANINI initialisiert wurden auch mit Guarding zu überwachen (d.h. CANINI > 0), um sicherzustellen, dass das Modul noch präsent ist und an der Bus-Kommunikation teilnimmt. Falls ein Teilneh­mer nicht mehr vorhanden ist, wird durch die fehlende Rückantwort auf das GUARD­Objekt ein Fehler 188 ausgelöst. Auf diesen kann dann in der mit ON ERROR definierten Fehlerbehandlung reagiert werden.
Wenn CANINI für Antriebe ausgeführt wird, wird ein entsprechendes PDO erzeugt und – falls notwendig – auch das SYNC Objekt. Wenn die Überwachung gestartet wird, wird alle 20 ms ein Guarding-Telegramm zu einem Modul gesendet. Sind zum Beispiel 4 Module vorhanden, dauert es 80 ms, um jedes Modul zu überprüfen. Wenn innerhalb von 100 ms keine Antwort kommt, wird der Fehler 188 (guarding error) angezeigt.
Es können maximal 16 Module intern gespeichert werden. Jeder erneute CANINI Befehl initialisiert alle, früher mit CANINI angelegten Objekte,
d.h. die Überwachung (GUARD) und auch die SYNC Telegramme werden gestoppt. Allerdings nicht, wenn es permanente Objekte von einem Parameter 30 automatisch angelegten PDOs gemäß der Definition in den Parametern 32-00 und 32-30.
Der CANINI Befehl startet gleichzeitig die Module, d.h. für jedes Modul wird eine NMT0 Meldung gesendet, um das Modul auf den Status „betriebsbereit” zu setzen.
Wenn CANINI fehlschlägt kann die SYSVAR 67 [0x01220244] GuardErrorId ausge­lesen werden, um herauszufinden welche ID das Problem verursacht hat.
__ Befehlsreferenz __
0 Löscht alle zuvor mit CANINI definierten Objekte
Aktiviert den Empfang von allen TPDO1s (0x181-0x1FF) durch
999
Interrupt und speichert jeden erhaltenen PDO in einen Puffer mit der Tiefe 1.
1…127 CAN I/O mit Bus-ID 1…127 mit Guarding
–1…–127 CAN I/O mit Bus-ID 1…127 ohne Guarding
32-00 oder 32-
Inkrementalgeber Signaltyp gibt. Diese bleiben ebenso erhalten, wie die intern
16 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
__ Befehlsreferenz __
Portabilität
Befehl ab MCO 5.00 verfügbar.
ACHTUNG!
Falls der CANINI Befehl auf Steuerungen mit mehreren, getrennten CAN-Bus­Kreisen eingesetzt wird, wird die GUARD- und SYNC-Funktionalität nur auf dem so genannten Slave-Bus unterstützt.
Befehlsgruppe SYS
Querverweise IN, INAD, INB, OUT, OUTB, OUTDA,
32-00 oder 32-30
Par.
Syntax-Beispiel CANINI 1,2,3,4
/* Initialisieren der CAN-Module mit voreingestellter Teilnehmernummer */
Programmbeispiel CAN_sample.M
CANOUT
Kurzinfo Nachricht mit interner Nummer abschicken
Syntax CANOUT nr werthi wertlo
Parameter werthiByte 0 bis 3 der CAN-Objektdaten
wertlo Byte 4 bis 7 der CAN-Objektdaten
Beschreibung Mit diesem Befehl wird eine CAN-Nachricht von einem durch DEFCANOUT definierten
Sendeobjekt abgeschickt. Die Werte
Portabilität
Befehlsgruppe CAN
Querverweise CANIN, CANDEL, DEFCANIN, DEFCANOUT
Syntax-Beispiel wertlhi = 21
optionaler Befehl
wertlo = 41 tx1 = DEFCANOUT 500 8 /* ein TX-Objekt mit Id=500 und Datenlänge = 8 Bytes wird definiert */ CANOUT tx1 valhi vallo /* eine CAN-Nachricht wird gesendet */
Inkrementalgeber Signaltyp
hi und lo sind 4 Bytes lang.
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 17
MCO 305 Befehlsreferenz
COMOPTGET
Kurzinfo Liest ein Telegramm der Kommunikationsoption.
Syntax COMOPTGET anz array
Parameter array = der Name eines Arrays, das mindestens die Größe 'anz' haben muss
anz = Anzahl Datenworte, die gelesen werden sollen
Beschreibung COMOPTGET liest aus dem Puffer der Kommunikationsoption 'anz' Datenworte aus
und schreibt sie in das Array 'array' beim ersten Element beginnend.
Kompatibilität Mit eingebauter Kommunikationsoption.
Kommunikations-
option
Kontrolldaten Die Funktion des Steuerwortes (STW) und der Hauptsollwertes (HSW) hängt davon
Prozessdaten PCD's 1 – 4 von PPO Typ 2/ 4 und PCD's 1 – 8 von PPO Typ 5 sind nicht mit einer
Befehlsgruppe Kommunikationsoption
Querverweis COMOPTSEND
Programmbeispiel COM_OPT
Funktion der Kommunikationsoption: Parameter: Die Lese- und Schreibparameter werden von der Optionskarte nicht verändert.
ACHTUNG!:
Die Parameter 9-15 und 9-16 müssen zusätzlich mit den richtigen Werten gesetzt werden.
ab, wie der Par. 33-82 (ZSW) und der Hauptistwert (HIW) sind immer aktiv.
„MCO 305 EIN” „MCO 305 AUS” STW/HSW nicht aktiv aktiv ZSW/HIW aktiv aktiv
Parameternummer 9-15 und 9-16 festgelegt, sondern können frei in einem APOSS­Programm benutzt werden.
Der Befehl COMOPTGET kopiert die empfangenen Daten der Kommunikationsoption in ein Array, in dem jedes Array-Element ein Datenwort (16 Bit) enthält.
Der Befehl COMOPTSEND kopiert die Daten von einem Array, in dem jedes Array Element ein Datenwort (16 Bit) enthält, in einen Sendepuffer der Kommunikations­option, von dem es via Netzwerk zum Master gesendet wird.
__ Befehlsreferenz __
Statusüberwachung Antrieb gesetzt ist; das Zustandswort
Parameter 33-82 Parameter 33-82
COMOPTSEND
Kurzinfo Schreibt in den Puffer der Kommunikationsoption.
Syntax COMOPTSEND anz array
Parameter array = Name eines Arrays, das mindestens die Größe 'anz' haben muss
anz = Anzahl der Datenworte, die gesendet werden sollen
Beschreibung COMOPTSEND schreibt in den Puffer der Kommunikationsoption. Dabei werden aus
'array' die ersten 'anz' Datenworte gesendet.
Kompatibilität Mit eingebauter Kommunikationsoption.
Kommunikations-
Funktion der Kommunikationsoption: Siehe COMOPTGET Befehl
option
Befehlsgruppe Kommunikationsoption
Querverweis COMOPTGET
Programmbeispiel COM_OPT
18 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
__ Befehlsreferenz __
CONTINUE
Kurzinfo Abgebrochene Positionier- und Drehzahlbefehle fortsetzen.
Syntax CONTINUE
Beschreibung Mit dem Befehl CONTINUE können Positionier- und Drehzahlbefehle, die durch den
Befehl MOTOR STOP oder einen Fehlerzustand abgebrochen oder mit MOTOR OFF angehalten wurden, fortgesetzt werden.
CONTINUE kann besonders in einem Fehlerunterprogramm in Verbindung mit dem Befehl ERRCLR eingesetzt werden, um nach einem Fehlerabbruch den Bewegungs­ablauf korrekt weiterzuführen.
ACHTUNG!:
CONTINUE setzt aber nicht abgebrochene Synchronisationsbefehle fort.
Befehlsgruppe CON
Querverweise MOTOR STOP, ERRCLR, ON ERROR GOSUB
Syntax-Beispiel CONTINUE /* Unterbrochene Bewegungsvorgänge fortsetzen */
Programmbeispiel MSTOP_01.M
CPOS
Kurzinfo Aktuelle Sollposition einer Achse abfragen.
Syntax erg = CPOS
Rückgabewert erg = Absolute Sollposition in Benutzereinheiten (BE) bezogen auf den aktuellen
Nullpunkt
Beschreibung Mit dem Befehl CPOS kann die aktuelle Sollposition einer Achse absolut zum aktuel-
len Nullpunkt abgefragt werden. Unter der Sollposition versteht man die temporäre Sollposition, die durch die Lageregelung während eines Positioniervorgangs oder einer Bewegung im Drehzahlmodus jede ms neu berechnet wird.
Die Sollposition kann unabhängig vom Betriebszustand (Lageregelung im Stillstand, Positioniervorgang, Drehzahlregelung oder Synchronisation) abgefragt werden.
ACHTUNG!:
Wenn ein mit SETORIGIN gesetzter und aktiver Temporärnullpunkt existiert, ist der Positionswert auf diesen Nullpunkt bezogen.
Befehlsgruppe SYS
Querverweise APOS, DEFORIGIN, SETORIGIN, POSA, POSR,
Parameter: 32-12
Syntax-Beispiel PRINT CPOS /* aktuelle Sollposition der Achse */
Programmbeispiel CPOS_01.M, GOSUB_01.M
Benutzerfaktor Zähler, 32-11 Benutzerfaktor Nenner
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 19
MCO 305 Befehlsreferenz
CPOSDIFF
Kurzinfo Overflow-Handling von Inkrementalgebern in Anwendungen.
Syntax erg = CPOSDIFF oldpos
Parameter oldpos = CPOS zu einem früheren Zeitpunkt
Rückgabewert Liefert die Differenz zwischen CPOS und oldpos (erg = CPOS – oldpos) in BE.
Beschreibung Dieser Befehl vereinfacht die Behandlung des Überlaufs von Inkrementalgebern in
Anwendungen. Wenn zum Beispiel der Anwender eine aktuelle Position in seinem Programm speichert und später die Differenz berechnen will, muss er normalerweise den Überlauf der Position berücksichtigen. Statt dessen kann dieser Befehl benutzt werden; siehe unten.
Intern prüft diese Routine, ob die Differenz größer als POS_LIMIT (0x3FFFFFFF) ist. Falls dies der Fall ist, wird angenommen, dass ein Überlauf stattfand und korrekt behandelt.
ACHTUNG!:
Dies löst aber nicht das Problem des Überlaufs, wenn in der Anwendung Benutzer­einheit BE verwendet werden.
__ Befehlsreferenz __
Portabilität
Standardbefehl ab MCO 5.00
Befehlsgruppe SYS
Querverweise CPOS
Syntax-Beispiel oldpos = CPOS
….. diff = CPOSDIFF oldpos // liefert die Differenz zwischen CPOS und oldpos in BE // Behandlung eines Overflows falls notwendig (diff = CPOS – oldpos)
CSTART
Kurzinfo Starten des Drehzahlmodus.
Syntax CSTART
Beschreibung Mit dem Befehl CSTART wird ein drehzahlgeregelter Fahrbefehl gestartet.
Die Beschleunigungsrampe sowie die Drehzahl sollte vor dem Starten des Drehzahl­modus mit den Befehlen ACC, DEC und CVEL festgelegt werden.
CSTART enthält nicht den Befehl MOTOR ON der die Motorregelung einschaltet. Nach vorangegangenem MOTOR OFF ist bei Verwendung von CSTART also ein explizites Aufrufen von MOTOR ON notwendig.
ACHTUNG!:
Wenn zum Zeitpunkt des CSTART noch kein Drehzahlwert mit CVEL definiert wurde, wird die Default-Geschwindigkeit 0 verwendet. Der Motor dreht sich nicht, die Lage­regelung ist aber aktiv.
Alle nach dem Start des Drehzahlmodus folgenden CVEL Befehle werden sofort ausgeführt: Es wird sofort eine entsprechende Drehzahlanpassung mit der durch ACC bzw. DEC definierten Beschleunigungs- bzw. Bremsrampe vorgenommen.
Befehlsgruppe DRE
Querverweise ACC, DEC, CVEL, CSTOP
Syntax-Beispiel CSTART /* Drehzahlmodus starten */
Programmbeispiel CMODE_01.M
20 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
__ Befehlsreferenz __
CSTOP
Kurzinfo Stoppen des Antriebs im Drehzahlmodus.
Syntax CSTOP
Beschreibung Mit dem CSTOP Befehl wird der Modus Drehzahlregelung verlassen und in den
Positioniermodus geschaltet. Dabei wird eine noch drehende Achse mit der durch DEC definierten Verzögerung abgebremst und der Motor in der Stopp-Position angehalten.
ACHTUNG!:
Ein im Positioniermodus ausgeführter CSTOP Befehl führt ebenfalls zu einem abrupten Abbrechen des Positioniervorgangs.
Befehlsgruppe DRE
Querverweise ACC, DEC, CVEL, CSTART
Syntax-Beispiel CSTOP /* Drehzahlmodus stoppen */
Programmbeispiel CMODE_01.M
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 21
MCO 305 Befehlsreferenz
CURVEPOS
Kurzinfo Der aktuellen Master-Position entsprechende Slave-Kurvenposition abfragen.
Syntax erg = CURVEPOS
Rückgabewert erg = Slave-Position in CAM-Einheiten (BE) absolut zum aktuellen Nullpunkt.
Beschreibung Mit dem Befehl CURVEPOS kann die Slave-Kurvenposition, die der aktuellen
Master-Position entspricht, abgefragt werden. Die Position kann unabhängig vom Betriebszustand (Lageregelung im Stillstand,
Positioniervorgang, Drehzahlregelung oder Synchronisation) abgefragt werden. CMASTERCPOS (SYSVAR) und CURVEPOS werden aktualisiert, auch wenn SYNCC
nicht weiter aktiv ist. Die Aktualisierung dieser Werte beginnt nach einem SETCURVE Befehl (wenn Par. 33-23 SYNCC und den ersten Master-Marker (wenn Par. 33-23 = 2000).
Die Aktualisierung wird also auch nach dem Stoppen des SYNCC Befehls fort­geführt, wenn Par. 33-23
ACHTUNG!:
Die Position ist nur definiert, wenn zuvor ein SETCURVE gesetzt wurde.
__ Befehlsreferenz __
Startverhalten für Sync ist < 2000) oder nach
Startverhalten für Sync. < 2000.
ACHTUNG!:
Wenn ein mit SETORIGIN gesetzter und aktiver Temporärnullpunkt existiert, bezieht sich der Positionswert auf diesen Nullpunkt.
ACHTUNG!:
DEFMCPOS und DEFMORIGIN können diese Position noch verändern.
Befehlsgruppe CAM
Querverweise APOS, DEFORIGIN, SETORIGIN, POSA, POSR, DEFMCPOS,
Parameter: 33-10
Sync-Faktor Master, 33-11 Sync-Faktor Slave
Syntax-Beispiel PRINT CURVEPOS // aktuelle Slave-Position der Kurve ausgeben
Beispiel
Fixpunkte einer Kurve: Master Slave 0
500 700 1000
0 500 300 1200
Wir nehmen an, dass die aktuelle Master-Position 800 sei. Dann gibt CURVEPOS
die entsprechende Slave-Position von 450 aus. Fall 1: Istposition Master ist 800 und Istposition Slave ist 200.
CURVEPOS gibt den Wert 450 aus.
Fall 2: Istposition Master ist 800 und Istposition Slave ist 700.
CURVEPOS gibt den Wert 450 aus.
Also ist CURVEPOS unabhängig von der Slave-Position.
22 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
CVEL
Kurzinfo Geschwindigkeit für drehzahlgeregelte Motorbewegungen setzen.
Syntax CVEL v
Parameter v = Normierter Geschwindigkeitswert (negativ für andere Drehrichtung)
__ Befehlsreferenz __
*V[U/Min]indigkeitSollgeschw
Beschreibung Mit dem CVEL Befehl wird die Geschwindigkeit für die nächsten drehzahlgeregelten
itchwindigkeMaximalges80-32Par.
ergkeitsteilGeschwindi83-32Par.
Motorbewegungen gesetzt. Der Wert bleibt solange gültig bis mit einem weiteren CVEL Befehl eine neue Geschwindigkeit gesetzt wird.
Der zu übergebende Geschwindigkeitswert bezieht sich auf die Parameter 32-80
Maximalgeschwindigkeit und 32-83 Geschwindigkeitsteiler.
ACHTUNG!:
CVEL Befehle, die nach einem CSTART folgen, werden sofort ausgeführt, das heißt die Geschwindigkeit wird mit der durch ACC/DEC vorgegebenen Beschleunigung bzw. Verzögerung auf den mit CVEL übergebenen Wert angepasst.
Wurde vor dem Starten des Drehzahlmodus (CSTART) noch keine Geschwindigkeit definiert, beträgt die Standardvorgabe 0. Der Motor dreht sich nicht und erst eine Geschwindigkeitsvorgabe mit CVEL startet die Bewegung im Drehzahlmodus.
Befehlsgruppe DRE
Querverweise ACC, DEC, CSTART, CSTOP; Parameter: 32-80 Maximalgeschwindigkeit
Syntax-Beispiel CVEL 100
Programmbeispiel CMODE_01.M
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 23
MCO 305 Befehlsreferenz
DEC
Kurzinfo Verzögerung (negative Beschleunigung) setzen.
Syntax DEC a
Parameter a =Verzögerung
Beschreibung Mit dem Befehl DEC bestimmen Sie die Verzögerung (negative Beschleunigung) für
die nächsten Fahrbefehle im Drehzahl-, Positionier- oder Synchronisationsmodus. Der Wert bleibt solange gültig, bis mit einem weiteren Befehl DEC eine neue Ver-
zögerung gesetzt wird. Der Wert bezieht sich auf die Parameter 32-81
Rampe
ACHTUNG!:
Wurde vor einem Positionierbefehl noch keine Verzögerung definiert, wird mit dem in Parameter 32-85
ACHTUNG!:
Wenn Sie mit MCO 305 arbeiten, dann sollten Sie immer die Rampen mittels der Optionskarte setzen und nicht im FC 300. Die FC Rampen müssen dabei immer auf Minimum stehen.
Befehlsgruppe REL, ABS
Querverweise ACC; Parameter: 32-81 Kürzeste Rampe, 32-80 Maximalgeschwindigkeit, 32-83
Geschwindigkeitsteiler
Syntax-Beispiel ACC 50 /* Beschleunigung: 50, beim Bremsen 10 */
DEC 10
Beispiel Kürzeste Rampe: 1000 ms
Maximale Geschwindigkeit: 1500 U/Min Geschwindigkeitsteiler: 100
__ Befehlsreferenz __
Kürzeste
und 32-80 Maximalgeschwindigkeit sowie 32-83 Geschwindigkeitsteiler.
Default-Beschleunigung vorgegebenen Wert abgebremst.
24 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
j
__ Befehlsreferenz __
DEFCANIN
Kurzinfo Definiert ein Empfangsobjekt
Syntax objnr = DEFCANIN id dlen
Parameter id = CAN-Identifikationsnummer
dlen = Datenlänge des Objektes in Bytes (max. 8 Bytes)
Rückgabewert objnr
Ein positiver Wert bedeutet, dass ein Ob ist eine interne Nummer des Objektes und wird von anderen APOSS-CAN-Befehlen benutzt. Ein negativer Wert meldet einen Fehler.
Beschreibung Mit diesem Befehl wird im CAN-Controller ein Empfangs-Kommunikations-Objekt
definiert. Dieser Befehl kann auch mit dem Offset für den Slave-Bus genutzt werden
(Telegramm ID 100000). Diese Objekte können nun einzeln mit dem Befehl CANDEL objnr gelöscht werden,
objnr die Nummer ist, die von DEFCANIN oder DEFCANOUT zurückgegeben
wobei werden.
Portabilität
Befehlsgruppe CAN
Syntax-Beispiel var1 = 0 /* Variablen deklarieren */
Befehl ist ab MCO 5.00 verfügbar.
var2 = 0 rx1= DEFCANIN 500 8 /* es wird ein RX-Objekt mit Id=500 und Datenlänge = 8 Bytes definiert */ CANIN rx1 0 0 var1 var /* es wird eine CAN-Nachricht gelesen */
ekt erfolgreich angelegt wurde. Dieser Wert
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 25
MCO 305 Befehlsreferenz
j
g
DEFCANOUT
Kurzinfo Definiert ein Sendeobjekt im CAN-Controller
Syntax objnr = DEFCANOUT id dlen
Parameter id = CAN-Identifikationsnummer
dlen = Datenlänge des Objektes in Bytes (max. 8 Bytes)
Rückgabewert objnr
Ein positiver Wert bedeutet, dass ein Ob ist eine interne Nummer des Objektes und wird von anderen APOSS-CAN-Befehlen benutzt. Ein negativer Wert meldet einen Fehler.
Beschreibung Mit diesem Befehl wird im CAN-Controller ein Objekt definiert. Das Objekt ist ein
Sendeobjekt mit Länge in n-Bytes und der CAN-Identifizierung (id). Objnr ist dann eine interne Nummer des Objektes ld und wird vom Befehl CANOUT benutzt.
Dieser Befehl kann mit dem Offset für Slave-Bus auch genutzt werden (Telegramm ID 100000).
Diese Objekte können mit dem Befehl CANDEL objnr nun einzeln gelöscht werden,
objnr die Nummer ist, den von DEFCANIN oder DEFCANOUT zurückgegeben
wobei wird.
Portabilität
Befehlsgruppe CAN
Querverweise DEFCANIN, CANOUT, CANIN
Syntax-Beispiel nr = DEFCANOUT 500 8
Der Befehl ist ab MCO 5.00 verfügbar.
// wird ein Objekt mit id =500 und Länge 8 Bytes definiert, // die Funktion liefert eine 1 zurück, // eine Nachricht mit id =500 und langen 8 Bytes kann jetzt mit // dem Befehl CANOUT 1 wert1 wert2 abgeschickt werden */ nr = DEFCANOUT id len
__ Befehlsreferenz __
ekt erfolgreich angelegt wurde. Dieser Wert
DEFCORIGIN
Kurzinfo Sollposition als Nullpunkt setzen
Syntax DEFCORIGIN
Beschreibung Mit dem DEFCORIGIN Befehl wird die Sollposition als Nullpunkt gesetzt. Alle absolu-
ten Positionierbefehle (POSA etc.) beziehen sich fortan auf diesen Nullpunkt. Auf diese Weise wird CPOS auf Null
esetzt und APOS so, dass die Differenz erhalten
bleibt.
Portabilität
Der Befehl ist ab MCO 5.00 verfügbar.
Befehlsgruppe INI
Querverweise POSA, DEFORIGIN, CPOS
Syntax-Beispiel POSA 80000 /* Achse absolut positionieren */
DEFCORIGIN /* Sollposition als Nullpunkt definieren */
26 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
DEFMCPOS
Kurzinfo Anfangsposition des Masters definieren.
Syntax DEFMCPOS p
Parameter p = Position in Benutzereinheiten (MU)
Beschreibung DEFMCPOS definiert die Anfangsposition des Masters (in MU) im CAM-Modus und
somit, wo die Kurve startet, sobald die Masterpulse gezählt werden.
Befehlsgruppe CAM
Querverweise DEFMORIGIN, SETMORIGIN, SYNCC,
Parameter: 33-23
Syntax-Beispiel DEFMCPOS 1000 // internen MU-Zähler auf 1000 setzen
Beispiel DEFMCPOS positioniert die physikalische Ist-Master-Position auf die angegebene
Master-Kurvenposition ungeachtet dessen, was im MAPOS Befehl steht.
__ Befehlsreferenz __
Startverhalten für Sync.
DEFMORIGIN
Beschreibung DEFMORIGIN definiert die aktuelle Master-Position als Nullpunkt für den Master.
Wenn ein DEFMCPOS 500 begonnen ist, wird die physikalische Position des Masters als Position 500 der Kurve definiert.
Wenn ein DEFMCPOS 500 begonnen ist, wird die physikalische Position des Masters als Position 500 der Kurve definiert.
Kurzinfo Aktuelle Master-Position als Nullpunkt für den Master setzen.
Syntax DEFMORIGIN
Die Master-Position (MAPOS) bezieht sich bis zu einer erneuten Definition mit DEFMORIGIN oder SETMORIGIN auf diesen Nullpunkt.
ACHTUNG!:
Der Befehl DEFMORIGIN kann bei Einsatz von Absolutgebern (siehe Par. 32-30
Inkrementalgeber Signaltyp) nicht verwendet werden.
Befehlsgruppe INI
Querverweise MAPOS, SETMORIGIN
Syntax-Beispiel DEFMORIGIN /* Nullpunkt für Master definieren. */
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 27
MCO 305 Befehlsreferenz
g
__ Befehlsreferenz __
DEFORIGIN
Kurzinfo Istposition als Nullpunkt setzen.
Syntax DEFORIGIN
Beschreibung Mit dem DEFORIGIN Befehl wird die Istposition als Nullpunkt
Positionierbefehle (POSA etc.) beziehen sich fortan auf diesen Nullpunkt. Die Istposition, die in einem Positionierbefehl erreicht wird, ist die Zielposition plus
möglicher Fehler, die nicht automatisch kompensiert werden, während DEFORIGIN ausgeführt wird.
ACHTUNG!:
Der Befehl DEFORIGIN kann bei Einsatz von Absolutgebern (siehe Par. 32-00
Inkrementalgeber Signaltyp) nicht verwendet werden.
Befehlsgruppe INI
Querverweise POSA
Syntax-Beispiel POSA 80000 /* Absolut positionieren */
DEFORIGIN /* Istposition als Nullpunkt definieren */
Beispiel POSA 2000
PRINT "Position vor neuem Nullpunkt", APOS DEFORIGIN PRINT "Position nachher", APOS Output
Position vor neuem Nullpunkt 2000, Position danach 0
Programmbeispiel DORIG_01.M, ORIG_01.M
Initial
esetzt. Alle absoluten
Nach der
0
Ausführung
(nach DEFORIGIN)
0
DEFSYNCORIGIN
Kurzinfo Definiert das Verhältnis Master:Slave für den nächsten SYNCP oder SYNCM Befehl
Syntax DEFSYNCORIGIN mcpos spos
Parameter mcpos = Master Sollposition in qc, oder
Beschreibung Dieser Befehl definiert, wie viel Abstand vor oder nach dem Slave im Verhältnis zur
oder die Startwerte für Standardkurven mit SYNCC Befehl.
Master Kurvenposition in qc spos = Slave Sollposition oder spos < SlaveCurveLenght = Slave Kurvenposition spos > SlaveCurveLength = die aktuelle Kurvenposition wird als korrekte Position
innerhalb der Kurve entsprechend zur Masterposition
mcpos betrachtet
Masterposition sein soll. Damit kann das Verhältnis zwischen Master und Slave für den nächsten SYNCP oder SYNCM Befehl definiert werden. Er setzt die interne Slave-Sollposition auf den Wert des Slaves.
Der Wert des Masters wird für einen internen MOVE SYNCORIGIN benutzt. Dafür wird ein MOVESYNCORIGN durch diesen Befehl überschrieben. Beide Aktionen werden in dem Moment ausgeführt, wenn der SYNC Befehl aktiviert wird. Das garantiert, dass Master und Slave auf die o.g. Master-Slave-Position synchronisiert werden.
Mit SYNCC kann der Befehl DEFSYNCORIGIN benutzt werden um die Startwerte für Standardkurven wie folgt zu definieren:
28 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
Dabei meldet mcpos der Steuerung, dass die aktuelle Masterposition (MAPOS) einer Master-Kurvenposition von
spos hat zwei verschiedene Bedeutungen: spos < SlaveCurveLenght = definiert die aktuelle Position des Slaves als die
spos > SlaveCurveLength = die aktuelle Kurvenposition wird als die korrekte
Beispiel: Angenommen die Kurve ist eine gerade Linie, die von 0,0 nach 2000,4000 mittels (master,slave) geht.
Weiterhin sei angenommen, dass der Slave auf der Position 11000 qc ist und dass der Master eine aktuelle Position von 15000 qc hat. Um es einfach zu machen, sei angenommen, dass die Getriebefaktoren 1 : 1 sind.
Wenn nun ein SETCURVE ohne irgendwelche weiteren Befehle durchgeführt wird, passiert Folgendes: Die Steuerung versucht zu herauszufinden, wo sich der Slave innerhalb einer Kurve befindet. Daher berechnet sie den Rest von 11000 / 4000, welcher 3000 ist und den Rest von 15000 / 2000, welcher 1000 ist. Das heißt, das Ergebnis wäre eine aktuelle MCPOS (Master-Kurvenposition) von 1000. Daher sollte die entsprechende Slave-Kurvenposition 2000 sein. Tatsächlich ist der Slave aber in diesem Moment auf einer Kurvenposition von 3000. (Die csstart Position ist die Startposition der letzten Kurve, welche in unserem Fall 8000 sein würde.) Wenn diese Kurve gestartet wird, würde der Slave versuchen die Position zu korrigieren und auf 2000 fahren.
Wenn nun der Befehl DEFSYNCORIGIN 500 100000 benutzt wird, passiert Folgendes: Die aktuelle Masterposition ist als Master-Kurvenposition 500 definiert. Und da
100000 größer ist als die Slave-Kurvenlänge 4000, entspricht die aktuelle Slave­Position (von 11000 qc) der Slave-Kurvenposition 1000, die zur Master-Kurven­position 500 gehört. Daher wird csstart auf 10000 gesetzt. Wenn nun die Kurve gestartet wird, wird sie korrekt berechnet und folgt der Kurve, sobald der Master die Fahrbewegung startet.
DEFSYNCORIGIN in Verbindung mit CU_GRAD Kurven (Typ 3) Im Fall einer CU_GRAD Kurve, kann DEFSYNCORIGIN benutzt werden, um die
absolute Endposition einer Kurve in qc zu definieren. In diesem Fall wird die Kurve sofort gestartet und in so berechnet, dass die Endpositionen am Ende der Kurve ereicht werden.
ACHTUNG!
Um degenerierte Polynome zu vermeiden, muss der Abstand in einer korrekten Relation stehen. Wenn mit der Geschwindigkeit Null gestartet wird, die in einer Geschwindigkeit 1 enden soll (Slave hat die gleiche Geschwindigkeit wie der Master), dann sollte die Masterdistanz geringer sein, als die zweifache Slave­Distanz. Andernfalls wird das Polynom innerhalb des Intervalls Schwankungen aufweisen. In anderen Fällen ist dies schwieriger vorauszuberechnen (Start­geschwindigkeit nicht 0 oder Endgeschwindigkeit nicht 1). Deshalb kann man das PG_FLAG_CURVE_ERR prüfen, um zu sehen, ob die letzte SETCURVE eine Kurve mit Schwankungen produzierte (siehe STAT). Dann kann man die SYSVAR PFG_LASTERROR auslesen (siehe SDO Dictionary) um zu entscheiden, was die Ursache war.
__ Befehlsreferenz __
mcpos entspricht.
Slave-Kurvenposition
Position innerhalb der Kurve betrachtet, die der Master­position tung, sie muss nur größer als die Slave-Kurvenlänge sein).
mcpos entspricht (spos selbst hat keine Bedeu-
spos.
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 29
MCO 305 Befehlsreferenz
Portabilität Definition der Startwerte für Kurven ist ab MCO 5.00 möglich.
Befehlsgruppe SYN
Querverweise MOVESYNCORIGIN
Beispiel In diesem Beispiel soll der Slave auf Position 4000 qc sein, wenn der Master auf
2000 qc ist, d.h. der Slave sollte einen Vorsprung von 2000 qc auf den Master haben.
Ebenso soll der Slave auf Position 5000 qc sein, wenn der Master auf 3000 qc ist.
__ Befehlsreferenz __
30 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
DELAY
Kurzinfo Zeitverzögerung
Syntax DELAY t
Parameter t = Verzögerungszeit in Millisekunden (maximal MLONG)
Beschreibung Der DELAY Befehl führt zu einer definierten Programmverzögerung. Der Übergabe-
parameter gibt dabei die Verzögerungszeit in Millisekunden an. Wenn während der Verzögerungszeit ein Interrupt auftritt, wird nach dem Abarbei-
ten der Interrupt-Prozedur der Wartevorgang mit der restlichen Verzögerungszeit fortgesetzt. Der DELAY Befehl führt somit zu einer konstanten Wartezeit unab­hängig davon, ob verschiedene Interrupts während der Verweilzeit behandelt werden mussten.
Nimmt der Interrupt mehr Verarbeitungszeit in Anspruch als restliche Verweilzeit zur Verfügung steht, wird die Interrupt-Prozedur zu Ende abgearbeitet, bevor mit dem auf die DELAY Anweisung folgenden Befehl das Programm fortgesetzt wird.
Befehlsgruppe CON
Querverweise WAITT, WAITI, WAITAX
Syntax-Beispiel DELAY 1000 /* 1 Sekunde verzögern */
Programmbeispiel DELAY_01.M
__ Befehlsreferenz __
DELETE ARRAYS
Kurzinfo Alle Arrays im RAM löschen.
Beschreibung Mit DELETE ARRAYS können Sie alle Arrays im RAM löschen, ohne auch die
Befehlsgruppe INI
Syntax DELETE ARRAYS
Parameter etc. zu löschen. Dieser Befehl bewirkt das Gleiche, wie der Menübefehl
Steuerung o Reset oArrays.
ACHTUNG!:
Wenn Sie anschließend ein SAVE ARRAYS durchführen, werden auch die Arrays im EEPROM überschrieben!
ACHTUNG!:
Falls DELETE ARRAYS nach einer DIM Anweisung im Programm durchgeführt wird, darf danach nicht mehr auf die Array-Elemente zugegriffen werden.
ACHTUNG!:
Wenn ein Programm einen DELETE ARRAYS Befehl enthält, gibt es nach Verlassen des Programms im RAM keine Arrays mehr.
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 31
MCO 305 Befehlsreferenz
DIM
Kurzinfo Definition eines Arrays
Syntax DIM array [n]
Parameter array = Name des Arrays
n = Anzahl der Array-Elemente
Beschreibung Mit einer DIM Anweisung am Programmanfang vereinbaren Sie die Verwendung
von ein oder mehreren Arrays (= Variablenfeldern). Arrays besitzen Gültigkeit für alle in der Steuerung abgelegten Programme. Sollten
noch keine Arrays im Speicher der Steuerung vorhanden sein, werden durch die DIM Anweisung die Arrays angelegt. Bei bereits im Speicher vorhandenen Arrays wird überprüft, ob deren Größe mit der aktuellen DIM Anweisung übereinstimmt. Sollten hierbei Unterschiede auftreten, wird eine Fehlermeldung ausgegeben. Wenn zusätzlich zu den übereinstimmenden Arrays noch weitere neue Arrays erklärt sind, müssen diese an das Ende der DIM Anweisung angefügt werden.
Auf jedes Array-Element kann später ähnlich wie auf eine Variable zugegriffen und es können Rechenergebnisse, Zeichen oder andere Informationen abgelegt werden.
Ein Array-Element wird über den Array-Namen und einen Index angesprochen. Die Indizes sind dabei von 1 bis zu der in der DIM Anweisung definierten Größe zulässig.
Ein wesentlicher Unterschied zwischen Variablen und Array-Elementen besteht jedoch darin, dass Arrays im nicht flüchtigen Speicherbereich abgelegt sind und ihr Inhalt – sofern mit SAVEPROM oder SAVE ARRAYS gesichert – auch beim Abschal­ten der Versorgungsspannung erhalten bleibt.
Im Gegensatz zu Variablen besitzen Arrays nicht nur für ein Programm, sondern für alle in der Steuerung abgelegten Programme Gültigkeit. Einzige Voraussetzung dafür ist, dass die Arrays mit einer DIM Anweisung in den gewünschten Program­men zugänglich gemacht werden, wodurch ein Datenaustausch zwischen mehreren Programmen möglich wird. Es spielt hierbei keine Rolle, ob das Array in allen Programmen durch den gleichen Namen gekennzeichnet ist. Entscheidend ist lediglich die Reihenfolge der Array-Definitionen. Dadurch greift das erste definierte Array in allen Programmen immer auf das erste im Speicher abgelegte Array zu, unabhängig vom Array-Namen.
ACHTUNG!:
Die DIM Anweisung muss die erste Anweisung in einem Programm sein und noch vor dem Unterprogrammbereich stehen!
Indizes sind von 1 bis zur Größe des definierten Arrays erlaubt. Eine einmal definierte Array-Größe gilt für alle Programme und kann nicht geändert
werden. Einzig die Reihenfolge der Array-Definition (und nicht der Namen) be­stimmt, auf welche Datenfelder zugegriffen wird.
Array-Definitionen können nur durch das Löschen des gesamten Speichers rück­gängig gemacht werden.
Befehlsgruppe CON
Syntax-Beispiel DIM xpos[100], ypos[100]
/* Array xpos und ypos mit je 100 Elementen definieren */
Programmbeispiel DIM_01.M
__ Befehlsreferenz __
32 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
DISABLE .. interrupts
Kurzinfo Sperrt die Ausführung von Interrupts.
Syntax DISABLE inttyp
Parameter
Beschreibung DISABLE schaltet alle oder explizit genannte Interrupts – außer ON ERROR – ab.
inttyp =
ACHTUNG!:
Die Ausführung der Fehlerbehandlung (ON ERROR) kann mit DISABLE nicht gesperrt werden. Der Fehler-Interrupt hat höchste Priorität und unterbricht auch andere aktive Interrupts.
Wenn die Funktion DISABLE .. im Hauptprogramm verwendet wird, kann sie Inter­rupts der entsprechenden Art verhindern.
Dies ist insbesondere nützlich, wenn eine Variable, die in einer Interrupt-Prozedur gesetzt ist, im Hauptprogramm verwendet wird. Dazu sollten Sie im Hauptpro­gramm zunächst die entsprechenden (oder alle) Interrupts mit DISABLE .. abschal­ten, die Variable ändern und anschließend die entsprechenden (oder alle) Inter­rupts mit ENABLE .. wieder einschalten.
ACHTUNG!:
Wird ein Interrupt disabled (d.h. gesperrt) existiert er weiterhin, wird aber nicht mehr ausgeführt. (Ausnahme: DISABLE ALL).
Die Erkennung läuft weiter im Hintergrund und die Interrupt-Anforderung wird im Fall eines nicht (!) flankengetriggerten oder nachrichtenorientierten Interrupts (ON PERIOD, ON APOS, ON PARAM, etc.) gespeichert. Wenn der Interrupt dann wieder enabled (d.h. freigegeben) wird und es zuvor einen noch nicht ausgeführten, gespeicherten (nicht flankengetriggerten) Interrupt gab, wird dieser Interrupt sofort ausgeführt.
Im Fall eines flankengetriggerten Interrupts (z.B. ON INT, ON COMBIT, ON STATBIT), werden alle Interrupts, die während der DISABLE-Phase stattgefunden haben, nicht ausgeführt, auch dann nicht, wenn wieder auf ENABLE umgeschaltet wird. Diese Interrupts werden im Status DISABLE nicht gespeichert. Flankengetrig­gerte Interrupts, die nach dem erneuten ENABLE stattfinden, werden weiterhin wieder ausgeführt.
ACHTUNG!:
Ausnahme: DISABLE ALL Während bei dem selektiven Sperren flankengetriggerter Interrupts (z.B. DISABLE
INT) diese Interrupts, wie beschrieben, ignoriert und auch nach der Freigabe nicht mehr ausgeführt werden, wird bei DISABLE ALL die Anforderung (auch von flankengetriggerten Interrupts) gespeichert und der Interrupt nach der Freigabe (ENABLE ALL) noch ausgeführt!
__ Befehlsreferenz __
ALL CANMSG COMBIT INT KEYPRESSED PARAM PERIOD position interrupts: ON APOS, ON IPOS, ON MAPOS, ON MCPOS, ON MIPOS STATBIT TIME
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 33
MCO 305 Befehlsreferenz
__ Befehlsreferenz __
DISABLE ALL in Kombination mit selektivem DISABLE Hierbei ist zu beachten, dass das ENABLE ALL keine Auswirkung auf gleichzeitig
noch gültige selektive Sperrungen hat (z.B. durch DISABLE INT). Eine selektive Sperrung muss somit auch wieder durch das entsprechende selektive ENABLE aufgehoben werden!
Interrupt-Behandlung im Interrupt Während der Ausführung eines Interrupt-Unterprogramms wird automatisch intern
zuerst ein DISABLE ALL ausgeführt. Dies sperrt die Ausführung aller weiterer Inter­rupts, speichert deren Anforderung jedoch. Am Ende des „aktuellen” Interrupt­Unterprogramms wird wiederum automatisch ein ENABLE ALL ausgeführt. Mit dem Abschluss des „aktuellen” Interrupts werden dann die anstehenden, gespeicherten Interrupts noch ausgeführt. Die Ausführung der Befehle DISABLE ALL und ENABLE ALL ist somit innerhalb eines Interrupts nicht notwendig und nicht sinnvoll.
Das selektive Sperren einzelner Interrupts innerhalb eines Interrupt-Unterpro­gramms kann jedoch in Abhängigkeit von der Anwendung sinnvoll und erforderlich sein. Falls zum Beispiel während der Ausführung eines Interrupts keine weiteren flankengetriggerten Interrupts akzeptiert und auch nicht gespeichert werden sol­len, ist ein gezieltes Sperren der Interrupt-Quelle (z.B. mit DISABLE INT) möglich. In diesem Fall muss der selektive Interrupt später (z.B. mit ENABLE INT) wieder durch das Applikationsprogramm (z.B. am Ende des aktuellen Interrupt-Unterpro­gramms) freigegeben werden, um die Ausführung entsprechender Interrupt-Anfor­derungen künftig wieder zu ermöglichen. Alle flankengetriggerten Interrupts, die zwischen dem entsprechenden selektiven DISABLE und ENABLE eingetroffen sind, werden ignoriert und (auch später) nicht mehr ausgeführt. Alle Interrupts, die vor der selektiven Sperrung (z.B. DISABLE INT) oder nach der erneuten selektiven Freigabe (z.B. ENABLE INT) eingetroffen sind, werden nach Abschluss des „ersten” Interrupts abgearbeitet.
Befehlsgruppe INT
Querverweis ON INT, ON CANMSG, ON COMBIT, ON KEYPRESSED, ON STATBIT, ON PARAM, ON
PERIOD, ON TIME, ENABLE .. Interrupts
Syntax-Beispiel DISABLE ALL /* Alle Interrupts abschalten */
DISABLE STATBIT /* Interrupt für Statusbit abschalten */
34 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
ENABLE .. interrupts
Kurzinfo Gibt gesperrte Interrupts wieder frei.
Syntax ENABLE inttyp
Parameter
Beschreibung ENABLE schaltet alle oder explizit genannte Interrupts wieder ein.
inttyp =
ACHTUNG!:
Während der Ausführung eines Interrupt-Unterprogramms wird automatisch intern zuerst ein DISABLE ALL und am Ende ein ENABLE ALL ausgeführt. Die Ausführung der Befehle DISABLE ALL und ENABLE ALL ist somit innerhalb eines Interrupts nicht notwendig und nicht sinnvoll.
Weitere Informationen zu Interrupt-Sperrungen und der typabhängigen Behand­lung nach erneuter Freigabe finden Sie bei dem Befehl DISABLE ..
__ Befehlsreferenz __
ALL CANMSG COMBIT INT KEYPRESSED PARAM PERIOD position interrupts: ON APOS, ON IPOS, ON MAPOS, ON MCPOS, ON MIPOS STATBIT TIME
Befehlsgruppe INT
Querverweis ON INT, ON CANMSG, ON COMBIT, ON KEYPRESSED, ON STATBIT, ON PARAM, ON
PERIOD, ON TIME, DISABLE .. Interrupts
Syntax-Beispiel ENABLE ALL /* Alle Interrupts einschalten */
ENABLE COMBIT /* Interrupt für Kommunikationsbit einschalten */
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 35
MCO 305 Befehlsreferenz
g
ENCPOSOFFS
Kurzinfo Synchronisiert den inkrementalen Positionszähler mit dem absoluten im Encoder.
Syntax erg = ENCPOSOFFS offset
Parameter offset = Liefert die Differenz zwischen der absoluten und inkrementalen Position
Rückgabewerte OK 0 Der Befehl war erfolgreich.
TIMEOUT -1 Keine Antwort innerhalb von 300 ms erhalten. BADFRAME -2 Der erhaltene Frame ist nicht gültig. OVERFLOW -4 Mehr Bytes erhalten, als der Empfangspuffer aufnehmen kann.
Beschreibung Es wird die Differenz zwischen der absoluten Encoder-Position und dem inkremen-
talen Zähler bestimmt und zurückgeliefert. Hierfür wird der inkrementale Zähler im DSP exakt in dem Moment
auch der Hiperface-Encoder die absolute Position latcht und diese via RS485 liefert. Mit Hilfe dieser Differenz kann der Anwender z.B. die Position innerhalb APOSS mit
SETORIGIN auf den absoluten Wert setzen. Wird der Hiperface-Encoder als Master-Signal statt eines Slave-Signals benutzt,
verwenden Sie den Befehl MENCPOSOFFS (siehe Parameter 32-50). Motor Rückführung: Das Feedbacksignal des Motors wird durch das inkrementale Signal erzeugt. Häufig werden die Hiperface-Encoder mit einem PM-Motor eingesetzt. Für solche
PM-Motoren muss man die absolute Position des Motorläufers wissen. Die Läufer­position relativ zur absoluten Encoder-Position muss einmal während der Inbetrieb­nahme des Systems (oder mehrmals; sie wird im Encoder gesichert) ermittelt werden. Der Offset wird dann in Par. 1-41 (Parameter der Steuerungskarte) gesichert.
Nach dem Aus- und Wiedereinschalten muss das inkrementale Signal (das für die Motorrückführung benutzt wird) wieder auf die absolute Position synchronisiert werden (siehe Programmbeispiel).
Befehlsgruppe SYS
Querverweis MENCPOSOFFS
Programmbeispiel MOTOR OFF
SET ENCODERTYPE 0 // kein inkrementaler Encoder angeschlossen SET ENCODERABSTYPE 1 // Hiperface Encoder SET ENCODEABSRES 4096 // Hiperface Auflösung DELAY 1000 pos = 0 RSTORIGIN offset = 0 PRINT "apos vorher: ", apos retval = ENCPOSOFFS offset PRINT "encposoffs erhalten: ", retval, " offset ist: ", offset SETORIGIN -offset PRINT "apos nachher: ", apos WHILE(1) DO PRINT apos // inkrementale Position ausgeben DELAY 500 ENDWHILE
__ Befehlsreferenz __
(absolute – inkremental)
elatcht, in dem
36 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
__ Befehlsreferenz __
ENCTGREAD
Kurzinfo Liest ein RS485 Telegramm vom Encoder.
Syntax erg = ENCTGREAD array
Parameter array = Benutzer-Array, in das die erhaltene Datenmenge geschrieben werden soll.
Rückgabewerte OK x (>0) TG mit x Byte Anwenderdaten angekommen
ACTIVE 0 Die Übertragung läuft noch. TIMEOUT -1 Keine Antwort innerhalb von 300 ms erhalten. BADFRAME -2 Der erhaltene Frame ist nicht gültig. OVERFLOW -4 Mehr Bytes erhalten, als der Empfangspuffer aufnehmen
kann.
Beschreibung Nachdem ein Telegramm mit ENCTGWRITE gesendet wurde, kann die Antwort mit
diesem Befehl gepollt werden. Der Rückgabewert wird ausgegeben, entweder wenn er schon angekommen ist oder wenn ein Timeout aufgetreten ist.
Wird der Hiperface-Encoder als Master-Signal statt eines Slave-Signals benutzt, verwenden Sie den Befehl MENCTGREAD (siehe Parameter 32-50).
Befehlsgruppe SYS
Querverweise MENCTGREAD, ENCTGWRITE
Programmbeispiel // Programmbeispiel zum Empfangen der absoluten Position
DIM sendbuffer[20] #define HIPER_READ_POS 0x42 SET ENCODERTYPE 0 // kein inkrementaler Encoder angeschlossen SET ENCODERABSTYPE 1 // Hiperface Encoder SET ENCODEABSRES 4096 // Hiperface Auflösung DELAY 1000 pos = 0 WHILE(1) DO sendbuffer[1] = HIPER_READ_POS retval = ENCTGWRITE 1 sendbuffer // Telegramm senden DELAY 1000 retval = ENCTGREAD sendbuffer // Antwort erhalten // prüfen, ob die korrekte Anzahl von Bytes erhalten wurde IF(retval == 7) then // 0x40 0x42 pos0 pos1 pos2 pos3 crc pos.b4 = sendbuffer[3] pos.b3 = sendbuffer[4] pos.b2 = sendbuffer[5] pos.b1 = sendbuffer[6] PRINT "Pos = ", pos ELSE PRINT "-------- Übertragungsfehler ------------: ", retval PRINT "1: ", sendbuffer[1] PRINT "2: ", sendbuffer[2] PRINT "3: ", sendbuffer[3] PRINT "4: ", sendbuffer[4] EXIT ENDIF DELAY 500 ENDWHILE
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 37
MCO 305 Befehlsreferenz
__ Befehlsreferenz __
ENCTGWRITE
Summary Sendet ein RS485 Telegramm zum Encoder.
Syntax erg = ENCTGWRITE länge array
Parameter länge = Anzahl der zu sendenden Bytes (im Benutzer-Array).
array = Benutzer-Array, das die zum Encoder zu sendende Datenmenge enthält.
Rückgabewerte OK 0 Telegramm wurde gesendet
BUSY -3 Es läuft noch eine andere Übertragung; bis jetzt noch kein Timeout.
Beschreibung Dieser Befehl sendet ein RS485 Telegramm zum Encoder mit der ID „ENCODERID”.
Der Anwender muss zuvor die Datenmenge in das Array eintragen. Der Befehl füllt dann diese Daten in einen normalen RS485 Datenübertragungsblock und fügt einen CRC Wert hinzu.
Der Befehl wartet nicht bis die Daten gesendet wurden oder eine Antwort erhalten wurde; der Rückgabewert kommt sofort.
Das Antworttelegramm muss mit ENCTGREAD gepollt werden. Wird der Hiperface-Encoder als Master-Signal statt eines Slave-Signals benutzt,
verwenden Sie den Befehl MENCTGWRITE (siehe Parameter 32-50).
Befehlsgruppe SYS
Querverweise ENCTGREAD, MENCTGWRITE
Programmbeispiel See program sample ENCTGREAD command.
ERRCLR
Kurzinfo Löschen einer Fehlermeldung.
Syntax ERRCLR
Der ERRCLR Befehl sollte nur in einem Unterprogramm zur Fehlerbehandlung eingesetzt werden (siehe ON ERROR GOSUB).
ACHTUNG!:
ERRCLR beinhaltet den Befehl MOTOR ON, der die Regelung automatisch wieder einschaltet. (Der Motor wird auf aktueller Position lagegeregelt.)
Beschreibung Ein Fehler der Optionskarte kann durch einen ERRCLR Befehl gelöscht werden.
Voraussetzung ist jedoch, dass die Fehlerursache auch tatsächlich beseitigt wurde, da ansonsten die gleiche Fehlermeldung noch mal auftritt. Wenn zwischenzeitlich ein weiterer, noch nicht behobener Fehler aufgetreten ist, wird nur die erste Fehler­meldung gelöscht.
ERRCLR setzt auch FC 300 Meldungen mittels Bit 7 des Steuerworts zurück.
Befehlsgruppe INI, CON
Querverweise ON ERROR GOSUB, ERRNO, CONTINUE, MOTOR ON,
Warnungen und Fehlermeldungen
Syntax-Beispiel ERRCLR /* aktuelle Fehlermeldung löschen */
Programmbeispiel ERROR_01.M, IF_01.M, INDEX_01.M
38 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
__ Befehlsreferenz __
ERRNO
Kurzinfo Systemvariable mit der aktuellen Fehlernummer.
Syntax erg = ERRNO
Beschreibung ERRNO ist eine Systemvariable, die in allen Programmen verfügbar ist und die
aktuelle Fehlernummer enthält. Alle Fehlernummern sind im Abschnitt Warnungen und Fehlermeldungen erläutert.
Für den Fall, dass zum Zeitpunkt der Abfrage kein Fehler aufgetreten ist, enthält ERRNO eine 0.
Portabilität Standardvariable
Befehlsgruppe SYS
Querverweise ON ERROR GOSUB, ERRCLR,
Warnungen und Fehlermeldungen
Syntax-Beispiel PRINT ERRNO /* aktuelle Fehlernummer ausgeben */
Programmbeispiel ERROR_01.M, IF_01.M, INDEX_01.M
EXIT
Kurzinfo Vorzeitiger Programmabbruch.
Syntax EXIT
Beschreibung Der EXIT Befehl beendet ein Programm, wobei aktive Positionierprozesse noch zu
Ende ausgeführt werden. Der EXIT Befehl ist besonders für den Einsatz in einer Routine zur Fehlerbehand-
lung vorgesehen und ermöglicht zum Beispiel bei nicht behebbaren Fehlern einen gezielten Programmabbruch.
Ein mit
Autostart gekennzeichnetes Programm wird nach einem Abbruch mit EXIT
automatisch wieder anlaufen, wenn SET PRGPAR = –1.
ACHTUNG!:
Normalerweise sollte ein Programm nur bei schwerwiegenden Fehlern, wie zum Beispiel beim Ansprechen eines Endschalters, abgebrochen werden.
Befehlsgruppe CON
Querverweise ON ERROR GOSUB, SET,
Parameter: 33-80
Syntax-Beispiel EXIT /* Programmabbruch */
Programmbeispiel EXIT_01.M, ERROR_01.M
Aktivierte Programmnummer PRGPAR, Autostart
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 39
MCO 305 Befehlsreferenz
GET
Kurzinfo Liest einen Parameter.
Syntax erg = GET par
Parameter par = Parameterkennung
Rückgabewert erg = Parameterwert
Beschreibung GET liest den Wert eines MCO 305 Parameters oder eines Anwendungsparameters.
Die Parameter werden mit einer Kennung adressiert, zum Beispiel KPROP für den
Proportionalfaktor oder POSERR für den Tolerierten Positionsfehler. Eine vollstän-
dige Liste aller Parameterkennungen finden Sie in der Parameter-Referenz. Anwendungsparameter werden mit einer Nummer der Gruppe 19-** adressiert.
Siehe auch Parameter-Referenz für die Details.
Befehlsgruppe PAR
Querverweise SET, GETVLT, SETVLT, LINKGPAR,
Parameter-Referenz
Syntax-Beispiel PRINT GET POSLIMIT /* Positive Wegbegrenzung ausgeben */
posdiff = GET POSERR /* Aktuelle Einstellung Schleppabstand lesen */ PRINT GET I_FUNCTION_9_4 /* Eingang für Abbruch lesen */
Programmbeispiel GETP_01.M
__ Befehlsreferenz __
GETVLT
Kurzinfo Liest einen VLT-Parameter.
Syntax erg = GETVLT par
Parameter par = Parameternummer
Rückgabewert erg = Parameterwert
Beschreibung GETVLT liest einen VLT-Parameter und liefert den entsprechenden Wert zurück. Mit
GETVLT haben Sie somit Zugriff auf Betriebsdaten (z.B. Motorstrom 1-24) oder auf Konfigurationen (z.B. max. Sollwert Par. 3-03) des FC 300.
Da ausschließlich Ganzzahlenwerte übertragen werden, muss bei der Auswertung des Rückgabewertes der Umwandlungsindex beachtet werden. So ist ein LCP Wert von 50,0 Hz (Par. 16-13 Umwandlungsindex = –1) gleichbedeutend mit einem Rückgabewert von 500.
Die Liste der FC 300 Parameter mit dem zugehörigen Umwandlungsindex finden Sie im FC 300 Produkthandbuch.
ACHTUNG!:
Benutzen Sie GETVLTSUB um Parameter mit Indexnummern zu lesen, z.B. den FC 300 Parameter 5-40.
Befehlsgruppe PAR
Querverweise SETVLT
Syntax-Beispiel PRINT GETVLT 413 /* Lese Par. 4-13 Motordrehzahl-Obergrenze */
40 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
GETVLTSUB
Kurzinfo Liest einen VLT Parameter mit Indexnummer.
Syntax erg = GETVLTSUB par indxnr
Parameter par = Parameternummer
indxnr = Indexnummer
Rückgabewert erg = Parameterwert
Beschreibung GETVLTSUB liest einen VLT Parameter inklusive der Indexnummer, z.B. den FC 300
Parameter 5-40 und gibt den entsprechenden Wert zurück. Da ausschließlich Ganzzahlenwerte übertragen werden, muss bei der Auswertung
des Rückgabewertes der Umwandlungsindex beachtet werden. So ist ein LCP Wert von 50,0 Hz (Parameter 16-13 Umwandlungsindex = –1) gleichbedeutend mit einem Rückgabewert von 500.
Die Liste der FC 300 Parameter mit dem zugehörigen Umwandlungsindex finden Sie im FC 300 Produkthandbuch.
Befehlsgruppe PAR
Querverweise SETVLTSUB
Syntax-Beispiel PRINT GETVLTSUB 540 0
// Index 01 des Parameters 5-40 "Relaisfunktion" lesen
__ Befehlsreferenz __
GOSUB
Kurzinfo Aufruf eines Unterprogramms.
Syntax GOSUB name
Parameter name = Name des Unterprogramms
Beschreibung Der GOSUB Befehl ruft ein Unterprogramm auf und der zugehörige Programm-
bereich wird abgearbeitet. Nach dem letzten Unterprogrammbefehl (RETURN) wird im Hauptprogramm mit
dem auf die GOSUB Anweisung folgenden Befehl fortgefahren.
ACHTUNG!:
Unterprogramme müssen am Anfang oder Ende des Programms innerhalb des SUBMAINPROG Bereichs definiert sein.
Befehlsgruppe CON
Querverweise SUBMAINPROG .. ENDPROG, SUBPROG .. RETURN, ON ERROR GOSUB .., ON INT n
GOSUB
Syntax-Beispiel GOSUB testup /* Aufruf des Unterprogramms testup */
Befehlszeile 1 Befehlszeile n SUBMAINPROG /* Unterprogramm testup muss definiert sein */ SUBPROG testup Befehlszeile 1 Befehlszeile n RETURN ENDPROG
Programmbeispiel GOSUB_01.M, AXEND_01.M, INCL_01.M, STAT_01.M
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 41
MCO 305 Befehlsreferenz
GOTO
Kurzinfo Sprung zu einem Programmlabel.
Syntax GOTO label
Parameter label = Kennung der Programmzielposition
Beschreibung Mit dem GOTO Befehl wird unbedingt zu der angegebenen Programmposition ge-
sprungen und die Abarbeitung des Programms an dieser Position fortgesetzt. Die Programmposition, zu der gesprungen werden soll, ist durch ein Label gekenn-
zeichnet. Ein Label kann aus einem oder mehreren Zeichen bestehen und darf nicht mit einem Variablennamen oder einem Befehlswort identisch sein. Ein Label muss zudem eindeutig sein, es darf nicht mehrfach an unterschiedlichen Programm­positionen verwendet werden.
Mit dem GOTO Befehl ist es zum Beispiel möglich, eine Endlosschleife zu pro­grammieren.
ACHTUNG!:
Das Label an der Programmzielposition muss mit einem Doppelpunkt (:) versehen sein.
__ Befehlsreferenz __
Befehlsgruppe CON
Querverweise LOOP
Syntax-Beispiel endlos: /* Label zu dem gesprungen wird */
Befehlszeile 1 Befehlszeile n GOTO endlos /* Sprungbefehl zu Label endlos */
Programmbeispiel GOTO_01.M, EXIT_01.M, IF_01.M
42 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
HOME
Kurzinfo Maschinennullpunkt (Referenzschalter) anfahren und als Realnullpunkt setzen.
Syntax HOME
Beschreibung Der HOME Befehl fährt den Antrieb zum Referenzschalter, der am Maschinennull-
punkt oder an der Sollposition angebracht sein muss. Die Geschwindigkeit und Beschleunigung/Verzögerung für die Homefahrt wird in den Parametern 33-03
Homefahrt-Geschwindigkeit und 33-02 Homefahrt-Rampe festgelegt.
Um eine exakte Positionierung zu erreichen, sollte die in Par. 33-03 nicht höher sein als 10 % der Maximaldrehzahl.
Das Vorzeichen in Par. 33-03 bestimmt, in welcher Richtung nach dem Referenz­schalter gesucht wird.
Wenn die HOME-Position erreicht ist, wird diese als Nullpunkt definiert. Der Referenzschalter kann in vier verschiedenen Arten anfahren werden. Welche
Art Homefahrt durchgeführt wird, wird in Par. 33-04 gelegt:
0 = Fahren bis zum Endschalter, Reversieren und den Referenzschalter verlassen
1 = Wie 0, aber ohne Suchen des Indeximpulses. 2 = Wie 0, aber ohne Reversieren, sondern in gleicher Richtung weiter aus dem
3 = Wie 2, aber ohne Suchen des Indeximpulses. Wird die Homefahrt durch einen Interrupt abgebrochen, wird HOME nicht automa-
tisch weitergeführt wenn die Interrupt-Routine wieder verlassen wird. Stattdessen wird mit dem nächsten Befehl fortgefahren. Dies dient dazu, dass nach einem Störfall HOME auch abgebrochen werden kann.
ACHTUNG!:
Die Anlage muss mit einem Referenzschalter sowie nach Möglichkeit mit einem Drehgeber mit Indexpuls ausgestattet sein.
__ Befehlsreferenz __
Homefahrt-Geschwindigkeit
Homefahrt-Verhalten fest-
und beim nächsten Indeximpuls (Drehgeber Nullimpulse oder externes Markersignal) halten.
Schalter heraus.
ACHTUNG!:
Der HOME Befehl wird auch bei NOWAIT ON zu Ende ausgeführt, bevor mit der weiteren Abarbeitung des Programms begonnen wird.
Bitte beachten Sie, dass ON PERIOD xx GOSUB xx während der Homefahrt deakti­viert sein muss. Zum Beispiel ON PERIOD n GOSUB x und dann Reset, nachdem die Homefahrt beendet ist.
ACHTUNG!:
Der Befehl HOME kann bei Einsatz von Absolutgebern (siehe Par. 32-00
Inkrementalgeber Signaltyp) nicht verwendet werden.
Befehlsgruppe INI
Querverweise INDEX, NOWAIT
Parameter: 33-03
Homefahrt erzwingen?
Syntax-Beispiel HOME /* Referenzschalter und Index anfahren */
Programmbeispiel HOME_01.M
Homefahrt-Geschwindigkeit, 33-02 Homefahrt-Rampe, 33-00
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 43
MCO 305 Befehlsreferenz
__ Befehlsreferenz __
IF ..THEN .., ELSEIF .. THEN .. ELSE .. ENDIF
Kurzinfo Bedingte ein- oder mehrfache Programmverzweigung;
(wenn Bedingung erfüllt, dann führe aus …, sonst …)
Syntax IF Bedingung THEN Befehl
ELSEIF Bedingung THEN Befehl ELSE Befehl ENDIF
Parameter Bedingung = Verzweigungskriterium
Befehl = ein oder mehrere Programmbefehle
Beschreibung Mit der IF..ENDIF Konstruktion können bedingte Programmverzweigungen realisiert
werden. Ist die hinter IF bzw. ELSEIF stehende Bedingung erfüllt, werden die Befehle bis
zur nächsten ELSEIF, ELSE oder ENDIF Anweisung ausgeführt und dann mit den nach der ENDIF Anweisung stehenden Befehlen das Programm fortgesetzt.
Ist die Bedingung nicht erfüllt, werden die nachfolgenden ELSEIF Verzweigungen überprüft und es wird, sofern die Bedingung erfüllt ist, der entsprechende Programmteil ausgeführt und das Programm nach ENDIF fortgesetzt.
Die Verzweigungsbedingung, die nach einer IF oder ELSEIF Anweisung überprüft wird, kann sich aus einer oder mehreren Vergleichsoperationen zusammensetzen.
Innerhalb der IF. . ENDIF Konstruktion können beliebig viele ELSEIF Verzweigungen auftreten, es darf jedoch nur eine ELSE Anweisung vorhanden sein. Hinter der ELSE Anweisung steht der Programmteil, der abgearbeitet wird, sofern keine der Bedingungen erfüllt wurde.
Die Anweisungen ELSEIF und ELSE können, müssen aber nicht innerhalb einer IF … ENDIF Konstruktion enthalten sein.
ACHTUNG!:
Nachdem eine Bedingung erfüllt wurde, wird der zugehörige Programmteil aus­geführt und das Programm nach der ENDIF Anweisung fortgesetzt. Weitere Bedingungen werden nicht mehr überprüft.
Befehlsgruppe CON
Querverweise REPEA T .. UNTIL, WHILE .. ENDWHILE
Syntax-Beispiel /*** Einfachverzweigung ***/
IF (a 1) THEN /* Variable a = 1, dann */ Befehlszeile 1 Befehlszeile n ENDIF
/*** Mehrfachverzweigung ***/ IF (a 1 AND b ! 1) THEN Befehlszeilen ELSEIF (a 2 AND b ! 1) THEN Befehlszeilen ELSEIF (a 3) THEN Befehlszeilen ELSE Befehlszeilen ENDIF
Programmbeispiel IF_01.M, ERROR_01.M, EXIT_01.M, HOME_01.M, IN_01.M, …
44 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
g
IN
Kurzinfo Zustand eines digitalen Eingangs abfragen.
Syntax erg = IN n
Parameter n = Nummer des Eingangs
bzw. für CANopen I/O-Module:
Rückgabewert erg = Zustand des Eingangs
Beschreibung Mit dem IN Befehl können Sie den Zustand eines digitalen Eingangs abfragen. Es
wird abhängig vom anliegenden Signalpegel eine 0 oder 1 zurückgeliefert. Der Modus Eingang 11,12 wird in Par. 33-60 IOMODE ausgewählt. Die Definition des High- und Low-Pegels sowie die Eingangsbeschaltung sind in den
Produkthandbüchern MCO 305 und FC 300 beschrieben. Die Eingänge 5 und 6 werden auch als Marker-Eingänge für die Master- und Slave-
Drehgeber benutzt. CAN-Module, die die CANopen Spezifikationen erfüllen, können Sie ebenfalls mit
dem IN Befehl ansprechen, und zwar über die entsprechende Nummer, die wie fol definiert ist:
CAN-Bus + (Modul-CAN-ID * 256) + Eingangsnummer (bzw. Eingangsbyte) Beim Ausführen eines solchen Befehls werden temporär die entsprechenden CAN-
Objekte angelegt, ausgewertet und anschließend wieder freigegeben. Daher können Sie beliebig viele Module ansprechen, aber es sind zunächst keine Objekte da, die von sich aus empfangsbereit sind, zum Beispiel für Interrupt-Funktionen. Um Interrupt-Funktionen durchzuführen, müssen Sie die entsprechenden Module vorher mit CANINI initialisieren.
Portabilität
Befehlsgruppe I/O
Querverweise INB, OUT, OUTB, CANINI
Syntax-Beispiel in4 = IN 4 /* Zustand Eingang 4 in Variable ein4 speichern */
Programmbeispiel IN_01.M
Die Parameter für CANopen sind ab MCO 5.00 verfügbar.
Parameter: 33-60 33-50...59,61,62
IF (IN 2) THEN /* Bei High-Pegel an Klemme 2, Ausgang 1 setzen */ OUT 1 1 ELSE OUT 1 0 ENDIF
__ Befehlsreferenz __
1 – 10 oder 1 – 12 (Optionale Eingänge) 18, 19, 27, 29, 32, 33
CAN-Bus + (Modul-CAN-ID * 256) + Eingangsnummer (bzw. Eingangsbyte)
0 = Low-Pegel oder undefiniert 1 = High-Pegel
t
Klemme X59/1 und X59/2 Modus, IOMODE,
Klemme X57/n Digitale Eingänge, I_FUNCTION_n
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 45
MCO 305 Befehlsreferenz
INAD
Kurzinfo Analogen Eingang lesen oder
Prozess Daten Objekte (PDO) eines CAN Objekts.
Syntax erg = INAD n
Parameter n = a) Nummer des Analogeingangs: 53,54
b) für CAN-Anwendungen:
Rückgabewert erg = Analogwert
a) Klemme Klemme erg = 0 – 100
b) Der Wertebereich hängt vom eingesetzten Analogeingang ab.
Beschreibung Der INAD Befehl liest den Analogwert des entsprechenden Eingangs.
CAN-Module, die die CANopen Spezifikationen erfüllen, können Sie mit dem INAD Befehl ansprechen, und zwar über die entsprechende
Modulnummer * 256 + I/O-Nummer. Beim Ausführen eines solchen Befehls werden temporär die entsprechenden CAN-
Objekte angelegt, ausgewertet und anschließend wieder freigegeben; daher können Sie beliebig viele Module ansprechen.
ACHTUNG!:
Der Befehl arbeitet mit den vordefinierten PDOs von CANopen. Ändern Sie auf keinen Fall diese Default-Einstellung (minimum capability device), denn dann funktioniert der Befehl nicht mehr.
Portabilität
Befehlsgruppe I/O
Querverweise CANINI, Produkthandbücher MCO 305 und FC 300
Syntax-Beispiel an1 = INAD 53
Die Funktion PDO lesen ist ab MCO 5.00 verfügbar.
PRINT "Analogeingang 53 " ,an1
__ Befehlsreferenz __
Modulnummer * 256 + Nummer des Eingangs
53/54: -1000 – 1000 = -10 V – 10 V 53/54: 0 – 10 V
46 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
j
__ Befehlsreferenz __
INB
Kurzinfo Zustand der digitalen Eingänge byteweise abfragen.
Syntax erg = INB n
Parameter n = Eingangsbyte:
0 = Eingang 1 (LSB) - 8 (MSB) 1 = Eingang 33 (LSB) - 18 (MSB) 2 = Eingang 9 - 10 (12)
bzw. für CANopen I/O-Module:
CAN-Bus + (Modul-CAN-ID * 256) + Eingangsnummer (bzw. Eingangsbyte)
ACHTUNG!
Die Nummerierung der Bytes beginnt bei 0; im Gegensatz zu den einzelnen Eingängen, deren Nummerierung bei 1 beginnt.
Rückgabewert erg = Wert des Eingangsbytes (0 - 255)
Das niederwertigste Bit entspricht dabei dem Zustand des Eingangs 1/33.
Beschreibung Mit dem INB Befehl kann der Zustand der digitalen Eingänge byteweise abgefragt
werden. Der zurückgelieferte Wert spiegelt den Zustand der einzelnen Eingänge wieder.
Die Definition des High- und Low-Pegels sowie die Eingangsbeschaltung ist im
FC 300 Produkthandbuch beschrieben.
CAN-Module, welche die CANopen Spezifikationen erfüllen, können Sie ebenfalls mit
dem INB Befehl ansprechen, und zwar über die entsprechende Nummer, die wie folgt definiert ist:
CAN-Bus + (Modul-CAN-ID * 256) + Eingangsnummer (bzw. Eingangsbyte) Beim Ausführen eines solchen Befehls werden temporär die entsprechenden CAN-
Ob
ekte angelegt, ausgewertet und anschließend wieder freigegeben. Daher können Sie beliebig viele Module ansprechen, aber es sind zunächst keine Objekte da, die von sich aus empfangsbereit sind, zum Beispiel für Interrupt-Funktionen. Um Interrupt-Funktionen durchzuführen, müssen Sie die entsprechenden Module vorher mit CANINI initialisieren.
Befehlsgruppe I/O
Querverweise IN, OUT, OUTB, CANINI, FC 300 Produkthandbuch
Syntax-Beispiel in = INB 0 /* Zustand der ersten 8 Eingänge speichern */
Beispiel IN1 = low, IN2 = high, IN3 = high,
alle anderen Eingänge low erg = 2^1 + 2^2 = 6
Programmbeispiel INB_01.M, INB_02.M, OUTB_01.M
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 47
MCO 305 Befehlsreferenz
INDEX
Kurzinfo Indexposition des Drehgebers anfahren.
Syntax INDEX
Beschreibung Der INDEX Befehl startet eine Fahrt zur Indexposition des Drehgebers. Die Index-
suche erfolgt mit der Das Vorzeichen der
nach dem Indexsignal gesucht wird.
ACHTUNG!:
Der verwendete Drehgeber muss einen Indexkanal haben.
ACHTUNG!:
Es können nur Drehgeber mit low-aktivem Indexpuls verwendet werden. Wird innerhalb einer kompletten Umdrehung kein Indexpuls gefunden, erfolgt eine
Fehlermeldung. Der INDEX Befehl wird auch bei NOWAIT ON zu Ende ausgeführt, bevor mit der
weiteren Abarbeitung des Programms begonnen wird.
ACHTUNG!:
Der Befehl INDEX kann bei Einsatz von Absolutgebern (siehe Par. 32-00
Inkrementalgeber Signaltyp) nicht verwendet werden.
__ Befehlsreferenz __
Homefahrt-Geschwindigkeit, die in Par. 33-03 festgelegt ist.
Homefahrt-Geschwindigkeit bestimmt in welcher Drehrichtung
Befehlsgruppe INI
Querverweise HOME, POSA, DEFORIGIN, NOWAIT
Syntax-Beispiel INDEX /* Index anfahren */
Programmbeispiel INDEX_01.M
INGLB
Kurzinfo Liest eine globale CAN-Nachricht über CAN-Bus
Syntax erg = INGLB (p)
Parameter p = maximale Wartezeit, definiert in ...
p = 0 es wird gewartet bis eine Nachricht kommt p > 0 es wird maximal p Millisekunden gewartet p < 0 es wird nicht auf eine Nachricht gewartet
Rückgabewert erg = –1, falls keine Nachricht gekommen ist, bzw. Bytes 2 und 3 der CAN-Nach-
Die globale Variable MSGVAL enthält dann die obersten Bytes 4 bis 7 der CAN­Nachricht.
Beschreibung Mit diesem Befehl wird eine globale CAN-Nachricht gelesen, also eine Nachricht, die
an alle Teilnehmer gesandt wurde. Diese Nachrichten haben den Identifier 0 und damit höchste Priorität.
ACHTUNG!
Diese Nachrichten werden nicht gepuffert und somit beim Eintreffen der nächsten Nachricht überschrieben
richt, wenn eine Nachricht gekommen ist.
Portabilität
Standardbefehl
Befehlsgruppe CAN
Querverweise INMSG, OUTMSG
48 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
INKEY
Kurzinfo Einlesen eines Zeichens der Tastatur.
Syntax INKEY (p)
Parameter p maximale Wartezeit, definiert in
p = 0 es wird gewartet bis Zeichen kommt p > 0 es wird maximal p Millisekunden gewartet p < 0 es wird nicht auf Zeichen gewartet (ein negativer Parameter muss in
Rückgabewert ASCII-Code des empfangenen Zeichens bzw. –1 falls kein Zeichen vorhanden ist.
Folgende Tasten-Codes werden zurückgesendet, solange die Taste gedrückt wird. Werden mehr als eine Taste gleichzeitig gedrückt, wird die entsprechende Summe der Werte zurückgesendet:
Taste: Wert: [Main Menu] 1
[Quick Menu] 2 [Alarm Log] 4 [Status] 8 [OK] 16 [Cancel] 32 [Info] 64 [Back] 128
Æ]-Taste / rechts 256
[
Ç]-Taste / nach oben 512
[
È]-Taste / nach unten 1024
[
Å]-Taste / links 2048
[ [Auto on] 4096 [Reset] 8192 [Hand on] 16384 [Off] 32768
Kombinationen senden folgende Werte: [OK] und [Cancel] 48
[Auto on] und [
ACHTUNG!:
Die Tasten behalten ihre FC 300-Funktionen, wenn sie nicht in Parameter 0-4* deaktiviert werden.
__ Befehlsreferenz __
Klammern angegeben werden)
Ç]-Taste 4608
ACHTUNG!:
NLCP (LCP 101 Numerical Local Control Panel) ist derzeit nicht enthalten.
Beschreibung Mit dem INKEY Befehl kann ein Tastensignal vom FC 300 LCP-Tastenfeld eingelesen
werden. Der mit INKEY übergebene Parameter bestimmt dabei, ob auf ein Tasten­signal ohne Bedingung, eine gewisse Zeitspanne oder gar nicht gewartet wird.
Pro erfolgreichen INKEY Befehl wird jeweils ein Tastensignal eingelesen. Für die Eingabe von Zeichenketten muss der INKEY Befehl (p<>0) in einer Schleife so oft wiederholt werden, bis keine weiteren Tastensignale mehr vorliegen.
Befehlsgruppe I/O
Querverweise PRINT
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 49
MCO 305 Befehlsreferenz
__ Befehlsreferenz __
Syntax-Beispiel input = INKEY 0 /* Warten bis Tastensignal gelesen wird */
character = INKEY 5000 /* max. 5 Sek. auf Eingabe warten */ character = INKEY (-1) /* nicht auf Eingabe warten */
Programmbeispiel INKEY_01.M, EXIT_01.M, WHILE_01.M
INMSGG
Kurzinfo CAN-Nachricht aus dem Puffer lesen
Syntax intval = INMSG timeout
Parameter timeout < 0 es wird nicht auf die Daten gewartet
= 0 es wird gewartet, bis die Daten kommen > 0 es wird
Rückgabewert INMSG liefert –1, falls keine Nachricht gekommen ist, bzw. Bytes 2 und 3 der CAN-
Nachricht, wenn eine Nachricht gekommen ist. Die globale Variable MSGVAL enthält dann die obersten Bytes 4 bis 7 der CAN-
Nachricht.
Beschreibung Mit diesem Befehl wird eine Nachricht aus dem Puffer gelesen, wobei timeout eine
analoge Bedeutung hat wie bei dem INKEY Befehl. Die Nachricht hat eine ld, die mit dem Befehl „$N_slavenr_baudrate” definiert wurde.
Die CAN-Identifikationsnummer der Nachricht wird durch $N-Befehl bestimmt. INMSG liest immer Objekte, die 8 Bytes lang sind. Für den Benutzer sind nur die
Bytes von 2 bis 7 vorgesehen; Byte 0 und 1 sind reserviert.
Portabilität
Standardbefehl
Befehlsgruppe CAN
Querverweise OUTMSG, ON CANMSG
Syntax-Beispiel a = INMSG –1
IF (a > –1) THEN b = MSGVAL ENDIF
timeout [ms] auf die Daten gewartet
50 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
IPOS
Kurzinfo Letzte Index- bzw. Markerposition des Slaves abfragen.
Syntax erg = IPOS
Rückgabewert erg = letzte Slave-Position (Index oder Marker) absolut zum aktuellen Nullpunkt
Die Positionsangabe wird in Benutzereinheiten [BE] zurückgeliefert und entspricht in der Standardeinstellung der Anzahl Quadcounts. (Parameter 32-12
faktor Zähler
Beschreibung Der Befehl IPOS liefert die letzte Index- bzw. Markerposition des Slaves absolut
zum aktuellen Nullpunkt zurück.
ACHTUNG!:
Wenn ein mit SETORIGIN gesetzter und aktiver Temporärnullpunkt existiert, be­zieht sich der Positionswert auf diesen Nullpunkt.
Die Konfiguration von IPOS, d.h. ob die Index- oder Markerposition des Slave (= geregelter Antrieb) zurückgeliefert wird, erfolgt über Par. 33-20
ACHTUNG!:
Das Triggersignal für die Markerposition muss dabei zwingend an den Eingang 6 angeschlossen werden.
__ Befehlsreferenz __
Benutzer-
und 32-11 Benutzerfaktor Nenner = 1)
Markertyp Slave.
Der Positionswert in IPOS ist auf ±1 qc genau. Im Gegensatz zur Positions­information in APOS, die nur im Reglerzyklus von typisch 1 ms aktualisiert wird, wird der aktuelle Positionswert hardwaremäßig beim Auftreten des konfigurierten Signals (in einem internen Prozessorregister) in Echtzeit zwischengespeichert und dann in die Systemvariable IPOS kopiert.
Falls gleichzeitig zur Markerposition ein Interrupt ausgelöst wird (ON INT 6 GOSUB ...) und in diesem Interrupt mit IPOS gearbeitet wird, sollte im Interrupt-Unterpro­gramm eine Verzögerung von 2 Millisekunden (DELAY 2) vor dem Lesen von IPOS verwendet werden. So kann sichergestellt werden, dass der gelatchte Positionswert bereits vollständig in die Systemvariable IPOS kopiert ist und nicht noch auf einen veralteten Wert zurückgegriffen wird. Siehe Beispiel.
ACHTUNG!:
Der Befehl IPOS kann nicht verwendet werden: – Bei Einsatz von Absolutgebern (siehe Par. 32-00
Inkrementalgeber Signaltyp).
– Wenn der Parameter 32-50 auf [3] - Motor Steuerung steht.
Befehlsgruppe SYS
Querverweise CPOS, DEFORIGIN, SETORIGIN, POSA, POSR, MIPOS, ON INT; Parameter: 32-12
und 32-11 Benutzerfaktor Zähler und Nenner, 33-20 Markertyp Slave
Syntax-Beispiel PRINT IPOS /* letzte Indexposition am PC ausgeben */
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 51
MCO 305 Befehlsreferenz
g
g
Beispiel ON INT 6 GOSUB slave_int // Definition Interrupt-Handler
SET SYNCMTYPS 2 // Definition von IPOS-Latching auf positive Flanke an Eingang 6 CVEL 10 // Bewegung starten CSTART x(1) // Endlos-Schleife mainloop: // … GOTO mainloop SUBMAINPROG SUBPROG slave_int int_pos = APOS // APOS zwischenspeichern um zu testen, wie genau dies wäre ... DELAY 2 // 2 ms warten, damit IPOS sicher aktualisiert ist triggered_pos = IPOS // IPOS für spätere Bearbeitun // … // PRINT "Interrupt Position: ",int_pos PRINT "Triggered Position: ",triggered_pos RETURN ENDPROG
__ Befehlsreferenz __
etc. zwischenspeichern
IPOSDIFF
Kurzinfo Overflow-Handling von Inkrementalgebern in Anwendungen.
Syntax erg = IPOSDIFF oldpos
Parameter oldpos = IPOS zu einem früheren Zeitpunkt
Rückgabewert Liefert die Differenz zwischen IPOS und oldpos (erg = IPOS – oldpos) in BE.
Beschreibung Dieser Befehl vereinfacht die Behandlung des Überlaufs von Inkrementalgebern in
Anwendungen. Wenn zum Beispiel der Anwender eine aktuelle Position in seinem Pro den Überlauf der Position berücksichtigen. Stattdessen kann dieser Befehl benutzt werden; siehe unten.
Intern prüft diese Routine, ob die Differenz größer als POS_LIMIT (0x3FFFFFFF) ist. Falls dies der Fall ist, wird angenommen, dass ein Überlauf stattfand und korrekt behandelt.
ACHTUNG!
Dies löst aber nicht das Problem des Überlaufs, wenn in der Anwendung Benutzer­einheiten [BE] verwendet werden.
Portabilität
Der Befehl ist ab MCO 5.00 verfügbar.
Befehlsgruppe SYS
Querverweise IPOS
Syntax-Beispiel oldpos = IPOS
.. diff = IPOSDIFF oldpos // liefert die Differenz zwischen IPOS und oldpos in BE // Behandlung eines Overflows falls notwendig (diff = IPOS – oldpos)
ramm speichert und später die Differenz berechnen will, muss er normalerweise
52 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
g
g
g
g
g
JERKFINVEL
Kurzinfo Berechnet die Endgeschwindigkeit für einen ruckbegrenzten Stopp mit maximaler
Beschleunigung/Verzögerung.
Syntax erg = JERKFINVEL
Parameter –
Rückgabewert erg = in Prozent (oder VELRES Einheiten)
Beschreibung Der Befehl berechnet die Endgeschwindigkeit, die erreicht werden würde, wenn die
aktuelle Beschleunigung (oder Verzögerung) unter Berücksichtigung von vorgege­benen JERKMIN Werten stoppt. Dies funktioniert auch, wenn etwa eine Fahrbe­wegung anders als mit RAMPTYPE 2 aktiv ist. Daher kann auch die Endgeschwindig­keit berechnet werden, wenn zum Beispiel die aktuelle SYNCP verlassen wird. Das Er für einen VEL oder CVEL Befehl verwendet werden.
Das Ergebnis könnte auch negativ sein (z.B. beim Rückwärtsfahren oder nahe an der Geschwindigkeit Null mit einer hohen Verzögerung).
__ Befehlsreferenz __
ebnis ist in Prozent (oder VELRES Einheiten) und kann daher ohne Konvertierun
Portabilität
Befehlsgruppe SYS
Querverweise Par. 32-82 Rampenform RAMPTYPE, Par. 32-86 Beschleunigungsrampe für
JERKSTOPDIST
Kurzinfo Berechnet die notwendige Distanz für einen ruckbegrenzten Stopp mit maximaler
Parameter dec = setzt die Verzögerung in % oder VELRES Einheiten
Rückgabewert erg = Distanz in BE
Beschreibung Der Befehl berechnet den Abstand, den die Achse n benötigt um zu stoppen, wenn
Portabilität
Befehlsgruppe SYS
Querverweise DEC, Par. 32-83 VELRES, Par. 32-86 Beschleunigungsrampe für Ruckbegrenzung
Der Befehl ist ab MCO 5.00 verfügbar.
Ruckbegrenzung
JERKMIN,
Verzögerung.
Syntax erg = JERKSTOPDIST dec
eine maximale Verzögerung von DEC erlaubt ist und der RAMPTYPE 2 mit JERKMIN2 und JERKMIN4 (oder JERKMIN) benutzt wird. In dem Befehl ist die Verzö in Prozent (oder VELRES Einheiten) und das Er
Dieser Befehl funktioniert auch wenn keine RAMPTYPE 2 Fahrbewegung aktiv ist. So kann man zum Beispiel in einer SYNCP Positionierun berechnen.
Der Befehl ist ab MCO 5.00 verfügbar.
JERKMIN, Par. 32-87 Beschleunigungsdauer für Ruckbegrenzung, Par. 32-89
Bremsdauer für Ruckbegrenzung
erung DEC
ebnis in Benutzereinheiten gegeben.
eine RAMPTYPE 2 Stopprampe
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 53
MCO 305 Befehlsreferenz
LINKGPAR
Kurzinfo Globalen Parameter oder Parametergruppen mit LCP-Display verknüpfen.
Syntax LINKGPAR parnr "text" min max option
Parameter parnr = LCP Parameternummer (Gruppe 19-00 bis 19-99)
text = beschreibender Text für das Display; nur ASCII Text (8-Bit) wird
min = minimaler Wert, den der Parameter annehmen darf max = maximaler Wert, den der Parameter annehmen darf option = Parametertyp 0 = offline, d.h. Änderungen werden erst durch die Bestätigung mit
1 = online, d.h. Änderungen über das LCP-Display sind sofort aktiv.
Beschreibung Mit LINKGPAR können Sie freie interne Anwendungsparameter mit dem LCP ver-
knüpfen. Danach können Sie über das LCP den Parameter verändern oder den gesetzten Wert auslesen.
Wird ein verknüpfter Parameter mit einem SET Befehl verändert, wird er automa­tisch auch an das LCP übergeben; er wirkt jedoch nur temporär, weil die Werksein­stellungen nicht geändert werden.
Ändert der Anwender einen verknüpften Parameter am LCP, wird der neue Wert ausgeführt. Aber erst, wenn dieser Wert mit [OK] bestätigt wird, wird er perma­nent als Benutzerparameter im EEPROM gespeichert.
Der Befehl LINKGPAR prüft, ob der Wert des Anwendungsparameters innerhalb des vorgegebenen Bereiches liegt. Falls nicht, wird das entsprechende Limit verwendet und dieser Wert gespeichert. Auf diese Weise wird sichergestellt, dass eine Anzeige erscheint.
Befehlsgruppe PAR
Querverweise SET, GET, Anwendungsparameter, Parameter-Referenz
Syntax-Beispiel LINKGPAR 1901 "name" 0 100000 0
/* Par. 19-01 mit LCP-Display verknüpfen */
__ Befehlsreferenz __
unterstützt.
[OK] aktiv.
54 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
g
LINKPDO
Kurzinfo Mapping der RxPDOs: Inhalte eines RxPDO mit Elementen des internen
Systemvariablen-Pseudoarrays SYSVAR verknüpfen. Jede Änderung des RxPDOs wird in der Folge automatisch in das konfigurierte SYSVAR-Element kopiert.
Syntax LINKPDO nr len indx pdo
Parameter nr = Reihenfolge im RxPDO beginnend bei 1
len = Anzahl der Bits, die übernommen werden sollen;
indx = Index des Systemvariablen-Pseudoarrays SYSVAR pdo = 1 .. 4 oder 5 ("serielles" PDO 5);
ACHTUNG!
Die Reihenfolgen-Nummer (nr) muss – beginnend mit 1 – aufsteigen.
__ Befehlsreferenz __
Bedingung: Länge = Vielfaches von 8 (bitweise); (z.B. 128 um 4 long Werte in das PDO zu kopieren, falls PDO mehr als 8 Bytes hat.)
Um Abwärtskompatibilität zu gewährleisten werden alle anderen Werte (z.B. auch der frühere Defaultwert 0) als 1 (= PDO 1) interpretiert.
Multiple PDOs Der Befehl kann für beliebige PDOs verwendet werden, d.h. PDO 2 .. PDO 5 werden
bei aktuellen Firmware- und Compilerversionen ebenfalls unterstützt. Die PDO­Nummer wird mittels dem letzten Parameter (der in älteren Firmware-Versionen reserviert war) des LINKPDO-Befehls übergeben. Um Abwärtskompatibilität zu garantieren, wird jede Zahl abweichend von dem zulässigen Wertebereich als 1 interpretiert, d.h. das PDO 1 ist Default. Dies ermöglicht die Abwärtskompatibilität mit älteren Versionen, bei denen keine PDO-Auswahl möglich war oder der letzte Parameter auf 0 gesetzt wurde.
CANopen PDO Größe Ein PDO ist immer 8 Byte lang; es kann daher maximal 8 Objekte enthalten.
PDO 5 (= „Serielles PDO“) Größe Die Mailbox-Größe des PDO 5 kann eine Länge von maximal circa 250 Bytes
besitzen. Das PDO 5 wird ebenfalls von dem Oszilloskop-Tool der APOSS Entwicklungsumgebung genutzt. Es wird deshalb empfohlen dieses PDO nicht in Applikationsprogrammen zu verwenden, die später mit dem Oszilloskop-Tool gedebugged werden sollen.
Beschreibung Der Befehl LINKPDO verknüpft Inhalte von RxPDOs mit beliebigen Elementen des
Systemvariablen-Pseudoarrays SYSVAR. Dies wird als PDO-Mapping bezeichnet. Die Inhalte des RxPDOs werden in der Folge automatisch, entsprechend der mit LINKPDO erstellten Mapping-Konfiguration in die zugewiesenen Elemente des Systemvariablen-Pseudoarrays kopiert.
Das Systemvariablen-Pseudoarray SYSVAR umfasst sämtliche SDOs (gemäß SDO Object Dictionary) und somit auch jeweils die ersten 250 Elemente von Anwendun Variablen, Parameter oder Arrays zu leiten. Der benötigte SYSVAR-Index eines SDOs kann wie folgt berechnet werden: 0x01000000 + ("SDO-Index" << 8) + "SDO-Subindex"
Beispiel 1: SDO 0x2300 / 12 (= SDO mit dem Achsparameter KPROP der Achse 1) => SYSVAR-Index: 0x0123000C
Beispiel 2: SDO 0x2100 / 5 (= SDO mit 1.Element des Anwendungsarrays 1)
sarrays. Es ist nahezu beliebig möglich den Inhalt von RxPDOs in interne
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 55
MCO 305 Befehlsreferenz
__ Befehlsreferenz __
=> SYSVAR-Index: 0x01210005 Das RxPDO ist gleichzeitig in dem PDO-Array abgebildet. In diesem stehen die
identischen Dateninhalt ebenfalls zur Verfügung.
Automatische PDO Aktivierung
Gemäß CANopen-Spezifikation ist nur das PDO 1 1 (RxPDO = 0x200 + Node-ID / TxPDO = 0x180 + Node-ID) standardmäßig enabled, d.h. das „Valid“ Bit (0x1400 / Subindex 1) gesetzt. Bei der Mapping-Konfiguration weiterer PDOs mit LINKPDO (oder LINKSDO) wird automatisch das „Valid“-Bit (0x1401 - 0x1404, Subindex 1) dieser RxPDOs ebenfalls gesetzt.
CANopen und APOSS Mapping
Bezieht sich der SYSVAR-Index auf ein SDO aus dem SDO Object Dictionary der Steuerung, (d.h. SYSVAR-Index beginnt mit 0x01….) wird intern ein reines CAN­Mapping ausgeführt. Wenn ein entsprechendes Objekt über einen SDO-Befehl geändert wird, wird sofort auch das PDO neu geschrieben. Das Mapping für das entsprechende CAN-Objekt kann von einer übergeordneten Steuerung mit den Standard CANopen Mapping-Objekten ausgelesen werden.
Werden andere Indizes verwendet, wird ein APOSS-Mapping durchgeführt. Dieses kann zwar gleichzeitig zum CAN-Mapping stattfinden, ist aber nicht CANopen konform, da die Einträge nicht mit den CANopen Mapping-Objekten lesbar sind.
ACHTUNG!
Die Verknüpfung mit internen Systemvariablen ist sorgfältig durchzuführen und sollte nur von Anwendern, die mit APOSS Erfahrung haben, vorgenommen werden. Es sind gründliche Kenntnisse über die Benutzung und Bedeutung der internen Systemvariablen notwendig, um kein fehlerhaftes Systemverhalten zu verursachen.
Portabilität
Befehlsgruppe PAR
Querverweise LINKSDO, SYSVAR, Parameter-Referenz, PDO
Syntax-Beispiel 1 // Das RxPDO 1 mit dem Anwendungsparameter (= SDO 0x2201/01) verknüpfen
Syntax-Beispiel 2 // 8 Bits des RxPDOs 1 mit den digitalen Ausgängen 1...8
Syntax-Beispiel 3 // 16 Bits des RxPDOs 1 mit dem DS402 ControlWord
Der Befehl ist ab MCO 5.00 verfügbar.
LINKPDO 1 32 0x01220101 1
// (= SDO 2202/10) verknüpfen LINKPDO 1 8 0x0122020A 1 // Nächste 8 Bits des RxPDOs 1 mit den digitalen Ausgängen 9...16 // (= SDO 0x2202/11) verknüpfen LINKPDO 2 8 0x0122020B 1
// (= SDO 0x6040/0) verknüpfen LINKPDO 1 16 0x01604000 1
56 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
g
LINKSDO
Kurzinfo Mapping der TxPDOs: Elemente des internen Systemvariablen-Pseudoarrays
SYSVAR mit einem TxPDO verknüpfen. Jede Änderung des entsprechenden SYSVAR­Elements wird in der Folge automatisch in das TxPDO übernommen.
Syntax LINKSDO indx len nr "text" pdo
Parameter indx = Index der Systemvariable SYSVAR
len = Länge der Bits, die übernommen werden sollen;
nr = Reihenfolge im PDO text = " " (wird noch nicht ausgewertet, kann aber als Kommentar genutzt
pdo = Werte zwischen 1 .. 4 oder 5 („serielles” PDO 5)
ACHTUNG!
Die Reihenfolgen-Nummer (nr) muss – beginnend mit 1 – aufsteigen.
__ Befehlsreferenz __
Bedingung: Länge = Vielfaches von 8 (bitweise), (z.B. 128 um 4 Long Werte in das PDO zu kopieren, falls PDO mehr als 8 Bytes hat.)
werden)
Multiple PDOs Der Befehl kann für beliebige PDOs verwendet werden, d.h. PDO 2 - PDO 5 werden
bei aktuellen Firmware- und Compilerversionen ebenfalls unterstützt. Die PDO­Nummer wird mittels dem letzten Parameter (der in älteren Firmware-Versionen reserviert war) des LINKSDO-Befehls übergeben. Um Abwärtskompatibilität zu garantieren, wird jede Zahl abweichend von dem zulässigen Wertebereich als 1 interpretiert, d.h. das PDO 1 ist Default. Dies ermöglicht die Abwärtskompatibilität mit älteren Versionen, bei denen keine PDO-Auswahl möglich war oder der letzte Parameter auf 0 gesetzt wurde
CANopen PDO Größe Ein PDO ist immer 8 Byte lang; es kann daher maximal 8 Objekte enthalten.
PDO 5 (= „Serielles PDO”) Größe Die Mailbox-Größe des PDO 5 kann eine Länge von maximal circa 250 Bytes
besitzen. Das PDO 5 wird ebenfalls von dem Oszilloskop-Tool der APOSS Entwick­lungsumgebung genutzt. Es wird deshalb empfohlen dieses PDO nicht in Applikationsprogrammen zu verwenden, welche später mit dem Oszilloskop-Tool gedebugged werden sollen.
Beschreibung Der Befehl LINKSDO verknüpft beliebige Elementen des Systemvariablen-
Pseudoarrays SYSVAR mit einem TxPDO. Dies wird als PDO-Mapping bezeichnet. Jede Änderung in dem verknüpften SYSVAR-Element wird in der Folge automatisch, entsprechend der mit LINKSDO erstellten Mapping-Konfiguration, in das TxPDO kopiert.
Das Systemvariablen-Pseudoarray SYSVAR umfasst sämtliche SDOs (gemäß SDO Object Dictionary) und somit auch jeweils die ersten 250 Elemente von Anwendun Konfiguration (= PDO-Mapping) mit LINKSDO in TxPDOs geleitet werden. Der benötigte SYSVAR-Index eines SDOs kann wie folgt berechnet werden: 0x01000000 + ("SDO-Index" << 8) + "SDO-Subindex"
Beispiel 1: SDO 0x2500 / 1 (= SDO mit der aktuellen Position der Achse 1) => SYSVAR-Index: 0x01250001
Beispiel 2: SDO 0x2100 / 5 (= SDO mit 1.Element des Anwendungsarrays 1)
sarrays. Der Inhalt von Variablen, Arrays und Parametern kann durch die
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 57
MCO 305 Befehlsreferenz
__ Befehlsreferenz __
=> SYSVAR-Index: 0x01210005 Das TxPDO ist gleichzeitig in dem PDO-Array abgebildet. In diesem stehen die
identischen Dateninhalt zur Verfügung.
ACHTUNG!
Standardgemäß wird ein verändertes TxPDO automatisch verschickt (Asynchron Modus). Wenn dies nicht gewünscht ist, kann über das SDO 0x1800 - 0x1804 Subindex 2 der Übertragungstyp auf eine anderen Einstellung konfiguriert werden (z.B. 254, statt Standard 255). Mit dieser Umkonfiguration wird nicht mehr aktiv verschickt, sondern das PDO muss mittels Remote-Frame abgeholt werden.
Automatische PDO Aktivierung Gemäß CANopen-Spezifikation ist nur das PDO 1 (RxPDO = 0x200 + Node-ID /
TxPDO = 0x180 + Node-ID) standardmäßig enabled, d.h. das „Valid” Bit (0x1800 / Subindex 1) gesetzt. Bei der Mapping-Konfiguration weiterer PDOs mit LINKSDO (oder LINKPDO) wird automatisch das „Valid”-Bit (0x1801 - 0x1804, Subindex 1) dieser TxPDOs ebenfalls gesetzt.
CANopen und APOSS mapping
Bezieht sich der SYSVAR-Index auf ein SDO aus dem SDO Object Dictionary der Steuerung, (d.h. SYSVAR-Index beginnt mit 0x01….) wird intern ein reines CAN­Mapping ausgeführt. Wenn ein entsprechendes Objekt über einen SDO-Befehl geändert wird, wird sofort auch das PDO neu geschrieben. Das Mapping für das entsprechende CAN-Objekt kann von einer übergeordneten Steuerung mit den Standard CANopen Mapping-Objekten ausgelesen werden.
Werden andere Indizes verwendet, wird ein APOSS-Mapping durchgeführt. Dieses kann zwar gleichzeitig zum CAN-Mapping stattfinden, ist aber nicht CANopen konform, da die Einträge nicht mit den CANopen Mapping-Objekten lesbar sind.
ACHTUNG!
Die Verknüpfung mit internen Systemvariablen ist sorgfältig durchzuführen und sollte nur von in APOSS erfahrenen Anwendern vorgenommen werden. Es sind gründliche Kenntnisse über die Benutzung und Bedeutung der internen System­variablen notwendig, um kein fehlerhaftes Systemverhalten zu verursachen.
Portabilität
Befehlsgruppe PAR
Querverweise LINKPDO, SYSVAR, Parameter-Referenz,, PDO, Debug-Befehle
Syntax-Beispiel 1 // Den aktuellen Schleppfehler (= SDO 0x0x2500/6) mit dem TxPDO 1 verknüpfen
Syntax-Beispiel 2 // Digitale Eingänge 1...8 (= SDO 2202/02) mit TxPDO 1 verknüpfen
Syntax-Beispiel 3 // Das DS402 Statuswort (= SDO 0x6041/0) mit dem TxPDO 1 verknüpfen
Der Befehl ist ab MCO 5.00 verfügbar. Mit dieser Version wurde auch der Befehl #DEBUG durch den Debug Modus ersetzt.
LINKSDO 0x01250006 32 1 " " 1
LINKSDO 0x01220202 8 1 " " 1 // Digitale Eingänge 9...16 (= SDO 2202/02) mit nächsten 8 Bits des TxPDO 1 verknüpfen LINKSDO 0x01220203 8 2 " " 1
LINKSDO 0x01604100 16 1 " " 1 // Die DS402 "Betriebsartanzeige" (= SDO 0x6061/0) mit dem TxPDO 1 verknüpfen LINKSDO 0x01606100 8 2 " " 1
58 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
LINKSYSVAR
Kurzinfo Systemvariable mit LCP-Display verknüpfen.
Syntax LINKSYSVAR indx parnr "text"
Parameter indx = Index der Systemvariable SYSVAR
parnr = LCP-Parameternummer 1900 bis 1999 text = beschreibender Text für Display
Beschreibung Der Befehl LINKSYSVAR verknüpft die Systemvariable SYSVAR[indx] mit dem
FC 300 Parameter (19-00 to 19-99) und dem Anzeigetext "text". Auf diese Weise können Sie interne Werte ohne Umweg über LINKGPAR auf dem Display darstellen.
ACHTUNG!:
Alle 40 ms wird der Parameter aktualisiert. Wenn also auf diese Weise fünf Parame­ter verknüpft werden, dauert es mindestens 200 ms, bis derselbe Parameter wie­der erneuert wird.
Befehlsgruppe PAR
Querverweise LINKGPAR, SYSVAR, Anwendungsparameter, Parameter-Referenz
Syntax-Beispiel LINKSYSVAR 33 1990 "interne Zeilennummer"
LINKSYSVAR 30 1991 "Motorspannung"
__ Befehlsreferenz __
LOOP
Kurzinfo Definierte Schleifenwiederholung.
Syntax LOOP n label
Parameter n = Anzahl der Schleifenwiederholungen
label = Kennung der Programmzielposition
Beschreibung Mit dem LOOP Befehl kann die ein- oder mehrmalige Wiederholung eines bestimm-
ten Programmbereichs realisiert werden. Die Anzahl der Schleifenwiederholungen kann dabei als absoluter Wert oder auch in Form einer Variablen angegeben werden.
Die Programmposition, zu der gesprungen werden soll, ist durch ein Label gekenn­zeichnet. Ein Label kann aus einem oder mehreren Zeichen bestehen und darf nicht mit einem Variablennamen oder einem Befehlswort identisch sein. Ein Label muss zudem eindeutig sein, das heißt das gleiche Label darf nicht mehrfach für unter­schiedliche Programmpositionen verwendet werden.
Das Label an der Programmzielposition muss mit einem Doppelpunkt ( : ) versehen sein.
Da der interne Schleifenzähler erst am Schleifenende überprüft und danach ver­ringert wird, werden die Befehle innerhalb der Schleife insgesamt einmal mehr als in dem entsprechenden Übergabewert angegeben ausgeführt.
Befehlsgruppe CON
Querverweise GOTO, WHILE .. ENDWHILE, REPEAT .. UNTIL
Syntax-Beispiel schleife: /* Label zu dem gesprungen wird */
Befehlszeile 1 Befehlszeile n LOOP 9 schleife /* Schleifeninhalt 10-mal wiederholen */
Programmbeispiel LOOP_01.M, APOS_01.M, IN_01.M, MOTOR_01.M, NOWAI_01.M
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 59
MCO 305 Befehlsreferenz
MAPOS
Kurzinfo Aktuelle Istposition des Masters abfragen.
Syntax erg = MAPOS
Rückgabewert erg = Master-Position absolut zum aktuellen Nullpunkt in qc
Beschreibung Mit MAPOS können Sie die aktuelle Master-Position (absolut zum aktuellen Null-
punkt) abfragen.
Befehlsgruppe SYS
Querverweise CPOS, DEFORIGIN, SETORIGIN, POSA, POSR,
Parameter: 32-12
Syntax-Beispiel PRINT MAPOS /* aktuelle Master-Position abfragen und ausgeben */
MAPOSDIFF
Kurzinfo Overflow-Handling von Inkrementalgebern in Anwendungen.
Syntax erg = MAPOSDIFF oldpos
Parameter n = Achsnummer
oldpos = MAPOS zu einem früheren Zeitpunkt
Rückgabewert Liefert die Differenz zwischen MAPOS und oldpos (erg = MAPOS – oldpos) in BE.
Beschreibung Dieser Befehl vereinfacht die Behandlung des Überlaufs von Inkrementalgebern in
Anwendungen. Wenn zum Beispiel der Anwender eine aktuelle Position in seinem Programm speichert und später die Differenz berechnen will, muss er normalerweise den Überlauf der Position berücksichtigen. Statt dessen kann dieser Befehl benutzt werden; siehe unten.
Intern prüft diese Routine, ob die Differenz größer als POS_LIMIT (0x3FFFFFFF) ist. Falls dies der Fall ist, wird angenommen, dass ein Überlauf stattfand und korrekt behandelt.
ACHTUNG!
Dies löst aber nicht das Problem des Überlaufs, wenn in der Anwendung Benutzereinheit BE verwendet werden.
__ Befehlsreferenz __
Benutzerfaktor Zähler, 32-11 Benutzerfaktor Nenner
Portabilität
Der Befehl ist ab MCO 5.00 verfügbar.
Befehlsgruppe SYS
Querverweise MAPOS
Syntax-Beispiel oldpos = MAPOS
.. diff = MAPOSDIFF oldpos // liefert die Differenz zwischen MAPOS und oldpos in BE // Behandlung eines Overflows falls notwendig (diff = MAPOS – oldpos)
60 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
MAVEL
Kurzinfo Aktuelle Geschwindigkeit des Masters abfragen.
Syntax erg = MAVEL
Rückgabewert erg = aktuelle Geschwindigkeit des Master-Antriebs in qc/s; Wert mit Vorzeichen
Beschreibung Diese Funktion liefert die aktuelle Geschwindigkeit des Master-Antriebes in qc/s
zurück, wobei sich qc auf den Master-Drehgeber bezieht. Die Genauigkeit der Werte hängt von der Messdauer (Mittelung) ab. Diese ist
standardgemäß auf 20 ms eingestellt, kann aber vom Anwender mit dem _GETVEL Befehl verändert werden. Es genügt den Befehl einmal aufzurufen, um von da an mit einer anderen Messzeit zu arbeiten. So stellt der Befehl
var = _GETVEL 100 die Messdauer auf 100 ms ein, so dass man bei MAVEL eine wesentlich bessere
Auflösung der Geschwindigkeit erhält, schnelle Änderungen dagegen erst mit einer Verzögerung von maximal 100 ms.
Befehlsgruppe SYS
Querverweis AVEL
Syntax-Beispiel PRINT MAVEL /* aktuelle Master-Geschwindigkeit am PC ausgeben */
__ Befehlsreferenz __
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 61
MCO 305 Befehlsreferenz
g
__ Befehlsreferenz __
MENCPOSOFFS
Kurzinfo Synchronisiert den inkrementalen Positionszähler mit dem absoluten im Encoder.
Syntax erg = MENCPOSOFFS offset
Parameter offset = Liefert die Differenz zwischen der absoluten und inkrementalen Position
(absolute – inkremental)
Rückgabewerte OK 0 Der Befehl war erfolgreich.
TIMEOUT -1 Keine Antwort innerhalb von 300 ms erhalten. BADFRAME -2 Der erhaltene Frame ist nicht gültig. OVERFLOW -4 Mehr Bytes erhalten, als der Empfangspuffer aufnehmen kann.
Beschreibung Es wird die Differenz zwischen der absoluten Encoder-Position und dem inkremen-
talen Zähler bestimmt und zurückgeliefert. Hierfür wird der inkrementale Zähler im DSP exakt in dem Moment
auch der Hiperface-Encoder die absolute Position latcht und diese via RS485 liefert. Mit Hilfe dieser Differenz kann der Anwender z.B. die Position innerhalb APOSS mit
SETMORIGIN auf den absoluten Wert setzen. Wird der Hiperface-Encoder als Slave-Signal statt eines Master-Signals benutzt,
verwenden Sie den Befehl ENCPOSOFFS (siehe Parameter 32-52).
Befehlsgruppe SYS
Querverweis ENCPOSOFFS
Programmbeispiel Siehe Programmbeispiel bei ENCPOSOFFS.
elatcht, in dem
MENCTGREAD
Kurzinfo Liest ein RS485 Telegramm vom Encoder.
Syntax erg = MENCTGREAD array
Parameter array = Benutzer-Array, in das die erhaltene Datenmenge geschrieben werden soll.
Rückgabewerte OK x (>0) TG mit x Byte Anwenderdaten angekommen
ACTIVE 0 Die Übertragung läuft noch. TIMEOUT -1 Keine Antwort innerhalb von 300 ms erhalten. BADFRAME -2 Der erhaltene Frame ist nicht gültig. OVERFLOW -4 Mehr Bytes erhalten, als der Empfangspuffer aufnehmen
kann.
Beschreibung Nachdem ein Telegramm mit MENCTGWRITE gesendet wurde, kann die Antwort mit
diesem Befehl gepollt werden. Der Rückgabewert wird ausgegeben, entweder wenn er schon angekommen ist oder wenn ein Timeout aufgetreten ist.
Wird der Hiperface-Encoder als Slave-Signal statt eines Master-Signals benutzt, verwenden Sie den Befehl ENCPOSOFFS (siehe Parameter 32-52).
Befehlsgruppe SYS
Querverweise ENCTGREAD, MENCTGWRITE
Programmbeispiel Siehe Programmbeispiel bei ENCTGREAD.
62 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
__ Befehlsreferenz __
MENCTGWRITE
Summary Sendet ein RS485 Telegramm zum Encoder.
Syntax erg = MENCTGWRITE länge array
Parameter länge = Anzahl der zu sendenden Bytes (im Benutzer-Array).
array = Benutzer-Array, das die zum Encoder zu sendende Datenmenge enthält.
Rückgabewerte OK 0 Telegramm wurde gesendet
BUSY -3 Es läuft noch eine andere Übertragung; bis jetzt noch kein Timeout.
Beschreibung Dieser Befehl sendet ein RS485 Telegramm zum Encoder mit der ID
„MENCODERID”. Der Anwender muss zuvor die Datenmenge in das Array eintragen. Der Befehl füllt dann diese Daten in einen normalen RS485 Datenübertragungsblock und fügt einen CRC Wert hinzu.
Der Befehl wartet nicht bis die Daten gesendet wurden oder eine Antwort erhalten wurde; der Rückgabewert kommt sofort.
Das Antworttelegramm muss mit MENCTGREAD gepollt werden. Wird der Hiperface-Encoder als Slave-Signal statt eines Master-Signals benutzt,
verwenden Sie den Befehl ENCTGWRITE (siehe Parameter 32-52).
Befehlsgruppe SYS
Querverweise MENCTGREAD, ENCTGWRITE
Programmbeispiel Siehe Programmbeispiel bei ENCTGREAD.
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 63
MCO 305 Befehlsreferenz
MIPOS
Kurzinfo Letzte Index- bzw. Markerposition des Masters abfragen.
Syntax erg = MIPOS
Rückgabewert erg = letzte Index- bzw. Markerposition des Masters absolut zum aktuellen Null-
Beschreibung Diese Funktion liefert die letzte Index- bzw. Markerposition des Masters absolut
zum aktuellen Nullpunkt in qc zurück. Die Konfiguration von MIPOS, d.h. ob die Index- oder Markerposition des Master-
Drehgebers (= geregelter Antrieb) zurückgeliefert wird, erfolgt über den Parameter 33-19
ACHTUNG!:
Das Triggersignal für die Markerposition muss dabei zwingend an den Eingang 5 angeschlossen werden.
Der Positionswert in MIPOS ist auf r1 qc genau. Im Gegensatz zu der Positions­information in MAPOS, welche nur im Reglerzyklus von typisch 1 ms aktualisiert wird, wird der aktuelle Positionswert hardwaremäßig beim Auftreten des konfigurierten Signals (in einem internen Prozessorregister) in Echtzeit zwischen­gespeichert und dann in die Systemvariable MIPOS kopiert.
Falls gleichzeitig zur Markerposition ein Interrupt ausgelöst wird (ON INT 5 GOSUB ...) und in diesem Interrupt mit MIPOS gearbeitet wird, sollte im Interrupt-Unter­programm eine Verzögerung von 2 Millisekunden (DELAY 2) vor dem Lesen von MIPOS verwendet werden. So kann sichergestellt werden, dass der gelatchte Positionswert bereits vollständig in die Systemvariable MIPOS kopiert ist und nicht noch auf einen veralteten Wert zurückgegriffen wird.
ACHTUNG!:
Der Befehl MIPOS kann nicht verwendet werden: – Bei Einsatz von Absolutgebern (siehe Par. 32-30 – Wenn der Parameter 32-50 auf [3] – Motor Steuerung steht.
Befehlsgruppe SYS
Querverweise CPOS, DEFORIGIN, SETORIGIN, POSA, POSR, ON INT
Parameter: 32-12
Markertyp Master
Syntax-Beispiel PRINT MIPOS /* letzte Indexposition des Masters am PC ausgeben */
Beispiel // Definition Interrupt-Handler
ON INT 5 GOSUB master_int // Definition IPOS-Latching auf positive Flanke an Eingang 5 SET SYNCMTYPM 2 CVEL 10 // Bewegung starten CSTART // Endlos-Schleife mainloop: // ... GOTO mainloop SUBMAINPROG
__ Befehlsreferenz __
punkt in qc
Markertyp Master.
Inkrementalgeber Signaltyp).
Benutzerfaktor Zähler, 32-11 Benutzerfaktor Nenner, 33-19
64 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
SUBPROG master_int int_mpos = MAPOS // MAPOS zwischenspeichern um zu testen, wie genau dies wäre ... DELAY 2 // 2 ms warten, damit MIPOS sicher aktualisiert ist triggered_mpos = MIPOS // IPOS für spätere Bearbeitung etc. zwischenspeichern.
// ....
// ... PRINT "Interrupt Master-Position: ",int_mpos PRINT "Master-Position erreicht: ",triggered_mpos RETURN ENDPROG
MIPOSDIFF
Kurzinfo Overflow-Handling von Inkrementalgebern in Anwendungen.
Syntax erg = MIPOSDIFF oldpos
Parameter oldpos = MIPOS zu einem früheren Zeitpunkt
Rückgabewert Liefert die Differenz zwischen MIPOS und oldpos (erg = MIPOS – oldpos) in BE.
Beschreibung Dieser Befehl vereinfacht die Behandlung des Überlaufs von Inkrementalgebern in
Anwendungen. Wenn zum Beispiel der Anwender eine aktuelle Position in seinem Programm speichert und später die Differenz berechnen will, muss er normalerweise den Überlauf der Position berücksichtigen. Statt dessen kann dieser Befehl benutzt werden; siehe unten.
Intern prüft diese Routine, ob die Differenz größer als POS_LIMIT (0x3FFFFFFF) ist. Falls dies der Fall ist, wird angenommen, dass ein Überlauf stattfand und korrekt behandelt.
ACHTUNG!
Dies löst aber nicht das Problem des Überlaufs, wenn in der Anwendung Benutzereinheit BE verwendet werden.
__ Befehlsreferenz __
Portabilität
Befehlsgruppe SYS
Querverweise MIPOS
Syntax-Beispiel oldpos = MIPOS
Der Befehl ist ab MCO 5.00 verfügbar.
.. diff = MIPOSDIFF oldpos // liefert die Differenz zwischen MIPOS und oldpos in BE // Behandlung eines Overflows falls notwendig (diff = MIPOS – oldpos)
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 65
MCO 305 Befehlsreferenz
__ Befehlsreferenz __
MOTOR OFF
Kurzinfo Motorregelung ausschalten
Syntax MOTOR OFF
Beschreibung
Befehlsgruppe INI
Querverweis MOTOR ON
Syntax-Beispiel MOTOR OFF /* Lageregelung der Achse abschalten */
Programmbeispiel MOTOR_01.M, POS_01.M
MOTOR ON
Die Motorregelung kann mit dem MOTOR OFF Befehl ausgeschaltet werden. Nach einem MOTOR OFF kann, sofern keine Motorbremse vorhanden ist, die Antriebs­achse frei bewegt werden. Die aktuelle Position wird weiterhin überwacht, das heißt, auch nach einem MOTOR OFF kann die Istposition (APOS) abgefragt werden.
ACHTUNG!:
Zum erneuten Starten eines Bewegungsvorganges nach MOTOR OFF muss der Befehl MOTOR ON verwendet werden. Nur der Befehl ERRCLR aktiviert MOTOR ON automatisch.
Kurzinfo Motorregelung einschalten
Syntax MOTOR ON
Beschreibung
Der MOTOR ON Befehl schaltet die Motorregelung nach einem vorausgegangenen MOTOR OFF wieder ein. Beim Ausführen des MOTOR ON wird die Sollposition als Istposition gesetzt, das heißt der Motor verharrt lagegeregelt auf der Istposition. Dabei wird der Schleppfehler automatisch bei der Ausführung von MOTOR ON zurückgesetzt.
ACHTUNG!:
Der MOTOR ON Befehl ist nicht geeignet, die nach einem Fehler abgeschaltete Lageregelung wieder zu aktivieren. Hierzu muss der ERRCLR Befehl verwendet werden.
Befehlsgruppe INI
Querverweis MOTOR OFF
Syntax-Beispiel MOTOR ON /* Lageregelung der Achse einschalten */
Programmbeispiel MOTOR_01.M, POS_01.M
66 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
MOTOR STOP
__ Befehlsreferenz __
Kurzinfo
Syntax
Beschreibung
Befehlsgruppe
Querverweise
Syntax-Beispiel
Programmbeispiel
MOVESYNCORIGIN
Antrieb anhalten. MOTOR STOP Mit dem MOTOR STOP Befehl wird ein im Positionier-, Drehzahl- oder Synchronisa-
tionsmodus fahrender Antrieb mit der zuletzt programmierten Beschleunigung abgebremst und auf der Istposition lagegeregelt.
Ein mit MOTOR STOP abgebremster Antrieb kann zu einem späteren Zeitpunkt mit dem CONTINUE Befehl seinen ursprünglichen Bewegungsablauf wieder aufnehmen. (Ausnahme: CONTINUE setzt keine abgebrochenen Synchronisationsbefehle fort.)
ACHTUNG!:
Wenn MOTOR STOP in einem Unterprogramm ausgeführt wird oder wenn NOWAIT ON gesetzt ist, werden während der Abarbeitung von MOTOR STOP schon die nächsten Programmzeilen abgearbeitet; der Bremsvorgang läuft im Hintergrund.
Um den Antrieb auf Drehzahl Null abzubremsen ist daher sicherzustellen, dass während des Bremsens kein neuer Fahrbefehl gesetzt wird.
CON POSA, POSR, CSTART, CONTINUE, CSTOP, NOWAIT MOTOR STOP /* Bewegungsvorgang der Achse unterbrechen */ MSTOP_01.M
Kurzinfo Synchronisationsursprung relativ verschieben.
Syntax MOVESYNCORIGIN mwert
Parameter mwert = Relativer Offset in Bezug zum Master in qc
Wertebereich: (–MLONG / Par. 33-11 SYNCFACTS) – (MLONG / Par. 33-11 SYNCFACTS)
Beschreibung Der Befehl verschiebt den Synchronisationsursprung bezüglich des Masters.
Während SET SYNCPOSOFFS den SYNCORIGIN immer auf den letzten und verschiebt den Wenn Sie den
Positionsoffset ständig verschieben müssen, können Sie so zu große
Positionsoffset absolut setzt, bezieht sich MOVE
Positionsoffset relativ.
Zahlen bzw. einen Überlauf verhindern.
ACHTUNG!:
Gültig für Positionssynchronisation SYNCP und Positionssynchronisation mit Markerkorrektur SYNCM.
Befehlsgruppe SYN
Querverweise SET,
Parameter: 33-11
Positionsoffset für Synchronisation, SYNCPOSOFFS
33-12
Syntax-Beispiel MOVESYNCORIGIN 1000
Synchronisationsfaktor Slave, SYNCFACTS,
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 67
MCO 305 Befehlsreferenz
MSGVAL
Kurzinfo Enthält den zweiten Teil der zuletzt gelesenen CAN-Nachricht.
Syntax longval = MSGVAL
Parameter –
Rückgabewert longval = Byte 4 bis 7 der zuletzt gelesenen CAN-Nachricht
Beschreibung MSGVAL ist eine Variable, die den Long-Wert der CAN-Message liefert. Die CAN-
Message muss vorher mit INMSG oder INGLB gelesen werden.
ACHTUNG!
Der Wert ist nur gültig, solange kein neuer Befehl INMSG oder INGLB ausgeführt wurde.
__ Befehlsreferenz __
Portabilität
Der Befehl ist ab MCO 5.00 verfügbar.
Befehlsgruppe CAN
Querverweise INMSG, INGLB, ON CANMSG
Syntax-Beispiel a = INMSG –1
IF (a > –1) THEN b = MSGVAL ENDIF
68 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
NOWAIT
Kurzinfo Nach Positionierbefehlen warten / nicht warten.
Syntax NOWAIT s
Parameter s = Bedingung:
ON = Programmausführung fortsetzen, bis die Zielposition erreicht ist.
Beschreibung Ein NOWAIT Befehl definiert das Verhalten nach Positionierbefehlen mit den beiden
Zuständen NOWAIT ON und NOWAIT OFF:
NOWAIT ON Der Befehl ermöglicht sowohl die Position anzufahren als auch die darauf folgenden
Anweisungen auszuführen.
__ Befehlsreferenz __
OFF = Programmausführung anhalten bis die Zielposition erreicht ist.
Bei NOWAIT ON wird nach dem Starten eines Positionierbefehls sofort die weitere Abarbeitung der Befehle fortgesetzt und der Positioniervorgang läuft quasi im Hintergrund ab. Im Zustand NOWAIT ON ist es somit auch möglich, während eines Positioniervorgangs die Istposition abzufragen, die Geschwindigkeit oder die Ziel­position zu ändern.
NOWAIT OFF Der Befehl erlaubt die zeilenweise Ausführung des Programms. Positionierbefehle
werden vollständig, das heißt bis zur Zielposition ausgeführt, bevor mit der Abarbeitung der folgenden Befehle begonnen wird.
ANMERKUNG: Die Pfeile mit gestrichelter Linie zeigen die Positionen der Bewegung.
ACHTUNG!:
Der Default-Zustand ist NOWAIT OFF. Wenn also innerhalb eines Programms keine NOWAIT ON Anweisung enthalten ist, werden Positioniervorgänge immer vollstän­dig ausgeführt, bevor mit der Abarbeitung des nächsten Befehls begonnen wird.
Wenn im Zustand NOWAIT ON während eines noch aktiven Positioniervorgangs ein weiterer Positionierbefehl erfolgt, wird ohne Unterbrechung und ohne voriges Anfahren der ersten Zielposition sofort auf die neue Endposition verfahren.
Sowohl der HOME, wie auch der INDEX Befehl werden im Zustand NOWAIT ON zu Ende abgearbeitet, bevor mit der Ausführung des nächsten Befehls begonnen wird.
Befehlsgruppe CON
Querverweise WAITAX, AXEND, POSA, POSR, HOME, INDEX
Syntax-Beispiel NOWAIT ON /* nach Positionierbefehlen nicht warten */
NOWAIT OFF /* nach Positionierbefehlen warten bis Ziel erreicht */
Programmbeispiele NOWAI_01.M, MSTOP_01.M, OUT_01.M, VEL_01.M
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 69
MCO 305 Befehlsreferenz
__ Befehlsreferenz __
ON CANINPUT
Kurzinfo Unterprogramm aufrufen, wenn ein CAN-Telegramm vom Typ 'id' ankommt.
Syntax ON CANINPUT id GOSUB name
Parameter id = 0
name = Name des Unterprogramms
Beschreibung Mit der Anweisung ON CANINPUT wird ein Unterprogramm aufgerufen, wenn ein
globales CAN-Telegramm mit der Id '0' ankommt. Dies ist das Eingangstelegramm, das auch mit INGLB und MSGVAL ausgelesen werden kann.
Dieses globale Telegramm wird auch für den Programmabbruch verwendet. Daher ist darauf zu achten, dass Byte 0 und 1 nicht verwendet werden dürfen und immer auf 0 stehen sollten. Die Bytes 2 bis 7 dagegen können frei verwendet werden.
Es besteht auch die Möglichkeit mit ON CANINPUT auf eintreffendes Nulltelegramm zu reagieren.
ACHTUNG!
Die Anweisung sollte am Programmanfang stehen, damit sie für das ganze Programm Gültigkeit besitzt.
Das aufzurufende Unterprogramm muss innerhalb des durch SUBMAINPROG und
ENDPROG. gekennzeichneten Programmbereichs definiert sein.
Portabilität
Befehlsgruppe INT
Querverweise ON ERROR, ON INT, ON PERIOD, ENABLE .., DISABLE ..
Syntax-Beispiel ON CANINPUT 0 GOSUB break /* Interrupt Prozedur wird definiert*/
Der Befehl ist ab MCO 5.00 verfügbar.
ON CANMSG GOSUB
Kurzinfo Aufruf eines Unterprogramms
Syntax ON CANMSG GOSUB name
Parameter name = Name des Unterprogramms
Beschreibung Aufruf eines Unterprogramms bei einer Nachricht im Puffer. Unterprogramm 'name’
wird aufgerufen, wenn mindestens eine Nachricht im CAN Empfangspuffer vorhan­den ist
ACHTUNG!
Die Anweisung ON CANMSG GOSUB sollte am Programmanfang stehen, damit sie für das ganze Programm Gültigkeit besitzt.
Das aufzurufende Unterprogramm muss innerhalb des durch SUBMAINPROG und ENDPROG. gekennzeichneten Programmbereichs definiert sein.
Portabilität
Der Befehl ist ab MCO 5.00 verfügbar.
Befehlsgruppe INT
Querverweise ON ERROR, ON INT, ON PERIOD, ENABLE .., DISABLE ..
Syntax-Beispiel ON CANMSG GOSUB can proc /* Interrupt Prozedur wird definiert */
70 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
ON COMBIT .. GOSUB
Kurzinfo Unterprogramm aufrufen, wenn Bit n des Kommunikationspuffers gesetzt wird.
Syntax ON COMBIT n GOSUB name
Parameter n = Bit n des Kommunikationspuffers
name = Name des Unterprogramms ON COMBIT bezieht sich auf die ersten 32 Bit des Prozessdatenspeichers.
Beschreibung Mit der Anweisung ON COMBIT wird ein Unterprogramm aufgerufen, wenn Bit n
des Kommunikationspuffers gesetzt wird.
ACHTUNG!:
Das aufzurufende Unterprogramm muss innerhalb des durch SUBMAINPROG
Priorität Sollten mehrere Interrupts gleichzeitig auftreten, wird zuerst das dem niedrigsten
Bit zugeordnete Unterprogramm abgearbeitet. Die anderen Interrupts werden anschließend abgearbeitet. Tritt während eines Interrupt-Unterprogramms der gleiche Interrupt auf (Ausnahme: Fehler-Interrupt), wird dieser ignoriert und geht verloren.
Kompatibilität Bei COMOPTGET und COMOPTSEND wird der Offset von 2 Worten aus Kompatibili-
tätsgründen beibehalten.
Befehlsgruppe INT
Querverweise SUBPROG .. RETURN, COMOPTGET, COMOPTSEND, Prioritäten bei Interrupts,
NOWAIT
Syntax-Beispiel ON COMBIT 5 GOSUB test // Interrupt auf Bit 5 vom Feldbus setzen
__ Befehlsreferenz __
–32 = n=32, n!= 0
und ENDPROG gekennzeichneten Programmbereichs definiert sein. Während der Ausführung von Unterprogrammen, die durch einen Interrupt
ausgelöst wurden, ist automatisch NOWAIT ON gesetzt.
ON DELETE .. GOSUB
Kurzinfo Löscht einen Positions-Interrupt.
Syntax ON DELETE pos GOSUB name
Parameter pos = Wert
Beschreibung Der Befehl kann genutzt werden, um einen ON APOS Interrupt zu löschen, der
name = Name des Unterprogramms
zuvor wie folgt definiert wurde: ON sign APOS xxx GOSUB name Der Parameter 'pos' kann jeden Wert annehmen, z.B. 0. Der Wert wird nicht
geprüft und hat keine Bedeutung für das Löschen des Interrupts. Die Hauptbedeutung kommt dem Parameter 'name' zu, der den Namen des Unter-
programms enthalten muss, das vorher im ON APOS Befehl definiert worden ist. Daher löscht
ON DELETE pos GOSUB name jeden (!) Positions-Interrupt, der zum Unterprogramm gehört und durch den
Namen erkannt wird. Siehe Beispiel 1.
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 71
MCO 305 Befehlsreferenz
ACHTUNG!:
Es werden nur Positions-Interrupts gelöscht, keine anderen Interrupt-Typen.
__ Befehlsreferenz __
Umleiten eines
ON .. APOS .. GOSUB
Befehls
Ein Positions-Interrupt kann in ein anderes Unterprogramm umgeleitet werden. Dies definiert keinen neuen Interrupt, sondern modifiziert nur das Unterprogramm, das im Fall einer Interrupt-Erkennung ausgeführt werden muss.
Die Befehlssyntax ist die gleiche wie für den ON APOS Befehl: ON sign APOS xxx GOSUB newname Die Parameter 'sign' und 'xxx' müssen genau die gleichen sein, wie in der
ursprünglichen Definition. Die Position, die es betrifft wird durch diese zwei Para­meter identifiziert. Der Parameter 'newname' muss den aktualisierten Namen des Unterprogramms enthalten, das aufgerufen werden soll, wenn der Interrupt ein­tritt. Siehe Beispiel 2.
ACHTUNG!:
Es können nur Positions-Interrupts umgeleitet werden, keine anderen Interrupt­Typen.
Befehlsgruppe INT
Querverweise ON posint GOSUB, ON INT ..
Programmbeispiel 1 ON – APOS 20000 GOSUB hitinfo // Interrupt #1
ON – APOS 10000 GOSUB hitinfo // Interrupt #2 ON + APOS 10000 GOSUB hitinfo // Interrupt #3 ON + APOS 0 GOSUB hitzero // Interrupt #4 ON – APOS 0 GOSUB hitzero // Interrupt #5 ON INT 3 GOSUB hitinfo // Interrupt #6 … ON DELETE 0 GOSUB hitinfo … ON + APOS 99999 GOSUB hitinfo // Neuer definierter Positions-Interrupt
Ergebnis: Alle Positions-Interrupts (#1, #2, #3), die zu dem Unterprogramm 'hitinfo' gehören, werden gelöscht sobald 'ON DELETE 0 GOSUB hitinfo' ausgeführt wird. Diese Interrupts zählen nicht mehr für die maximale Anzahl der verfügbaren Interrupts und können daher auch nicht mehr freigegeben oder gesperrt werden. Alle anderen nicht-Positions-Interrupts, sogar diejenigen, die zum gleichen Unter­programm gehören (z.B. ON INT 3) sind weiterhin gültig!
Sobald die Befehlszeile 'ON + APOS 99999 GOSUB hitinfo' ausgeführt wird, definiert dies einen neuen Positions-Interrupt, der zu dem Unterprogramm verweist, das bereits früher in Gebrauch war.
Programmbeispiel 2 ON – APOS 10000 GOSUB hitinfo // Interrupt #1
ON + APOS 10000 GOSUB hitinfo // Interrupt #2 … ON + APOS 10000 GOSUB hitposdir // Interrupt #2 umleiten
Ergebnis: Sobald die zweite Definition des 'ON + APOS 10000 ...' Befehls ausgeführt ist, wird der Interrupt #2 zu einem neu definierten Unterprogramm 'hitposdir' umgeleitet. Es ist nach wie vor der gleiche Interrupt (d.h. kein weiterer), der nun ein anderes Unterprogramm aufruft. Die „alte” Definition des Interrupts #1 'ON - APOS 10000 GOSUB hitinfo' ist weiterhin ohne jede Veränderung gültig.
72 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
__ Befehlsreferenz __
ON DELETE .. SETOUT
Kurzinfo Löscht alle Interrupts, die einen Ausgang setzen oder zurücksetzen.
Syntax ON DELETE sign inttype SETOUT outno
Parameter sign + = steigende Flanke
– = fallende Flanke
inttype = APOS
IPOS MAPOS MCPOS MIPOS
outno = Ausgangsnummer
Beschreibung Der Befehl löscht alle Interrupts, die den Ausgang outno setzen oder zurücksetzen.
ACHTUNG!
Wenn der Ausgang bei denen gelöscht, bei denen der Ausgang zurückgesetzt ist. Wenn Sie also beide Arten der Interrupt-Definition einsetzen, müssen Sie daher immer zwei Befehle verwenden.
Portabilität
Befehlsgruppe INT
Querverweise ON INT .. GOSUB, ON posint GOSUB
Syntax-Beispiel SET SYNCMPULSS 20000 // Abstand zwischen zwei Markern
Der Befehl ist ab MCO 5.00 verfügbar.
ON +ipos 500 SETOUT 1 ON +ipos 1000 SETOUT -1 ... (Programm) ... ON DELETE 0 SETOUT 1 ON DELETE 0 SETOUT -1
outno gesetzt ist. Wenn outno negativ ist, werden nur die Interrupts
outno im Befehl positiv ist, werden nur die Interrupts gelöscht,
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 73
MCO 305 Befehlsreferenz
__ Befehlsreferenz __
ON ERROR GOSUB
Kurzinfo Definition eines Unterprogramms für den Fehlerfall.
Syntax ON ERROR GOSUB name
Parameter name = Name des Unterprogramms
Beschreibung Mit der ON ERROR GOSUB Anweisung wird ein Unterprogramm definiert, das bei
einem Fehler aufgerufen wird. Tritt nach dieser Definition zu einem beliebigen Zeit­punkt ein Fehler auf, wird das Programm nicht automatisch abgebrochen, sondern das definierte Unterprogramm aufgerufen.
Innerhalb dieses Unterprogramms ist es dann möglich, gezielt auf den Fehler zu reagieren, auf Benutzereingriffe zu warten, die Fehlermeldung mit ERRCLR zu löschen oder bei nicht behebbaren Fehlern mit der EXIT Anweisung das Programm abzubrechen.
Wird das Programm nicht abgebrochen, dann wird nach dem RETURN Befehl an der vor dem Aufruf des Fehlerunterprogramms bearbeiteten Programmposition fort­gefahren.
Mit dem CONTINUE Befehl kann man den durch den Fehler unterbrochenen Bewegungsablauf fortsetzen (Ausnahme: Synchronisationsbefehle)
ACHTUNG!:
Die ON ERROR GOSUB Anweisung sollte am Programmanfang stehen, damit sie für das ganze Programm Gültigkeit besitzt.
Das aufzurufende Unterprogramm muss innerhalb des durch SUBMAINPROG und ENDPROG gekennzeichneten Programmbereichs definiert sein.
Das Erkennen eines Interrupts und der Aufruf des entsprechenden Unterpro-
gramms benötigen maximal 2 Millisekunden.
ACHTUNG!:
Fehlerunterprogramme können nicht durch andere Interrupts unterbrochen
werden.
Während der Ausführung eines Fehlerunterprogramms ist automatisch NOWAIT ON gesetzt.
Wird das Fehlerunterprogramm mit einem Fehler verlassen, weil zum Beispiel kein ERRCLR durchgeführt wurde oder bereits ein neuer Fehler aufgetreten ist, erfolgt ein erneuter Aufruf.
ACHTUNG!:
Die ON ERROR GOSUB Anweisung beendet nicht HOME und INDEX Befehle. Das heißt, diese werden zu Ende ausgeführt, sobald der Fehler gelöscht ist. Um dies zu verhindern, kann man ein ON TIME 1 in die ERROR Anweisung einfügen.
Befehlsgruppe INT
Querverweise SUBPROG…RETURN, ERRCLR, ERRNO, CONTINUE, EXIT, Prioritäten bei Interrupts,
ON TIME, NOWAIT
Syntax-Beispiel ON ERROR GOSUB errhandle /* Definition eines Fehlerunterprogramms */
Befehlszeilen 1 … n SUBMAINPROG /* Unterprogramm 'errhandle' muss definiert sein */ SUBPROG errhandle Befehlszeilen 1 … n RETURN ENDPROG
Programmbeispiel ERROR_01.M, IF_01.M, INDEX_01.M
74 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
ON INT .. GOSUB
Kurzinfo Definition eines Interrupt-Eingangs.
Syntax ON INT n GOSUB name
Parameter n = Nummer des zu überwachenden Eingangs, Reaktion auf steigende
-n = Nummer des zu überwachenden Eingangs, Reaktion auf fallende
= bzw. bei CAN-Anwendungen
name = Name des Unterprogramms
Beschreibung Mit der Anweisung ON INT GOSUB wird ein Unterprogramm definiert, das aufgeru-
fen wird, wenn an dem überwachten Eingang eine Pegeländerung auftritt. Pro Eingang kann maximal ein Unterprogramm definiert werden. Der Befehl ON INT erlaubt die Zuweisung eines positiven Interrupts und
negativen Interrupt für einen Eingang zur gleichen Zeit
Die kann zu einem beliebigen Zeitpunkt definiert werden. Tritt nach dieser Defini­tion der entsprechende Interrupt auf, wird das dazu gehörende Unterprogramm aufgerufen und abgearbeitet. Nach dem letzten Unterprogrammbefehl (RETURN) wird das Programm an der vor dem Interrupt bearbeiteten Programmposition fort­gesetzt.
Wenn Interrupt-Funktionen auf die CAN-Module gesetzt werden, müssen diese zuvor mit CANINI. initialisiert werden.
ACHTUNG!:
Die Anweisung ON INT GOSUB sollte am Programmanfang stehen, damit sie für das ganze Programm Gültigkeit besitzt.
Das aufzurufende Unterprogramm muss innerhalb des durch SUBMAINPROG und ENDPROG gekennzeichneten Programmbereichs definiert sein.
Das Erkennen eines Interrupts und der Aufruf des entsprechenden Unterpro­gramms benötigen maximal 2 Millisekunden. Ein Interrupt vom Eingang FC 300 addiert im schlimmsten Fall zusätzlich 2 ms.
Es ist eine minimale Signallänge von 1 ms notwendig, um eine Pegeländerung sicher zu erkennen. Informieren Sie sich bitte in den MCO 305 und FC 300 Produkthandbüchern über die Beschaltung und technischen Daten der Eingänge.
ACHTUNG!:
Während der Ausführung von Unterprogrammen, die durch einen Interrupt
Priorität Sollten mehrere Interrupts gleichzeitig auftreten, wird zuerst das, dem kleinsten
Eingang zugeordnete Unterprogramm abgearbeitet. Die andern Interrupts werden anschließend abgearbeitet.
Tritt während eines Interrupt-Unterprogramms der gleiche Interrupt (Ausnahme: Fehler-Interrupt) auf, wird dieser ignoriert und geht verloren.
Portabilität Zuweisung eines positiven und negativen Interrupts für einen Eingang zur gleichen
Zeit ab MCO 5.00.
__ Befehlsreferenz __
Flanke (Eingabebereich 1 … 8 und FC 300 Eingänge 18 … 33)
Flanke (Eingabebereich -8 .. -1 und FC 300 Eingänge -33 … -18
Modulnummer * 256 + I/O-Nummer
eines
:
ON INT 1 GOSUB posedge ON INT -1 GOSUB negedge
Die Anweisung ON INT GOSUB ist flanken- und nicht pegelgesteuert.
ausgelöst wurden, ist automatisch NOWAIT ON gesetzt.
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 75
MCO 305 Befehlsreferenz
__ Befehlsreferenz __
ACHTUNG!
Die CAN-Befehle arbeiten mit den vordefinierten PDOs von CAN-OPEN. Ändern Sie auf keinen Fall diese Default-Einstellung (minimum capability device), denn dann würden die CAN-Befehle nicht mehr funktionieren.
Befehlsgruppe INT
Querverweise SUBPROG..RETURN, ON ERROR .. GOSUB, WAITI, DISABLE interrupts, ENABLE
interrupts, Prioritäten bei Interrupts, NOWAIT, CANINI
Syntax-Beispiel ON INT 4 GOSUB posin /* Definition von Eingang 4 (positive Flanke) */
ON INT –5 GOSUB negin /* Definition von Eingang 5 (negative Flanke) */ Befehlszeile 1 Befehlszeile n SUBMAINPROG /* Unterprogramme müssen definiert sein */ SUBPROG posin Befehlszeile 1 Befehlszeile n RETURN SUBPROG negin Befehlszeilen 1 … n RETURN ENDPROG
Programmbeispiel ONINT_01.M, DELAY_01.M
ON KEYPRESSED GOSUB
Summary Interrupt wenn eine Taste gedrückt oder losgelassen wird.
Syntax ON KEYPRESSED GOSUB name
Parameter name = Name des Unterprogramms
Description Mit der Anweisung ON KEYPRESSED kann man reagieren, wenn eine Taste des LCP
Panels gedrückt oder losgelassen wird.
ACHTUNG!:
Das aufzurufende Unterprogramm muss innerhalb des durch SUBMAINPROG und ENDPROG gekennzeichneten Programmbereichs definiert sein.
Während der Ausführung von Unterprogrammen, die durch einen Interrupt
ausgelöst wurden, ist automatisch NOWAIT ON gesetzt.
Command Group INT
Cross Index SUBPROG .. RETURN, INKEY
Syntax Example ON KEYPRESSED GOSUB keyhandler
WHILE(1) DO // Endlosschleife ENDWHILE //////////////////////////////////// SUBMAINPROG SUBPROG keyhandler key = INKEY(-1) // nicht auf Tastenbetätigung warten
PRINT key RETURN ENDPROG
76 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
__ Befehlsreferenz __
ON PARAM .. GOSUB
Kurzinfo Unterprogramm aufrufen, wenn ein Parameter von außen geändert wird.
Syntax ON PARAM n GOSUB name
Parameter n = Parameternummer
name = Name des Unterprogramms
Beschreibung Mit der Anweisung ON PARAM kann man reagieren, wenn ein Parameter im LCP
Display geändert wurde und ein Unterprogramm aufrufen. Alle Parameter (32-xx, 33-xx) und alle Anwendungsparameter (19-xx) sowie
allgemeine Parameter (z.B. 8-02, 5-00) können dazu benutzt werden. ON PARAM für Array-Elemente (z.B. ON PARAM 0x01210005) funktioniert auch,
wenn das Array in ein erhaltenes PDO mit einem LINKPDO Befehl abgebildet wird, aber es ist begrenzt. Nur ein Array-Element kann in einem ON PARAM per verlinktem Array benutzt werden.
Beispiel: DIM test[100] LINKPDO 1 320 0x01210005 0 // die ersten 10 Longs des PDOs werden in die
// ersten 10 Elemente des Arrays test verlinkt ON PARAM 0x01210007 GOSUB test
// wenn sich das dritte Element des Arrays test ändert Wenn ein weiterer Befehl ON PARAM hinzukommt, wie ON PARAM 0x01210009 GOSUB testsub
// wenn sich das 5. Element des Arrays test ändert wird der erste ON PARAM Befehl überschrieben, weil nur einer per LINK-Array
gehandhabt werden kann. Der ON PARAM Befehl wird aktiviert, sobald das Arrayelement durch ein
ankommendes PDO oder durch ein SDOWRITE in das SDO 0x012100ss mit dem korrekten Subindex geschrieben wird.
ON PARAM wird nicht aktiviert, wenn das Array in das Programm durch test[nn] = value geschrieben wird. Und es wird auch nicht aktiviert, wenn das komplette Array mittels 0x23FF SDO überschrieben wird.
ACHTUNG!
Es sind maximal 10 ON PARAM Funktionen möglich.
Das aufzurufende Unterprogramm muss innerhalb des durch SUBMAINPROG und
ENDPROG gekennzeichneten Programmbereichs definiert sein.
Während der Ausführung von Unterprogrammen, die durch einen Interrupt
ausgelöst wurden, ist automatisch NOWAIT ON gesetzt.
Portabilität
Befehlsgruppe INT
Querverweise SUBPROG .. RETURN, SYSVAR, LINKPDO
Syntax-Beispiel 1 ON PARAM 3267 GOSUB poserr // wenn Schleppfehler geändert wurde
Der Befehl ist ab MCO 5.00 verfügbar.
SUBMAINPROG SUBPROG poserr PRINT "Neuer Schleppfehler: ", GET POSERR RETURN
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 77
MCO 305 Befehlsreferenz
__ Befehlsreferenz __
Syntax-Beispiel 2 // Interrupt auslösen bei jeder Änderung der CANopen DS402 "Betriebsart"
ON PARAM 0x01606000 GOSUB OpModeUpdate SUBMAINPROG SUBPROG OpModeUpdate PRINT "Neuer DS402 Betriebsart: ",sysvar[0x01606000] // Befehlsabfolge in Abhängigkeit der neuen Betriebsart auslösen SWITCH (sysvar[0x01604000]) CASE 1: PRINT "Profil Positionierung Modus"
// Aktion ....
BREAK CASE 2: PRINT "Geschwindigkeitsmodus"
// Aktion ....
BREAK
// CASE ....
// ... // BREAK DEFAULT: PRINT "Betriebsart wird nicht unterstützt" ENDSWITCH RETURN ENDPROG
Syntax-Beispiel 3 // Das RxPDO mit dem Benutzerparameter 1 verknüpfen ...
LINKPDO 1 32 0x01220101 0 // … und bei jeder Änderung einen Interrupt auslösen ON PARAM 0x01220101 GOSUB UserParamUpdate SUBMAINPROG SUBPROG UserParamUpdate PRINT "Benutzerparameter 1 updated: ",sysvar[0x01220101] RETURN ENDPROG
78 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
ON PERIOD
Kurzinfo Ruft ein Unterprogramm in regelmäßigen Abständen auf.
Syntax ON PERIOD n GOSUB name
Parameter n > 20 ms = Zeit in ms, nach der das Programm immer wieder aufgerufen wird
n = 0 = Funktion abschalten name = Name des Unterprogramms
Beschreibung Mit ON PERIOD kann man ein Unterprogramm in regelmäßigen Abständen (zeitge-
führt) aufrufen. ON PERIOD wirkt wie ein Interrupt und wird alle 20 ms überprüft.
ACHTUNG!:
Die Genauigkeit mit der die Zeit eingehalten wird, hängt vom restlichen Pro-
Befehlsgruppe INT
Querverweise ON TIME, GOSUB, DISABLE interrupts, ENABLE interrupts, Prioritäten bei
Interrupts
__ Befehlsreferenz __
(maximal MLONG)
gramm ab. Typischerweise beträgt die Genauigkeit r1 ms. Das aufzurufende Unterprogramm muss innerhalb des durch SUBMAINPROG
und ENDPROG gekennzeichneten Programmbereichs definiert sein. Während der Ausführung eines ON PERIOD Unterprogramms ist automatisch
NOWAIT ON gesetzt.
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 79
MCO 305 Befehlsreferenz

!
__ Befehlsreferenz __
ON posint .. GOSUB
Kurzinfo Unterprogramm aufrufen, wenn ein Positions-Interrupt auftritt.
Syntax ON sign postype position GOSUB name
Parameter sign + = steigende Flanke oder wenn die Position in positiver Richtung passiert
wurde
– = fallende Flanke oder wenn die Position in negativer Richtung passiert
wurde 100 xxx 0 <
postype = APOS
IPOS
MAPOS
MCPOS
MIPOS position = abhängig vom Befehl in Benutzereinheiten [BE], oder Master Benutzer-
einheiten [MU] oder Kurveneinheiten [CU] name = Name des Unterprogramms
Beschreibung Wenn ein Befehl ON xPOS benutzt wird und eine Position liegt hinter einem Überlauf
des Encoders, wird dies intern automatisch gehandhabt. Wenn z.B. keine POSFACTs gesetzt sind: testpos = 0x3FFFFFF0 // Position kurz vor Overflow
newpos = testpos + 200 // neue Testposition ON +APOS newpos GOSUB myprog
Die neue Testposition wird intern korrekt in die Interrupt-Liste eingetragen. Das gleiche gilt wenn POSFACT_Z und POSFACT_N gesetzt sind und der Benutzer-
wert einen Überlauf der internen qc Positionen verursacht. Alle oder einzelne Positions-Interrupts können mit dem Befehl ON DELETE .. GOSUB
gelöscht werden.
ACHTUNG!
Das aufzurufende Unterprogramm muss innerhalb eines Programmbereichs
SUBMAINPROG und ENDPROG stehen.
Während der Ausführung von Unterprogrammen, die durch einen Interrupt
ausgelöst wurden, ist automatisch NOWAIT ON gesetzt.
ON APOS .. GOSUB Mit der Anweisung ON APOS kann man ein Unterprogramm aufrufen, wenn eine
bestimmte Slave-Position xxx (BE) in positiver bzw. negativer Richtung passiert wurde. Die Anweisung kann für Positionier- und Synchronisiersteuerungen wie auch für Kurvenscheibensteuerungen und Nockenschaltwerke nützlich sein. Zum Beispiel um bei offenen Kurven die anwachsende Slave-Position nach jedem Zyklus durch einen wiederkehrenden Bezugspunkt zu ersetzen.
positive Richtung negative Richtung
80 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
g
__ Befehlsreferenz __
Beispiel: CSTART
ON +APOS 2000 GOSUB STOP SUBMAINPROG SUBPROG STOP CSTOP RETURN ENDPROG
Gemäß dem Programm stoppt der Antrieb sobald er die Position 2000 erreicht hat.
ON IPOS .. GOSUB Dieser Positions-Interrupt betrachtet die Distanz zwischen der letzen Markerposition
und der aktuellen Position. Dabei ist es wichtig, dass SYNCMPULSS korrekt gesetzt ist. Diese Information wird für die Ermittlung eines Überlaufs sowie für das Rück­wärtsfahren verwendet. Beim Rückwärtsfahren wird (SYNCMPULSS + (APOS – IPOS)) benutzt, statt of (APOS – IPOS).
ON MAPOS .. GOSUB Unterprogramm aufrufen, wenn die Master-Position xxx (MU) in positiver oder
ativer Richtung passiert wurde. Zum Beispiel um bei einem Linearantrieb (Slave)
ne mit einem Verfahrbereich von 0 bis 10000 BE an einer beliebigen Position einen Ausgang zu setzen.
Programmgemäß startet die Geschwindigkeits-Synchronisation, nachdem der Master die Position 2200 qc in positiver Richtung erreicht hat. Dann fahren der Slave und der Master mit SYNCV.
ON MCPOS .. GOSUB Unterprogramm aufrufen, wenn die Master-Position xxx (MU) passiert wurde.
Mit dieser für Kurvenscheibensteuerungen typischen Anweisung ON MCPOS kann man ein Unterprogramm aufrufen, wenn eine bestimmte Master-Position (MU) in positiver bzw. negativer Richtung passiert wurde. Auf diese Weise lassen sich nicht nur Nockenschaltwerke realisieren, sondern auch viel komplexere Aufgaben durch­führen. Zum Beispiel könnte man abhängig von der Position online Parameter ändern.
ACHTUNG!
Vor dem Befehl ON MCPOS .. GOSUB muss immer ein DEFMCPOS oder ein SETCURVE stehen, weil sonst die Kurvenposition nicht bekannt ist.
ON MIPOS .. GOSUB Unterprogramm aufrufen, wenn die Distanz zwischen zwei Markern erreicht ist.
Dieser Positions-Interrupt betrachtet die Distanz zwischen der letzten Markerposition und der aktuellen Position. Es ist wichtig, dass SYNCMPULSM korrekt gesetzt ist. Diese Information wird für die Ermittlung eines Überlaufs sowie für das Rückwärts­fahren verwendet. Beim Rückwärtsfahren wird (SYNCMPULSM + (MAPOS – MIPOS)) statt (MAPOS – MIPOS) benutzt.
Portabilität ON POSINT Overflow-Handhabung ab MCO 5.00.
Befehlsgruppe INT
Querverweise SUBPROG .. RETURN, DISABLE .., ENABLE .., Prioritäten der Interrupts, ON DELETE
.. GOSUB, APOS, MAPOS, MIPOS, IPOS
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 81
MCO 305 Befehlsreferenz
__ Befehlsreferenz __
Syntax-Beispiel 1 ON –apos 800 GOSUB name
// Unterprogramm 'name' aufrufen, wenn die // Slave-Position 800 in negativer Richtung passiert wurde
Syntax Beispiel 2 SET SYNCMPULSS 20000 // Abstand zwischen zwei Markern
ON +ipos 5000 GOSUB prog1 ON +ipos 15000 GOSUB prog2
In diesem Beispiel haben zwei Marker einen Abstand von 20000 qc. Angenommen, der erste Marker ist auf Position 0. Dann wird prog1 bei 5000, 25000, 45000 usw. aufgerufen und prog2 wird bei 15000, 35000 usw. ausgeführt.
Syntax Beispiel 3 ON +mapos 1200 GOSUB name
// Subprogramm immer auf Position 1200 aufrufen
Syntax Beispiel 4 SET SYNCMPULSM 20000 // Abstand zwischen zwei Markern
ON +mipos 5000 GOSUB prog1 ON +mipos 15000 GOSUB prog2
In diesem Beispiele habe zwei Marker einen Abstand von 20000 qc. Angenommen der erste Marker ist auf Position 0. Dann wird prog1 bei 5000, 25000, 45000 usw. aufgerufen und prog2 wird bei 15000, 35000 usw. ausgeführt.
Syntax Beispiel 5 Auf einem Band werden Kartons in unregelmäßigen Abständen transportiert. Durch
Setzen eines Ausgangs wird der Slave immer dann gestartet, wenn die Position xxx erreicht wird.
SUBMAINPROG // Unterprogramm output setzen SUBPROG output OUT 3 1 // 03 on RETURN ENDPROG ON +MCPOS 4500 GOSUB output // Unterprogramm output immer an Position 4500 aufrufen
82 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
g
__ Befehlsreferenz __
ON posint .. SETOUT (TOIN)
Kurzinfo Simuliert ein Nockenschaltwerk (CAM-Box) (alle POSINT Typen)
Syntax ON +/- type position SETOUT outno
ON +/- type position SETOUT outno TOIN inno
Parameter type = alle POSINT
APOS
IPOS
MAPOS
MCPOS
MIPOS position = abhängig vom Befehl in Benutzereinheiten [BE], Master-Benutzer-
einheiten [MU] oder Kurveneinheiten [CU] outno = kann jede gültige Nummer eines Ausgangs sein (oder negative Nummer
des Ausgangs) inno = kann jede gültige Nummer eines Eingangs sein (oder negative Nummer
des Eingangs)
Beschreibung Alle Funktionen des Positions-Interrupts können diese Simulation eines Nocken-
schaltwerks (CAM-Box) benutzen. Dies ist mit allen Arten der POSINTs möglich. Im ersten Fall ist der Ausgang
hängt davon ab, ob Im zweiten Fall ist der Ausgang auf den Wert des Eingangs
den Eingang mit Negierung des Wertes, falls entweder Wenn beide,
Der Vorteil solcher Befehle ist, dass sie im Hintergrund arbeiten und daher das Anwendungsprogramm nicht unterbrechen. Sie sind auch schneller als wenn Unter­programme aufgerufen werden müssten, die dann die Ausgänge setzen. Typische Reaktionszeit ist unter 1 ms.
Portabilität
Befehlsgruppe INT
Querverweise SUBPROG .. RETURN, APOS, IPOS, MAPOS, MIPOS,
Syntax-Beispiel SET SYNCMPULSS 20000 // Abstand zwischen zwei Markern
Der Befehl ist ab MCO 5.00 verfügbar.
on +ipos 500 setout 1 toin 2 on +ipos 1000 setout -1
In diesem Beispiel wird der Ausgang 1 auf den Wert des Eingangs 2 auf der Position von 500 Benutzereinheiten nach dem Marker gesetzt.
Dann wird der Ausgang 1 bei der Position von 1000 qc nach dem Marker wieder auf 0 gesetzt.
outno und inno negativ sind, ist es das gleiche als wären beide positiv.
outno positiv oder negativ ist.
outno entweder gesetzt oder zurückgesetzt; dies
inno gesetzt. (Oder auf
inno oder outno ne
ativ ist.).
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 83
MCO 305 Befehlsreferenz
ON STATBIT .. GOSUB
Kurzinfo Unterprogramm aufrufen, wenn Bit n des Statuswortes gesetzt wird.
Syntax ON STATBIT n GOSUB name
Parameter n = Bit n des Statuswortes
Byte 1 + 2 Statuswort des FC 300 (siehe FC3xx Handbuch) Byte 3 Bit 17 1 = Achse fährt Bit 18 1 = Überlauf Slave-Drehgeber Bit 19 1 = Überlauf Master-Drehgeber Bit 20 1 = FC 300 temporär abgeschaltet *) Byte 4 SYNCSTAT Bit 25 Bit 26 Bit 27 Bit 28 1 = SYNCMMHIT Bit 29 1 = SYNCSMHIT Bit 30 1 = SYNCMMERR Bit 31 1 = SYNCSMERR
name = Name des Unterprogramms
*) Erläuterung: d.h. die Achse befindet sich innerhalb des Toleranzbereiches des Regelfensters Par. 32-71 REGWMAX / Par. 32-72 REGWMIN. Der FC 300 wird wieder eingeschaltet, sobald das Regelfenster verlassen wird.
Beschreibung Mit der Anweisung ON STATBIT wird ein Unterprogramm aufgerufen, wenn Bit n
des FC 300 Status gesetzt ist. Diese 32 Bits des FC 300 Status setzen sich aus dem Statuswort des FC 300, dem Byte 3 des internen Status (zum Beispiel „Achse fährt”) und dem Bit n von SYNCSTAT zusammen
ACHTUNG!:
Das aufzurufende Unterprogramm muss innerhalb des durch SUBMAINPROG
Priorität Sollten mehrere Interrupts gleichzeitig auftreten, wird zuerst das dem niedrigsten Bit
zugeordnete Unterprogramm abgearbeitet. Die anderen Interrupts werden anschlie­ßend abgearbeitet. Tritt während eines Interrupt-Unterprogramms der gleiche Inter­rupt auf (Ausnahme: Fehler-Interrupt), wird dieser ignoriert und geht verloren.
Befehlsgruppe INT
Querverweise SUBPROG ..RETURN, DISABLE interrupts, ENABLE interrupts, Prioritäten der
Interrupts
Syntax-Beispiel ON STATBIT 30 GOSUB markererror /* Interrupt, wenn Fehler-Flag Master */
SUBMAINPROG SUBPROG markererror SYNCSTATCLR 32 /* Fehler-Flag SYNCMMERR löschen */ /* Wert 32 von Parameter SYNCSTATCLR, nicht Bit-Nummer! */ RETURN ENDPROG
__ Befehlsreferenz __
1 = SYNCREADY 1 = SYNCFAULT 1 = SYNCACCURACY
und ENDPROG gekennzeichneten Programmbereichs definiert sein. Während der Ausführung von Unterprogrammen, die durch einen Interrupt
ausgelöst wurden, ist automatisch NOWAIT ON gesetzt.
84 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
ON TIME
Kurzinfo Einmalaufruf eines Unterprogramms.
Syntax ON TIME n GOSUB name
Parameter n = Zeit in ms, nach der das Unterprogramm aufgerufen wird (maximal
name = Name des Unterprogramms
Beschreibung Nach Ablauf der gesetzten Zeit wird das entsprechende Unterprogramm einmal
aufgerufen. Das Programm läuft in der Zwischenzeit normal weiter.
ACHTUNG!:
Die Genauigkeit mit der die Zeit eingehalten wird, hängt von der eingesetzten
Befehlsgruppe INT
Querverweise ON PERIOD, GOSUB, DISABLE interrupts, ENABLE interrupts, Prioritäten der
Interrupts
Syntax-Beispiel OUT 1 1 /* Lampe an */
ON TIME 200 GOSUB off1 /* Lampe nach 200 ms wieder aus */ SUBMAINPROG SUBPROG off1 OUT 1 0 RETURN ENDPROG
__ Befehlsreferenz __
MLONG)
Hardware und vom restlichen Programm ab. Typischerweise beträgt die Genauigkeit r1 ms.
Das aufzurufende Unterprogramm muss innerhalb des durch SUBMAINPROG und ENDPROG gekennzeichneten Programmbereichs definiert sein.
Während der Ausführung eines ON TIME Unterprogramms ist automatisch NOWAIT ON gesetzt.
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 85
MCO 305 Befehlsreferenz
OUT
Kurzinfo Digitale Ausgänge setzen oder zurücksetzen.
Syntax OUT n s oder
OUT X/n s
Parameter n = Nummer des Ausgangs
bzw. für CANopen I/O-Module:
X/n = Klemmenblock / Pin Nummer s = Zustand
Beschreibung Der OUT Befehl kann die 8 (6) digitalen Ausgänge der MCO 305 Option, die
digitalen und Relaisausgänge des FC 300 und die Relaisausgänge des MCB 105 setzen oder zurücksetzen.
Der Modus für die Ausgänge 7,8 wird in Par. 33-60 IOMODE ausgewählt. Ob die Ausgänge NPN- oder PNP-schaltend benutzt werden, hängt von der Auswahl
der Standardausgänge des FC 300 ab, die in Par. 5-00 gesetzt werden. CAN-Module, die die CANopen Spezifikationen erfüllen, können Sie ebenfalls mit
dem OUT Befehl ansprechen, und zwar über die entsprechende Nummer, die wie folgt definiert ist:
CAN-Bus + (Modul-CAN-ID * 256) + Ausgangsnummer (bzw. Ausgangsbyte) Beim Ausführen eines solchen Befehls werden temporär die entsprechenden CAN-
Objekte angelegt, ausgewertet und anschließend wieder freigegeben; daher können Sie beliebig viele Module ansprechen.
ACHTUNG!:
Wenn eine falsche Kombination oder Pin-Nummer für X/n benutzt wird, die nicht gesetzt werden kann, wird Fehler 171 gemeldet. Aber es gibt keine Überprüfung, falls ein Eingang statt eines Ausgangs oder umgekehrt benutzt wird.
ACHTUNG!:
Der Schaltzustand von Ausgängen, die gemäß den I/O-Parametern vordefinierte
Der aktuelle Schaltzustand bleibt auch nach Beendigung oder Abbruch eines
Die Schaltlogik sowie die maximale Strombelastbarkeit sind in den Produkt-
ACHTUNG!:
Der Befehl arbeitet mit den vordefinierten PDOs von CAN-Open. Ändern Sie auf keinen Fall diese Default-Einstellung (minimum capability device), denn dann funktioniert der Befehl nicht mehr.
Portabilität CAN-Module setzen oder rücksetzen ab MCO 5.00.
__ Befehlsreferenz __
MCO 305: 1 – 8 (6) FC 301 outputs: 27 Relais Ausgänge: 21 (Relais 1) und 22 (Relais 2); Achtung: FC 301 < 11 kW hat nur Relais 1. MCB 105, Relais Ausgänge: X34/1 (Relais 7), X34/5 (Relais 8) und X34/10 (Relais 9).
CAN-Bus + (Modul-CAN-ID * 256) + Ausgangsnummer (bzw. Ausgangsbyte)
0 = OFF 1 = ON
Nach dem Einschalten der Anlage sind alle Ausgänge OFF.
Funktionen besitzen, wird mit dem OUT Befehl ebenfalls beeinflusst!
Programms erhalten.
handbüchern von MCO 305 und FC 300 beschrieben.
86 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
__ Befehlsreferenz __
Befehlsgruppe I/O
Querverweise OUTB, IN, INB,
Parameter: 33-60 33-63...70
Syntax-Beispiele OUT 3 1 // MCO 305 Ausgang 3 auf 1 setzen
OUT 27 1 // Ausgang 27 der FC 300 Hauptplatine auf 1 setzen OUT X59/3 1 // MCO 305 Ausgang 3 auf 1 setzen OUT X34/1 1 // erstes Relais der Relais-Option (Relais 7) auf 1 setzen
Programmbeispiel OUT_01.M
OUTAN
Kurzinfo Drehzahlsollwert setzen.
Syntax OUTAN w
Parameter w = Bus-Sollwert
Bereich: –0X4000 – 0X4000 = –100 % – 100 %
Beschreibung Mit dem OUTAN Befehl können Sie den Sollwert für den FC 300 Bus vorgeben. (Der
Drehzahl- oder Drehmoment-Sollwert hängt davon ab, wie der FC 300 Par. 1-00 gesetzt ist.)
Mit OUTAN kann man auch in „Open Loop” mit MOTOR OFF die Regelung abschal­ten und den FC 300 als reinen Frequenzumrichter betreiben. So können Sie APOSS benutzen um direkt gesetzte Werte auszugeben, Eingänge zu lesen usw.
ACHTUNG!:
Vor dem Befehl OUTAN muss MOTOR OFF ausgeführt werden. Daher ist die Schleppfehlerüberwachung nicht mehr aktiv.
Klemme X59/n Digitaler Ausgang, O_FUNCTION_n
Klemme X59/1 und X59/2 Modus, IOMODE,
Befehlsgruppe I/O
Querverweise MOTOR OFF,
MCO 305 Produkthandbuch, FC 300 Produkthandbuch
Syntax-Beispiel MOTOR OFF // Regelung ausschalten
OUTAN 0X2000 // Drehzahlsollwert auf 50 % setzen
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 87
MCO 305 Befehlsreferenz
g
g
OUTB
Kurzinfo Zustand der digitalen Ausgänge byteweise verändern.
Syntax OUTB n w
Parameter n = Ausgangsbyte
bzw. für CANopen I/O-Module:
w = Wert (0 ... 255)
ACHTUNG!
Die Nummerierung der Bytes beginnt bei 0; im Gegensatz zu den einzelnen Aus
__ Befehlsreferenz __
0 = 1 – 8 1 = 27,29
CAN-Bus + (Modul-CAN-ID * 256) + Ausgangsnummer (bzw. Ausgangsbyte)
gängen, deren Nummerierung bei 1 beginnt.
Beschreibung Mit dem OUTB Befehl kann der Zustand der di
italen Ausgänge byteweise verändert werden. Der übergebene Bytewert bestimmt den Zustand der einzelnen Ausgänge. Das niederwertigste Bit des Bytewertes entspricht dabei dem Sollzustand des Ausgangs 1.
CAN-Module, die die CAN-OPEN Spezifikationen erfüllen, können Sie ebenfalls mit dem OUTB Befehl ansprechen, und zwar über die entsprechende Nummer, die wie folgt definiert ist:
CAN-Bus + (Modul-CAN-ID * 256) + Ausgangsnummer (bzw. Ausgangsbyte) Beim Ausführen eines solchen Befehls werden temporär die entsprechenden CAN-
Objekte angelegt, ausgewertet und anschließend wieder freigegeben; daher können Sie beliebig viele Module ansprechen.
ACHTUNG!:
Nach dem Einschalten der Anlage sind alle Ausgänge auf OFF. Ausgänge, die gemäß den I/O-Parameter-Einstellungen vordefinierte Funktionen besitzen, werden durch den OUTB Befehl ebenfalls beeinflusst! Der aktuelle Schaltzustand bleibt auch nach Beendigung oder Abbruch eines Programms erhalten.
Schaltlogik sowie maximale Strombelastbarkeit siehe MCO 305 Produkthandbuch.
ACHTUNG!:
Der Befehl arbeitet mit den vordefinierten PDOs von CANopen. Ändern Sie auf keinen Fall diese Default-Einstellun
(minimum capability device), denn dann funktioniert der
Befehl nicht mehr.
Portabilität Der Befehl OUTB für CAN-Module ab MCO 5.00.
Befehlsgruppe I/O
Querverweise OUT, IN, INB,
Parameter: 33-63...70
Klemme X59/n Digitaler Ausgang, O_FUNCTION_n
Syntax-Beispiele OUTB 0 10 // Ausgang 2 + 4 durchschalten, sonstige Ausgänge sperren
OUTB 0 245 // Ausgang 2 und 4 sperren, alle anderen durchschalten OUTB 0 128 // nur Ausgang 8 durchschalten, andere sperren OUTB 256 1 // Ausgang 1 auf CAN-Modul 1 setzen
Programmbeispiel OUTB_01.M
88 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
g
j
g
j
OUTDA
Kurzinfo Analogen FC 300 Ausgang setzen.
Syntax OUTDA n w
Parameter n = Ausgangsnummer (42)
bzw. für CANopen I/O-Module:
w = Wert (0 – 100000)
ACHTUNG!:
Parameter 6-50 muss auf „MCO gesteuert” eingestellt sein.
Beschreibung Mit dem OUTDA Befehl kann man den analogen Ausgang der FC 300 Steuerkarte
setzen. Der FC 300 hat einen analogen Ausgang, der in Parameter 6-50 konfi wird.
Ein Ausgang der FC 300 Steuerkarte kann nur vom Anwendungsprogramm gesetzt werden, wenn er als Optionsausgang im entsprechenden Parameter konfiguriert ist.
CAN-Module, die die CANopen Spezifikationen erfüllen, können Sie ebenfalls mit dem OUTDA Befehl ansprechen, und zwar über die entsprechende
Modulnummer * 256 + die I/O-Nummer. Beim Ausführen eines solchen Befehls werden temporär die entsprechenden CAN-
Ob Sie beliebig viele Module ansprechen.
ACHTUNG!:
Der Befehl arbeitet mit den vordefinierten PDOs von CANopen. Ändern Sie auf keinen Fall diese Default-Einstellun Befehl nicht mehr.
Portabilität Ausgang für CAN-Module setzen ab MCO 5.00.
Befehlsgruppe I/O
Querverweis FC 300 Produkthandbuch, Parameter 6-50
Syntax-Beispiel /* Voraussetzung: Parameter 6-50 ist auf "MCO gesteuert" gesetzt */
OUTDA 42 50000 /* FC 300 Ausgang auf 10 mA setzen */
__ Befehlsreferenz __
CAN-Bus + (Modul-CAN-ID * 256) + Ausgangsnummer (bzw. Ausgangsbyte)
uriert
ekte angelegt, ausgewertet und anschließend wieder freigegeben; daher können
(minimum capability device), denn dann funktioniert der
OUTMSG
Kurzinfo Sendet eine CAN-Nachricht
Syntax OUTMSG intval longval
Parameter intval Bytes 2 und 3 der CAN-Nachricht
longval Bytes 4 bis 7 der CAN-Nachricht
Beschreibung Sendet eine CAN-Nachricht (gepuffert). Die CAN-Id (CAN-Identifikationsnummer)
ergibt sich aus den Einstellungen der 'slavenr'. OUTMSG behandelt immer Ob
ekte, die 8 Bytes lang sind. Für den Benutzer sind nur
die Bytes von 2 bis 7 vorgesehen. Byte 0 und 1 sind reserviert.
Portabilität
Befehlsgruppe CAN
Querverweise INMSG, ON CANMSG, INAD
Syntax-Beispiel temperatur = INAD 1
Der Befehl ist ab MCO 5.00 verfügbar.
OUTMSG 20 temperatur
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 89
MCO 305 Befehlsreferenz
PCD
Kurzinfo Pseudo-Array für den direkten Zugriff auf den Feldbus-Datenbereich.
Syntax PCD[n]
Parameter n = Index
Beschreibung Ohne einen zusätzlichen Befehl COMOPTGET oder COMOPTSEND können Sie mit
dem Befehl PCD direkt auf den Feldbus-Datenbereich zugreifen. Es wird wortweise (16-Bit) der Kommunikationsspeicher beschrieben oder gelesen.
ACHTUNG!:
Zusätzlich müssen die Parameter 9-15 und 9-16 mit den richtigen Werten gesetzt sein.
Befehlsgruppe Kommunikationsoption
Querverweise COMOPTGET, COMOPTSEND, SYSVAR
Syntax-Beispiel Variable = PCD[1] // Wort 1
Variable = PCD[1].2 // Bit 2 von Wort 1 Variable = PCD[2].b1 // Byte 1 von Wort 2 PCD[1] = Variable PCD[1].3 = Variable
Syntax-Beispiel _IF (PCD[2]= = 256) THEN // Wert vergleichen
_IF (PCD[3].2) THEN // ist Bit 2 von PDO 3 high?
__ Befehlsreferenz __
90 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
g
PDO
Kurzinfo Pseudo-Array für den direkten Zugriff auf die CANopen-PDO.
Syntax PDO[n]
Parameter n = 1001 für 1. PDO (Erste 4 Bytes), 1002 für 1. PDO (Nächste 4 Bytes)
2001 für 2. PDO (Erste 4 Bytes), 2002 für 2. PDO (Nächste 4 Bytes) 3001 für 3. PDO (Erste 4 Bytes), 3002 für 3. PDO (Nächste 4 Bytes) 4001 für 4. PDO (Erste 4 Bytes), 4002 für 4. PDO (Nächste 4 Bytes) 5001 für 5. PDO (Serielle PDO werden unterstützt) Aus Kompatibilitätsgründen ebenfalls unterstützt: n = 1, 2 (1. PDO, erste und zweite 4 Bytes) Der Offset zum Lesen anderer PDOs ist immer 1000. Die nächsten 4 Bytes des PDOs werden immer über einen Offset von +1
angesprochen. PDOs können systemabhängig eventuell mehr als 8 Bytes enthalten. Der Zugriff auf diese weiteren Bytes erfolgt nach identischem Schema, z.B. mit 1001, 1002, 1003, 1004, etc. Identisches gilt für das „serielle” PDO 5 (mit Zugriff über USB oder RS232).
PDO Aktivierung (enable / disable) Entsprechend der CANopen-Norm ist nur das PDO 1 (RxPDO = 0x200 + Node-ID /
TxPDO = 0x180 + Node-ID) standardmäßi Bedarf enabled (= freigegeben) werden. Dies kann durch das direkte Setzen des „Valid”-Bits (0x1400 -0x1404 bzw. 0x1800 - 0x1804, Subindex 1) oder durch eine Mapping-Konfiguration mit den Befehlen LINKSDO bzw. LINKPDO erfolgen, wobei das Bit des entsprechenden PDOs automatisch gesetzt wird.
CANopen PDO Größe Ein PDO ist immer 8 Byte lang; es kann daher maximal 8 Objekte enthalten.
__ Befehlsreferenz __
enabled. Die weiteren PDOs müssen bei
Beschreibung
PDO 5 (= „Serielles PDO”) Größe Die Mailbox-Größe des PDO 5 kann eine Länge von maximal circa 250 Bytes
besitzen. Das PDO 5 wird ebenfalls von dem Oszilloskop-Tool der APOSS Entwicklungsumgebung genutzt. Es wird deshalb empfohlen dieses PDO nicht in Applikationsprogrammen zu verwenden, die später mit dem Oszilloskop-Tool gedebugged werden sollen.
Der Befehl PDO ermöglicht den direkten Zugriff auf die CANopen Prozessdatenobjekte.
Beim Lesen eines PDO (Reaktion auf ein ankommendes PDO) gibt es drei Möglichkeiten:
1. Nach dem Befehl LINKPDO, wird das ankommende Telegramm immer in die entsprechende Systemvariable umgeleitet. Das „Valid”-Bit des PDOs wird automatisch gesetzt.
2. Das Programm greift selbst lesend auf das PDO-Array zu.
3. Mit ON COMBIT, wird eine Funktion aufgerufen, sobald sich das Bit n des PDOs ändert.
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 91
MCO 305 Befehlsreferenz
Beim ausgehenden PDO sind zwei Verfahren zu unterscheiden:
1. Nach dem Befehl LINKSDO wird in das PDO geschrieben, sobald sich die
2. Der Befehl PDO schreibt direkt in das ausgehende PDO
Das erste PDO-Arrayelement (z.B. PDO[1001]) enthält die Datenbytes 1 - 4 der maximal 8 Datenbytes des PDOs im Falle eines CANopen-PDOs. Das zweite PDO­Arrayelement (z.B. PDO[1002]) enthält die Datenbytes 5 - 8. Weitere PDO-Array­elemente gibt es nur bei speziellen Systemen oder erweiterten Bus-Protokollen, z.B. für das „serielle“ PDO 5.
Jedes PDO-Arrayelement (z.B. PDO[1002], PDO[2002]) enthält einen 32-Bit Wert. Man muss hierbei jedoch die Reihenfolge der Bytes in dem 32-Bitwert bei der Aus­wertung beachten. Am besten lässt sich die Byte-Reihenfolge mit dem byte- (.b) oder wortweisen (.w) Zugriff auf das PDO-Arrayelement überprüfen.
PDO[1001].b1 -> Byte 1 des PDO 1 PDO[1001].b2 -> Byte 2 des PDO 1 PDO[1001].b3 -> Byte 3 des PDO 1 PDO[1001].b4 -> Byte 4 des PDO 1
PDO[1002].b1 -> Byte 5 des PDO 1 PDO[1002].b2 -> Byte 6 des PDO 1 PDO[1002].b3 -> Byte 7 des PDO 1 PDO[1002].b4 -> Byte 8 des PDO 1
ACHTUNG!
Die beiden Befehle LINKPDO und LINKSDO verknüpfen auf Seiten der Steuerung PDO direkt mit internen Systemvariablen und setzen das „Valid”-Bit des PDOs.
Auch wenn Mapping (via LINKSDO oder LINKPDO) konfiguriert wurde, können Sie weiterhin mit dem PDO-Array direkt auf das PDO zugreifen. Allerdings müssen Sie darauf achten, dass beim Schreiben in das PDO-Array nur Bytes verwendet werden, die nicht im Mapping enthalten sind. Andernfalls ist die Integrität der Daten nicht gewährleistet!
ACHTUNG!
Standardgemäß wird ein veränderter PDO-Inhalt automatisch verschickt (Asynchron Modus). Wenn dies nicht gewünscht ist, kann man den SDO Index 0x1800 ­Subindex 2 auf einen anderen Wert einstellen (z.B. 254, statt Standard 255). Dadurch wird nicht mehr aktiv verschickt, sondern das PDO muss per Remote­Frame abgeholt werden.
Natürlich kann das PDO Mapping auch extern von einer übergeordneten Steuerung (z.B. SPS, PC) mit den Standard CANopen Prozeduren gesetzt werden. Das heißt, es werden die Mapping-Parameter über die Objekten 0x1600 – 0x1604 und 0x1A00 – 0x1A04 konfiguriert. Bei einer solchen externen Mapping-Konfiguration können jedoch nur über SDOs zugängliche Objekte gemappt werden. Systemdaten, die ausschließlich über interne SYSVAR Nummern zugänglich sind, können nicht in das externe Mapping einbezogen werden.
In der gleichen Weise ist es auch möglich, die PDOs 1 - 5 über das „Valid”-Bit des Subindex 1 der Objekte 0x1400 – 0x1404 bzw. 0x1800 – 0x1804 zu enablen oder disablen.
__ Befehlsreferenz __
Variable ändert. Zyklisches Update des Parameters alle 10 ms. Dieser Default-Wert kann über SDO Eintrag 0X1800 - 0x1804 Subindex 5 ent­sprechend der CANopen-Spezifikation geändert werden. Das „Valid”-Bit des PDOs wird automatisch gesetzt.
ein
0x1804
92 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
__ Befehlsreferenz __
Mit den Subindices 2-5 von 0x1800 - 0x1804 kann der Übertragungstyp („Trans­mission Type”), sowie die Sperr- und Ereigniszeit der TxPDOs definiert werden. Die Einstellung des Übertragungstyps des TxPDOs gilt bei der MCO-Option identisch für das RxPDO.
RxPDOs benutzen keinen extra CAN-Speicher, aber TxPDOs benötigen ein Objekt pro TxPDO, falls sie enabled sind, d.h. das "Valid" Bit gesetzt ist.
Portabilität
Befehlsgruppe CAN
Querverweise SYSVAR
Syntax-Beispiel Variable = PDO[1] // Datenwert Byte 1 - 4
Programmbeispiel _IF (PDO [1] 256) THEN // Wert vergleichen
Der Befehl ist ab MCO 5.00 verfügbar.
Variable = PDO[1].2 // Bit 2 von Datenwert Byte 1 - 4 Variable = PDO[2].b1 // Byte 1 von Datenwert Byte 5 - 8 PDO[1] = Variable PDO[1].3 = Variable
_IF (PDO [2].2) THEN // Ist Bit 2 von PDO 2 Datenwert Byte 5-8 ?
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 93
MCO 305 Befehlsreferenz
PID
Kurzinfo PID-Filter berechnen.
Syntax u(n) = PID e(n)
Parameter e(n) = aktuelle Abweichung (Fehler) auf die der PID-Filter angewendet werden soll
Rückgabewert u(n) = Ergebnis der PID-Berechnung
Beschreibung Mit dieser Funktion kann ein PID-Filter berechnet werden. Der PID-Filter arbeitet
nach der Formel: u(n) = ( KP * e(n) + KD *(e(n)-e(n–1)) + KI*¦e(n) ) / timer wobei gilt: e(n) Fehler zum Zeitpunkt n KP
KD KI
timer Die entsprechenden Faktoren können mit folgenden Befehlen gesetzt werden:
SET PID KPROP 1 /* setze KP 1 */ SET PID KDER 1 /* setze KD 1 */ SET PID KINT 0 /* setze KI 0 */ SET PID KILIM 0 /* Grenzwert für die Integralsumme = 0 */ SET PID TIMER 1 /* Abtastzeit = 1 */ wobei das folgende Syntax-Beispiel auch gleich die Default-Belegung der Faktoren zeigt.
Befehlsgruppe SYS
Syntax-Beispiel e = INAD 53
u = PID e PRINT "Eingang = ",e, "Ausgabe = ",u
__ Befehlsreferenz __
Proportionalfaktor des PID-
Reglers
Differentialfaktor Integralfaktor (begrenzt durch
Integrationslimit) Abtastzeit
KINT
KPROP
KDER
KILIM
+
u(n)e(n)
+
+
94 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
POSA
Kurzinfo Absolut zum aktuellen Nullpunkt positionieren.
Syntax POSA p
Parameter p = Position in Benutzereinheiten (BE) absolut zum aktuellen Nullpunkt; in der
Beschreibung Mit dem POSA Befehl wird die Achse auf eine Position absolut zum aktuellen Null-
punkt bewegt. Wenn durch den Befehl POSA die
(Parameter 33-41 oder 33-42) überschritten werden, wird nach dem Fehler mit dem nächsten Befehl fortgefahren.
ACHTUNG!:
Wenn ein mit SETORIGIN gesetzter und aktiver Temporärnullpunkt existiert, wird die Positionsangabe auf diesen Nullpunkt bezogen.
ACHTUNG!:
Sollte beim Aufruf des POSA Befehls noch keine Beschleunigung und/oder Geschwindigkeit definiert sein, wird mit den Werten der Parameter 32-84
Geschwindigkeit
Befehlsgruppe ABS
Querverweise VEL, ACC, POSR, HOME, DEFORIGIN, SETORIGIN
Parameter: 32-12
Syntax-Beispiel POSA 50000 /* Achse auf Position 50000 fahren */
Programmbeispiel POS_01.M
__ Befehlsreferenz __
Standardeinstellung entsprechen die BE der Anzahl der Quadcounts.
Negative oder Positive Software-Wegbegrenzung
Default-
und 32-85 Default-Beschleunigung gefahren.
Benutzerfaktor Zähler, 32-11 Benutzerfaktor Nenner
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 95
MCO 305 Befehlsreferenz
POSA CURVEPOS
Kurzinfo Slave auf die Kurvenposition fahren, die der Master-Position entspricht.
Syntax POSA CURVEPOS
Beschreibung Dieser Befehl wirkt wie ein POSA Befehl und bewegt den Slave zur entsprechenden
Position der Kurve, die durch die aktuelle Master-Position vorgegeben ist.
ACHTUNG!:
Wenn ein mit SETORIGIN gesetzter und aktiver Temporärnullpunkt existiert, wird die Positionsangabe auf diesen Nullpunkt bezogen.
ACHTUNG!:
Sollte beim Aufruf des POSA Befehls noch keine Beschleunigung und/oder Geschwindigkeit definiert sein, wird mit den Werten der Parameter 32-84
Geschwindigkeit
Befehlsgruppe ABS, CAM
Querverweise CURVEPOS, SETORIGIN
Syntax-Beispiel POSA CURVEPOS
// Slave auf die der Master-Position entsprechenden Kurvenposition fahren.
Beispiel Fixpunkte einer Kurve:
__ Befehlsreferenz __
und 32-85 Default-Beschleunigung gefahren.
Master Slave 0
500 700 1000
0 500 300 1200
Default-
Angenommen, die Istposition ist 800 (vertikale Linie).
Fall 1: Istposition Master ist 800 und Istposition Slave ist 200.
Fall 2: Istposition Master ist 800 und Istposition Slave ist 700.
POSR
Kurzinfo Relativ zur Istposition positionieren.
Syntax POSR d
Parameter d = Distanz zur Istposition in Benutzereinheiten [BE]; dies entspricht in der
Beschreibung Der POSR Befehl bewegt die Achse auf eine Position relativ zur Istposition.
ACHTUNG!:
Wenn beim Aufruf des POSA Befehls noch keine Beschleunigung und/oder Geschwindigkeit definiert ist, wird mit Werten der Parameter 32-84
Geschwindigkeit
Befehlsgruppe REL
Querverweise VEL, ACC, POSA; Parameter: 32-12, 32-11 Benutzerfaktor Zähler und Nenner
Syntax-Beispiel POSR 50000 /* Achse relativ um 50000 BE verfahren */
Programmbeispiel POS_01.M
POSA CURVEPOS fährt den Slave auf Position 450.
POSA CURVEPOS fährt den Slave ebenfalls auf Position 450.
Standardeinstellung der Anzahl Quadcounts.
Default-
und 32-85 Default-Beschleunigung gefahren.
96 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
__ Befehlsreferenz __
PRINT
Kurzinfo Ausgabe von Informationen.
Syntax PRINT i oder PRINT i;
Parameter i = Information, z.B. Variable, Text, CHR (n) getrennt durch Kommata.
Der Befehl CHR liefert zu einer Zahl das entsprechende ASCII-Zeichen.
Beschreibung Mit dem PRINT Befehl können Rechenergebnisse, Variableninhalte und Textinfor-
mationen über die RS485 Kommunikationsschnittstelle am angeschlossenen PC ausgegeben werden, wenn das APOSS-Programm geöffnet und die Kommunikation hergestellt ist.
Um mehrere Informationen mit einem einzigen PRINT Befehl auszugeben, müssen die einzelnen Elemente (Variablen, Texte etc.) durch ein Komma getrennt werden. Textinformationen müssen in Anführungszeichen gesetzt werden.
Nach jeder PRINT Anweisung wird normalerweise ein Zeilenvorschub erzeugt. Dieser automatische Zeilenvorschub lässt sich durch einen Strichpunkt (;) nach dem letzten Ausgabeelement unterdrücken.
Befehlsgruppe SYS
Querverweise INKEY
Syntax-Beispiel PRINT "Information ist wichtig !" /* Textinformation ausgeben */
PRINT "Information ist wichtig !"; /* Info ohne Zeilenumbruch ausgeben */ variable = 10
PRINT variable /* Variableninhalt ausgeben */ PRINT APOS /* Abgefragte Istposition ausgeben */ PRINT "Variable", variable,"Pos.:",APOS /* Gemischte Infos ausgeben */
Programmbeispiel Verwendung siehe in allen Programmbeispielen.
PRINT DEV
Beschreibung PRINT DEV kann benutzt werden um alle PRINT Befehle in einem Programm zu
Befehlsgruppe SYS
Querverweise PRINT, INKEY
Syntax-Beispiel PRINT DEV -1 "ab hier keine Ausgabe mehr"
Kurzinfo Stoppt die Ausgabe von Informationen.
Syntax PRINT DEV nn printlist
Parameter nn = Nummer der Ausgabeschnittstelle
0 = Standard Ausgabe
-1 = Keine Ausgabe nach dieser Zeile 1 = CAN-Bus 2 = seriell
printlist = normales Argument für einen PRINT Befehl
deaktivieren, ohne jeden einzelnen Befehl kommentieren zu müssen.
ACHTUNG!:
Mit der Anweisung [-1] wird die Standard-Ausgabeschnittstelle neu definiert und gilt dann sofort für alle PRINTs, die kein DEV enthalten.
… PRINT "normaler Print " … PRINT DEV 0 "jetzt wieder Info ausgeben"
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 97
MCO 305 Befehlsreferenz
PULSACC
Kurzinfo Beschleunigung für den virtuellen Master setzen.
Syntax PULSACC a
ACHTUNG!:
Der Änderung der Beschleunigung in PULSACC wirkt erst nach dem nächsten PULSVEL Befehl.
Parameter a = Beschleunigung in Hz/s
Beschreibung Mit PULSACC setzen Sie die Beschleunigung für den virtuellen Master (Drehgeber-
ausgang). Das virtuelle Master-Signal bildet ein Drehgebersignal nach. Zur Berechnung der
Pulsbeschleunigung PULSACC sind daher der Parameter Geschwindigkeit des Masters und die Rampenzeiten zu berücksichtigen.
Die erzeugten Signale werden auch gleichzeitig als Master-Eingang ausgewertet, so dass MAPOS, MIPOS etc. wie in einem externen Master funktionieren.
Das virtuelle Drehgebersignal kann nur bei Steuerungen mit Encoder-Ausgang aus­geben werden. Die Zuordnung des Encoder-Ausgangs ist hardware-abhängig. Durch die Konfiguration und Aktivierung des virtuellen Drehgebers (d.h. PULSACC ungleich 0), wird der entsprechende Encoder-Anschluss automatisch als Ausgang geschaltet.
PULSACC = 0 ist Bedingung für das Abschalten des Modus „virtueller Master”, vorausgesetzt es folgt ein PULSVEL Befehl.
Befehlsgruppe SYN
Querverweis PULSVEL
Beispiel Das virtuelle Master-Signal soll einem Drehgebersignal von 1024 Strichen/Umdr.
entsprechen. Die maximale Geschwindigkeit von 25 Drehgeber-Umdrehungen/s soll in 1 s erreicht werden.
__ Befehlsreferenz __
Drehgeberauflösung, die
PULSACC
'
[s]t
'
s1
/Umdr.tricheS1024Umdr/s25
[Hz](PULSVEL)windigkeitPulsegesch
Hz/s25600Striche/s²25600
98 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
MCO 305 Befehlsreferenz
PULSVEL
Kurzinfo Geschwindigkeit für den virtuellen Master setzen.
Syntax PULSVEL v
Parameter v = Geschwindigkeit in Pulsen pro Sekunde [Hz]
Beschreibung Mit PULSVEL setzen Sie die Geschwindigkeit für den virtuellen Master (Drehgeber-
ausgang). Das virtuelle Master-Signal bildet ein Drehgebersignal nach. Zur Berechnung der
Pulsgeschwindigkeit sind daher der Parameter Geschwindigkeit zu berücksichtigen.
Befehlsgruppe SYN
Querverweis PULSACC
Beispiel Das virtuelle Master-Signal soll einem Drehgebersignal von 2048 Strichen/Umdr.
bei einer Drehgeberdrehzahl von 50 Umdr./s entsprechen.
__ Befehlsreferenz __
Drehgeberauflösung und die Master-
nUmdrehunge
s
REPEAT .. UNTIL ..
r.triche/UmdDrehgebersPULSVEL
Hz102400Hz502048
Kurzinfo Bedingte Schleife mit Endkriterium (Wiederhole … bis Bedingung erfüllt)
Syntax REPEAT
UNTIL Bedingung
Parameter Bedingung = Abbruchkriterium
Beschreibung Mit einer REPEAT .. UNTIL Konstruktion kann man den dazwischen liegenden Pro-
grammbereich in Abhängigkeit von einem beliebigen Abbruchkriterium ein- oder mehr­fach wiederholen. Das Abbruchkriterium setzt sich aus einer oder mehreren Vergleichs­operationen zusammen und wird stets am Ende der Schleife überprüft. Solange das Abbruchkriterium nicht erfüllt ist, wird der Schleifeninhalt wiederholt abgearbeitet.
ACHTUNG!:
Da das Abbruchkriterium erst am Ende der Schleife überprüft wird, werden die Befehle innerhalb der Schleifenkonstruktion mindestens einmal ausgeführt
Um eine Endlosschleife zu vermeiden, müssen die innerhalb der Schleife abgearbeiteten Befehle direkt oder indirekt Einfluss auf das Ergebnis der Abbruchüberprüfung haben.
Befehlsgruppe CON
Querverweise LOOP, WHILE .. DO .. ENDWHILE
Syntax-Beispiel REPEAT /* Schleife starten */
Befehlszeile 1 Befehlszeile n UNTIL (A ! 1) /* Abbruchbedingung */
Programmbeispiel REPEA_01.M, DIM_01.M, ONINT_01.M, OUT_01.M, INKEY_01.M
MG.34.R1.03 – VLT® ist ein eingetragenes Warenzeichen von Danfoss. 99
MCO 305 Befehlsreferenz
__ Befehlsreferenz __
RSTORIGIN
Kurzinfo Temporären Nullpunkt löschen.
Syntax RSTORIGIN
Beschreibung Mit dem RSTORIGIN Befehl wird ein zuvor mit SETORIGIN gesetzter temporärer
Nullpunkt wieder gelöscht, und alle folgenden absoluten Positionierbefehle (POSA) beziehen sich wieder auf den Realnullpunkt.
Befehlsgruppe INI
Querverweise SETORIGIN, DEFORIGIN, POSA
Syntax-Beispiel RSTORIGIN /* temporären Nullpunkt zurücksetzen */
Programmbeispiel TORIG_01.M, OUT_01.M, VEL_01.M
SAVE part
Kurzinfo Arrays oder Parameter im EPROM sichern.
Syntax SAVE part
part = ARRAYS, AXPARS, GLBPARS oder USRPARS
Beschreibung Werden Array-Elemente oder Parameter geändert, während das Programm läuft,
können die geänderten Werte mit diesen Befehlen im EPROM gespeichert werden. SAVE GLBPARS Sichert die globalen Parameter der Gruppen 30-5* und 33-8*)
und die Anwendungsparameter (Gruppe 19-**) im EPROM. SAVE AXPARS Sichert alle anderen Achsenparameter. SAVE USRPARS Sichert nur Anwendungsparameter (Gruppe 19-**).
ACHTUNG!:
Das EPROM kann diesen Befehl nur bis zu 10000-mal ausführen.
Befehlsgruppe INI
Querverweise DELETE ARRAYS, SAVEPROM
100 MG.34.R1.03 – VLT
®
ist ein eingetragenes Warenzeichen von Danfoss.
Loading...