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

Ergebnis 1 bis 9 von 9

Thema: Datalog-Create bleibt hängen

  1. #1
    Registriert seit
    11.05.2014
    Beiträge
    17
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Servus Leute,

    Ich bins nochmal.
    Momentan hänge ich daran fest einen Datenlogger zu programmieren. Das Beispiel von Siemens hilft mir da leider nur bedingt weiter da es nur einen Datenlogger produziert.
    Ich verwende dazu folgendes: S7-1200 1214C DCDCDC ..-AG40-0XB0, KTP 600 Basic color PN, TIA Portal V13 Professional.

    Bisher habe ich mir einen Datenlogger in einem FB programmiert. Der FB macht eigentlich nichts anderes als eine Schrittkette (Create -> Open -> Write -> Close) durchzugehen. Diesen ziehe ich in meinen Main OB1 und beschrifte ihn dann mit den erforderlichen Daten (ID,Name,Header,Data...). Ziehe ich ihn ein zweites mal rein (natürlich mit einem anderen zugehörigen DB und anderer ID u.s.w) wird er nicht erstellt. Es funktioniert also nur der erste Datenlog den ich ins OB1 reinziehe.
    Kurioserweise wirft mir der Datenlog gar keine Fehlermeldung (Statusmeldung bleibt bei 16#700 -also wird CREATE bearbeitet- stehen) raus und das CREATE_DONE-Bit kommt natürlich auch nicht.

    Hat irgendjemand eine Idee? Leider ist die Vorgabe die Daten in zwei Dateien zu loggen, sonst würde ich natürlich mit dem ersten Datenlog arbeiten ;D

    Hier das Programm: https://www.dropbox.com/s/wtuena5fyl...sttdn.zip?dl=0 (Der Link führt zu einer .zip-Datei in meiner Dropbox)
    Im Endeffekt interessiert nur das NW4 mit seinem FB und dem dazugehörigen DB5.

    Hier noch ein Bild von der "Situation":
    tiav13datalog.jpg

    Hat irgendjemand eine Idee? Leider ist die Vorgabe die Daten in zwei Dateien zu loggen, sonst würde ich natürlich mit dem ersten Datenlog arbeiten ;D

    Vielen Dank schon mal im Vorraus und Viele Grüße!
    Mark
    Zitieren Zitieren Datalog-Create bleibt hängen  

  2. #2
    eXe ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    11.05.2014
    Beiträge
    17
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Mir ist gerade noch eingefallen, dass ich den ersten Datalog nicht schließe bevor ich den zweiten öffne. Könnte es daran liegen?

    // Anscheinend kann man bis zu 10 Datalogs gleichzeitig öffnen. Das sollte es wohl nicht sein
    Geändert von eXe (14.04.2016 um 16:14 Uhr)

  3. #3
    Registriert seit
    30.07.2007
    Beiträge
    118
    Danke
    14
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Hallo eXe,

    ich hab eine ähnliche HW-Konfiguration am laufen - ohne Probleme ... Ohne jetzt dein Programm zu analysieren: Hast du bedacht, das das create nur beim allerersten Aufruf zum Erstellen der Log-Datei (Ladespeicher oder card) aktiv sein darf? Bei mir sind die create-Aufrufe nur über einen man. zu bedienenden Set-Merker (PG), der vom done der Fkt. resettet wird, aktiv. Wenn du den Webserver der CPU aktivierst, kannst du das Vorhandensein der Log-Datei prüfen. Wenn die dann - nach dem create -vorhanden ist, kannst du keine neue anlegen wollen mit dem selben Namen...
    Hast du auch die verschiedenen Dateinamen der LOG-Dateien sowie die Spaltenköpfe richtig angelegt? Über den Webserven kannst du die angelegten LOG-Dateien von der CPU runterladen und die Details prüfen.

    ...D.h. bei mir in der Schrittkette ist das create nicht enthalten...

    Auch noch zu bedenken:
    Passt die 2. Archivdatei noch in den Ladespeicher? Ist abzuschätzen unter Online-Diagnose / Speicherverwaltung.
    Wie viele Einträge/Zeilen hast du für die LOG-Datei(en) eingerichtet?
    Gruß, Jörg
    Geändert von Jörg_24 (15.04.2016 um 16:34 Uhr)

  4. #4
    eXe ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    11.05.2014
    Beiträge
    17
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Jörg_24,

    Vielen Dank für deine Antwort!
    Den CREATE-Bausteine benutze ich nur einmal pro Aufruf pro Datenlog-Datei. Dieser wird auch nur ausgeführt wenn ein "START"-Befehl kommt, also momentan von einem Eingang (meinetwegen I0.0 für den ersten Datalog und I0.1 für den zweiten Datalog). Wenn der Datenlog erstellt wurde (Done-Bit) wird in einen nächsten Schritt gegangen, dieser resettet natürlich den CREATE-Befehl und geht in den Open-Befehl über. Die Datenlogs haben die Namen "INPUT" und "OUTPUT", wobei der OUTPUT-Datenlog nicht erstellt wird - das sehe ich auch am Webserver bzw. auf der SD-Karte. Die IDs sind verschieden.

    Was genau meinst du mit "Spaltenköpfe"? Ich gehe mal davon aus du meinst die HEADER? Das überprüfe ich morgen auf der Arbeit mal!

    Die 2. Datei sollte auf jedenfall noch in den Ladespeicher bzw. auf die SD-Karte passen. Die Karte ist 4MB groß und der erste Datenlog hat erstmal nur ein paar Byte wenn ich ihn erstelle. Inwiefern die SD-Karte zu groß oder zu klein ist wird ein Langzeittest zeigen den ich - wenn es funktioniert- durchführe. Das Programm soll nur Logzeit und Anzahl von Personen loggen die einen Bereich betreten/verlassen. Ich denke diese Logs werden nicht allzu groß. Bisher sind 20.000 Zeilen eingerichtet.

    Ich habe mir bei Siemens einen "Monitor-Block" geladen der die Fehlercodes, die ein Datenlog produziert, ausliest und evtl speichert. Den werde ich morgen mal ausprobieren! Vielleicht bin ich dann schlauer. Aber wie gesagt: Bisher wird einfach nur das DONE-Bit nicht herausgegeben und der Log nicht erstelllt. Der STATUS steht bei 16#700 was eine Bearbeitung anzeigt.

    Mit freundlichen Grüßen,

    Mark

  5. #5
    Registriert seit
    30.07.2007
    Beiträge
    118
    Danke
    14
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Hallo Mark,
    check mal die Belegung des Ladespeichers in der Online-Sicht der CPU mit der einen angelegten Datei. Dafür wird der Platz im Ladespeicher reserviert, auch wenn die Datei nicht vollgeschrieben ist. Lösche mal die LOG-Datei (per Web-Browser) und vergleiche mal die Platzreserve - dann weist du wie groß die Log-Datei ist und ob noch die zweite á 20.000 Zeilen mit rein passt... (bei mir waren es max. 3 Dateien á 1500 Zeilen und ~65 Spalten, gefüllt mit INT-Werten...; ist natürlich abhängig wieviel Code sonst noch im Speicher ist) Wenn du nur eine 4MB-card gesteckt hast kannst du die auch weglassen. Der Ladespeicher in der CPU hat auch 4MB und keine Begrenzung an Schreibzyklen gegenüber der MC. (Die Speicherkarte ersetzt m.W. den int. Ladespeicher.) Oder du reduzierst versuchsweise mal die Anzahl der Einträge auf 1/10tel...
    Gruß, Jörg

  6. #6
    eXe ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    11.05.2014
    Beiträge
    17
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Jörg_24,

    Vielen Dank für die Hilfe! Als ich die Datei erstellt habe waren es genau 51% des Ladespeichers die belegt waren! Die zweite Datei - welche genau so groß sein sollte - möchte dann natürlich genau soviel Speicher reservieren wie die erste! Das war der entscheidende Hinweis von Ihnen! Ich habe nun die Einträge reduziert und es geht direkt einwandfrei! Vielen Dank dafür!!

    Mit freundlichen Grüßen,
    Mark

  7. #7
    eXe ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    11.05.2014
    Beiträge
    17
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Würde es eigentlich Sinn machen nach jedem WRITE-Vorgang die Datei zu schließen zwecks Datensicherung? Ich habe die Erfahrung gemacht, dass die SPS bei schnellen Signalen manche Signale verschluckt. Bei mir der Fall wenn man relativ schnell auf dem Panel tippt und einen WRITE-Vorgang auslöst. Daher würde ich eher dazu tendieren alle 5Minten o.Ä zu schließen?

    Mit freundlichen Grüßen,
    Mark

  8. #8
    Registriert seit
    30.07.2007
    Beiträge
    118
    Danke
    14
    Erhielt 6 Danke für 6 Beiträge

    Standard

    ...ich öffne, schreibe und schließe zu/nach jedem 'Archiv-Vorgang', aber im Ladespeicher der CPU, nicht auf MC. Die Daten müssen vom Panel ja auch erst mal in die CPU gelangen, das dauert etwas, je nach Panel und Konfig. Wie schnell sind deine Signale, die mal verloren gehen? Und wie hoch ist die Zykluszeit der CPU?. Wenn die Signale kürzer sind als ein OB1-Zyklus kann schon was verloren gehen. Da gibt es aber auch andere Möglichkeiten...

    LG Jörg
    Zitieren Zitieren Archivdateien ...  

  9. #9
    eXe ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    11.05.2014
    Beiträge
    17
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Körg!
    Dann wird es wohl an der Kommunikation zwischen Panel und SPS liegen, denn ich habe es heute ohne MC probiert. Die Zykluszeit lag bei max 3ms und so schnell werde ich nicht auf dem Panel getastet haben.
    Die SPS verschluckt zirka einen Wert wenn ich gefühlt 2mal pro Sekunde taste.

    Danke!

Ähnliche Themen

  1. Sonstiges druckmessumformer bleibt hängen
    Von hgberlin im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 30.09.2013, 13:32
  2. Antworten: 2
    Letzter Beitrag: 17.11.2012, 08:46
  3. Antworten: 7
    Letzter Beitrag: 12.01.2012, 14:13
  4. Antworten: 12
    Letzter Beitrag: 09.04.2010, 10:26
  5. Siemens OP270 bleibt beim booten hängen
    Von Rafikus im Forum HMI
    Antworten: 2
    Letzter Beitrag: 09.05.2005, 10:39

Lesezeichen

Berechtigungen

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