Last visit was: It is currently 17/10/2019, 23:42


All times are UTC + 1 hour [ DST ]




Post new topic Reply to topic  [ 2 posts ] 
Author Message
 Post subject: Errore Compilazione - FB con Case e timer
PostPosted: 02/10/2019, 17:29 

Joined: 02/10/2019, 17:24
Posts: 1
salve, ho un problema una function block creata con questo codice all'interno.

compilo ed esce "RULLIEREANGOLARI(1) - errore S1312: Errore sintassi" ma non capisco dove sia l'errore di sintassi?
Grazie

//Variabili
FUNCTION_BLOCK RulliereAngolari

VAR
Rit_Rulliera : TOF;
stato : INT;
EN_Prelievo : BOOL;
TON_Presenza : TON;
TOF_Presenza : TOF;
END_VAR

VAR_INPUT
FC_Prelievo : BOOL;
FC_Scarto : BOOL;
FC_Presenza : BOOL;
En_Scarto : BOOL;
En_Prlievo : BOOL;
END_VAR

VAR_OUTPUT
Cmd_RotPrelievo : BOOL;
Cmd_RotScarto : BOOL;
Cmd_Rulli : BOOL;
END_VAR
//Fine Variabili



//Inizio codice

TON_Presenza(IN:= FC_Presenza,PT:=100); // filtro per essere sicuri di accettare completamente il pallet
TOF_Presenza(IN:= FC_Presenza,PT:=100); // filtro per espellere completamente il pallet

case stato of

1: //Controllo lo stato dell'angoliera

if TON_Presenza.Q then
stato := 20; // Procedere allo scarto
End_if;

If FC_Prelievo then
Stato := 10; // vado allo stato di accettazione pallet
End_IF;

if TOF_Presenza and FC_Prelievo then
stato :=22;
End_if;

10 : // Sono in prelievo attendo l'arrivo del pallet

IF FC_Prelievo and EN_Prelievo and not TON_Presenza.Q then //se sono in posizione e devo accettare il pallet
cmd_Rulli:=true; // accendo la rulliera per accettare il pallet
End_If;

IF TON_Presenza.Q then
cmd_Rulli:=false;
stato:=20; // vado nella posizione di scarto
End_If;

20: //Devo procedere verso lo scarto

If TON_Presenza.Q and not FC_Scarto then
Cmd_RotScarto:=true;
END_If;

If FC_Scarto then
cmd_RotScarto:=false;
stato := 21; //Salto ad espulsione pallet
END_IF;

21 : //Espulsione pallet

If FC_Scarto and TON_Presenza.Q and En_Scarto then // accendo i rulli per espulsione
cmd_rulli:=true;
End_If;

if TOF_Presenza.Q then
cmd_rulli:=false;
stato:= 22;// salto a rotazione prelievo
end_if;

22:// andare in prelievo

if TOF_Presenza.Q and not FC_Prelievo then // mi muovo in prelievo
Cmd_RotScarto:=true;
end_if;

If FC_Prelievo then // sono in zona di prelievo
Cmd_RotScarto:=false;
stato := 10;
End_if;

End_Case;

//Fine Codice


Top
Offline Profile  
 
 Post subject: Re: Errore Compilazione - FB con Case e timer
PostPosted: 07/10/2019, 11:51 
Moderatore

Joined: 29/10/2010, 10:09
Posts: 1308
Salve,
provi a vedere questo IF

if TOF_Presenza and FC_Prelievo then
stato :=22;
End_if;

TOF_Presenza è un FunctionBlock quindi non può usarlo "diretto" in una IF, deve esplicitare un membro di quel FB scrivendo:
TOF_Presenza.Q (ad esempio per esplicitare l'uscita del timer).

Si assicuri inoltre di usare l'ultima versione di LogicLab disponibile dal nostro sito: 5.10.0.14


Top
Offline Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 2 posts ] 

All times are UTC + 1 hour [ DST ]


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Theme created StylerBB.net & kodeki