# Codesys V3 - Zugriff auf Objekteigenschaften der Visualisierung im Programmcode



## grafsen2488 (19 April 2017)

Hallo,

Gibt es eine Möglichkeit im Programmcode (d.h. in irgendeinem FB oder PRG) auf die Objekteigenschaften einzelner Visualisierungselemente lesend oder schreibend zu zugreifen? Ich benutze hier Codesys V3.5. Vielen Dank schon einmal für eure Hilfe.


----------



## ccore (19 April 2017)

Hallo, 

was genau möchtest du machen? 

Ein paar mehr Infos würden sicher nicht schaden. 

Gruß


----------



## grafsen2488 (19 April 2017)

Hallo,

1.) ich möchte die einzelnen Visualisierungen (oder auch Seiten der Visualisierung) mit "variablen" Namen versehen. Oder ist das in Codesys nicht möglich, da der Zugriff symbolisch über eben diese definierten Namen erfolgt?

2.) ich möchte ein Element via "Elementname.Breite := 100;" o.ä. aus dem Programmcode steuern und dafür nicht extra erst eine Variable deklarieren. Ist das so möglich?

Danke für eure Antworten.

Grüße


----------



## Larry Laffer (20 April 2017)

??? Willst du aus dem PLC-Programm auf das .Net-Programm deiner Visu zugreifen ?
(Deine Fragestellung ist für mich nicht klar !)

Gruß
Larry


----------



## grafsen2488 (20 April 2017)

zu 1.) ich möchte die einzelnen Visualisierungen (oder auch Seiten der Visualisierung) mit "variablen" Namen versehen. Oder ist das in Codesys nicht möglich, da der Zugriff symbolisch über eben diese definierten Namen erfolgt? - *Frage hat sich erledigt, da ich einen anderen Lösungsansatz gefunden habe.*


zu 2.) Okay dann versuche ich es nochmal. Ich habe ein Projekt in Codesys V3.5. In diesem sind u.a. ein PLC_PRG (PRG) und eine Visualisierung "MainPage" enthalten. Auf dieser "MainPage" befindet sich ein Element "Menuleiste". Ist es möglich dieses Element aus dem PLC_PRG (oder anderer Baustein) hinsichtlich seiner Eigenschaften zu ändern. Das heißt, ich möchte u.a. die Eigenschaft Breite (Syntax ähnlich Menuleiste.Breite := 100 etc.) im Code ändern. Ist das in Codesys möglich oder geht das nur über eine Variable, die ich dann in die Eigenschaft in der Visualisierung einsetze?


----------



## KingHelmer (20 April 2017)

Hi grafsen,
ich weiß ehrlich gesagt nicht, ob das so funktioniert.

Allerdings denke ich, dass eine feste Zuweisung der Variablen keinen Sinn machen würde.
Beispielsweise wenn du mal eben ein Element ausschneidest und wieder einfügst.

Dadurch werden meine ich alle Elementnummern entsprechend geändert, was deine Zuweisungen vollkommen durcheinanderbringen würde.

Je nach Größe der Visu finde ich es allerdings noch ganz annehmbar, die Variablen einzutragen, ist ja auch nur ein Copy/Paste mit kleinen Änderungen und ob du diese jetzt im Programm machst, oder in der Visu ist doch auch relativ egal.

Gruß, 
Flo


----------



## grafsen2488 (20 April 2017)

Gut, danke, dann bleibe ich bei meiner bisherigen Vorgehensweise!


----------



## nielscho (28 August 2017)

Hallo

ich hänge mich hier jetzt mal einfach so dran da ich an sich die selbe Frage habe.

Wenn ich eine Visualisierung mit z.B. 3 Elementen vom Typ "Bild" habe, so ist meine derzeitige Vorgehensweise bei den Eigenschaften des Elements z.B. eine Bild-ID-Variable einzutragen, und diese Variable dann im Programmtext zu beschreiben.
Nur wenn ich jetzt z.B. 10 Bilder habe, und bei jedem einzelnen muss ich eine Bild-ID-Variable, eine Textvariable, eine Farbvariable, eine Linienstärekenvariable etc zuerst händisch eintragen und dann nachher beschreiben, so ist das dann doch schon eine menge "klickarbeit".
Kan man dieses nicht umgehen indem man direkt dem "Objekt" bzw. "Element" mit z.B. dem Namen "Bild1" die Werte per Programmcode mitgeben kann die man sonst in die Variablen schreibt?

Gruß
Nielscho


----------



## snej (30 August 2017)

Hallo zusammen,

also meine Vorgehensweise wäre dann wie folgt:
- Struktur "VisuBild" mit den benötigten Eigenschaften anlegen
- 10 Instanzen von "VisuBild" anlegen (gegebenenfalls ein Array!?)
- Visu mit einem Bild erstellen und als VAR_IN_OUT eine Instanz mit dem Typ "VisuBild" übergeben
- Dem Bild in dieser Visu alle Eigenschaften zuordnen
- In der Visualisierung in der die 10 Bilder angezeigt werden sollen, 10 "VisuBild" Frames anlegen
- Den Frames die angelegten Instanzen im Programm zuweisen

Wenn es nicht ganz eindeutig ist, kann ich auch mal ein kleines Beispiel Projekt hochladen.

Gruß snej


----------



## nielscho (30 August 2017)

Hallo

glaube ich verstehe das sogar, wobei ein Beispiel hier für mich ganz hilfreich wäre.

ABER: Damit löst sich zwar das Problem, aber wenn ich mir die Bildelemente selber baue und dann im Frame benutze, geht das dann nicht auch direkt?
Kann ich nicht eine Stuktur anlegen und diese direkt dem Bild übergeben? Sonst baue ich mir doch quasi das Element welches ich ansprechen will wieder selber nach um es dann anzusprechen...

Gruß


----------



## snej (31 August 2017)

Laut folgendem Beitrag soll es wohl möglich sein Eigenschaften eines Visu Elements im PLC Code zu ändern:
Zugriff auf Objekt-Eigenschaften einer Visualisierung

Aber genau beschrieben wird es hier auch nicht. Für mich hat immer die oben von mir beschriebene Lösung ausgereicht.
Daher hab ich mich auch nicht weiter mit der anderen Methode befasst.
Und direkt von Codesys habe ich bisher keine andere/bessere Lösung gefunden.

Was aber auch recht schick an der von mir beschriebenen Methode ist. Du kannst z.B. auch anstelle einer Struktur einen FB erstellen und eine Instanz von dem FB an deine erstellte Frame übergeben.
Somit hättest du die Möglichkeit dem Frame auch noch Logik mitzugeben. Kleines Beispiel:


```
deactivateInputs := userLevel < 10;

IF Alarm THEN
   frameColor := red;
END_IF
```

Oder oder oder... Finde diese Lösung recht schick. So kann ich mir z.B. einen Knopf erstellen, der einen FB übergeben bekommt, der das ganze Visu Handling übernimmt.

LG snej


----------

