S5 115U - Fehler in AWL (Anfänger-Frage)

Tomy

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich habe einen Ausgang1 der bei jeder Positiven Flanke eines Eingangs seinen Status wechselt. (Funktioniert)
Jetzt kommt neu ein zweiter Eingang hinzu. Hier soll ebenfalls der Ausgang1 gesteuert werden, aber bei E2=1 soll A1=1 sein. Wird bei positivem Signal E2 auf E1 ein Signal geschickt soll A1=0 sein. Wenn bei Positivem Flankenwechsel des E2 der A1 bereits 1 ist, soll später wenn E2 auf 0 wechselt A1 bleiben.
Bestimmt lässt sich der Code an sich noch verbessern, für Hinweise bin ich dankbar.
Mein AWL-Code sieht so aus:
Code:
U(
O   E  2.6                               Taster 1
O   E  2.7                               Taster 2
O   E  3.0                               Taster 3
)
UN  M  2.1                               Merker 1a
=   M  12.1                              Merker 1b
U   M  12.1                              Merker 1b
S   M  2.1                               Merker 1a
UN  E  2.6                               Taster 1
UN  E  2.7                               Taster 1
UN  E  3.0                               Taster 1
R   M  2.1                               Merker 1a
NOP 0
U   M  12.1                              Merker 1b
U   M  42.1                              Merker Licht
=   M  22.1                              Merker 1c
NOP 0
U   M  12.1                              Merker 1b
UN  M  42.1                              Merker Licht
UN  M  22.1                              Merker 1c
S   M  42.1                              Merker Licht
U   M  22.1                              Merker 1c
R   M  42.1                              Merker Licht
NOP 0
O   M  42.1                              Merker Licht
O   M  52.1                              Merker TIMER
=   A  10.3                              Licht
Fehlerbeschreibung:
Der Fehler liegt in den letzten 3 Zeilen, wenn entweder per Taster oder Timer das Licht an gemacht wird, ist A10.3 =1 d.h. das Licht kann während der Timer AN ist nicht ausgeschaltet werden. Ich komme aber einfach nicht darauf wie ich den Timer mit dem Taster kombinieren muss. (Da meine Versuche alle nicht geklappt haben habe ich den Codeteil mit der Oder-Verknüpfung ersetzt)


Situationsbeschreibung:
Ich habe 3 Taster die mir bei drücken einen Impuls geben, mit diesen wird Licht an/aus-geschaltet.
Neu hinzu kommen soll jetzt ein Timer, der das Licht z.B. von 20:00-23:00 Uhr an machen soll, während dieser Zeit ist der Merker 52.1=1
Wenn das Licht jedoch bereits an ist soll es nach 23:00Uhr an bleiben, es soll also am Ende der Zeit nur aus gehen wenn es durch den Timer an gemacht wurde. Wird das Licht durch den Timer an gemacht und danach der Taster gedrückt, soll das Licht aus gehen.

Hier noch der Code der den Timer steuert (Die S5 hat leider keine eigene Uhr)
Code:
NETZWERK   1            Modul Uhr (in Minuten)
UN  M  90.0                              Uhr Signalgeber
L   KT 300.2                             = 5 Minuten Tick
SV  T  2                                 Uhr - Minutentimer
U   T  2                                 Uhr - Minutentimer
=   M  90.0                              Uhr Signalgeber
ZV  Z  1                                 Minutenzaehler
LC  Z  1                                 Minutenzaehler
L   KZ 288                               Um 0:00 den Zaehler wieder
>=F                                      auf 0 setzen
R   Z  1                                 Minutenzaehler
NOP 0
***

NETZWERK   2            Zeit Setzen (Syncronisation)
U   E7.7                                 Signalgeber um 0:05
L   KZ 1
S   Z  1                                 Minutenzaehler
NOP 0
***

NETZWERK   3            Timer-Programmierungen
                                         Uhr Signalgeber
LC  Z  1                                 Minutenzaehler
L   KZ 234                               19:30 VON
>=F
=   M  90.1                              Timer Zeit VON
NOP 0
LC  Z  1                                 Minutenzaehler
L   KZ 264                               22:00 BIS
<F
=   M  90.2                              Timer Zeit BIS
NOP 0
U   M  90.1                              Timer Zeit VON
U   M  90.2                              Timer Zeit BIS
=   M  90.3                              Timer Zeit STATUS
NOP 0
U   M  90.3                              Timer Zeit STATUS
=   M  52.1                              Merker TIMER
BE
Schon mal vorab vielen Dank für eure Hilfe
Thomas
 
Hallo,
für deine Impuls-Steuerung ... mach doch mal folgendes :
Code:
O   E  2.6                               Taster 1
O   E  2.7                               Taster 2
O   E  3.0                               Taster 3
ZV Z11
***
L Z11
L 1
>=F
= A 10.3
***
L Z11
L 2
>=F
R Z11
Der Zähler beinhaltet schon die Flanken-Auswertung ...

Dein Problem mit der Zeit-Steuerung kann ich aus deiner Beschreibung nicht umsetzen ... was soll passieren ?

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für den Tip, werde ich noch testen.
Ich habe mal versucht die wichtigsten Situationen aufzuzeichnen die bei dem Zusammenspiel Taster u. Timer aufkommen können.

