# Schaltfläche mit 3 verschiedenen Zuständen



## Muphin (20 Dezember 2010)

Guten Morgen!
Ich würde im WinCCflex gerne einen "Knopf" erstellen mit dem ich 3 verschiedene Werte durchschalten kann. Die 3 Werte sind "Aus", "Ein" und "2s".
Die beste Idee die mir dazu bisher gekommen ist, ist eine Textliste mit diesen 3 Werten und eine Schaltfläche, in deren Einstellungen ich die Textliste angebe und eine Variable. Die Variable erhoehe ich dann mit "ErhoeheWert" im "Klicken" Ereigniss. Das ganze funktioniert bisher soweit, das die Schaltfläche anfangs auf "Aus" steht, mit draufklicken kann ich dann auf "Ein" und "2s" weiterschalten, jetzt fehlt allerdings noch das die Anzeige bei einem weiteren Klick wieder auf "Aus" springt.
Wie kann man sowas denn umsetzen?
Oder gibt es vielleicht sogar einen ganz anderen besseren Ansatz?

Grüße
Muphin


----------



## Larry Laffer (20 Dezember 2010)

Muphin schrieb:


> Oder gibt es vielleicht sogar einen ganz anderen besseren Ansatz?


 
3 Schaltflächen (die sich ggf. gegenseitig verreigeln) ?
Dein Ansatz wäre mir persönlich ein wenig zu umständlich ...

Gruß
Larry


----------



## Muphin (20 Dezember 2010)

Ich hät jetzt eher vermutet das es sowas doch öfter geben muss, ggf. auch noch mit mehr Werten! 
Wenn ich jetzt 3 Schaltflächen nehme fällt mir dazu nur eine Möglichkeit ein einen optisch schönen Aufbau hinzubekommen, und zwar indem ich diese übereinanderlege und entsprechend Ein- und Ausblenden, was wohl zu einem noch komplexeren Aufbau führt.
(Aufbau siehe Anhang.)


----------



## Sinix (20 Dezember 2010)

Ich würde es mit 2 Tasten "Ein" und "Aus" versuchen , wobei ich die Taste "Ein" als Schalter mit den Stellungen "Ein" und  "2s" projektieren würde.

MfG MK


----------



## Verpolt (20 Dezember 2010)

Hallo,

Vielleicht hilft dir die das weiter.

Schaltfläche-->Klicken-->Bitverarbeitung-->"Schieben und maskieren"


----------



## Muphin (20 Dezember 2010)

Verpolt schrieb:


> Hallo,
> 
> Vielleicht hilft dir die das weiter.
> 
> Schaltfläche-->Klicken-->Bitverarbeitung-->"Schieben und maskieren"


:? Ich hab da nur Sachen mit "Setze...", "Ruecksetze..." und "Invertiere..."

Gibt es evtl auch eine Möglichkeit bei einem bestimmten Wert einer Variablen diese auf einen anderen Wert zu setzen?


----------



## Sinix (20 Dezember 2010)

Muphin schrieb:


> :? Ich hab da nur Sachen mit "Setze...", "Ruecksetze..." und "Invertiere..."
> 
> Gibt es evtl auch eine Möglichkeit bei einem bestimmten Wert einer Variablen diese auf einen anderen Wert zu setzen?




Ja: Variable-->Eigenschaften-->Obergrenze überschritten
(Damit arbeite ich persönlich aber garnicht gern)


----------



## Larry Laffer (20 Dezember 2010)

Immer vorausgesetzt das deine Visu Script-fähig ist (für was erstellst du deine Arbeit übrigens ?) kannst du alle diese Operationen in einem Script abwicklen - dann würde es übersichtlicher.
Allerdings ist für solche Dinge Flex eher grenzwertig einzusetzen ... 

Gruß
Larry


----------



## Muphin (20 Dezember 2010)

An ein Skript hab ich eben auch gedacht, bin grade dabei mir die Syntax anzuschauen.
Das ganze soll auf einem TP277 laufen, oder was meinst du genau mit deiner Frage?


----------



## winnman (20 Dezember 2010)

Ich würde folgendes machen:

Varaiable für dei "Sichtbarkeit" 0,1,2  je nach Zustand dann Farbe / blinken.
Variable fürs "Setzen": jeweils 1 Wert erhöhen, wenn 0, dann 1, wenn 1 dann 2, wenn 2 dann3.

