<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Call an output of a function block</title><link href="https://forge.codesys.com/forge/talk/CODESYS-V2/thread/4cdf17f627/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/CODESYS-V2/thread/4cdf17f627/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/CODESYS-V2/thread/4cdf17f627/</id><updated>2020-02-27T22:01:08.230000Z</updated><subtitle>Recent posts to Call an output of a function block</subtitle><entry><title>Call an output of a function block</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/4cdf17f627/?limit=25#d8ec" rel="alternate"/><published>2020-02-27T22:01:08.230000Z</published><updated>2020-02-27T22:01:08.230000Z</updated><author><name>stu1980</name><uri>https://forge.codesys.com/u/stu1980/</uri></author><id>https://forge.codesys.comed1d84a006da6a0b746efda5d527849ca99b8aa6</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;shooter hat geschrieben:&lt;/strong&gt;&lt;br/&gt;
yes because the position is important not the name, the first name is from the caller and the name in the function can be different.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Cool, something new i've learnt   . Although i think i may keep the name of the function the same, maybe less confusing  &lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Call an output of a function block</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/4cdf17f627/?limit=25#bf67" rel="alternate"/><published>2020-02-27T22:01:04.007000Z</published><updated>2020-02-27T22:01:04.007000Z</updated><author><name>shooter</name><uri>https://forge.codesys.com/u/shooter/</uri></author><id>https://forge.codesys.com6fd21daa9d7d0f7e33949d8ac30143b3bb4ddd7b</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;yes because the position is important not the name, the first name is from the caller and the name in the function can be different.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Call an output of a function block</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/4cdf17f627/?limit=25#3fbf" rel="alternate"/><published>2020-02-27T22:01:02.494000Z</published><updated>2020-02-27T22:01:02.494000Z</updated><author><name>stu1980</name><uri>https://forge.codesys.com/u/stu1980/</uri></author><id>https://forge.codesys.coma03cc7540fdcb0452ca0bc69909383530b113837</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Thank you, your help is very appreciated    just one thing your "in" variables are different in the function compared to the program.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Call an output of a function block</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/4cdf17f627/?limit=25#9e3f" rel="alternate"/><published>2020-02-27T22:01:00.811000Z</published><updated>2020-02-27T22:01:00.811000Z</updated><author><name>shooter</name><uri>https://forge.codesys.com/u/shooter/</uri></author><id>https://forge.codesys.com6768d1a47204090e3c57a888e048c756d0f8e314</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;made you an example&lt;/p&gt;
&lt;p&gt;(&lt;em&gt; @NESTEDCOMMENTS := 'Yes' &lt;/em&gt;)&lt;br/&gt;
(&lt;em&gt; @PATH := '' &lt;/em&gt;)&lt;br/&gt;
(&lt;em&gt; @OBJECTFLAGS := '0, 8' &lt;/em&gt;)&lt;br/&gt;
(&lt;em&gt; @SYMFILEFLAGS := '2048' &lt;/em&gt;)&lt;br/&gt;
FUNCTION functionname : REAL&lt;br/&gt;
VAR_INPUT&lt;br/&gt;
    in1: REAL;&lt;br/&gt;
    in2: REAL;&lt;br/&gt;
    in3: REAL;&lt;br/&gt;
END_VAR&lt;br/&gt;
VAR&lt;br/&gt;
    work1: REAL;&lt;br/&gt;
    work2: REAL;&lt;br/&gt;
    work3: REAL;&lt;br/&gt;
END_VAR&lt;br/&gt;
(&lt;em&gt; @END_DECLARATION := '0' &lt;/em&gt;)&lt;br/&gt;
(&lt;em&gt; average with a twist&lt;/em&gt;)&lt;br/&gt;
work1:=in1&lt;em&gt;3;&lt;br/&gt;
work2:=in2&lt;/em&gt;2;&lt;br/&gt;
work3:=in3*1;&lt;br/&gt;
functionname:= (work1+work2+work3)/6;&lt;/p&gt;
&lt;p&gt;END_FUNCTION&lt;/p&gt;
&lt;p&gt;(&lt;em&gt; @NESTEDCOMMENTS := 'Yes' &lt;/em&gt;)&lt;br/&gt;
(&lt;em&gt; @PATH := '' &lt;/em&gt;)&lt;br/&gt;
(&lt;em&gt; @OBJECTFLAGS := '0, 8' &lt;/em&gt;)&lt;br/&gt;
(&lt;em&gt; @SYMFILEFLAGS := '2048' &lt;/em&gt;)&lt;br/&gt;
PROGRAM showfunction&lt;br/&gt;
VAR&lt;br/&gt;
    result: REAL;&lt;br/&gt;
    inp1: REAL;&lt;br/&gt;
    inp2: REAL;&lt;br/&gt;
    inp3: REAL;&lt;br/&gt;
