plcopen/iec_std.csv
changeset 18 ee18a387e80a
parent 14 cd0133ed377b
child 20 1ac28118c322
equal deleted inserted replaced
17:faa048f4172e 18:ee18a387e80a
     1 Standard_functions_variables_types;name;comment;type;;;;
     1 Standard_functions_variables_types;name;comment;type;;;;;;;;;
     2 ;N;Number of bits to be shifted;UINT;;;;
     2 ;N;Number of bits to be shifted;UINT;;;;;;;;;
     3 ;L;Left position within character string;UINT;;;;
     3 ;L;Left position within character string;UINT;;;;;;;;;
     4 ;P;Position within character string;UINT;;;;
     4 ;P;Position within character string;UINT;;;;;;;;;
     5 ;G;Selection out of 2 inputs (gate);BOOL;;;;
     5 ;G;Selection out of 2 inputs (gate);BOOL;;;;;;;;;
     6 ;K;Selection out of n inputs;ANY_INT;;;;
     6 ;K;Selection out of n inputs;ANY_INT;;;;;;;;;
     7 ;MN;Minimum value for limitation;ANY;;;;
     7 ;MN;Minimum value for limitation;ANY;;;;;;;;;
     8 ;MX;Maximum value for limitation;ANY;;;;
     8 ;MX;Maximum value for limitation;ANY;;;;;;;;;
     9 ;;;;;;;
     9 ;;;;;;;;;;;;
    10 ;;;;;;;
    10 ;;;;;;;;;;;;
    11 ;;;;;;;
    11 ;;;;;;;;;;;;
    12 ;;;;;;;
    12 ;;;;;;;;;;;;
    13 ;;;;;;;
    13 ;;;;;;;;;;;;
    14 ;;;;;;;
    14 ;;;;;;;;;;;;
    15 Standard_functions_type;name;baseinputnumber;inputs;outputs;comment;overloaded;extensible
    15 Standard_functions_type;name;baseinputnumber;inputs;outputs;comment;extensible;lib_typed_decl;python_eval_c_code_format;return_type_rule;;;
    16 Type conversion;*_TO_**;1;(ANY);ANY;Data type conversion;yes;no
    16 Type conversion;*_TO_**;1;(ANY);ANY;Data type conversion;no;;ANY_TO_ANY_FORMAT_GEN(fdecl);defined;;;0=defined
    17 ;TRUNC;1;(ANY_REAL);ANY_INT;Rounding up/down;yes;no
    17 ;TRUNC;1;(ANY_REAL);ANY_INT;Rounding up/down;no;;"(int)%(IN_value)s";&constant_int_type_name_c;;;
    18 ;BCD_TO_**;1;(ANY_BIT);ANY;Conversion from BCD;yes;no
    18 ;BCD_TO_**;1;(ANY_BIT);ANY_INT;Conversion from BCD;no;;"__bcd_to_something(sizeof(%(IN_type)s),&%(IN_value)s)";defined;;;
    19 ;*_TO_BCD;1;(ANY_INT);ANY_BIT;Conversion to BCD;yes;no
    19 ;*_TO_BCD;1;(ANY_INT);ANY_BIT;Conversion to BCD;no;;"__something_to_bcd(sizeof(%(IN_type)s),&%(IN_value)s)";&constant_int_type_name_c;;;
    20 ;DATE_AND_TIME_TO_TIME_OF_DAY;1;(DT);TOD;Conversion to time-of-day;no;no
    20 ;DATE_AND_TIME_TO_TIME_OF_DAY;1;(DT);TOD;Conversion to time-of-day;no;;"__date_and_time_to_time_of_day(&%(IN_value)s)";defined;;;
    21 ;DATE_AND_TIME_TO_DATE;1;(DT);DATE;Conversion to date;no;no
    21 ;DATE_AND_TIME_TO_DATE;1;(DT);DATE;Conversion to date;no;;"__date_and_time_to_time_of_day(&%(IN_value)s)";defined;;;
    22 Numerical;ABS;1;(ANY_NUM);ANY_NUM;Absolute number;yes;no
    22 Numerical;ABS;1;(ANY_NUM);ANY_NUM;Absolute number;no;"__abs_%(return_type)s(%(return_type)s IN){ return IN > 0 ? IN : -IN {sc}}";"__abs_%(IN_type)s(%(IN_value)s)";IN_type_symbol;;;
    23 ;SQRT;1;(ANY_REAL);ANY_REAL;Square root (base 2);yes;no
    23 ;SQRT;1;(ANY_REAL);ANY_REAL;Square root (base 2);no;;"sqrt(%(IN_value)s)";IN_type_symbol;;;
    24 ;LN;1;(ANY_REAL);ANY_REAL;Natural logarithm;yes;no
    24 ;LN;1;(ANY_REAL);ANY_REAL;Natural logarithm;no;;"ln(%(IN_value)s)";IN_type_symbol;;;
    25 ;LOG;1;(ANY_REAL);ANY_REAL;Logarithm to base 10;yes;no
    25 ;LOG;1;(ANY_REAL);ANY_REAL;Logarithm to base 10;no;;"log(%(IN_value)s)";IN_type_symbol;;;
    26 ;EXP;1;(ANY_REAL);ANY_REAL;Exponentiation;yes;no
    26 ;EXP;1;(ANY_REAL);ANY_REAL;Exponentiation;no;;"exp(%(IN_value)s)";IN_type_symbol;;;
    27 ;SIN;1;(ANY_REAL);ANY_REAL;Sine;yes;no
    27 ;SIN;1;(ANY_REAL);ANY_REAL;Sine;no;;"sin(%(IN_value)s)";IN_type_symbol;;;
    28 ;COS;1;(ANY_REAL);ANY_REAL;Cosine;yes;no
    28 ;COS;1;(ANY_REAL);ANY_REAL;Cosine;no;;"cos(%(IN_value)s)";IN_type_symbol;;;
    29 ;TAN;1;(ANY_REAL);ANY_REAL;Tangent;yes;no
    29 ;TAN;1;(ANY_REAL);ANY_REAL;Tangent;no;;"tan(%(IN_value)s)";IN_type_symbol;;;
    30 ;ASIN;1;(ANY_REAL);ANY_REAL;Arc sine;yes;no
    30 ;ASIN;1;(ANY_REAL);ANY_REAL;Arc sine;no;;"asin(%(IN_value)s)";IN_type_symbol;;;
    31 ;ACOS;1;(ANY_REAL);ANY_REAL;Arc cosine;yes;no
    31 ;ACOS;1;(ANY_REAL);ANY_REAL;Arc cosine;no;;"acos(%(IN_value)s)";IN_type_symbol;;;
    32 ;ATAN;1;(ANY_REAL);ANY_REAL;Arc tangent;yes;no
    32 ;ATAN;1;(ANY_REAL);ANY_REAL;Arc tangent;no;;"atan(%(IN_value)s)";IN_type_symbol;;;
    33 Arithmetic;ADD;1;(ANY_NUM, ANY_NUM);ANY_NUM;Addition;yes;yes
    33 Arithmetic;ADD;1;(ANY_NUM, ANY_NUM);ANY_NUM;Addition;yes;;("(","+",")");copy_input;;;
    34 ;ADD;1;(TIME, TIME);TIME;Time addition;yes;no
    34 ;ADD;1;(TIME, TIME);TIME;Time addition;no;;"__time_add(&%(IN1_value)s, &%(IN2_value)s)";defined;;;
    35 ;ADD;1;(TOD, TIME);TOD;Time-of-day addition;yes;no
    35 ;ADD;1;(TOD, TIME);TOD;Time-of-day addition;no;;"__time_add(&%(IN1_value)s, &%(IN2_value)s)";defined;;;
    36 ;ADD;1;(DT, TIME);DT;Date addition;yes;no
    36 ;ADD;1;(DT, TIME);DT;Date addition;no;;"__time_add(&%(IN1_value)s, &%(IN2_value)s)";defined;;;
    37 ;MUL;1;(ANY_NUM, ANY_NUM);ANY_NUM;Multiplication;yes;yes
    37 ;MUL;1;(ANY_NUM, ANY_NUM);ANY_NUM;Multiplication;yes;;("(","*",")");copy_input;;;
    38 ;MUL;1;(TIME, ANY_NUM);TIME;Time multiplication;yes;no
    38 ;MUL;1;(TIME, ANY_NUM);TIME;Time multiplication;no;;"__time_mul(&%(IN1_value)s, &%(IN2_value)s)";defined;;;
    39 ;SUB;1;(ANY_NUM, ANY_NUM);ANY_NUM;Subtraction;yes;no
    39 ;SUB;1;(ANY_NUM, ANY_NUM);ANY_NUM;Subtraction;no;;("(","-",")");copy_input;;;
    40 ;SUB;1;(TIME, TIME);TIME;Time subtraction;yes;no
    40 ;SUB;1;(TIME, TIME);TIME;Time subtraction;no;;"__time_sub(&%(IN1_value)s, &%(IN2_value)s)";defined;;;
    41 ;SUB;1;(DATE, DATE);TIME;Date subtraction;yes;no
    41 ;SUB;1;(DATE, DATE);TIME;Date subtraction;no;;"__time_sub(&%(IN1_value)s, &%(IN2_value)s)";defined;;;
    42 ;SUB;1;(TOD, TIME);TOD;Time-of-day subtraction;yes;no
    42 ;SUB;1;(TOD, TIME);TOD;Time-of-day subtraction;no;;"__time_sub(&%(IN1_value)s, &%(IN2_value)s)";defined;;;
    43 ;SUB;1;(TOD, TOD);TIME;Time-of-day subtraction;yes;no
    43 ;SUB;1;(TOD, TOD);TIME;Time-of-day subtraction;no;;"__time_sub(&%(IN1_value)s, &%(IN2_value)s)";defined;;;
    44 ;SUB;1;(DT, TIME);DT;Date and time subtraction;yes;no
    44 ;SUB;1;(DT, TIME);DT;Date and time subtraction;no;;"__time_sub(&%(IN1_value)s, &%(IN2_value)s)";defined;;;
    45 ;SUB;1;(DT, DT);TIME;Date and time subtraction;yes;no
    45 ;SUB;1;(DT, DT);TIME;Date and time subtraction;no;;"__time_sub(&%(IN1_value)s, &%(IN2_value)s)";defined;;;
    46 ;DIV;1;(ANY_NUM, ANY_NUM);ANY_NUM;Division;yes;no
    46 ;DIV;1;(ANY_NUM, ANY_NUM);ANY_NUM;Division;no;;("(","/",")");copy_input;;;
    47 ;DIV;1;(TIME, ANY_NUM);TIME;Time division;yes;no
    47 ;DIV;1;(TIME, ANY_NUM);TIME;Time division;no;;"__time_div(&%(IN1_value)s, &%(IN2_value)s)";defined;;;
    48 ;MOD;1;(ANY_NUM, ANY_NUM);ANY_NUM;Remainder (modulo);yes;no
    48 ;MOD;1;(ANY_NUM, ANY_NUM);ANY_NUM;Remainder (modulo);no;;("(","%",")");copy_input;;;
    49 ;EXPT;1;(ANY_NUM, ANY_NUM);ANY_NUM;Exponent;yes;no
    49 ;EXPT;1;(ANY_NUM, ANY_NUM);ANY_NUM;Exponent;no;;"pow(&%(IN1_value)s, &%(IN2_value)s)";copy_input;;;
    50 ;MOVE;1;(ANY_NUM, ANY_NUM);ANY_NUM;Assignment;yes;no
    50 ;MOVE;1;(ANY_NUM);ANY_NUM;Assignment;no;;"%(IN_value)s";copy_input;;;
    51 Bit-shift;SHL;1;(ANY_BIT, N);ANY_BIT;Shift left;yes;no
    51 Bit-shift;SHL;1;(ANY_BIT, N);ANY_BIT;Shift left;no;;"%(IN_value)s<<%(N_value)s";IN_type_symbol;;;
    52 ;SHR;1;(ANY_BIT, N);ANY_BIT;Shift right;yes;no
    52 ;SHR;1;(ANY_BIT, N);ANY_BIT;Shift right;no;;"%(IN_value)s>>%(N_value)s";IN_type_symbol;;;
    53 ;ROR;1;(ANY_BIT, N);ANY_BIT;Rotate right;yes;no
    53 ;ROR;1;(ANY_BIT, N);ANY_BIT;Rotate right;no;"__max_%(return_type)s(%(return_type)s IN1, %(return_type)s IN2){ return IN1 > IN2 ? IN1 : IN2 {sc}}";"__ror(sizeof(%(IN_type)s), &%(IN_value)s, %(N_value)s)";IN_type_symbol;;;
    54 ;ROL;1;(ANY_BIT, N);ANY_BIT;Rotate left;yes;no
    54 ;ROL;1;(ANY_BIT, N);ANY_BIT;Rotate left;no;"__max_%(return_type)s(%(return_type)s IN1, %(return_type)s IN2){ return IN1 > IN2 ? IN1 : IN2 {sc}}";"__rol(sizeof(%(IN_type)s), &%(IN_value)s, %(N_value)s)";IN_type_symbol;;;
    55 Bitwise;AND;1;(ANY_BIT, ANY_BIT);ANY_BIT;Bitwise AND;yes;yes
    55 Bitwise;AND;1;(ANY_BIT, ANY_BIT);ANY_BIT;Bitwise AND;yes;;("(","&",")");copy_input;;;
    56 ;OR;1;(ANY_BIT, ANY_BIT);ANY_BIT;Bitwise OR;yes;yes
    56 ;OR;1;(ANY_BIT, ANY_BIT);ANY_BIT;Bitwise OR;yes;;("(","|",")");copy_input;;;
    57 ;XOR;1;(ANY_BIT, ANY_BIT);ANY_BIT;Bitwise EXOR;yes;yes
    57 ;XOR;1;(ANY_BIT, ANY_BIT);ANY_BIT;Bitwise EXOR;yes;;("(","^",")");copy_input;;;
    58 ;NOT;1;(ANY_BIT, ANY_BIT);ANY_BIT;Bitwise inverting;yes;no
    58 ;NOT;1;(ANY_BIT);ANY_BIT;Bitwise inverting;no;;"~%(IN_value)s";IN_type_symbol;;;
    59 Selection;SEL;0;(G, ANY, ANY);ANY;Binary selection (1 of 2);yes;no
    59 Selection;SEL;0;(G, ANY, ANY);ANY;Binary selection (1 of 2);no;;"%(G_value)s ? %(IN1_value)s :  %(IN0_value)s";copy_input;;;
    60 ;SEL;0;(G, ENUM, ENUM);ENUM;Binary selection (1 of 2);no;no
    60 ;MAX;1;(ANY, ANY);ANY;Maximum;yes;"__max_%(return_type)s(%(return_type)s IN1, %(return_type)s IN2){ return IN1 > IN2 ? IN1 : IN2 {sc}}";("__max_%(return_type)s(%(param_count)s,",",",")");copy_input;;;
    61 ;MAX;1;(ANY, ANY);ANY;Maximum;yes;yes
    61 ;MIN;1;(ANY, ANY);ANY;Minimum;yes;"__min_%(return_type)s(%(return_type)s IN1, %(return_type)s IN2){ return IN1 < IN2 ? IN1 : IN2 {sc}}";("__min_%(return_type)s(%(param_count)s,",",",")");copy_input;;;
    62 ;MIN;1;(ANY, ANY);ANY;Minimum;yes;yes
    62 ;LIMIT;1;(MN, ANY, MX);ANY;Limitation;no;;"__limit_%(IN_type)s(%(MN_value)s, %(IN_value)s, %(MX_value)s)";IN_type_symbol;;;
    63 ;LIMIT;1;(MN, ANY, MX);ANY;Limitation;yes;no
    63 ;MUX;0;(K, ANY, ANY);ANY;Multiplexer (select 1 of N);yes;;("__mux_%(return_type)s(%(param_count)s,",",",")");copy_input;;;
    64 ;MUX;0;(K, ANY, ANY);ANY;Multiplexer (select 1 of N);yes;yes
    64 Comparison;GT;1;(ANY, ANY);BOOL;Greater than;yes;"__gt_%(return_type)s(%(return_type)s IN1, %(return_type)s IN2){ return IN1  0 ? IN : -IN {sc}}";("__gt_%(return_type)s(%(param_count)s,",",",")");defined;;;
    65 ;MUX;0;(K, ENUM, ENUM);ENUM;Multiplexer (select 1 of N);no;no
    65 ;GE;1;(ANY, ANY);BOOL;Greater than or equal to;yes;;("__ge_%(return_type)s(%(param_count)s,",",",")");defined;;;
    66 Comparison;GT;1;(ANY, ANY);BOOL;Greater than;yes;yes
    66 ;EQ;1;(ANY, ANY);BOOL;Equal to;yes;;("__eq_%(return_type)s(%(param_count)s,",",",")");defined;;;
    67 ;GE;1;(ANY, ANY);BOOL;Greater than or equal to;yes;yes
    67 ;LT;1;(ANY, ANY);BOOL;Less than;yes;;("__lt_%(return_type)s(%(param_count)s,",",",")");defined;;;
    68 ;EQ;1;(ANY, ANY);BOOL;Equal to;yes;yes
    68 ;LE;1;(ANY, ANY);BOOL;Less than or equal to;yes;;("__le_%(return_type)s(%(param_count)s,",",",")");defined;;;
    69 ;EQ;1;(ENUM, ENUM);BOOL;Equal to;no;no
    69 ;NE;1;(ANY, ANY);BOOL;Not equal to;yes;;("__ne_%(return_type)s(%(param_count)s,",",",")");defined;;;
    70 ;LT;1;(ANY, ANY);BOOL;Less than;yes;yes
    70 Character string;LEN;1;(STRING);INT;Length of string;no;;"__len(&%(IN_value)s)";defined;;;
    71 ;LE;1;(ANY, ANY);BOOL;Less than or equal to;yes;yes
    71 ;LEFT;1;(STRING, L);STRING;string left of;no;;"__left(&%(IN_value)s, %(L_value)s)";defined;;;
    72 ;NE;1;(ANY, ANY);BOOL;Not equal to;yes;no
    72 ;RIGHT;1;(STRING, L);STRING;string right of;no;;"__right(&%(IN_value)s, %(L_value)s)";defined;;;
    73 ;NE;1;(ENUM, ENUM);BOOL;Not equal to;no;no
    73 ;MID;1;(STRING, L, P);STRING;string from the middle;no;;"__mid(&%(IN_value)s, %(L_value)s, %(P_value)s)";defined;;;
    74 Character string;LEN;1;(STRING);INT;Length of string;no;no
    74 ;CONCAT;1;(STRING, STRING);STRING;Concatenation;yes;;("__concat(%(param_count)s,",",&",")");defined;;;
    75 ;LEFT;1;(STRING, L);STRING;string left of;yes;no
    75 ;CONCAT;1;(DATE, TOD);DT;Time concatenation;no;;"__time_add(&%(IN1_value)s, &%(IN2_value)s)";defined;;;
    76 ;RIGHT;1;(STRING, L);STRING;string right of;yes;no
    76 ;INSERT;1;(STRING, STRING, P);STRING;Insertion (into);no;;"__insert(&%(IN1_value)s, &%(IN2_value)s, %(P_value)s)";defined;;;
    77 ;MID;1;(STRING, L, P);STRING;string from the middle;yes;no
    77 ;DELETE;1;(STRING, L, P);STRING;Deletion (within);no;;"__delete(&%(IN_value)s, %(L_value)s, %(P_value)s)";defined;;;
    78 ;CONCAT;1;(STRING, STRING);STRING;Concatenation;no;yes
    78 ;REPLACE;1;(STRING, STRING, L, P);STRING;Replacement (within);no;;"__replace(&%(IN1_value)s, &%(IN2_value)s, %(L_value)s, %(P_value)s)";defined;;;
    79 ;CONCAT;1;(DATE, TOD);DT;Time concatenation;no;no
    79 ;FIND;1;(STRING, STRING);INT;Find position;no;;"__find(&%(IN1_value)s, &%(IN2_value)s)";defined;;;
    80 ;INSERT;1;(STRING, STRING, P);STRING;Insertion (into);yes;no
    80 ;;;;;;;;;defined;;;
    81 ;DELETE;1;(STRING, L, P);STRING;Deletion (within);yes;no
       
    82 ;REPLACE;1;(STRING, STRING, L, P);STRING;Replacement (within);yes;no
       
    83 ;FIND;1;(STRING, STRING);INT;Find position;yes;no
       
    84 ;;;;;;;