Vai al contenuto
PLC Forum


Fc e dichiarazione puntatori


Linotix

Messaggi consigliati

Salve, provo a spiegare cosa voglio fare, spero di farmi capire. In un blocco fc devo introdurre su una variabile in tipo pointer l’indirizzo di un bit bool (tipo DB1.DBX0.2 ) parte di un array di 20 bool. Sulla variabile pointer out devo avere l’indirizzo della posizione corrispondente corrispondente di un array a 20 interi( in questo caso DB2.DBW4.0. Per farmi capire meglio ogni dato dell’array bool deve corrispondere al dato nella medesima posizione dell’array int. ovviamente il primo dato di entrambi gli array è 0.0. Quindi 0.0=0.0, 0.1=2.0, 0.2=4.0 e così via. Qualche idea? Grazie

Link al commento
Condividi su altri siti


elettromirko85

Ciao Linotix ho un po’ di difficoltà a capire l’ultima parte dove dici 0.0 = 0.0 poi 0.1 = 2.0 ecc ecc penso ti riferisca all’indirizzo assoluto associato ai due array... bhe intanto la mia prima domanda su che macchina stai pensando di fare la cosa? La sostanza cambia di poco ma era una precisazione che ci sarebbe stata... seconda cosa non specifichi cosa devono fare gli elementi del primo elemento rispetto al secondo... comunque il concetto che dovrai seguire detto alla veloce è il seguente gli array sono delle matrici che posso essere a più dimensioni... nel tuo caso avrai due matrici ad un elemento, la prima un’array di 20 elementi bool è una secondo con 20 elementi int e qua ci siamo nella tuo programma avrai una variabile che chiamerò indice che dovrà essere di tipo intero che non è altro che la posizione che andrai a puntare nelle tue matrici. Avrai una condizione che scatenerà l’esecuzione del ciclo che sarà un loop che dovrà puntare ogni elemento del tuo array e leggere o scrivere le rispettive variabili. Le considerazioni importanti sono che la tua variabile indice dovrà SEMPRE essere compresa all’interno della dimensione del tuo array e una volta eseguito il loop dovrà essere rinizializzata al primo elemento del tuo array.

esempio ho la variabile  pippo[1...20] array of int e la variabile pluto [1...20] array of bool, nel tuo programma avrai la variabile “indice” che sarà il tuo puntatore bene. La posizione è data dal valore contenuto nella variabile indice, quindi dichiarando nella tuo programma gli array nel seguente modo pippo[indice] e pluto[indice] e gestendo l’incremento della variabile di puntamento ti sposti nei due array nella stessa posizione poi vai a leggere o scriverne i contenuti. 

Spero di averti reso l’idea.

buona serata

Link al commento
Condividi su altri siti

Ok grazie. Comunque intendevo che la prima variabile di un array bool debba puntare alla prima variabile dell’array int , la seconda alla seconda e così via. Quello che mi serve è che se il bit 0.0 dell’array bool è alto mi faccia caricare l’intero 0.0 dell’array int in una mw, il 0.1 mi faccia caricare il 2.0  visto l’int è di 2 byte. e così via. 

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