Schnelles und langsames blinken

BastiMG

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

ich hab mal wieder ein Problem!

Aufgabe lautet:

Die Lampe leuchtet beim laufen des Motors, wenn eine Störung durch Termistorschutz ensteht soll die Lampe blinken (Binkmerker M100.7).
Wenn dann Störung durch den Taster E0.0 quittiert wird und die Störung steht nicht mehr an soll die Lampe ausgehen. Steht sie allerdings weiterhin an soll die Lampe schneller Blinken (Blinkmerker M100.0). Wenn die Lampe schnell blinkt und die Störung geht von alleine wieder weg soll die Lampe auch wieder ausgehen!
 
Ich fände es ja sinvoller eine seperate Störungslampe zu benutzen.

aber ist ja wahrscheinlich ne hausaufgabe...

wo genau ist denn dein problem? hast du nicht mal n ansatz? oder willst du dass du fertig lösug bekommst?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ne, es soll die gleiche Lampe sein!

Also ich bin soweit das meine Lampe leutet beim Betriebund bei Störung blinkt.

Für den Rest hab ich noch nicht wirklich nen Ansatz.

Gibt es einen FB dafür?
 
Flimmerblinker

...soll die Lampe schneller Blinken (Blinkmerker M100.0). !
Hallo Basti,
wenn deine Blinkfrequenz aus dem Taktmerkerbyte kommt, dann würde M100.0 mit 10 Hz blinken. Das ist Flimmern.
Als Lösungsansatz:
Langsames Blinken ... U M100.7 ...
Schnelles Blinken ... U M100.2 ...
 
Zuletzt bearbeitet:
Hallo zusammen,

ich hab mal wieder ein Problem!

Aufgabe lautet:

Die Lampe leuchtet beim laufen des Motors, wenn eine Störung durch Termistorschutz ensteht soll die Lampe blinken (Binkmerker M100.7).
Wenn dann Störung durch den Taster E0.0 quittiert wird und die Störung steht nicht mehr an soll die Lampe ausgehen. Steht sie allerdings weiterhin an soll die Lampe schneller Blinken (Blinkmerker M100.0). Wenn die Lampe schnell blinkt und die Störung geht von alleine wieder weg soll die Lampe auch wieder ausgehen!

Nehme an du brauchst es akkut für eine Anlage oder ein Projekt.
Und ist keine Lernaufgabe.

Mal ganz auf die Schnelle jetzt runtergetipselt damit du was hast.
Weiss ned ob es fehlerfrei ist. Aber daran kannst dich auf die Schnelle orientieren. Musst halt noch sauberer in Netzwerken programmieren und besser beschriften und an dein Projekt anpassen.
Aber hast eine einfachen Lösungsweg.

Kopiere es in die AWL dann sieht es übersichtlich aus.

Hoffe ist dir hilfreich.

Grüsse.


Code:
// Takt 1Hz Sekune Bilden
// in M 100.7 Blinkmerker langsam  
// Zeit optional bei L S5T# einstellen
//;
      UN    M     10.6
      L     S5T#1S
      SE    T      1
//;
      U     T      1
      =     M     10.6
//;
      U     M     10.6
      UN    M     10.2
      S     M     10.0
//;
      U     M     10.6
      U     M     10.2
      R     M     10.0
//;
      UN    M     10.6
      U     M     10.0
      S     M     10.2
      UN    M     10.6
      UN    M     10.0
      R     M     10.2
//;
      U     M     10.0
      =     M    100.7
//;
// Takt 2Hz Sekunde Bilden
// in M 100.0 Blinkmerker schnell
// Zeit optional bei L S5T# einstellen
//;
      UN    M     11.6
      L     S5T#500MS
      SE    T      2
//;
      U     T      2
      =     M     11.6
//;
      U     M     11.6
      UN    M     11.2
      S     M     11.0
//;
      U     M     11.6
      U     M     11.2
      R     M     11.0
