Water Report Share Posted June 19, 2012 ciao a tutti, questo linguaggio è stupendo e articolato ... infatti mi sfugge qualcosa e anche di più! sto realizzando una sequenza che servirà ad azionare una serie di uscite ecc. il tutto deve funzionare se la "catena" è ok (True) in tutti i suoi passi il linguaggio SFC esegue passo passo il programma e non si preoccupa, ovviamente, dei passi precedenti, perfetto!! ... ma se uno dei passi precedenti è legato ad una sicurezza e questa interviene, come faccio a resettare la sequenza e ripartire da capo? (solitamente uso il linguaggio CFC) ho notato che se interviene una sicurezza, anche resettando il passo, il programma non "riparte", per sicurezza intendo comunque tutto ciò che non implica salute e rischio agli operatori Giuseppe Quote Link to post Share on other sites
fedeg81 Report Share Posted June 20, 2012 Ciao, da quello che so, l'sfc non ti consente di avere due transizioni sotto lo stesso blocco, quindi, aggiungi un ramo parallelo con un blocco che valuti la sicurezza che ritieni necessarie e successivo jump a inizio programma (ma è veramente "sgrammaticata" come soluzione.....). Per eccitare uscite (o variabli) a seguito di condizioni, io userei una macchina a stati con un controllo degli allarmi che ripristini la condizione di partenza e azzeri la macchina a stati. Oppure la gestione degli "exceptions" di Somachine con l'error handler...e una macchina principale in sfc che gestisca le eccezioni...io uso questa... (non nomino la logica il ladder perchè non la utilizzo...non mi piace..) Spero di esserti stato utile... Ciao Fede Quote Link to post Share on other sites
elettrificato Report Share Posted June 20, 2012 prova a cercare nella guida in linea reset SFC, dovrebbe esserci una funzione che permette di resettare un diagramma SFC e riportarlo nella fase impostata come iniziale nel caso si attivi una condizione nel tuo caso l'emergenza, con gli altri ambienti di sviluppo Schneider (p.e. Unity) esiste. ciao Quote Link to post Share on other sites
Water Author Report Share Posted June 20, 2012 grazie per le risposte, come dicevo il linguaggio SFC è stupendo ma poco documentato anche sulla guida in linea, il problema mio è di "sintassi" cioè cosa scrivere all'interno del codice che sia CFC ST SFC non ha importanza ci sono alcuni aspetti non documentati ma importanti, per esempio ogni programma SFC ha delle proprietà che lo differenziano di molto, in pratica ho scoperto che bisogna flaggare e dichiarare queste impostazioni per poi usarle all'interno del programma, quindi riuscire a resettare il programma e farlo ripartire se interviene una sicurezza, attualmente per resettare prima dichiaro e poi uso questo: "SFCTip" ma non so se è la strada giusta buona l'idea di gestire gli errori separatamente con un programma dedicato se trovo una soluzione interessante la posto grazie ancora Giuseppe Quote Link to post Share on other sites
biros66 Report Share Posted June 20, 2012 PROGRAM a_Cesoia VAR_INPUT // Azzeramento SFC SFCInit : BOOL; END_VAR VAR END_VAR poi richiami il bit di azzeramento task SFC quando ti occorre, ad esempio: a_Cesoia.SFCInit := Manuale; ciao Quote Link to post Share on other sites
Water Author Report Share Posted June 21, 2012 grazie per la dritta biros696!! non so perchè ma mi ostinavo ad impostare a true la variabile con il risultato che si bloccava su quel passo, comunque ero riuscito a farlo comunque "girare" settando la variabile SFCTip ...mah .. purtroppo l'. in linea non affronta questi argomenti e risulta difficile se non hai mai utilizzato questo linguaggio ciao e rigrazie Giuseppe Quote Link to post Share on other sites
Water Author Report Share Posted June 22, 2012 per chi fosse interessato, ho inserito nella sezione download ed in questa categoria, un manuale Codesys tradotto in italiano, considerando la scarna guida riguardo questo linguaggio rappresenta un valido aiuto un grazie a Matteo Sartini (unibo) che la resa disponibile in rete Quote Link to post Share on other sites