Vai al contenuto
PLC Forum


Visualizzare Un Tempo Simatic


mazzucconi

Messaggi consigliati

Buongiorno a tutti,

io vorrei sapere se è possibile convertire un tempo in formato simatic in decimale.

Ho questa necessità in quanto il programma di supervisione non riconosce il formato Siemens.

Grazie

Link al commento
Condividi su altri siti


c'e' l'istruzione BTI che converte un numero bcd in intero

Il tempo simatic S5Time e' un bcd ....

Se ti interessa ti posto un codice che ho scritto per convertire da un numero reale a s5time

Ci lavori un po intorno , modifichi ed ottieni quello che vuoi ;)

....posti il codice , magari a qualcuno puo interessare

L #Tempo_R

L 1.000000e+001

*R

TRUNC

T #App

L #App

DTB

L W#16#1000

OW

T #Tempo_S

Link al commento
Condividi su altri siti

Buongiorno a tutti,

ho utilizzato il codice di Walterword e posto il risultato ottenuto.

L #tempo_simatic

BTD

T #appoggio_tempo // (in doppia W)

L #appoggio_tempo

L L#1000

-D

T #risultato_intero // (in doppia W)

L #risultato_intero // (in doppia W)

DTR

L 1.000000e+001

/R

T #risultato_decimale

Grazie.

Link al commento
Condividi su altri siti

Così funziona solo se la base tempi è di 100ms.

Un tempo S5Time è così formato:

i 3 digit meno significativi (bit da 0 a 11) contengono il valore in BCD (da 0 a 999)

i bit 12 e 13 contengono la base tempi, secondo la seguente codifica:

00 = base tempi 10 ms

01 = base tempi 100 ms (ecco perché il tuo esempio funziona solo con questa base tempi)

10 = base tempi 1000 ms

11 = base tempi 10000 ms

Link al commento
Condividi su altri siti

si lo sappiamo batta ;)

il 1000 in esadecimale altro non e' che la rappresentazione degli ultimi due bit del formato da te esposto

Comunque bene che si sviluppino le cose in quesot modo , ci si aiuta , si parte da uno spunto , si raggiunge un target e si posta il codice per

i meno fantasiosi .

Bene anceh batta che ha motivato nei dettagli :)

Link al commento
Condividi su altri siti

se invece di mettere in or 1000 si mette 2000 si ottiene un'altra base dei tempi

Sela necessità e' quella di poter avere ampia scelta , basta scrivere un funzione fc che in base al tempo desiderato

selezioni 1000 piuttosto che 2000 , non e' un problema , ma una finezza .....

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