vittorio1982 Inserito: 5 aprile 2008 Segnala Share Inserito: 5 aprile 2008 Salve a tutti, sto iniziando a programmare plc utilizzando S7-400 e ho utilizzato il manuale di simatic per le istruzioni in AWL ma non sono riuscito a capire come utilizzare un puntatore in una funzione .in particolare ho una funzione di esempio dove in ingresso ho un numero reale e nella funzione viene definito il puntatore a tale variabile, faccio delle operazioni sul puntatore ma quando lo scarico nel plc e vado on-line vedo che la funzione anche avendo tutte le condizioni abilitate non mi viene eseguita. Qualcuna sa dirmi il perche???? e ancora c'è qualcuno che possiede qualche manuale che mi potrebbe chiarire le idee Link al commento Condividi su altri siti More sharing options...
rddiego Inserita: 5 aprile 2008 Segnala Share Inserita: 5 aprile 2008 l'. di step7 spiega tutto e quello ce l'hai già. Riguardo al tuo problema specifico come credi che ti possiamo aiutare se non dici niente di questa "funzione"?Magari postala oppure spiega cosa deve fare.Ad ogni modo io so perchè la tua "funzione" non viene eseguita: secondo me devi aver sbagliato qualcosa Link al commento Condividi su altri siti More sharing options...
vittorio1982 Inserita: 11 aprile 2008 Autore Segnala Share Inserita: 11 aprile 2008 Penso che sia un po difficile spiegare cosa faccia la funzione.Visto che però sono alle prime armi con i puntatori c'è qualcuno che possa elencarmi le istruzioni per creare un semplice programmino che faccia la somma di due puntatori ed inserisca il risultato in una variabile di uscita della funzione????????Logicamente in AWL.Inoltre trovo molte difficoltà a capire delle istruzioni come ad esempio B#16#85 oppure #84sul manuale mi dice solo che vengono caricati dei blocchi di dati di istanza ma che sono questi blocchi e dove si trovano.Scusate la mia ignoranza e vi ringrazio per l'attenzione Link al commento Condividi su altri siti More sharing options...
batta Inserita: 11 aprile 2008 Segnala Share Inserita: 11 aprile 2008 Cerca nel forum. L'argomento "puntatori" è pluritrattato. Link al commento Condividi su altri siti More sharing options...
vittorio1982 Inserita: 14 aprile 2008 Autore Segnala Share Inserita: 14 aprile 2008 Quando dichiaro un tipo di dato puntatore, si crea sempre un blocco di istanza della funzione?che cosa fa l'istruzione:L B#16#85??ma quando carico un puntatore in realtà esso contiene l'indirizzo di quella variabile?? Link al commento Condividi su altri siti More sharing options...
batta Inserita: 14 aprile 2008 Segnala Share Inserita: 14 aprile 2008 Preferisco rispondere qui alle domande che mi hai posto in privato.che cosa fa l'istruzione:L B#16#85??"L" è semplicemente l'istruzione di caricamento.Dal manuale in linea di Step7:Descrizione dell'operazione L < operando> carica nell'accumulatore 1 il byte, la parola o la doppia parola indirizzati, dopo che il contenuto di ACCU 1 è stato memorizzato in ACCU 2, ed ACCU 1 è stato resettato a 0."B#16#85" è semplicemente un valore in formato BYTE espresso in esadecimaleL B#16#85 significa: carica nell'accumulatore in formato BYTE il valore esadecimale 85.L DW#16#FFFFFFF0 significa: carica nell'accumulatore in formato DWORD il valore esadecimale FFFFFFF0 Per quanto riguarda il formato POINTER, riporto semplicemente quanto descritto nel manuale in linea di Step7:Dimensione 6 byte Byte 0-1: contengono in formato INT il numero del DB (0 = non è un DB) Byte 2: area di memoria, codificata come segue: B#16#81 = area E (ingressi) B#16#82 = area A (uscite) B#16#83 = area M (merker) B#16#84 = area DB (blocco dati) B#16#85 = area DI (blocco dati di istanza) B#16#86 = area L (dati locali) B#16#87 = area V (dati locali precedenti) Byte 3-4-5: indirizzo della variabile (punta al bit)Se apri il manuale in linea di Step7 e cerchi POINTER trovi subito la pagina con descritto quanto sopra. C'è anche una figura che rende tutto più chiaro e ci sono pure esempi di applicazione.Per quanto riguarda l'apertura del progetto che ti ho indicato nell'altra discussione, e nel quale trovi indicazioni sull'uso dei puntatori, devi semplicemente scaricare il file e usare la funzione "Disarchivia" di Step7 (nel menù File).Per capire meglio devi anche studiare l'utilizzo del registro indirizzi AR1.Per ora di più non posso fare.Parlare in modo esaustivo di puntatori e registri indirizzi richiederebbe parecchie ore.Utilizza la funzione "cerca" del manuale in linea di Step7 e poi fai esperimenti. 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