plcopen/iec_std.csv
author Andrey Skvortsov <andrej.skvortzov@gmail.com>
Thu, 28 Apr 2016 13:05:57 +0300
changeset 1507 d7f474d10210
parent 1390 0f4d32a033e0
child 2496 39049d615c0d
permissions -rw-r--r--
fix issue with sometimes wrong return code of ProcessLogger


As a result of wrong return code Beremiz gives folowing traceback:
Traceback (most recent call last):
File "./Beremiz.py", line 850, in OnMenu
getattr(self.CTR, method)()
File "/home/developer/WorkData/PLC/beremiz/beremiz/ProjectController.py", line 925, in _Build
IECGenRes = self._Generate_SoftPLC()
File "/home/developer/WorkData/PLC/beremiz/beremiz/ProjectController.py", line 568, in _Generate_SoftPLC
return self._Compile_ST_to_SoftPLC()
File "/home/developer/WorkData/PLC/beremiz/beremiz/ProjectController.py", line 661, in _Compile_ST_to_SoftPLC
C_files.remove("POUS.c")
ValueError: list.remove(x): x not in list

The problem is that both threads (for reading stdout and stderr) call self.Proc.poll(),
that updates internal returncode field. This call is done without any locking and the first thread gets correct result,
but other gets 0 as retval. If 0 gets thread, that afterwards calls callback finish, then wrong return code is returned
to the parent. Now only the thread with a callback polls for the return code, other thread just checked local value.

Additionally function spin() waits now until all threads finish reading their pipes, so the results are always correct.
1390
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
     1
Standard_functions_variables_types;name;type;comment;;;;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
     2
;N;ANY_INT;Number of bits to be shifted;;;;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
     3
;L;ANY_INT;Left position within character string;;;;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
     4
;P;ANY_INT;Position within character string;;;;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
     5
;G;BOOL;Selection out of 2 inputs (gate);;;;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
     6
;K;ANY_INT;Selection out of n inputs;;;;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
     7
;MN;ANY;Minimum value for limitation;;;;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
     8
;MX;ANY;Maximum value for limitation;;;;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
     9
