Variablen speichern/ einlesen PFC200 e!cockpit

elbibi

Level-1
Beiträge
29
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

in meinem Programm kann ich verschiedene Werte in der Visu in ein Array eintragen und dort auch verändern. Also quasi eine "Methode" erstellen.

Gibt es eine einfache Möglichkeit, diese Werte jetzt in einer Datei zu speichern und auch aus einer Datei wieder einzulesen?

Also: Werte in Array eintragen -> als "MethodeX" speichern
und: Werte aus "MethodeY" in Array einlesen.

Versuche es gerade mit Rezepten, wäre das auch die Lösung eurer Wahl oder geht das auch einfacher (Baustein) oder unkomplizierter?

Gruß
elbibi
 
Hallo elbibi,

ich würde die WagoAppFileDir verwenden.
Mit den Funktionsbausteinen FbWriteWholeFile_cpt und FbReadWholeFile_cpt das Array schreiben und lesen:

Code:
PROGRAM PLC_PRG
VAR
 aDataToWrite:ARRAY [0..99] OF BYTE;
 oWrite: FbWriteWholeFile_cpt;
 xWrite: BOOL;
END_VAR

oWrite(
 xTrigger:= xWrite, 
 sName:= '/media/sd/datei.txt', 
 pTxBuffer:= ADR(aDataToWrite), 
 udiTxNBytes:= SIZEOF(aDataToWrite) );

Du könntest auch eine Struktur übergeben.


Grüße
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke, Tobsucht.

Diese Bausteine hatte ich jetzt auch schonmal ausprobiert, konnte auch eine Datei auf die SD-Karte des Controllers speichern.

Genau genommen möchte ich auch eine Struktur übergeben, so in etwa:

Code:
TYPE meineParameter:
STRUCT
   myString: STRING;
   myBool: BOOL;
   myArray: ARRAY [0..10] OF BOOL;

Die Werte für alle Elemente dieser Struct kann ich über eine Eingabe in der Visu ändern, ich habe also eine (sehr große) Tabelle mit allen Elemtenten dieser Struct, inklusive langer Arrays. Das wären dann meine erwähnte "Methode".

Das in einer Datei 'irgendwie' speichern geht ja, aber das einlesen?
Müsste ich dann doch mühsam in eine .csv speichern und zeile für Zeile wieder einlesen, oder?

Ich dachte da mehr so an: eine zuvor gespeicherte Datei auswählen --> Datei öffnen drücken und ich habe alle meine Werte der Struct wieder so, wie in der Datei gespeichert :ROFLMAO:


Gruß
elbibi
 
Hallo,

Das Lesen funktioniert analog zum Schreiben.
Statt dem Array kannst Du natürlich auch deine Instanz der Stuktur meineParameter übergeben.

Grüße
 
Mh und wo kann ich die Daten abrufen, die ich mit FbReadWholeFile_Cpt einlese? Hat ja keinen entsprechenden Ausgang?
Code:
xTrigger := xLesen
sName := '/media/sd/test.txt'
pRxBuffer := ADR(meineParameter)
udiRxBufferSize := SIZEOF(meineParameter)

Irgendwie so?:
Code:
VAR
eingeleseneMethode := meineParameter
END_VAR


FbReadWholeFile_cpt_0.pRxBuffer^ := eingeleseneMethode

Hast du vielleicht nen Code-Schnipsel, stehe etwas auf dem Schlauch...:confused:
 
Danke Tobsucht, aber habe mich wieder unklar ausgedrückt.

Was ich jetzt im pRxBuffer habe ist ADR(oCfg). Also Pointer of Byte. Wie kann ich das dereferenzieren? Möchte das als Struct haben (und einer anderen Struct-Variablen zuweisen).
 
Zurück
Oben