Web Visu Variable global deklarieren?

König777

Level-1
Beiträge
19
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

folgende Frage beschäftigt mich. Muss eine Web Visu Variable als globale Variable deklariert werden oder kann die diese auch z.B. als lokale Variable in einem Programm deklariert werden? Zum einem in Bezug auf die Funktion und zum anderen auf den Programmierstil.

z.B. hier die Variablen "x_Visu_Steckd_ein_OG_Bad:BOOL" usw. die nur in diesem Programm verarbeitet werden.

PROGRAM OG_Bad_Licht_Steckdosen

VAR
Steckdosen_OG_Bad: RS;
Radio_OG_Bad: RS;

(*OG Bad Taster Visu usw.*)
x_Visu_Steckd_ein_OG_Bad:BOOL;
x_Visu_Steckd_aus_OG_Bad:BOOL;
x_Visu_Radio_ein_OG_Bad:BOOL;
x_Visu_Radio_aus_OG_Bad:BOOL;

END_VAR

Vielen Dank im Voraus.

Gruß König
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

vielen Dank für die schnelle Antwort. Was mir noch nicht ganz klar ist warum das auch mit den lokalen Variablen funktioniert. Meine Annahme war das eine lokale Variable nur lokal verwendet werden darf. Das bedeutet doch, das auf diese in einem Programm, FB oder Funktion nur intern zugegriffen werden kann und nichts von außen hinein oder innen nach außen veränderrt werden darf. Wie ist die Web Visu dann einzuordnen? Wird diese vom Programmiersystem anders behandelt?

Vielen Dank

Gruß König
 
Ich denke dürfen, sollen und können muss man hier unterscheiden. Dürfen tu ich das, können auch. Sollen.... Naja.
Also eine Variable ist dann zwar lokal deklariert, aber mittels "Bausteinname.Lokalvariablenname" kommt man da ja einwandfrei und legal dran. Ich sehe das ein bisschen wie ein DB in der Siemens Welt. Die gehören auch zu einem Baustein dazu, aber man kann von außen die DBs ganz normal lesen/schreiben. Insofern denke ich nicht, dass die WebVisu andere Rechte hat als der Rest des eigentlichen Programms.
 
Hallo,

meine abschließenden Fragen lauten: Wie strukturiert und deklariert Ihr eure Visu Variablen? Gibt es eine Regel oder Empfehlung?

Vielen Dank an euch.

Gruß König
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich erstelle normalerweise einen eigenen Datentyp oder und definiere Variablen pro Visualisierungsfunktion.

Ich nutze zum Beispiel oft eine Texteingabe oder nutze ein Objekt als Button, dann will ich ihn eventuell noch beleuchten oder ähnliches.
Also hab ich schon Variablen für die Farben (Farbe vor und nach Farbwechsel), eine Variable für den Farbwechsel, eine Variable für den Button, eine Variable für die Textein-/ausgabe, und das wars so in etwa.

Dann kann ich jeweils die Objekte nur kopieren, den neuen Variabelnamen geben und halt die entsprechenden Variablen mit dem Dateityp definieren.

Könnte dann ganz bequem später auch mit nem Pointer eine Visualisierungsfolie für mehrere verschiedene Anlagen nutzen (klassisches Beispiel: Reaktoren. Die sind vom Aufbau her fast immer gleich. Also warum für jeden Reaktor eine eigene FOlie, wenn du auch eine Folie für 8 Reaktoren nutzen kannst?
 
Das ist interessant hier! Ich tue mich auch immer schwer mit einer richtigen Deklaration.
Egal ob Global, Visu, oder Netzwerk...
Klinke mich mal als Mitleser ein :)

Gruß

Onno
 
Also bei z.B. einem einfachen Taster in der Visu erstelle ich eine globale Variable xVisTaster (x = Bool, Vis = Visualisierung, Taster = Taster) und diese Variable verknüpper ich dann irgendwo im Programm, vermutlich parallel zu irgendeinem hardwaremäßig vorhandenem Taster oder so.
Will ich den Status dazu aber noch angezeigt bekommen, so greife ich stumpf auf die Variable zu, die mir dazu passt. Das kann z.B. irgendein %Qx0.0 (dann aber in Form des Variablennamens z.B. Q_xLichtWohnzimmer) oder aber auch, wenns keinen hardware Ausgang dazu gibt, dann nehme ich die Lokale Variable mitten aus dem zugehörigen Baustein z.B. AllgemeineFunktionen.xDST (DaylightSavingTime).

Programmierstil gut? Schlecht? Keine Ahnung, aber so mach ich es :s17: :D
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also bei z.B. einem einfachen Taster in der Visu erstelle ich eine globale Variable xVisTaster (x = Bool, Vis = Visualisierung, Taster = Taster) und diese Variable verknüpper ich dann irgendwo im Programm, vermutlich parallel zu irgendeinem hardwaremäßig vorhandenem Taster oder so.
Will ich den Status dazu aber noch angezeigt bekommen, so greife ich stumpf auf die Variable zu, die mir dazu passt. Das kann z.B. irgendein %Qx0.0 (dann aber in Form des Variablennamens z.B. Q_xLichtWohnzimmer) oder aber auch, wenns keinen hardware Ausgang dazu gibt, dann nehme ich die Lokale Variable mitten aus dem zugehörigen Baustein z.B. AllgemeineFunktionen.xDST (DaylightSavingTime).

Hmm...könnt etwas unübersichtlich werden bei Visualisierungen mit vielen Folien. Ich arbeite viel mit Verschachtelungen von Structs. Stell dir mal vor du hast 4 Buttons, zu jedem Button eine Variable für das Tasten und eine Variable für den Farbwechsel (schwarz zu grün für aktiv) sowie eventuell eine Variable zum ausblenden des Buttons und zur Änderung des Textes. und schon hast du 16 Variabeln. Behalt da mal den Überblick...
 
Jo, da stimme ich Dir zu. Das könnte in der Tat auf Dauer etwas viel werden.
Ich habe die Wago lediglich in meinem Einfamilienhaus. Da komme ich so ganz gut zurecht.

Ich meine, ich habe es damals auch viel mit Structs versucht. Warum ich das über den Haufen geworfen habe weiß ich allerdings nicht mehr. Vielleicht weil wegen Kanonen auf Spatzen und so...:D
 
Naja. Da würde es zum Beispiel Sinn machen einen Struct für nen Raum zu erstellen. Pro Raum hast du sicher immer die selben Sachen. Dann machst du einen Struct "Zimmer" und deklarierst eine Variable pro Raum. Dann hast du "Schlaf1.Zimmer", "Schlaf2.Zimmer", "Ess.Zimmer" und kannst dann so z.B. eine Variable "Ess.Zimmer.bStore.xHoch" für die Ansteuerung des Storenmortors in die nach Oben Richtung im Esszimmer beschreiben.

Ist halt n bisschen an den Objektorientierten Programmierstiel von den Hochsprachen angelehnt.
 
Zurück
Oben