Skip to main content

Visualisierungselement: Path3D

Anmerkung

Das Element funktioniert mit der Darstellungsvariante CODESYS HMI nicht.

Symbol:

visu_img_path3d.png

Kategorie: Spezielle Steuerelemente

Das Visualisierungselement Path3D stellt den Verlauf von zwei unabhängigen Datensätzen grafisch als eine 3D-Bahn dar. Es ist speziell für eine Verwendung mit CNC ausgelegt, um den Bahnverlauf eines Maschinenwerkzeugs oder eines Roboters darzustellen. Dabei wird die programmierte Bahn (Pfad) und die tatsächlich gefahrene Bahn (Spur) visualisiert.

Obwohl das Visualisierungselement für die Verwendung in CODESYS SoftMotion CNC ausgelegt ist, kann damit auch ein beliebig anderer Datensatz angezeigt werden. In diesem Fall muss die Applikation die Bahndaten zur Verfügung stellen.

Wenn das Elemente zusammen mitCODESYS SoftMotion CNC verwendet wird, dann helfen Funktionsbausteine der Bibliothek SM3_CNC_Visu, die Daten der Bahn und Spur zu Erzeugen. Das Beispielprojekt CNC_File_3DPath, das im Installationsverzeichnis von CODESYS abgelegt ist, verwendet diese Funktionsbausteine.

  • SMC_PathCopier

  • SMC_PathCopierCompleteQueue

  • SMC_PathCopierFile

  • SMC_PositionTracker

Eine Beschreibung der Funktionsbausteine finden Sie im Bibliotheksverwalter in der Bibliothek SM3_CNC_Visu.

Hinweis

0_Sample_ProjectBeispielprojekt: "3D Path Generator"

0_Sample_Project Projekt CNC_File_3DPath (mitgeliefert im CODESYS-Installationsverzeichnis)

Elementeigenschaften

Sind alle Elementeigenschaften verfügbar?

Nur wenn Sie in der Eigenschaften die Option Advanced oder den Filter Alle Kategorien aktiviert haben, stehen Ihnen alle Eigenschaften zur Verfügung.

Elementname

Zum Beispiel GenElemInst_1

Tipp

Durch die Vergabe von eigenen Elementnamen werden die Elemente in der Elementliste schnell gefunden.

Elementtyp

Path3D

Position

Die Position definiert die Lage und Größe des Elements im Fenster der Visualisierung. Sie bezieht sich auf ein kartesisches Koordinatensystem. Der Ursprung liegt in der oberen linken Fensterecke. Die positive horizontale X-Achse verläuft nach rechts. Die positive vertikale Y-Achse verläuft nach unten.

X

X-Koordinate (in Pixel) der linken oberen Ecke des Elements

Beispiel: 10

Y

Y-Koordinate (in Pixel) der linken oberen Ecke des Elements

Beispiel: 10

Breite

Angabe in Pixel

Beispiel: 150

Höhe

Angabe in Pixel

Beispiel: 30

Tipp

Sie können die Werte ändern, indem Sie im Editor die Symbole _visu_icon_position_element.png an eine andere Stelle ziehen.

Bahnbeschreibung

Bahndaten (VisuStruct3DTrack)

Variable vom Typ VisuStruct3DTrack, die im IEC-Code deklariert ist

Beispiel: PLC_PRG.pc.vs3dt.

Eine Beschreibung der Struktur finden Sie im Bibliotheksverwalter in der Bibliothek VisuElem3DPath.library.

Die Datenstruktur beschreibt eine Bahn oder Spur durch eine bestimmte Anzahl von Punkten. Die Punkte werden durch die Applikation bestimmt und gepuffert. Die Spur zeigt typischerweise die letzten n Positionen an, so dass immer nur ein bestimmter Teil von ihnen dargestellt wird.

VisuStruct3DTrack.pProjection ist eine Variable, die durch das Visualisierungselement gesetzt wird und Informationen über die Bahn-/Spurprojektion enthält. Sie kann von der Applikation (nur) gelesen werden. Außerdem können die Methoden Projection.Apply oder .ApplyV verwendet werden, um zu sehen, ob die transformierte Position innerhalb oder außerhalb des Visualisierungsanzeigebereichs liegt, der durch Projection.ElementRect definiert ist.

Bahnfarbe

Farbe der gezeichneten Bahn

Bahnliniendicke

Bahnliniendicke in Pixel

