Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Blocchi Funzionali Con Sfc: Come Contare Il Numero Di Cicli? - modificare ogni N cicli la modalità di funzionamento


Messaggi consigliati

CinziaShannon
Inserito:

Ciao a tutti, qualcuno può risolvermi questo problema?

Sto "scrivendo" un programma per la gestione di un sistema con silos, ho diversi blocchi funzionali scritti in SFC.

Devo fare in modo che il mio sistema cambi modalità di funzionamento ogni N cicli, passando dalla mod 1 alla mod 2 e viceversa.

So che esistono dei blocchi funzionali predefiniti: contatori, temporizzatori, ecc...

Volevo utilizzare per il mio scopo un contatore. Il mio problema è: come inserire un contatore in un diagramma in SFC?

Logicamente ho più o meno tutto in mente...ma sintatticamente non so proprio come utilizzarli...

Sarò infinitamente grata a chiunque possa aiutarmi!


Inserita:

Per prima cosa, sarebbe utile conoscere il PLC che stai utilizzando.

Parli di SFC quindi si presume sia un Siemens della famiglia S7-300/400, ma è solo una supposizione.

Se è così, c'è da dire che i contatori, per usare un eufemismo, lasciano un po' a desiderare.

Io non li uso mai, nemmeno nella programmazione in AWL. Figuriamoci in SFC.

Meglio usare una variabile da incrementare/decrementare/azzerare a piacere.

CinziaShannon
Inserita:

Non ho un tipo particolare di plc, perché è una traccia universitaria...

In genere viene richiesto di scrivere un programma per la gestione di sistema automatizzato: prima si dividono i vari compiti in base ai blocchi e infine si uniscono i vari blocchi (funzionali) istanziati, con i loro ingressi e uscite per la def. del programma.

In questo caso è richiesto di scrivere un programma per gestire 5 silos più un canale comune per l'immissione dei liquidi e quindi occuparmi di riempimento, svuotamento, gestione accessi al canale comune.

Ho individuato 1 blocco funzionale per la gestione dei silos, un altro per il canale comune. Il corpo di ogni blocco deve essere realizzato in SFC.

Ora dovrei occuparmi dell'ultima specifica ovvero : "cambiare modalità di funzionamento del sistema ogni 20 cicli". Purtroppo non so come soddisfare questa specifica, se ci sono altri modi oltre ai contatori conformi agli standard, sarò lieta di venirne a conoscenza.

Se è necessario posso fornire altre informazioni oppure lo schema attualmente realizzato.

Grazie ancora!

Roberto Gioachin
Inserita:

Crea un passo specifico, all'interno del quale fai incrementare una variabile (INT), che avrai preventivamente impostata a zero.

L'incremento dovrà essere eseguito su un fronte di salita del passo stesso, il passo andrà posizionato dopo aver eseguito le operazioni del ciclo.

Alla fine, la sequenza riporterà il controllo all'inizzio del blocco SFC.

A questo punto crei un'altro passo dove verifichi (istruzione GT o GE) di aver raggiunto o superato il numero di cicli, con questa informazione cambi la tua modalità.

Immediatamente dopo imposta a zero la variabile che hai usato per il conteggio dei cicli.

Ciao

Roberto

Inserita:

Ho confuso l'SFC (graphcet) con l'SCL (linguaggio strutturato).

Purtroppo è un linguaggio che conosco solo come struttura generale, ma non ne conosco la sintassi.

In ogni caso c'è da dire che la sintassi cambia in base alla marca del PLC.

Cosa utilizzi per scrivere il programma?

Non c'è una documentazione che spieghi come usare un contatore?

Roberto Gioachin
Inserita:

Scusa Bata, quello che dici tu è vero se si parla di grafcet.

Cinzia però parla di SFC (evoluzione del grafcet), quindi significa anche IEC61131, in questo caso il linguaggio diventa standard, lo stesso per tutti i costruttori.

Ci pensa il compilatore a realizzare un programma compatibile con il plc usato.

Molti plc infatti non dispongono di istruzioni specifiche per questo linguaggio, ma SFC viene supportato lo stesso.

Ciao

Roberto

CinziaShannon
Inserita: (modificato)

Grazie per il vostro aiuto...credo di aver trovato una soluzione.

Ho realizzato un blocco funzionale con corpo in SFC con i suggerimenti che mi ha dato Roberto. Tuttavia ho messo il conteggio del ciclo all'inizio e non alla fine in modo tale da non creare uno stallo all'attivazione del sistema. Il motivo è questo:

-nel sistema in esame devo riempire dei silos di liquido A oppure B a seconda se si è in modalità 1 o 2;

-ho fatto in modo che i silos inizino a riempire solo dopo che il blocco del conteggio abbia valutato se bisogna cambiare o meno la modalità.

Infatti, mentre lo stavo scrivendo (devo fare l'esame su carta-->in risposta a batta che mi chiedeva maggiori dettagli riguardo al programma utilizzato) ho pensato che avrei potuto creare uno stallo all'attivazione del sistema, poiché i silos non sanno in che modalità funzionare.

Per saperlo dovrebbero aspettare il conteggio, che si attiva dopo che i 3 silos hanno eseguito un ciclo.

Che ne pensate?

Magari avrei potuto fare diversamente impostando come condizione iniziale "se il ciclo viene avviato per la prima volta, allora parti da mod1", ma purtroppo non saprei come farlo (un' altra variabile contatore?).

E pensare che se fosse un linguaggio di programmazione ad alto livello tipo c o java sarebbe una cosa così semplice :(

Modificato: da CinziaShannon
Roberto Gioachin
Inserita:
Magari avrei potuto fare diversamente

Sempre si può fare diversamente, non esiste un modo unico per risolvere lo stesso problema.

Io in genere faccio come ti ho spiegato, ma questo fà parte del mio modo di lavorare, non dell'unico modo di lavorare.

E pensare che se fosse un linguaggio di programmazione ad alto livello tipo c o java sarebbe una cosa così semplice

Anche questo è soggettivo, se fosse così come dici, perchè esisterebbero ancora i PLC ?

Ciao

Roberto

Inserita:
E pensare che se fosse un linguaggio di programmazione ad alto livello tipo c o java sarebbe una cosa così semplice

Mi associo a quanto già affermato da Roberto.

I linguaggi attualmente utilizzati nel settore dell'automazione industriale hanno sicuramente dei difetti, ma anche dei pregi.

Casomai, io aggiungerei che l'SFC non mi pare essere il linguaggio più adatto per il tuo attuale problema.

CinziaShannon
Inserita:

ok...è solo che con gli altri linguaggi citati sono più abituata ;)

Come al solito, tutto è relativo! :)

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...