AWL - MD zeitverzögert um 1 hochzählen lassen

eike

Level-1
Beiträge
12
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich versuche ein kommendes Ereignis A + B durch einen Zähler in einem MD zu erfassen.
Das Problem ist, dass B ca 3 Sekunden nachflackern kann,
das kommened Ereignis aber für diese 3 bzw. 5 Sekunden per FP
nur einmal um 1 hochgezählt wird.
Ich dachte mir, dass A+B einen einschaltverzögerten Timer von z.B. 5 Sekunden startet,
und die entstehenden positive Flanke am Timerausgang dann das MD um 1 hochzählt.
Durch den 5 Sekunden Timer, versuche ich das Flackern von B zu ignorieren,
so dass nur einmal nach 5 Sekunden der Timer T das MD um 1 erhöht. Es haut aber nicht ganz hin,
was ich mir überlegt habe. Rücksetzbedingungen für den Timer habe ich noch nicht gefunden,
dachte dass das aber keine Rolle spielt, wenn ich nur die Positive Flanke des Timers auswerte:


R M2

U A
U B
L S5T#5s
SS T3

U T3
FP M1
= M2
SPBN ende
L MD4
+ L#1
T MD4
ende: NOP 0


So funktioniert es leider nicht, kann mir jemand weiterhelfen???
 
U T 3
FP M 10.0
= M 10.1
U M 10.1
SPBN ende
L MD 4
L L#1
+D
T MD 4
ende: NOP 0

Diesen Code habe ich aus S7 kopiert, ich weiss nicht, warum er bei Dir rot dargestellt wird.

Gruss
Audsuperuser
 
L MD 4
L L#1
+D
T MD 4
ende: NOP 0

Diesen Code habe ich aus S7 kopiert, ich weiss nicht, warum er bei Dir rot dargestellt wird.

Gruss
Audsuperuser


Alles klar, danke,
jetzt klappt's. Vorher hat das L bei L L#1 gefehlt. Zum Testen werde ich noch etwas brauchen,
gebe dir aber auf jeden Fall bescheid, ob es mit dem Code hinhaut. Im Voraus Danke für deinen Tipp.

Gruß
Eike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
U T 3
FP M 10.0
= M 10.1
U M 10.1
SPBN ende
L MD 4
L L#1
+D
T MD 4
ende: NOP 0

Diesen Code habe ich aus S7 kopiert, ich weiss nicht, warum er bei Dir rot dargestellt wird.

Gruss
Audsuperuser


Ich nochmal,

hab jetzt das Ereignis A+B 1 Mal gehabt.
Das dumme ist nur, dass der Zähler MD mit diesem einen Mal auf
L#16777217 hochgespungen ist. Hier nochmal mein Programm im Detail:

Code:
      R     M     82.1
      U     "DBU_60".AOn_Bef_2.FL.Contour_fault
      U     "DBU_60".AOn_Bef_2.FL.Fault3
 
      L     S5T#5S
      SS    T     82
      U     T     82
      FP    M     82.0
      =     M     82.1
      SPBN  m4
      L     MD    82
      L     L#1
      +D    
      T     MD    82
m4:   NOP   0

Ich komm nicht auf den Fehler.
 
Vielleicht sollte ich den mal probieren???

Code:
      U     M     70.1
      R     T     70
      R     M     70.1

 
      U     "DBU_70".AOn_Bef_2.FL.Contour_fault
      U     "DBU_70".AOn_Bef_2.FL.Fault1
      L     S5T#5S
      SS    T     70
      U     T     70
      FP    M     70.0
      =     M     70.1
      SPBN  m1
      L     MD    70
      +     L#1
      T     MD    70
      U     T     70
      R     T     70
      R     M     70.0
m1:   NOP   0
 
Zuletzt bearbeitet:
Code:
 U     "DBU_70".AOn_Bef_2.FL.Contour_fault
      U     "DBU_70".AOn_Bef_2.FL.Fault1
      L     S5T#5S
      SS    T     70
      U     T     70
      FP    M     70.0
      =     M     70.1
      SPBN  m1
      L     MD    70
    [COLOR=red]  L     1[/COLOR]
[COLOR=red]      +D
[/COLOR]      T     MD    70
      U     T     70
      R     T     70
      R     M     70.0
m1:   NOP   0
Probier es mal so.Hab es nicht getestet,sollte aber funktionieren.
Gruß gerhard
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

also die Flankenmerker sollten nicht in dem
MD stehen, das du hochzählst.

versuch mal:

// Zeile gelöscht

U "DBU_60".AOn_Bef_2.FL.Contour_fault
U "DBU_60".AOn_Bef_2.FL.Fault3

