FB_CsvRead Esempio

Panoramica

L'esempio seguente mostra come i valori letti da un file CSV vengono memorizzati nel buffer fornito dall'applicazione per ulteriore elaborazione.

Esempio di file CSV

Contenuto del file example.csv con delimitatore specificato come punto e virgola (;):

PNo;PName;PValue;PUnit;Description
1;Velo_Max;1500;rpm;maximum velocity of the motor
2;Velo_Min;100;rpm;minimum velocity of the motor
3;Velo_ManMode_Slow;150;rpm;velocity manual mode slow move
4;Velo_ManMode_Fast;600;rpm;velocity manual mode fast move

Esempio di programma

PROGRAM SR_Example
VAR
  fbRead :FFU.FB_CsvRead;
  xCmdRead :BOOL;
  asCsvTable:ARRAY[0..c_uiNumOfRows-1,0..c_uiNumOfColumns-1] OF STRING(c_uiLengthOfValue);
  stCsvTable: FFU.ST_CsvTable;
END_VAR
VAR CONSTANT
  c_uiNumOfRows :UINT:= 8;
  c_uiNumOfColumns :UINT:= 7;
  c_uiLengthOfValue :UINT:= 20;
END_VAR

fbRead.i_stTableReadValues.pbyTable := ADR(asCsvTable);
fbRead.i_stTableReadValues.uiNumOfRows := c_uiNumOfRows;
fbRead.i_stTableReadValues.uiNumOfColumns := c_uiNumOfColumns;
fbRead.i_stTableReadValues.udiSizeOfTable := SIZEOF(asCsvTable);

fbRead.i_stReadParameter.sDelimiter := ';';
fbRead.i_stReadParameter.etReadMode := FFU.ET_CsvReadMode.AllValues;
fbRead.i_stReadParameter.udiNumOfRow := 0;
fbRead.i_stReadParameter.udiNumOfColumn := 0;

fbRead(
       i_xExecute:= xCmdRead, 
       i_sFilePath:= 'myfiles/Example.csv', 
       i_stTableReadValues:= , 
       i_stReadParameter:= , 
       i_timTimeout:= , 
       q_xDone=> , 
       q_xBusy=> , 
       q_xError=> , 
       q_etResult=> , 
       q_sResultMsg=> , 
       q_stFileInformation=> , 
       q_stCsvWarnValueTruncated=> , 
       xValueTruncated=> );

Buffer

Il buffer fornito dall'applicazione contiene gli elementi letti dal file CSV:

Indice array

0

1

2

3

4

5

6

0

PNo

PName

PValue

PUnit

Descrizione

1

1

Velo_Max

1500

min-1

velocità massima di

2

2

Velo_Min

100

min-1

velocità minima di

3

3

Velo_ManMode_Slow

150

min-1

modalità manuale velocità

4

4

Velo_ManMode_Fast

600

min-1

modalità manuale velocità

5

6

7

NOTA: I valori nella colonna Descrizione sono stati troncati durante la lettura del file perché la lunghezza delle STRINGs nel buffer di lettura è limitata a 20 caratteri. L'uscita q_stWarnValueTruncated del blocco funzione indica che il valore nella riga 2 e colonna 5 è stato troncato.