Ciao,
ho fatto una POU e una funzione a parte proprio uguali a quelle che mi hai mandato, perΓ² continua a non andare, sembra che anche se il TON ha l'IN per partire a contare non conti
Functions have no internal status information, which means that functions do not save the values of their variables until the next call. Calls of a function with the same input variable values always supply the same output value. Therefore, functions may not use global variables and addresses!
Ciao, il blocco POU, dove viene richiamato l' FB, deve essere elaborato.
Io nel main task richiamo un POU di nome Main e poi in Main richiamo tutti gli altri blocchi. Quindi anche il POU_lorenzo deve essere richiamato nel Main.
Un modo per vedere se un blocco viene richiamato Γ¨ inserire al suo interno un controllo.
Per esempio dentro al tuo Fb dichiari la tag control:WORD;
Nel codice del tuo FB scrivi control := control + 1 ;
Andando online devi vedere la tag che incrementa ad ogni ciclo.
Hello, the POU block, where the FB is called, must be processed.
In the main task I call a POU called Main and then in Main I call all the other blocks. Therefore also the POU_lorenzo must be called in the Main.
One way to see if a block is called is to insert a control into it.
For example inside your FB you declare the tag
control : WORD ;
In your FB code write this
control := control + 1 ;
Going online you have to see the tag that increments each cycle.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi,
I have a problem with the timer TON into a function block
I have this into the function block
TON_Rit_Start(IN:= (AUTOMATICO AND START_AUTO),PT:= UINT_TO_TIME(T_RIT_START));
IF TON_Rit_Start.Q THEN
OUT := TRUE;
END_IF
And this is the call into the main program
Gestione_Motori(AUTOMATICO := TRUE,
START_AUTO := GVL.motore.Scarto.wStart,
T_RIT_START := 2000,
OUT => VAR1);
When GVL.motore.Scarto.wStart is setted to TRUE the function don't start count and i have the OUT value always false
PLS HELP ME
Last edit: lorenzop 2022-03-28
Ciao,
for me, it work
see attached files
Ciao,
ho fatto una POU e una funzione a parte proprio uguali a quelle che mi hai mandato, perΓ² continua a non andare, sembra che anche se il TON ha l'IN per partire a contare non conti
Last edit: lorenzop 2022-03-30
Only English please!
Only English please!
Hint
Functions have no internal status information, which means that functions do not save the values of their variables until the next call. Calls of a function with the same input variable values always supply the same output value. Therefore, functions may not use global variables and addresses!
source : https://help.codesys.com/webapp/_cds_obj_function;product=codesys;version=3.5.14.0
Ciao, il blocco POU, dove viene richiamato l' FB, deve essere elaborato.
Io nel main task richiamo un POU di nome Main e poi in Main richiamo tutti gli altri blocchi. Quindi anche il POU_lorenzo deve essere richiamato nel Main.
Un modo per vedere se un blocco viene richiamato Γ¨ inserire al suo interno un controllo.
Per esempio dentro al tuo Fb dichiari la tag control:WORD;
Nel codice del tuo FB scrivi control := control + 1 ;
Andando online devi vedere la tag che incrementa ad ogni ciclo.
Hello, the POU block, where the FB is called, must be processed.
In the main task I call a POU called Main and then in Main I call all the other blocks. Therefore also the POU_lorenzo must be called in the Main.
One way to see if a block is called is to insert a control into it.
For example inside your FB you declare the tag
control : WORD ;
In your FB code write this
control := control + 1 ;
Going online you have to see the tag that increments each cycle.
And of course like dFx suggest you can't use Functions because haven't internal status information. As i wrote i used a FB