FB_CsvWrite Descrizione funzionale

Panoramica

Tipo:

Blocco funzione

Disponibile a partire da:

V1.0.8.0

Ereditato da:

-

Implementa:

-

Descrizione funzionale

Il blocco funzione FB_CsvWrite consente di scrivere valori in un file CSV ubicato nel file system del controller, oppure nella memoria estesa (ad esempio, una scheda di memoria SD). Può inoltre creare un nuovo file. Per informazioni sul file system, consultare il capitolo Organizzazione della memoria flash nella Guida di programmazione del controller.

I dati da scrivere nel file sono memorizzati nel buffer fornito dall'applicazione come variabili di tipo STRING. Dichiarare il buffer nell'applicazione come ARRAY bidimensionale di tipo STRING. Utilizzare l'ingresso i_stTableWriteValues per fornire le dimensioni dell'array e il puntatore all'array a tale blocco funzione. Per ulteriori informazioni, consultare la struttura ST_CsvTable.

Quando si esegue il blocco funzione, l'ingresso i_stTableReadValues.pbyTable viene memorizzato internamente per un ulteriore uso. Se viene rilevato un evento di modifica online durante l'esecuzione del blocco funzione (q_xBusy = TRUE), le variabili utilizzate internamente vengono aggiornate con il valore corrente dell'ingresso.

NOTA: Non riassegnare i_stTableReadValues.pbyTable a un'altra area di memoria durante l'esecuzione del blocco funzione.

L'array bidimensionale ripresenta la struttura di tabella con righe e colonne. Ogni riga rappresenta un record. Il numero di colonne rappresenta il numero massimo di valori che può avere un record.

L'ingresso i_stWriteParameter fornisce il parametro per controllare l'operazione di scrittura. Utilizzare il parametro sDelimiter per specificare il codice carattere per il delimitatore inserito per separare i singoli valori del file. Il valore del parametro etModeFileOpen consente di specificare se i dati devono essere aggiunti a un file esistente o se occorre creare un nuovo file. Utilizzare i parametri uiNumOfRows e uiNumOfColumns per specificare la quantità di dati da scrivere.

Il codice carattere LF (0A hex) viene inserito per provocare un'interruzione di linea tra due record.

Interfaccia

Ingresso

Tipo di dati

Descrizione

i_xExecute

BOOL

Il blocco funzione apre o crea il file CSV specificato e vi scrive il contenuto specificato su un fronte di salita di questo ingresso.

i_sFilePath

STRING[255]

Percorso del file CSV.

Se si specifica un nome di file senza estensione, il blocco funzione aggiunge l'estensione .csv.

i_stWriteParameter

ST_WriteParameter

Specifica la modalità di apertura del file CSV e il contenuto da scrivere nel file.

i_timTimeout

TIME

Alla scadenza del tempo, l'esecuzione viene annullata.

Se il valore è T#0s, viene applicato il valore predefinito T#2s.

i_stTableWriteValues

ST_CsvTable

Struttura per passare il buffer fornito dall'applicazione al blocco funzione (consultare la struttura ST_CsvTable).

Uscita

Tipo di dati

Descrizione

q_xDone

BOOL

Se questa uscita è impostata a TRUE, l'esecuzione è stata completata correttamente.

q_xBusy

BOOL

Se questa uscita è impostata a TRUE, l'esecuzione del blocco funzione è in corso.

q_xError

BOOL

Se questa uscita è impostata su TRUE, è stato rilevato un errore. Per informazioni, consultare q_etResult e q_etResultMsg.

q_etResult

ET_Result

Fornisce informazioni su stato e diagnostica come valore numerico.

Se q_xBusy = TRUE, il valore indica lo stato.

Se q_xDone o q_xError = TRUE, il valore indica il risultato.

q_sResultMsg

STRING[80]

Fornisce ulteriori informazioni su stato e diagnostica come messaggio di testo.

q_udiFileSize

UDINT

Fornisce la dimensione del file in byte del file appena elaborato.

Uso delle variabili di tipo POINTER TO … o REFERENCE TO …

Il blocco funzione fornisce ingressi e/o ingressi/uscite di tipo POINTER TO… o REFERENCE TO…. Utilizzando questo tipo di puntatore o riferimento, il blocco funzione accede all'area di memoria indirizzata.

NOTA: in caso di modifica in linea, è possibile che le aree di memoria vengano spostate in nuove ubicazioni di memoria e, di conseguenza, un puntatore o un riferimento diventi non valido. Per evitare errori associati a puntatori non validi, occorre aggiornare ciclicamente le variabili di tipo POINTER TO… o REFERENCE TO… o almeno all'inizio del ciclo nel quale vengono usate.