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




Piccolo Programma Con Plc - ricavare data e ora


Messaggi consigliati

Inserito:

Salve a tutti, mi chiedevo se qualcuno di voi sa spiegarmi come estrarre data e ora con i blocchi standard siemes dall CPU. Nel progetto ho usato una CPU 315 2 DP.

In effetti La data e il giorno sono già riuscito ad estrarli trapite i blocci Siemens ( FC 6 e Fc 7) il mio problema è come ricavare l'ora per poi elabolarla nel programma.

Grazie mille a tutti.


Matteo Montanari
Inserita:

Da . in linea Siemens:

Tipo dati

DATE_AND_TIME

Lunghezza (bit)

64

Formato

Anno mese giorno - h:mm:ss:ms

oppure

DT

Esempi di formato

DT#1995-02-02-08:30:01.999

Il tipo di dati Date_And_Time viene memorizzato in formato BCD:

Byte Contenuto Area

0 Anno 1990 ... 2089

1 Mese 01 ... 12

2 Giorno 1 ... 31

3 Ora 0 ... 23

4 Minuto 0 ... 59

5 Secondo 0 ... 59

6 2 MSD di ms 00 ... 99

7 (4 MSB) LSD di ms 0 ... 9

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

---

Tipo dati

TIME

Lunghezza (bit)

32

Formato

Intervallo con segno:+ o - giorni, ore, minuti, secondi, millisecondi

Esempi di formato (valore limite superiore ed inferiore)

Max. T#+24d20h31m23s647ms

Min. T# -24d20h31m23s647ms

Non è necessario indicare tutte le unità di tempo (p. es.: T#5h10s è valido).

Se viene indicata un'unica unità, il valore assoluto di giorni, ore, e minuti, non può superare i valori limite inferiori e superiori.

T# -65535 e T#+65535 rappresentano il valore limite superiore ed inferiore di secondi e millisecondi.

Se viene indicata più di un'unità di tempo, non si potranno rispettivamente superare:

· le 23 ore

· i 59 minuti

· i 59 secondi

· i 999 millisecondi.

Avvertenza: Il tipo di dati TIME viene memorizzato quale numero intero con segno in millisecondi col formato di complemento a due.

---

Tipo dati

DATE

Lunghezza (bit)

16

Formato

Anno mese giorno

Esempi di formato

Min. D#1990-01-01

Max. D#2168-12-31

-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-

spero che ti sia chiaro, in caso contrario:

      CALL  SFC    1
       RET_VAL:=#Aux_INT
       CDT    :=#DataOra (DBW0 IN FORMATO DATE_AND_TIME)
//;
// Trasformazione tutto da BCD a decimale
//;
// SECONDO
//;
      L     DBB   5
      BTI   
      T     #Secondo
//;
// MINUTO
//;
      L     DBB   4
      BTI   
      T     #Minuto
//;
// ORA
//;
      L     DBB   3
      BTI   
      T     #Ora
//;
// GIORNO
//;
      L     DBB   2
      BTI   
      T     #Giorno
//;
// MESE
//;
      L     DBB   1
      BTI   
      T     #Mese
//;
// ANNO
//;
      L     DBB   0
      BTI   
      T     #Anno
      L     4
      MOD   
      L     0
      ==I   
      =     #AnnoBisestile
//;
// Calcolo del giorno della settimana
//;
      L     DBB   7
      L     B#16#F
      UW    
      BTI   
      T     #GiornoSettimana
//;
// Domenica
//;
      L     #GiornoSettimana
      L     1
      ==I   
      =     #Domenica
//;
// Lunedi
//;
      L     #GiornoSettimana
      L     2
      ==I   
      =     #Lunedi
//;
// Martedi
//;
      L     #GiornoSettimana
      L     3
      ==I   
      =     #Martedi
//;
// Mercoledi
//;
      L     #GiornoSettimana
      L     4
      ==I   
      =     #Mercoledi
//;
// Giovedi
//;
      L     #GiornoSettimana
      L     5
      ==I   
      =     #Giovedi
//;
// Venerdi
//;
      L     #GiornoSettimana
      L     6
      ==I   
      =     #Venerdi
//;
// Sabato
//;
      L     #GiornoSettimana
      L     7
      ==I   
      =     #Sabato

comunque selezionando la Funzione di sistema SFC1 e premendo F1 ti appare l'., in fondo puoi visualizzare un codice in AWL di un esempio di utilizzo delle funzioni per leggere/scrivere la data ed ora

Inserita:

Grazie mille per l'informazione. Sei stato "PERFETTO" nella spiegazione

GRazie mille!!!

Matteo Montanari
Inserita: (modificato)
Sei stato "PERFETTO" nella spiegazione

Nessuno è perfetto, firmato Nessuno

ho solo cercato di darti qualche dritta...

per le cose non troppo complesse e soprattutto per le funzioni standard presenti nel PLC, l'. in linea è molto utilie.

occorre prendere questi piccoli mattoncini, metterli insieme l'uno con l'altro e costruire qualcosa di più grande.

se hai una CPU puoi provare quello che stai facendo, rendenti conto di cosa modificare e dove (riesci a farlo anche con il simulatore).

come diceva qualcuno "un lungo cammino comincia sempre da un piccolo passo"

Modificato: da keosmm

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