Appendix D:  - The CoDeSys Libaries 
CoDeSys V2.3 
10-41 
INSERT 
INSERT inserts a string into another string at a defined point. 
The input variables STR1 and STR2 are type STRING, POS is type INT and the return value of the 
function is type STRING. 
INSERT(STR1, STR2, POS) means: insert STR2 into STR1 after position POS. 
Example in IL: 
LD    'SUSI' 
INSERT 'XY',2 
ST    VarSTRING1 (* Result is 'SUXYSI' *) 
Example in FBD: 
Example in ST: 
VarSTRING1 := INSERT ('SUSI','XY',2); 
DELETE 
DELETE removes a partial string from a larger string at a defined position. 
The input variable STR is type STRING, LEN and POS are type INT, the return value of the function is 
type STRING. 
DELETE(STR,  L, P)  means: Delete L characters from STR beginning with the character  in the P 
position. 
Example in IL: 
LD    'SUXYSI' 
DELETE 2,3 
ST    Var1 (* Result is 'SUSI' *) 
Example in FBD: 
Example in ST: 
Var1 := DELETE ('SUXYSI',2,3); 
REPLACE 
REPLACE replaces a partial string from a larger string with a third string. 
The input variable STR1 and STR2 are type STRING, LEN and POS are type INT, the return value of 
the function is type STRING. 
REPLACE(STR1, STR2, L, P) means: Replace L characters from STR1 with STR2 beginning with the 
character in the P position. 
Example in IL: 
LD      'SUXYSI' 
REPLACE 'K',2,2 
ST      VarSTRING1 (* Result is 'SKYSI' *) 
Embed pdf to website - SDK software service: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
Embed pdf to website - SDK software service: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 D:  - The CoDeSys Libaries 
10-42 
CoDeSys V2.3 
Example in FBD: 
Example in ST: 
VarSTRING1 := REPLACE ('SUXYSI','K',2,2); 
FIND 
FIND searches for a partial string within a string. 
The input variable STR1 and STR2 are type STRING, the return value of the function is type STRING. 
FIND(STR1, STR2) means: Find the position of the first character where STR2 appears in STR1 for 
the first time. If STR2 is not found in STR1, then OUT:=0. 
Example in IL: 
LD   'abcdef' 
FIND 'de' 
ST   VarINT1 (* Result is '4' *) 
Example in FBD: 
Example in ST: 
VarINT1 := FIND ('abcdef','de'); 
10.17.2 
Bistable Function Blocks... 
SR 
Making Bistable Function Blocks Dominant: 
Q1 = SR (SET1, RESET) means: 
Q1 = (NOT RESET AND Q1) OR SET1 
The input variables SET1 and RESET as well as the output variable Q1 are type BOOL. 
Declaration example: 
SRInst : SR ; 
Example in IL: 
CAL SRInst(SET1 := VarBOOL1, RESET := VarBOOL2) 
LD SRInst.Q1 
ST VarBOOL3 
Example in FBD: 
SDK software service:VB.NET PDF Convert to Images SDK: Convert PDF to png, gif images
Embed PDF to image converter in viewer. the API, sample codes are provided for PDF document to Our website offers PDF to Raster Images Conversion Control for VB
www.rasteredge.com
SDK software service:C# Image: How to Integrate Web Document and Image Viewer
RasterEdgeImagingDeveloperGuide8.0.pdf: from this user manual, you can existing one from where the website is ready Embed Document Viewer to Your ASPX Web Page.
www.rasteredge.com
Appendix D:  - The CoDeSys Libaries 
CoDeSys V2.3 
10-43 
Example in ST: 
SRInst(SET1:= VarBOOL1 , RESET:=VarBOOL2 ); 
VarBOOL3 := SRInst.Q1 ;  
RS 
Resetting Bistable Function Blocks 
Q1 = RS (SET, RESET1) means: 
Q1 = NOT RESET1 AND (Q1 OR SET) 
The input variables SET and RESET1 as well as the output variable Q1 are type BOOL. 
Declaration example: 
RSInst : RS ; 
Example in IL: 
CAL RSInst(SET:= VarBOOL1,RESET1:=VarBOOL2) 
LD RSInst.Q1 
ST VarBOOL3 
Example in FBD: 
Example in ST: 
RSInst(SET:= VarBOOL1 , RESET1:=VarBOOL2 ); 
VarBOOL3 := RSInst.Q1 ; 
SEMA 
A Software Semaphore (Interruptible) 
BUSY = SEMA(CLAIM, RELEASE) means: 
BUSY := X; 
IF CLAIM THEN X:=TRUE; 
ELSE IF RELEASE THEN BUSY := FALSE; X:= FALSE; 
END_IF 
 is  an  internal  BOOL  variable  that  is  FALSE  when  it  is  initialized. 
