Allgemeine Regeln für MC-Funktionsbausteine
Für alle MC-Funktionsbausteine gelten die nachfolgend beschriebenen Regeln. Diese stellen eine definierte Abarbeitung durch das SPS-Programm sicher.
Ausschließlichkeit der Ausgänge
Die Ausgänge „Busy“, „Done“, „Error“ und „CommandAborted“ schließen sich gegenseitig aus, d. h. an einem Funktionsbaustein kann zur gleichen Zeit nur einer dieser Ausgänge TRUE sein. Sobald der Eingang „Execute“ TRUE wird, muss einer der Ausgänge TRUE werden. Zur gleichen Zeit kann dabei jedoch nur einer der Ausgänge „Active“, „Done“, „Error“ und „CommandAborted“ TRUE sein.
Eine Ausnahme ist das Bewegungskommando MC_Stop. Dieses setzt den Ausgang „Done“ auf TRUE, sobald die Achse gestoppt ist. Dennoch bleiben auch die Ausgänge „Busy“ und „Active“ TRUE, da die Achse verriegelt wird. Erst nachdem der Eingang „Execute“ auf FALSE gesetzt wird, wird die Achse entriegelt und die Ausgänge „Busy“ sowie „Active“ werden auf FALSE gesetzt.
Ausgangszustand
Wenn der Funktionsbaustein nicht aktiv ist, werden die Ausgänge „Done“, „Error“, „ErrorID“ und „CommandAborted“ mit einer fallenden Flanke am Eingang „Execute“ zurückgesetzt. Die fallende Flanke am Eingang „Execute“ beeinflusst jedoch nicht die Kommandoausführung.
Wenn der Eingang „Execute“ bereits während der Kommandoausführung zurückgesetzt wird, ist sichergestellt, dass einer der Ausgänge am Ende des Kommandos für einen SPS-Zyklus gesetzt wird. Erst danach werden die Ausgänge zurückgesetzt.
Wenn der Eingang „Execute“ während der Ausführung eines Kommandos mehrfach getriggert wird, gibt der Funktionsbaustein keinerlei Rückmeldung, führt aber auch kein weiteres Kommando aus.
Eingangsparameter
Die Eingangsparameter werden mit steigender Flanke übernommen. Um die Parameter zu ändern, muss das Kommando neu getriggert werden, nachdem es beendet wurde. Wenn ein Eingangsparameter nicht an den Funktionsbaustein übergeben wird, bleibt der zuletzt an diesen Baustein übergebene Wert gültig. Beim ersten Aufruf sind sinnvoller Werte zu parametrieren.
Position und Distanz
Der Eingang „Position“ bezeichnet einen definierten Wert innerhalb eines Koordinatensystems. Der Eingang „Distance“ ist dagegen ein relatives Maß, also der Abstand zweier Positionen. Sowohl „Position“, als auch „Distance“ werden in technischen Einheiten, z. B. mm oder °, entsprechend der Skalierung der Achse angegeben.
Dynamikparameter
Die Dynamikparameter für Move-Funktionen werden in technischen Einheiten mit der Zeitbasis Sekunde angegeben. Ist eine Achse beispielsweise in Millimetern skaliert, haben die Parameter folgende Einheiten:
Velocity | mm/s |
Acceleration | mm/s2 |
Deceleration | mm/s2 |
Fehlerbehandlung
Alle Funktionsbausteine haben zwei Fehlerausgänge, um Fehler während der Kommandoausführung anzuzeigen. Der Ausgang „Error“ zeigt den Fehler an und der Ausgang „ErrorID“ gibt eine ergänzende Fehlernummer aus. Die Ausgänge „Done“ und „InVelocity“ bezeichnen eine erfolgreiche Kommandoausführung und werden nicht gesetzt, wenn der Ausgang „Error“ TRUE ist.
Am Ausgang der Funktionsbausteine werden Fehler unterschiedlichen Typs signalisiert. Der Fehlertyp wird nicht explizit angegeben, sondern hängt von der Fehlernummer ab, die systemweit eindeutig vergeben ist.
Fehlertypen
- Funktionsbausteinfehler sind Fehler, die ausschließlich den Funktionsbaustein und nicht die Achse betreffen (z. B. fehlerhafte Parametrierung). Funktionsbausteinfehler müssen nicht explizit zurückgesetzt werden, sondern werden selbständig zurückgesetzt, wenn der Eingang „Execute“ zurückgesetzt wird.
- Kommunikationsfehler (z. B. kann der Funktionsbaustein die Achse nicht adressieren) deuten oft auf eine fehlerhafte Konfiguration oder Parametrierung hin. Ein Reset ist nicht möglich. Der Funktionsbaustein kann neu getriggert werden, nachdem die Konfiguration korrigiert wurde.
- Antriebsfehler (Regelgerät) können in vielen Fällen durch das Bewegungskommando MC_Reset zurückgesetzt werden.
Verhalten des Done-Ausgangs
Der Ausgang „Done“ (oder auch alternativ „InVelocity“) wird gesetzt, wenn ein Kommando erfolgreich ausgeführt wurde.
Verhalten des CommandAborted-Ausgangs
Der Ausgang „CommandAborted“ wird gesetzt, wenn ein Kommando unterbrochen wird.
Verhalten des Busy-Ausgangs
Der Ausgang „Busy“ zeigt an, dass der Funktionsbaustein aktiv ist. Der Baustein kann nur dann mit einer steigenden Flanke am Eingang „Execute“ getriggert werden, wenn der Ausgang „Busy“ FALSE ist. „Busy“ wird sofort mit der steigenden Flanke am Eingang „Execute“ gesetzt und erst zurückgesetzt, wenn das Kommando erfolgreich oder auch nicht erfolgreich beendet wurde. Solange der Ausgang „Busy“ TRUE ist, muss der Funktionsbaustein zyklisch aufgerufen werden, um das Kommando ausführen zu können.
Verhalten des Active-Ausgangs
Der Ausgang „Active“ eines Bausteins zeigt an, dass der Baustein die Kontrolle über die Achse hat.
Options-Eingang
Viele Funktionsbausteine haben einen Eingang „Options“, der in einer Datenstruktur zusätzliche selten benötigte Optionen enthält. Um die Grundfunktion des Funktionsbausteins auszuführen, werden die Optionen oft nicht benötigt, sodass der Eingang unbelegt bleiben kann. Nur wenn in der Dokumentation ausdrücklich auf bestimmte Optionen hingewiesen wird, muss die Options-Datenstruktur vom Anwender belegt werden.