Bedingung in WinCC flex programmieren?

Zuviel Werbung?
-> Hier kostenlos registrieren
aber das wird Sie doch, wenn du die Variable "Status" für beide Schalt-
flächen nutzt. Du mußt dann bei der Animation der einzelnen Schatlflächen
den zahlen andere Farben zuordnen.
Taste_3.JPG

Das ist ja das feine bei der sache, du hast eine Variable und kannst diese
auch noch erweitern.

Schau doch mal bei deiner Animation, ich würde dir raten, rot nicht für die
Funktion Aus zu verwenden. Mach es lieber grau wie in meinen beispiel.
Rot ist eigentlich geeigneter für störung. Wenn jetzt im Automatikbetrieb
schief läuft kannst du das mit der Farbe rot sehr gut darstellen.
 
Hm, ich habe schon wie in deinem Bild die Variable "Status" beiden Schaltflächen zugewiesen!

Wenn aber jetzt beispielsweise vor dem Ausschalten mittels Aus-Taster der manuelle Betrieb aktiviert war, so ist noch der Merker "M_Man" im "Hintergrund" aktiv. Wird jetzt über den Ein-Taster eingeschaltet, so wird, da ja der Merker "M_Man" aktiv war, jetzt die 1 geladen und somit wird die Schaltfläche für den manuellen Betrieb und nicht die für den automatischen Betrieb aktiv!
 
Zuletzt bearbeitet:
Code:
      U     "Einschaltmerker"     // wird gesetzt durch 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"
 
      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"
 
wie ist das...?
die Variabel "M_Panel_Auto" bzw. "M_Panel_Man" sind die
Schaltflächen aus dem OP. Wenn es so ist mußt du natürlich
mit den Tasten auch immer die gegenseitige Betriebsart, zurück
setzen. Sonst bleiben ja immer beide an.

Code:
      //Automatikbetrieb
      U     "M_Panel_Auto"
      S     "M_Auto"
      ON    "Einschaltmerker"
      ON    "M_Panel_Auto"
      [COLOR=seagreen]O "M_Panel_Man"[/COLOR]
      R     "M_Auto"
 
      //Handbetrieb
      U     "M_Panel_Man"
      S     "M_Man"
      ON    "Einschaltmerker"
      ON    "M_Panel_Man"
      [COLOR=seagreen]O    "M_Panel_Auto"[/COLOR]
      R     "M_Man"
 
     //Status
      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"
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja genau Helmut, so ist es - die Variablen "M_Panel_Auto" bzw. "M_Panel_Man" werden über die Schaltflächen aus dem Panel gesetzt oder rückgesetzt.

Wenn "M_Panel_Auto" gesetzt wird, wird automatisch "M_Panel_Man" zurückgesetzt - so ist es bei mir in WinCC flex programmiert!

ABER:

Wenn vor dem Ausschaltern mittels des Aus-Tasters die Variable "M_Panel_Man" gesetzt war, so ist sie das nach dem Einschalten mittels des Ein-Tasters noch immer, so dass jetzt automatisch (lt. Programm)

L 1
U "M_Man"

ausgeführt wird und somit die manuelle Schaltfläche aktiv ist!
 
Dann ist doch noch immer dein Merker für den Handbetrieb gesetzt,
da muß du dann sorge tragen das er über deinen "Austtaster" zurück
gesetzt wird. Orentiere dich mal an meinen Beispiel.

Wie ist eigentlich deine Schaltfläche im Panel organisiert, als Taster
oder als Schalter. Wie werden die Merker angesteuert die vom Panel
kommen.

Hast du in meinen Beispiel gesehen wie, ich da etwas in grün ergänzt
habe. Überlase das Ein bzw. Ausschalten der Betriebsarten vollkommen
der Steuerung. Sehe die Schaltflächen als Taster mit Leuchtmelder die
dann nicht permanent gesetzt bleiben.

Vlt. ladest du mal ein paar Screenshots hoch von deinen Schaltflächen.
 
Danke für deine Hinweise, Helmut.

Ja, habe deine Ergänzungen im Programm gesehen - aber das passiert ja bei mir im Panel (siehe Anhang!).

Es würde z.B. klappen, wenn ich in der SPS Folgendes programmiere:

U "S1"
S "Einschaltmerker"
UN "S0"
R "Einschaltmerker"
R "M_Panel_Man"
S "M_Panel_Auto"



Vielen Dank für deine Geduld...
 

