Twincat 3 Visualisierung - mehrere Variablen gleichzeitig ändern?

Geisterkarle

Level-2
Beiträge
135
Reaktionspunkte
9
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

hoffe das passt hier hin und nicht in den Codesys-Bereich...

Auf jeden Fall baue ich gerade in Twincat 3 eine Visualisierung für meine Anlage zusammen. Da ich normalerweise in der TIA Welt zuhause bin, bin ich da nicht der sonderlichste Experte...
Für meine Ansteuerung von Ventilen habe ich im Programm einen eigenen Datentyp erstellt, der alle Signale für die Ansteuerung beinhaltet. Und meine ganzen Ventile habe ich in ein Array_of_UDT gelegt. Funktioniert soweit.
Nun möchte ich aber im HMI die Handfunktionen anlegen. Auch prinzipiell kein Problem mit Tasten und Farben etc. Aber die Idee war, dass ich da einmal die entsprechenden Bildelemente erstelle, diese Kopiere und dann in den Variablen das [1] mit [2] (usw.) ersetze. In TIA (duck) kann ich das einfach per Referenz ändern. Hier in Twincat 3 Visu geht das (anscheinend?!) nicht. Auch Textsuche-ersetze funktioniert nicht (der findet nur ein Feld und geht nicht weiter bei Weitersuchen).
Gibt es da irgendeine Methode, die ich übersehe? Oder muss ich tatsächlich in jedes einzelne Feld einzeln reinklicken und die Zahl ändern? Das ist ja Arbeit, ich bin faul :P
Oder hat wer eine bessere Idee, wie ich das realisiere?

Für Tipps Dankbar!
grüße
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Oh, ok, dann hab ich das falsch beschrieben, was ich mache :D
Denn ich hab jetzt einzelne Tasten und Felder, die ich beschreibe.
Aber man kann so Bildbaustein/Frames erstellen? Muss ich mal gucken, wie das funktioniert... müsste das hier sein...
 
hoffe das passt hier hin und nicht in den Codesys-Bereich...
Da TwinCAT auf Codesys basiert wäre der Codesys-Bereich passend gewesen.
Nun möchte ich aber im HMI die Handfunktionen anlegen. Auch prinzipiell kein Problem mit Tasten und Farben etc. Aber die Idee war, dass ich da einmal die entsprechenden Bildelemente erstelle, diese Kopiere und dann in den Variablen das [1] mit [2] (usw.) ersetze. In TIA (duck) kann ich das einfach per Referenz ändern. Hier in Twincat 3 Visu geht das (anscheinend?!) nicht. Auch Textsuche-ersetze funktioniert nicht (der findet nur ein Feld und geht nicht weiter bei Weitersuchen).
Gibt es da irgendeine Methode, die ich übersehe? Oder muss ich tatsächlich in jedes einzelne Feld einzeln reinklicken und die Zahl ändern? Das ist ja Arbeit, ich bin faul :p
Doch das geht, wie holgermaik schon schrieb. Hier das Selbe mal etwas ausführlicher.
In TwinCAT kannst Du Elemente fest mit einer Variable aus dem SPS-Programm verknüpfen, z.B. ein Button mit einer Bool-Variable in MAIN. Wenn Du jetzt aber Visu-Elemente mehrfach nutzen möchtest wäre es lästig, wenn man die immer von Hand ändern müsste, aber dafür gibt es eine Lösung.
In Deinem Fall legst Du eine Visu an und nennst die z.B. "visValve". In der Visu legst Du im Schnittstelle-Editor eine Variable vom Typ Deines DUTs an. Nun platzierst Du alle Elemente für ein Ventil auf der Visu, nur verknüpfst Du die Elemente jetzt nicht direkt mit einer Variable aus dem SPS-Programm, sondern mit der gerade deklarierten im Schnittstelle-Editor. Ich habe einmal testweise folgendes UDT angelegt
Code:
TYPE ST_Valve :
STRUCT
    xOpen            : BOOL;
    xClose            : BOOL;
    xFeedbackOpen    : BOOL;
    xFeedbackClose    : BOOL;
END_STRUCT
END_TYPE
Und von diesem in MAIN ein Array (1-10) erzeugt.
Die Visu sieht dann so aus (Inklusive der Eigenschaften einer LED)
Forum01.png
Nun erstellst Du eine weitere Visu-Seite. In diese fügst Du aus der Toolbox jetzt entweder ein Registersteuerelement hinzu und in dieses dann so viele Ventil-Visus wie benötigt, oder du wählst unter Aktuelles Projekt die VentilVisu aus und fügst diese einzeln hinzu.
Hier mal Screenshots für die Lösung mit der Registerkarte
Forum02.png
Forum03.png
Und hier mit den einzelnen Visus (Parameter zuweisen wird automatisch angezeigt nachdem die Visu hinzugefügt wurde)
Forum04.png
 
Als Erweiterung dazu
die Framevisu lässt sich mit einem Index versehen, so dass du beim Aufruf diesen Index übergeben kanst. Im optimalen Fall passt der Index zu deinem Index aus dem Variablenarray. So kannst du z.B. völlig unterschiedliche Framevisu (z.B. einmal ein Motor ein anderes mal ein Ventil) passend zu deinen Variablenarray aufrufen ohne etwas an der Visu zu ändern.
Das macht Sinn wenn als Übersichtsbild z.B. ein Motor und ein Ventil zu sehen ist. Beim Click auf ein Element öffnet sich dann die Framevisu mit den entsprechenden Bildern und Bedienelementen als überlagertes Fenster oder auch eingebettet in das Hauptbild.
 
Zurück
Oben