Vai al contenuto

Linguaggio SFC, variabile temporale di step e domanda su azioni

Home Forum Programmazione IEC 61131 (LogicLab) Linguaggio SFC, variabile temporale di step e domanda su azioni

Stai visualizzando 4 post - dal 1 a 4 (di 4 totali)
  • Autore
    Post
  • #60499
    alpic84
    Partecipante

    Per impratichirmi con logicLab 5 ho provato a scrivere un banale programma SFC: da uno stato Spento passo dopo 3 secondi ad uno di Acceso in cui ho un motore acceso, seguito poi, dopo 1 secondo a quello in cui ho due motori accesi. Dopo 5 secondi torno a OFF.

    L’intenzione era quella di inserire un’espressione nelle transizioni sfruttando la variabile timer dello step usando la sintassi, per esempio, Spento.T>=T#5s, come farei scrivendo su carta o sul software che ho usato per un certo periodo.

    Alla compilazione però ricevo questo messaggio di errore:

    error A4097:  Spento=> Object not found

    che si ripete per ogni transizione. Ho guardato sul manuale e sul forum, ma non sono riuscito a trovare una soluzione.

    Ho anche due domande a cui non ho trovato risposta

    Per ogni stato è possibile inserire una sola azione di un certo tipo?

    Sono supportati solo i tipi N  e P nei diagrammi SFC di logiclab?

    #60525
    Sergio Bertana
    Amministratore del forum

    Non utilizzo mai i linguaggi grafici, se guardi tutti gli esempi che abbiamo sia nelle knowledge che nel forum sono in ST.

    Il linguaggio testuale ha il grosso vantaggio di poter essere facilmente manipolato, copiato in parti da un programma ed incollato in un altro. Inoltre con semplici passaggi ssi può passare da LogicLab a CODESYS.

    Un esempio di programma in SFC lo puoi trovare in questo topic.

    Per aiutarti ho girato la domanda ad Axel che sono gli sviluppatori dell’ambiente di sviluppo LogicLab ed ecco la loro risposta.

    Ovviamente Spento deve essere dichiarato.

    Dentro le azioni puoi chiamare ciò che ti pare, es. funzione ma è possibile associare solo un azione per N (finché lo step è attivo) oppure P (pulse, quando lo step viene attivato).

    Dopodiché assegni le condizioni di uscita dalle transazioni, possono essere del codice o delle variabili booleane.

    #60529
    alpic84
    Partecipante

    Prima di tutto grazie per aver risposto e aver chiesto approfondimenti alla AXEL.

    Scrivi che “Spento deve ovviamente essere dichiarato”. Spento però è uno stato e sarà pure una variabile strutturata.. ma di quale tipo?

    Per quanto riguarda le azioni set/reset o latch/unlatch che dir si vogliano, o le time limited o le delayed si può fare qualcosa o è necessario scrivere codice in testo strutturato per implementarle? Nell’interfaccia non vedo opzioni, perciò immagino che debba essere così.

     

    #60531
    Sergio Bertana
    Amministratore del forum

    Non ho ben chiaro quello che stai realizzando, non sono un esperto di SFC quindi scusa il mio programma banale, ho realizzato il programma SFCExample (Download).

    Step 0: Attiva l’uscita 0 del modulo CPU SlimLine ed attende 2 secondi.
    Step 1: Disattiva l’uscita 0 del modulo CPU SlimLine ed attende 2 secondi.

    Come vedi dallo screenshot ho definito la variabile TDelay di tipo timer eTON, e nello step 0 eseguo l’azione SetDo00 che esegue il timer e sulla transizione ne controllo l’uscita Q. Nello step 1 eseguo l’azione ResetDo00 che esegue il timer e sulla transizione ne controllo l’uscita Q.

    Nota importante, come vedi nelle due azioni l’ingresso IN del timer è gestito con lo stato dell’uscita, questo perchè occorre che il FB veda disattivarsi IN per poi sulla attivazione gestire una nuova temporizzazione.

Stai visualizzando 4 post - dal 1 a 4 (di 4 totali)
  • Devi essere connesso per rispondere a questo topic.