Beispiel: 2

Randpunktmarkierung

. Darstellung der Punkte zwischen zwei aufeinanderfolgenden Objekten in der Bahn
  • Endpunkte werden nicht markiert

  • Endpunkte werden mit einem Kreis markiert

  • Endpunkte werden mit einem Kreuz markiert

  • Endpunkte werden mit einem Pluszeichen markiert

Spurbeschreibung

Die Spurdaten sind genauso strukturiert wie die Bahndaten: VisuStruct3DTrack

Spurdaten(VisuStruct3DTrack)

Variable vom Typ VisuStruct3DTrack, die im IEC-Code deklariert ist

Beispiel: PLC_PRG.pc.vs3dt

Eine Beschreibung der Struktur finden Sie im Bibliotheksverwalter in der Bibliothek VisuElem3DPath.library.

Spurfarbe

Farbe der gezeichneten Spur

Spurliniendicke

Spurliniendicke in Pixel

Beispiel: 2

Kamerasteuerung

Die Kameraposition für den 3D-Modus wird mit einer Referenz auf eine externe Datenstruktur gesteuert.

Diese Struktur erlaubt folgende Operationen:

  • Verschieben nach Links/Rechts/Nach oben/Nach unten

  • Drehen um X/Y/Z Achse

  • Rücksetzen der Ansicht auf X/Y-, Y/Z- oder Z/X-Ebene, so dass die Bahn und die Spur vollständig sichtbar ist

Steuerungsdatenstruktur (VisuStruct3DControl)

Variable vom Typ VisuStruct3DControl, die im IEC-Code deklariert ist

Beispiel: PLC_PRG.pc.vs3dc

Die Werte können über die Applikation selbst oder über das Visualisierungselement ControlPanel gesetzt werden. Die Bibliothek VisuElem3DPath enthält fertig benutzbare Visualisierungsframes, die eine mögliche Benutzerschnittstelle für diese Daten zur Verfügung stellt.

Eine Beschreibung der Struktur finden Sie im Bibliotheksverwalter in der Bibliothek VisuElem3DPath.

Eingabekonfiguration

Die Eigenschaften enthalten die Konfigurationen für die Benutzereingabe bei Maus- oder Tastaturbedienung. Eine Benutzereingabe definiert ein Ereignis und eine oder mehrere Aktionen, die bei Eintreten des Ereignisses ausgeführt werden.

Tipp

Die Schaltfläche Konfigurieren öffnet den Dialog Eingabekonfiguration. Dort können Sie eine Benutzereingabe erstellen oder bearbeiten.

Unter den Ereignissen werden bereits konfigurierte Benutzereingaben aufgelistet. Sie enthalten jeweils die Aktion, die ausgelöst wird, und in knapper Form deren Einstellung.

Beispiel: ST-Code ausführen: _visu_icon_action.png PLC_PRG.i_x := 0;

OnDialogClosed

Eingabeereignis: Der Benutzer schließt einen Dialog.

OnMouseClick

Eingabeereignis: Der Benutzer führt im Elementbereich einen vollständigen Mausklick aus. Er drückt die Maustaste und gibt sie wieder frei.

OnMouseDown

Eingabeereignis: Der Benutzer drückt die Maustaste.

OnMouseEnter

Eingabeereignis: Der Benutzer zieht den Mauszeiger auf das Element

OnMouseLeave

Eingabeereignis: Der Benutzer zieht den Mauszeiger von einem Element weg

OnMouseMove

Eingabeereignis: Der Benutzer bewegt den Mauszeiger innerhalb des Elementbereichs

OnMouseUp

. Eingabeereignisse:
  • Der Benutzer gibt die Maustaste innerhalb des Elementbereichs frei. Dabei ist es unerheblich, ob der Benutzer vorher innerhalb oder außerhalb des Elementbereichs die Maustaste gedrückt hat.

  • Der Benutzer drückt die Maustaste innerhalb des Elementbereichs, verlässt den Elementbereich und gibt dann die Maustaste frei.

Anmerkung

Dieses CODESYS-spezifische Auslöseverhalten stellt bei Tastelementen das Beenden von Aktionen sicher. Ein Tastelement startet bei OnMouseDown eine Aktion, die bei OnMouseUp beendet wird.

Beispielsituation: Ein Visualisierungsbenutzer drückt die Maustaste innerhalb des Elementbereichs des Tastelements und verrutscht dann die Cursorposition so, dass diese außerhalb des Elementbereichs liegt. Die Aktion wird trotzdem beendet, da OnMouseUp auslöst.

