Max Reger Inserito: 19 aprile 2005 Segnala Inserito: 19 aprile 2005 CIAO A TUTTI. PROBLEMA: VOLEVO RICHIAMARE UNA FC PARAMETRIZZATA CON IN INGRESSO, TRA LE VARIE COSE, L'INDICE DI UNA USCITA: HO PROVATO A PASSARE COME PUNTATORE (VEDI CODICE) MA NON MI GIRA: QUAL'E' L'ERRORE (OPPURE NON E' POSSIBILE)?NELL'ESEMPIO VOGLIO ALZARE A80.0 PASSANDO L'INDIRIZZO DA FC251 CHE RICHIAMA LA FC250UN GRAZIE ANTICIPATO A TUTTI FUNCTION FC 251 : VOIDBEGINNETWORKTITLE = CALL FC 250 ( Puntatore := P#80.0);END_FUNCTIONFUNCTION FC 250 : VOIDBEGINNETWORKTITLE =VAR_INPUT Puntatore : POINTER ; //Puntatore all'uscita del frenoEND_VARVAR_TEMP app1 : DINT ; //Appoggio per puntatore END_VAR L P##Puntatore; T #app1; SET ; = A [#app1]; END_FUNCTION
rddiego Inserita: 19 aprile 2005 Segnala Inserita: 19 aprile 2005 non so se è una valida risposta, ma ho il dubbio che debba sostituire l'istruzioneL P##Puntatore; T #app1; SET ; = A [#app1]; conL P##Puntatore; LAR1; SET ; = A [AR1,P#0.0]; Non ricordo assolutamnete la sintassi, ma la sostanza è che credo tu debba caricare l'indirizzo desiderato nel registro AR1 che poi fungerà da puntatore. E' molto probabile che stia mischiando un po' le cose (puntatori, registri), ma prova che magari ti ho aperto la strada...
h.ki Inserita: 19 aprile 2005 Segnala Inserita: 19 aprile 2005 tipo dati pointer è di lunghezza 6byte e contiene il puntatore all'indirizzo del parametro in ingresso. Bisogna "tagliare" i primi 2 bytes..L P##Puntatore; LAR1L D[AR1,P#2.0]T #app1SET= A[#app1]al richiamo della FC, assegnando a "Puntatore" P#80.0 vedrai A80.0=1ciao
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