IF_ExternalPositionSource - WriteRefValues (Methode)
Typ |
Methode |
Verfügbar ab: |
V2.12.1.0 |
Dieses Kapitel enthält Informationen zu folgenden Aspekten:
Schreiben der Sollwerte für die konfigurierten Roboterkomponenten Kartesisch, Orientierung und Hilfsachsen.
Diese Methode wird von der Roboterbibliothek in jedem Sercos-Zyklus aufgerufen, wenn der Roboter aktiviert wurde.
Mit der Methode WriteRefValues(…) können die Sollwerte für die Roboterkomponenten Kartesisch, Orientierung und Hilfsachsen berechnet und an den Roboter übergeben werden.
Die übergebenen Sollwerte werden dann an die konfigurierte Transformation zur Berechnung der Achspositionen des Roboters weitergeleitet. Die berechneten Achspositionen wiederum werden im selben Sercos-Zyklus an die Achsen übergeben.
Sollwerte können nur für konfigurierte und unterstützte Roboterkomponenten übergeben werden. Wenn ein Wert für eine nicht konfigurierte Roboterkomponente an den Roboter übergeben wird, gibt der Roboter eine Diagnosemeldung aus.
Die Diagnoseausgänge können zur Weiterleitung einer Ausnahme von dieser Methode an den Roboter verwendet werden. Die weitergeleitete Ausnahme wird vom FB_Robot gemeldet und die Roboterachsen werden über einen ControllerStop gestoppt.
Ausgang |
Datentyp |
Beschreibung |
---|---|---|
q_etDiag |
Allgemeingültige, bibliotheksunabhängige Aussage zur Diagnose. Ein Wert ungleich ET_Diag.Ok entspricht einer Diagnosemeldung. |
|
q_etDiagExt |
POU-spezifischer Ausgang für die Diagnose. q_etDiag = ET_Diag.Ok -> Statusmeldung q_etDiag <> ET_Diag.Ok -> Diagnosemeldung |
|
q_sMsg |
STRING[80] |
Ereignisabhängige Meldung, die zusätzliche Informationen über den Diagnosezustand gibt. |
q_stRefPositionTCP |
Sollposition des TCP. |
|
q_stRefOrientationTCP |
Sollposition der Orientierungen. |
|
q_etRefArmConfiguration |
ET_ArmConfiguration |
Konfiguration des Referenzarms für den Roboter. |
q_alrRefPositionAuxAx |
ARRAY [ET_RobotComponent.AuxAx1... (ET_RobotComponent.AuxAxAll + Gc_udiMaxNumberOfAuxiliaryAxes)] OF LREAL |
Sollposition der Hilfsachsen. |
q_etDiag |
q_etDiagExt |
Enumerationswert |
Beschreibung |
---|---|---|---|
ExecutionAborted |
AuxiliaryAxisNotConfigured |
127 |
Die Hilfsachse ist nicht konfiguriert. |
ExecutionAborted |
ComponentNotConfigured |
198 |
Die Komponente ist nicht konfiguriert. |
ExecutionAborted |
ArmConfigurationInvalid |
200 |
Die Armkonfiguration ist ungültig. |
Enumerationsname: |
ArmConfigurationInvalid |
Enumerationswert: |
200 |
Beschreibung: |
Die Armkonfiguration ist ungültig. |
Problem |
Ursache |
Lösung |
---|---|---|
Das Schreiben der Sollwerte für die konfigurierten Roboterkomponenten war nicht erfolgreich. |
Ein Sollwert für die Armkonfiguration wurde an den Roboter übergeben. Der Roboter unterstützt die übergebene Armkonfiguration nicht bzw. unterstützt keine Armkonfiguration. |
Sicherstellen, dass kein Sollwert für die Armkonfiguration an den Roboter übergeben wird, wenn der Roboter keine Armkonfiguration unterstützt, bzw. dass ein gültiger Sollwert für die Armkonfiguration an den Roboter übergeben wird, wenn dieser eine Armkonfiguration unterstützt. |
Enumerationsname: |
AuxiliaryAxisNotConfigured |
Enumerationswert: |
127 |
Beschreibung: |
Die Hilfsachse ist nicht konfiguriert. |
Problem |
Ursache |
Lösung |
---|---|---|
Das Schreiben der Sollwerte für die konfigurierten Roboterkomponenten war nicht erfolgreich. |
Ein Sollwert für eine nicht konfigurierte Hilfsachse wurde an den Roboter übergeben. |
Sicherstellen, dass kein Sollwert für eine nicht konfigurierte Roboterkomponente an den Roboter übergeben wird. |
Enumerationsname: |
ComponentNotConfigured |
Enumerationswert: |
198 |
Beschreibung: |
Die Komponente ist nicht konfiguriert. |
Problem |
Ursache |
Lösung |
---|---|---|
Das Schreiben der Sollwerte für die konfigurierten Roboterkomponenten war nicht erfolgreich. |
Ein Sollwert für eine nicht konfigurierte kartesische Komponente oder Orientierung wurde an den Roboter übergeben. |
Sicherstellen, dass kein Sollwert für eine nicht konfigurierte Roboterkomponente an den Roboter übergeben wird. |
Deklaration:
METHOD WriteRefValues
VAR_OUTPUT
q_etDiag : GD.ET_Diag := GD.ET_Diag.Ok;
q_etDiagExt : ROB.ET_DiagExt := ROB.ET_DiagExt.Ok;
q_sMsg : STRING[80];
q_stRefPositionTCP : PDL.ST_Vector3D;
q_stRefOrientationTCP : PDL.ST_Vector3D;
q_etRefArmConfiguration : ROB.ET_ArmConfiguration;
q_alrRefPositionAuxAx : ARRAY [ROB.ET_RobotComponent.AuxAx1..
ROB.ET_RobotComponent.AuxAxAll +
ROB.Gc_udiMaxNumberOfAuxiliaryAxes)]
OF LREAL;
END_VAR
VAR
etAuxAx : ROB.ET_RobotComponent;
END_VAR
Implementierung:
// Implementation of the external position source.
// Handover the reference values of the configured robot components.
// Do not write outputs of not configured or not supported robot
components.
//********************************************************************
// Reference values of the Tool Center Point
//********************************************************************
// q_stRefPositionTCP.lrX := ...;
// q_stRefPositionTCP.lrY := ...;
// q_stRefPositionTCP.lrZ := ...;
//********************************************************************
// Reference values of the Tool Center Point
//********************************************************************
// q_stRefOrientationTCP.lrX := ...;
// q_stRefOrientationTCP.lrY := ...;
// q_stRefOrientationTCP.lrZ := ...;
//********************************************************************
// Reference value of the arm configuration
//********************************************************************
// q_etRefArmConfiguration := ...;
//********************************************************************
// Reference values of the auxiliary axes
//********************************************************************
// FOR etAuxAx := ROB.ET_RobotComponent.AuxAx1 TO
// (ROB.ET_RobotComponent.AuxAxAll + ROB.Gc_udiMaxNumberOfAuxiliaryAxes)
DO
//
// q_alrRefPositionAuxAx[etAuxAx] := ...;
//
// END_FOR