Vai al contenuto
PLC Forum


Op7 E Conversione Variabili - da INT a S5T


smsmsms

Messaggi consigliati

Tramite un OP7 l'operatore inserisce dei tempi (es. 100 = 100 msec ecc...)

Ora, mi interesserebbe convertire tale valore intero in S5T per associarlo ad un timer.

Ho provato a definire il DB su cui vado a scrivere di tipo S5T e da pannello (utilizzando il simbolico)

mi crea una variabile di tipo timer ma quando scrivo ottengo un valore non conforme a quello da me atteso.

Qualcuno ha qualche idea? La conversione deve essere effettuata sul pannello o sul plc? Sto utilizzando una 314

e non ho trovato alcun FC/FB di sistema per convertire un valore INT in S5T?

Grazie

Link al commento
Condividi su altri siti


Ti consiglio di guardare il manuale di programmazione di S7, e noterai di come è composto la variabile S5T, mi sembra che i primi 12 bit sono il valore del timer in bcd, gli ultimi due bit indicano il formato del tempo. Comunque per essere sicuro di questo guarda nel manuale

Ciao

Link al commento
Condividi su altri siti

Matteo Montanari
Ho provato a definire il DB su cui vado a scrivere di tipo S5T e da pannello (utilizzando il simbolico)

mi crea una variabile di tipo timer ma quando scrivo ottengo un valore non conforme a quello da me atteso.

dipende dal valore che ti attendi tu? e diepnde se il valore che ti attendi è quello che "gusta" anche al PLC.

la procedura che hai descritto è corretta e normalmente si utilizza quella per scrivere un valore al timer. conta che la variabile è "definita" in millisecondi.

in alternativa utilizza quello che è scitto nel post che ti hanno suggerito:

L valore tempo (INT dal tuo pannello)

ITB // converti intero in BCD

L w#16#2000 // base tempo in secondi (in questo caso)

( oppure

L w#16#0000 // base tempo in secondi * 0.01 (centesimi di secono)

L w#16#1000 // base tempo in secondi * 0.1 (decimi di secondo)

L w#16#2000 // base tempo in secondi * 1 (secondi)

L w#16#3000 // base tempo in secondi * 10

i timer non hanno una risoluzione inferiore ai 10 millesimi di secondo)

OW // esegui l'OR di word

T preset temporizzatore // otterrai il tuo preset

Modificato: da keosmm
Link al commento
Condividi su altri siti

Se definisci la variabile come "TIMER" anziche' INT, ci pensa l'OP7 a scrivere la variabile in modo corretto. La cosa che non poi cambiare e' la rappresentazione sul display, che e' sempre in secondi; per immettere 100ms devi scrivere 0.1, per immettere 1 ora deviscrivere 3600 :blink:

Link al commento
Condividi su altri siti

Grazie per le info. Ho guardato il links di jumpier e seguito i suggerimenti postati dopo ed ho risolto.

Il DB lo lascio in INT e poi mi faccio la conversione in BCD.

Grazie e ciao

Link al commento
Condividi su altri siti

  • 1 year later...

Scusate l'ignoranza,

mi trovo nella condizione di visualizzare su un OP7 il valore di un tempo s5t da un acpu s7-315.

Che tipo di conversione formato devo utilizzare?

Avevo pensato di prendere il valore del s5t e fare una or ex a word x rimuovere il valore base tempi e poter visualizzare almeno il numero da 32nnn a zero che scorre.

Qualcuno mi puo' dare qualche dritta?

Grazie in anticipo.

Link al commento
Condividi su altri siti

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