Code:
Bsp1 Taster alleine:

E1 ╔╗     ╔╗   ╔╗     ╔╗  
  ═╝╚═════╝╚═══╝╚═════╝╚══
A1 ╔═══════╗   ╔═══════╗
  ═╝       ╚═══╝       ╚══

Bsp2 Timer alleine:

T1 ╔═══════╗   ╔═══════╗
  ═╝       ╚═══╝       ╚══
A1 ╔═══════╗   ╔═══════╗
  ═╝       ╚═══╝       ╚══

Bsp3 Taster + Timer zusammen:

E1     ╔╗     ╔╗   
  ═════╝╚═════╝╚═════════════════
T1 ╔═══════╗      ╔═══╗ 
  ═╝       ╚══════╝   ╚══════════
A1 ╔═══╗      ╔══════════════════ 
  ═╝   ╚══════╝
Wenn der Timer das Licht an macht, will ich es trotzdem per Taster ausstellen können. Wenn das licht vorher schon an war, soll es am Ende des Timer-Intervall aber nicht aus gehen.

Vielen Dank
Thomas
 
... das Beispiel 2 bekommen wir schon hin ...
aber im Beispiel 3 den Einfluß des 2 E1-Impulses (ggf. in Verbindung mit dem Timer) verstehe ich nicht - warum soll dort der Timer das Licht nicht wieder aussschalten ? Das paßt für mich nicht mehr zu deiner restlichen Logik ...

Gruß
LL
 
Programmlogik

Ich dachte wenn das Licht bereits an ist soll der Timer nicht ausgeführt werden, wenn er das Licht also nicht AN schaltet, soll er es auch nicht AUS schalten.
Das muss aber nicht so sein, der Timer kann es auch ausschalten.

wenn ich einen weiteren Zähler nehme (wie der Vorschlag für den Taster) und bei Aktivierung des Timers auf 1 zähle, kann ich das Licht mit Oder-Verknüpfung E1/T1 an machen.
Wenn der Taster gedrückt wird, werden immer beide Zähler auf 0 gesetzt.
Ist der Timer aus, wird "sein" Zähler auf 0 gesetzt.
Oder:
Ich ändere den Timer, wenn aktuelle Zeit = TimerAN-Zeit, dann setze ZählerLicht = 1; wenn aktuelle Zeit = TimerAUS-Zeit dann setze ZählerLicht = 0.
Meinen Merker für den Status des Timers kann ich ja nebenher trotzdem lassen um evtl. auswerten zu können ob der Timer gerade läuft.

Werde ich heute Abend mal ausprobieren ob das so klappt.

Schon mal vielen Dank für deine Hilfe
Gruß
Thomas
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... damit bin ich so nicht einverstanden ...

Bei reinem Timer-Betrieb (Beispiel 2) kannst du den Timer mit auf-odern - OK

Bei dem Betrieb in Beispiel 3 würde ich aus dem Timer eine Flanke bilden und diese Flanke (Hilfsmerker für 0 -> 1) zum Weiterzählen des gleichen Zählers nehmen, wie die Taster-Eingänge auch. Der Zähler sollte auch nicht von einem Eingang (o.ä.) gelöscht werden, sondern nur von seinem Zählerstand (>= 2) - sonst klappt das auch nicht mehr ...

Gruß
LL
 
Hallo,
soweit ich gesehen habe hast du ja ein Bit für TimerOn M90.1 und eines für TimerOff M90.2.
Ich würde das ganze so lösen
Code:
     U(    
      O     E      2.6
      O     E      2.7
      O     E      3.0
      O     
      U     M     90.1
      UN    A     10.3
      O     
      U     M     90.2
      U     A     10.3
      )     
      UN    M      2.1
      =     M     12.1
      U     M     12.1
      S     M      2.1
      UN    E      2.6
      UN    M      2.7
      UN    E      3.0
      R     M      2.1
      NOP   0

mfg Erick
 
Hallo, ich habe die Schaltung mit dem Timer jetzt fast gelöst.

Auszug aus Timer:
Code:
LC  UHRZEIT
L   KZ 234    Ereignis AN
!=F 
L   KZ 001
S   Z2      Zähler A2.0
...    
NOP 0
LC  UHRZEIT
L   KZ 240    Ereignis AUS
!=F
R   Z2        Zähler 2.0
NOP 0
...
Auszug aus Schalter:
Code:
...
O   TASTER1    Eingang E2.6
ZV  Z2        Zähler 2.0
NOP 0
L   Z2        Zähler 2.0
L   KZ 001
>=F
=   A2.0    Ausgang A2.0
NOP 0
L   Z2        Zähler 2.0
L   KZ 002
>=F
R   Z2        Zähler 2.0
...
Ich habe jetzt nur noch das Problem, das wenn der Timer schaltet, in dieser Zeitperiode (also bis Zeit = +1) nicht durch den Taster geschaltet werden kann.
Wenn z.B. der Ausgang A2.0 AN geschaltet wird, kann ich ihn erst wieder aus machen wenn die Zeit >234 ist.
Ein "ZV Z2" hilft mir da nicht, denn dann würde er bei diesem Zeitpunkt auch das Licht ausschalten wenn es gerade an ist.

Eine Idee?

Gruß
Thomas
 
Zurück
Oben