Appendix A:  - IEC Operators and additional norm extending functions 
CoDeSys V2.3 
10-11 
10.5 Comparison Operators... 
GT 
Greater than 
A Boolean operator which returns the value TRUE when the value of the first operand is greater than 
that of the second. The operands can be BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, 
DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME and STRING. 
Example in IL: 
LD 20 
GT 30 
ST Var1 (* Result is FALSE *) 
Example in ST: 
VAR1 := 20 > 30 > 40 > 50 > 60 > 70; 
Example in FBD: 
LT 
Less than 
A Boolean operator that returns the value TRUE when the value of the first operand is less than that 
of the second. The operands can be BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, 
UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME and STRING. 
Example in IL: 
LD 20 
LT 30 
ST Var1 (* Result is TRUE *) 
Example in ST: 
VAR1 := 20 < 30; 
Example in FBD: 
LE 
Less than or equal to 
A Boolean operator that returns the value TRUE when the value of the first operand is less than or 
equal to that of the second. The operands can be BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, 
UINT, DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME and STRING. 
Example in IL: 
LD 20 
LE 30 
ST Var1 (* Result is TRUE *) 
Converting pdfs to html - SDK software API:C# PDF Convert to HTML SDK: Convert PDF to html files in C#.net, ASP.NET MVC, WinForms, WPF application
How to Convert PDF to HTML Webpage with C# PDF Conversion SDK
www.rasteredge.com
Converting pdfs to html - SDK software API:VB.NET PDF Convert to HTML SDK: Convert PDF to html files in vb.net, ASP.NET MVC, WinForms, WPF application
PDF to HTML Webpage Converter SDK for VB.NET PDF to HTML Conversion
www.rasteredge.com
Appendix A:  - IEC Operators and additional norm extending functions 
10-12 
CoDeSys V2.3 
Example in ST: 
VAR1 := 20 <= 30; 
Example in FBD: 
GE 
Greater than or equal to 
A Boolean operator that returns the value TRUE when the value of the first operand is greater than or 
equal to that of the second. The operands can be BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, 
UINT, DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME and STRING. 
Example in IL: 
LD 60 
GE 40 
ST Var1 (* Result is TRUE *) 
Example in ST: 
VAR1 := 60 >= 40; 
Example in FBD: 
EQ 
Equal to 
A Boolean operator that returns the value TRUE when the operands are equal. The operands can be 
BOOL,  BYTE,  WORD,  DWORD,  SINT,  USINT,  INT,  UINT,  DINT,  UDINT,  REAL,  LREAL,  TIME, 
DATE, TIME_OF_DAY, DATE_AND_TIME and STRING. 
Example in IL: 
LD 40 
EQ 40 
ST Var1 (* Result is TRUE *) 
Example in ST: 
VAR1 := 40 = 40; 
Example in FBD: 
NE 
Not equal to 
A Boolean operator that returns that value TRUE when the operands are not equal. The operands can 
be BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, 
DATE, TIME_OF_DAY, DATE_AND_TIME and STRING. 
SDK software API:OCR Images in Web Image Viewer | Online Tutorials
scanned documents & creating searchable PDFs in RasterEdge Online Convert PDF to Html. SUPPORT: for capturing, viewing, processing, converting, compressing and
www.rasteredge.com
SDK software API:VB.NET Image: VB.NET Codes on How to Scan RM4SCC barcode in .NET
learn how to decode an RM4SCC 1D barcode from images, PDFs and Word tiff files and components for capturing, viewing, processing, converting, compressing and
www.rasteredge.com
Appendix A:  - IEC Operators and additional norm extending functions 
CoDeSys V2.3 
10-13 
Example in IL: 
LD 40 
NE 40 
ST Var1 (* Result is FALSE *) 
Example in ST: 
VAR1 := 40 <> 40; 
Example in FBD: 
10.6 Address Operators... 
Attention
: After an Online Change there might be changes concerning the data on certain 
addresses. Please regard this in case of using pointers on addresses. 
ADR 
Address Function not prescribed by the standard IEC61131-3. 
ADR returns the address of its argument in a DWORD. This address can be sent to manufacturing 
functions to be treated as a pointer or it can be assigned to a pointer within the project. 
dwVar:=ADR(bVAR); 
Example in IL: 
LD bVar 
ADR 
ST dwVar 
man_fun1 
ADRINST 
Adress function, not prescribed by the standard IEC61131-3. 
ADRINST within a function block instance returns the address of the instance in a DWORD. This 
address then can be sent to functions and be treated there as a pointer or it can be assigned to a 
pointer within the project. 
Examples in ST
(within a function block instance): 
dvar:=ADRINST();   (* Write address of the instance on variable dvar *) 
fun(a:=ADRINST()); (* Give instance address to input a of function fun *) 
Examples in IL: 
ADRINST 
ST dvar 
ADRINST        
fun 
BITADR 
Address function, not prescribed by the standard IEC61131-3. 
BITADR returns the bit offset within the segment in a DWORD. Regard that the offset value depends 
on whether the option byte addressing in the target settings is activated or not. 
VAR 
var1 AT %IX2.3:BOOL; 
bitoffset: DWORD; 
END_VAR 
SDK software API:.NET PDF Generator | Generate & Manipulate PDF files
Add, remove, swap and delete any pages in PDFs; Add metadata of imaging controls and components for capturing, viewing, processing, converting, compressing and
www.rasteredge.com
SDK software API:OCR Images in .NET Winforms | Online Tutorials
SDK to recognize text from scanned documents & creating searchable PDFs. files and components for capturing, viewing, processing, converting, compressing and
www.rasteredge.com
Appendix A:  - IEC Operators and additional norm extending functions 
10-14 
CoDeSys V2.3 
Example in ST: 
bitoffset:=BITADR(var1); (* Result if byte addressing=TRUE: 19, if byte 
addressing=FALSE: 35 *) 
Example in IL: 
LD Var1 
BITADR 
ST Var2 
Content Operator 
A pointer can be dereferenced by adding the content operator "^" after the pointer identifier. 
Example in ST: 
pt:POINTER TO INT; 
var_int1:INT; 
var_int2:INT; 
pt := ADR(var_int1); 
var_int2:=pt^; 
10.7 Calling Operators... 
CAL 
Calling a function block or a program 
Use CAL in IL to call up a function block instance. The variables that will serve as the input variables 
are placed in parentheses right after the name of the function block instance. 
Example:  
Calling up the instance 
Inst
from a function block where input variables 
Par1
and 
Par2
are 0 and 
TRUE respectively. 
CAL INST(PAR1 := 0, PAR2 := TRUE) 
10.8 Type Conversions... 
Its is forbidden to implicitly convert from a "larger" type to a "smaller" type (for example from INT to 
BYTE or from DINT to WORD). Special type conversions are required if one wants to do this. One can 
basically convert from any elementary type to any other elementary type. 
Syntax: 
<elem.Typ1>_TO_<elem.Typ2> 
Please regard that at ...TO_STRING conversions the string is generated left-justified. If it is defined to 
short, it will be cut from the right side.  
BOOL_TO Conversions 
Conversion from type BOOL to any other type: 
For number types the result is 1, when the operand is TRUE, and 0, when the operand is FALSE.  
For the STRING type the result is ‚TRUE' or ‚FALSE'. 
Examples in IL: 
LD TRUE 
BOOL_TO_INT 
ST i 
(*Result is 1 *) 
SDK software API:Online Merge PDF files. Best free online merge PDF tool.
delete single pages. Also you can add more PDFs to combine them and merge them into one single document. Easy converting! We try to
www.rasteredge.com
Appendix A:  - IEC Operators and additional norm extending functions 
CoDeSys V2.3 
10-15 
LD TRUE 
BOOL_TO_STRING 
ST str 
(*Result is 'TRUE' *) 
LD TRUE 
BOOL_TO_TIME 
ST t 
(*Result is T#1ms *) 
LD TRUE 
BOOL_TO_TOD 
ST 
(*Result is TOD#00:00:00.001 *) 
LD FALSE 
BOOL_TO_DATE 
ST dat 
(*Result is D#1970-01-01 *) 
LD TRUE 
BOOL_TO_DT 
ST dandt 
(*Result is DT#1970-01-01-00:00:01 *) 
Examples in ST: 
i:=BOOL_TO_INT(TRUE); 
(* Result is 1 *) 
str:=BOOL_TO_STRING(TRUE); 
(* Result is "TRUE" *) 
t:=BOOL_TO_TIME(TRUE); 
(* Result is T#1ms *) 
tof:=BOOL_TO_TOD(TRUE); 
(* Result is TOD#00:00:00.001 *) 
dat:=BOOL_TO_DATE(FALSE); 
(* Result is D#1970 *) 
dandt:=BOOL_TO_DT(TRUE); 
(* Result is  
DT#1970-01-01-00:00:01 *) 
Examples in FBD: 
(*Result is 1 *) 
(*Result is 'TRUE' *) 
(*Result is T#1ms *) 
(*Result is TOD#00:00:00.001 *) 
(*Result is D#1970-01-01 *) 
(*Result is  
DT#1970-01-01-00:00:01 *) 
TO_BOOL Conversions 
Conversion from another variable type to BOOL: 
The result is TRUE when the operand is not equal to 0. The result is FALSE when the operand is 
equal to 0.  
Appendix A:  - IEC Operators and additional norm extending functions 
10-16 
CoDeSys V2.3 
The result is true for STRING type variables when the operand is "TRUE", otherwise the result is 
FALSE. 
Examples in IL: 
LD 213 
BYTE_TO_BOOL 
ST b 
(*Result is TRUE *) 
LD 0 
INT_TO_BOOL 
ST b 
(*Result is FALSE *) 
LD T#5ms 
TIME_TO_BOOL 
ST b 
(*Result is TRUE *) 
LD 'TRUE' 
STRING_TO_BOOL  
ST b 
(*Result is TRUE *) 
Examples in FBD: 
(*Result is TRUE *) 
(*Result is FALSE *) 
(*Result is TRUE *) 
(*Result is TRUE *) 
Examples in St: 
b := BYTE_TO_BOOL(2#11010101); 
(* Result is TRUE *) 
b := INT_TO_BOOL(0); 
(* Result is FALSE *) 
b := TIME_TO_BOOL(T#5ms); 
(* Result is TRUE *) 
b := STRING_TO_BOOL('TRUE'); 
(* Result is TRUE *) 
Conversion between Integral Number Types 
Conversion from an integral number type to another number type: 
When you perform a type conversion from a larger to a smaller type, you risk losing some information. 
If the number you are converting exceeds the range limit, the first bytes for the number will be ignored. 
Example in ST: 
si := INT_TO_SINT(4223); (* Result is 127 *) 
If you save the integer 4223 (16#107f represented hexadecimally) as a SINT variable, it will appear as 
127 (16#7f represented hexadecimally). 
Example in IL: 
LD 2 
INT_TO_REAL 
MUL 
Appendix A:  - IEC Operators and additional norm extending functions 
CoDeSys V2.3 
10-17 
Example in FBD: 
REAL_TO-/ LREAL_TO Conversions  
Converting from the variable type REAL or LREAL to a different type: 
The value will be rounded  up  or down to  the  nearest whole  number and  converted  into  the new 
variable type. Exceptions to this are the variable types STRING, BOOL, REAL and LREAL. 
Please regard at a conversion to type STRING that the total number of digits is limited to 16. If the 
(L)REAL-number has more digits, then the sixteenth will be rounded. If the length of the STRING is 
defined to short, it will be cut beginning from the right end. 
When you perform a type conversion from a larger to a smaller type, you risk losing some information.  
Example in ST: 
i := REAL_TO_INT(1.5); (* Result is 2 *) 
j := REAL_TO_INT(1.4); (* Result is 1 *) 
i := REAL_TO_INT(-1.5); (* Result is -2 *) 
j := REAL_TO_INT(-1.4); (* Result is -1 *) 
Example in IL: 
LD 2.7 
REAL_TO_INT 
GE %MW8 
Example in FBD: 
TIME_TO/TIME_OF_DAY Conversions 
Converting from the variable type TIME or TIME_OF_DAY to a different type: 
The time will be stored internally in a DWORD in milliseconds (beginning with 12:00 A.M.  for the 
TIME_OF_DAY variable). This value will then be converted. 
When you perform a type conversion from a larger to a smaller type, you risk losing some information  
For the STRING type variable, the result is a time constant. 
Examples in IL: 
LD T#12ms 
TIME_TO_STRING 
ST str 
(*Result is 'T#12ms' *) 
LD T#300000ms 
TIME_TO_DWORD  
ST dw 
(*Result is 300000 *) 
LD TOD#00:00:00.012 
TOD_TO_SINT 
ST si 
(*Result is 12 *) 
Examples in ST: 
str :=TIME_TO_STRING(T#12ms); 
(* Result is T#12ms *) 
dw:=TIME_TO_DWORD(T#5m); 
(* Result is 300000 *) 
si:=TOD_TO_SINT(TOD#00:00:00.012); 
(* Result is 12 *) 
Appendix A:  - IEC Operators and additional norm extending functions 
10-18 
CoDeSys V2.3 
Examples in FBD: 
DATE_TO/DT_TO Conversions 
Converting from the variable type DATE or DATE_AND_TIME to a different type: 
The date will be stored internally in a DWORD in seconds since Jan. 1, 1970. This value will then be 
converted. 
When you perform a type conversion from a larger to a smaller type, you risk losing some information  
For STRING type variables, the result is the date constant. 
Examples in IL: 
LD D#1970-01-01 
DATE_TO_BOOL 
ST b 
(* Result is FALSE *) 
LD D#1970-01-15 
DATE_TO_INT 
ST i 
(* Result is 29952 *) 
LD DT#1970-01-15-05:05:05 
DT_TO_BYTE 
ST byt 
(* Result is 129 *) 
LD DT#1998-02-13-14:20 
DT_TO STRING 
ST str 
(* Result is 'DT#1998-02-13-14:20' *) 
Examples in ST: 
b :=DATE_TO_BOOL(D#1970-01-01); 
(* Result is FALSE *) 
i :=DATE_TO_INT(D#1970-01-15); 
(* Result is 29952 *) 
byt :=DT_TO_BYTE(DT#1970-01-15-05:05:05);
(* Result is 129 *) 
str:=DT_TO_STRING(DT#1998-02-13-14:20); 
(* Result is  
'DT#1998-02-13-14:20' *) 
Examples in FBD: 
Appendix A:  - IEC Operators and additional norm extending functions 
CoDeSys V2.3 
10-19 
STRING_TO Conversions 
Converting from the variable type STRING to a different type: 
The operand from the STRING type variable must contain a value that is valid in the target variable 
type, otherwise the result will be 0. 
Examples in IL: 
LD 'TRUE' 
STRING_TO_BOOL 
ST b 
(* Result is TRUE *) 
LD 'abc34' 
STRING_TO_WORD 
ST w 
(* Result is 0 *) 
LD 't#127ms' 
STRING_TO_TIME 
ST t 
(* Result is T#127ms *) 
Examples in ST: 
b :=STRING_TO_BOOL('TRUE'); 
(* Result is TRUE *) 
w :=STRING_TO_WORD('abc34'); 
(* Result is 0 *) 
t :=STRING_TO_TIME('T#127ms'); 
(* Result is T#127ms *) 
Examples in FBD: 
TRUNC 
Converting from REAL to INT. The whole number portion of the value will be used. 
When you perform a type conversion from a larger to a smaller type, you risk losing some information. 
Example in IL: 
LD 2.7 
TRUNC 
GE %MW8 
Examples in ST: 
i:=TRUNC(1.9); (* Result is 1 *) 
i:=TRUNC(-1.4); (* Result is -1 *). 
Appendix A:  - IEC Operators and additional norm extending functions 
10-20 
CoDeSys V2.3 
10.9 Numeric Operators... 
ABS 
Returns the absolute value of a number. ABS(-2) equals 2. 
The following type combinations for input and output variables are possible: 
IN 
OUT 
INT 
INT, REAL, WORD, DWORD, DINT 
REAL  REAL 
BYTE  INT, REAL, BYTE, WORD, DWORD, DINT 
WORD  INT, REAL, WORD, DWORD, DINT 
DWORD REAL, DWORD, DINT 
SINT 
REAL 
USINT  REAL 
UINT 
INT, REAL, WORD, DWORD, DINT, UDINT, UINT 
DINT 
REAL, DWORD, DINT 
UDINT  REAL, DWORD, DINT, UDINT 
Example in IL: 
LD  -2 
ABS 
ST  i  (* Result is 2 *) 
Example in ST: 
i:=ABS(-2);  
Example in FBD: 
SQRT 
Returns the square root of a number. 
IN can be type BYTE, WORD, DWORD, INT, DINT, REAL, SINT, USINT, UINT, UDINT, OUT must be 
type REAL. 
Example in IL: 
LD  16 
SQRT 
ST  q (* Result is 4 *) 
Example in ST: 
q:=SQRT(16); 
Example in FBD: 
Documents you may be interested
Documents you may be interested