Allgemeine Regeln für Bewegungssteuerungs-Funktionsblöcke

Die allgemeinen Regeln für die Anweisungen zur Achssteuerungskonfig. des Micro800-Controllers folgen den Spezifikationen der PLCopen-Bewegungssteuerung.
Allgemeine Regeln für Bewegungssteuerungs-Funktionsblöcke
Regel gültig für
Regel
Eingabeparameter
Mit Execute: Die Parameter werden mit der Anstiegsflanke der Ausführungseingabe verwendet. Ändern Sie zum Modifizieren eines Parameters den Eingabeparameter und lösen Sie die Bewegung erneut aus.
Wenn eine Instanz eines Funktionsblocks einen neuen Ausführungsbefehl empfängt, bevor sie abgeschlossen wird (als eine Reihe von Befehlen in derselben Instanz), wird der neue Ausführungsbefehl ignoriert und die zuvor ausgegebene Anweisung setzt die Ausführung fort.
Mit Enable: Die Parameter werden mit der Anstiegsflanke der Aktivierungseingabe verwendet und können fortlaufend geändert werden.
Fehlende Eingabeparameter
Fehlende Eingaben werden während der Kompilierung der Benutzeranwendung erfasst. Auf Controller-Ebene werden keine Fehler bezüglich fehlender Eingaben behandelt.
Überschreiten von Anwendungsgrenzen durch Eingaben
Wenn ein Funktionsblock mit Parametern angefordert wird und dies zu einer Verletzung der Anwendungsgrenzen führt, generiert die Instanz des Funktionsblocks einen Fehler. In diesem Fall wird die Fehlerausgabe mit „On“ (Ein) gekennzeichnet und die Ausgabefehler-ID gibt die entsprechenden Fehlerinformationen an. In den meisten Fällen bleibt der Controller im Betriebsmodus, und es wird kein Bewegungsfehler als schwerwiegender Controller-Fehler gemeldet.
Vorzeichenregeln für Eingaben
Die Eingaben „Beschleunigung“ (Acceleration), „Verzögerung“ (Deceleration) und „Stoß“ (Jerk) haben immer positive Werte. Die Eingaben „Geschwindigkeit“ (Velocity), „Position“ und „Abstand“ (Distance) können sowohl positive als auch negative Werte haben.
Position im Vergleich zu Abstand
Die Position ist ein in einem Koordinatensystem definierter Wert. Der Abstand ist ein relativer Messwert im Zusammenhang mit technischen Einheiten. Der Abstand ist die Differenz zwischen zwei Positionen.
Positions-/Abstandseingabe
In Micro800-Controllern werden nur lineare Bewegungen unterstützt. Beim Funktionsblock „MC_MoveAbsolute“ ist die Positionseingabe die absolute Position, die an die Achse ausgegeben wird. Bei MC_MoveRelative ist die Abstandseingabe die relative Position (eine aktuelle Achsenposition von 0 vorausgesetzt) zur aktuellen Position.
Geschwindigkeitseingabe
„Geschwindigkeit“ kann ein Wert mit Vorzeichen sein, aber auch die Richtungseingabe dazu verwenden, um auch das Vorzeichen der Geschwindigkeit zu definieren (negative Geschwindigkeit x negative Richtung = positive Geschwindigkeit). Der E-Parameter „Direction“ (Richtung) bezieht sich aus Kompatibilitätsgründen auf die Ein- und Ausgabe der Geschwindigkeit.
Richtungseingabe
Bei Abstandsbewegungen (Position) mit definierter Zielposition (absolut oder relativ) ist die Bewegungsrichtung eindeutig. Die Richtungseingabe für die Abstandsbewegung wird ignoriert.
Bei Geschwindigkeitsbewegungen kann der Richtungseingabewert 1 (positive Richtung), 0 (aktuelle Richtung) oder -1 (negative Richtung) sein. Bei anderen Werten wird nur das jeweilige Vorzeichen berücksichtigt. Beispiel: -3 kennzeichnet eine negative Richtung, +2 kennzeichnet eine positive Richtung usw.
Bei Geschwindigkeitsbewegungen (MC_MoveVelocity) bestimmt das Vorzeichen von (Geschwindigkeit x Richtung) die tatsächliche Bewegungsrichtung, wenn der Wert nicht 0 ist. Beispiel: Wenn Geschwindigkeit x Richtung = +300, ist die Richtung positiv.
Beschleunigungs-, Verzögerungs- und Stoßeingaben
  • Verzögerungs- und Beschleunigungseingaben müssen einen positiven Wert haben. Wenn die Verzögerung oder Beschleunigung einen nicht-positiven Wert hat, meldet der Funktionsblock einen Fehler (Fehler-ID: MC_FB_ERR_RANGE).
  • Die Stoßeingabe muss einen nicht-negativen Wert haben. Wenn der Stoß einen negativen Wert hat, meldet der Funktionsblock einen Fehler (Fehler-ID: MC_FB_ERR_RANGE).
  • Wenn „Maximaler Stoß“ mit null konfiguriert wurde, müssen alle Stoß-Parameter für den Bewegungssteuerungs-Funktionsblock einschließlich der Stoßeinstellung für „MC_Stop“ mit 0 konfiguriert sein. Andernfalls meldet der Funktionsblock einen Fehler (Fehler-ID: MC_FB_ERR_RANGE).
  • Wenn „Stoß“ auf einen Nicht-Nullwert gesetzt wurde, wird das S-Kurvenprofil generiert. Ist „Stoß“ auf 0 gesetzt, wird das trapezförmige Profil generiert.
  • Die Konfiguration für die Stoßausgangsstellung ist nicht auf die Konfiguration für maximalen Stoß beschränkt.
  • Falls der Bewegungsmotor das von den dynamischen Eingabeparametern vorgeschriebene Bewegungsprofil nicht generieren kann, meldet der Funktionsblock einen Fehler (Fehler-ID: MC_FB_ERR_PROFILE).
