Bedingung in WinCC flex programmieren?

pinolino

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

ich suche nach einer Möglichkeit, dass in einem Touch-Panel zwischen zwei Schaltflächen nur dann umgeschaltet werden kann, wenn in der SPS ein bestimmter Merker, z.B. M10.0, gesetzt ist. Die eine Schaltfläche setzt einen Merker1, die andere Schaltfläche setzt einen Merker2.

Geht diese Bedingung über den Merker M10.0 direkt in WinCC flexible 2008 zu programmieren, oder muss man hier ein Netzwerk in der SPS programmieren?

Vielen Dank für Anregungen...

pinolino
 
Moin,

also ich löse solche Dinge meistens, indem ich den Button, der inaktiv sein soll, ausblende. In deinem Fall würde dann die Sichtbarkeit über den M10.0 gesetzt werden. Natürlich kannst du das auch SPS-Intern verriegeln, dann würde ich aber den Button in einer bestimmten Farbe anzeigen lassen, die ihn als gesperrt markiert. Sonst drückt Dir später der Bediener drauf rum und wundert sich, das nichts passiert.
Ne Funktion in flex, die sperrt wüsst ich jetzt so nicht.

Gruß
Doc
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hey Ho!
Mit bestimmten Bediengeräten (z.b. MP277) kann man auch Skripte ausführen. Aber in deinem Fall würde ich das auch über die Sichtbarkeit der Schaltfläche der lösen.

Gruss Schnicker
 
Danke für eure Antworten...

das mit der Sichtbarkeit in WinCC flex hatte ich schon hinbekommen.

Wollte das Ganze jetzt mal auf die andere Art durchspielen - Chef muss dann entscheiden, was ihm besser gefällt...

Allerdings tue ich mich mit der SPS-internen Verriegelung noch etwas schwer. Wie könnte das vom Programm her aussehen - müsste ja dann in der SPS festlegen, dass wenn der Merker M10.0 nicht gesetzt ist, die beiden Schaltflächen auf dem Panel nicht geschaltet werden können...

Wie könnte ich das realisieren?
 
Eine weitere Möglichkeit ist noch das über Bedienbarkeit zu machen.
Findest du unter Animationen/Bedienbarkeit deiner Schaltfläche.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Möglichkeit wäre z.B. über 2 Hilfsmerker:

im Moment setzt du "Merker1" und "Merker2". setze mit den Buttons einfach "Merker3" und "Merker4" und frage dann ab:

U M10.0
U Merker3
S Merker1

ON M10.0
ON Merker3
R Merker1

entsprechend das gleiche für Merker2/4.
 
Vielen Dank Günni1977,

auf die von dir dargestellte Weise klappt es mit der Verriegelung innerhalb der SPS!

Grüße

pinolino
 
Hi Ihr,

glaube ich brauche noch mal einen Denkanstoß - ich dreh' mich hier grad irgendwie im Kreis. Ich habe jetzt mal die Verriegelung in der SPS für die zwei Schaltflächen des Panels programmiert - das funktioniert auch soweit prima:


U "Einschaltmerker" // wird gesetzt beim Drücken des EIN-Tasters
U "M_Panel_Auto"
S "M_Auto"

ON "Einschaltmerker"
ON "M_Panel_Auto"
R "M_Auto"

U "Einschaltmerker"
U "M_Panel_Man"
S "M_Man"

ON "Einschaltmerker"
ON "M_Panel_Man"
R "M_Man"


Beim Drücken von Schaltfläche_1 wird der Merker "M_Panel_Auto" gesetzt und der Merker "M_Panel_Man" zurückgesetzt.

Beim Drücken von Schaltfläche_2 wird der Merker "M_Panel_Man" gesetzt und der Merker "M_Panel_Auto" zurückgesetzt.

Gleichzeitig sind beiden Schaltflächen noch die Farben Grün bzw. Rot zugeordnet:

Die Schaltfläche_1 ist rot, wenn "M_Auto" = 0 und grün, wenn "M_Auto" = 1

Die Schaltfläche_2 ist rot, wenn "M_Man" = 0 und grün, wenn "M_Man" = 1


Nun zu meinem Problem:

Jetzt soll das Programm insoweit erweitet werden, dass nach dem Einschalten mittels des EIN-Tasters ("Einschaltmerker") automatisch die Schaltfläche_1 aktiv ist, also grün dargestellt wird und bedient werden kann.

Wie ich es auch programmiere, ich schaffe es nicht, weil ja auch berücksichtigt werden muss, ob vor dem Einschalten die Schaltfläche_1 oder die Schaltfläche_2 aktiv war...

