Taster verschiedene Wertigkeiten addieren

blaupille29

Level-1
Beiträge
65
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich habe 5 Taster programmiert die nachher verschiedene Wertigkeiten haben sollen.
Taster 1 :5 Euro
Taster 2 :7 Euro
Taster 3 :9 Euro
Taster 4 :11 Euro
Taster 5 :14 Euro

Jedesmal wenn ich einen Taster drücke soll es über ein VW addiert werden.

Jetzt soll aber über einen 6.Taster nur die zuletzt eingegebene Wertigkeit subtrahiert werden (Storno letzte Eingabe)

Das ganze soll auf einer s7-200 laufen.

WinCC Advance ist bereits erstellt (Taster v0.1,V0.2,V0.3,V0.4 und v0.6)
Stornotaster (v0.6)
Resettaster (v0.7) soll VW auf 0 setzen.

Habe schon alles ausprobiert aber nichts hinbekommen(besonders die Funktion Storno letzte Wertigkeit subtrahieren)

Hat jemand ne Idee ?
Sollte nicht zu kompliziert werden da ich nachher in 9 SBR`s habe in denen das ganze parallel laufen soll.Also 9 x 7 Taster
 
In Abhängigkeit der Flanke der jeweiligen Taste springst Du an eine Programmstelle (5 Möglichkeiten).
Dort lädst du einen Wert (5,7,9,11, 14) in den Akku und speicherst diesen.
Absprung zu einer Marke (immer dieselbe) wo du den Gesamtwert nimmst und den Akkuwert oder den Gespeicherten addierst.
Drückt man die Stornotaste springst du zu einer Marke wo Du vom Gesamtwert den gespeicherten Wert (ist ja der letzte der gemerkt wurde) wieder abziehst.

Alles klar?

In der 300er gibt es auch in FUP die Möglichkeit eine Addition bedingt "EN" auszuführen, ob das bei der 200er auch geht weiss ich nicht.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe noch nie mit Sprungmarken gearbeitet.
Ich habe es gerade versucht so wie es mir logisch erschien,aber leider steht beim übersetzen in dem Netzwerk:

Netzwerk 20, Zeile 1, Spalte 5: FEHLER 51: Befindet sich eine Operation LBL, NEXT, SCR oder SCRE im Netzwerk, darf keine andere Operation im Netzwerk enthalten sein.
 
also ich würde dies genau gleich machen wie borromeus.

Du soltest die Taster mit Flanken auswerten um mit Hilfe von Sprungmarken die gewünschte Operation durchzuführen.

Wenn du eine Addition rückgängig machen willst ist der letzte Wert ja noch im Akku2 gespeichert, ... also auch kein Problem.

Gruß
Michi
 
Leider doch nicht.
ich habe 9 SBR in denen jeweils die Operation laufen soll.
5 davon kann ich mit AC0 AC1 AC2 AC3 und AC4 hinbekommen.
Dann hat die s7-200 keine mehr.

Gibt es nen Trick dabei ?
 
Was machst Du mit den Akkus?
Wofür brauchst Du mehr als einen, maximal zwei?
Speicherst Du in den Akkus die Werte rein?

Als Speicher verwendet man Variablen!!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bei der S7-200 sind auch Arithmetik- und Move-Operationen VKE-abhängig. Man braucht für dieses Programm keine Sprünge.
Code:
SUBROUTINE_BLOCK SBR_1:SBR1
TITLE=Tastenwerte saldieren
//V0.1 .. V0.7: Tastenbits aus Visu
//VW100: Wert der zuletzt gedrückten Taste
//VW200: Summe (Saldo)
BEGIN
Network 1 //Taste1 : +5 EUR
LD     V0.1
MOVW   5, VW100
Network 2 //Taste2 : +7 EUR
LD     V0.2
MOVW   7, VW100
Network 3 //Taste3 : +9 EUR
LD     V0.3
MOVW   9, VW100
Network 4 //Taste4 : +11 EUR
LD     V0.4
MOVW   11, VW100
Network 5 //Taste5 : +14 EUR
LD     V0.5
MOVW   14, VW100
Network 6 //Addieren
LD     V0.1
O      V0.2
O      V0.3
O      V0.4
O      V0.5
EU
+I     VW100, VW200
Network 7 //Taste6 : letzten Wert Subtrahieren / Storno
LD     V0.6
EU
-I     VW100, VW200
Network 8 //Taste7 : Reset Saldo und letzten Wert
LD     V0.7
MOVW   0, VW200
MOVW   0, VW100
Network 9 //Tastenbits löschen
//SM0.0: Immer Ein
//Empfehlung:
//Nach der Verarbeitung die Tastenbits von der Visu löschen, dann muß die Visu das Loslassen 
//der Tasten nicht signalisieren. Also nur "Schaltfläche_x > Ereignisse > Klicken: SetzeBit".
//Die Flankenerkennungen ---|P|--- (AWL: EU) in den Netzwerken 6 und 7 können dann entfallen.
//Dieses Netzwerk mit dem Löschen der Tastenbits am Besten am Ende des OB1 anordnen.
LD     SM0.0
R      V0.1, 7
END_SUBROUTINE_BLOCK
Einfügen dieses Programmcodes in MicroWIN:
Obigen Code mit Texteditor als SBR1.AWL speichern. Dann in MicroWIN rechter Mausklick auf Programmbaustein > Importieren...
und die gerade gespeicherte SBR1.AWL importieren. Ein eventuell schon vorhandener SBR1 wird dabei überschrieben!
Man kann auch vor dem Speichern die erste Zeile des Codes auf die gewünschte SBR-Nummer anpassen.

Harald
 
Nachtrag

Der Storno des letzten Wertes sollte besser nur einmal möglich sein, deshalb den letzten Wert nach dem Storno löschen.
Code:
Network 7 //Taste6 : letzten Wert Subtrahieren / Storno
LD     V0.6
EU
-I     VW100, VW200
[B]MOVW   0, VW100[/B]

Harald
 
Zurück
Oben