OnValueChanged

Ereignis, das durch eine Wertänderung Folgeaktionen auslöst

Welche Folgeaktionen ausgelöst werden, wird im Dialog Eingabekonfiguration konfiguriert.

Die festgelegten Folgeaktionen und die jeweils dazugehörige Konfiguration werden unterhalb der Elementeigenschaft angezeigt.

Das Ereignis OnValueChanged kann durch das Compiler-Define VISU_NO_VALUECHANGED im Eigenschaftendialog der Applikation deaktiviert werden.

Tasten

Bei Auftreten eines Mausklickereignisses wird in der Applikation die unter Variable festgelegte Variable beschrieben. Die Codierung hängt von den Optionen FALSE Tasten und Beim Betreten tasten, falls Maus gefangen ab.

Variable

Voraussetzung: Die Option FALSE Tasten ist nicht aktiviert.

Variable (BOOL) für das Mausklickereignis

TRUE: Es liegt ein Mausklickereignis an. Es dauert solange ein Benutzer die Maustaste drückt, während er mit dem Mauszeiger das Element fokussiert. Es endet, wenn er die Taste freigibt.

FALSE: Es liegt kein Mausklickereignis an.

Beispiel: PLC_PRG.bIsTapped

FALSE Tasten

standard icon: Das Mausklickereignis führt zum komplementären Wert in Variable.

TRUE: Es liegt kein Mausklickereignis an.

FALSE: Solange das Mausklickereignis dauert.

Beim Betreten tasten, falls Maus gefangen

standard icon: Bei der Benutzereingabe wird zusätzlich berücksichtigt, ob bei gedrückter Maustaste der Mauszeiger innerhalb oder außerhalb des Elementbereichs gezogen wird.

TRUE: Solange das Mausklickereignis dauert und dabei der Mauszeiger innerhalb des Elementbereichs bewegt wird.

FALSE: Es liegt kein Mausklickereignis an. Oder aber der Benutzer bewegt den Mauszeiger bei gedrückter Maustaste außerhalb des Elementbereichs.

Sobald der Benutzer den Mauszeiger in den Elementbereich zurückbewegt, ist der Wert wieder TRUE. Man sagt, die „Maus ist gefangen“.

Umschalten

Bei Auftreten eines Mausklickereignisses wird die Variable gesetzt und bei Beenden des Mausklickereignisses zurückgesetzt.

Variable

Variable (BOOL) für das Umschalten beim Beenden des Mausklickereignisses

Das ist, wenn der Benutzer die Maustaste freigibt und dabei der Mauszeiger im Elementbereich ist. Wenn der Benutzer die Maustaste freigibt und dabei der Mauszeiger außerhalb des Elementbereich ist, liegt kein Beenden des Mausklickereignisses vor und der Wert wird nicht umgeschaltet.

Tipp

Der Benutzer kann damit eine begonnene Umschalteingabe abbrechen, indem er den Mauszeiger aus den Elementbereich zieht.

Umschalten beim Loslassen, falls Maus gefangen

standard icon: Der Wert schaltet um, unabhängig davon, wo der Mauszeiger beim Freigeben der Maustaste ist. Man sagt, die „Maus ist gefangen“.

Tastaturkürzel

Tastaturkürzel auf dem Element, um bestimmte Eingabeaktionen auszulösen

Bei Eintreten des Tastaturkürzel-Ereignisses werden die unter der Eigenschaft Ereignis(se) angegebenen Eingabeaktionen ausgelöst. Dabei ist nicht die Eingabeaktion selbst angegeben, sondern das Mauseingabeereignis, das auch zu dieser Eingabeaktion führt.

Taste

Taste, bei deren Drücken eine Eingabeaktion folgt.

Beispiel: T

Die folgenden Eigenschaften erscheinen, wenn eine Taste ausgewählt wird.

Ereignis(se)

  • Keine Aktion

  • MouseDown-Aktion: Ein Drücken der Taste lösen die Eingabeaktionen aus, die in der Eigenschaft OnMouseDown konfiguriert sind.

  • MouseUp-Aktion: Ein Freilassen der Taste lösen die Eingabeaktionen aus, die in der Eigenschaft OnMouseUp konfiguriert sind.

  • MouseDown/MouseUp-Aktion: Ein Drücken und Loslassen der Taste lösen die Eingabeaktionen aus, die in der Eigenschaft OnMouseDown und OnMouseUp konfiguriert sind.

