Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched.
Close
ich bin ein Absoluter Programmierneuling und hab darum auch ein wenig Schwierigkeiten folgendes Problem zu lösen.
Für ein Projekt ist es erforderlich 4000Variablen möglichst schnell in so etwas wie eine Datei zu schreiben und diese bei bedarf wieder herauszulesen.
Ein gangbarer Weg, denke ich wäre, die Variablen in Stings zu wandeln und diese dann in ein .txt zu schreiben. Leider habe ich hier bei bedenken betreffend der zeitlichen Anforderung und bis jetzt keine dienlichen Infos gefunden sie ich ein solches Dateihandlin erstellen kann.
Des weiteren habe ich vernommen es sei möglich sogenannte .TAB files zu erstellen in welchen die Daten, ähnlich wie in einem .xls abgelegt werden können. Dies wäre für die Anwendung phantastisch da die Daten nicht gewandelt werden müssten.
Kann mir hierbei irgendjemand helfen?????
Besten Dank und Gruss
Manuel
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Es ist ein 12" Touch-Panel HMI-PLC XV-440 mit einem RISC, 32Bit 400MHz Prozessor. Die Daten und die Software sind auf Compact-Flashcards gesichert (die Dateien mit den Variablen sollten ebenfalls auf dem Flash abgelegt werden.
Besten Dank für deine Bemühungen.
Manuel
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
ja es soll nur der Inhalt der Variablen in die Datei geschrieben werden evt. noch einen Header mit allg. Parameter. Ich habe mich im erstellen der Dateien mittels der SysLibFile.Lib versucht brachte es aber nicht zustande eine Datei zu erstellen und in diese einen Inhalt zu schreiben (oder vielleicht fand ich diese auch einfach nicht Falls du Beispiele hättest wäre dies Phantastisch!!!!
Hi Erik Böhm
werde mich gleich mal schlau machen!
Besten Dank allen unterstützern!!!
Manuel
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Die Daten sind in zwei Strukturen abgelegt. Es handelt sich dabei um Produktionsdaten. Wechselt der Kunde das Objekt müssen die neuen Daten geladen werden die aktuellen, evt. geänderten, gespeichert werden.
Die Dateien sollen nur schnell und sicher abgelegt und aufgerufen werden können. Aufrufe der Dateien von anderen Systemen ist nicht geplant!!
besten Dank
Manuel
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
IFxDataWriteTHEN
 xDataWirte :=FALSE;
 sFileName :='C:/MyFile.Dat';
 (* ÖffnenzumDatenschreiben*)
 idFile :=SysFileOpen(FileName :=FileName , 'w');
 SysFileWrite(File :=idFile ,
  Buffer :=ADR(MyData) ,
  Size :=SIZEOF(MyData));
 SysFileClose(File :=idFile);END_IFIFxDataReadTHEN
 xDataRead :=FALSE;
 sFileName :='C:/MyFile.Dat';
 (* ÖffnenzumLesenderDaten*)
 idFile :=SysFileOpen(FileName :=FileName , 'r');
 SysFileRead(File :=idFile ,
  Buffer :=ADR(MyData) ,
  Size :=SIZEOF(MyData));
 SysFileClose(File :=idFile);END_IF
mfG Jochen
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Besten dank für die fantastische Hilfe! Das Programm funktioniert so Hervorragend! Ich schreib jetzt ca. 6000 Variablen in die Datei! Macht richtig Laune vielen vielen Dank!!!!!
Manuel
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
naja alte Schandtaten holen einem bekanntlich immer wieder ein und nun Jahre später darf ich mich wieder mal mit dem Thema auseinandersetzen.
Die Lösung von damals Funktioniert einwandfrei. Allerdings mit dem Nachteil, dass die Daten im File nicht leserlich dargestellt werden. Nun soll dies geändert werden.
Bevor ich mich an die Arbeit mache wollt ich mal nachfragen ob jemand weiss warum dies so ist und ob es allenfalls Abhilfen dafür gibt. Die Struktur die zum einschreiben übergeben wird ist folgende:
TYPE Beispiel :
STRUCT
st01 : ARRAY[1..32] OF TYP_aa; (Typ_bb Besteht aus einem Array [1..200] eines Typ_cc welcher ein Array [1..12] of Word beinhaltet. ~Sinngemäss)
st01 : ARRAY[1..64] OF TYP_dd; (Typ_ee Besteht aus einem Array [1..20] eines Typen_dd welcher ein Array [1..12] of Byte beinhaltet. ~Sinngemäss)
stTyp01 : Typ01;
stTyp02 : Typ02;
stTyp03 : Typ03;
END_STRUCT
END_TYPE
Ansonsten mach ich mich daran die Funktionen von SysLibFile und SyslibFileAsynch auszunutzen...
Besten Dank an alle
Gruss
Manuel
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo Miteinander
ich bin ein Absoluter Programmierneuling und hab darum auch ein wenig Schwierigkeiten folgendes Problem zu lösen.
Für ein Projekt ist es erforderlich 4000Variablen möglichst schnell in so etwas wie eine Datei zu schreiben und diese bei bedarf wieder herauszulesen.
Ein gangbarer Weg, denke ich wäre, die Variablen in Stings zu wandeln und diese dann in ein .txt zu schreiben. Leider habe ich hier bei bedenken betreffend der zeitlichen Anforderung und bis jetzt keine dienlichen Infos gefunden sie ich ein solches Dateihandlin erstellen kann.
Des weiteren habe ich vernommen es sei möglich sogenannte .TAB files zu erstellen in welchen die Daten, ähnlich wie in einem .xls abgelegt werden können. Dies wäre für die Anwendung phantastisch da die Daten nicht gewandelt werden müssten.
Kann mir hierbei irgendjemand helfen?????
Besten Dank und Gruss
Manuel
Hi
Welche Hardware ?
Hi!
Es ist ein 12" Touch-Panel HMI-PLC XV-440 mit einem RISC, 32Bit 400MHz Prozessor. Die Daten und die Software sind auf Compact-Flashcards gesichert (die Dateien mit den Variablen sollten ebenfalls auf dem Flash abgelegt werden.
Besten Dank für deine Bemühungen.
Manuel
Hi
Hersteller ist die Moeller GmbH.
Da kann ich dir leider nicht helfen.
Hi
Musst du nur den Inhalt der Variablen in eine Datei schreiben oder muss der Variablenname auch mit geschrieben werden?
Wenn nur der Inhalt geschreiben werden muss, könnte es eventuell in der Bibliothek für das Panel auch ein Filehandling geben.
Gruß Sascha
P.S.: Siehe SysLibFile.Lib wenn als Zielsystem "3S CoDeSys SP PLCWinNT V2.4" ausgewählt ist.
Hi
Hast du dir schon mal das Thema Watchlisten angeschaut ?
Zumindest über die Visu mit SAVEWATCH / LOADWATCH können damit solche Aufgaben erledigt werden.
Gruß
Erik
Hi Sascha
ja es soll nur der Inhalt der Variablen in die Datei geschrieben werden evt. noch einen Header mit allg. Parameter. Ich habe mich im erstellen der Dateien mittels der SysLibFile.Lib versucht brachte es aber nicht zustande eine Datei zu erstellen und in diese einen Inhalt zu schreiben (oder vielleicht fand ich diese auch einfach nicht Falls du Beispiele hättest wäre dies Phantastisch!!!!
Hi Erik Böhm
werde mich gleich mal schlau machen!
Besten Dank allen unterstützern!!!
Manuel
Hallo Manuel ist es nowendig das die Daten mit ein Text Editor gelesen werden kann oder werden die Daten nur in der Steuerung benötigt.
Dann könntest Du deine Variablen in einer Strucktur legen.
Dann ist es sehr einfach den inhalt in eine Datei schreiben oder lesen.
Hi J Schohaus
Die Daten sind in zwei Strukturen abgelegt. Es handelt sich dabei um Produktionsdaten. Wechselt der Kunde das Objekt müssen die neuen Daten geladen werden die aktuellen, evt. geänderten, gespeichert werden.
Die Dateien sollen nur schnell und sicher abgelegt und aufgerufen werden können. Aufrufe der Dateien von anderen Systemen ist nicht geplant!!
besten Dank
Manuel
Hallo dann sollte mein Beispiel dir weiterhelfen.
MyData ist eine beliebige Strucktur.
mfG Jochen
Hi Jochen!!
Besten dank für die fantastische Hilfe! Das Programm funktioniert so Hervorragend! Ich schreib jetzt ca. 6000 Variablen in die Datei! Macht richtig Laune vielen vielen Dank!!!!!
Manuel
Hallo Zusammen,
naja alte Schandtaten holen einem bekanntlich immer wieder ein und nun Jahre später darf ich mich wieder mal mit dem Thema auseinandersetzen.
Die Lösung von damals Funktioniert einwandfrei. Allerdings mit dem Nachteil, dass die Daten im File nicht leserlich dargestellt werden. Nun soll dies geändert werden.
Bevor ich mich an die Arbeit mache wollt ich mal nachfragen ob jemand weiss warum dies so ist und ob es allenfalls Abhilfen dafür gibt. Die Struktur die zum einschreiben übergeben wird ist folgende:
TYPE Beispiel :
STRUCT
st01 : ARRAY[1..32] OF TYP_aa; (Typ_bb Besteht aus einem Array [1..200] eines Typ_cc welcher ein Array [1..12] of Word beinhaltet. ~Sinngemäss)
st01 : ARRAY[1..64] OF TYP_dd; (Typ_ee Besteht aus einem Array [1..20] eines Typen_dd welcher ein Array [1..12] of Byte beinhaltet. ~Sinngemäss)
stTyp01 : Typ01;
stTyp02 : Typ02;
stTyp03 : Typ03;
END_STRUCT
END_TYPE
Ansonsten mach ich mich daran die Funktionen von SysLibFile und SyslibFileAsynch auszunutzen...
Besten Dank an alle
Gruss
Manuel
Moin
Wenn du die Daten lesen willst, dann musst du eben ASCII Zeichen schreiben. Sprich: STRINGS.
Gruß Erik