Habt ihr für mein Problem eine Idee?

Vielen Dank...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du könntest dir ein Statusbyte erstellen und mit diesen Byte die
Schaltflächen animieren bzw. die Bedienbarkeit zuordnen.

Code:
     L 0
     UN "Freigabe"
     SPB SA
     L 1
     U "M_Man"
     SPB SA
     L 2
     U "M_Auto"
     SPB SA
     L 3
SA:  T "Status"

Jetzt könnte es so sein wenn deine "Freigabe" nicht da ist sind die
Schaltflächen Grau und können nicht bedient werden. Fall könnte
sein Steuerung ist aus.
Ist jetzt die Steuerung eingeschaltet, kannst du die Schaltflächen
bedienbar machen mit den wert 1...3, aber die Schaltflächen sind immer
noch grau.
Bei "M_Man" = "1", wird dann die schaltfläche für Manuell farblich animiert.
Bei "M_Auto" = "1", wird dann die schaltflächer für Automatik farblich animiert.

So hast du immer eine Zuordnungsbyte mit einen sicheren zustand für alle
Betriebsarten, die auch noch nach priorität sotiert werden können.
 
Danke Helmut, ja so etwas wäre super!

Allerdings verstehe ich den Weg noch nicht ganz...

1) Ist denn "Freigabe" der Merker, der durch den Ein-Taster gesetzt wird?

2) Ich brauche aber meinen geposteten Code auch noch, oder?

3) Verstehe ich das Beispiel richtig:

L0 erzeugt im Merker M0.0 des Statusbytes 0 den Status 0, L1 erzeugt in M0.0 den Status 1, L2 erzeugt in M0.1 den Status 1 und in M0.0 den Status 0, L3 erzeugt in M0.0 und in M0.1 den Status 1.

Also wird bei M0.0 = 0 in WinCC flex den beiden Schaltflächen eine graue Farbe zugeordnet. Bei M0.0 = 1 (L1) hat die Schaltfläche "Manuell" z.B. die Farbe Grün und kann betätigt werden, usw. Stimmt das so?

4) Bei welcher Bedingung kommt es zu L3?

Vielen Dank!

pinolino
 
So, habe jetzt noch etwas probiert und nun Folgendes programmiert:

Netzwerk 1:

U "Einschaltmerker" // wird gesetzt beim Drücken des EIN-Tasters
U "M_Panel_Auto"
S "M_Auto"

ON "Einschaltmerker"
ON "M_Panel_Auto"
R "M_Auto"

U "Einschaltmerker"
U "M_Panel_Man"
S "M_Man"

ON "Einschaltmerker"
ON "M_Panel_Man"
R "M_Man"



Netzwerk 2:

L 1
UN "Einschaltmerker"
SPB STAT
L 2
U "M_Man"
SPB STAT
L 4
U "M_Auto"
SPB STAT
STAT: T "Status"


Als Statusbyte habe ich jetzt einfach mal MB1 hergenommen.

Farblich klappt das jetzt ganz gut - was aber noch immer nicht geht ist, dass nach dem Einschalten mittels Ein-Taster automatisch die Schaltfläche für den Automatikbetrieb bedienbar wird... dazu müsste ja der Wert 4 geladen werden!

Wie könnte ich das noch hinbekommen?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo pinolino,


zu
  1. das brauchst du nicht das war nur so eine zusätzliche Idee,
    wenn die Steuerung nicht eingeschaltet ist brauchst du doch sicherlich
    kein Hand bzw. Automtikbetrieb
  2. ja deinen geposteten Code brauchst du noch
  3. Die Anweisung L 0 ist eine Ladeanweisung und ladet eine Dezimal
    konstante mit den Wert "0" in den Akkumulator 1, ist jetzt deine
    "Freigabe" nicht vorhanden, springst du Direkt zur Sprungmarke "SA"
    und der wert aus dem Akkumulator 1 wird zur Byte-Variablen
    "Status" übertragen. In Status steht dann "0"
  4. Wenn keine bedingung vorher erfüllt ist, d.h. "Freigabe" ist "1",
    "Automatik" und "Hand" sind "0", wird der Defaultwert "3" geladen.
zum ganzen die Animation bzw. Bedienbarkeit wird jetzt nicht einzelen
Merker zugeordnet, sondern einer gemeinsamen Byte Variabel mit der
bezeichnung "Status"
 
Hier noch das Bild "Gestaltung" aus WinCC flex, beispielhaft für die Schaltfläche "Automatik".

Als Statusbyte habe ich jetzt einfach mal MB1 hergenommen.

