<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to How to use Function</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/384aed75e2/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Engineering/thread/384aed75e2/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Engineering/thread/384aed75e2/</id><updated>2021-08-19T09:40:02.128000Z</updated><subtitle>Recent posts to How to use Function</subtitle><entry><title>How to use Function</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/384aed75e2/?limit=25#d273" rel="alternate"/><published>2021-08-19T09:40:02.128000Z</published><updated>2021-08-19T09:40:02.128000Z</updated><author><name>mawaloc</name><uri>https://forge.codesys.com/u/mawaloc/</uri></author><id>https://forge.codesys.coma6db39e0847c6eb8d88c5770083e69dee9829640</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Thank You.&lt;/p&gt;
&lt;p&gt;Effectively it's work much better with FB. Sorry for that.&lt;br/&gt;
For naming , I would change it was more for trial purpose and understand how does work. Now I can do it in proper way.&lt;/p&gt;
&lt;p&gt;Thank You again.&lt;/p&gt;
&lt;p&gt;Regards&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>How to use Function</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/384aed75e2/?limit=250#d66a" rel="alternate"/><published>2021-08-19T08:41:25.188000Z</published><updated>2021-08-19T08:41:25.188000Z</updated><author><name>h-hermsen</name><uri>https://forge.codesys.com/u/hermsen/</uri></author><id>https://forge.codesys.com6024e045084a8e92fec891dc17b0aa0857ad9fa3</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;hi,&lt;/p&gt;
&lt;p&gt;As you might have learned with Algebra, functions don't preserve memory and are state independant. They are purely input dependant. This means that the output of a function is always directly related to the inputs and do not contain any memory states.&lt;/p&gt;
&lt;p&gt;example: x = SIN(t)&lt;/p&gt;
&lt;p&gt;To use memory states you should use a FUNCTION BLOCK instead of a FUNCTION. Then youre code wil work.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>How to use Function</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/384aed75e2/?limit=250#62fb" rel="alternate"/><published>2021-08-19T08:41:19.749000Z</published><updated>2021-08-19T08:41:19.749000Z</updated><author><name>h-hermsen</name><uri>https://forge.codesys.com/u/hermsen/</uri></author><id>https://forge.codesys.com6feb1cd1160c02bfc29a68d80b517bad2c2586c5</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;hi,&lt;/p&gt;
&lt;p&gt;As you might have learned with Algebra, functions don't preserve memory and are state independant. They are purely input dependant. This means that the output of a function is always directly related to the inputs and do not contain any memory states.&lt;/p&gt;
&lt;p&gt;example: x = SIN(t)&lt;/p&gt;
&lt;p&gt;To use memory states you should use a FUNCTION BLOCK instead of a FUNCTION. Then youre code wil work.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>How to use Function</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/384aed75e2/?limit=25#0953" rel="alternate"/><published>2021-08-19T05:50:41.195000Z</published><updated>2021-08-19T05:50:41.195000Z</updated><author><name>mawaloc</name><uri>https://forge.codesys.com/u/mawaloc/</uri></author><id>https://forge.codesys.com6648d06315d3d0f8a8a75cfa7ad6e063a5e79baa</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;sorry I miss some parts of the code!!&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="err"&gt;code&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;FUNCTION Rotary_switch_selection : USINT&lt;br/&gt;
VAR_INPUT&lt;br/&gt;
F_P1pot :USINT;&lt;br/&gt;
END_VAR&lt;br/&gt;
VAR&lt;br/&gt;
F_P1pot_TON1:TON;&lt;br/&gt;
F_P1pot_TON2:TON;&lt;br/&gt;
F_P1pot_RTRIG:R_TRIG;&lt;br/&gt;
F_FunctionCTUD: CTUD;&lt;br/&gt;
F_Ppotbis :USINT;&lt;br/&gt;
F_Functionup:BOOL;&lt;br/&gt;
F_Functiondown:BOOL;&lt;br/&gt;
F_VAL2:BOOL;&lt;br/&gt;
F_PV1:WORD;&lt;br/&gt;
END_VAR&lt;/p&gt;
&lt;p&gt;code of the function: &lt;/p&gt;
&lt;p&gt;F_P1pot_TON1(IN:= NOT F_P1pot_TON2.Q , pt:=T#0.2S);&lt;br/&gt;
    F_P1pot_TON2(IN:= F_P1pot_TON1.Q , pt:=T#0.2S);&lt;br/&gt;
    F_P1pot_RTRIG(CLK:=F_P1pot_TON1.Q , Q=&amp;gt; );&lt;/p&gt;
&lt;p&gt;IF  F_P1pot_RTRIG.Q THEN &lt;br/&gt;
    F_Ppotbis:=F_P1pot;&lt;br/&gt;
END_IF&lt;/p&gt;
&lt;p&gt;IF  F_P1pot &amp;gt; F_Ppotbis THEN&lt;br/&gt;
    F_Functionup:=TRUE;&lt;br/&gt;
    F_Functiondown:=FALSE;&lt;br/&gt;
ELSIF F_P1pot &amp;lt; F_Ppotbis THEN&lt;br/&gt;
    F_Functionup:=FALSE;&lt;br/&gt;
    F_Functiondown:=TRUE; &lt;br/&gt;
ELSE&lt;br/&gt;
    F_Functionup:=FALSE;&lt;br/&gt;
    F_Functiondown:=FALSE;&lt;br/&gt;
END_IF&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nt"&gt;F_FunctionCTUD&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;CU&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;F_Functionup&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;CD&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;F_Functiondown&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;RESET&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="nt"&gt;F_VAL2&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;load&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;PV&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="nt"&gt;F_PV1&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

&lt;span class="nt"&gt;Rotary_switch_selection&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="nt"&gt;WORD_TO_BYTE&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;F_FunctionCTUD&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;CV&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;


&lt;span class="nt"&gt;then&lt;/span&gt; &lt;span class="nt"&gt;my&lt;/span&gt; &lt;span class="nt"&gt;main&lt;/span&gt; &lt;span class="nt"&gt;is&lt;/span&gt; &lt;span class="nt"&gt;what&lt;/span&gt; &lt;span class="nt"&gt;I&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="nt"&gt;ve&lt;/span&gt; &lt;span class="nt"&gt;written&lt;/span&gt; &lt;span class="nt"&gt;above&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</summary></entry><entry><title>How to use Function</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/384aed75e2/?limit=25#38e2" rel="alternate"/><published>2021-08-19T05:44:46.065000Z</published><updated>2021-08-19T05:44:46.065000Z</updated><author><name>mawaloc</name><uri>https://forge.codesys.com/u/mawaloc/</uri></author><id>https://forge.codesys.comebec21c00ab298ac4b404cfc030dd4157ac47d89</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hello to all,&lt;br/&gt;
I would need some help.&lt;/p&gt;
&lt;p&gt;Instead of using PRG, I've tried to use a function &lt;/p&gt;
&lt;p&gt;I've fews rotary switchs that I'm trying to count when values change.&lt;br/&gt;
So instead of trying to create multiple PRG, the idea was to use a fuction for.&lt;/p&gt;
&lt;p&gt;And unfortunaly it doesn't react.&lt;br/&gt;
someone has any idea.~~~&lt;br/&gt;
code&lt;br/&gt;
~~~&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;FUNCTION Rotary_switch_selection : USINT&lt;br/&gt;
VAR_INPUT&lt;br/&gt;
    F_P1pot :USINT;&lt;br/&gt;
END_VAR&lt;br/&gt;
VAR&lt;br/&gt;
    F_P1pot_TON1:TON;&lt;br/&gt;
    F_P1pot_TON2:TON;&lt;br/&gt;
    F_P1pot_RTRIG:R_TRIG;&lt;br/&gt;
    F_FunctionCTUD: CTUD;&lt;br/&gt;
    F_Ppotbis :USINT;&lt;br/&gt;
    F_Functionup:BOOL;&lt;br/&gt;
    F_Functiondown:BOOL;&lt;br/&gt;
    F_VAL2:BOOL;&lt;br/&gt;
    F_PV1:WORD;&lt;br/&gt;
END_VAR&lt;/p&gt;
&lt;p&gt;then in my "main" to call&lt;/p&gt;
&lt;p&gt;PROGRAM Main&lt;br/&gt;
VAR&lt;br/&gt;
    P1value:USINT;&lt;br/&gt;
END_VAR&lt;/p&gt;
&lt;p&gt;P1value:=Rotary_switch_selection( F_P1pot:=GVL.P1pot );&lt;/p&gt;
&lt;p&gt;GVL.P1pot =&amp;gt; is my Potentiometer value.&lt;/p&gt;
&lt;p&gt;thank you for your help.&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>