Quantcast
Channel: SPS-Forum - Automatisierung und Elektrotechnik
Viewing all articles
Browse latest Browse all 50018

[TwinCat3] Datensatz schreiben

$
0
0
Code:

fbWriter  : FB_CSVMemBufferWriter;
nRow: INT := 1;
sCSVField            : ARRAY [1..iSizeOfValueArray] OF T_MaxString;
sCSVLine            : ARRAY [1..1000000000] OF BYTE;
str_Power: STRING;
aValueArray : ARRAY [1..iSizeOfValueArray] OF LREAL;

Code:

WHILE nRow <= iSizeOfValueArray DO  //nRow wurde oben auf 1 gesetzt
 
  aValueArray[nRow] := nRow + 0.11; //Beispiel aValueArray mit Werten füllen
 
        str_Power:=LREAL_TO_STRING(aValueArray[nRow]);  //LREAL WERT ZU STRING VERWANDELN
                sCSVField[nRow] := STRING_TO_CSVFIELD( str_Power, FALSE );(* TODO: Get field value from your application *) // STRING IN CSVFIELD VERWANDELN
   
    nRow := nRow +1;
   
 END_WHILE //
 
 

              fbWriter(    pBuffer := ADR( sCSVLine ), cbBuffer := SIZEOF( sCSVLine ), putValue := '', pValue := ADR(sCSVField), cbValue := SIZEOF(sCSVField[1]),
                            bCRLF := TRUE);(* bCRLF == TRUE => Write CRLF after the last field value *)
     
                IF fbWriter.bOk THEN
                    fbWriter.eCmd := eEnumCmd_Next;(* Write next field value *)
                ELSE(* Error *)
               
                    RETURN;
                END_IF

Hi, wieso funktioniert mein fbWriter nicht? Ich übergebe mit pValue := ADR(sCSVField) einen Array of STRINGs aus dem STRING_TO_CSV FB.

Infosys: fbWriter aka FB_CSVMemBufferWriter: ( https://infosys.beckhoff.de/index.ph...Writer.htm&id= )

Also fb.Writer.bOk meldet auch ein FALSE, weswegen da irgendwas schief läuft. Finde den Fehler aber nicht...

Ich denke der Fehler liegt im pValue, dass ich durch sCSVField, irgendwas falsches übergeben...

pValue: Optional: Adresse eines externen Bytepuffers in dem sich das neue Datenfeld befindet. Zusammen mit dem cbValue-Parameter kann dieser Eingang dann benutzt werden wenn z.B. ein Datenfeld mit Steuerzeichen oder Binärdaten in den Datensatz geschrieben werden soll. Die Steuerzeichen oder Binärdaten im Datenfeld könnten den putValue-String an einer ungewünschten Stelle abschneiden und werden deshalb als Bytepuffer übergeben. Dieser Eingang muss den Wert Null haben wenn er nicht benutzt wird.

Viewing all articles
Browse latest Browse all 50018


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>