2 Werte Zeitversetzt auslesen

Chry007

Level-1
Beiträge
17
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hey,
ich habe folgendes Problem:
Ich möchte mit einer S5-100U zwei Analogwerte mit einem Abstand von ca. 1 Sekunde auslesen, diese miteinander vergleichen, und je nach Ergebnis entweder einen Merker setzen und das ganze wiederholen oder das Programm beenden.

Ich kriegs einfach nicht hin. Ich hab gedacht es müsste ganz einfach mit einer Einschaltverzögerung gehen, aber egal was ich tue, der Timer läuft maximal einmal ab und bleibt dann stehen...

Dankeschön schonmal im Voraus für eure Hilfe,
Chry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Netzwerk 1:
Code:
S     M 1.0

U     M 1.0
L     KT 001.2
SE   T 1
U     M 1.1
R     T 1
U     T 1
S     M 1.1
U     M 1.2
R     M 1.1
U     M 1.1
L     KT 001.2
SE   T 2
U    M 1.2
R    T 2
U    T2
S    M 1.2
U    M 1.0
R    M 1.2
U    M 1.1
R    M 1.0

Netzwerk 2:
Code:
U     M 1.1
SPB  FB 3

Netzwerk 3:
Code:
U     M 1.2
SPB  FB 4

Das ist nen verkapptes FUP-Programm... Ist sehr unübersichtlich, ich weiß, aber alles, was ich hingekriegt hab.
In den FB 3 und 4 werden die Werte eingelesen.
 
Hallo Chry,

um einen Timer zu Starten brauchst Du eine positive Flanke. Da aber Dein
M1.0 immer 1 ist kommt dort keine neue Flanke. Ein Rücksetzen des Timers
reicht nicht.

Es gibt zwei Möglichkeiten den Flankenmerker zurückzusetzen:
Code:
UN M 1.1
SPB =M001
U M1.1     
UN M1.1  // Aufruf SE T1 mit VKE = 0
SE T1
M001:
oder
Code:
U M1.1
R T1.11
Grüße
Gebs
 
Zuletzt bearbeitet:
Hallo,
ich pflege mir bei so etwas (ganz grundsätzlich) immer eine Schrittkette aufzumalen (das hast du ja schlußendlich hier) in der die Maßnahmen und der Ablauf beschrieben ist und die setze ich dann im Code um.
Ganz grundsätzlich wird dadurch die Erstellung des Codes viel einfacher.

Deine Kette wäre nun :
Code:
S0 - warten
   U -DT Start
S1 - Verzögerung
   U - Verzögerung abgelaufen
S2 - Werte einlesen
   U - Werte eingelesen
S3 - Werte vergleichen
   U - Werte wie gewünscht
      -> S4 - Ende
   UN - Werte wie gewünscht
      -> S1 - Verzögerung
S4 - Ende
   U - neue Aktion
      -> S1 - Verzögerung
Das könntest du mit einer Merker-Schrittkette (wie schon begonnen) umsetzen und in einem FB erstellen (wegen der benötigten bedingten Sprünge). In FUP würde ich das allerdings nicht hinbekommen (nur in AWL).

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vielen Dank schonmal für die Hilfe.
Aber ich bein ein absoluter Anfänger und kann deswegen damit nicht so viel anfangen. Habt ihr vielleicht ein kurzes Beispielprogramm, das die Sache deutlicher macht?
 
Hallo

FB 1

UN M 10.0
L KT 100.0
SE T1

U T1
= M 10.1

UN M 10.1
R M 10.2

U M 10.1
UN M 10.2
= M 10.0
S M 10.2

U M 10.0
R M 10.3

U M 10.0
U(
L Analogwert 1
L Analogwert 2
>F
)
S M 10.3

Merker 10.3 = 1 -> z.B. Sprung in FB 2, wenn nicht in FB 3
 
OK cool. :) Der Timer läuft immer wieder ab. Aber wann muss ich dein Eingang abfragen, damit die Werte eine Sekunde auseinanderliegen? Danke für eure Geduld!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Ich möchte mit einer S5-100U zwei Analogwerte mit einem Abstand von ca. 1 Sekunde auslesen

M 10.0 = 1 im Interval einer Sekunde. Nur eine, einzige Zykluszeit.

diese miteinander vergleichen, und je nach Ergebnis entweder einen Merker setzen

das ist unten geschrieben

U M 10.0 <----- (der Wischmerker) ist aktiv genau ein mal pro Sekunde
U(
L Analogwert 1
L Analogwert 2
>F
)
S M 10.3
 
Zurück
Oben