In der SPS fragst du den Zustand ab, wenn 3 dann setzt du die Variable auf 0 zurück.

Das Funzt natürlich nur wenn du mit 1 Taste die jeweiligen Zustände ansteuern willst.

Bei 1 Taste und normal nur Start/Stop, dann vergiss das mit dem Erhöhen, invertier einfach das Bit. Das für die Anzeige geht jedoch in gleicher Weise, musst halt in der SPS das Richtige auf dei Anzeigevariable bringen.


----------



## Muphin (21 Dezember 2010)

An die Möglichkeit hatte ich auch schon in Erwägung gezogen, das ungünstige dabei ist eben dass das HMI und die SPS für die richtige Abhandlung zusammen verantwortlich sind,das macht das ganze recht unübersichtlich!
Die Version mit dem Skript scheint mir da besser geeignet, dabei könnte ich in WinCCflex die Parameter als Namen der Variablen übergeben, so funktioniert dann auch das Setzen der Parameter direkt im Skript. Auch hier könnte man natürlich zusätzlich noch die Grenzen in der SPS prüfen, falls mal ein falscher Wert übergeben wird.

Grüße
Muphin


----------



## Sinix (21 Dezember 2010)

Hallo Muphin,

weiß ja nicht was du vorhast.
Generell überlegen meine Kollegen und ich immer wie man
etwas möglichst einfach und sinnvoll macht. Ist denn da 
bei dir ein Script oder ein SPS-Frage-Antwort-Spiel wirklich nötig? 

Ich schreibe das deswegen, da an einer Maschine auch mal ein Kollege oder Instandhalter sich  ins Programm einlesen müssen...


----------



## Muphin (21 Dezember 2010)

Mich erfreut das auch nicht besonders was mir da an Möglichkeiten bisher gegeben ist, vielleicht häng ich ja tatsächlich aber auch ein einer bestimmten Vorstellung zu stark fest. Ich beschreibe mal das Grundaufbau:
Für die Temperaturregler, die an dem SPS-System angeschlossen sind wird eine Einstellung, die sich Hold-Modus nennt, benötigt. Diesen Hold-Modus soll man auf die 3 Werte Aus, Ein oder 2Sekunden einstellen können.
Um das ganze Platzsparend unterzubringen und einfach sowie intuitiv Bedienbar zu machen halte ich eine einzelne Schaltfläche, die per Klick die 3 Werte durchschaltet, bisher für am Sinnvollsten.

Kritik, Verbesserungsvorschläge und dergleichen sind natürlich gerne Willkommen.

Grüße
Muphin


----------



## Sinix (21 Dezember 2010)

Mäuseklavier schrieb:


> Ich würde es mit 2 Tasten "Ein" und "Aus" versuchen , wobei ich die Taste "Ein" als Schalter mit den Stellungen "Ein" und  "2s" projektieren würde.
> 
> MfG MK



...bleibe dabei als bevorzugte Lösung, auch wenn dazu 2 Schaltflächen nötig sind. Es ist für den Programmierer/Anwender eindeutig und soviel mehr Platz braucht es auch wieder nicht.
Wie schon gesagt, Script und SPS-Zustandsanzeige halte ich für die Aufgabe unangemessen.


----------



## Larry Laffer (21 Dezember 2010)

Hallo Muphin,
warum machst du es nicht so, wie solche Anforderungen generell bei Windows (z.B.) gehandhabt werden ? Bei Windows würdest du hier eine ComboBox verwenden (z.B. Schriftart auswählen). So etwas kannst du dir mit Flex auch bauen. Du erstellst dir eine Symbolliste mit den entsprechenden Einträgen und ein symbolisches Auswahlfeld. Dadurch würden sich die Einstellungen gegenseitig verriegeln und du würdest je nach Anwahl einen Zahlenwert zur SPS übergeben (z.B. 0 für Aus, 1 für Ein und 2 für 2 Sek.).

Wie wäre das ?

Gruß
Larry


----------



## Muphin (21 Dezember 2010)

Meine Meinungen:

*2Tasten:*
Würde ich so nicht umsetzen, da weiß der Bediener kaum welche Einstellung die ist, die gilt! Außerdem ist die programmierung bzw. umsetzung auch etwas komplexer.

*Auswahlfeld:*
Sehr guter Tipp, danke!
Da ist die Umsetzung richtig einfach und der Bediener weiß auch gleich was gemeint ist.
Die einzelne Schaltfläche ist noch etwas schöner zum bedienen allerdings eben in der Umsetzung bei weitem nicht so leicht durchschaubar.

