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

Ergebnis 1 bis 5 von 5

Thema: Uhrzeit bei Störung aufzeichnen

  1. #1
    Registriert seit
    09.11.2012
    Beiträge
    82
    Danke
    42
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen!

    Ich habe jetzt schon ein wenig danach gesucht aber irgendwie nicht das richtige gefunden.

    Ich werde mal mein Problem bzw. meine Idee hier erläutern und ich denke für einige wird es eine leichte Sache sein.

    Ich will an einer Filteranlage mit Hilfe der S7-Steuerung einen Fehler aufzeichnen, wann er genau passiert. Dazu würde ich ganz gern die Uhrzeit aufzeichnen, wenn der Fehlerfall eintritt. Der Fehlerfall ist in diesem Fall ein sogenannter Maihak, der ein 0-Signal gibt, falls der Schacht zu voll mit Staub ist.

    Jetzt hätte ich ganz gern das wenn der Eingang auf 0 geht, die aktuelle Uhrzeit in einen DB gespeichert wird und das jedes mal falls dies passiert.

    Mit Servicelab ist das ganze nicht wirklich ein Problem, jedoch kann ich derzeit nicht meinen Laptop an der Anlage stehen lassen (steht auf den Dach im freien) und meistens passiert das am späten Abend.

    Hat da jemand eine Idee? Sowas habe ich bisher noch nie Programmiert. Kenne mich also dementsprechen mit dem SFC1 nicht wirklich aus.

    Vielen Dank im vorraus!

    Gruß
    Thorsten
    Zitieren Zitieren Uhrzeit bei Störung aufzeichnen  

  2. #2
    Registriert seit
    19.06.2008
    Ort
    Ostalbkreis
    Beiträge
    3.140
    Danke
    201
    Erhielt 553 Danke für 498 Beiträge

    Standard

    DB erstellen, jede Menge Variablen mit dem Format Date and Time untereinander anordnen ( Oder Array of [DT] erstellen)

    SCL-Programm wäre am einfachsten. - FIFO

    Bei einer Störung den SFC1 Flankengesteuert aufrufen.

    SFC1 ließt die Uhrzeit und schreibt sie dir dorthin, wo du möchtest - DSTBLK.
    dieses Ziel zuerst auf den ersten Eintrag im DB zeigen. (Bspl: DB-Stoerung.Stoerungszeit[1] )
    danach auf den [2] usw...

    (Oder die Uhrzeit aus dem OB1-Lokaldaten nehmen )

  3. Folgender Benutzer sagt Danke zu Verpolt für den nützlichen Beitrag:

    bone (01.09.2014)

  4. #3
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard

    Hallo,
    lies dich dazu ggf. mal hier ein : Pointer Zeiger FIFO LIFO
    Darüber hinaus solltest du dich damit auseinander setzen, wie man mit dem von dir schon genannten Baustein die Systemzeit aus der SPS in eine bestimmte Variable bekommt.
    Vielleicht auch dazu mal die Foren-Suche bemühen.

    Wie willst du es umsetzen ?
    AWL oder vielleicht SCL (das wäre erheblich eleganter zu machen).

    Gruß
    Larry

  5. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    bone (01.09.2014)

  6. #4
    bone ist offline Benutzer
    Themenstarter
    Registriert seit
    09.11.2012
    Beiträge
    82
    Danke
    42
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo zusammen,

    also das mit dem Flankengesteuerten SFC1 ist für mich wohl eher das richtige. Ich möchte das halt nur 2-3Tage mitschreiben lassen, anschliessend nehm ich das eh wieder raus. Und von dem Pointer, hatte ich im Forum auch schon was drüber gelesen, kenn ich mich leider genauso wenig aus wie mit dem SCL Programm. Umsetzen dann in AWL.

    Gruß
    Thorsten

  7. #5
    Registriert seit
    17.02.2009
    Ort
    Niederrhein
    Beiträge
    86
    Danke
    10
    Erhielt 8 Danke für 7 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Quick and Dirty Methode:

    - DB mit sagen wir mal 25 "Datenwörtern" Format Date and Time anlegen, der Datenbaustein hat dann 200 Byte Länge ( 8 Byte je Date and Time)
    - Mit SFC1 Flankengesteuert die aktuelle Zeit in das letzte Datenword dieses DB schreiben.
    - anschließend mit Blockmove den gesammten DB-Inhalt um ein Datenwort nach oben schieben...

    also in etwa so: (bei 25 "Datenwörtern" Format Date and Time)
    Anfangsadresse -> P# DBxx.DBX8.0 Byte 192
    Zieladresse -> P# DBxx.DBX0.0 Byte 192

    im vorletzten "Datenword" also dem 24ten (oder besser Datenblock) steht dann die letzte Störungszeit
    im 23ten dann die vorletze Störunszeit usw. usw. Im ersten Datenblock (also DBB0 bis DBB7) steht dann der älteste Eintrag...
    man erhält so eine Art Schieberegister... (nur das es halt "rückwertz" arbeitet)

    Ich hoffe habs verständlich ausgedrückt....
    ist zwar nicht die "feine" Art, da aber nur "temporär" benötigt... kann man sich so den ganzen Aufwand mit indirekte Adressierung und Pointern und FIFO und sonstwas sparen
    Geändert von ukofumo (02.09.2014 um 19:55 Uhr)
    Gruß ukofumo

    Es ist vollkommen egal, wie oft man im Leben hinfällt. Es ist nur wichtig, wie oft man wieder aufsteht.

  8. Folgender Benutzer sagt Danke zu ukofumo für den nützlichen Beitrag:

    bone (27.11.2014)

Ähnliche Themen

  1. Antworten: 9
    Letzter Beitrag: 28.08.2013, 08:27
  2. Störung bei Abstecken eines Profibusteilnehmers
    Von technikchef im Forum Feldbusse
    Antworten: 5
    Letzter Beitrag: 17.10.2010, 12:29
  3. Profibus Störung bei Verbindung mit PC Adapter V5.1
    Von NeuerSIMATICNutzer im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 15.10.2009, 12:59
  4. Impuls bei neuer Störung
    Von mitchih im Forum Programmierstrategien
    Antworten: 1
    Letzter Beitrag: 28.04.2009, 23:12
  5. PC Link Störung bei Sucocontrol
    Von Bricker im Forum Sonstige Steuerungen
    Antworten: 0
    Letzter Beitrag: 28.04.2009, 14:50

Lesezeichen

Berechtigungen

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