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.
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.
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. |
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.