Vai al contenuto

Orologio programmatore festività con lettura da file CSV

Home Forum Programmazione IEC 61131 (LogicLab) Orologio programmatore festività con lettura da file CSV

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

    Avrei la necessità di poter comandare un contatto NC che durante i giorni festivi (1/1, 6/1, 1/5, 2/6 ecc.. impostati precedentemente) rimanga aperto per l’intera giornata. Cosa potrei utilizzare, ci sono degli esempi ?

    #39986
    Sergio Bertana
    Amministratore del forum

    Con i nostri  moduli CPUSlimLine è possibile facilmente realizzare quello che desideri. Il FB SysETimeToDate ti ritorna il valore del giorno, mese, anno, ora, minuti, secondi attuali, puoi in modo semplice da neofita della programmazione utilizzare le comparazioni per comparare il valore con le date da te definite. Naturalmente ci sarà una comparazione per ogni data, ecco un esempio in ST.

    DateTime(); (* Date/Time value *)
    Festivity:=FALSE; (* Festivity flag *)
    IF ((DateTime.Day = 1) AND (DateTime.Month = 1)) THEN Festivity:=TRUE; END_IF;
    IF ((DateTime.Day = 6) AND (DateTime.Month = 1)) THEN Festivity:=TRUE; END_IF;
    IF ((DateTime.Day = 15) AND (DateTime.Month = 8)) THEN Festivity:=TRUE; END_IF;

    In questo modo quando desideri cambiare le date devi modificare il programma. Puoi anche usare al posto dei valori predefiniti da programma delle variabili tampone e modificare le variabili da debug oppure da pannello operatore, ma dovresti già a priori assumere un numero di confronti. Molto più versatile è invece gestire le date tramite un file CSV, ogni volta che vuoi modificare le date ti basterà trasferire via FTP il nuovo file nel sistema.

    Sono partito dal FB riportato in questo topic per realizzare un nuovo FB che gestisce la lettura di un file CSV e attiva il comando se la data odierna è definita nel file, ecco il listato del FB. Il FB è volutamente ridotto al minimo, viene eseguita solo la ricerca di giorno/mese, deve servire da stimolo ai clienti per realizzare il proprio FB con gestione dell’anno, aggiungendo anche gli orari ecc.

    Fornisco l’intero progetto LogicLab con un programma in FBD (Screenshot), che istanzia il blocco funzione in modo da poterne testare il funzionamento. Per completezza nel progetto (Ramo 0001) ho inserito anche l’aggiornamento automatico del real time clock con un server NTP su Internet in modo da avere sempre la data corretta. Nel ramo 0002 attivando Di00CPU viene eseguito il FB che attiverà Do00CPU se è un giorno festivo, nella tua richiesta se vuoi disattivare l’uscita inserirai un NOT (Download progetto con file CSV di esempio).

    #39990
    Fabio
    Partecipante

    Buongiorno, volevo provare il programma di esempio e sono in possesso di uno SlimLine  con codice MPS053A110 con programma LogicLab 2.5.0.0 e chiedevo se questo può andare bene per fare le prove. Quando carico il progetto ottengo questo “errore”:

    Identificativo del sistema non corrispondente: progetto corrente ‘Mps053_XTarget_11_0’, sistema ‘Mps053_XTarget_12_0’.
    Caricamento immagine del target .. completato.

    Confermo comunque con Si ed il programma si apre. Il dispositivo quando sarà programmato non dispone di nessuna connessione ad Internet per la verifica dell’ora attuale, questo è un problema ?
    Per quanto riguarda le festività le date saranno sempre le stesse l’unico “problema” sarebbe il giorno della Pasquetta.

    #39991
    Sergio Bertana
    Amministratore del forum

    In realtà LogicLab ti segnala una warning, cioè un avviso, nel progetto è definito un target diverso dal tuo, basta che nel menù Project?Select Target tu selezioni il sistema Mps053 XTarget 12.0. Comunque il programma funziona correttamente anche con questa warning.

    La connessione ad Internet per l’aggiornamento dell’ora è un optional, puoi tranquillamente cancellare il ramo FBD che lo gestisce. Il tuo sistema ha il real time clock che mantiene data/ora anche allo spegnimento. Se le date sono sempre le stesse, per il calcolo della data di Pasqua puoi utilizzare il blocco funzione riportato in questo topic.

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