Netzwerk 2:

L 1
UN "Einschaltmerker"
SPB STAT
L 2
U "M_Man"
SPB STAT
L 4
U "M_Auto"
SPB STAT
STAT: T "Status"


Farblich klappt das jetzt ganz gut - was aber noch immer nicht geht ist, dass nach dem Einschalten mittels Ein-Taster automatisch die Schaltfläche für den Automatikbetrieb bedienbar wird... dazu müsste ja der Wert 4 geladen werden!

Wie könnte ich das noch hinbekommen?

Grüße
pinolino
 

Anhänge

  • Bild1.jpg
    Bild1.jpg
    19,3 KB · Aufrufe: 8
Zuletzt bearbeitet:
stell mal bitte die darstellungsart von Binär auf Integer um, da wir ja
nicht mit einzelnen Merkern arbeiten sondern mit Dezimalkonstanten
 
Zuviel Werbung?
-> Hier kostenlos registrieren
mit der Variablen "Status", kannst du die bedienbarkeit deiner Schaltfläche
steuern. Bitte verwende mal mein Beispiel und ordne die zustände der
Bedienbarkeit zu. Das ist ähnlich wie bei der Animation.
 
Ok Helmut, das sieht dann wie folgt aus:

In der SPS:

Netzwerk 1:

U "Einschaltmerker" // wird gesetzt beim Drücken des EIN-Tasters
U "M_Panel_Auto"
S "M_Auto"

ON "Einschaltmerker"
ON "M_Panel_Auto"
R "M_Auto"

U "Einschaltmerker"
U "M_Panel_Man"
S "M_Man"

ON "Einschaltmerker"
ON "M_Panel_Man"
R "M_Man"


Netzwerk 2:

L 0
UN "Einschaltmerker"
SPB STAT
L 1
U "M_Man"
SPB STAT
L 2
U "M_Auto"
SPB STAT
L 3
STAT: T "Status"



Jetzt fehlt halt noch, dass nach dem Einschalten automatisch die Schaltfläche für den Automatikbetrieb grün und somit bedienbar wird!

Geht das irgendwie zu realisieren?

Vielen Dank!
 

Anhänge

  • Schaltfläche Auto.jpg
    Schaltfläche Auto.jpg
    17,5 KB · Aufrufe: 5
Zuletzt bearbeitet:
hier ein Beispiel wie es aussehen könnte
Taste_1.JPG
Taste_2.JPG

Ähnlich müstest du natürlich mit deiner Automatik
taste verfahren.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja ok, danke Helmut - so habe ich es eingestellt!

Jetzt bleibt einzig noch die Option, dass nach dem Einschalten automatisch die Schaltfläche für den Automatikbetrieb grün und damit bedienbar wird.


Geht das auch noch irgendwie zu relaisieren?
 

Anhänge

  • Bild3.jpg
    Bild3.jpg
    18,1 KB · Aufrufe: 4
Ja ok, danke Helmut - so habe ich es eingestellt!

Jetzt bleibt einzig noch die Option, dass nach dem Einschalten automatisch die Schaltfläche für den Automatikbetrieb grün und damit bedienbar wird.


Geht das auch noch irgendwie zu relaisieren?

verstehe ich jetzt noch nicht ganz :confused:

meinst du das nach Einschalten der SPS, der Automatikbetrieb
automatisch gestartet wird?
Realisierne kannst du das indem du über die Anlauf OB's der Steuerung
einen Startmerker für einen OB1 zyklus setzt.
 
Hallo Helmut,

also ich meinte es so, dass wenn der Ein-Taster am Schaltschrank gedrückt wird, automatisch die Schaltfläche für den Automatikbetrieb aktiviert (also grün) wird, während die Schaltfläche für den manuellen Betrieb rot wird. Also Automatikbetrieb ist aktiviert und manueller Betrieb ist deaktiviert, ausgehend vom Status, dass beim "Einschaltmerker" = 0 ja beide Schaltflächen die Farbe grau haben.

Die Schaltfläche für den manuellen Betrieb muss dann durch Drücken am Panel aktiviert werden, wenn ein manueller Betrieb gewünscht ist...


Wenn ich den Weg über den Anlauf OB gehe, dann klappt das doch nur, wenn die SPS komplett ausgeschaltet und dann wieder eingeschaltet wird. In meinem Fall soll jedoch der Automatikbetrieb auch dann automatisch angewählt werden, wenn lediglich über den Ein-Taster (dieser setzt den "Einschaltmerker") eingeschaltet wird.
 
Zuletzt bearbeitet:
Zurück
Oben