Anhänge

  • Schaltfläche Automatik.jpg
    Schaltfläche Automatik.jpg
    32,2 KB · Aufrufe: 6
  • Schaltflächen.jpg
    Schaltflächen.jpg
    11 KB · Aufrufe: 6
  • Gestaltung.jpg
    Gestaltung.jpg
    36,3 KB · Aufrufe: 5
  • Bedienbarkeit.jpg
    Bedienbarkeit.jpg
    30,2 KB · Aufrufe: 6
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
ah jetzt sehe ich den fehler, mache mal folgendes bei der Taste Automatik
Ereignis Drücken -> SetzeBit -> "M_Panel_Auto"
Ereignis Losslassen -> RücksetzeBit -> "M_Panel_Auto"

und bei der Taste Hand
Ereignis Drücken -> SetzeBit -> "M_Panel_Hand"
Ereignis Losslassen -> RücksetzeBit -> "M_Panel_Hand"

so wirken deine schaltflächen nur als Taster, du speicherst doppelt
einmal im Panel und zusätzlich im Programm andere Merker, aber mit
der selben funktion im SPS Programm.
 
Puh, also dann funktioniert es aber gar nimmer... weil ja z.B. beim Loslassen der Schaltfläche Auto auch der Merker "M_Panel_Auto" zurückgesetzt wird.

In der SPS ist ja aber programmiert:

ON "Einschaltmerker"
ON "M_Panel_Auto"
O "M_Panel_Man"
R "M_Auto"
 

Anhänge

  • Drücken.jpg
    Drücken.jpg
    28,4 KB · Aufrufe: 6
  • Loslassen.jpg
    Loslassen.jpg
    25,9 KB · Aufrufe: 5
Zuletzt bearbeitet:
Also gehen sollte ja grundsätzlich die Umschaltung:
"Automatik" <-> "Hand" aber es bleibt immer eine
Betriebsart an.
Das könntest du dadurch lösen das du eine zusätzliche
Taste für "Aus" anlegst oder du schreibst dein Programm
als Binäruntersetzer um.

Code:
      //Automatikbetrieb
      U     "M_Panel_Auto"
      S     "M_Auto"
      ON    "Einschaltmerker"
     [COLOR=black] O "M_Panel_Man"
[/COLOR]      R     "M_Auto"
 
      //Handbetrieb
      U     "M_Panel_Man"
      S     "M_Man"
      ON    "Einschaltmerker"
     [COLOR=black] O    "M_Panel_Auto"
[/COLOR]      R     "M_Man"
 
     //Status
      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"

Beispiel für eine Binäruntersetzer
Code:
U Taste
FP Hilfsmerker
X Merker
= Merker
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ok, ja das sollte auch gehen...

Wäre es denn falsch, wenn ich die Schaltflächenzuweisung bei mir in WinCC flex so belasse wie es war und in der SPS zusätzlich programmiere:

Code:
      U     "S1"
      S     "Einschaltmerker"
      UN    "S0"
      R     "Einschaltmerker"
      [COLOR=red]R     "M_Panel_Man"[/COLOR]
[COLOR=red]      S     "M_Panel_Auto"[/COLOR]
 
 
// Automatikbetrieb
      U     "Einschaltmerker"
      U     "M_Panel_Auto"
      S     "M_Auto"
      ON    "Einschaltmerker"
      ON    "M_Panel_Auto"
      R     "M_Auto"
 
// Handbetrieb
      U     "Einschaltmerker"
      U     "M_Panel_Man"
      S     "M_Man"
      ON    "Einschaltmerker"
      ON    "M_Panel_Man"
      R     "M_Man"
 
 
 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"

So würde es nämlich prima funktionieren!

Vielen Dank, pinolino
 
das ist nicht so schön, besser ist es die Schaltflächen nur als "Taster"
zu sehen wie mit wirklichen Hardware Tasten auch, da würdest du das
doch auch so handhaben. Oder nimmst du da Rastschalter?
 
ich habe mir gerade noch mal dein Programm angeschaut.
Finde ich nicht so toll, da muß mann lange überlegen was du
da machst und ich habe es noch nicht verstanden.

Wie wäre es den mit einer zusätzlichen Austaste im Panel.
Code:
//Automatikbetrieb
      U     "M_Panel_Auto"
      S     "M_Auto"
      ON    "Einschaltmerker"
     [COLOR=black]O "M_Panel_Man"[/COLOR]
[COLOR=red]     O "M_Panel_Aus[/COLOR]
      R     "M_Auto"
 
      //Handbetrieb
      U     "M_Panel_Man"
      S     "M_Man"
      ON    "Einschaltmerker"
     [COLOR=black]O    "M_Panel_Auto"[/COLOR]
[COLOR=black][COLOR=#ff0000]     O "M_Panel_Aus[/COLOR]
[/COLOR]     R     "M_Man"
 
     //Status
      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"
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Yep, stimmt schon Helmut, mein Programm ist etwas undurchsichtig...

Das mit der Austaste ist eine gute Idee und es klappt auch!

Nochmals vielen Dank für deine Hilfe.

Grüße

pinolino
 
Zurück
Oben