CoDeSys V2.3 
10-1 
10 APPENDIX 
Appendix A:  IEC Operators and additional norm extending 
functions 
CoDeSys supports all IEC operators. In contrast with the standard functions functions (see appendix 
D, Standard library), these operators are recognized implicitly throughout the project. Besides the IEC 
operators CoDeSys also supports the following operators which are not prescribed by the 
standard: INDEXOF and SIZEOF (see Arithmetic Operators), ADR and BITADR (see Adress 
Operators). 
Operators are used like functions in POU. 
Attention: At operations with floating point variables the result depends on the currently used target system ! 
> Arithmetic operators  
> Bitstring Operators 
> Bit-Shift Operators 
> Selection Operators 
> Comparison Operators 
> Address Operators 
> Calling Operators 
> Type Conversions 
> Numeric Operators  
10.1 Arithmetic Operators... 
ADD 
Addition of variables of the types: BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, 
REAL and LREAL. 
Two TIME variables can also be added together resulting in another time  
(e.g., t#45s + t#50s = t#1m35s) 
Example in IL: 
LD  
ADD 2,4,7 
ST  
Var 1 
Example in ST: 
var1 := 7+2+4+7; 
Example in FBD: 
Pdf page to powerpoint - C# Create PDF from PowerPoint Library to convert pptx, ppt to PDF in C#.net, ASP.NET MVC, WinForms, WPF
Online C# Tutorial for Creating PDF from Microsoft PowerPoint Presentation
changing pdf to powerpoint file; how to convert pdf to powerpoint slides
Pdf page to powerpoint - VB.NET Create PDF from PowerPoint Library to convert pptx, ppt to PDF in vb.net, ASP.NET MVC, WinForms, WPF
VB.NET Tutorial for Export PDF file from Microsoft Office PowerPoint
pdf page to powerpoint; change pdf to ppt
10-2 
CoDeSys V2.3 
MUL 
Multiplication of variables of the types: BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, 
UDINT, REAL and LREAL. 
Example in IL: 
LD  7 
MUL 2,4,7 
ST  Var 1 
Example in ST: 
var1 := 7*2*4*7; 
Example in FBD: 
SUB 
Subtraction of one variable from another of the types: BYTE, WORD, DWORD, SINT, USINT, INT, 
UINT, DINT, UDINT, REAL and LREAL. 
A TIME variable may also be subtracted from another TIME variable resulting in third TIME type 
variable. Note that negative TIME values are undefined. 
Example in IL: 
LD  7 
SUB 8 
ST  Var 1 
Example in ST: 
var1 := 7-2; 
Example in FBD: 
DIV 
Division of one variable by another of the types: BYTE, WORD, DWORD, SINT, USINT, INT, UINT, 
DINT, UDINT, REAL and LREAL. 
Example in IL: 
LD  8 
DIV 2 
ST  Var 1 (* Result is 4 *) 
Example in ST: 
var1 := 8/2; 
Example in FBD: 
VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
XDoc.PDF ›› VB.NET PDF: Delete PDF Page. using RasterEdge.Imaging.Basic; using RasterEdge.XDoc.PDF; How to VB.NET: Delete a Single PDF Page from PDF File.
and paste pdf to powerpoint; how to add pdf to powerpoint presentation
C# PDF Page Insert Library: insert pages into PDF file in C#.net
C# programmers are capable of adding and inserting (empty) PDF page or pages from various file formats, such as PDF, Tiff, Word, Excel, PowerPoint, Bmp, Jpeg
drag and drop pdf into powerpoint; convert pdf into powerpoint online
CoDeSys V2.3 
10-3 
Note: 
If you define functions in your project with the names CheckDivByteCheckDivWord, 
CheckDivDWord and CheckDivReal, you can use them to check the value of the divisor if you use 
the operator DIV, for example to avoid a division by 0. The functions must have the above listed 
names.  
See in the following an example for the implementation of function CheckDivReal: 
Example for the implementation of the function CheckDivReal:
FUNCTION CheckDivReal : REAL 
VAR_INPUT 
divisor:REAL; 
END_VAR 
IF divisor = 0 THEN 
CheckDivReal:=1; 
ELSE 
CheckDivReal:=divisor; 
END_IF; 
Operator DIV uses the output of function CheckDivReal as divisor. In a program like shown in the 
following example this avoids a division by 0, the divisor (d) is set from 0 to 1. So the result of the 
division is 799. 
PROGRAM PLC_PRG 
VAR 
erg:REAL; 
v1:REAL:=799; 
d:REAL; 
END_VAR 
erg:= v1 DIV d 
MOD 
Modulo Division of one variable by another of the types: BYTE, WORD, DWORD, SINT, USINT, INT, 
UINT, DINT, UDINT. The result of this function will be the remainder of the division. This result will be 
a whole number. 
Example in IL: 
LD  
MOD 
ST  
Var 1 
(* Result is 1 *) 
Example in ST: 
var1 := 9 MOD 2; 
Example in FBD: 
MOVE 
Assignment of a variable to another variable of an appropriate type. As MOVE is available as a box in 
the graphic editors FBD, LD, CFC, there the (unlocking) EN/EN0 functionality can also be applied on a 
variable assignment. 
Example in CFC in conjunction with the EN/EN0 function: 
Only if en_i is TRUE, var1 will be assigned to var2. 
Example in IL: 
VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
PDF Pages. |. Home ›› XDoc.PDF ›› VB.NET PDF: Insert PDF Page. Professional .NET PDF control for inserting PDF page in Visual Basic .NET class application.
converting pdf to powerpoint slides; convert pdf to ppt
C# PDF Page Delete Library: remove PDF pages in C#.net, ASP.NET
Pages. |. Home ›› XDoc.PDF ›› C# PDF: Delete PDF Page. Demo Code: How to Delete a Single PDF Page from PDF File in C#.NET. How
converting pdf to powerpoint online; conversion of pdf to ppt online
10-4 
CoDeSys V2.3 
LD  
ivar1 
MOVE ivar2 
ST  
ivar2 (* result: var2 erhält Wert von var1 *) 
( ! you get the same result with: 
LD  ivar1 
ST  ivar2 ) 
Example in ST: 
ivar2 := MOVE(ivar1); 
( ! you get the same result with: ivar2 := ivar1; ) 
INDEXOF 
This function is not prescribed by the standard IEC61131-3. 
Perform this function to find the internal index for a POU. 
Example in ST: 
var1 := INDEXOF(POU2); 
SIZEOF 
This function is not prescribed by the standard IEC61131-3. 
Perform this function to determine the number of bytes required by the given data type.  
Example in IL: 
arr1:ARRAY[0..4] OF INT; 
Var1  
INT 
LD  
arr1 
SIZEOF 
ST  
Var 1 (* Result is 10 *) 
Example in ST: 
var1 := SIZEOF(arr1); 
10.2 Bitstring Operators... 
AND 
Bitwise AND of bit operands. The operands should be of the type BOOL, BYTE, WORD or DWORD. 
Example in IL: 
Var1  BYTE 
LD  2#1001_0011 
AND 2#1000_1010 
ST  Var 1 
(* Result is 2#1000_0010 *) 
Example in ST: 
C# PDF File & Page Process Library SDK for C#.net, ASP.NET, MVC
PowerPoint, VB.NET Tiff, VB.NET Imaging, VB.NET OCR, VB.NET Twain, VB.NET Barcode Read, VB.NET Barcode Generator, view less. C# PDF - Modify PDF File and Page
chart from pdf to powerpoint; convert pdf to powerpoint online for
How to C#: Overview of Using XDoc.PowerPoint
Create and Edit PowerPoint Page and File. Tell C# users Please click to see details. Annotate PowerPoint Page. Various annotation objects
how to add pdf to powerpoint slide; convert pdf to powerpoint presentation
CoDeSys V2.3 
10-5 
var1 := 2#1001_0011 AND 2#1000_1010 
Example in FBD: 
Note: 
If you have a program step in the SFC like the following  
and if you use 68xxx- or C-code generators, please note the following: The allocation of the value of 
OR 
Bitwise OR of bit operands. The operands should be of the type BOOL, BYTE, WORD or DWORD. 
Example in IL: 
var1 :BYTE; 
LD 2#1001_0011 
OR 2#1000_1010 
ST  var1 (* Result is 2#1001_1011 *) 
Example in ST: 
Var1 := 2#1001_0011 OR 2#1000_1010 
Example in FBD: 
Note: 
If you have a program step in the SFC like the following  
and if you use 68xxx- or C-code generators, please note the following: The allocation of the value of 
XOR 
Bitwise XOR of bit operands. The operands should be of the type BOOL, BYTE, WORD or DWORD. 
Note: 
d again in 
Example in IL: 
Var1 :BYTE; 
LD 2#1001_0011 
XOR 2#1000_1010 
ST  Var1 (* Result is 2#0001_1001 *) 
Example in ST: 
Var1 := 2#1001_0011 XOR 2#1000_1010 
Example in FBD: 
C# PowerPoint - Sort PowerPoint Pages Order in C#.NET
C#.NET. Support Customizing Page Order of PowerPoint Document in C# Project. Overview. splitting. C# DLLs: Move PowerPoint Page Position. Add
copying image from pdf to powerpoint; adding pdf to powerpoint slide
C# PowerPoint - Delete PowerPoint Document Page in C#.NET
C# DLLs: Delete Page from PowerPoint File. Delete a Single PowerPoint Page from PowerPoint File in C#. How to delete a single page from a PowerPoint document.
how to change pdf to powerpoint; convert pdf to editable ppt online
10-6 
CoDeSys V2.3 
NOT 
Bitwise NOT of a bit operand. The operand should be of the type BOOL, BYTE, WORD or DWORD.  
Example in IL: 
Var1 :BYTE; 
LD 2#1001_0011 
NOT 
ST  Var1 (* Result is 2#0110_1100 *) 
Example in ST: 
Var1 := NOT 2#1001_0011 
Example in FBD: 
10.3 Bit-Shift Operators 
SHL 
Bitwise left-shift of an operand : erg:= SHL (in, n) 
in gets shifted to the left by n bits. If n > data type width, for BYTE, WORD and DWORD will be filled 
with zeros. But if signed data types are used, like e.g. INT, then an arithmetic shift will be executed in 
such cases, that means it will be filled with the value of the topmost bit. 
Note: 
Please note, that the amount of bits, which is regarded for the arithmetic operation, is pretended by 
the data type of the input variable !. If the input variable is a constant the smallest possible data type 
is regarded. The data type of the output variable has no effect at all on the arithmetic operation. 
Note: 
See in the following example in hexadecimal notation that you get different results for erg_byte and 
erg_word depending on the data type of the input variable (BYTE or WORD), although the values of 
the input variables in_byte and in_word are the same. 
Example in ST: 
CoDeSys V2.3 
10-7 
Example in FBD: 
Example in IL: 
LD  
16#45 
SHL  
ST 
erg_byte 
SHR 
Bitwise right-shift of an operand: erg:= SHR (in, n) 
in gets shifted to the right by n bits. If n > data type width, for BYTE, WORD and DWORD will be filled 
with zeros. But if signed data types are used, like e.g. INT, then an arithmetic shift will be executed in 
such cases, that means it will be filled with the value of the topmost bit. 
Note: 
Please note, that the amount of bits, which is regarded for the arithmetic operation, is pretended by 
the data type of the input variable !. If the input variable is a constant the smallest possible data type 
is regarded. The data type of the output variable has no effect at all on the arithmetic operation. 
See the following example in hexadecimal notation to notice the results of the arithmetic operation 
depending on the type of the input variable (BYTE or WORD). 
Example in ST: 
PROGRAM shr_st 
VAR  
in_byte : BYTE:=16#45; 
in_word : WORD:=16#45; 
erg_byte : BYTE; 
erg_word : WORD; 
n: BYTE :=2; 
END_VAR 
erg_byte:=SHR(in_byte,n); (* Result is 11 *) 
erg_word:=SHR(in_word;n); (* Result is 0011 *) 
Example in FBD: 
Example in IL: 
LD  
16#45 
SHL  2 
ST 
erg_byte 
ROL 
Bitwise rotation of an operand to the left: erg:= ROL (in, n) 
erg, in and n should be of the type BYTE, WORD or DWORD. in will be shifted one bit position to the 
left n times while the bit that is furthest to the left will be reinserted from the right. 
10-8 
CoDeSys V2.3 
Note: Please note, that the amount of bits, which is regarded for the arithmetic operation, is pretended 
by the data type of the input variable !. If the input variable is a constant the smallest possible data 
type is regarded. The data type of the output variable has no effect at all on the arithmetic operation. 
See in the following example in hexadecimal notation that you get different results for erg_byte and 
erg_word depending on the data type of the input variable (BYTE or WORD), although the values of 
the input variables in_byte and in_word are the same. 
Example in ST: 
PROGRAM rol_st 
VAR  
in_byte : BYTE:=16#45; 
in_word : WORD:=16#45; 
erg_byte : BYTE; 
erg_word : WORD; 
n: BYTE :=2; 
END_VAR 
erg_byte:=ROL(in_byte,n); (* Ergebnis ist 16#15 *) 
erg_word:=ROL(in_word;n); (* Ergebnis ist 16#0114 *) 
Example in FBD: 
Example in IL: 
LD  16#45 
SHL 2 
ST erg_byte 
ROR 
Bitwise rotation of an operand to the right: erg = ROR (in, n) 
erg, in and n should be of the type BYTE, WORD or DWORD. in will be shifted one bit position to the 
right n times while the bit that is furthest to the left will be reinserted from the left. 
Note: 
Please note, that the amount of bits, which is regarded for the arithmetic operation, is pretended by 
the data type of the input variable !. If the input variable is a constant the smallest possible data type 
is regarded. The data type of the output variable has no effect at all on the arithmetic operation. 
See in the following example in hexadecimal notation that you get different results for erg_byte and 
erg_word depending on the data type of the input variable (BYTE or WORD), although the values of 
the input variables in_byte and in_word are the same. 
Example in ST: 
PROGRAM ror_st 
VAR  
in_byte : BYTE:=16#45; 
in_word : WORD:=16#45; 
erg_byte : BYTE; 
erg_word : WORD; 
n: BYTE :=2; 
END_VAR 
erg_byte:=ROR(in_byte,n); (* Result is 16#51 *) 
erg_word:=ROR(in_word;n); (* Result is16#4011 *) 
CoDeSys V2.3 
10-9 
Example in FBD: 
Example in IL: 
LD  16#45 
SHL  2 
ST 
erg_byte 
10.4 Selection Operators 
All selection operations can also be performed with variables. For purposes of clarity we will limit our 
examples to the following which use constants as operators. 
SEL 
Binary Selection.  
OUT := SEL(G, IN0, IN1) means: 
OUT := IN0 if G=FALSE; 
OUT := IN1 if G=TRUE. 
IN0, IN1 and OUT can be any type of variable, G must be BOOL. The result of the selection is IN0 if G 
is FALSE, IN1 if G is TRUE. 
Example in IL: 
LD  
TRUE 
SEL  
3,4 
ST 
Var1 
(* Result ist 4 *) 
LD  
FALSE 
SEL  
3,4 
ST 
Var1 
(* Result ist 3 *) 
Example in ST: 
Var1:=SEL(TRUE,3,4); (* Result is 4 *) 
Example in FBD: 
Note: 
Note that an expression occurring ahead of IN1 or IN2 will not be processed if IN0 is TRUE. 
MAX 
Maximum function. Returns the greater of the two values. 
OUT := MAX(IN0, IN1) 
IN0, IN1 and OUT can be any type of variable. 
Example in IL: 
10-10 
CoDeSys V2.3 
LD  
90 
MAX  30 
MAX  40 
MAX  77 
ST 
Var1 
(* Result is 90 *) 
Example in ST: 
Var1:=MAX(30,40); (* Result is 40 *) 
Var1:=MAX(40,MAX(90,30)); (* Result is 90 *) 
Example in FBD: 
MIN 
Minimum function. Returns the lesser of the two values. 
OUT := MIN(IN0, IN1) 
IN0, IN1 and OUT can be any type of variable. 
Example in IL: 
LD  
90 
MIN  30 
MIN  40 
MIN  77 
ST  
Var 1 
(* Result is 30 *) 
Example in ST: 
Var1:=MIN(90,30); (* Result is 30 *); 
Var1:=MIN(MIN(90,30),40); (* Result is 30 *); 
Example in FBD: 
LIMIT 
Limiting  
OUT := LIMIT(Min, IN, Max) means: 
OUT := MIN (MAX (IN, Min), Max) 
Max is the upper and Min the lower limit for the result. Should the value IN exceed the upper limit 
Max, LIMIT will return Max. Should IN fall below Min, the result will be Min. 
IN and OUT can be any type of variable. 
Example in IL: 
LD  
90 
Documents you may be interested
Documents you may be interested