//;
      UN    M     11.6
      U     M     11.0
      S     M     11.2
      UN    M     11.6
      UN    M     11.0
      R     M     11.2
//;
      U     M     11.0
      =     M    100.0
//;
//;
//;
//;
// Ansteuerung der Lampe
// M1.0 = Betrieb
// M1.1 = Stoerung
// M1.2 = Stoerung und Quittiert
// A1.0 = Lampe
// E 0.0 = Stoerungsquittieren
// E 0.1 = Stoerung liegt an
//;
      U     E      0.1
      S     M      1.1
//;
      U     E      0.0
      O     M      1.2
      UN    E      1.1
      ON    M      1.0
      R     M      1.1
      R     M      1.2
//;
      U     M      1.1
      U     E      0.1
      U     E      0.0
      S     M      1.2
//;
//;
// Anzeige ohne Fehler
      U     M      1.0
      UN    M      1.1
      UN    M      1.2
//;
      O(    
// Fehler langsam
      U     M      1.0
      U     M      1.1
      UN    M      1.2
      U     T      1
      )     
//;
      O(    
// Fehler schnell
      U     M      1.0
      U     M      1.1
      U     M      1.2
      U     T      2
      )     
//;
      =     A      1.0
//;
//;
 
Zuviel Werbung?
-> Hier kostenlos registrieren
HalloDanke für deine Antwort, aber der Taktmerker ist doch im System bzw in der Hardware schon dabei und verwendbar! Eingestellt unter Hardware! Gibt es hier keinen direkten Baustein für??
 
Also die Taktmerkerfrequenz ist in der Hilfe unter Taktmerkerbyte zu finden.
Das mit mehreren Störungen bzw. Betriebszuständen auf einer einzigen Leuchte anzeigen zu lassen war glaub vor noch nicht allzulanger Zeit hier auch Thema.

Allgemein (Betrieb ) oder (Störung1 & Taktmerker langsamer) oder (Störung 2 & Taktmerker schnell)=Betriebsanzeige.

Also ein Baustein währe denk ich mal von den möglichen "Störungsarten" und mal mindestens 8 Frequenzen ein Baustein mit 8 Eingängen (für jede Frequenz einen) und 1 Ausgang.

Die Aufgabe kommt mir bekannt vor und ist denke mal mit den 2 Taktmerker und einer Zeit und Bitverknüpfungen ein relativ kleines Netzwerk.

Betrieb
oder
Störung Mx.x setzt Zeit Tx (kurz)
+ Merker M100.7
oder
Störung (lang)
+ N Tx
+ Merker M100.0
=
Anzeige

<-- nun kannst du dir immernoch überlegen wie dus warscheinlich in FUP in ein Netzwerk oder gar seperaten Anzeige FC hackst.
Also da ich nimmer AWL gewöhnt bin seit Gesellenbrief und den Meister auch in FUP eine "kleine" Steuerung (auf ner überdimensionierten SPS) in "viel" Zeit machen mußte, sollte auch für dich diese einfache Betriebsartenanzeige kein Akt sein.;)
 
@Maxi

Hör mal, so geht das leider nicht! Die Lampe geht ja nur an wenn die Betriebsmeldung da ist und dies ist im Störfall je nicht dr fall!

Huhu, die Aufgabenstellung war dann nicht diesbezüglich klar: Die Lampe leuchtet beim laufen des Motors, wenn eine Störung durch Termistorschutz ensteht soll die Lampe blinken


Nimm halt den Reset auf nicht Betrieb raus und die Abfragen auf Nicht betrieb beim Blinken.

Code:
// Takt 1Hz Sekune Bilden
// in M 100.7 Blinkmerker langsam  
// Zeit optional bei L S5T# einstellen
//;
      UN    M     10.6
      L     S5T#1S
      SE    T      1
//;
      U     T      1
      =     M     10.6
//;
      U     M     10.6
      UN    M     10.2
      S     M     10.0
