CODESYS - das IEC 61131-3 Programmiersystem
https://forum-de.codesys.com/

Dateihandling für 4000 Variablen
https://forum-de.codesys.com/viewtopic.php?f=2&t=2213
Seite 1 von 1

Autor:  mbongi81@gmx.ch [ Fr Jan 08, 2010 3:54 pm ]
Betreff des Beitrags:  Dateihandling für 4000 Variablen

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

Autor:  gravieren [ Fr Jan 08, 2010 5:37 pm ]
Betreff des Beitrags: 

Hi


Welche Hardware ?

Autor:  mbongi81@gmx.ch [ Sa Jan 09, 2010 10:29 am ]
Betreff des Beitrags:  Hallo

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

Autor:  gravieren [ Sa Jan 09, 2010 10:43 am ]
Betreff des Beitrags: 

Hi

Hersteller ist die Moeller GmbH.

Da kann ich dir leider nicht helfen.

Autor:  Sascha [ Mo Jan 11, 2010 8:31 am ]
Betreff des Beitrags: 

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.

Autor:  Erik Böhm [ Mo Jan 11, 2010 12:01 pm ]
Betreff des Beitrags: 

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

Autor:  mbongi81@gmx.ch [ Mo Jan 11, 2010 4:29 pm ]
Betreff des Beitrags: 

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

Autor:  J Schohaus [ Do Jan 14, 2010 5:50 am ]
Betreff des Beitrags: 

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.

Autor:  mbongi81@gmx.ch [ Fr Jan 15, 2010 11:28 am ]
Betreff des Beitrags: 

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

Autor:  J Schohaus [ Mo Jan 18, 2010 5:18 am ]
Betreff des Beitrags: 

Hallo dann sollte mein Beispiel dir weiterhelfen.
MyData ist eine beliebige Strucktur.

Code:
IF xDataWrite THEN 
 xDataWirte := FALSE ;
 sFileName := 'C:/MyFile.Dat' ;
 (* Öffnen zum Daten schreiben *)
 idFile := SysFileOpen( FileName := FileName , 'w' );
 SysFileWrite(File := idFile ,
   Buffer := ADR( MyData ) ,
   Size := SIZEOF( MyData ));
 SysFileClose(File := idFile );
END_IF

IF xDataRead THEN
 xDataRead := FALSE ;
 sFileName := 'C:/MyFile.Dat' ;
 (* Öffnen zum Lesen der Daten *)
 idFile := SysFileOpen( FileName := FileName , 'r' );
 SysFileRead(File := idFile ,
   Buffer := ADR( MyData ) ,
   Size := SIZEOF( MyData ));
 SysFileClose(File := idFile );
END_IF


mfG Jochen

Autor:  mbongi81@gmx.ch [ Mi Jan 20, 2010 8:07 pm ]
Betreff des Beitrags: 

Hi Jochen!!

:-D Besten dank für die fantastische Hilfe! Das Programm funktioniert so Hervorragend! Ich schreib jetzt ca. 6000 Variablen in die Datei! Macht richtig Laune :-D vielen vielen Dank!!!!!

Manuel

Autor:  Bongi [ Do Sep 19, 2013 3:36 pm ]
Betreff des Beitrags:  Re: Dateihandling für 4000 Variablen

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

Autor:  Erik Böhm [ Fr Sep 20, 2013 6:05 am ]
Betreff des Beitrags:  Re: Dateihandling für 4000 Variablen

Moin
Wenn du die Daten lesen willst, dann musst du eben ASCII Zeichen schreiben. Sprich: STRINGS.
Gruß Erik

Seite 1 von 1 Alle Zeiten sind UTC
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/