Strumenti Utente

Strumenti Sito


sfc

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisioneRevisione precedente
Prossima revisione
Revisione precedente
sfc [2024/02/16 13:42] – [Altre regole] adminsfc [2025/10/28 11:37] (versione attuale) – [Dal Grafcet al Ladder: tecnica batch] admin
Linea 57: Linea 57:
   * le condizioni che attivano le transizioni sono espressioni logico-combinatorie (si esprimono utilizzando operatori logici AND, OR, NOT) che possono essere vere o false (0 o 1)   * le condizioni che attivano le transizioni sono espressioni logico-combinatorie (si esprimono utilizzando operatori logici AND, OR, NOT) che possono essere vere o false (0 o 1)
   * l'evoluzione del sistema avviene disabilitando tutti i passi a monte e attivando tutti quelli a valle((in ogni momento dovrebbe essere attivo un solo passo per volta ma nel caso del parallelismo, quando più processi vengono eseguiti in contemporanea, bisogna immaginare che il token venda diviso in più parti e poi ricomposto))   * l'evoluzione del sistema avviene disabilitando tutti i passi a monte e attivando tutti quelli a valle((in ogni momento dovrebbe essere attivo un solo passo per volta ma nel caso del parallelismo, quando più processi vengono eseguiti in contemporanea, bisogna immaginare che il token venda diviso in più parti e poi ricomposto))
-  * eventuali situazioni di emergenza (pulsante STOP, protezioni termiche, ecc.) che alterano la normale evoluzione dell'automatismo si indicano mettendo una freccia a sinistra dello stato in cui deve essere posto il sistema in caso di emergenza e specificando le condizioni che abilitano questa particolare transizione che è abilitata, e quindi possibile, qualunque sia il passo attivo nell'automatismo+  * eventuali situazioni di emergenza (pulsante STOP, protezioni termiche, ecc.) che alterano la normale evoluzione dell'automatismo si indicano mettendo una freccia a sinistra dello stato in cui deve essere posto il sistema in caso di emergenza e specificando le condizioni che attivano questa particolare transizione che è abilitata, e quindi possibile, qualunque sia il passo attivo nell'automatismo
   * il Grafcet, come ogni linguaggio di programmazione, dispone di strutture di controllo per:   * il Grafcet, come ogni linguaggio di programmazione, dispone di strutture di controllo per:
     * la realizzazione di cicli     * la realizzazione di cicli
Linea 67: Linea 67:
 {{::scelta_e_parallelismo.png|Esempi di scelta/convergenza e parallelismo/sincronizzazione}} {{::scelta_e_parallelismo.png|Esempi di scelta/convergenza e parallelismo/sincronizzazione}}
  
-Si noti come nella scelta e convergenza si abilitano due transizioni contemporaneamente con un solo passo mentre nel parllelismo si attivano più passi contemporaneamente in seguito ad una transizione (notare anche il simbolo con la doppia linea).+Si noti come nella scelta e convergenza si abilitano due transizioni contemporaneamente con un solo passo mentre nel parallelismo si attivano più passi contemporaneamente in seguito ad una transizione (notare anche il simbolo con la doppia linea).
  
 ==== Altre regole ==== ==== Altre regole ====
Linea 87: Linea 87:
  
 Nelle condizioni associate alle transizioni si può usare l'espressione 'PASSO.X', dove la X va interpretata come 1 se il passo indicato alla sua sinistra è attivo o 0 se non è attivo. Questo tipo di condizione permette di attivare una transizione in una sequenza se è attivo un determinato passo in un'altra sequenza. Sempre secondo le norme IEC 61131-3, che definiscono i linguaggi di programmazione standard per i PLC, si può usare l'espressione 'PASSO.T' per indicare implicitamente un timer che si attiva contestualmente al passo (vedi [[https://d1.amobbs.com/bbs_upload782111/files_31/ourdev_569653.pdf|documento dello standard 61131-3]]). Nelle condizioni associate alle transizioni si può usare l'espressione 'PASSO.X', dove la X va interpretata come 1 se il passo indicato alla sua sinistra è attivo o 0 se non è attivo. Questo tipo di condizione permette di attivare una transizione in una sequenza se è attivo un determinato passo in un'altra sequenza. Sempre secondo le norme IEC 61131-3, che definiscono i linguaggi di programmazione standard per i PLC, si può usare l'espressione 'PASSO.T' per indicare implicitamente un timer che si attiva contestualmente al passo (vedi [[https://d1.amobbs.com/bbs_upload782111/files_31/ourdev_569653.pdf|documento dello standard 61131-3]]).
-===== Dal Grafcet al Ladder: tecnica batch =====+===== Dal diagramma SFC al Ladder: tecnica batch =====
  
 La tecnica batch ("a lotti" in italiano) serve ad implementare un automatismo descritto da un diagramma SFC nel linguaggio KOP/ladder. Quando la si usa è buona pratica ricorrere anche alla programmazione strutturata, creando diverse funzioni/sottoprogrammi per gestire: La tecnica batch ("a lotti" in italiano) serve ad implementare un automatismo descritto da un diagramma SFC nel linguaggio KOP/ladder. Quando la si usa è buona pratica ricorrere anche alla programmazione strutturata, creando diverse funzioni/sottoprogrammi per gestire:
Linea 99: Linea 99:
 ==== Inizializzazione del sistema ==== ==== Inizializzazione del sistema ====
  
-Per l'inizializzazione dell'automatismo si può usare il merker di sistema //First Scan// (attivo solo nel primo ciclo di scansione quando la CPU passa da STOP a RUN) o un blocco organizzativo di avvio. Nel primo caso basterà scrivere una funzione che setti il merker corrispondente al passo iniziale, resettando tutti gli altri merker di passo. Di solito questa funzione si occupa anche di resettare contatori e temporizzatori e mettere la macchina in una condizione nota (di riposo o di sicurezza).+Per l'inizializzazione dell'automatismo si può usare il merker di sistema //First Scan// (attivo solo nel primo ciclo di scansione quando la CPU passa da STOP a RUN) o un blocco organizzativo di avvio (OB100 viene eseguito una sola volta all'avvio prima ancora di passare in RUN). Nel primo caso basterà scrivere una funzione che setti il merker corrispondente al passo iniziale, resettando tutti gli altri merker di passo. Di solito questa funzione si occupa anche di resettare contatori e temporizzatori e mettere la macchina in una condizione nota (di riposo o di sicurezza).
  
 ==== Evoluzione del sistema ==== ==== Evoluzione del sistema ====
sfc.1708090955.txt.gz · Ultima modifica: da admin