Ich würde bisher also, je nachdem worauf man den Fokus legt und was das HMI kann, die 3er-Schaltfläche oder das Auswahlfeld nehmen.


----------



## M-Ott (21 Dezember 2010)

Ich würde drei Schaltflächen übereinanderlegen, von denen jeweils nur eine sichtbar ist. Die Sichtbarkeit würde ich über ein jeweils eine interne BOOL-Variable steuern, die beim Drücken der vorhergehenden Schaltfläche gesetzt und beim Drücken der Schaltfläche zurückgesetzt wird.

Auf diese Art und Weise hast Du optisch nur eine Schaltfläche aber 3 Zustände und die Steuerung der Schaltfläche bleibt im WCCf.


----------



## Muphin (22 Dezember 2010)

Das ist natürlich eine Idee mit der man das Skript vermeidet, ähnlich wie 3 nebeneinanderliegende Schaltflächen, die sich gegenseitig verriegeln!
Zum leiden des Programmierers soll der Fokus wohl auf einer höheren Bedienfreundlichkeit liegen, somit wäre also die einzelne Schaltfläche bisher der Favorit! Allerdings muss ich da dann sagen, das bevor ich 3 übereinanderliegende Schaltflächen mit gegenseitigem ausblenden projektiere mir ein Skript doch lieber ist und auch leichter durchschaubar erscheint.

Grüße
Muphin


----------



## volker (22 Dezember 2010)

ich glaube das ist noch nicht erwähnt worden.
warum benutzt du nicht einfach ein symbolisches e/a-feld mit einer textliste?


----------



## Larry Laffer (22 Dezember 2010)

... doch Volker ... das ist das, was ich gemeint hatte. Ich muß aber zugeben, dass noch ein bißchen zuviele ProTool-Bezeichner drinstecken (alte Gewohnheit).
Aber wenn eine Combobox (denn das würde ja daraus) ein Thema wäre dann würde der TE das ja weiter verfolgen ...

Gruß
Larry


----------



## Aventinus (22 Dezember 2010)

Vielleicht hilft eine Schaltfläche nicht mit Statischem Text sondern einer Textliste (die von einer Betriebsartenvariable abgeleitet wird) weiter. Beim Klicken wird dann in der SPS die nächste Betriebsart angewählt.


----------



## simon.s (22 Dezember 2010)

Hallo

Würde dies ev auch mit einer Textliste lösen, diese kannst du dann ja 
mehrmals verwenden.

var=0                     #AUS#
klick  var+1
var=1                     #EIN#      
klick  var+1
var=2                     #2sec#    
klick  var+1
       var>2 --> var=0


----------



## winnman (22 Dezember 2010)

mit den letzten Infos würde ich das so lösen: Aufruf eines eigenen Bildes mit den 3 Tasten AUS EIN 2sec, den Rest in der SPS, das ist meiner Meinung nach am übersichtlichsten. Im ursprünglichen Bild dann Anzeige mit den entsprechenden Texten oder Symbolen.


----------



## Sinix (23 Dezember 2010)

Muphin schrieb:


> Meine Meinungen:
> 
> *2Tasten:*
> Würde ich so nicht umsetzen, da weiß der Bediener kaum welche Einstellung die ist, die gilt! Außerdem ist die programmierung bzw. umsetzung auch etwas komplexer.
> ...



Ich finde wenn man die aktive Taste mit einer Signalfarbe animiert sehr eindeutig.

Beim Auswahlfeld muss man ggf. erst scrollen, das heisst nix mit schnell mal ausschalten...

MfG


----------



## Chräshe (23 Dezember 2010)

Kam der Vorschlag schon?


----------



## Muphin (5 Januar 2011)

Hallo!
Also soweit ich das überschaue kam als wirklich neue Idee noch der Radiobutton hinzu, was eben auch eine Variante mit mehreren Tasten wäre. Diese Varianten lassen sich, für diese Aufgabenstellung, aber denke ich immer nur so umsetzen, das die anderen Tasten deaktiviert werden wenn eine neue Auswahl getroffen wird.

Somit bleibt dann wohl, wegen der Bedienerfreundlichkeit, die eine Taste mit Textliste und Skript im Hintergrund die Umgesetzte Möglichkeit!

Vielen dank auf jeden Fall für die Ideen und Hilfestellungen!

Grüße
Muphin


----------

