Vai al contenuto
PLC Forum


Help : Real -> S5#time - Conversione


MrC

Messaggi consigliati

Devo convertire un numero da reale ad un formato che possa accettare un timer , s5 time .

Qualcuno ha una funzione che faccia al caso mio ?

Grazie

P.S. CPU 313c

Link al commento
Condividi su altri siti


Questo e' un esempio preso pari pari da Siemens

DOMANDA

Come si converte un valore integer oppure real nel formato S5TIME?

RISPOSTA

Il requisito è che il valore fornito contenga il tempo in ms. Poi la conversione può avvenire in due passi nel modo seguente.

Per prima cosa si converte il valore fornito nel formato Double Integer e si scrive il risultato in una variabile del tipo Time.

I valori integer vengono convertiti nel formato Double Integer con il comando "ITD" ed i valori Real con "RND".

Con l'utilizzo dell'FC40 -> "Standard Library > IEC Function Blocks > FC40" (TIM_S5TI), il formato TIME viene convertito nel formato S5TIME.

Esempio

In un sorgente AWL la programmazione per una conversione INT > S5 Time ha il seguente aspetto:

VAR_INPUT

wert_i : INT ;

END_VAR

VAR_OUTPUT

zeit_s5 : S5TIME ;

END_VAR

VAR_TEMP

tmp_time : TIME ;

END_VAR

BEGIN

NETWORK

TITLE =

L #wert_i;

ITD ;

T #tmp_time;

NETWORK

TITLE =

CALL "TIM_S5TI" (

IN := #tmp_time,

RET_VAL := #zeit_s5);

END_FUNCTION

Link al commento
Condividi su altri siti

Fai attenzione solo ad una cosa: il formato TIME e' un doppio intero (4 byte) che esprime il tempo in millisecondi.

Se il tuo dato di partenza esprime la durata desiderata del timer in secondi, minuti oppure ore ricordati di fare le opportune moltiplicazioni.

:blink:

Link al commento
Condividi su altri siti

Se hai una base tempi fissa e devi fare delle operazioni matematiche io ho fatto semplicemente cosi:

Esempio di somma di 2 secondi ad un tempo impostato:

L DB1.DBW 10 //Carica tempo attesa stacco pezzo in decimi sec.

L W#16#FFF //Carica 1 nelle prime tre tetradi

UW //And delle word per eliminare base tempi

BTI //Trasforma in intero

L 20 //Carica offset di 20 ds.

+I //Somma

ITB //Ritrasforma in BCD

L W#16#1000 //Carica base dei tempi

OW //Aggiungila alla word

T LW 36 //Appoggia su temporanea

.......

U M 53.6 //Se sformatura in corso su banco

L LW 36 //Carica base dei tempi

SE T 7 //Setta timer attesa stacco pezzo

E' un intero e non un reale, ma il ragionamento e' lo stesso.

Ciao.

Link al commento
Condividi su altri siti

se vuoi un suggerimento invece di diventare deficente con i timer normali prova ad unsare quelli software

SFB4 tanto per capirci.

Il tempo è in millisecondi lo manipoli come meglio credi.

fai prima.

io di solito faccio così poi vedi tu se vuoi diventare deficente con le conversione.

Link al commento
Condividi su altri siti

Grazie , non sapevo neanche esistessero !!!

Lunedì li provo e ti faccio sapere , comunque sono riuscito a fare le conversioni ,

grazie a tutti x l'aiuto !!!

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