The input variables CLAIM and RELEASE as well as the output variable BUSY are type BOOL. 
If BUSY is TRUE when SEMA is called up, this means that a value has already been assigned to 
SEMA (SEMA was called up with CLAIM = TRUE). If BUSY is FALSE, SEMA has not yet been called 
up or it has been released (called up with RELEASE = TRUE). 
Declaration example: 
SEMAInst : SEMA ; 
Example in IL: 
CAL SEMAInst(CLAIM:=VarBOOL1,RELEASE:=VarBOOL2) 
LD SEMAInst.BUSY 
ST VarBOOL3 
Example in FBD: 
SDK software service:VB.NET Word: VB Code to Create Word Mobile Viewer with .NET Doc
prorgam, please link to see: PDF Document Mobile RasterEdge_Imaging_Files" to your created website folder Embed "RasterEdge.css" and "RasterEdge.js" references
www.rasteredge.com
SDK software service:VB.NET Image: VB Code to Download and Save Image from Web URL
this, you can instantly and quickly embed required RasterEdge users to download image from website link more & profession imaging controls, PDF document, image
www.rasteredge.com
Appendix D:  - The CoDeSys Libaries 
10-44 
CoDeSys V2.3 
Example in ST: 
SEMAInst(CLAIM:= VarBOOL1 , RELEASE:=VarBOOL2 ); 
VarBOOL3 := SEMAInst.BUSY;  
10.17.3 
Trigger... 
R_TRIG 
The function block R_TRIG detects a rising edge.  
FUNCTION_BLOCK R_TRIG 
VAR_INPUT  
CLK : BOOL; 
END_VAR 
VAR_OUTPUT 
Q : BOOL; 
END_VAR 
VAR 
M : BOOL := FALSE; 
END_VAR 
Q := CLK AND NOT M; 
M := CLK; 
The output Q and the help variable M will remain FALSE as long as the input variable CLK is FALSE. 
As soon as CLK returns TRUE, Q will first return TRUE, then M will be set to TRUE. This means each 
time the function is called up, Q will return FALSE until CLK has falling edge followed by an rising 
edge. 
Declaration example: 
RTRIGInst : R_TRIG ; 
Example in IL: 
CAL RTRIGInst(CLK := VarBOOL1) 
LD  RTRIGInst.Q 
ST  VarBOOL2 
Example in FBD: 
Example in ST: 
RTRIGInst(CLK:= VarBOOL1); 
VarBOOL2 := RTRIGInst.Q; 
F_TRIG 
The function block F_TRIG a falling edge.  
FUNCTION_BLOCK F_TRIG 
VAR_INPUT 
CLK: BOOL; 
END_VAR 
VAR_OUTPUT 
Q: BOOL; 
END_VAR 
VAR  
SDK software service:C# PDF url edit Library: insert, remove PDF links in C#.net, ASP.
embed link to specific PDF pages. Easy to put link into specified position of PDF text, image and PDF table. Link access to variety of objects, such as website,
www.rasteredge.com
SDK software service:VB.NET PDF url edit library: insert, remove PDF links in vb.net
Able to embed link to specific PDF pages in VB Extract and search url in existing PDF file in VB access to variety of objects, including website, image, document
www.rasteredge.com
Appendix D:  - The CoDeSys Libaries 
CoDeSys V2.3 
10-45 
M: BOOL := FALSE; 
END_VAR 
Q := NOT CLK AND NOT M; 
M := NOT CLK; 
The output Q and the help variable M will remain FALSE as long as the input variable CLK returns 
TRUE. As soon as CLK returns FALSE, Q will first return TRUE, then M will be set to TRUE. This 
means each time the function is called up, Q will return FALSE until CLK has a rising followed by a 
falling edge. 
Declaration example: 
FTRIGInst : F_TRIG ; 
Example in IL: 
CAL FTRIGInst(CLK := VarBOOL1) 
LD  FTRIGInst.Q 
ST  VarBOOL2 
Example in FBD: 
Example in ST: 
FTRIGInst(CLK:= VarBOOL1); 
VarBOOL2 := FTRIGInst.Q; 
10.17.4 
Counter... 
CTU 
Function block Incrementer: 
The input variables CU and RESET as well as the output variable Q are type BOOL, the input variable 
PV and the output variable CV are type WORD. 
The counter variable CV will be initialized with 0 if RESET is TRUE. If CU has a rising edge from 
FALSE to TRUE, CV will be raised by 1.Q will return TRUE when CV is greater than or equal to the 
upper limit PV. 
Declaration example: 
CTUInst : CTU ; 
Example in IL: 
CAL  CTUInst(CU := VarBOOL1, RESET := VarBOOL2, PV := VarINT1) 
LD   CTUInst.Q 
ST   VarBOOL3 
LD   CTUInst.CV 
ST   VarINT2 
Example in FBD: 
SDK software service:C# TIFF: C#.NET Code to Create Online TIFF Document Viewer
how to create more web viewers on PDF and Word Create an ASP.NET website in Visual Studio 2005 or any If you want to embed .NET Web TIFF Document Viewer DLL
www.rasteredge.com
SDK software service:C# PowerPoint: Create Web Document Viewer for PowerPoint Viewing
and saving web PowerPoint document to PDF and TIFF. a web application and then add and embed Web PowerPoint C# Guide: Setup an ASP.NET Website in Visual Studio.
www.rasteredge.com
Appendix D:  - The CoDeSys Libaries 
10-46 
CoDeSys V2.3 
Example in ST: 
CTUInst(CU:= VarBOOL1, RESET:=VarBOOL2 , PV:= VarINT1); 
VarBOOL3 := CTUInst.Q ; 
VarINT2 := CTUInst.CV;  
CTD 
Function Block Decrementer: 
The input variables CD and LOAD as well as the output variable Q are type BOOL, the input variable 
PV and the output variable CV are type WORD. 
When LOAD_ is TRUE, the counter variable CV will be initialized with the upper limit PV. If CD has a 
rising edge from FALSE to TRUE, CV will be lowered by 1 provided CV is greater than 0 (i.e., it 
doesn't cause the value to fall below 0). 
Q returns TRUE when CVis equal 0. 
Declaration example: 
CTDInst : CTD ; 
Example in IL: 
CAL  CTDInst(CD := VarBOOL1, LOAD := VarBOOL2, PV := VarINT1) 
LD   CTDInst.Q 
ST   VarBOOL3 
LD   CTDInst.CV 
ST   VarINT2 
Example in FBD: 
Example in ST: 
CTDInst(CD:= VarBOOL1, LOAD:=VarBOOL2 , PV:= VarINT1); 
VarBOOL3 := CTDInst.Q ; 
VarINT2 := CTDInst.CV; 
CTUD 
Function Block Incrementer/Decrementer 
The input variables CU, CD, RESET, LOAD as well as the output variables QU and QD are type 
BOOL, PV and CV are type WORD. 
If RESET is valid, the counter variable CV will be initialized  with 0.  If  LOAD is valid,  CV  will  be 
initialized with PV. 
If CU has a rising edge from FALSE to TRUE, CV will be raised by 1. If CD has a rising edge from 
FALSE to TRUE, CV will be lowered by 1 provided this does not cause the value to fall below 0. 
QU returns TRUE when CV has become greater than or equal to PV. 
QD returns TRUE when CV has become equal to 0. 
Declaration example: 
CTUDInst : CUTD ; 
Example in IL: 
CAL  CTUDInst(CU:=VarBOOL2, RESET:=VarBOOL3, LOAD:=VarBOOL4, PV:=VarINT1) 
LD   CTUDInst.Q 
Appendix D:  - The CoDeSys Libaries 
CoDeSys V2.3 
10-47 
ST   VarBOOL5 
LD   CTUDInst.QD 
ST   VarBOOL5 
LD   CTUInst.CV 
ST   VarINT2 
Example in FBD: 
Example in ST: 
CTUDInst(CU := VarBOOL1, CU:= VarBOOL2, RESET := VarBOOL3, LOAD:=VarBOOL4 , PV:= 
VarINT1); 
VarBOOL5 := CTUDInst.QU ; 
VarBOOL6 := CTUDInst.QD ; 
VarINT2 := CTUDInst.CV; 
10.17.5 
Timer... 
TP 
The function block Timer is a trigger. TP(IN, PT, Q, ET) means: 
IN  and  PT  are  input  variables  of  the  BOOL  and  TIME  types  respectively.  Q  and  ET  are  output 
variables of the BOOL and TIME types respectively. If IN is FALSE, Q is FALSE and ET is 0. 
As soon as IN becomes TRUE, the time will begin to be counted in milliseconds in ET until its value is 
equal to PT. It will then remain constant. 
Q is TRUE as from IN has got TRUE and ET is less than or equal to PT. Otherwise it is FALSE. 
Q returns a signal for the time period given in PT. 
Graphic Display of the TP Time Sequence 
Declaration example: 
TPInst : TP ; 
Example in IL: 
CAL TPInst(IN := VarBOOL1, PT := T#5s) 
LD  TPInst.Q 
ST  VarBOOL2 
Appendix D:  - The CoDeSys Libaries 
10-48 
CoDeSys V2.3 
Example in FBD: 
Example in ST: 
TPInst(IN := VarBOOL1, PT:= T#5s); 
VarBOOL2 :=TPInst.Q;  
TON 
The function block Timer On Delay implements a turn-on delay.. 
TON(IN, PT, Q, ET) means: 
IN  and  PT  are  input  variables  of  the  BOOL  and  TIME  types  respectively. Q  and  ET  are  output 
variables of the BOOL and TIME types respectively. If IN is FALSE, Q is FALSE and ET is 0. 
As soon as IN becomes TRUE, the time will begin to be counted in milliseconds in ET until its value is 
equal to PT. It will then remain constant. 
Q is TRUE when IN is TRUE and ET is equal to PT. Otherwise it is FALSE. 
Thus, Q has a rising edge when the time indicated in PT in milliseconds has run out. 
Graphic display of TON behaviour over time: 
Declaration example: 
TONInst : TON ; 
Example in IL: 
CAL TONInst(IN := VarBOOL1, PT := T#5s) 
LD  TONInst.Q 
ST  VarBOOL2 
Example in FBD: 
Example in ST: 
TONInst(IN := VarBOOL1, PT:= T#5s); 
Appendix D:  - The CoDeSys Libaries 
CoDeSys V2.3 
10-49 
TOF 
The function block TOF implements a turn-off delay.. 
TOF(IN, PT, Q, ET) means: 
IN and PT are input variables type BOOL respectively TIME. Q and E are output variables type BOOL 
respectively TIME. If IN is TRUE, the outputs are TRU respectively 0.  
As soon as IN becomes FALSE, in ET the time will begin to be counted in milliseconds in ET until its 
value is equal to PT. It will then remain constant. 
Q is FALSE when IN is FALSE und ET equal PT. Otherwise it is TRUE. 
Thus, Q has a falling edge when the time indicated in PT in milliseconds has run out. 
Graphic display of TOF behaviour over time: 
Declaration example: 
TOFInst : TOF ; 
Example in IL: 
CAL TOFInst(IN := VarBOOL1, PT := T#5s) 
LD TOFInst.Q 
ST VarBOOL2 
Example in FBD: 
Example in ST: 
TOFInst(IN := VarBOOL1, PT:= T#5s); 
VarBOOL2 :=TOFInst.Q; 
RTC 
The function block Runtime Clock returns, starting at a given time, the current date and time. 
RTC(EN, PDT, Q, CDT) means: 
EN and PDT are input variables type TIME. Q and CDT are output variables type BOOL respectively 
DATE_AND_TIME. When EN  is FALSE, the output variables Q und CDT are FALSE respectively 
DT#1970-01-01-00:00:00. 
Appendix D:  - The CoDeSys Libaries 
10-50 
CoDeSys V2.3 
As soon as EN becomes TRUE, the time of PDT is set, is counted up in seconds and returned in CDT 
as long as EN is TRUE (see example in the picture above). As soon as EN is reset to FALSE, CDT is 
reset to the initial value DT#1970-01-01-00:00:00. Please note that the time in PDT is only set by a 
rising edge. 
10.18 The Util.lib library 
This library contains an additional collection of various blocks which can be used for BCD conversion, 
bit/byte  functions,  mathematical  auxiliary   functions,  as  controller,  signal  generators,  function 
manipulators and for analogue value processing.  
As some of the functions and function blocks contain REAL variables, an accessory library named 
UTIL_NO_REAL exists in which these POUs are excluded. 
10.18.1 
BCD Conversion 
A byte in the BCD format contains integers between 0 and 99. Four bits are used for each decimal 
place.  The  ten  decimal  place  is  stored  in  the  bits  4-7.  Thus  the  BCD  format  is  similar  to  the 
hexadecimal presentation, with the simple difference that only values between 0 and 99 can be stored 
in a BCD byte, whereas a hexadecimal byte reaches from 0 to FF. 
An example: The integer 51 should be converted to BCD format. 5 in binary is 0101, 1 in binary is 
0001, which makes the BCD byte 01010001, which corresponds to the value $51=81. 
BCD_TO_INT 
This function converts a byte in BCD format into an INT value: 
The input value of the function is type BYTE and the output is type INT. 
Where a byte should be converted which is not in the BCD format the output is -1. 
Examples in ST: 
i:=BCD_TO_INT(73); (* Result is 49 *) 
k:=BCD_TO_INT(151); (* Result is 97 *) 
l:=BCD_TO_INT(15); (* Output -1, because it is not in BCD format *) 
INT_TO_BCD 
This function converts an INTEGER value into a byte in BCD format: 
The input value of the function is type INT, the output is type BYTE. 
The number 255 will be outputted where an INTEGER value should be converted which cannot be 
converted into a BCD byte. 
Examples in ST: 
i:=INT_TO_BCD(49); (* Result is 73 *) 
k:=INT_TO_BCD(97); (* Result is 151 *) 
l:=INT_TO_BCD(100); (* Error! Output: 255 *) 
10.18.2 
Bit-/Byte Functions 
EXTRACT 
Inputs to this function are a DWORD X, as well as a BYTE N. The output is a BOOL value, which 
contains the content of the N
th
bit of the input X, whereby the function begins to count from the zero 
bit. 
Documents you may be interested
Documents you may be interested