Ausgabeausschließlichkeit
Mit Execute: Wenn der Ausführungsparameter TRUE ist, muss eine der Ausgaben „Beschäftigt“ (Busy), „Fertig“ (Done), „Fehler“ (Error) oder „Befehl abgebrochen“ (CommandAborted) ebenfalls TRUE sein. In einem Funktionsblock kann jeweils nur eine Ausgabe den Wert TRUE haben.
Es wird jeweils nur eine der Ausgaben „Aktiv“ (Active), „Fehler“ (Error), „Fertig“ (Done) und „Befehl abgebrochen“ (CommandAborted) festgelegt.
Mit Enable: In einem Funktionsblock mit gültigen oder fehlerhaften Ausgaben kann jeweils nur eine Ausgabe den Wert TRUE haben.
Ausgabezustand
Mit Execute: Die Ausgaben „Fertig“ (Done), „Fehler“ (Error), „Fehler-ID“ (ErrorID) und „Befehl abgebrochen“ (CommandAborted) werden mit der Abstiegsflanke der Anweisung „Ausführen“ zurückgesetzt. Die Abstiegsflanke von „Ausführen“ stoppt jedoch nicht die Ausführung des eigentlichen Funktionsblock oder wirkt sich darauf aus. Selbst bei Zurücksetzen von „Ausführen“ vor Abschluss des Funktionsblocks sind die entsprechenden Ausgaben für mindestens einen Zyklus festgelegt.
Wenn eine Instanz eines Funktionsblocks einen neuen Ausführungsbefehl empfängt, bevor sie abgeschlossen wird (als eine Reihe von Befehlen in derselben Instanz), wird der neue Ausführungsbefehl ignoriert und die zuvor ausgegebene Anweisung setzt die Ausführung fort.
Mit Enable: Die Ausgaben „Gültig“ (Valid), „Aktiviert“ (Enabled), „Beschäftigt“ (Busy), „Fehler“ (Error) und „Fehler-ID“ (ErrorID) werden so schnell wie möglich mit der Abstiegsflanke von „Aktivieren“ (Enable) zurückgesetzt.
Verhalten der Ausgabe „Fertig“ (Done)
Die Ausgabe „Fertig“ (Done) wird gesetzt, wenn die angeforderte Aktion erfolgreich abgeschlossen wurde.
Wenn mehrere Funktionsblöcke nacheinander in derselben Achse ausgeführt werden, gilt Folgendes:
Wenn eine Bewegung einer Achse durch eine andere Bewegung derselben Achse unterbrochen wird, ohne das finale Ziel erreicht zu haben, wird im ersten Funktionsblock nicht die Ausgabe „Fertig“ (Done) gesetzt.
Verhalten der Ausgabe „Beschäftigt“ (Busy)
Jeder Funktionsblock kann die Ausgabe „Beschäftigt“ (Busy) haben. Sie zeigt an, dass der Funktionsblock entweder noch nicht beendet ist (bei Funktionsblöcken mit Ausführungseingabe) oder nicht ausgeführt wird und neue Ausgabewerte erwartet werden können (bei Aktivierungseingabe).
„Beschäftigt“ wird an die Anstiegsflanke von „Ausführen“ gesetzt und zurückgesetzt, wenn eine der Ausgaben „Fertig“ (Done), „Abgebrochen“ (Aborted) oder „Fehler“ (Error) gesetzt wird. Dieser Funktionsblock sollte mindestens so lange in der aktiven Schleife des Anwendungsprogramms belassen werden, wie für „Beschäftigt“ der Wert TRUE zutrifft, da sich die Ausgaben möglicherweise noch ändern.
Beschäftigte Funktionsblöcke mit derselben Instanz können erst ausgeführt werden, wenn diese nicht mehr beschäftigt ist. Funktionsblöcke mit unterschiedlichen Instanzen können den Funktionsblock überschreiben, der derzeit ausgeführt wird.
Verhalten der Ausgabe „CommandAborted“ (Befehl abgebrochen)
Die Ausgabe „Befehl abgebrochen“ (CommandAborted) wird gesetzt, wenn eine angeforderte Bewegung durch einen anderen Bewegungsbefehl unterbrochen wird.
Das Rücksetzverhalten von Befehl abgebrochen (CommandAborted) ist vergleichbar mit dem der Ausgabe „Fertig“ (Done). Wenn Befehl abgebrochen (CommandAborted) auftritt, werden andere Ausgabesignale wie z.B. „In Umlaufgeschwindigkeit“ (InVelocity) zurückgesetzt.
Ausgabe „Aktiv“ (Active)
Die Ausgabe „Aktiv“ (Active) ist bei gepufferten Funktionsblöcken erforderlich und wird gesetzt, sobald der Funktionsblock die Bewegungssteuerung der entsprechenden Achse übernimmt.
Im ungepufferten Modus können die Ausgaben „Aktiv“ (Active) und „Beschäftigt“ (Busy) denselben Wert haben.
Status „Aktivieren“ (Enable) und „Gültig“ (Valid)
Die Eingabe „Aktivieren“ (Enable) ist mit der Ausgabe „Gültig“ (Valid) verbunden. „Aktivieren“ (Enable) bezieht sich auf die jeweilige Ebene und „Gültig“ (Valid) zeigt an, dass eine gültige Reihe von Ausgaben im Funktionsblock zur Verfügung steht.
Die Ausgabe „Gültig“ (Valid) hat den Wert TRUE, solange ein gültiger Ausgabewert zur Verfügung steht und die Eingabe „Aktivieren“ (Enable) ebenfalls den Wert TRUE hat. Der relevante Ausgabewert kann aktualisiert werden, solange die Eingabe „Aktivieren“ (Enable) den Wert TRUE hat.
Liegt ein Funktionsblockfehler vor, ist die Ausgabe nicht gültig („Gültig“ wird auf FALSE gesetzt). Wenn die Fehlerbedingung verschwindet, werden die Werte wieder angezeigt und die Ausgabe „Gültig“ (Valid) wird erneut gesetzt.
Behandlung von Ausgabefehlern
Ausgaben zum Definieren von Fehlern:
Alle Blöcke haben folgende zwei Ausgaben zu Fehlern, die während der Ausführung auftreten können:
  • Fehler: Anstiegsflanke von „Fehler“ meldet, dass während der Ausführung des Funktionsblocks ein Fehler aufgetreten ist.
  • ErrorID: Fehlernummer.
