TwinCAT3 HMI - TabNavigation

STEP7_NEWBEE

Level-2
Beiträge
152
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, ich habe vor kurzem mit TwinCAT HMI begonnen (TE2000) und wollte in meinem Projekt eine "TabNavigation" nutzen, um ein Menü zu erstellen. Auf den
drei erstellten Seiten, wollte ich nun mit einem Button hin und herschalten können, bzw auf jeder Seite (Seite_1 bis Seite_3) ein Paar Bedien / Anzeigeelemente hinterlegen.

Projektierung: leider kann ich zwischen den Seiten beim Projektieren nicht hin und her navigieren. Wenn ich beispielsweise auf "Seite_2" klicke passiert gar nichts. Bzw habe ich noch keine Möglichkeit gefunden um mit Hilfe eines Buttons im laufenden Zustand auf die jeweilige Seite der TabNavigation zu wechseln.

Passende Tutorials habe ich diesbezüglich leider auch noch keine gefunden. Wäre super könnte mir hier jemand weiterhelfen und verraten, wie man auf die jeweilige Seite wechseln kann, bzw. wie man diese richtig anspricht.

1751291301811.png

Vielen Dank für eure Unterstützung!

LG
 
Projektierung: leider kann ich zwischen den Seiten beim Projektieren nicht hin und her navigieren.

Ja, Controls sind im Designer nie bedienbar. Also weder das Tab control noch die Buttons. Geht ja auch nicht, man will sie ja selektieren können.

Bzw habe ich noch keine Möglichkeit gefunden um mit Hilfe eines Buttons im laufenden Zustand auf die jeweilige Seite der TabNavigation zu wechseln.

Doppelklick im Designer auf dein Button mit "Seite2". Dann änderst du was (später zur Laufzeit) beim Klick auf den Button passieren soll.
Links "Controls in scope" auswählen und dort das Tab Control öffnen und unter Common "TabName" rüber ziehen (oder doppelt anklicken).
Dort kannst du jetzt "Seite_2" eintragen, so dass das zweite Tab auf geht.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
OK vielen Dank für den Tip, dass hab ich vorhin übersehen - das Wechseln zwischen den Seiten funktioniert.

Aber mir ist nicht ganz klar, wie ich nun unterschiedlichen Inhalt auf den einzelnen Seiten anzeigen lassen kann?

Beispielsweise soll auf Seite 1: ein Eingabefeld, ein Bestätigungsbutton und auf Seite 2 ein Diagramm angezeigt werden, Seite 3 ein Ergbnisfeld.

Kenne es aus LabVIEW so, dass man bereits bei der Projektierung zwischen den Seiten wechseln kann und die jeweiligen Elemente (Eingabefeld, Bestätigungsbutton, Diagramm) einfach direkt auf der jeweiligen Seite einfügt und bei Laufzeit wird eben die Logik für den Seitenwechsel ausgeführt.

lg
 
Aber mir ist nicht ganz klar, wie ich nun unterschiedlichen Inhalt auf den einzelnen Seiten anzeigen lassen kann?

Du musst Content Dateien oder UserControls Dateien erstellen. Also im Projektbaum Kontextmenü "add new item".
Diese kannst du wie die "Desktop.view" normal grafisch bearbeiten.
UserControls haben eigene Attribute und sind so ähnlich wie Instanzen.
Content Dateien können jeweils nur einmal auf einer Seite gleichzeitig genutzt werden.

Hast du diese angelegt, kannst du sie im Attribut "Tabs" jeweils zu den Seiten auswählen.
Die Property dort heisst "Target File".
 
Vielen Dank noch einmal für deine Hilfe! das mit der Tab Control hat leider nicht so funktioniert, wie ich gedacht habe. - also falls du irgendwo eine Doku / Webside hast, wo die Vorgehensweise beschrieben wird, wärs super könntest du diese noch hochladen.

Habe das Problem nun über eine "Region" gelöst, bei der ich eben abhängig vom gedrückten Button das jeweilige Content einblende. Das funktioniert soweit einmal :-)

LG
 
Ja das stimmt, mir persönlich gefällt nur die Version mit den Reitern nicht so gut. Deshalb wollte ich das Umschalten über eigene Button machen und die Reiter dann eben im Betrieb ausgeblendet lassen.
 
Man kann die Unterseiten in der TabNavigation (noch) nicht direkt anspringen, bspw. durch eine Aktion von einem Button. Beckhoff hat dies aber im Backlog. Zumindest ist dies mein Stand von vor rund einem Jahr. Offenbar geht das weiterhin noch nicht.

Wenn Du eine TabNavigation hast, warum hast Du dann noch die Buttons zum Umschalten hinzugefügt?
Mein Anwendungsfall liegt nicht im Ersatz zur eigentlichen TabNavigation, aber für einen "Deeplink" in eine solche Tabbed-Seite. Unser HMI besteht bspw. standardmäßig im Hauptbild aus einem Dashboard. Daneben gibt es Unterseiten, welche in einer TabNavigation angeordnet sind. Nun möchte ich für gewisse Funktionen bspw. vom Dashboard direkt auf eine definierte Seite in der TabNavigation springen. Geht aber noch nicht.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Man kann die Unterseiten in der TabNavigation (noch) nicht direkt anspringen, bspw. durch eine Aktion von einem Button. Beckhoff hat dies aber im Backlog. Zumindest ist dies mein Stand von vor rund einem Jahr. Offenbar geht das weiterhin noch nicht.

Ich weiss nicht genau was du damit meinst, aber seit April 2025 oder so hat das TabNavigation Control das Attribut ActiveTabName (oben fälschlicherweise als TabName bezeichnet) schreib und lesbar.
 
Ja das stimmt, mir persönlich gefällt nur die Version mit den Reitern nicht so gut. Deshalb wollte ich das Umschalten über eigene Button machen und die Reiter dann eben im Betrieb ausgeblendet lassen.

Wenn du die Reiter nicht haben willst, solltest du nicht das Control verwenden, was dir Reiter bereitstellt.
Ausblenden kannst du diese nämlich nicht (wofür auch? Dafür gibt es ja die Region).

Habe das Problem nun über eine "Region" gelöst, bei der ich eben abhängig vom gedrückten Button das jeweilige Content einblende. Das funktioniert soweit einmal :)

...und ist konzeptionionell genau das Richtige.
 
Ich habe gerade meine TC3.4026 auf den neuesten Stand gebracht.
Es geht über das von @zuse erwähnte Attribut. Er war nur ein paar Minuten schneller. Nutz bei den Buttons "Write To Symbol" und wähle als Symbol "ActiveTabName" und setze das auf den Namen des gewünschten Tabs und es sollte klappen.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Sorry, hatte vorhin auf die schnelle geantwortet. Daher war mein Text eventuell nicht richtig verständlich.

Danke für das Update. Wäre ja schön, wenn man über Release Notes sowas mal direkt von Beckhoff erfahren würde *träum*
 
Zurück
Oben