Vai al contenuto
PLC Forum


Ancora Sui Puntatori E Strutture Con Awl


lucios

Messaggi consigliati

Rieccomi per un ulteriore problema di puntatori....

Dunque, ammettiamo di avere nelle variabili locali statiche di una FB la struttura PIPPO che al suo interno contiene, oltre ad altre variabili semplici, un'altra struttura chiamata PLUTO composta da un INT che chiameremo TOPOLINO e da un array di byte che chiameremo PAPERINO (che fantasia eh :) ) ad es. ARRAY [0..31] of BYTES.

Qualcuno mi sa spiegare perchè se io creo un puntatore del tipo

L P##PIPPO.PLUTO.TOPOLINO

va tutto bene, ma se faccio:

L P##PIPPO.PLUTO.PAPERINO

perchè voglio un puntatore all'array, la riga non mi viene accettata?

Ciao a tutti e grazie

Link al commento
Condividi su altri siti


Perchè l'istruzione L legge il valore di una variabile che al massimo può essere una dword e la carica nell'accumulatore a 32 bit quindi non array.

Se vuoi fare operazione con l'intero array devi usare altre istruzioni.

Link al commento
Condividi su altri siti

Ho detto una inesattezza....

Non riesco a puntare qualsiasi elemento di una struttura anche se non è contenuta in un'altra....

Come si fa a puntare un elemento di una variabile strutturata?

Perchè l'istruzione L legge il valore di una variabile che al massimo può essere una dword e la carica nell'accumulatore a 32 bit quindi non array.

E cosa vuol dire scusa?

Facendo L P##<qualcosa> non ottieni l'indirizzo della variabile <qualcosa> in formato dword? Perchè non deve funzionare al'interno di una struct?

Ciao

Link al commento
Condividi su altri siti

Avevo capito che volevi fare un L di tutto l'array in una istruzione sola.

Ho provato anch'io, ma effettivamente sembra che non si riesce a puntare ad una variabile contenuta in una struttura.

Link al commento
Condividi su altri siti

non e' l'interpretazione esatta ma scrivere

P#....

e' un po come dire

&Variabile (nel C)

Viene caricato l'indirizzo della variabile in un puntatore e puo anche essere una DWORD quando il registro predisposto e' gia occupato , con un minimo dispendio di tempo di esecuzione ormai irrisorio .

ciao

walter

Link al commento
Condividi su altri siti

Effettivamente non ti lascia puntare a variabili contenute all'interno di una struttura.

Puoi però risolvere caricando l'indirizzo di inizio della struttura e sommando poi l'offset delle variabili all'interno della struttura stessa.

Unico inconveniente è che se modifichi la struttura devi modificare anche gli offset.

Modificato: da batta
Link al commento
Condividi su altri siti

Puoi però risolvere caricando l'indirizzo di inizio della struttura e sommando poi l'offset delle variabili all'interno della struttura stessa.

Unico inconveniente è che se modifichi la struttura devi modificare anche gli offset.

Si, è la soluzione a cui sono arrivato anch'io. Però in questo modo si vanifica completamente i vantaggi offerti dalla possibilità di utilizzare le strutture di dati.

In step7 non servono praticamente a nulla.

Grazie comunque

Link al commento
Condividi su altri siti

Salve,

per ovviare alla modifica degli offset, vedi se eventualmente può andarti bene questo esempio.

Per problemi di tempo il file mi rimane disponibile pochi giorni sul server.

Se non lo trovi più, ricontattami pure con un nuovo post, appena mi è possibile reinvio il tutto.

Clicca qui per il download.

Modificato: da cagliostro
Link al commento
Condividi su altri siti

......nel messaggio #8 clicca su "Clicca qui per il download"

ti si aprirà la pagina web a seguire....

immaginedu.png

a questo punto clicca sul campo "Dwnload this file".....e salva il file medesimo in una directory che ritieni opportuna.

Il file in formato .zip contiene un esempio archiviato come libreria di S7.

Link al commento
Condividi su altri siti

L'ho fatto ma, al posto del bottone "Download this file" mi compare la scritta:

Processing your request to download file...

mi scarica un jpg illeggibile e nient'altro.......

Link al commento
Condividi su altri siti

L'ho fatto ma, al posto del bottone "Download this file" mi compare la scritta:

Processing your request to download file...

mi scarica un jpg illeggibile e nient'altro.......

...veramente molto strano. Ho riprovato giusto ora.Mi compare sempre la schermata al messaggio #10.

Clicco su download this file e scarico l'allegato .zip da disarchiviare.

Se la cosa ti interessa sempre, mandami il tuo indirizzo mail sulla MP di PLC Forum dopodichè faccio l'invio.

Modificato: da cagliostro
Link al commento
Condividi su altri siti

Anche a me succede come a lucios.

Perché non lo aggiungi semplicemente come allegato nel post?

Modificato: da batta
Link al commento
Condividi su altri siti

per verifica, provate il collegamento a questo link:

http://www.filesavr.com/mogjQoAo

se ancora non funziona credo, ma non ricordo bene non so se a questo punto ci si debba registrare almeno una volta, ma non mi sembrava.

E quando accedo al servizio non mi domanda nessun login o altro.

Modificato: da cagliostro
Link al commento
Condividi su altri siti

Spiacente......non so che dire.

Purtroppo non posso allegare come file nel post, data l'occupazione del file che è di circa 38-39kb, quindi supera i limiti ammessi nella funzione di upload.

Link al commento
Condividi su altri siti

La dimensione massima di un upload per singolo allegato e molto ridotta solo 553byte max.

Almeno questo e quello che dice la gestione allegati di PLC Forum, per cui.........

Questo è quello che normalmente dovrebbe succedere invece cliccando sul link del messaggio 8.

immagineqr.png

Modificato: da cagliostro
Link al commento
Condividi su altri siti

Dimensione massima per singolo upload: 238.01k

Quindi, se il tuo file è di 39kB...

Come specificato nel mio precedente post [messaggio#17], il sistema mi limita l'upload a 553 byte, quindi se il mio file è di 39Kb.........

Per conferma di quanto dico allego immagine a seguire.

immaginetdg.png

Nel tuo caso è possibile che tale restrizione sia alzata ad un livello maggiore, perchè sei titolare della Forum card member.

Non so se questa cosa conferisca privilegi maggiori in fatto di upload.

Guardando nelle configurazioni di profilo utente non mi sembra ci sia qualche campo da spuntare o impostazione da fare per alzare tale limite.

Modificato: da cagliostro
Link al commento
Condividi su altri siti

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...