Supported platforms: CODESYS 3.5, CODESYS 3.5 SAFETY
The function reads the given parameter CSV file to a struct array, which is defined by the application.
The pointer to the CSVData structure array is given as an input to the function. The first line describes the column headers.
CSV file can be generated with MultiTool Creator. CSV read functionality is included in MultiTool Creator code template. |
From library version 4.1.2.0, if start bit is defined to a parameter in CSV file, the Parameters_Edit FB handles the parameter as BOOL. The OD data is however, is as defined in CSV file (i.e. BYTE, WORD or DWORD).
|
Input variable name |
Data type |
Description |
i_Enable |
BOOL |
CSV file is read when input is TRUE |
i_File |
STRING |
Absolute file path and name |
i_ParameterMaxCount |
INT |
Maximum number of parameters |
i_pCSV |
POINTER TO CSVData |
Pointer to struct array |
i_itfExtraData |
IExtraColumnsData |
Interface of application specific column handler function block. If not in use set input value to 0. |
Return value |
Data type |
Description |
Parameters_ReadCSV |
INT |
Amount of parameters read from file. Negative value indicates error: -1 = File open failed -2 = Null pointer i_pCSV = 0 |
Output variable name |
Data type |
Description |
o_CSVErrorCode |
CSVError |
CSV error code |
o_CSVErrorLine |
INT |
Number of CSV line containing error. |
This example is for 6000 series units.
CSV file can be generated with MultiTool Creator. CSV read functionality is included in MultiTool Creator code template. |
The file location in the unit for 6505 and 6510 is /opt/Project/PlcLogic. In the units 6107, 6200, 6807 and 6112 the location is /opt/user/userapp. |
Constant Definitions: |
|
///Number of parameters in network G_NUMBER_OF_PARAMETERS_NETWORK1: INT := 100; |
Definitions: |
|
///Parameter CSV configuration parameters csvData: ARRAY[1..G_NUMBER_OF_PARAMETERS_NETWORK1] OF EPEC_PAR.CSVData; ///CSV file path and name csvFile: STRING(79) := '/opt/user/userapp/Parameters_NETWORK1.csv'; ///CSV error code errorCode: EPEC_PAR.CSVError; ///Number of CSV line containing error errorInLine: INT; // Parameter count read from csv parCount: INT; |
Init: |
|
parCount := EPEC_PAR.Parameters_ReadCSV( i_Enable := TRUE, i_File := csvFile, i_ParameterMaxCount := G_NUMBER_OF_PARAMETERS_NETWORK1, i_pCSV := ADR(csvData), i_itfExtraData := 0, o_CSVErrorCode => errorCode, o_CSVErrorLine => errorInLine ); |
Constant Definitions: |
|
///Number of parameters in network G_NUMBER_OF_PARAMETERS_NETWORK1: INT := 100; |
Definitions: |
|
///Parameter CSV configuration parameters csvData: ARRAY[1..G_NUMBER_OF_PARAMETERS_NETWORK1] OF EPEC_PAR.CSVData; ///CSV file path and name csvFile: STRING(79) := '/opt/user/userapp/Parameters_NETWORK1.csv'; ///CSV error code errorCode: EPEC_PAR.CSVError; ///Number of CSV line containing error errorInLine: INT; // Parameter count read from csv parCount: INT;
Extras:ARRAY [1..G_NUMBER_OF_PARAMETERS_NETWORK1] OF Parameters_Extras; (* Application specific data *) ExtraColumns: ExtraColumnsData; (*Instance to extra data handler*) |
Data types: |
|
TYPE Parameters_Extras : STRUCT column1 : BYTE; (* Application specific extra data*) column2 : INT; (* Application specific extra data*) END_STRUCT END_TYPE |
Function block for interface IExtraColumnsData
Definitions: |
|
FUNCTION_BLOCK ExtraColumnsData IMPLEMENTS IExtraColumnsData VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR END_VAR
|
|
Code: |
|
|
Implementing CurrentColumnData method of function block
Definitions: |
|
METHOD CurrentColumnData : STRING VAR_INPUT i_HeaderData:STRING; i_ParameterData:STRING; i_CSVRow:INT; END_VAR
|
|
Code: |
|
IF i_HeaderData = '[Column1Name]' THEN Extras[i_CSVRow].column1:= STRING_TO_BYTE(i_ParameterData); ELSIF i_HeaderData = '[Column2Name]' THEN Extras[i_CSVRow].column2:= STRING_TO_INT(i_ParameterData); END_IF
|
Using Parameters_ReadCSV with extra data
Init: |
|
parCount := EPEC_PAR.Parameters_ReadCSV( i_Enable := TRUE, i_File := csvFile, i_ParameterMaxCount := G_NUMBER_OF_PARAMETERS_NETWORK1, i_pCSV := ADR(csvData), i_itfExtraData := ExtraColumns, o_CSVErrorCode => errorCode, o_CSVErrorLine => errorInLine ); |
Parameters_Edit (FB)
Source file topic100518.htm
Last updated 19-Dec-2024