Visualization Wahlschalter in Codesys 3.5

Zuviel Werbung?
-> Hier kostenlos registrieren
Das Problem ist nur das es in dem kleinen Editorfenster für den Code sehr schnell unübersichtlich wird.
Lässt sich bei eCockpit das Fenster "Eingabekonfiguration" nicht grösser ziehen?
Sonst kannst Du den Code ja auch anschliessend im Eigenschaften-Fenster schreiben. Dort sollte sich auf jeden Fall genug Platz schaffen lassen.
 
Zitat von StructuredTrash

Lässt sich bei eCockpit das Fenster "Eingabekonfiguration" nicht grösser ziehen?

Ja sicher, aber jedes mal wenn der Editor für die Mauseigenschaft neue geöffnet wird geht es mit der Zieherei wieder los.
Wenn man das dann für 10 Element machen muss wird es schon ganz schon mühsam.
Ich glaube auch nicht, dass es sinnvoll ist dort längeren Code unterzubringen.
Wie schon gesagt könnte auch das Debuggen bei vielen Elementen schwierig werden.

Ich will damit aber nicht sagen, dass es nicht möglich ist.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

es gibt noch einen vereinfachten Vorschlag für einen Wahlschalter.

Wie ich unter #7 schrieb

Für Visualisierungselemente wie z.B. Rechteck und Kreis kann man bei einem Mausklick Code ausführen lassen.
Nachdem für jede Schalterstellung ein Visualisierungselement angelegt wurde, definiere man eine Globale Variable
"bySchalterstellung: Byte;"

Für das erste Element wird bei einem Mausklick "bySchalterstellung:= 1;" ausgeführet.
Für das zweite Element wird bei einem Mausklick "bySchalterstellung:= 2;" ausgeführet.
Für das dritte Element wird bei einem Mausklick "bySchalterstellung:= 3;" ausgeführet.

Um für das Ausgewählte Element einen Farbumschlag zu generieren benötigte ich in diesem Vorschlag das Array
xAktiv: ARRAY[1..3] OF BOOL;

Bisher wusste ich schon das man bei BOOL-Eigenschaften in der Visualisierung auch den NOT Operator einsetzen kann.
Wie ich durch Hucki unter #10 gelernt habe kann man einer BOOL-Variablen das Ergebnis eines Vergleichs direkt zuweisen.
Wie ein Test ergab funktioniert dies auch für die BOOL-Eigenschaften in der Visualisierung.

Somit kann man sich die xAktiv - Variable sparen.

Unter Farbumschlag für Element 1 trägt man den Vergleich "bySchalterstellung = 1" ein.
Unter Farbumschlag für Element 2 trägt man den Vergleich "bySchalterstellung = 2" ein.
Unter Farbumschlag für Element 3 trägt man den Vergleich "bySchalterstellung = 3" ein.

..und schon wird für das aktive Element der Farbumschlag erzeugt.

Der Einfachheit halber schrieb ich, definiere man eine Globale Variable.
Damit muss auf die Variablen dann natürlich mit GVL.bySchalterstellung zugegriffen werden.
Eleganter wäre allerdings der Zugriff über eine Referenzierte Interfacevariable.

Grüße

Peter255
 
Zurück
Oben