Appendix A:  - IEC Operators and additional norm extending functions 
CoDeSys V2.3 
10-21 
LN 
Returns the natural logarithm 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  45 
LN 
ST  q   (* Result is 3.80666 *) 
Example in ST: 
q:=LN(45); 
Example in FBD: 
LOG 
Returns the logarithm of a number in base 10. 
IN can be type BYTE, WORD, DWORD, INT, DINT, REAL, SINT, USINT, UINT, UDINT, OUT must be 
type REAL. 
Example in IL: 
LD  314.5 
LOG 
ST  q   (* Result is 2.49762 *) 
Example in ST: 
q:=LOG(314.5); 
Example in FBD: 
EXP 
Returns the exponential function. 
IN can be type BYTE, WORD, DWORD, INT, DINT, REAL, SINT, USINT, UINT, UDINT, OUT must be 
type REAL. 
Example in IL: 
LD  2 
EXP 
ST  q (* Result is 7.389056099 *) 
Example in ST: 
q:=EXP(2); 
Example in FBD: 
Pdf merge comments - Merge, append PDF files in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Provide C# Demo Codes for Merging and Appending PDF Document
best pdf combiner; break pdf file into multiple files
Pdf merge comments - VB.NET PDF File Merge Library: Merge, append PDF files in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
VB.NET Guide and Sample Codes to Merge PDF Documents in .NET Project
pdf combine two pages into one; batch combine pdf
Appendix A:  - IEC Operators and additional norm extending functions 
10-22 
CoDeSys V2.3 
SIN 
Returns the sine of a number. 
The input value IN is calculated in arch minutes. It can be type BYTE, WORD, DWORD, INT, DINT, 
REAL, SINT, USINT, UINT, UDINT. OUT must be type REAL. 
Example in IL: 
LD  0.5 
SIN 
ST  q  (* Result is 0.479426 *) 
Example in ST: 
q:=SIN(0.5); 
Example in FBD: 
COS 
Returns the cosine of number. The result is calculated in arch minutes. 
IN can be type BYTE, WORD, DWORD, INT, DINT, REAL, SINT, USINT, UINT, UDINT, OUT must be 
type Typ REAL. 
Example in IL: 
LD  0.5 
COS 
ST  q  (* Result is 0.877583 *) 
Example in ST: 
q:=COS(0.5); 
Example in FBD: 
TAN 
Returns the tangent of a number. The value is calculated in arch minutes. IN can be type BYTE, 
WORD, DWORD, INT, DINT, REAL, SINT, USINT, UINT, UDINT, OUT must be type REAL. 
Example in IL: 
LD  0.5 
TAN  
ST  q  (* Result is 0.546302 *) 
Example in ST: 
q:=TAN(0.5); 
Example in FBD: 
C#: XDoc.HTML5 Viewer for .NET Online Help Manual
document. 5. Save Comments. Click to save created redaction with customized name. Sample Files Tab. Item. Name. Description. 1. Adobe PDF. Click
add pdf together; split pdf into multiple files
C# HTML5 Viewer: Load, View, Convert, Annotate and Edit PDF
HTML5 Viewer for C# .NET provides permanent annotations adding feature, all annotation comments on PDF are able to be saved. PDF Protection.
build pdf from multiple files; pdf combine
Appendix A:  - IEC Operators and additional norm extending functions 
CoDeSys V2.3 
10-23 
ASIN 
Returns the arc sine (inverse function of sine) 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  0.5 
ASIN 
ST  q  (* Result is 0.523599 *) 
Example in ST: 
q:=ASIN(0.5); 
Example in FBD: 
ACOS 
Returns the arc cosine (inverse function of cosine) of a number. The value is calculated in arch 
minutes. 
IN can be type BYTE, WORD, DWORD, INT, DINT, REAL, SINT, USINT, UINT, UDINT, OUT must be 
type REAL. 
Example in IL: 
LD 0.5 
ACOS 
ST q  (* Result is 1.0472 *) 
Example in ST: 
q:=ACOS(0.5); 
Example in FBD: 
ATAN 
Returns the arc tangent (inverse function of tangent) of a number. IN can be type BYTE, WORD, 
DWORD, INT, DINT, REAL, SINT, USINT, UINT, UDINT. The result OUT is calculated in arch minutes 
and must be type REAL. 
Example in IL: 
LD 0.5 
ATAN 
ST q  (* Result is 0.463648 *) 
Example in ST: 
q:=ATAN(0.5); 
Example in FBD: 
C# PDF Annotate Library: Draw, edit PDF annotation, markups in C#.
C# source code for adding or removing annotation from PDF file in .NET framework. Support to add flatten comments to PDF document online in ASPX webpage.
pdf merger; pdf merger online
How to C#: Modify Image Metadata (tag)
Blending. Effect: Sharpness. Effect: Special. Alpha Channel Edit. Merge Images. VB.NET How-to, VB.NET PDF, VB.NET XImage.Raster library, you can get comments of
batch pdf merger online; pdf merge comments
Appendix A:  - IEC Operators and additional norm extending functions 
10-24 
CoDeSys V2.3 
EXPT 
Exponentiation of a variable with another variable:  
OUT = IN1IN2.  
IN1 and IN2 can be type BYTE, WORD, DWORD, INT, DINT, REAL, SINT, USINT, UINT, UDINT, 
OUT must be type REAL. 
Example in IL: 
LD 7 
EXPT 2 
ST var1 (* Result is 49 *) 
Example in ST: 
var1 := EXPT(7,2); 
Example in FBD: 
10.10 Initialization Operator 
INI Operator 
The INI operator can be used to initialize retain variables which are provided by a function block 
instance used in the POU. 
The operator must be assigned to a boolean variable. 
Syntax: <bool-Variable> := INI(<FB-instance, TRUE|FALSE) 
If the second parameter of the operator is set to TRUE, all retain variables defined in the function 
block FB will be initialized.  
Example in ST: fbinst is the instance of function block fb, in which a retain variable retvar is defined. 
Declaration in POU: 
fbinst:fb; 
b:bool; 
Implementation part: 
b := INI(fbinst, TRUE); 
ivar:=fbinst.retvar  (* => retvar gets initialized *) 
Example of operator call in IL:  
LD fbinst 
INI TRUE 
ST b 
Example of operator call in FBD:  
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
Bookmarks. Comments, forms and multimedia. Detect and merge image fragments. VB.NET Demo Code to Optimize An Exist PDF File in Visual C#.NET Project.
adding pdf pages together; asp.net merge pdf files
C# PDF File Compress Library: Compress reduce PDF size in C#.net
Bookmarks. Comments, forms and multimedia. Convert smooth lines to curves. Detect and merge image fragments. C#.NET DLLs: Compress PDF Document.
acrobat split pdf into multiple files; attach pdf to mail merge in word
Appendix B:  - Operands in CoDeSys 
CoDeSys V2.3 
10-25 
Appendix B:  Operands in CoDeSys 
In CoDeSys Constants, variables, addresses and possibly function calls can appear as operands. 
10.11 Constants 
BOOL Constants 
BOOL constants are the logical values TRUE and FALSE. 
TIME Constants 
TIME constants can be declared in 
CoDeSys
. These are generally used to operate the timer in the 
standard library. A TIME constant is always made up of an initial "t" or "T" (or "time" or "TIME" spelled 
out) and a number sign "#". 
This is followed by the actual time declaration which can include days (identified by "d"), hours 
(identified by "h"), minutes (identified by "m"), seconds (identified by "s") and milliseconds (identified 
by "ms"). Please note that the time entries must be given in this order according to length (d before h 
before m before s before m before ms) but you are not required to include all time increments. 
Examples of correct TIME constants in a ST assignment: 
TIME1 := T#14ms; 
TIME1 := T#100S12ms; 
(*The highest component may be allowed to exceed its limit*) 
TIME1 := t#12h34m15s; 
the following would be incorrect: 
TIME1 := t#5m68s; (*limit exceeded in a lower component*) 
TIME1 := 15ms; 
(*T# is missing*) 
TIME1 := t#4ms13d; (*Incorrect order of entries*) 
DATE Constants 
These constants can be used to enter dates. A DATE constant is declared beginning with a "d", "D", 
"DATE" or "date" followed by "#". You can then enter any date with format Year-Month-Day. 
Examples: 
DATE#1996-05-06 
d#1972-03-29 
(see also Chapter 10.15 Data types, Time Data Types) 
TIME_OF_DAY Constants 
Use this type of constant to store times of the day. A TIME_OF_DAY declaration begins with "tod#", 
"TOD#", "TIME_OF_DAY#" or "time_of_day#" followed by a time with the format: 
Hour:Minute:Second. You can enter seconds as real numbers or you can enter fractions of a second. 
Examples: 
TIME_OF_DAY#15:36:30.123 
tod#00:00:00 
(see also Chapter 10.15 Data types, Time Data Types) 
VB.NET PDF Annotate Library: Draw, edit PDF annotation, markups in
When we are reading or viewing a PDF document file, we may often need to mark the source PDF file by adding some comments, notes, explanations or other remarks
acrobat merge pdf; add pdf files together
C# PDF Sticky Note Library: add, delete, update PDF note in C#.net
Allow users to add comments online in ASPX webpage. Able to change font size in PDF comment box. Able to save and print sticky notes in PDF file.
reader combine pdf pages; add pdf pages together
Appendix B:  - Operands in CoDeSys 
10-26 
CoDeSys V2.3 
DATE_AND_TIME Constants 
Date constants and the time of day can also be combined to form so-called DATE_AND_TIME 
constants. DATE_AND_TIME constants begin with "dt#", "DT#", "DATE_AND_TIME#" or 
"date_and_time#". Place a hyphen after the date followed by the time. 
Examples: 
DATE_AND_TIME#1996-05-06-15:36:30 
dt#1972-03-29-00:00:00 
(see also Chapter 10.15 Data types, Time Data Types) 
Number Constants 
Number values can appear as binary numbers, octal numbers, decimal numbers and hexadecimal 
numbers. If an integer value is not a decimal number, you must write its base followed by the number 
sign (#) in front of the integer constant. The values for the numbers 10-15 in hexadecimal numbers will 
be represented as always by the letters A-F. 
You may include the underscore character within the number. 
Examples: 
14 
(decimal number) 
2#1001_0011 (dual number) 
8#67 
(octal number) 
16#A 
(hexadecimal number) 
These number values can be from the variable types BYTE, WORD, DWORD, SINT, USINT, INT, 
UINT, DINT, UDINT, REAL or LREAL. 
Implicit conversions from "larger" to "smaller" variable types are not permitted. This means that a 
DINT variable cannot simply be used as an INT variable. You must use the type conversion. 
REAL/LREAL Constants 
REAL and LREAL constants can be given as decimal fractions and represented exponentially. Use 
the standard American format with the decimal point to do this. 
Example:  
7.4 instead of 7,4 
1.64e+009 instead of 1,64e+009  
STRING Constants 
A string is a sequence of characters. STRING constants are preceded and followed by single 
quotation marks. You may also enter blank spaces and special characters (umlauts for instance). 
They will be treated just like all other characters. 
In character sequences, the combination of the dollar sign ($) followed by two hexadecimal numbers 
is interpreted as a hexadecimal representation of the eight bit character code. In addition, the 
combination of two characters that begin with the dollar sign are interpreted as shown below when 
they appear in a character sequence: 
$$ 
Dollar signs 
$' 
Single quotation mark 
$L or $l Line feed 
$N or $n New line 
$P or $p Page feed 
C# WPF PDF Viewer SDK to annotate PDF document in C#.NET
versions. C#.NET WPF PDF Viewer control allows to add various annotation comments to PDF document in .NET WinForms project. A .NET
reader create pdf multiple files; break pdf into multiple files
VB.NET Image: VB.NET Web Image Viewer Installation and Integration
get more details on sample (PDF) Web Doc Image Viewer integration, creation and customization, please see VB.NET Imaging - Create PDF Web Viewer. Comments on VB
apple merge pdf; pdf merge files
Appendix B:  - Operands in CoDeSys 
CoDeSys V2.3 
10-27 
$R or $r Line break 
$T or $t Tab 
Examples:  
'w1Wüß?' 
' Abby and Craig ' 
':-)' 
Typed Literals 
Basically, in using IEC constants, the smallest possible data type will be used. If another data type 
must be used, this can be achieved with the help of typed literals without the necessity of explicitly 
declaring the constants. For this, the constant will be provided with a prefix which determines the type. 
This is written as follows: <Type>#<Literal> 
<Type> specifies the desired data type; possible entries are: BOOL, SINT, USINT, BYTE, INT, UINT, 
WORD, DINT, UDINT, DWORD, REAL, LREAL. The type must be written in uppercase letters. 
<Literal> specifies the constant. The data entered must fit within the data type specified under 
<Type>.  
Example: 
var1:=DINT#34; 
If the constant can not be converted to the target type without data loss, an error message is issued: 
Typed literals can be used wherever normal constants can be used. 
10.12 Variables 
Variables can be declared either locally in the declaration part of a POU or in a global variable list. 
Please regard: In a project you can define a local variable which has the same name like a global variable. In 
this case within a POU the locally defined variable will be used. It is not allowed however to name two 
global variables identically. For example you will get a compiler error,if you have defined a variable 
"var1" in the PLC Configuration as well as in a global variables list.  
The variable identifier may not contain any blank spaces or special characters, may not be declared 
more than once and cannot be the same as any of the keywords. Capitalization is not recognized 
which means that VAR1, Var1, and var1 are all the same variable. The underscore character is 
recognized in identifiers (e.g., "A_BCD" and "AB_CD" are considered two different identifiers). An 
identifier may not have more than one underscore character in a row. The length of the identifier, as 
well as the meaningful part of it, are unlimited.  
Variables can be used anywhere the declared type allows for them.  
You can access available variables through the Input Assistant. 
System Flags 
System flags are implicitly declared variables that are different on each specific PLC. To find out 
which system flags are available in your system, use the command 'Insert' 'Operand' An Input 
Assistant dialog box pops up, select the category System Variable.  
Accessing variables for arrays, structures and POUs. 
Two-dimensional array components can be accessed using the following syntax: 
<Fieldname>[Index1, Index2] 
Structure variables can be accessed using the following syntax: 
<Structurename>.<Variablenname> 
Appendix B:  - Operands in CoDeSys 
10-28 
CoDeSys V2.3 
Function block and program variables can be accessed using the following syntax: 
<Functionblockname>.<Variablename> 
Addressing bits in variables 
In integer variables individual bits can be accessed. For this, the index of the bit to be addressed is 
appended to the variable, separated by a dot. The bit-index can be given by any constant. Indexing is 
0-based.  
Please regard: Bitaccess in Direct variables is not allowed. 
Example: 
a : INT; 
b : BOOL; 
... 
a.2 := b; 
b.  
If the index is greater than the bit width of the variable, the following error message is issued: Index 
'<n>' outside the valid range for variable '<var>'!  
Bit addressing is possible with the following variable types: SINT, INT, DINT, USINT, UINT, UDINT, 
BYTE, WORD, DWORD.  
If the variable type does not allow it, the following error message is issued: "Invalid data type '<type>' 
for direct indexing" 
A bit access must not be assigned to a VAR_IN_OUT variable! 
Bitaccess via a global constant: 
If you have declared a global constant, which defines the bit-index, you can use this constant for a 
bitaccess.  
Please regard: The project option 'Replace constants' (category Build) must be activated ! 
See in the following examples for a bitaccess on a variable resp. a structure variable: 
Declaration in global variables list for both examples:  
Variable enable defines which bit should be accessed: 
VAR_GLOBAL CONSTANT 
enable:int:=2; 
END_VAR 
Example 1, Bitaccess on an integer variable:  
Declaration in POU: 
VAR 
xxx:int; 
END_VAR 
Bitaccess: 
xxx.enable:=true;   -> the third second bit in variable xxx will be set TRUE 
Example 2, Bitaccess on an integer structure component: 
Declaration of structure stru1: 
TYPE stru1 : 
STRUCT 
bvar:BOOL; 
rvar:REAL; 
wvar:WORD; 
Appendix B:  - Operands in CoDeSys 
CoDeSys V2.3 
10-29 
{bitaccess enable 42 'Start drive'} 
END_STRUCT 
END_TYPE 
Declaration in POU: 
VAR 
x:stru1; 
END_VAR 
Bitaccess: 
x.enable:=true;    
This will set TRUE the 42. bit in variable x. Since bvar has 8 bits and rvar has 32 bits, the bitaccess 
will be done on the second bit of variable wvar, which as a result will get value 4.  
Attention:  If a variable, which does a bitaccess on a structure variable with the aid of a global constant, should 
be displayed correctly in the input assistant, at monitoring in the declaration window and in the 
"Intellisense function", please use pragma {bitaccess} as shown in the example. Then in addition 
you get displayed the global constant beyond the respective structure variable during monitoring in 
the declaration window: 
10.13 Addresses 
Address 
The direct display of individual memory locations is done through the use of special character 
sequences. These sequences are a concatenation of the percent sign "%", a range prefix, a prefix for 
the size and one or more natural numbers separated by blank spaces. 
The following range prefixes are supported: 
Input 
Output 
Memory location  
The following size prefixes are supported: 
Single bit 
None Single bit 
Byte (8 Bits) 
Word (16 Bits) 
Double word (32 Bits) 
Appendix B:  - Operands in CoDeSys 
10-30 
CoDeSys V2.3 
Examples: 
%QX7.5 
and 
%Q7.5  
Output bit 7.5 
%IW215 
Input word 215 
%QB7 
Output byte 7 
%MD48 
Double word in memory position 48 in the memory location. 
%IW2.5.7.1 
depending on the PLC Configuration 
The current PLC Configuration for the program determines whether or not an address is valid. 
Note: Boolean values will be allocated bytewise, if no explicit single-bit address is specified. Example: A change 
in the value of varbool1 AT %QW0 affects the range from QX0.0 to QX0.7. 
see also Chapter Appendix A: IEC Operators and additional norm extending functions, address 
operators 
Memory location  
You can use any supported size to access the memory location. 
For example, the address %MD48 would address bytes numbers 192, 193, 194, and 195 in the 
memory location area (48 * 4 = 192). The number of the first byte is 0. 
You can access words, bytes and even bits in the same way: the address %MX5.0 allows you to 
access the first bit in the fifth word (Bits are generally saved wordwise). 
see also Appendix A: IEC Operators and additional norm extending functions, address operators 
10.14 Functions 
In ST a function call can also appear as an operand. 
Example:  
Result := Fct(7) + 3; 
TIME()-Function 
This function returns the time (based on milliseconds) which has been passed since the system was 
started.  
The data type is TIME. 
Example in IL: 
TIME 
ST systime  (* Result e.g.: T#35m11s342ms *) 
Example in ST:  
systime:=TIME(); 
Example in FBD: 
Documents you may be interested
Documents you may be interested