Vai al contenuto
PLC Forum


Ora Cpu in intero....


Messaggi consigliati

Inserito:

Gentilissimi,

S7_300 programmata con tia portal v13.

Leggo l'ora del PLC con il blocco funzioni SFC1 e lo metto in una area dati db con il formato DT.

Leggo tranquillamente.

Pero' ora vorrei puntare il singolo byte per estrarre anno,mese,ora,minuti,secondi.

Che blocco uso? oppure l'istruzione in AWL quale sarebbe? o difficoltà a fare il puntatore.

Grazie

sfc1 DT.png


Operational Amplifier
Inserita:

Se guardi nel DB dove hai configurato il dato in formato DTL vedrai che è una struttura di variabili e troverai già le informazioni che ti servono.

Buon Lavoro

Inserita:

infatti...non ho parlato di DTL ma di DT che non crea una struttura gia' divisa ma e' in formato bcd.

 

Operational Amplifier
Inserita:

Mi puoi indicare perchè non utilizzi il formato DTL....?  ^_^

Inserita:

perché in formato DTL non ce' per la 300 nel Tia Portal V13

Operational Amplifier
Inserita:

Bene...lo devi scomporre, appoggia il dato su una variabile temporanea di un FC e poi leggi il singolo byte puntando all'area, sono 8 Byte.

 

DT.png

Inserita:

perfetto..gia' fatto tutto..e la tabella che mi hai girato lo gia' vista...ma non so come creare un puntatore per leggere solo la data o l'ora

Inserita:

la funzione SFC1 lato tia si chiama RD_SYS_T

cosa dovrei scrivere giu' per fare il puntatore

 

ob35 data time.png

Operational Amplifier
Inserita:

Ti ho messo l'esempio è uguale cambia solo l'istruzione RD_SYS_T copialo e prova.

Inserita:

sto' gia' tentando di copiarlo...ma mi manca il CDT che io non ho.

e inoltre vorrei sapere sulla prima righa dell'anno...cosa ci metto tu hai messo LB0 a cosa si riferisce?

 

Operational Amplifier
Inserita:

Aspetta facciamo un passo indietro...vedo che non stai capendo l'esempio che ti ho allegato.

Quel CDT che vedi nel mio esempio per te è l' OUT (del blocco di sistema) e lì metti una variabile temporanea di tipo DT (sopra nell'albero di step7), fino a quì non dovresti avere problemi giusto?

Inserita:

si perfetto ora o fatto una prova e riesco a leggere tutto.

Non sto' capendo perché mi da' in giallo la parte LB

 

Operational Amplifier
Inserita:

Perchè con il Tia Portal accere in quel modo non è il massimo devi usare lo slice access digita il nome della variabile temporanea poi fai .b di byte

Operational Amplifier
Inserita:

READ_OROLOGIO.b0....b1...b2 ecc.

  • 4 months later...
Inserita:

Io lo ho fatto in questo modo e ti garantisco che funziona, provalo anche tu.

Fai attenzione che la variabile CDT è temporanea ed è definita come date_and_time.

 

      SET

  

      CALL  "READ_CLK"
       RET_VAL:=#error
       CDT    :=#readDateAndTime

 

 

      LAR1  P##readDateAndTime

 

/// Lettura dell'anno

      L     B [AR1,P#0.0]
      T     "DB_PANNELLI_PEZZI".READ_DT.ANNO

/// Lettura del mese

      L     B [AR1,P#1.0]
      T     "DB_PANNELLI_PEZZI".READ_DT.MESE

/// Lettura del giorno

      L     B [AR1,P#2.0]
      T     "DB_PANNELLI_PEZZI".READ_DT.GIORNO

/// Lettura dell'ora

      L     B [AR1,P#3.0]
      T     "DB_PANNELLI_PEZZI".READ_DT.ORA

/// Lettura dei minuti

      L     B [AR1,P#4.0]
      T     "DB_PANNELLI_PEZZI".READ_DT.MINUTI

/// Lettura dei secondi

      L     B [AR1,P#5.0]
      T     "DB_PANNELLI_PEZZI".READ_DT.SECONDI

/// Lettura del giorno della settimana

      L     B [AR1,P#7.0]
      L     B#16#F
      UW                                // And a parola a 16 bit
      T     "DB_PANNELLI_PEZZI".READ_DT.WEEKDAY
 

Inserita:

Se provi a fare una ricerca nel forum l'argomento è stato trattato varie volte.
Addirittura se non erro, il buon batta aveva messo a disposizione una libreria che spacchettava il formato DT.

 

Comunque in sostanza i metodi descritti sopra dovrebbero andare, si tratta solo di scomporre il DT andando a leggere i singoli byte come descritto dalla struttura che trovi nella guida Step7

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