Lauf und Störmeldung mit einem Eingang

Damivan

Level-1
Beiträge
22
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
Bin gerade dabei eine Visualisierung für eine ältere Anlage zu erstellen.
Bekomme von einer alten AEG SPS bei einer Laufmeldung vom Band ein Dauersignal und im Störfall einen 5 Hz Takt auf meinen Eingang.
Wie programmiert man dies am geschicktesten das ich bei den 5 Hz eine Störmeldung ausgeben kann und bei einem Dauersignal eine Laufmeldung?
 
Wie programmiert man dies am geschicktesten das ich bei den 5 Hz eine Störmeldung ausgeben kann und bei einem Dauersignal eine Laufmeldung?
Eine Möglichkeit:
Code:
   U  E_Signal
   L S5T#500MS
   SV T 1
   U  T 1
   = #Störmeldung

   U  E_Signal
   L S5T#500MS
   SE T2
   U  T2
   = #Laufmeldung
Was mir bei dieser Lösung nicht gefällt, du bekommst beim Starten der Anlage zuerst eine Störmeldung signalisiert. Könnte mit einer zusätzlichen Zeit abgefangen werden, aber drei Zeiten für eine Meldung, hhhmmm.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mein Vorschlag wäre:

Code:
U E Signal
L S5T#500MS
SE T1    (T1 = Laufmeldung)
UN T1
U E Signal
L S5T#400MS
SA T2    (T2 = Störmeldung)

Bei dieser Variante wird beim Starten keine Störung gemeldet.
 
Mein Vorschlag wäre:

Code:
U E Signal
L S5T#500MS
SE T1    (T1 = Laufmeldung)
UN T1
U E Signal
L S5T#400MS
SA T2    (T2 = Störmeldung)

Bei dieser Variante wird beim Starten keine Störung gemeldet.
Das sehe ich anders. ;)
Eingang kommt > T1 ist noch nicht abgelaufen aber T2 wird schon gestartet.
 
Überwache doch das Signal wie eine ganz normale Betriebsmeldung.

Code:
U    ANSTEUERUNG    (Ausgang, Schütz, etc.)
L    S5T#2S
SE  T1                    (T1 = Anlaufüberbrückung)  

U    T1
UN  RUECKMELDUNG
S    STOERUNG
 
Das sehe ich anders. ;)
Eingang kommt > T1 ist noch nicht abgelaufen aber T2 wird schon gestartet.

Sehe ich mittlerweile auch so.:oops:

Und man kommt doch wohl nicht um 3 Zeiten herum.

Meiner neuer Vorschlag:

Code:
      U     E      0.0                  // Signal
      UN    M      1.0
      UN    M      1.2
      S     M      1.0                  // Auswerteverzögerung
      U     M      1.0
      L     S5T#500MS
      SE    T      1
      U     T      1
      R     M      1.0
      U     E      0.0                  // Signal
      L     S5T#400MS
      SE    T      2
      U     T      2
      =     M      1.1                  // Laufmeldung
      UN    M      1.0
      UN    M      1.1
      U     E      0.0                  // Signal
      L     S5T#200MS
      SA    T      3
      U     T      3
      =     M      1.2                  // Störung
 
ungetestet:
Code:
[FONT=courier new]U     #Signal
[/FONT][FONT=courier new]UN    T      1[/FONT]
[FONT=courier new]L     S5T#210MS[/FONT]
[FONT=courier new]SI    T      0        //Störunterdrückung[/FONT]

[FONT=courier new]U     #Signal[/FONT]
[FONT=courier new]L     S5T#210MS[/FONT]
[FONT=courier new]SV    T      1        //Störung[/FONT]
[FONT=courier new]
[/FONT][FONT=courier new]UN    T      1[/FONT]
[FONT=courier new]UN    T      0       //siehe Anmerkung[/FONT]
[FONT=courier new]U     #Signal[/FONT]
[FONT=courier new]=     #Ein[/FONT][FONT=courier new]           //Laufmeldung[/FONT]

[FONT=courier new]UN    T      0[/FONT]
[FONT=courier new]U     T      1[/FONT]
[FONT=courier new]=     #Stoerung[/FONT][FONT=courier new]      //Störmeldung[/FONT]
Anmerkung: Die Laufmeldung dürfte so immer erst nach dem Impuls T0 angezeigt werden, da man direkt beim ersten Ein- bzw. auch Ausschalten des Signals noch keinen eindeutigen Zustand hat. Muss der Einzustand sofort angezeigt werden, könnte man an dieser Stelle das UN T0 durch O T0 ersetzen. Man hat dann jedoch am Beginn einer Störung nach dem ersten AUS nochmal kurz eine Laufmeldung bevor dann die Störung angezeigt wird. T0 sollte dann auch eventuell geringfügig länger eingestellt werden als T1.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
...
Was mir bei dieser Lösung nicht gefällt, du bekommst beim Starten der Anlage zuerst eine Störmeldung signalisiert. Könnte mit einer zusätzlichen Zeit abgefangen werden, aber drei Zeiten für eine Meldung, hhhmmm.
Wenn man mit dieser Anzeige leben kann, sollte sogar Deine erste Zeit als verlängerter Impuls reichen, oder? Die Laufmeldung kann doch kommen, wenn der Impuls nicht nachgetriggert wird und das Signal noch da ist.
 
Zuletzt bearbeitet:
Ich habs so gelöst: 2 Zwei Zeiten. Eine betätigt, eine nicht. So hat man auch ein "zu lange Betätigt" abgefangen.

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 : MS
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
 
Zuviel Werbung?
-> Hier kostenlos registrieren
...
Code:
...
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; 
...
@Manfred Stangl,
seh' ich das richtig, daß Du ein Laufsignal hast, wenn das Signal mit der vorgegebenen Frequenz kommt?
Die Vorgabe war aber andersrum:
...
Wie programmiert man dies am geschicktesten das ich bei den 5 Hz eine Störmeldung ausgeben kann und bei einem Dauersignal eine Laufmeldung?
Nimmt man das jetzige #Impuls_ok als Störung hat man wieder das Problem von Paule, daß erst 'ne Störung vor dem OK kommt, oder?
 
Habe mich für diese Variante entschieden .....
Code:
[LEFT]U     E      0.0                  // Signal     
UN    M      1.0      
UN    M      1.2      
S     M      1.0                  // Auswerteverzögerung      
U     M      1.0      
L     S5T#500MS      
SE    T      1      
U     T      1      
R     M      1.0      
U     E      0.0                  // Signal      
L     S5T#400MS      
SE    T      2      
U     T      2      
=     M      1.1                  // Laufmeldung      
UN    M      1.0      
UN    M      1.1      
U     E      0.0                  // Signal      
L     S5T#200MS      
SA    T      3      
U     T      3     
=     M      1.2                  // Störung[/LEFT]

... läuft ;) danke nochmals
 
Zuletzt bearbeitet:
Zurück
Oben