Initiator-impulse auswerten!

Ricko

Level-1
Beiträge
118
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo SPS'ler

ich möchte Impulse (ca. 1 Impuls pro sekunde, Drehrad) auswerten.
Sie sollen gezählt werden und bei z.B. 30 Impulse /Minute ein Merker "Drehzahl_OK" gesetzt werden. Bei niedriger Drehzahl soll der Merker resetet werden.

Teilweise funktioniert meine Lösung aber es gibt Probleme.
Ein Zähler Z1 (vorwärts) erfasst die Impulse. Er wird dem Timer T1 Ausgang zurückgesetzt. Der Timer (z.B. 10sek, als Einschaltverzögerung) wird mit seinem Ausgang (neg.) auch resetet.
In gleichem Zeitabstand zähle ich die Impulse, vergleiche (==I) mit 30. So bekomme ich meine Meldung "Drehzahl_OK". Aber beim Nulldurchgang des Zählers ist auch mein Merker "0"

Es gibt bestimmt fertige Lösungen!
wer kann helfen!

Fragende Grüße
Ricko
 
Code:
UN M10.0
L S5T#60s
SE T0
U T0
= M10.0   //Minutenpuls

U Initiator
FP M11.1
= M11.0 //Flanke Initiator

U M11.0
SPBN PULS

L MW20 //Speicher für Pulszähler
L 1
+I
T MW20

PULS: NOP 0


U M10.0    //1 Minute vergangen, Zählwert retten ... anschließend löschen
SPBN CLR

L MW20
T MW22

L 0
T MW20

CLR: NOP 0



L MW22  //Zählwert vergleichen
L 30
>=I
= Drehzahl OK
Nur mal so als Anregung!

Mfg
Manuel
 
Hallo!
Eine Lauf - Stillstandsüberwachung ohne Zähler nur mit Laufzeiten für einen Geber.

Code:
FUNCTION "Laufüberwachung" : VOID
TITLE =LAUFÜBERWACHUNG MOTOR
//Ist eine einfache Laufüberwachung, die auf einen Impuls (in dem Fall am unteren 
//Totpunkt) aufgebaut ist.
AUTHOR : XXX
VERSION : 1.2
 
VAR_INPUT
  Impuls : BOOL ; 
  T_Impuls_OK : TIMER ; 
  Zeit_ok : S5TIME ; 
  T_Impuls_NOK : TIMER ; 
  Zeit_nok : S5TIME ; 
END_VAR
VAR_IN_OUT
  Impuls_ok : BOOL ; //Impuls kommt regelmäßig im definierten Abstand
  Impuls_zu_selten : BOOL ; //Impuls kommt zu selten
  Impuls_zu_lange : BOOL ; //Impuls steht zu lange an
END_VAR
BEGIN
NETWORK
TITLE =so lange der Motor läuft gesetzt -> zu lange
//1. Laufüberwachung der Stanze:
//Wenn der Impuls länger als 500ms ansteht, d.h., die Maschine ist zu langsam, 
//oder bleibt blöderwiese am Impuls (UT) stehen, schaltet das einschaltverzögerte 
//Zeitgleid durch.
      U     #Impuls; 
      L     #Zeit_ok; 
      SE    #T_Impuls_OK; 
      NOP   0; 
      NOP   0; 
      NOP   0; 
      U     #T_Impuls_OK; 
      =     #Impuls_zu_lange; 
NETWORK
TITLE =Zu wenig
//Solange der Impuls innerhalb der angegebenen Zeit kommt, schaltet die 
//Ausschaltverzögerung durch (hat im Normalfall immer durchgeschaltet).
      U(    ; 
      U     #Impuls; 
      L     #Zeit_nok; 
      SA    #T_Impuls_NOK; 
      NOP   0; 
      NOP   0; 
      NOP   0; 
      U     #T_Impuls_NOK; 
      )     ; 
      NOT   ; 
      =     #Impuls_zu_selten; 
NETWORK
TITLE =Alles in Ordnung
//Nicht zu selten und nicht zu lange = Alles ist in Ordnung.
      UN    #Impuls_zu_selten; 
      UN    #Impuls_zu_lange; 
      =     #Impuls_ok; 
END_FUNCTION
 
Zurück
Oben