lock Inserito: 6 novembre 2002 Segnala Inserito: 6 novembre 2002 Vorrei innanzitutto ringraziare in anticipo quanti decideranno di rispondere.Ho questo problema.Vorrei utilizzare questa formula:exp(a*ln()in AWL per poter ottenere:b^a.Ho scritto questo codice in una FC ma non funziona e non so perchè.L 2 // carico il valore 2 in ACCU-1DTR // lo converto in REALLN // ne faccio il logaritmo naturale e il valore risultante viene messo nuovamente in ACCU-1L #canale // carico il valore passato alla FC in ACCU-2 (è vero?)DTR // lo converto in REAL*R // moltiplico ACCU-1 e ACCU-2 riponendo il valore risultante di nuovo in ACCU-1EXP // faccio l'esponenziale del valore appena calcolato e lo rimetto in ACCU-1T #registro // valorizzo la DWORD registro con il valore di ACCU-1Si tenga conto che canale è un parametro di input di tipo WORD e che registro è un parametro di output di tipo DWORD.Io vorrei che se canale vale 0, registro contenga 1 (2^0), se canale vale 1 registro contenga 2 (2^1), e così via...Perchè non funziona come vorrei? C'è forse qualche problema con valori real in virgola mobile?E' possibile trovare un'altra soluzione (magari con le funzioni di shift) per fare la stessa cosa?Grazie a tutti.Lock.
rguaresc Inserita: 6 novembre 2002 Segnala Inserita: 6 novembre 2002 Il metodo che hai usato è corretto (per avere a^, ma la funzione DTR pretende come parametro di ingresso un intero a 32 bit.Prova così L 2 DTR LN L #Canale // dichiarato come DINT DTR *R EXP T #Registro //dichiarato come REALSalutiR.G.
Federico Milan Inserita: 6 novembre 2002 Segnala Inserita: 6 novembre 2002 behh,a parte l'osservazione fatta prima c'è da dire che ln(x) non è definito per x:) ...se ho capito bene tu devi fare f(x) = 2^x ?!?!a questo punto non devi scomodare l'elevamento a semplicemente uno shift ... infatti 2^2 = 2*2 = 4; 2^3 = 2*2*2 = 8 da cui 2^n = 1 shiftato a sinistra di n bita questo punto si ha:L L#1 // Carico costante a 32bit L #Canale // Carico numero tra 0-32SLD // Shifto a sinistra la costante di n bit pari a #CanaleT #Registro // Salvo il risultatociao
lock Inserita: 6 novembre 2002 Autore Segnala Inserita: 6 novembre 2002 (modificato) rguaresc+Nov 6 2002, 01:46 PM-->CITAZIONE(rguaresc @ Nov 6 2002, 01:46 PM)Grazie mille... Modificato: 9 ottobre 2003 da NULL
lock Inserita: 6 novembre 2002 Autore Segnala Inserita: 6 novembre 2002 (modificato) Federico Milan+Nov 6 2002, 02:16 PM-->CITAZIONE(Federico Milan @ Nov 6 2002, 02:16 PM)Grazie ancora una volta... Modificato: 9 ottobre 2003 da NULL
lock Inserita: 7 novembre 2002 Autore Segnala Inserita: 7 novembre 2002 Qualcuno mi sa dire se è possibile trovare ancora un'altra strada per ottenere il medesimo risultato?
Federico Milan Inserita: 7 novembre 2002 Segnala Inserita: 7 novembre 2002 Sono infinite le possibili alternative tutto sta nell'immaginazione,elencarle una perdita di tempo ciao
lock Inserita: 7 novembre 2002 Autore Segnala Inserita: 7 novembre 2002 Ho pensato di chiedere soluzioni alternative perchè quelle finora suggeritemi, non so per quale motivo, vanno ad influire sul ciclo principale dal quale io richiamo la FC nella quale ho inserito il codice di cui sopra...Qualche suggerimento?Grazie in anticipo.
Federico Milan Inserita: 7 novembre 2002 Segnala Inserita: 7 novembre 2002 Cosa intendi vanno ad influire sul ciclo principale ?!?spiegati meglio ...
lock Inserita: 7 novembre 2002 Autore Segnala Inserita: 7 novembre 2002 In un OB1 ho una ciclica (stato 0, stato 1, stato 2, stato 0) dalla quale richiamo la FC nella quale ho scritto il codice con lo shift.Ebbene, gli stati con quel codice non variano, rimanendo sempre su stato 0, che poi è la variabile #Canale che io passo come parametro di input alla FC.Spero sia abbastanza.Grazie ancora una volta.Lock.
Federico Milan Inserita: 8 novembre 2002 Segnala Inserita: 8 novembre 2002 Scusa sarò tardo io, ma sinceramente non ho capito niente ... se puoi prova a postare il pezzo di codice interessato.cosa è che cicla ?!? una variabile o hai un gestore di salti ?!?se hai una variabile è temporanea un merker una dbw ...ciao
Ivan Castellaro Inserita: 11 novembre 2002 Segnala Inserita: 11 novembre 2002 Attento che per le variabili locali non è garantito il valore al richiamo sucessivo del blocco, in quanto l'area di meoria e' comune e viene sfruttata da tutti i blocchi.Se devi tenere un valore in memoria per i cicli sucessivi usa una variabile M o D
Gianmario Pedrani Inserita: 11 novembre 2002 Segnala Inserita: 11 novembre 2002 Un altra srtada e utilizzare un fb e con un suo db, oppure un fb con db di istanza e sei sicuro di non perdere i tuoi risultati ciao
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