Typ: |
Funktion |
Verfügbar ab: |
V1.0.0.0 |
Versionen: |
Aktuelle Version |
Dieses Kapitel enthält Informationen zu folgenden Aspekten:
Für diese Funktion ist eine Kombination aus Kollisionsobjekten, -gruppen oder einheiten als Eingänge erforderlich.
Daraufhin gibt die Funktion Folgendes zurück:
Der Mindestabstand zwischen den Eingängen.
Wenn i_xEvaluateClosestPoints auf TRUE gesetzt wird, ermittelt die Funktion die nächstliegenden Punkte zwischen den zwei Eingängen.
Eingang |
Datentyp |
Beschreibung |
---|---|---|
i_ifQueryInterface1 |
Eine erste Objektimplementierung IF_CollisionQueryInterface. Hierbei kann es sich um ein Kollisionsobjekt, eine Kollisionsgruppe oder eine Kollisionseinheit handeln. |
|
i_ifQueryInterface2 |
Eine zweite Objektimplementierung IF_CollisionQueryInterface. Hierbei kann es sich um ein Kollisionsobjekt, eine Kollisionsgruppe oder eine Kollisionseinheit handeln. |
|
i_xEvaluateClosestPoints |
BOOL |
Wenn TRUE, dann werden die nächstliegenden Punkte zwischen den zwei Eingänge ermittelt. |
Ausgang |
Datentyp |
Beschreibung |
---|---|---|
q_xError |
BOOL |
Der Ausgang wird auf TRUE gesetzt, wenn bei der Ausführung ein Fehler erkannt wurde. |
q_etResult |
POU-spezifischer Ausgang der Diagnose. q_xError = FALSE -> Statusmeldung. q_xError = TRUE -> Diagnosemeldung. |
|
q_sResultMsg |
String |
Ereignisabhängige Meldung, die zusätzliche Informationen über den Diagnosezustand gibt. |
q_xCollision |
BOOL |
TRUE, wenn zwischen den zwei Eingängen eine Kollision erkannt wird. |
q_lrDistance |
LREAL |
Der Mindestabstand zwischen den zwei Eingängen. Er beträgt null, wenn q_xCollision = TRUE. |
q_udiCollisionGroupIndex1 |
UDINT |
Index der kollidierenden Gruppe von i_ifQueryInterface1. Dies ist ein Nullwert, wenn i_ifQueryInterface1 auf ein Kollisionsobjekt oder eine Kollisionsgruppe verweist. |
q_udiCollisionObjectIndex1 |
UDINT |
Index des nächstliegenden Objekts in der Gruppe mit dem Index q_udiCollisionGroupIndex1 von i_ifQueryInterface1. Dies ist ein Nullwert wenn i_ifQueryInterface1 auf ein Kollisionsobjekt verweist. |
q_udiCollisionGroupIndex2 |
UDINT |
Index der nächstliegenden Gruppe von i_ifQueryInterface2. Dies ist ein Nullwert, wenn i_ifQueryInterface2 auf ein Kollisionsobjekt oder eine Kollisionsgruppe verweist. |
q_udiCollisionObjectIndex2 |
UDINT |
Index des nächstliegenden Objekts in der Gruppe mit dem Index q_udiCollisionGroupIndex2 von i_ifQueryInterface2. Dies ist ein Nullwert, wenn i_ifQueryInterface2 auf ein Kollisionsobjekt verweist. |
q_stClosestPoint1 |
SE_Math.ST_Vector3D |
Nächstliegender Punkt für i_ifQueryInterface1. Dies wird nur ermittelt, wenn i_xEvaluateClosestPoint = TRUE. Andernfalls wird ein Nullvektor zurückgegeben. |
q_xError |
q_etResult |
Enumerationswert |
Beschreibung |
---|---|---|---|
FALSE |
0 |
Erfolg |
|
TRUE |
36 |
Keine Kollisionsgruppen aktiviert. |
|
TRUE |
11 |
Die bereitgestellte Schnittstelle ist ungültig (null). |
|
TRUE |
34 |
Die Kollisionseinheit wurde nicht aktualisiert. |
|
TRUE |
21 |
Eine Kollisionsgruppe wurde nicht aktualisiert. |
|
TRUE |
16 |
Der angegebene Typ des Kollisionsobjekts ist ungültig. |
|
TRUE |
12 |
Das Objekt ist nicht konfiguriert. |
|
TRUE |
52 |
Die bereitgestellte Schnittstelle für Kollisionsabfragen bezieht sich auf einen ungültigen Typ. |
Enumerationsname: |
NoCollisionGroupsEnabled |
Enumerationswert: |
36 |
Beschreibung: |
Keine Kollisionsgruppen aktiviert. |
Problem |
Ursache |
Lösung |
---|---|---|
Es kann keine Kollisionsabfrage durchgeführt werden. |
i_ifQueryInterface1 verweist auf eine Kollisionseinheit. Alle konfigurierten Kollisionsgruppen der betroffenen Einheit sind deaktiviert, d. h. alle relativen Elemente von raxEnableCollisionGroups werden auf FALSE gesetzt. |
Aktivieren Sie die Gruppen der Einheit, die auf Kollisionen abgefragt werden soll. |
i_ifQueryInterface2 verweist auf eine Kollisionseinheit. Alle konfigurierten Kollisionsgruppen der betroffenen Einheit sind deaktiviert, d. h. alle relativen Elemente von raxEnableCollisionGroups werden auf FALSE gesetzt. |
Aktivieren Sie die Gruppen der Einheit, die auf Kollisionen abgefragt werden soll. |
Enumerationsname: |
InterfaceInvalid |
Enumerationswert: |
11 |
Beschreibung: |
Die bereitgestellte Schnittstelle ist ungültig (null). |
Problem |
Ursache |
Lösung |
---|---|---|
Es kann keine Kollisionsabfrage durchgeführt werden. |
i_ifQueryInterface1 enthält eine ungültige Schnittstelle. |
Stellen Sie sicher, dass i_ifQueryInterface1 nicht null ist. |
i_ifQueryInterface2 enthält eine ungültige Schnittstelle. |
Stellen Sie sicher, dass i_ifQueryInterface2 nicht null ist. |
Enumerationsname: |
CollisionEntityNotUpdated |
Enumerationswert: |
34 |
Beschreibung: |
Die Kollisionseinheit wurde nicht aktualisiert. |
Problem |
Ursache |
Lösung |
---|---|---|
Es kann keine Kollisionsabfrage durchgeführt werden. |
i_ifQueryInterface1 verweist auf eine Kollisionseinheit, die nicht aktualisiert wurde, d. h. ihre Eigenschaft xUpdated = FALSE. |
Stellen Sie sicher, dass die Einheit aktualisiert wurde, bevor Sie sie als Eingang dieser Funktion bereitstellen. |
i_ifQueryInterface2 verweist auf eine Kollisionseinheit, die nicht aktualisiert wurde, d. h. ihre Eigenschaft xUpdated = FALSE. |
Stellen Sie sicher, dass die Einheit aktualisiert wurde, bevor Sie sie als Eingang dieser Funktion bereitstellen. |
Enumerationsname: |
CollisionGroupNotUpdated |
Enumerationswert: |
21 |
Beschreibung: |
Eine Kollisionsgruppe wurde nicht aktualisiert. |
Problem |
Ursache |
Lösung |
---|---|---|
Es kann keine Kollisionsabfrage durchgeführt werden. |
i_ifQueryInterface1 verweist auf eine Kollisionsgruppe, die nicht aktualisiert wurde, d. h. ihre Eigenschaft xUpdated = FALSE. |
Stellen Sie sicher, dass die Gruppe aktualisiert wurde, bevor Sie sie als Eingang dieser Funktion bereitstellen. |
i_ifQueryInterface2 verweist auf eine Kollisionsgruppe, die nicht aktualisiert wurde, d. h. ihre Eigenschaft xUpdated = FALSE. |
Stellen Sie sicher, dass die Gruppe aktualisiert wurde, bevor Sie sie als Eingang dieser Funktion bereitstellen. |
Enumerationsname: |
CollisionObjectTypeInvalid |
Enumerationswert: |
16 |
Beschreibung: |
Der angegebene Typ des Kollisionsobjekts ist ungültig. |
Problem |
Ursache |
Lösung |
---|---|---|
Es kann keine Kollisionsabfrage durchgeführt werden. |
i_ifQueryInterface1 verweist auf ein Kollisionsobjekt mit einem ungültigen Kollisionsobjekttyp. |
Stellen Sie sicher, dass i_ifQueryInterface1 auf ein Kollisionsobjekt mit einem gültigen Kollisionsobjekttyp verweist. Gültige Typen:
|
i_ifQueryInterface2 verweist auf ein Kollisionsobjekt mit einem ungültigen Kollisionsobjekttyp. |
Stellen Sie sicher, dass i_ifQueryInterface2 auf ein Kollisionsobjekt mit einem gültigen Kollisionsobjekttyp verweist. Gültige Typen:
|
Enumerationsname: |
CollisionObjectNotConfigured |
Enumerationswert: |
12 |
Beschreibung: |
Das Objekt ist nicht konfiguriert. |
Problem |
Ursache |
Lösung |
---|---|---|
Es kann keine Kollisionsabfrage durchgeführt werden. |
i_ifQueryInterface1 verweist auf ein Kollisionsobjekt, das nicht aktualisiert wurde, d. h. seine Eigenschaft xConfigured = FALSE. |
Stellen Sie sicher, dass ein Objekt aktualisiert wurde, bevor Sie es als Eingang dieser Funktion bereitstellen. |
i_ifQueryInterface2 verweist auf ein Kollisionsobjekt, das nicht aktualisiert wurde, d. h. seine Eigenschaft xConfigured = FALSE |
Stellen Sie sicher, dass ein Objekt aktualisiert wurde, bevor Sie es als Eingang dieser Funktion bereitstellen. |
Enumerationsname: |
CollisionQueryInterfaceTypeInvalid |
Enumerationswert: |
52 |
Beschreibung: |
Die bereitgestellte Schnittstelle für Kollisionsabfragen bezieht sich auf einen ungültigen Typ. |
Problem |
Ursache |
Lösung |
---|---|---|
Es kann keine Kollisionsabfrage durchgeführt werden. |
i_ifQueryInterface1 verweist auf einen ungültigen Objekttyp. |
Stellen Sie sicher, dass i_ifQueryInterface1 auf ein Kollisionsobjekt oder eine Kollisionsgruppe bzw. -einheit verweist. |
i_ifQueryInterface2 verweist auf einen ungültigen Objekttyp. |
Stellen Sie sicher, dass i_ifQueryInterface2 auf ein Kollisionsobjekt oder eine Kollisionsgruppe bzw. -einheit verweist. |
Beispiel für eine Abstandsabfrage zwischen i_ifQueryInterface1 (Objekt) und i_ifQueryInterface2 (Gruppe). In diesem Fall ist q_udiCollisionObjectIndex2 = 4, das entspricht dem Index des nächstliegenden Objekts in der Gruppe:
Beispiel für eine Abstandsabfrage zwischen i_ifQueryInterface1 (Einheit) und i_ifQueryInterface2 (Objekt). In diesem Fall ist q_udiCollisionGroupIndex1 = 1 und q_udiCollisionObjectIndex1 = 1, da sich das nächstliegende Objekt in der Einheit in Gruppe 1 befindet und Index 1 aufweist:
Beispiel für eine Abstandsabfrage zwischen i_ifQueryInterface1 (Einheit) und i_ifQueryInterface2 (Einheit). In diesem Fall ist q_udiCollisionGroupIndex1 = 2 und q_udiCollisionObjectIndex1 = 3 für die erste Einheit und q_udiCollisionGroupIndex2 = 1 und q_udiCollisionObjectIndex2 = 2 für die zweite Einheit.