L S5T#5S
SS T 82
U T 82
FP M 82.0
= M 82.1
SPBN m4
L MD 84 // Adresse geändert
L L#1
+D
T MD 84 // dto.
U T 82
R T 82
m4: NOP 0


mfg.
Rolf
 
So funktioniert das hochzählen.mußt du nur in dein programm einfügen
Code:
   UN    M     10.1
      L     S5T#5S
      SE    T     70
      U     T     70
      =     M     10.1
      SPBN  m1
      L     MD    70
      L     1
      +D    
      T     MD    70
      U     T     70
      R     T     70
      m1:   NOP   0
 
Zuletzt bearbeitet:
Danke, ich hab jetzt einen funktionstüchtigen Zähler gefunden:


Code:
      U     M     70.1
      R     T     70
      R     M     70.1
 
 
      U     "DBU_70".AOn_Bef_2.FL.Contour_fault
      U     "DBU_70".AOn_Bef_2.FL.Fault1
      L     S5T#5S
      SS    T     70
      U     T     70
      FP    M     70.0
      =     M     70.1
      SPBN  m1
      L     MD    70
      L     L#1
      +D
      T     MD    70
[COLOR=red]//    [/COLOR]  [COLOR=red]U     T     70[/COLOR]
[COLOR=red]//      R     T     70[/COLOR]
[COLOR=red]//      R     M     70.0[/COLOR]
m1:   NOP   0

Hab versehentlich noch kopierte Altlasten im Code gehabt (rot).
Nur den oberen Teil verwendet funktioniert, der Code perfekt.
Nochmals Danke für die Hilfe.

Gruß
Eike
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
U "DBU_70".AOn_Bef_2.FL.Contour_fault
U "DBU_70".AOn_Bef_2.FL.Fault1
L S5T#5S
SS T 70
U T 70
FP M 70.0 // das ist wie schon vorher von Rolf
= M 70.1 // richtig geschrieben nicht
SPBN m1 // sauber,da du immer in dein MD70
L MD 70 // reinfunkst.
+ L#1 // verwende einen anderen Merker!!
T MD 70
// U T 70
// R T 70
// R M 70.0
m1: NOP 0
 
U "DBU_70".AOn_Bef_2.FL.Contour_fault
U "DBU_70".AOn_Bef_2.FL.Fault1
L S5T#5S
SS T 70
U T 70
FP M 70.0 // das ist wie schon vorher von Rolf
= M 70.1 // richtig geschrieben nicht
SPBN m1 // sauber,da du immer in dein MD70
L MD 70 // reinfunkst.
+ L#1 // verwende einen anderen Merker!!
T MD 70
// U T 70
// R T 70
// R M 70.0
m1: NOP 0


Danke,
ich bin heute Morgen noch nicht der Schnellste (Ausrede: bin seit 02:30 wach).
Aber jetzt habe ich wirklich begriffen und ändere gleich meine Merkerbits ab. Also, vielen Dank.

Gruß
Eike
 
Änderungen dank euch blau und rot markiert.
Zur Komplettierung noch der jetzt von mir eingestzte Code:
Code:
      U     M     [COLOR=deepskyblue]90.1[/COLOR]
      R     T     70
      R     M     [COLOR=deepskyblue]90.1[/COLOR]
 
      U     "DBU_70".AOn_Bef_2.FL.Contour_fault
      U     "DBU_70".AOn_Bef_2.FL.Fault1
 
      L     S5T#5S
      SS    T     70
      U     T     70
      FP    M     [COLOR=deepskyblue]90.0[/COLOR]
      =     M     [COLOR=deepskyblue]90.1[/COLOR]
      SPBN  m1
      L     MD    70
[COLOR=red]      L     L#1
      +D[/COLOR]
      T     MD    70
m1:   NOP   0

Bis die Tage
Eike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das Prellen von B kannst Du auch anders abfangen .

Code:
      U     A
      U     B
      S     M 90.1
      UN    A      
      UN    B
      R     M 90.1
      U     M 90.1
      FP    M 90.0
      SPBN  m1
...
...
...

Dadurch sparst Du Dir die Zeit. Zeiten haben immer so was von Zufall anhaften.
 
Hat was, ich hab bei der Umsetzung auch erst an S und R gedacht, blieb dann aber doch beim Zeitglied hängen.
Wahrscheinlich weil's komplizierter ist, an die einfachen Sachen denkt man oft nicht.
Das Problem könnte aber sein, dass A lange nicht zurückgesetzt wird und deshalb
ein weiteres Auslösen der FP nicht möglich ist. Ich weiß nicht wie lange A ansteht,
das kann sehr lange dauern.
Werde es wahrscheinlich machen, wie du vorgeschlagen hast. Danke, bis denn

Eike
 
Zuletzt bearbeitet:
Zurück
Oben