lock Inserito: 25 ottobre 2002 Segnala Inserito: 25 ottobre 2002 Il mio problema è riuscire ad implementare in AWL un multiplexer software che, data in ingresso una WORD con un valore compreso tra 0 e 31, riesca a valorizzare opportunamente un DOUBLE, ovvero "alzare" in esso il bit corrispondente.Esempio:nella WORD c'è il valore 17 (0000000000010001)il multiplexer deve riuscire ad alzare il 17° bit del DOUBLEnel DOUBLE si deve dunque verificare questa situazione:(00000000000000010000000000000000)Ho anche un altro problema: non so come effettuare una operazione di elevamento a potenza, sempre utilizzando AWL.Grazie in anticipo a tutti quanti vorranno rispondere.Lock.
Federico Milan Inserita: 25 ottobre 2002 Segnala Inserita: 25 ottobre 2002 Provo a farlo al momento al limite correggi evventuali errori hai una word giusto ? e la word deve puntarti al bit di una double, bene è banalissimo ecco, ipotiziamo che la word sia in un DB20.DBW0, e la funzione abbia una variabile temporanea che chiamo Punt_Double di tipo double. Diciamo che in DB20.DBW 2 ci sia l'indirizzo al quale si vuole realizzare il multiplexer ...L DB20.DBW2 // Carico l'indirizzo della DWORD ...ITD // trasformo indoubleL DW#16#10 // *D // Trasformo il numero in puntatoreL DB20.DBW0 // Carico l'offset del bit interessatoITD // +D // T Punt_Double // // quindi se DBW0 = 5 e DBW2 = 2oppure AUF DB123SET=DBX[Punt_Double] // DBX5.2In effetti non mi sembra che esisti un comando di elevamento a potenza ...se hai numeri interi usa la tecnica di shift e somme ... se hai numeri reali potresti divertirti con le propietà dei logaritmi exp(a*log() = b^a ciao
lock Inserita: 25 ottobre 2002 Autore Segnala Inserita: 25 ottobre 2002 (modificato) Grazie mille Federico, sei sempre gentilissimo.Lock. Modificato: 9 ottobre 2003 da NULL
andrea.fa Inserita: 25 ottobre 2002 Segnala Inserita: 25 ottobre 2002 Nella libreria di conversione Ti->S7 trovi la fc DECO che mi pare faccia esattamente ciò che vuoiAndrea
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