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




Data E Ora - trasforma n° giorni in data


Messaggi consigliati

Inserito:

Buongiorno, devo leggere data e ora da una cpu 300 e trasferirla ad una stazione WCC. Attraverso la SFC0 (read_clock) e le fc6 ed 8 leggo la data e ora della cpu e la scompongo in data e time. Il problema è che la data è il n° di girni trascorsi dal 1-1-1900 ed invece io ho bisogno del giorno attuale, per confrontarlo con un dato digitato dall'operatore.

Ho provato a scrivere una funzione VBscript nel WCC che faccia il calcolo, ma non riesco ad uscirne per via degli anni bisestili che incasinano tutto.

Quacuno conosce una formula o un sistema per ricavare il gg - mm - aaaa partendo dal n° di giorni trascorsi appunto da un determinata data

Grazie a tutti

:o


Inserita:

Ciao,

io utilizzo un metodo più "spartano": in OB1 il parametro temp "OB1_DATE_TIME" contiene in formato Date_And_Time la data e l'ora attuali di richiamo dell'OB1 stesso; così facendo hai quello che ti interessa con la precisione del tempo di ciclo del sistema.

Buon lavoro

Valter

Inserita: (modificato)

Dipende come lo leggi, su protool basta che hgli dici che il formato è DATE anzichè INT, penso che su WinCC sia uguale.

Modificato: da MarcoEli
Inserita: (modificato)

Concordo con MarcoEli, basta appoggiare su DB il valore letto, dichiarando la variabile in tipo Date_time; poi su WinCC crei una variabile che punta a quella e hai già la conversione fatta. Poi se vuoi utilizzare gli script per dei confronti usa due variabili dello stesso tipo. comunque io ti consiglio di fare il confronto nel PLC.

Modificato: da GGP
Inserita:

Che tipo di variabile devo usare nel wcc ? il formato delplc date_time , contiene il n° di giorni trascorsi dal 1-1-90, da questo io debbo ricavare 3 variabili gg , mm , aaaa.

Per quanto riguarda il confronto, lo debbo fare su wcc per forza, per dare allarmi su operazioni che l'operatore sta facendo all'esterno del programma plc, ma utilizzando la data del plc stesso.

Questo perchè il plc sta facendo dei cicli di lavoro a tempo e devo allarmare l'operatore che le operazioni richieste dall'opeartore che potrebbero essere state già state superate dal ciclo di lavoro.

Inserita:

Se cerchi nel manuale di STEP7 troverai la composizione di una variabile DATE_AND_TIME, al suo interno trovi già le informazioni che tu vuoi, basta saperle prendere:

Il tipo di dati Date_And_Time viene memorizzato in formato BCD:

Byte ContenutoArea

0Anno1990 ... 2089

1Mese01 ... 12

2Giorno1 ... 31

3Ora0 ... 23

4Minuto0 ... 59

5Secondo0 ... 59

62 MSD di ms00 ... 99

7 (4 MSB)LSD di ms0 ... 9

7 (4 LSB)Giorno settimana1 ... 7 (1 = domenica)

Così se tu nel PLC vai a prenderti a byte ciò che ti serve e te lo appoggi su delle variabili potrai fare tutto ciò che vuoi per le tue ricerche.

Inserita:

grazie 1000 a GGP, mi è stato utilissimo !

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