Vai al contenuto
PLC Forum


Indicizzare Un Array - puntatori


MrC

Messaggi consigliati

Supponi di aver dichiarato all'interno della tua FC o FB un array di 100 dati interi :

TEMPERATURA [1..100] of INT

Vorrei "PUNTARE" la temperatura , cioè fare un indirizzamento del tipo

L MD10 //Da HMI metto su MD10 la temperatura che devo leggere

L TEMPERATURE[MD10]

So che così non funziona , ma ho provato anche puntandolo come punto i db normali :

L P#0.0

T MD10

L P#4.0

+d

T MD10

L TEMPERATURE[MD10] <- errore

Grazie

Link al commento
Condividi su altri siti


Prova così:

//(Nella seguente riga non sono tanto sicuro della sintassi, non posso provare)
L P#TEMPERATURA[1] 

//Imposta AR1 con indirizzo del primo valore dell’array
LAR1       

//Legge indice 
L   MD10 

//Moltiplica per 8 per rendere compatibile con puntatore any, poi
//moltiplica per 2 perché l’array è composto da INT che usa 2 bytes
//(quindi moltiplica *16)
L   16     
*D     

//Incrementa AR1 con il risultato della moltiplicazione
+AR1

//Ora AR1 punta a TEMPERATURA[MD10]
L     W [AR1,P#0.0]

Link al commento
Condividi su altri siti

Ciao Jump Man , intanto grazie della risposta .

Sembra funzionare tutto , tranne la prima riga che dovrebbe darmi l'indirizzo di partenza dell'array .

L P#TEMPERATURA[1]

Si colora di rosso .

Non saprei come ricavare l'indirizzo del primo elemento del vettore ,

non è che mi daresti un'altra dritta ?

:rolleyes: Grazie :rolleyes:

*FeDe*

Link al commento
Condividi su altri siti

Ciao..

Una domanda, il l'indirizzo di partenza dell'array nell FB/FC, Supponi di aver dichiarato all'interno della tua FC o FB un array di 100 dati interi dove? in un IN, OUT, INOUT, o come TEMP, Stat??

se il puntatore é sul TEMP, per essempio, perche non punti sul temporale cosi:

L  LW 0 // Essempio area memoria Temporale che comincia su L 0.0 fino a L 1.7 (Locale)
LAR1
Puó anche fare questo:
L P##TEMPERATURA // anche stai apuntando su 0.0 sempre che Temperatura é in Local 0
LAR1 // caricato al registro di indirizzi come 0.0

Guarda questo essempio, piú ilustrativo:

Link al commento
Condividi su altri siti

  • 6 months later...

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...