//;
      U     M     10.6
      U     M     10.2
      R     M     10.0
//;
      UN    M     10.6
      U     M     10.0
      S     M     10.2
      UN    M     10.6
      UN    M     10.0
      R     M     10.2
//;
      U     M     10.0
      =     M    100.7
//;
// Takt 2Hz Sekunde Bilden
// in M 100.0 Blinkmerker schnell
// Zeit optional bei L S5T# einstellen
//;
      UN    M     11.6
      L     S5T#500MS
      SE    T      2
//;
      U     T      2
      =     M     11.6
//;
      U     M     11.6
      UN    M     11.2
      S     M     11.0
//;
      U     M     11.6
      U     M     11.2
      R     M     11.0
//;
      UN    M     11.6
      U     M     11.0
      S     M     11.2
      UN    M     11.6
      UN    M     11.0
      R     M     11.2
//;
      U     M     11.0
      =     M    100.0
//;
//;
//;
//;
// Ansteuerung der Lampe
// M1.0 = Betrieb
// M1.1 = Stoerung
// M1.2 = Stoerung und Quittiert
// A1.0 = Lampe
// E 0.0 = Stoerungsquittieren
// E 0.1 = Stoerung liegt an
//;
      U     E      0.1
      S     M      1.1
//;
      U     E      0.0
      O     M      1.2
      UN    E      1.1
      R     M      1.1
      R     M      1.2
//;
      U     M      1.1
      U     E      0.1
      U     E      0.0
      S     M      1.2
//;
//;
// Anzeige ohne Fehler
      U     M      1.0
      UN    M      1.1
      UN    M      1.2
//;
      O(    
// Fehler langsam

      U     M      1.1
      UN    M      1.2
      U     T      1
      )     
//;
      O(    
// Fehler schnell

      U     M      1.1
      U     M      1.2
      U     T      2
      )     
//;
      =     A      1.0
//;
 
Ich hab das jetzt soweit gemacht! Nur wenn ich jetzt auf Quittieren drücken, blinkt das ganze nur so lange schnell wie ich Quitt festhalt! :-(

Muss das ganze leider im FUP erstellen!

MW 1
U(
O E 0.0
O M 1.2
ON M 1.0
)
R M 1.1
U E 0.1
S M 1.1
NOP 0

NW2
U(
O E 0.0
O M 1.2
ON M 1.0
)
R M 1.2
U M 1.1
U E 0.1
U E 0.0
S M 1.2
NOP 0

NW3


U E 0.3
UN M 1.1
UN M 1.2
O
UN E 0.3
U M 1.1
UN M 1.2
U M 100.5
O
UN E 0.3
U M 1.1
U M 1.2
U M 100.0
= A 1.0



Wo liegt noch mein Fehler??
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du kannst ja mal folgende Lösung versuchen. In der HW-Konfiguration musst Du dann in der CPU für die Taktmerker das MB0 einstellen.

Code:
Netzwerk 1
 
U  E 0.0    // Störung
S  M 1.1    // Störung Takt 1 Sek
U(
O  E 0.1    // Quittierung
O  M 1.2    // Störung Takt 2 Sek
)
R  M 1.1    // Störung Takt 1 Sek
NOP 0
 
Netzwerk 2
 
U  E 0.0    // Störung
U  E 0.1    // Quittierung
S  M 1.2    // Störung Takt 2 Sek
UN E 0.0    // Störung
R  M 1.2    // Störung Takt 2 Sek
NOP 0
 
Netzwerk 3
 
U  M 1.1    // Störung Takt 1 Sek
U  M 0.5    // Taktmerker 1 Sek
O
U  M 1.2    // Störung Takt 2 Sek
U  M 0.7    // Taktmerker 2 Sek
O
UN M 1.1    // Störung Takt 1 Sek
UN M 1.2    // Störung Takt 2 Sek
U  E 0.3    // Betrieb
=  A 0.0    // Leuchtmelder

Gruß Kai
 
Mir ist in dem obigen Programm ein Fehler mit den Taktmerkern unterlaufen. :???:

Das Programm müsste nun so richtig sein:

Code:
Netzwerk 1
 
U  E 0.0    // Störung
S  M 1.1    // Störung Takt 2 Sek
U(
O  E 0.1    // Quittierung
O  M 1.2    // Störung Takt 1 Sek
)
R  M 1.1    // Störung Takt 2 Sek
NOP 0
 
Netzwerk 2
 
U  E 0.0    // Störung
U  E 0.1    // Quittierung
S  M 1.2    // Störung Takt 1 Sek
UN E 0.0    // Störung
R  M 1.2    // Störung Takt 1 Sek
NOP 0
 
Netzwerk 3
 
U  M 1.1    // Störung Takt 2 Sek
U  M 0.7    // Taktmerker 2 Sek
O
U  M 1.2    // Störung Takt 1 Sek
U  M 0.5    // Taktmerker 1 Sek
O
UN M 1.1    // Störung Takt 2 Sek
UN M 1.2    // Störung Takt 1 Sek
U  E 0.3    // Betrieb
=  A 0.0    // Leuchtmelder

Gruß Kai
 
Und hier dann mal ne Lösung mittels "fertiger" FC (FC10), die dann im "normalen" Programm (FC1) entsprechend aufgerufen und parametriert wird.
Die angenommnen Operanden (Ax.x, Mx.x) sind natürlich durch Deine eigenen (vorbestimmten?) Operanden zu ersetzen. ;)


