Vai al contenuto
PLC Forum


Array In Step7


dipi

Messaggi consigliati

Ciao, da poco ho iniziato a programmare in step 7, devo leggere dati bool da un amatrice 37x10 elementi. Effettuando una call devo leggere gli elementi [1,1][1,2]....[1,10]. Alla seconda chiamata gli elementi [2,1][2.2][2.3].....[2,10] e così via fino a [37,1].....[37,10]. Comesi può fare visto che non è ammessa la scrittura

dbx[MD0,MD1] con MD0 e MD1 variabili?

Link al commento
Condividi su altri siti


Devi utilizzare i registri.

Se cerchi nel sito è un argomento già discusso ed io stesso ne ho tratto insegnamento.

Ciao

Devi utilizzare i registri.

Se cerchi nel sito è un argomento già discusso ed io stesso ne ho tratto insegnamento.

Ciao

Dimenticavo ....

usando i puntatori.

Scusa.

Link al commento
Condividi su altri siti

del_user_27683

Io farei una cosa di questo tipo dopo aver creato ad esempio il DB1 di 370 bool.

L 9 < Eesmpio numero riga (1-37)

L 1

-I

T LW 0

L 10 < Esempio numero colonna (1-10)

L 1

-I

T LW 2

L LW 0

L 10

*I

L LW 2

+I

T LD 4

AUF DB 1

U DBX [LD 4]

In questo esempio si interroga il bit 8x10+9=89 che fisicamente corrisponde al DB1.DBX11.1 (ma questo non è importante).

Link al commento
Condividi su altri siti

Puoi lavorare direttamente sugli indirizzi di memoria dell'array come spiegato da mrctnj, in questo caso usi i puntatori e la gestione non è complessa.

Se invece vuoi lavorare direttamente sugli indici dell'array (come si fa in Basic) devi usare i registri AR1 e AR2, in questo caso però il programma diventa macchinoso e poco leggibile.

Io ho risolto acquistando il pacchetto aggiuntivo di Step7 chiamato SCL che è simile al basic e permette di gestire i puntatori in maniera molto semplice.

CIAo

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