davide83 Inserito: 13 giugno 2011 Segnala Share Inserito: 13 giugno 2011 Ciao a tutti,devo impostare dei tempi in un pannello operatore non Siemens, che non ha la funzione integrata di conversione in questo formato.Ho impostato le variabili come word a 16 bit esempio T1: DB1.DBWT1sul SW:L DB1.DBWT1ITBT DB1.DBWT1conv......L DB1.DBWT1convSE TxU TXecc....con questa fuzione mi trovo però i tempi espressi in decimi di secondo, nel pannello devo impostare 10 per fare 1 secondo.Allora ho provato a moltiplicare per 10 così:L DB1.DBWT1*10ITBT DB1.DBWT1conv......però se sul pannello imposto più di 9 la CPU mi da un errore di conversione BCDQualè il metodo più corretto per impostare un tempo su un pannello che non ha la conversione intergrata in S5_TIME ?Grazie ciao Link al commento Condividi su altri siti More sharing options...
amed Inserita: 13 giugno 2011 Segnala Share Inserita: 13 giugno 2011 il terzultimo e il quart'ultimo bit a sinistra della tua word determinano l'unità di misura.0000 1001 1001 1001 centesimi di secondo0001 1001 1001 1001 decimi di secondo0010 1001 1001 1001 secondi0011 1001 1001 1001 decine di di secondoprima di caricare nel timer il contenuto della tua word devi fare la operazione OR tra la tua word e la costante decimale8192 che corrispone al numero binario 0010 0000 0000 0000Ciao Link al commento Condividi su altri siti More sharing options...
davide83 Inserita: 13 giugno 2011 Autore Segnala Share Inserita: 13 giugno 2011 il terzultimo e il quart'ultimo bit a sinistra della tua word determinano l'unità di misura.0000 1001 1001 1001 centesimi di secondo0001 1001 1001 1001 decimi di secondo0010 1001 1001 1001 secondi0011 1001 1001 1001 decine di di secondoprima di caricare nel timer il contenuto della tua word devi fare la operazione OR tra la tua word e la costante decimale8192 che corrispone al numero binario 0010 0000 0000 0000Ciaoe cioè?...in termini pratici (AWL) ? Link al commento Condividi su altri siti More sharing options...
amed Inserita: 13 giugno 2011 Segnala Share Inserita: 13 giugno 2011 Dovrebbe essere:L DB1.DWT1L 8192OWT DB1.DWT1SETxU Txecc.Ciao Link al commento Condividi su altri siti More sharing options...
amed Inserita: 13 giugno 2011 Segnala Share Inserita: 13 giugno 2011 Così funziona. Ho provato. CiaoL DB1.DWT1 | CONVERSIONEL 8192 |OW |T DB1.DWT1 |U E0.0 |TIMERL DB1.DWT1 |SE Tx |U Tx | USCITA COMANDATA DAL TIMER= A0.0 | Link al commento Condividi su altri siti More sharing options...
davide83 Inserita: 13 giugno 2011 Autore Segnala Share Inserita: 13 giugno 2011 ma devo convertirlo in BCD prima quindi sarà:L DB1.DBWT1ITBT DB1.DBWT1convL DB1.DBWT1convL 8192OWT DB1.DWT1L DB1.DWTSE Tx..... Link al commento Condividi su altri siti More sharing options...
batta Inserita: 15 giugno 2011 Segnala Share Inserita: 15 giugno 2011 E si può anche semplificare.Non ha senso utilizzare variabili in più solo per appoggiare i passaggi della conversione.Il codice diventa:L DB1.DBWT1ITBL 8192OWSE Tx.....Meglio poi sarebbe scrivere quel 8192 in formato esadecimale:L W#16#0000 //base tempi in centesimi di secondoL W#16#1000 //base tempi in decimi di secondoL W#16#2000 //base tempi in secondiL W#16#3000 //base tempi in decine di secondi Link al commento Condividi su altri siti More sharing options...
davide83 Inserita: 15 giugno 2011 Autore Segnala Share Inserita: 15 giugno 2011 E si può anche semplificare.Non ha senso utilizzare variabili in più solo per appoggiare i passaggi della conversione.Il codice diventa:L DB1.DBWT1ITBL 8192OWSE Tx.....Meglio poi sarebbe scrivere quel 8192 in formato esadecimale:L W#16#0000 //base tempi in centesimi di secondoL W#16#1000 //base tempi in decimi di secondoL W#16#2000 //base tempi in secondiL W#16#3000 //base tempi in decine di secondi Oktutto più chiaro, grazie 1000!! Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora