manuorny Inserito: 8 dicembre 2008 Segnala Inserito: 8 dicembre 2008 HO UNA MORSA ROTANTE CON 360 POSIZIONI, AD OGNI POSIZIONE CORRISPONDE UNA CORREZIONE CHE DEVO CARICARE. HO CREATO UNA DB CON 360 VALORI RALI . IN BASE A DOVE DEVO ANDARE DEVO CARICARE UNO SPECIFICO VALORE (LA MECCANICA è IMPRECISA). POSSO RISOLVERE LA COSA DINAMICAMENTE??? IN QUANTO IO SO CHE A ALLA POSIZIONE 4GRADI CORRISPONDE LA DBnnn.DBD16. QUINDI PER SAPERE A DOVE DEVO PUNTARE NELLA DB BASTA CHE MOLTIPLICO PER 4 LA POSIZIONE A CUI DEVO ARRIVARE. POSSO USARE I PUNTATORI?? PREMETTO MAI USATO I PUNTATORI.OSSIA DBnn.DBDO------>0GRADI DBnn.DBD4------>1GRADI DBnn.DBD8------>2GRADI DBnn.DBD12------>3GRADI DBnn.DBD16------>4GRADI ECC.L "POSIZIONE A CUI DEVO ANDARE" (W) ESEMPIO 4L 4*IITDT #APPOGGIO // VARIABILE LOCALE DI APPOGGIO, 16//quindi la mia correzione risiede nella DBnn.DBD16 CHE POI è IL NUMERO CONTENUTO IN APPOGGIO..COME FACCIO AD "ESTRAPOLARLO E ASSOCIARLO ALLA DB???P ##APPOGGIOLAR1 // //ORA POSSO SCRIVEREL DBnnn.DBD[AR1, P 0.0] //S7 MI DICE CHE è SBAGLIATO COME POSSO RISOLVERE LA COSA????GRAZIE Emanuele.
Luca Bettinelli Inserita: 8 dicembre 2008 Segnala Inserita: 8 dicembre 2008 Regolamento PLCForum+-->CITAZIONE(Regolamento PLCForum)Grazie
alfa84 Inserita: 8 dicembre 2008 Segnala Inserita: 8 dicembre 2008 Nel tuo caso i puntatori potrebbero anche servire,ma comunque devi crearti un codice necessario per limitare le impresisioni dovute alla dinamica della ruota..ed in relazione ad esempio a dei confronti di posizioni decidi di puntare ad uno o quello che segue nella db...ciao
JumpMan Inserita: 8 dicembre 2008 Segnala Inserita: 8 dicembre 2008 Ma la posizione target è espressa in gradi? Immagino di sì altrimenti, se fosse in decimi di grado avresti una tabella con 3600 valori!L'inerzia non è costante...secondo te dipende dalla quota target? Comunque quello che dici si può fare, e si può fare anche di più volendo:Alla fine di ogni posizionamento potresti misurare l'errore, invertirlo di segno, fare la media col fattore di correzione della tabella e sovrascrivere il valore in tabella, dopo un paio di giri dovrebbe aver "autoappreso" i valori ottimali di correzione. Premesso che gli errori siano abbastanza costanti...Per quanto riguarda i puntatori puoi operare in 2 modi:Puntatori "semplici":Codice: AUF DBnn //Apre DB L "POSIZIONE A CUI DEVO ANDARE" (W) ESEMPIO 4 L 4 *I ITD T #APPOGGIO // VARIABILE LOCALE DI APPOGGIO, 16 L DBD [#Appoggio] // Legge DBD indicizzata Puntatori AR1/AR2: L #Target SLD 5 LAR1 L DBW [AR1,P#0.0] Se non ti è chiaro il codice qui sopra puoi fare anche così, è esattamente la stessa cosa: L #Target L 4 *D T #Appoggio L #Appoggio SLD 3 LAR1 L DBW [AR1,P#0.0]
manuorny Inserita: 9 dicembre 2008 Autore Segnala Inserita: 9 dicembre 2008 Grazie mille ...scusate per le maiuscole.
manuorny Inserita: 16 dicembre 2008 Autore Segnala Inserita: 16 dicembre 2008 grazie mille ha funzionato....è davvero una cosa spettacolare. Alla fine ho dovuto usare i puntatori altrimenti non vi era verso di farla andare. con il puntatore ok.
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