Die Ausgaben „Fertig“ (Done) und „In Umlaufgeschwindigkeit“ (InVelocity) betreffen einen erfolgreichen Abschluss und schließen somit die Ausgabe „Fehler“ (Error) aus.
Instanzfehler führen nicht immer zu einem Achsenfehler (wodurch für die Achse ein Fehler-Stopp ausgelöst wird).
So werden die Fehlerausgaben zurückgesetzt:
  • Die Fehlerausgaben der relevanten Funktionsblöcke werden mit der fallenden Flanke von „Ausführen“ und „Aktivieren“ zurückgesetzt.
  • Die Fehlerausgaben eines Funktionsblocks mit „Aktiveren“ können während des Betriebs zurückgesetzt werden (ohne Zurücksetzen von „Aktivieren“).
Fehlertypen:
  • Funktionsblocklogik (beispielsweise Parameter außerhalb des Bereichs, Zustand „Versuchte Maschinenverletzung“ usw.)
  • HW- oder SW-Grenze
  • Mechanismus/Motor
  • Laufwerk
Benennungskonventionen ENUM-Typen
Aufgrund der Benennungseinschränkungen im IEC-Standard zur Eindeutigkeit von Variablennamen wird für die ENUMs der „mc“-Verweis zum PLCopen-Bewegungssteuerungs-Namespace verwendet.
Auf diese Weise wird ein Konflikt durch die Verwendung der ENUM-Typen „positiv“ und „negativ“ beispielsweise für Variablen mit diesem Namen im restlichen Verlauf des Projekts vermeiden, da sie „mcPositive“ und „mcNegative“ benannt werden.
Rückmeldung geben
Haben Sie Fragen oder Feedback zu dieser Dokumentation? Bitte geben Sie hier Ihr Feedback ab.
Normal