Step 7 Blinktakt in Sprungleiste

Cakuza

Level-2
Beiträge
8
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich bin noch ein blutiger Anfänger im S7 programmieren.
Deshalb wollte ich euch um eure Meinung fragen.

Ich möchte durch Drücken der Taste T einen automatisierten Ablauf starten.
Wenn alle Bedingungen erfüllt sind sollte der Taster T leuchten.
Das habe ich mit einer Sprungleiste realisiert.

Wenn jedoch der Taster angewählt wurde, aber die Bedinungen noch nicht erfüllt sind, soll der Taster blinken.


Meine Frage:
Soll ich das in ein extra NW schreiben auserhalb der SPL, oder kann ich das in die SPL miteinbauen?

mfg
 
Warum so kompliziert? Wie sieht deine SPL aus?
Würde es nicht ausreichen, deine Bedingung mit UND zu Verknüpfen, und das Ergbnis mit einen Taktmerker zu verodern und damit die Tastenleuchte anzusteuern?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Zusammengefasst sieht sie so aus:

Kann ich den Blinktakt so schreiben?


Code:
 L     #Schrittmerker

      SPL   ERR
      SPA   S0 
      SPA   S1
      SPA   S2
      SPA   S3  //wartet auf Tastendruck von T1-15
      SPA   S4  //speichert gedrückte Taste in einem Byte (Dezimal 1...15)
      SPA   S5  //hier wollte ich den Blinktakt einfügen
      SPA   S6  //Kontrolle ob Bedingungen erfüllt sind, falls erfüllt springe zu S9
      SPA   S7  //Bedingung 1
      SPA   S8  //Bedingung 2
      SPA   S9  //Programm start
      SPA   S10 //LED leuchten, wenn programm gestartet

ERR:  SPA   S0

Code:
S5:   SET   

      L     #T_Tasten_Speicher
      L     1
      ==I   
      SPB   S8a

S5a:  SET   
      U     "m_takt_1,0s"
      =     #LED_Taste_1

 L     0
 T     #Schrittmerker
BEA
 
Zuletzt bearbeitet:
Auch wenn ich den Sinn hinter der Sprungleiste nicht ganz verstehe (grundsätzlich so und die "Schritte" z.B. S5a und S8a), probier ich dir zu helfen.
Wenn ich dich richtig verstehe, soll die Taste immer blinken, wenn die Bedingungen nicht erfüllt sind, oder? Warum nicht einfach vor die Sprungleiste das packen?
Und wenn das Programm läuft, dann halt im Schritt S10 die LED "setzen".

Code:
[COLOR=#ff0000]      U     "m_takt_1,0s"
      =     #LED_Taste_1[/COLOR]

 L     #Schrittmerker
      SPL   ERR
      SPA   S0 
      SPA   S1
      SPA   S2
      SPA   S3  //wartet auf Tastendruck von T1-15
      SPA   S4  //speichert gedrückte Taste in einem Byte (Dezimal 1...15)
      SPA   S6  //Kontrolle ob Bedingungen erfüllt sind, falls erfüllt springe zu S9
      SPA   S7  //Bedingung 1
      SPA   S8  //Bedingung 2
      SPA   S9  //Programm start
      SPA   S10 //LED leuchten, [COLOR=#ff0000]wenn Bedingungen erfüllt sind[/COLOR]

ERR:  SPA   S0
//
.
.
//

S10:  L 0   
      U   "Eins_Merker"
      =     #LED_Taste_1

Und kurzer Vorschlag, um deinen Wünschen gerecht zu werden:
Code:
U "Bed_1"
U "Bed_2"
O "m_takt_1,0s"
= #LED_Taste_1
 
Danke für den Vorschlag, hat mir geholfen ;)
Programm funktioniert.
Habe am Ende der Sprungleiste einen Zyklischen Bereich eingefügt, wo die LED immer aktualisiert wird.

Code:
      L     #T_Tasten_Speicher   //Überprüfen welchen Wert #T_Tasten_Speicher hat
      L     1
      ==I   
      SPB   S52a

      R     #LED_Taste_1      //wenn im #T_Tasten_Speicher nicht 1 steht, wird der Sprungbefehl S52a nicht erfüllt, und die LED's werden zurückgesetzt
      SPA  S52z

S52a: O     "m_takt_1,0s"
      O     #LEDmerker[1]
      =     #LED_Taste_1

S52z: NOP 0

#LEDmerker[1] bekommt in der Sprungleiste den Wert 0 oder 1 zugteilt
0 -> Blinken, wenn Bedingung nicht erfüllt
1 -> Leuchten, wenn Bedingung erfüllt

lg
 
Zuletzt bearbeitet:
Zurück
Oben