2 zeitvorgaben für ein timer

prinz1978

Level-2
Beiträge
149
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo
ich bin ein anfänger in awl meine frage währe wie kann ich 2 zeitvorgaben für ein timer programmieren ? die genaue aufgabestellung ist eigentlich E 0.0 H =20sec L=10sec E 0.1 H Zeitfreigabe AW 128 Restzeitanzeige (BCD) es soll mit SPB befehl programiert werden.
danke im vorraus .

mfg
 
Hausaufgabe hilfe gibt es meist erst nach dem man einen Ansatz geliefert hat aus dem hervor geht das man sich selbst Gedanken gemacht hat.

Also poste deine Idee wie es gehen könnte. Du wirst sich nicht ausgelacht.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo
ich bin ein anfänger in awl meine frage währe wie kann ich 2 zeitvorgaben für ein timer programmieren ? die genaue aufgabestellung ist eigentlich E 0.0 H =20sec L=10sec E 0.1 H Zeitfreigabe AW 128 Restzeitanzeige (BCD) es soll mit SPB befehl programiert werden.
danke im vorraus .

mfg

Das geht mit Sprungbefehlen, Lade- u. Transferiere und einem Timer.

Nicht schwer.
 
hallo
danke für die antworten naja ich habe mir schon etwas gebastelt jedoch funktioniert das ncht sieht so aus bitte nicht lachen kann eben noch nicht proggen

U E 1.0
L MW 2
SE T 1
NOP 0
NOP 0
NOP 0
NOP 0



U E 1.0
SPB Adr
L S5T#20S
T MW 2
Adr:L S5T#10S
T MW 4
UN E 1.0

mfg
 
hallo
danke für die antworten naja ich habe mir schon etwas gebastelt jedoch funktioniert das ncht sieht so aus bitte nicht lachen kann eben noch nicht proggen

U E 1.0


L MW 2
...


U E 1.0
SPB Adr
mfg

Würd mal tippen, dass du auch die Adressen E0.0 und E0.1 verwenden solltest, und nicht beidesmal E1.0
;-)

hth
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Dein Programm ist ja schon mal ein Ansatz ;).

So sollte es gehen (ungetestet):
Code:
//Wenn E 1.0 True, dann 10 Sekunden
//Wenn E1.0 False, dann 20 Sekunden
//Also hat der Timer immer 20 Sekunden als Defaultzeit

      U     E      1.0
      UN    E      1.1
      SPB   Adr
      L     S5T#20S
      SPA   Tran
Adr:  L     S5T#10S
Tran: T     MW     2

//Wenn E 1.0 oder E 1.1, dann Start des Timers
//Zwischen E 1.0 True und E 1.1 True müssen
//beide E mind. 1 Zyklus lang False sein
      U     E      1.0
      O     E      1.1
      L     MW     2
      SE    T      1
      NOP   0
      NOP   0
      LC    T      1
      T     MW     4
      NOP   0
In MW4 steht der aktuelle Zeitwert in BCD.
 
hallo
danke für eure hilfe sitze son seit einem tag davor war schon fast am verzweifeln spitzen forum.

mfg

Merke: Um hilfe bei Hausaufgaben zu bekommen immer auch den eigenen Lösungsansatz mit posten.

Wie immer gibt es verschiedene Lösungswege. Hier noch einer von mir auch ungetestet:
Code:
      L     S5T#20s  //Default 20s
      T     MW  2
      U     E   0.0
      SPB   M001
      L     S5T#10s  //Wird bei E 0.0 High übersprungen
      T     MW  2    //Wird bei E 0.0 High übersprungen
M001: U     E   0.1
      L     MW  2
      SE    T   1
      LC    T   1
      T     MW  4
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
vielleicht noch etwas dazu, Zeitvorgabe wird nur bei steigende Flanke der VKE übernommen, d.h. bei "laufendem" Timer sind keine Änderungen in Zeitvorgabe von ihm akzeptiert, oder nutzt man s.g. Freigabe (nie gemacht)
 
ich bin ein anfänger in awl meine frage währe wie kann ich 2 zeitvorgaben für ein timer programmieren ? die genaue aufgabestellung ist eigentlich E 0.0 H =20sec L=10sec E 0.1 H Zeitfreigabe AW 128 Restzeitanzeige (BCD) es soll mit SPB befehl programiert werden.

Ich würde sagen, dass die Lösung von Ralle nicht ganz richtig ist.

Hier nun meine leicht geänderte Lösung:

Code:
// Wenn E0.0 = H dann T1 = 20 Sekunden
// Wenn E0.0 = L dann T1 = 10 Sekunden
 
      U     E      0.0
      SPB   M01
      L     S5T#10S
      SPA   M02
M01:  L     S5T#20S
M02:  T     MW     2
 
// Wenn E0.1 = H dann T1 Start
// Wenn E0.1 = L dann T1 Stopp
 
      U     E      0.1
      L     MW     2
      SE    T      1
      NOP   0
      NOP   0
      LC    T      1
      T     AW   128
      NOP   0

Gruß Kai
 
Zuletzt bearbeitet:
elegant, Her Fönig

Hallo,

ich finde die Lösung von zotos eleganter, kein Sprung zuviel und immer irgendein Wert am Timer.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
STEP 7 Assemblersprache !!!

Hallo,

ich finde die Lösung von zotos eleganter, kein Sprung zuviel und immer irgendein Wert am Timer.

Ja, seh ich auch so.
Obwohl in der Lösung noch Optimierungspotenzial steckt.
Mir fällt da auf Anhieb eine Variante ein, die mit 8 Zeilen auskommt.
 
...
Obwohl in der Lösung noch Optimierungspotenzial steckt.
Mir fällt da auf Anhieb eine Variante ein, die mit 8 Zeilen auskommt.

Mein Chef sagt immer nichts ist so gut das man es nicht mehr verbessern könnte.

Das Du noch eine andere Lösung hast finde ich gut wenn DU sie noch hier rein stellst um so besser.

Ich denke das der Fragesteller sich alle Lösungen anschauen sollte und die Unterschiede genau betrachten sollte dann hat er wenigstens noch einen schönen Lerneffekt dabei ;o)
 
@Kai

Du hattest Recht, ich hab die Aufgabenstellung zu schnell überflogen, sieht man ja an meiner Erlärung oben drüber, bei E1.0 20 Sek. und bei E1.1 10Sek macht mein Programm, die Aufgabenstellung war etwas anders.
Na, da hatten doch auch andere noch was zu tun :ROFLMAO:!
 
Wenn Du nicht willst, dann stelle ich eben die Lösung rein: :cool:

Code:
      L     S5T#20S
      U     E      0.0
      SPB   M01
      L     S5T#10S
M01:  U     E      0.1
      SE    T      2
      LC    T      2
      T     AW   128
Gruß Kai

Diese Abwandlung ist wirklich schön kurz. Und das Transferieren in das MW war für die Funktion wirklich völlig unnütz.

Es ist aber eher ungewöhnlich (zumindest als Anfänger) das man etwas in den ersten Akku lädt und erst einige Zeilen später (mit Sprung) verwendet.
 
Zurück
Oben