Umschalten

standard icon: Kombination mit Umschalttaste

Beispiel: Umschalt + T

Steuerung

standard icon: Kombination mit Steuerungstaste

Beispiel: Strg + T

Alt

standard icon: Kombination mit Alt-Taste

Beispiel: Alt + T

Tipp

In der Registerkarte Tastaturkonfiguration sind alle Tastaturkürzel und deren Folgeaktionen aufgelistet, die in der Visualisierung konfiguriert sind.

Zusätzliche Aspekte

Koordinatensystem

standard icon: Das Koordinatensystem wird angezeigt

Gitter

standard icon: Gitterlinien werden angezeigt

Gitterfarbe

Farbe der Gitterlinien

Hervorhebung

Einzelne Teile der Bahn können optisch hervorgehoben werden. Typischerweise wird das dazu verwendet, den bereits fertig bearbeiteten Teil eines Tracks mit einer anderen Farbe zu kennzeichnen. Jeder Punkt der Bahn bekommt eine eindeutige ID, die im Falle eines CNC-Editors mit der Objekt-ID, auf der der Punkt liegt, verknüpft ist. Diese ID („highlight ID“) kann über die Applikation angegeben werden, so dass dynamisch Elemente/Teile der Spur hervorgehoben werden können.

Hervorhebungsart

. Wählen Sie eine der folgenden Hervorhebungsarten:
  • Nur das Element mit der ID, die mit dem Wert der Variable übereinstimmt, wird hervorgehoben

  • Alle Elemente, deren ID (im Falle eines CNC-Editors verknüpft mit der Objekt-ID) kleiner oder gleich dem Wert in Variable ist, werden hervorgehoben

Variable

Projektvariable, die die ID eines Elements angibt

Beispiel: PLC_PRG.iVarElementID

Diese „highlight ID“ wird für die Einstellung der Hevorhebungsart berücksichtigt. Die Variable muss in der IEC-Applikation gesetzt werden.

Hervorhebungsfarbe

Beispiel: Rot

Aussehen

Rahmenliniendicke

Dicke des Rahmens um das Element, in Pixel

Beispiel: 1

Rahmenlinienstil

. Wählen Sie einen dieser Stiltypen für die Rahmenlinie:
  • Durchgezogen

  • Striche

  • Punkte

  • Strich Punkt

  • Strich Punkt Punkt

  • Unsichtbar

Hintergrund transparent

standard icon: Der Hintergrund des Elements wird transparent dargestellt.

_cds_icon_option_deactivated.png: Der Hintergrund des Elements wird in der definierten Hintergrundfarbe dargestellt.

Hintergrundfarbe

Stilfarbe oder Farbe

Zentrum

Die Eigenschaften enthalten feste Werte für die Koordinaten des Rotationspunkts. Der Rotationspunkt ist im Editor als Symbol _visu_icon_center_point.png dargestellt und dient als Zentrum für die Rotation und die Skalierung.

Tipp

Die Werte können auch geändert werden, indem Sie im Editor das Symbol _visu_icon_center_point.png an eine andere Stelle ziehen.

X

X-Koordinate des Rotationspunkts

Y

Y-Koordinate des Rotationspunkts

Absolute Bewegung

Die Eigenschaften enthalten IEC-Variablen, um die Position des Elements dynamisch zu steuern. Bezugspunkt ist die linke obere Ecke des Elements. Zur Laufzeit wird das Element als Ganzes bewegt.

Bewegung

X

  • Variable (numerischer Datentyp) für die X-Position in Pixel

    Beispiel PLC_PRG.iPos_X

  • Containervariable Container.Width

    Für weitere Informationen siehe: Position und Größe optimal anpassen

Ein Erhöhen des Werts zur Laufzeit führt zu einer Bewegung nach rechts.

Y

  • Variable (numerischer Datentyp) für die Y-Position in Pixel

    Beispiel PLC_PRG.iPos_Y

  • Containervariable Container.Height

    Für weitere Informationen siehe: Position und Größe optimal anpassen

Ein Erhöhen des Werts zur Laufzeit führt zu einer Bewegung nach unten.

Rotation

Variable (numerischer Datentyp) für den Drehwinkel in Grad

Beispiel PLC_PRG.iAngle1.

