LogFileCSV

Function block - Generate a log file in CSV format for a list of variables

Inputs

LOG : BOOL     Variables are saved on any rising edge of this input
RST : BOOL     Reset the contents of the CSV file
LIST : DINT    ID of the list of variables to log (use VLID function)
PATH : STRING  Pathname of the CSV file

Outputs

Q : BOOL       TRUE if the requested operation has been performed without error
ERR : DINT     Error report for the last requested operation (0 is OK)

Important notes

  • File are opened and closed directly by the Operating System of the target. Opening some files may be dangerous for system safety and integrity. The number of open files may be limited by the target system.
  • Opening a file may be unsuccessful (invalid path or file name, too many open files...) Your application should process such error cases in a safe way.

  • File management may be not available on some targets. Please refer to OEM instructions for further details about available features.

  • Valid paths for storing files depend on the target implementation. Please refer to OEM instructions for further details about available paths.

Remarks

This function enables to log values of a list of variables in a CSV file. On each rising edge of the LOG input, one more line of values is added to the file. There is one column for each variable, as they are defined in the list.

The list of variables is prepared using the workbench or a text editor. Use the VLID function to get the identifier of the list.

On a rising edge of the RST command, the file is emptied.

When a LOG or RST command is requested, the Q output is set to TRUE if successful. In case of error, a report is given in the ERR output. Possible error values are:

1 = Cannot reset file on a RST command
2 = Cannot open file for data storing on a LOG command
3 = Embedded lists are not supported by the runtime
4 = Invalid list ID
5 = Error while writing to file

Combined with real time clock management functions, this block provides a very easy way to generate a periodical log file. The following example shows a list and a program that log values everyday at 14h23:

ST Language

(* MyLOG is a declared instance of LogFileCSV function block *)
MyLOG (LOG, RST, LIST, PATH);
Q := MyLOG.Q;
ERR := MyLog.ERR;

FBD Language

LD Language

IL Language

(* MyLOG is a declared instance of LogFileCSV function block *)
Op1: CAL MyLOG (LOG, RST, LIST, PATH);
     LD  MyLOG.Q
     ST  Q
     LD  MyLog.ERR
     ST  ERR

See also

VLID