END_VAR&lt;br/&gt;
(&lt;em&gt; @END_DECLARATION := '0' &lt;/em&gt;)&lt;br/&gt;
inp1:=3;&lt;br/&gt;
inp2:=2;&lt;br/&gt;
inp3:=1;&lt;br/&gt;
result:=functionname(inp1, inp2, inp3);&lt;/p&gt;
&lt;p&gt;END_PROGRAM&lt;/p&gt;
&lt;p&gt;there is only one result and it should be in a variable with the same name as the function is. watch the declaration of the vartype in line 1&lt;/p&gt;
&lt;p&gt;take this and make it an .exp file&lt;br/&gt;
then import it to codesys&lt;br/&gt;
still getting alarm not able to receive exp extension.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Call an output of a function block</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/4cdf17f627/?limit=25#0caf" rel="alternate"/><published>2020-02-27T22:00:56.547000Z</published><updated>2020-02-27T22:00:56.547000Z</updated><author><name>shooter</name><uri>https://forge.codesys.com/u/shooter/</uri></author><id>https://forge.codesys.com3e79eddf153e479d7eff8e886139af0b4fb36010</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;yes correct see help file&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Call an output of a function block</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/4cdf17f627/?limit=25#e265" rel="alternate"/><published>2020-02-27T22:00:55.033000Z</published><updated>2020-02-27T22:00:55.033000Z</updated><author><name>stu1980</name><uri>https://forge.codesys.com/u/stu1980/</uri></author><id>https://forge.codesys.comeb4b2104eafd7dd4fd512e95f6307cc6e945aa13</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;shooter hat geschrieben:&lt;/strong&gt;&lt;br/&gt;
almost same you do not have to declare functions in the var.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So you call them directly, no name change?&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Call an output of a function block</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/4cdf17f627/?limit=25#6862" rel="alternate"/><published>2020-02-27T22:00:50.791000Z</published><updated>2020-02-27T22:00:50.791000Z</updated><author><name>shooter</name><uri>https://forge.codesys.com/u/shooter/</uri></author><id>https://forge.codesys.com2f754b9088f0e4f7e57aa47afd1c5685aa180a86</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;almost same you do not have to declare functions in the var.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Call an output of a function block</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/4cdf17f627/?limit=25#6571" rel="alternate"/><published>2020-02-27T22:00:49.248000Z</published><updated>2020-02-27T22:00:49.248000Z</updated><author><name>stu1980</name><uri>https://forge.codesys.com/u/stu1980/</uri></author><id>https://forge.codesys.comca59cbf288dab26844aad2e34d0e794f9693c0c6</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Thanks very much   this clears up a few syntax issues. I presume when calling "Functions" the same syntax is used?&lt;/p&gt;
&lt;p&gt;Stu&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Call an output of a function block</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/4cdf17f627/?limit=25#161b" rel="alternate"/><published>2020-02-27T22:00:44.998000Z</published><updated>2020-02-27T22:00:44.998000Z</updated><author><name>shooter</name><uri>https://forge.codesys.com/u/shooter/</uri></author><id>https://forge.codesys.com69a622dfd4995e619ea20bc6bf78b5191acbcd27</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;here you go&lt;br/&gt;
it is depending of the language&lt;br/&gt;
if using ST here you see some examples in the exp file&lt;br/&gt;
in another language like IL you put CAL in front.&lt;br/&gt;
you must declare every function block in the VAR list. (it will make an copy of the block and use it.&lt;br/&gt;
i saw the helpfile still a lot of german language sorry for that.&lt;br/&gt;
made you an example&lt;/p&gt;
&lt;p&gt;(&lt;em&gt; @NESTEDCOMMENTS := 'Yes' &lt;/em&gt;)&lt;br/&gt;
(&lt;em&gt; @PATH := '' &lt;/em&gt;)&lt;br/&gt;
(&lt;em&gt; @OBJECTFLAGS := '0, 8' &lt;/em&gt;)&lt;br/&gt;
(&lt;em&gt; @SYMFILEFLAGS := '2048' &lt;/em&gt;)&lt;br/&gt;
FUNCTION_BLOCK firstblock&lt;br/&gt;
VAR_INPUT&lt;br/&gt;
    firstin: INT;&lt;br/&gt;
END_VAR&lt;br/&gt;
VAR_OUTPUT&lt;br/&gt;
    firstout1: INT;&lt;br/&gt;
END_VAR&lt;br/&gt;
VAR&lt;br/&gt;
    secondin: INT;&lt;br/&gt;
    secondout: INT;&lt;br/&gt;
    block2:secondblock;&lt;/p&gt;
&lt;p&gt;END_VAR&lt;br/&gt;
(&lt;em&gt; @END_DECLARATION := '0' &lt;/em&gt;)&lt;br/&gt;
secondin:= firstin*10;&lt;br/&gt;
block2(in1:=secondin , out1=&amp;gt;secondout );&lt;br/&gt;
firstout1:=secondout+10;&lt;/p&gt;
&lt;p&gt;END_FUNCTION_BLOCK&lt;/p&gt;
&lt;p&gt;(&lt;em&gt; @NESTEDCOMMENTS := 'Yes' &lt;/em&gt;)&lt;br/&gt;
(&lt;em&gt; @PATH := '' &lt;/em&gt;)&lt;br/&gt;
(&lt;em&gt; @OBJECTFLAGS := '0, 8' &lt;/em&gt;)&lt;br/&gt;
(&lt;em&gt; @SYMFILEFLAGS := '2048' &lt;/em&gt;)&lt;br/&gt;
PROGRAM PLC_PRG&lt;br/&gt;
VAR&lt;br/&gt;
    in1: INT;&lt;br/&gt;
    out1: INT;&lt;br/&gt;
    result: INT;&lt;br/&gt;
    block1:firstblock;&lt;br/&gt;
    END_VAR&lt;br/&gt;
(&lt;em&gt; @END_DECLARATION := '0' &lt;/em&gt;)&lt;br/&gt;
in1:=100;&lt;br/&gt;
block1(firstin:=in1 , firstout1=&amp;gt; );&lt;br/&gt;
result:=block1.firstout1;&lt;/p&gt;
&lt;p&gt;END_PROGRAM&lt;/p&gt;
&lt;p&gt;(&lt;em&gt; @NESTEDCOMMENTS := 'Yes' &lt;/em&gt;)&lt;br/&gt;
(&lt;em&gt; @PATH := '' &lt;/em&gt;)&lt;br/&gt;
(&lt;em&gt; @OBJECTFLAGS := '0, 8' &lt;/em&gt;)&lt;br/&gt;
(&lt;em&gt; @SYMFILEFLAGS := '2048' &lt;/em&gt;)&lt;br/&gt;
FUNCTION_BLOCK secondblock&lt;br/&gt;
VAR_INPUT&lt;br/&gt;
    in1: INT;&lt;br/&gt;
END_VAR&lt;br/&gt;
VAR_OUTPUT&lt;br/&gt;
    out1: INT;&lt;br/&gt;
END_VAR&lt;br/&gt;
VAR&lt;br/&gt;
END_VAR&lt;br/&gt;
(&lt;em&gt; @END_DECLARATION := '0' &lt;/em&gt;)&lt;br/&gt;
out1:=in1+1;&lt;/p&gt;
&lt;p&gt;END_FUNCTION_BLOCK&lt;br/&gt;
import in an empty codesys&lt;br/&gt;
i can not attach files as extensions are not allowed.&lt;/p&gt;
&lt;p&gt;In FBD it is most easy and when you translate it to ST you will see the structure easily.&lt;br/&gt;
greetings paul,&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="https://forum.codesys.com//download/file.php?id=383" rel="nofollow"&gt;block.pro &lt;span&gt;&lt;span&gt;[27.59 KiB]&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Call an output of a function block</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/4cdf17f627/?limit=25#5f2b" rel="alternate"/><published>2020-02-27T22:00:43.477000Z</published><updated>2020-02-27T22:00:43.477000Z</updated><author><name>stu1980</name><uri>https://forge.codesys.com/u/stu1980/</uri></author><id>https://forge.codesys.comea9eedbda4e81ca99c5104d7e93f085b22d107f3</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi, i'm calling a function block from a function block. What I'm want to know is how to access the output value of the function block i will be calling from my current function block.&lt;/p&gt;
&lt;p&gt;I mainly need to know what the syntax looks like.&lt;/p&gt;
&lt;p&gt;This is my prg, its very simple. I'm wanting to get my syntax correct, before i create larger programs.&lt;/p&gt;
&lt;p&gt;PROGRAM MAIN&lt;br/&gt;
VAR&lt;br/&gt;
    DigIn_1 AT %IX0.0 : BOOL;&lt;br/&gt;
    DigOut_1 AT %QX0.0 : BOOL;&lt;br/&gt;
    Numbers:One;(my FB)&lt;br/&gt;
    NumberTotal:INT;&lt;/p&gt;
&lt;p&gt;END_VAR&lt;/p&gt;
&lt;p&gt;DigOut_1:=DigIn_1;&lt;/p&gt;
&lt;p&gt;NumberTotal:=Numbers.Number1 + Numbers.Number2;(my code to get FB output values, is it correct? Is there any other way of doing Call FB)&lt;/p&gt;
&lt;p&gt;FUNCTION_BLOCK One&lt;br/&gt;
VAR_INPUT&lt;br/&gt;
    DigIn_1 AT %I&lt;em&gt; : BOOL;&lt;br/&gt;
END_VAR&lt;br/&gt;
VAR_OUTPUT&lt;br/&gt;
    DigOut_1 AT %Q&lt;/em&gt; : BOOL;&lt;br/&gt;
    Number1 :INT;&lt;br/&gt;
    Number2 :INT;&lt;/p&gt;
&lt;p&gt;END_VAR&lt;br/&gt;
VAR&lt;br/&gt;
END_VAR&lt;/p&gt;
&lt;p&gt;IF DigOut_1 THEN&lt;/p&gt;
&lt;p&gt;Number1:=3;&lt;br/&gt;
Number2:=5;&lt;/p&gt;
&lt;p&gt;END_IF&lt;/p&gt;
&lt;p&gt;Thanks Stu&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>