;;;;;;;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    10
;;;;;;;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    11
;;;;;;;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    12
;;;;;;;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    13
;;;;;;;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    14
;;;;;;;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    15
Standard_functions_type;name;baseinputnumber;inputs;outputs;comment;extensible;filter
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    16
_("Type conversion");*_TO_**;1;(ANY);ANY;_("Data type conversion");no;ANY_TO_ANY
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    17
;TRUNC;1;(ANY_REAL);ANY_INT;_("Rounding up/down");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    18
;BCD_TO_**;1;(ANY_BIT);ANY_INT;_("Conversion from BCD");no;BCD_TO_ANY
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    19
;*_TO_BCD;1;(ANY_INT);ANY_BIT;_("Conversion to BCD");no;ANY_TO_BCD
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    20
;DATE_AND_TIME_TO_TIME_OF_DAY;1;(DT);TOD;_("Conversion to time-of-day");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    21
;DATE_AND_TIME_TO_DATE;1;(DT);DATE;_("Conversion to date");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    22
_("Numerical");ABS;1;(ANY_NUM);ANY_NUM;_("Absolute number");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    23
;SQRT;1;(ANY_REAL);ANY_REAL;_("Square root (base 2)");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    24
;LN;1;(ANY_REAL);ANY_REAL;_("Natural logarithm");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    25
;LOG;1;(ANY_REAL);ANY_REAL;_("Logarithm to base 10");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    26
;EXP;1;(ANY_REAL);ANY_REAL;_("Exponentiation");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    27
;SIN;1;(ANY_REAL);ANY_REAL;_("Sine");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    28
;COS;1;(ANY_REAL);ANY_REAL;_("Cosine");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    29
;TAN;1;(ANY_REAL);ANY_REAL;_("Tangent");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    30
;ASIN;1;(ANY_REAL);ANY_REAL;_("Arc sine");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    31
;ACOS;1;(ANY_REAL);ANY_REAL;_("Arc cosine");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    32
;ATAN;1;(ANY_REAL);ANY_REAL;_("Arc tangent");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    33
_("Arithmetic");ADD;1;(ANY_NUM, ANY_NUM);ANY_NUM;_("Addition");yes;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    34
;MUL;1;(ANY_NUM, ANY_NUM);ANY_NUM;_("Multiplication");yes;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    35
;SUB;1;(ANY_NUM, ANY_NUM);ANY_NUM;_("Subtraction");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    36
;DIV;1;(ANY_NUM, ANY_NUM);ANY_NUM;_("Division");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    37
;MOD;1;(ANY_INT, ANY_INT);ANY_INT;_("Remainder (modulo)");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    38
;EXPT;1;(ANY_REAL, ANY_NUM);ANY_REAL;_("Exponent");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    39
;MOVE;1;(ANY);ANY;_("Assignment");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    40
_("Time");ADD;1;(TIME, TIME);TIME;_("Time addition");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    41
;ADD_TIME;1;(TIME, TIME);TIME;_("Time addition");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    42
;ADD;1;(TOD, TIME);TOD;_("Time-of-day addition")+" "+_("DEPRECATED");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    43
;ADD_TOD_TIME;1;(TOD, TIME);TOD;_("Time-of-day addition");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    44
;ADD;1;(DT, TIME);DT;_("Date addition")+" "+_("DEPRECATED");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    45
;ADD_DT_TIME;1;(DT, TIME);DT;_("Date addition");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    46
;MUL;1;(TIME, ANY_NUM);TIME;_("Time multiplication")+" "+_("DEPRECATED");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    47
;MULTIME;1;(TIME, ANY_NUM);TIME;_("Time multiplication");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    48
;SUB_TIME;1;(TIME, TIME);TIME;_("Time subtraction");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    49
;SUB;1;(TIME, TIME);TIME;_("Time subtraction");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    50
;SUB;1;(DATE, DATE);TIME;_("Date subtraction")+" "+_("DEPRECATED");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    51
;SUB_DATE_DATE;1;(DATE, DATE);TIME;_("Date subtraction");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    52
;SUB;1;(TOD, TIME);TOD;_("Time-of-day subtraction")+" "+_("DEPRECATED");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    53
;SUB_TOD_TIME;1;(TOD, TIME);TOD;_("Time-of-day subtraction");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    54
;SUB;1;(TOD, TOD);TIME;_("Time-of-day subtraction")+" "+_("DEPRECATED");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    55
;SUB_TOD_TOD;1;(TOD, TOD);TIME;_("Time-of-day subtraction");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    56
;SUB;1;(DT, TIME);DT;_("Date and time subtraction")+" "+_("DEPRECATED");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    57
;SUB_DT_TIME;1;(DT, TIME);DT;_("Date and time subtraction");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    58
;SUB;1;(DT, DT);TIME;_("Date and time subtraction")+" "+_("DEPRECATED");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    59
;SUB_DT_TIME;1;(DT, DT);TIME;_("Date and time subtraction");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    60
;DIV;1;(TIME, ANY_NUM);TIME;_("Time division")+" "+_("DEPRECATED");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    61
;DIVTIME;1;(TIME, ANY_NUM);TIME;_("Time division");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    62
_("Bit-shift");SHL;1;(ANY_BIT, N);ANY_BIT;_("Shift left");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    63
;SHR;1;(ANY_BIT, N);ANY_BIT;_("Shift right");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    64
;ROR;1;(ANY_NBIT, N);ANY_NBIT;_("Rotate right");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    65
;ROL;1;(ANY_NBIT, N);ANY_NBIT;_("Rotate left");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    66
_("Bitwise");AND;1;(ANY_BIT, ANY_BIT);ANY_BIT;_("Bitwise AND");yes;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    67
;OR;1;(ANY_BIT, ANY_BIT);ANY_BIT;_("Bitwise OR");yes;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    68
;XOR;1;(ANY_BIT, ANY_BIT);ANY_BIT;_("Bitwise XOR");yes;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    69
;NOT;1;(ANY_BIT);ANY_BIT;_("Bitwise inverting");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    70
_("Selection");SEL;0;(G, ANY, ANY);ANY;_("Binary selection (1 of 2)");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    71
;MAX;1;(ANY, ANY);ANY;_("Maximum");yes;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    72
;MIN;1;(ANY, ANY);ANY;_("Minimum");yes;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    73
;LIMIT;1;(MN, ANY, MX);ANY;_("Limitation");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    74
;MUX;0;(K, ANY, ANY);ANY;_("Multiplexer (select 1 of N)");yes;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    75
_("Comparison");GT;1;(ANY, ANY);BOOL;_("Greater than");yes;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    76
;GE;1;(ANY, ANY);BOOL;_("Greater than or equal to");yes;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    77
;EQ;1;(ANY, ANY);BOOL;_("Equal to");yes;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    78
;LT;1;(ANY, ANY);BOOL;_("Less than");yes;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    79
;LE;1;(ANY, ANY);BOOL;_("Less than or equal to");yes;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    80
;NE;1;(ANY, ANY);BOOL;_("Not equal to");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    81
_("Character string");LEN;1;(STRING);INT;_("Length of string");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    82
;LEFT;1;(STRING, L);STRING;_("string left of");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    83
;RIGHT;1;(STRING, L);STRING;_("string right of");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    84
;MID;1;(STRING, L, P);STRING;_("string from the middle");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    85
;CONCAT;1;(STRING, STRING);STRING;_("Concatenation");yes;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    86
;CONCAT_DAT_TOD;1;(DATE, TOD);DT;_("Time concatenation");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    87
;INSERT;1;(STRING, STRING, P);STRING;_("Insertion (into)");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    88
;DELETE;1;(STRING, L, P);STRING;_("Deletion (within)");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    89
;REPLACE;1;(STRING, STRING, L, P);STRING;_("Replacement (within)");no;
0f4d32a033e0 Tidy PLCopen definitions
Edouard Tisserant
parents: 814
diff changeset
    90
;FIND;1;(STRING, STRING);INT;_("Find position");no;