Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Ausgang kurz setzten

  1. #1
    Registriert seit
    07.07.2011
    Beiträge
    259
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Moin,

    ich habe gerade folgende Herausforderung.
    Ich habe für ein Alarmwählgerät Störungsgruppen generiert, da an dieses Gerät nur sechs Meldekontakte angeschlossen werden können.
    Das bedeutet Störung 0-10 setzten Ausgang 1/Meldekontakt1,
    Störung 11-20 setzten Ausgang2/Meldekontakt2 usw.
    Die Störungen die durch das Alarmwählgerät rausgeschickt werden, an ein Telefon, müssen über das Telefon quittiert werden.
    Ist der Anruf quittiert kommt für diese Störung, solange sie anliegt, keine Meldung mehr raus.

    Nun habe ich z.B. in der ersten Störungsgruppe das so programmiert das der Ausgang der SPS gesetzt wird wenn,

    O DB20.DBX0.0
    O DB20.DBX0.1
    O DB20.DBX0.2
    = A9.3

    In diesem Fall wird die Störungsmeldung einmal ausgelöst. Für den Fall das eine Störung (z.B. ausgelöster Motorschutzschalter) länger anliegt, da an dem Motor gearbeitet wird, und auch quittiert wurde besteht bei meiner aktuellen Lösung nicht die Möglichkeit das eine neue Störung der Störungsgruppe einen erneuten Anruf auslöst, da der Ausgang noch immer gesetzt ist.
    Ich habe jetzt vieles ausprobiert, z.B.

    X(
    O DB20.DBX0.0
    O DB20.DBX0.1
    FP #Flankenmerker
    )
    X A9.5
    =A9.5

    Aber hierbei wird der Ausgang (habe mit PLCSim getestet) ständig gesetzt und wieder rückgesetzt.

    Ich möchte das eine Störung den Ausgang kurz schaltet und der Ausgang dann wieder zurückgesetzt wird, damit im Falle eine erneuten Störung, innerhalb der Gruppe, ein erneuter Anruf generiert werden kann.

    Hat jmd. einen Tipp wo mein Denkfehler liegt.
    Zitieren Zitieren Ausgang kurz setzten  

  2. #2
    Registriert seit
    30.04.2009
    Ort
    Nord-Hessen
    Beiträge
    150
    Danke
    13
    Erhielt 14 Danke für 10 Beiträge

    Standard

    Versuch doch mal deine Störmeldungen zu flanken und den Ausgang dann über einen ZEitimpuls anzusteuern.

    U DB20.DBX0.0
    FP M 10.0
    = M 10.1

    U DB20.DBX0.1
    FP M 10.2
    = M 10.3

    O M 10.1
    O M 10.3
    L S5T#1s
    SV T1

    U T1
    = A 9.3
    Gruß
    Torsten

    "Der Computer rechnet mit allem - nur nicht mit seinem Besitzer." Dieter Hildebrandt

  3. #3
    Ninja2602 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.07.2011
    Beiträge
    259
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    So eine ähnliche Idee hatte ich auch schon,

    ich habe versucht:

    O DB20.DBX0.0
    O Db20.DBX0.1
    S M10.0

    U M10.0
    FR T24
    L S5T#1s
    SE T24
    U T24
    R M10.0

    NOP 0

    Aber bei beiden Bsp. wird der Ausgang zwar nach der Zeit zurückgesetzt, aber wenn dann die zweite Störung eintritt nicht erneut gesetzt.

  4. #4
    Ninja2602 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.07.2011
    Beiträge
    259
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hatte bei deinem Beispiel eine kleine Änderung, hatte den Merker der durch die positive Flanke gesetzt wird durch eine temp Variable ersetzt und damit scheint es nicht zu funktionieren.
    Mit dem Merker geht es.
    Aber warum geht das denn nicht mit einer temp Variablen?

  5. #5
    Registriert seit
    30.04.2009
    Ort
    Nord-Hessen
    Beiträge
    150
    Danke
    13
    Erhielt 14 Danke für 10 Beiträge

    Standard

    Hmmm,
    bei mir funktioniert es auch, wenn ich temp Variablen benutze.
    Die werden bei meiner Test-CPU momentan natürlich nur von diesem Beispiel benutzt.
    Vielleicht sind sie bei dir noch von einem vorherigen Programmteil beschrieben.
    Gruß
    Torsten

    "Der Computer rechnet mit allem - nur nicht mit seinem Besitzer." Dieter Hildebrandt

  6. #6
    Registriert seit
    30.04.2009
    Ort
    Nord-Hessen
    Beiträge
    150
    Danke
    13
    Erhielt 14 Danke für 10 Beiträge

    Standard

    Eine weitere Möglichkeit wäre dein Störmeldebyte oder Wort, je nachdem wie genau du es brauchst, auf eine Wertänderung zu überprüfen.
    Liegt eine Änderung vor, löst du den Zeit impuls aus.
    Damit sparst Du dir das "Geflanke".
    Gruß
    Torsten

    "Der Computer rechnet mit allem - nur nicht mit seinem Besitzer." Dieter Hildebrandt

  7. #7
    Registriert seit
    23.11.2012
    Ort
    Österreich
    Beiträge
    147
    Danke
    48
    Erhielt 19 Danke für 19 Beiträge

    Standard

    Eine weitere Möglichkeit wäre dein Störmeldebyte oder Wort, je nachdem wie genau du es brauchst, auf eine Wertänderung zu überprüfen.
    Liegt eine Änderung vor, löst du den Zeit impuls aus.
    Wenn aber im selben Byte eine weitere Störung auftaucht, wird der Merker nicht nochmal gesetzt.

    Ich würde es mit zwei DB's lösen. Ein DB für Störung kommend und ein DB für Störung speichernd. Sämtliche kommende Störungen werden nach dem quittieren in den speichernden DB übertragen. Eine Vergleicherbaustein überprüft die Bits und Bytes der beiden DB's miteinander und setzt bei ungleichheit einen Ausgang, der nach dem quittieren wieder auf 0 geht und für einen weiteren Störfall bereit steht.

    mfg Kapo

  8. #8
    Ninja2602 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.07.2011
    Beiträge
    259
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Das mit dem Störmeldebyte oder Wort wird bei mir nicht den oben gewünschten Effekt haben. Ich muss bei jeder Störung eine Meldung rausschicken.
    @LarsVader: Hast du alle Merker durch eine Temp-Variable ersetzt? Bei mir funktioniert es nur, wenn ich bei der Flanke einen Merker habe und dadurch eine Temp-Variable setzte (oder halt beides ein Merker).

  9. #9
    Ninja2602 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.07.2011
    Beiträge
    259
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich habe gerade meine Störungsauswertungen erweitert.
    Und schon wieder funktioniert es nicht. Der Timer setzt sich nach Ablauf der Zeit nicht zurück, wenn noch eine Störung anliegt, dadurch kann keine weitere Störung den Ausgang setzten.
    Dann noch eine weitere Frage, mein NW ist jetzt schon ziemlich lang, kann ich meine aktuelle Lösung eventuell durch einen Pointer verbessern? Bin bei Pointern nicht so gut.

    FC17.pdf

  10. #10
    Ninja2602 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.07.2011
    Beiträge
    259
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Die MErker die ich benutzt habe werden anscheinend schon an anderer Stelle benutzt. Ich habe gerade die Merker geändert z.B. M40.0 auf M100.0 und jetzt funktioniert es wieder.

Ähnliche Themen

  1. 300er Rack in der Hardwarekonfiguration zu kurz
    Von 1985zottel im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 13.04.2016, 09:34
  2. Antworten: 2
    Letzter Beitrag: 21.05.2013, 01:32
  3. RS Logix 5000 Ausgang setzten
    Von karlzack im Forum Sonstige Steuerungen
    Antworten: 2
    Letzter Beitrag: 02.08.2010, 17:29
  4. Antworten: 2
    Letzter Beitrag: 07.05.2009, 16:11
  5. Ausgänge nur kurz aktiv
    Von MarcusS81 im Forum Simatic
    Antworten: 19
    Letzter Beitrag: 25.08.2008, 22:09

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •