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

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

Thema: Datenlogger Wago

  1. #1
    Registriert seit
    13.04.2015
    Beiträge
    11
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo liebe Forum Gemeinde,

    ich bin neu im Forum, hab mich schon so durch das ein oder andre hier im Forum zu dem Thema durchgelesen aber keine Antwort gefunden.

    Zur Hardware es geht um ne Wago 750-880 mit den AI 4-20mA und den AO 4-20mA

    zum Problem:

    Ich würde gern mehrere Messwerte und Sollwerte mit Zeit Stempel aufzeichnen und in eine .csv Datei schreiben.
    Die Messwerte müssten jede Sekunde aufgezeichnet werde.

    In Codesys hab ich mich ein bisschen eingearbeitet so ein richtiger Crack bin ich aber nicht.
    Hab mir auch schon von Wago die Nutzung der SysLibFile.lib angeschaut nur irgendwie blick ich da nicht durch

    Hoffe mir kann einer Helfen

    Grüße

    Steffen
    Zitieren Zitieren Datenlogger Wago  

  2. #2
    Registriert seit
    16.12.2009
    Beiträge
    75
    Danke
    3
    Erhielt 5 Danke für 5 Beiträge

    Standard

    ...Hoffe mir kann einer Helfen...
    Das sollte möglich sein?! Was genau willst Du denn wissen?

    Ich schreibe meine Log-Daten schonmal vorher in ein Array, nur dass ich nicht jede Sekunde auf die SD Karte zugreifen muss.
    Dann begrenze ich meine CSV-Datei auf 10000 Zeilen. Wird sonst zu groß und unübersichtlich.
    Des weiteren bekommt die Datei eine fortlaufende Nummer von 0000 bis 9999, welche ich mir persistent "merke".
    Wenn die Zeilennummer zum Schreiben 0 ist, dann war die Datei vorher voll, oder die CPU hat neu gestartet. In beiden Fällen wird dann eine neue Datei angefangen, um alte Daten sicher zu behalten.
    Ist der Schreibzeiger ( Zeilennummer ) 0, wird eine Kopfzeile mit Namen für die folgenden Spalten generiert, damit man sieht, was die Werte in den Zeilen 1 bis 10000 zu bedeuten haben.
    Sind im Array genug Daten zum Schreiben, wird in einer CASE Schrttkette die Datei geöffnet, die zu schreibenden Daten mit BOOL_TO_STRING oder INT_TO_STRING und CONCATE in einen 255 Zeichen langen String "zusammengebaut" ( als Trennzeichen verwende ich ; ), in die Datei geschrieben und dann die Datei wieder geschlossen.

  3. #3
    Steve_Pokerface ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    13.04.2015
    Beiträge
    11
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Tom,

    Ich verstehe nur Bahnhof

    Im Grunde will ich win Programm, wo ich einfach die Variablen ändern kann quasi die Variablen, die er aufzeichnen soll und so weiter. Am besten in ST. Ich bin nicht so der crack aber Bissi einlesen kann ich mich. Wäre nett wenn du mir mal dein Prog zeigst, evtl werde ich dann Bissi schlauer

    Grüße

    Steffen

  4. #4
    Steve_Pokerface ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    13.04.2015
    Beiträge
    11
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ach übrigens ich brauch 2 analoge Daten jeweils sekundenscharf und die Aufzeichnung sokm über 5 std laufen.

    Heißt es kommt mit Sicherheit Bissi Datenmengen zusammen. Ist das überhaupt möglich?

    Grüße

  5. #5
    Registriert seit
    16.03.2014
    Beiträge
    363
    Danke
    74
    Erhielt 45 Danke für 38 Beiträge

    Standard

    Hallo Tom,
    falls möglich, würde mich dein Baustein auch interessieren.
    Ich wollte das Rad auch nicht neu erfinden...
    Zwar sind einige deiner Optionen auf meiner Spielkiste nicht möglich, aber da muss ich halt tricksen...
    Wenn du magst, wäre ein Exportfile prima.
    Ich bin leider Twincatler und da ist mir ein Exportfile lieber.
    Eine Original-Pro kann ich allerdings auch verarbeiten...

    LG
    Shrimps

  6. #6
    Registriert seit
    16.12.2009
    Beiträge
    75
    Danke
    3
    Erhielt 5 Danke für 5 Beiträge

    Standard

    versuch doch das mal als Anfang...

    Code:
    CASE        iStatus        OF
    
        0:        strStatus :=        'warten' ;
    
                IF    Start_IMP    THEN        iStatus :=        10 ;
                END_IF ;
    
        10:        strStatus :=        'Datei öffnen ' ;
    
                IF        Write_Line_Nr = 0            THEN        Write_File_Nr := Write_File_Nr + 1 ;        END_IF ;
                IF         Write_File_Nr > 9999         THEN         Write_File_Nr := 0 ;                         END_IF ;
                DateiName :=                        'S:\Log\Log' ;
                IF        Write_File_Nr < 1000        THEN        DateiName :=        CONCAT (        DateiName ,        '0' ) ;        END_IF ;
                IF        Write_File_Nr < 100        THEN        DateiName :=        CONCAT (        DateiName ,        '0' ) ;        END_IF ;
                IF        Write_File_Nr < 10        THEN        DateiName :=        CONCAT (        DateiName ,        '0' ) ;        END_IF ;
                DateiName :=        CONCAT (        DateiName ,        INT_TO_STRING ( Write_File_Nr ) ) ;
                DateiName :=        CONCAT (        DateiName ,        '.csv' ) ;
    
                fileHandle :=        SysFileOpen (        FileName :=        DateiName ,        Mode :=    'a' ) ;
    
                IF        fileHandle <> 0            THEN        iStatus :=        20 ;                        END_IF ;
    
        20:        strStatus :=        'Kopfzeile schreiben' ;
    
                IF        Write_Line_Nr = 0        THEN
    
                        Text_Puffer :=        'Datensatz Nummer;Zeitstempel;analog01;analog02;analog03$L;' ;
                        fileWriteOK :=        SysFileWrite (        File :=            fileHandle ,        Buffer :=        ADR ( Text_Puffer ) ,        Size :=            LEN ( Text_Puffer ) );
                END_IF ;
    
                iStatus :=        30 ;
    
        30:        strStatus :=        'Daten schreiben' ;
    
                Text_Puffer :=                                        INT_TO_STRING ( Write_Line_Nr ) ;
                Text_Puffer :=        CONCAT ( Text_Puffer ,        ' ; ' ) ;
                Text_Puffer :=        CONCAT ( Text_Puffer ,        DT_TO_STRING ( Zeitstempel ) ) ;
                Text_Puffer :=        CONCAT ( Text_Puffer ,        ' ; ' ) ;
                Text_Puffer :=        CONCAT ( Text_Puffer ,        INT_TO_STRING ( analog01 ) ) ;
                Text_Puffer :=        CONCAT ( Text_Puffer ,        ' ; ' ) ;
                Text_Puffer :=        CONCAT ( Text_Puffer ,        INT_TO_STRING ( analog02 ) ) ;
                Text_Puffer :=        CONCAT ( Text_Puffer ,        ' ; ' ) ;
                Text_Puffer :=        CONCAT ( Text_Puffer ,        INT_TO_STRING ( analog03 ) ) ;
                Text_Puffer :=        CONCAT ( Text_Puffer ,        '$L' ) ;
                fileWriteOK :=        SysFileWrite (        File :=            fileHandle ,        Buffer :=        ADR ( Text_Puffer ) ,        Size :=            LEN ( Text_Puffer ) );
    
                Write_Line_Nr :=                Write_Line_Nr + 1 ;
    
                iStatus :=        40 ;
    
        40:        strStatus :=        'Datei schliessen' ;
    
                fileCloseOK :=            SysFileClose (        File :=        fileHandle ) ;
                IF        fileCloseOK        THEN            iStatus :=        0 ;
                                                            IF        Write_Line_Nr > Log_File_1_last_Line        THEN        Write_Line_Nr := 0 ;            END_IF ;
                END_IF ;
    
    END_CASE ;
    Bei weiteren Fragen: Einfach fragen!
    Viel Erfolg!
    Grüße Tom

  7. Folgender Benutzer sagt Danke zu Tom... für den nützlichen Beitrag:

    shrimps (20.04.2015)

  8. #7
    Steve_Pokerface ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    13.04.2015
    Beiträge
    11
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    ich glaub ich bin einfach zu blöd. Ich hab mein Programm mal in den Anhang evtl kann mir ja einer direkt weiterhelfen.

    Ich würde gerne eine Datenaufzeichnung mittels des Start Button in der Visualisierung starten welche dann die Messwerte
    MR_BHKW1_Istleistung_KW und den AO_Sollwert_BHKW1 sekundengenau aufnimmt und in eine .csv Datei schreibt welche ich dann öffnen kann und weiterverarbeiten kann.

    Hoffe mir kann einer Helfen!

    Grüße

    Steffen
    Angehängte Dateien Angehängte Dateien

  9. #8
    Registriert seit
    16.12.2009
    Beiträge
    75
    Danke
    3
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Zitat Zitat von Steve_Pokerface Beitrag anzeigen
    Hoffe mir kann einer Helfen!
    Dein gepostetes Projekt funktioniert nicht, weil Du vergessen hast, den Code einzufügen?!

  10. #9
    Registriert seit
    16.12.2009
    Beiträge
    75
    Danke
    3
    Erhielt 5 Danke für 5 Beiträge

    Standard

    importiere das mal...
    Angehängte Dateien Angehängte Dateien

  11. #10
    Steve_Pokerface ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    13.04.2015
    Beiträge
    11
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Tom,

    danke dir für die Hilfe,

    dein Prog. hab ich mal importiert, da kommt aber der Fehler, dass er die Variable "Sysfileopen" nicht deklariert ist.

    Jetzt hab ich mal mein Programm exportiert. Vielleicht kannst du mir nun besser weiter helfen

    Grüße

    Steffen
    Angehängte Dateien Angehängte Dateien

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 16.12.2013, 20:28
  2. Logo Datenlogger?
    Von pac im Forum Sonstige Steuerungen
    Antworten: 6
    Letzter Beitrag: 15.06.2009, 14:08
  3. Datenlogger
    Von saschag. im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 02.12.2008, 23:39
  4. DatenLogger
    Von kammi-kaze im Forum Simatic
    Antworten: 21
    Letzter Beitrag: 22.04.2008, 20:53
  5. 4 Kanal Datenlogger
    Von Unreal im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 29.08.2005, 22:09

Lesezeichen

Berechtigungen

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