Der Mittelpunkt des Elements rotiert um den Punkt in Zentrum. Dieser Rotationspunkt wird im Editor als Symbol _visu_icon_center_point.png dargestellt.

Zur Laufzeit bleibt die Ausrichtung des Elements in Bezug zum Koordinatensystem der Visualisierung erhalten. Ein Erhöhen des Werts führt zu einer Rechtsdrehung.

_visu_img_prp_rotation.png

Skalierung

Variable (ganzzahliger Datentyp), um eine zentrische Streckung zu bewirken

Beispiel PLC_PRG.iScaling

Bezugspunkt ist die Eigenschaft Zentrum.

Der Wert 1 verkleinert das Element um den Faktor 0.001. Der Wert 1000 belässt das Element in Originalgröße.

Innere Rotation

Variable (numerischer Datentyp) für den Drehwinkel in Grad

Beispiel: PLC_PRG.iAngle2.

Zur Laufzeit rotiert das Elements entsprechend dem Variablenwert um den Rotationspunkt in Zentrum. Zudem dreht die Ausrichtung des Elements bezüglich des Koordinatensystems der Visualisierung. Ein Erhöhen des Werts im Code bewirkt eine Rechtsdrehung.

Der Rotationspunkt wird im Editor als Symbol _visu_icon_center_point.png dargestellt.

Anmerkung

Wenn in der Eigenschaft Position → Winkel ein statischer Drehwinkel angegeben ist, wird bei der Visualisierungsausführung zum variablen Drehwinkel der statische Drehwinkel addiert (Offset).

_visu_img_prp_inner_rotation.png

Tipp

Sie können die Variablen mit einer Einheitenumrechnung kombinieren.

Tipp

Die Eigenschaften X, Y, Rotation und Innere Rotation werden von der Funktionalität „Client-Animation“ unterstützt.

Zustandsvariablen

Die Variablen steuern dynamisch das Verhalten des Elements.

Unsichtbarkeit

Variable (BOOL) für das Umschalten der Sichtbarkeit des Elements

TRUE: Das Element ist zur Laufzeit nicht sichtbar.

Tipp

Die Eigenschaft Unsichtbarkeit wird von der Funktionalität „Client-Animation“ unterstützt.

Animation

Tipp

Diese Eigenschaften sind nur verfügbar, wenn Sie im Visualisierungmanager die Option Client-Animationen und Überlagerung systemeigener Elemente unterstützen aktiviert haben.

Animationsdauer

Vairable für die Dauer in Millisekunden, in der das Element eine Animation ausführt

  • Variable (Ganzzahliger Wert)

    Beispiel: Menu.tContent mit VAR tContent : INT := 500; END_VAR

  • Ganzzahliges Literal

    Beispiel: 500

. Animierbare Eigenschaften:
  • Absolute Bewegung, Bewegung, X, Y

  • Absolute Bewegung, Rotation

  • Absolute Bewegung, Innere Rotation

  • Absolute Bewegung, Äußere Rotation

Die animierte Bewegung wird ausgeführt, wenn mindestens ein Wert einer animierbaren Eigenschaft geändert wird. Die dann ausgeführte Bewegung ist nicht ruckartig, sondern wird reibungslos in der angegebenen Animationsdauer ausgeführt. Das Visualisierungselement fliegt die Sollposition an und rotiert dabei dynamisch. Die Übergänge sind fließend.

In den Vordergrund bringen

Variable (BOOL) für das Stellen des Elements in den Vordergrund

TRUE: Das Visualisierungselement wird zur Laufzeit im Vordergrund dargestellt.

FALSE: Das Visualisierungselement wird zur Laufzeit in der Ebene dargestellt, in der es im Visualisierungseditor eingefügt wurde.

Beispiel: bIsInForeground mit VAR bIsInForeground : BOOL := FALSE; END_VAR

Zugriffsrechte

Anmerkung

Nur verfügbar, wenn eine Benutzerverwaltung für die Visualisierung eingerichtet ist.

Schaltfläche Zugriffsrechte

Öffnet den Dialog Zugriffsrechte. Dort können Sie die Zugriffsrechte für das Element ändern.

. Statusmeldungen:
  • Nicht gesetzt. Alle Rechte: Zugriffsrecht für alle Benutzergruppen: bedienbar

  • Rechte sind vergeben: eingeschränkte Rechte: Mindestens für eine Gruppe ist der Zugriff eingeschränkt