Edit: Anhänge sind nach Änderung in Antwort Nr. 16 zu finden.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Jörg,

bei Deinem Programm sehe ich folgendes Problem:

- Angemommen es kommt eine Störung. Diese Störung wird nicht quittiert. Die Anzeige fängt mit dem dem Takt 2 an zu blinken.

- Jetzt geht die Störung wieder weg, ohne vorher quittiert worden zu sein. Die Anzeige hört auf zu blinken.

Es liegt hier ein nichtspeicherndes Verhalten der Störung vor. Die Störung kann kommen und gehen und keiner hat was gemerkt.

Besser wäre eigentlich folgender Ablauf:

- Es kommt eine Störung. Die Störung wird nicht quittiert. Die Anzeige fängt mit dem dem Takt 2 an zu blinken.

- Jetzt geht die Störung wieder weg, ohne vorher quittiert worden zu sein. Die Anzeige blinkt weiter mit dem Takt 2.

- Erst wenn die Störung quittiert worden ist, hört die Anzeige wieder auf zu blinken.

Es liegt also ein speicherndes Verhalten der Störung vor.

Gruß Kai
 
Hallo Kai,

natürlich hast Du recht. Besser ist es, die Störmeldung zu speichern und entsprechend quittierpflichtig zu machen. Anbei die geänderte Dokumentation.
Danke für Deinen Hinweis!! :s1:
 

Anhänge

  • FC1a.pdf
    12,5 KB · Aufrufe: 24
  • FC10a.pdf
    15,2 KB · Aufrufe: 26
Zuviel Werbung?
-> Hier kostenlos registrieren
Jetzt haben wir ihn seine ganze Übungsaufgabe gelöst o_O

Ach neh maxi die Übungsaufgabe war doch mehr die Zeit in Gedanken aufwenden für zu sehn wie mans Gelöst kriegt?.?:rolleyes:
Ne jetzt ma ohne Quatsch, den FC10 hätt ich auch so gemacht, nur die Frage mit dem FC10 im FC1 "beschaltet", ist da ein besonnderer Hintergedanke dabei?
 
Haxoh. Ja bei kleinen Programmen warscheinlich ehr uninterressant aber bei großen Anlagen einleuchtend. Danke auch.
Sags ja immer... Man wird alt wie ein Kuh und lernt immernoch dazu.;)
 
Zurück
Oben