TIA Toolbarbutton, Bedienbarkeit, extern

TIAISM

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

vllt. hatte ja jemand schonmal damit zu tun und kann mir weiterhelfen =)

Beschreibung:
ich nutze das Objekt "Meldeliste" von WinCC Professional V15. In dieser "Meldeliste" gibt es eine Symbolleiste mit
der ich untersch. Funktionen auslösen kann (Drucken, Quittieren, Sortieren etc.)

Da diese Icons in der Symbolleiste allerdings ziemlich klein sind und sich sehr schlecht via Touch Bedienen lassen,
bin ich auf die glorreiche Idee gekommen, diese nach extern zu verlagern - siehe Screenshot =)

Das Ereignis auf diesen Buttons ist bereits funktionsfähig
C-Skript:
SetPropDouble (screenName, "ctrlMeldeliste_GT", "ToolbarButtonClick", 11);

Mit diesem C-Skript greife ich auf das Objekt "Meldeliste" zu und dann auf die zugewiesene ID des Buttons (in diesem Fall die Sammelquittierung)

Problem:
Ich würde jetzt gerne noch die Animation an den Taster übergeben. D.h die Sammelquittierung ist auch nur möglich, wenn
eine Meldung anliegt.Standaradmäßig graut das TIA-Portal dieses Toolbarbutton auch aus, wenn keine z.B. keine Störung aktiv ist!
Die Frage ist, ob ich auch über "GetPropDouble" oder irgendeine andere Funktion die gewünschte Animation
übergeben kann.

Vielen Dank!
 

Anhänge

  • Meldeliste.jpg
    Meldeliste.jpg
    36,3 KB · Aufrufe: 38
Bei WinCC 7.x wäre das möglich indem du die ToolbarButtonEnabled Eigenschaft ausliest. Dazu musst du vorher den passenden Index anwählen.
Der Einzelquittierbutton hat bei 7.x aber den Index 9, der Sammelquittierbutton Index 10. Index 11 ist dort Not-Quittierung, und der Button ist immer aktiv. Hat sich das bei TIA WinCC geändert?

Bei WinCC 7.x könntest du also den Zustand des Sammel-Quittierbuttons so auslesen:
Code:
BOOL enabled;

SetPropDouble(lpszPictureName, "ctrlMeldeliste", "ToolbarButtonIndex", 10);
enabled = GetPropBOOL(lpszPictureName, "ctrlMeldeliste", "ToolbarButtonEnabled");

// ...etwas in Abhängigkeit von enabled machen...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ich habe dein Skript mal ausprobiert. Leider funktioniert das nicht. Habe das Gefühl, dass "enabled" nicht genau auf den toolbarbutton schaut.

BOOL enabled;

SetPropDouble(screenName, "ctrlMeldeliste_BES", "ToolbarButtonIndex", 11);
enabled = GetPropBOOL(screenName, "ctrlMeldeliste_BES", "ToolbarButtonEnabled");

ctrlmeldeliste_BES = Alarmcontrol

hmm.. würde auch eine Lösung mit VB gehen?
 
Wie lässt du dir den Wert von enabled denn anzeigen, und worüber wird das Skript bei dir angestoßen?

Hast du das mit dem Index 11 denn geprüft? Bei WinCC 7 kannst du dazu in den Objekteigenschaften manuell den Index auf einen anderen Wert setzen, dann ändern sich auch alle zugehörigen anderen Eigenschaften, und wenn du dann den Wert von ToolbarButtonEnabled manuell änderst, sollte auch der Zustand des Icons wechseln. Ich würde 9 (Einzel) oder 10 (Sammelquittierung) verwenden, je nach Funktion die dein selbsterstellter Button letztendlich auslöst.

Ich glaube für ToolbarButtonIndex wäre auch SetPropWord oder DWord passender weil das ein Integer ist, aber ich glaube WinCC akzeptiert das mittlerweile auch mit Double.
 
Der Trigger ist im Augenblick auf zyklisch 2s eingestellt - zum testen.
Der Index 11 sollte richtig sein, da mein Ereignis, also die Sammelquittierung ja auch über die ID 11 funktioniert.
Im TIA Portal ist die 11 die ID für die Sammelquittierung.

Habe mir zum Überblock mal die Symbolleiste wieder Sichtbar geschaltet.
Wenn keine Fehlermeldung ansteht, ist der Sammelquittierungsbutton in der Symbolleiste des Alarmcontrols ausgegraut, da ich ja auch keine Fehlermeldung
quittieren kann. Ich habe unsere "enabled" Variable mal in ein printf gepackt und geschaut, ob sich der Wert ändert, wenn eine Meldung ansteht oder nicht.

SKRIPT:

BOOL enabled;

SetPropDouble(screenName, "ctrlMeldeliste_BES", "ToolbarButtonIndex", 11);
enabled = GetPropBOOL(screenName, "ctrlMeldeliste_BES", "ToolbarButtonEnabled");


if (enabled == 1)
{
printf("Moin\n");
}
else
{
printf("kein Moin\n");
}

return enabled;



Die Variable ändert nicht ihren Wert.
hast du sonst noch eine Idee?

Danke =)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du kannst ja mal einen anderen Button mit einem anderen Index ausprobieren ob das bei TIA grundsätzlich noch funktioniert.
Also irgendein Button einblenden der nicht automatisch geändert wird, und dann manuell einmal die Eigenschaft auf "Ja" setzen und gucken was dein Skript ausgibt, und einmal auf "Nein" setzen und gucken was dein Skript ausgibt.

Wie gesagt, bei WinCC 7.x funktioniert das so, aber eben nicht mit Index 11 (immer Enabled) sondern nur mit 9 oder 10.
 
HAHA!
Thomas du Genie! Gracie!

Funktioniert! Du hast recht - hab einfach fix ne "9" eingetragen und läuft hihi

Für alle die das mal lesen - folgendes Skript auf die Bedienbarkeit des Buttons legen!
SKRIPT:

BOOL enabled;

SetPropDouble(screenName, "ctrlMeldeliste_BES", "ToolbarButtonIndex", 9);
enabled = GetPropBOOL(screenName, "ctrlMeldeliste_BES", "ToolbarButtonEnabled");

return enabled;

Dnke Thomas <3
 
Hallo,

ist das bei der "Einzelquittierung" das selbe verhalten?
Weil hier hier bleibt der Button jetzt trotzdem bedienbar, obwohl keine Meldung anliegt. Im Alarmcontrol ist dieser Button aber ausgegraut/ nicht bedienbar.

folgendes Skript liegt auf dem Einzelquittierungstaster:

BOOL enabled;

SetPropDouble(screenName, "ctrlMeldeliste_BES", "ToolbarButtonIndex", 9);
enabled = GetPropBOOL(screenName, "ctrlMeldeliste_BES", "ToolbarButtonEnabled");

return enabled;


Der Button graut nicht aus.
 
Zurück
Oben