Home > Forum > Controller SlimLine e Netsyst (LogicLab) > So verwenden Sie die SD-Karte zum Speichern von Protokolldateien
- Dieses Thema hat 19 Antworten, 10 Teilnehmer und wurde zuletzt aktualisiert 4 Jahre, 11 Monate da Sergio Bertana.
-
AutorPost
-
August 4, 2011 bei 8: 44 #35074AnonymGast
Ich habe gerade die Firmware auf dem CPU-Modul aktualisiert SlimLine mit der neuen Version, die das Dateisystem unterstützt. Ich versuche, ein einfaches Programm zu erstellen, das Daten in einer SDCard-Protokolldatei speichert, aber ich kann sie nicht zum Laufen bringen. Können Sie mir einige Informationen geben?
August 4, 2011 bei 8: 46 #36879Sergio BertanaAdministrator des ForumsDas Betriebssystem der SlimLine ab Version SFW167C100 (Upgrade siehe FAQ), unterstützt das Dateisystem. Zwei Verzeichnisse werden verwaltet Lagerung (Von 100 Kb) befindet sich auf dem EEPROM-Speicher auf dem CPU-Modul, SDCard (Max. 512 MB) auf der SD-Karte vorhanden, die in das CPU-Modul eingelegt werden muss. Um auf die Verzeichnisse zugreifen zu können, muss das Format formatiert werden Format von Telnet. Die vollständige Liste der Telnet-Befehle finden Sie unter ReferenzhandbuchDie Standardanmeldeinformationen für Telnet und Ftp für den Administrator sind Benutzername: Administrator, Passwort AdministratorIn Übereinstimmung mit dem Befehl Format muss die Anzahl der für jedes Verzeichnis akzeptierten Dateien definiert werden, maximal 12 Dateien insgesamt. Der erste Parameter bezieht sich auf die Dateien im Speicher, der zweite auf die Dateien auf der SDCard (falls nicht vorhanden, fügen Sie 0 ein). Beispiel: Um 2 Dateien im Speicher und 4 auf der SDCard zu haben, geben wir den Befehl Format 2, 4Wenn der Befehl korrekt ausgeführt wird, wird die Nachricht zurückgegeben Format Ok, Speicher: 2-Dateien, SDCard: 4-DateienDurch die Verbindung mit dem SlimLine mit einem FTP - Client (Beispiel FileZilla) wird es möglich sein, den Verzeichnisbaum und den Zugriff beim Lesen und Schreiben, Erstellen, Löschen und Bearbeiten der darin enthaltenen Dateien anzuzeigen (siehe Screenshot).
August 4, 2011 bei 10: 16 #36880Sergio BertanaAdministrator des ForumsFür Ihre Notwendigkeit, eine Protokolldatei auf SDCard zu schreiben, habe ich ein einfaches LogicLab-Programm erstellt (Herunterladen) das eine benannte Datei speichert CLog.txt, mit innerhalb von 50 log Aufzeichnungen des Spannungswerts, der von einem Analogeingang erfasst wurde.
Die Datei enthält Datensätze, die im CSV-Format gespeichert wurden, um einfach in Excel importiert zu werden. Jeder Datensatz enthält 5 Felder, die durch ";"(Beispiel: 01;12;12;03;01.8;). Das 1. Feld ist ein progressiver Datensatz von 0 bis 49. Das 2., 3. und 4. Feld zeigt die Stunde, Minuten und Sekunden des Datensatzes. Das 5. Feld zeigt den in Volt erfassten Spannungswert.
Das Schreiben des Protokolldatensatzes erfolgt durch dieses Programm in ST (Auflistung), die das Array "füllt" LogRecord mit log ascii string (5 Felder durch ";" getrennt). Die Funktion SysVarsnprintf schreibt den Wert gefolgt vom Terminatorcode "0", dann muss der nächste Wert an der Position des Arrays geschrieben werden, an der der Terminatorcode beim vorherigen Schreiben platziert wurde.
Beendet den Protokollsatz mit der Funktion SysfseekDie Positionierung wird an der Datei in der Schreibposition und mit der Funktion durchgeführt Sysfwrite Schreiben ist getan.
Juni 25, 2012 bei 10: 32 am #37297MichelePartecipanteUo eins SlimLine und ich möchte die SDCARD als Datenlogger verwenden, ich habe in diesem Thema gesehen, dass wir über SD Card max 512MB sprechen. Liegt diese Grenze an der Verwendung der SD-Karte als SPI-Flash oder kann ich auch eine SD-Karte mit einer Größe von mehr als 512 verwenden?
Danke wie immer für die wertvolle Unterstützung dieses Forums und herzlichen Glückwunsch zu seiner effizienten Verwaltung.
Juni 25, 2012 bei 11: 58 am #37298Sergio BertanaAdministrator des ForumsDateisystemverwaltung auf dem CPU-Modul SlimLine ARM7 ist begrenzt, daher wurde die maximale Größe der verwaltbaren SD-Karte begrenzt. SD-Karten mit einer maximalen Größe von 2 GB können verwendet werden. In jedem Fall beträgt die maximale Größe des vom Dateisystem verwalteten Speicherbereichs 512 MB.
September 9, 2014 bei 2: 02 pm #38407OscarPartecipanteDanke für den Tipp, ich habe versucht, diese Schritte zu folgen, aber ich stieß auf die folgenden Probleme. Ich habe den Befehl ausgeführt Format 4, 0 Wie in diesem Post berichtet, aber ich habe eine Fehlermeldung erhalten, dann habe ich den Befehl ausgeführt Speicher formatieren, 4 wie ab Telnet-Befehlshandbuch durch Toolly. Ich habe den Befehl gelesen Dir Speicher:
Verzeichnis von "Speicher"
Platz für 4-Datei (en) von jeweils 67254-ByteIch habe dann versucht, eine Verbindung mit FileZilla herzustellen, die gemäß den von Ihnen vorgeschlagenen Parametern konfiguriert wurde. Die Verbindung zum Server ist korrekt hergestellt. Als Antwort erhalte ich jedoch die Meldung, dass die SPS keine Ordner zur Verfügung hat, die verfügbar gemacht werden können. Mit dem Explorer bleibt das FTP ohne Antworten "hängen". Ich habe das vorgeschlagene Programm geändert
IF (SysClock1000 = Puls) DANN RÜCKKEHR; END_IF;
Puls: = SysClock1000; (* Zeitbasisimpuls *)
Fp: = Sysfopen ('Storage / CLog.txt', 'a'); (* Öffnen Sie die Datei im "Anhängen" -Modus. *)In
Zeit: = SysTime;
WHILE SysTime - Time <60000 DO END_WHILE; (* um jede Minute eine Zeile in das Protokoll zu schreiben *)
Fp: = Sysfopen ('Storage / CLog.txt', 'a'); (* Dateizeiger *)Der Rest bleibt unverändert. Die Schrift 'Storage / CLog.txt', 'a' erscheint im ST-Editor rot. Ich führe das Programm in der Aufgabe Zurück aus, in der langsamen Aufgabe habe ich andere Programme, die korrekt funktionieren.
Zu diesem Zeitpunkt friert die SPS ein, der Status lautet NOT RUN. Ich habe versucht, ein zuvor funktionierendes Programm zu senden, aber die USB-Verbindung wurde unterbrochen. Ich habe die SPS ausgeschaltet und wieder eingeschaltet. Die RUN-LED beginnt mit einer festen Reihenfolge zu blinken. Nach einer Reihe von Versuchen, Programme neu zu starten und zu senden, konnte ich es mit einem alten Programm neu starten. Ich habe hier angehalten.
Könnte es sein, dass der Speicherplatz für die Datei nicht korrekt verfügbar ist? Können Sie mir sagen, was ich falsch gemacht habe?
September 9, 2014 bei 2: 45 pm #38408Sergio BertanaAdministrator des ForumsLassen Sie uns versuchen, Ihre Probleme der Reihe nach zu beantworten. Der Befehl Formatieren einer bestimmten Version des Betriebssystems wurde geändert. Jetzt müssen Sie angeben, welches Verzeichnis Sie formatieren möchten und wie viele Dateien Sie den Speicherplatz verlassen möchten. Also dein Befehl Speicher formatieren, 4 Formatieren Sie das Speicherverzeichnis so, dass es 4-Dateien enthält, die den verfügbaren Speicherplatz teilen (wie vom Befehl gemeldet) DirIch verstehe nicht, warum der FTP-Client keine Verbindung herstellt. Sie sagen mir nicht, welches Betriebssystem Sie verwenden. Mit Total Commander und dem Windows 7-Explorer, den ich normalerweise verwende, hatte ich nie Probleme (Betreff) Überprüfen Sie möglicherweise, ob Sie die neueste Version des Betriebssystems haben. Der Fehler, den Sie gemacht haben, ist sehr schwerwiegend. Sie können ein SPS-Programm niemals in einem geschlossenen Regelkreis stoppen. WHILE (SysTime-Time) <60000 DO END_WHILE; Dies bewirkt, dass der Systemwächter eingreift und die Ausführung neu initialisiert, die sich in der Endlosschleife wieder schließt und erneut initialisiert wird. Dies blockiert alle Systemressourcen einschließlich der Kommunikation (Betreff). Wie kommst du da raus? Nach einer bestimmten Anzahl von Neustarts stoppt das System im Ruhezustand und es ist wieder möglich, die Verbindung wieder aufzunehmen und ein neues Programm zu laden.
September 9, 2014 bei 4: 30 pm #38409Sergio BertanaAdministrator des ForumsSo korrigieren Sie das Timing: Im Forum finden Sie endlose Beispiele für die Verwendung der Systemzeit. So können Sie dies tun.
IF ((SysGetSysTime (TRUE) -Time)> 60000000) THEN
Time: = SysGetSysTime (TRUE); (* Zeitpuffer (US) *)
Fp: = Sysfopen ('Storage / CLog.txt', 'a'); (* Öffnen Sie die Datei im "Anhängen" -Modus. *)… Andere Programmanweisungen
END_IF;Anmerkung: Die Variable Uhrzeit muss vom Typ UDINT sein.
Oktober 7, 2014 bei 9: 03 pm #38452LuisPartecipanteGuten Morgen, ich wollte einen Datenlogger mit einer SPS machen SlimLine um die Werte von 4 analogen Eingängen alle 10 Sekunden im CSV-Format mit dem Datum (Jahr, Monat, Tag, Stunde, Minute, Sekunde) aufzuzeichnen und für jeden Tag eine Datei zu erstellen. Ich brauche ein bisschen Hilfe.
Oktober 8, 2014 bei 8: 24 #38453Sergio BertanaAdministrator des ForumsWenn Sie das Programm herunterladen, das Sie in einem der Beiträge zu diesem Thema finden, haben Sie bereits einen guten Ausgangspunkt. Ausgehend vom Programm des vorherigen Beitrags habe ich jedoch ein Programm vorbereitet, das erkennt, was Sie brauchen. Hier ist der Druck des WriteLog-Programms.
Wie Sie sehen können, habe ich ein Array von Zeichenfolgen für die Definition der Wochentage definiert, sodass für jeden Tag eine CSV-Datei geschrieben werden kann (die Datei hat den Namen des Tages). Wenn der Tag geändert wird, wird die Datei desselben Tages gelöscht (dies ist die Datei der Woche zuvor) und eine neue Datei des Tages mit den neuen Daten erstellt. So haben Sie eine Woche Zeit, um die gespeicherten Protokolldateien auf FTP herunterzuladen.
Ich habe den Protokolldatensatz im Format erstellt 2014-10-08 09:25:58;02.8;02.8;02.8;02.8Wie Sie sehen können, folgen auf das Datums- / Uhrzeitfeld die 4 Analogwerte. In meinem Beispiel führe ich eine einzige analoge Erfassung für alle 4 Kanäle durch, aber ich überlasse es Ihnen, die 4 Erfassungen vorzunehmen und sie wieder in die Aufzeichnung aufzunehmen.
Ich glaube, dass Sie mit diesem Beispiel im vorherigen Beispiel alle Informationen haben, um Ihren DataLogger zu erstellen. Hier ist der Quellprogramm.
Oktober 25, 2014 bei 6: 34 #38476AnonymLeerlaufDas im vorherigen Beitrag gezeigte Beispiel passt sehr gut zu dem Problem, mit dem ich konfrontiert bin. Der einzige Einwand ist, dass ich Daten für einen Zeitraum von mehr als einer Woche speichern möchte. In einem der vorherigen Beiträge habe ich das gelesen SlimLine kann bis zu 512 MB Speicher auf SDCard mit bis zu 64 Dateien verwalten.
Wenn Sie eine Protokolldatei speichern müssen, die aus 7 REAL-Werten (5 4-20-mA-Signale und 2 vom Modbus-Protokoll gelesene Werte) und dem Datenfeld im CSV-Format besteht, wie viel Speicherplatz belegt jeder zu historisierende Datensatz?
Wäre es möglich, alle 10 Sekunden einen Datensatz zu speichern, wäre es möglich, Dateien mit den Werten einer ganzen Woche (oder sogar eines Monats) zu erstellen und nicht nur für einen einzelnen Tag wie im Beispiel?
Eine andere Möglichkeit, das zu sehen SlimLine Wenn über den FTP-Client zugegriffen werden kann, kann ein Programm auf einem PC geplant werden, das die Protokolldateien automatisch von der Website liest SlimLine und sichern Sie es auf einem Server, wodurch die Möglichkeit der Protokollierung drastisch erhöht wird?
Oktober 25, 2014 bei 7: 23 #38477Sergio BertanaAdministrator des ForumsIch habe einen Protokolldatensatz mit den von Ihnen benötigten Daten (Datum / Uhrzeit; 7 REAL-Werte) angenommen. Der Datensatz ist vom Typ:
25/10/2014 00:00:00;120.5;75.8;1200.0;145.76;1560.6;456.8;985.75
Wie Sie sehen, gibt es 64 Bytes, die wir auf 70 aufrunden. Wenn wir alle 10 Sekunden ein Protokoll erstellen, haben wir 360 Datensätze / Stunde (entspricht 25 KB Stunde). Selbst wenn wir 24 Stunden am Tag und 24 Tage im Monat ein kontinuierliches Protokoll annehmen, werden wir jeden Monat 31 Datensätze mit einer Datenmenge von 267840 MB haben. Wenn Sie die SDCard so formatieren, dass sie die 18 Monate enthält, stehen für jede Datei 12 MB Daten zur Verfügung, wie im Befehl angegeben:
SDCard 12 formatieren
Bist du sicher? (Y, n)
Format Ok, Dateien: 12, FSize: 44738688, Uhrzeit: 54.290 (mS)In Bezug auf die Lösung schlagen Sie vor, von einem PC über eine FTP-Verbindung die Dateien auszulesen SlimLineIch würde sagen, dass dies eine hervorragende Lösung ist, um eine effektive Datensicherung im Unternehmensspeicher sicherzustellen. Wenn Sie sich für diese Lösung entscheiden, würde ich die Dateien behalten SlimLine kleiner (also würde ich täglich speichern) und der zentrale Server kann jeden Tag die Datei des Vortages herunterladen, die in der SlimLine eine Lunge von 7 Tagen.
März 22, 2016 bei 4: 17 pm #39475AlbertoPartecipanteNachdem ich die SDCard in die SPS eingelegt hatte, formatierte ich sie mit den abgebildeten Verfahren direkt auf der SPS und schrieb damit Datendateien, alles in Ordnung.
Aber jetzt möchte ich die Dateien auf einen PC kopieren, aber in den Reader eingefügt ist es leer, in der Praxis sieht der PC die gespeicherten Dateien nicht. Was habe ich ausgelassen? Die Dateien sind sicherlich auf der SDCard vorhanden.
März 23, 2016 bei 8: 24 am #39476Sergio BertanaAdministrator des ForumsDu hast alles richtig gemacht SlimLine Um sicherzustellen, dass die Daten beim plötzlichen Herunterfahren des Systems nicht beschädigt werden können, wird ein proprietäres Dateisystem verwendet, das vom PC nicht erkannt wird.
Um Daten von der SD-Karte auf den PC und / oder umgekehrt zu übertragen, müssen Sie einen FTP-Client verwenden (Betreff) Sie können auch den Windows Explorer verwenden (Bildschirmfoto).
Juni 17, 2016 bei 8: 05 pm #39633AnthonyPartecipanteNach dem Upgrade einer alten CPU slimline Modell A auf die neueste verfügbare Firmware-Version (167) Ich habe den Systemordner, den ich in keiner Weise hinzufügen kann (in FTP mit Filezilla mit Ressourcenverwaltung usw.), vollständig verloren. Dadurch wird mir immer der Zugriff verweigert oder der Vorgang nicht zugelassen.
Wenn ich mich auch mit Toolly verbinde und versuche zu formatieren (selbst die beiden einzigen Ordner in Storage und SDCard), erhalte ich einen falschen Parameter (der Befehl ist eindeutig nicht falsch).
Gibt es eine Möglichkeit, das gesamte Dateisystem wiederherzustellen?
-
AutorPost
- Sie müssen angemeldet sein, um auf dieses Thema antworten zu können.