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




Imposta ora da pannello


Messaggi consigliati

Inserito:

Buongiorno mi capita spesso che la CPU rimaGa senza alimentazione per lungo tempo al riavvio l'ora e la data non sono più quelli attuali, quindi mi dovrei collegare con tia portal e aggiornarli. Vorrei poTer inserire la data e l'ora da pannello e aggiornarla senza dovermi collegare con tia portal. Come posso fare? Grazie mille 


Inserita:

Cerca nelle funzioni di data/ora, e vedrai che la soluzione la trovi.

Inserita:

Grazie batta volevo un esempio pratico giusto perché non ho aggiornato mai ora e data da pannello ma sempre con tia. Grazie ancora 

Inserita: (modificato)

Non è che ci sia molto da dire.
In un DB crei una variabile di tipo DTL, che trasporti anche sul HMI, e dove andrai ad impostare la data e l'ora.

Nel HMI aggiungi un pulsante che comanda una variabile booleana che, nel PLC, andrà ad attivare l'istruzione WR_SYS_T.
A WR_SYS_T passi data e ora impostati da HMI.
All'uscita di WR_SYS_T puoi anche collegare il reset della variabile booleana, in modo da eseguire l'operazione una sola volta alla pressione del tasto del HMI.

 

L'unica cosa a cui dovrai fare attenzione, è che il PLC gestisce due orari: ora di sistema, e ora locale.
L'ora di sistema è riferita al fuso orario 0.
L'ora locale tiene conto sia del fuso orario selezionato, sia dell'eventuale ora legale, se gestita. Impostazioni questa da fare nell'hardware della cpu.

In scrittura, invece, c'è solo l'ora di sistema, quindi, da data/ora impostata da pannello operatore, prima di passarla a WR_SYS_T, dovrai sottrarre le ore del fuso orario e l'eventuale ora legale. Per la sottrazione del tempo, puoi usare l'istruzione T_SUB.

 

Esempio:

immagine.png.0d694cc8770febce83f0bc21049dbdcc.png

 

In testo strutturato:

IF "MyDB".SetDateTime THEN
    "MyDB".SetDateTime := FALSE;
    #tmpDateTime := T_SUB(IN1 := "MyDB".DateTime, IN2 := T#1H);
    #valret := WR_SYS_T(#tmpDateTime);
END_IF;

 

In alternativa, se non ti interessano fuso orario e ora legale, nella configurazione hardware della cpu imposti fuso orario zero e disabiliti l'ora legale.
In questo modo, ora di sistema e ora locale coincidono.

Per quanto riguarda l'ora legale poi, sembra che, in Europa, dal prossimo passaggio all'ora legale, dopo non si tornerà più all'ora solare.

 

Per impostare da pannello data e ora della cpu ci sono anche altri metodi, ma questo è il più semplice.

Modificato: da batta
Inserita:

Grazie mille Batta per la tua disponibilità. Quindi una volta che sul pannello, nel campo "MyDB.DateTime" imposto data e ora, clicco sul pulsante "MyDB.SetDateTime" e sulla CPU andrò ad impostare (scrivere) l'ora e la data inserita in DateTime, giusto?. Grazie mille ancora.

Inserita:

complimenti batta per la precisione!

complimenti batta per la precisione!

Inserita:

Grazie mille Batta per la tua descrizione dettagliata e per la tempestiva disponibilità.

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...