Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Indirizzamento Indiretto


Messaggi consigliati

Inserito:

Buongiorno a tutti

Devo usare l'indirizzamento N7:[N10:0] usato con un MOV in RSLogix 500 ma non trovo la dicitura

da usare in RSLogix 5000, qualquno sa come si deve fare?

Grazie in anticipo.


Inserita:

Mi sono dimenticato da dire che secondo il manuale di conversione dovrebbe essere

N7[N10_0] ma questo non lo prende.

Grazie di nuovo.

Inserita: (modificato)
Attraverso l'indicizzazione Array
Per cambiare dinamicamente l'elemento dell'array che il vostro riferimenti logici, l'uso di tag o espressione
come indice per puntare all'elemento.
Questo è simile a indirizzamento indiretto in PLC-5 logica.
È possibile utilizzare questi operatori in una espressione per specificare un indice di matrice:



Operator Description

+ add
- subtract/negate
* multiply
/ divide
AND AND
FRD BCD to integer
NOT complement
OR OR
TOD integer to BCD
SQR square root
XOR exclusive OR


For example:

Definitions Example Description

N7 defined as INT[256] N7[5] Questo esempio si fa riferimento elemento 5 nella matrice.

Il riferimento è statico perché il valore pedice rimane costante.

N10 defined as INT[256]
N10_0 defined as DINT MOV the value 5 into N10_0
N7[N10_0] Questo esempio si fa riferimento elemento 5 nella matrice.

Il riferimento è dinamico poiché la logica può cambiare
l'indice cambiando il valore di N10_0.

N7 defined as INT[256]
N10_0 defined as DINT
Offset defined as DINT
MOV the value 2 into N10_0
MOV the value 5 into Offset
N7[N10_0 + Offset] Questo elemento esempio riferimenti 7 (2 + 5) nella matrice.

Il riferimento è dinamico poiché la logica può cambiare
l'indice cambiando il valore di posizione o di offset.


Assicurarsi che qualsiasi indice di matrice immesso è entro i confini della matrice specificata.
Le istruzioni che vedono array come un insieme di elementi generano un errore grave (tipo 4, codice 20)
se un pedice supera la dimensione corrispondente.
Modificato: da Giuseppe Signorella
Inserita:

Non puoi indicizzare indirettamente inserendo come puntatore un altro elemento array, ma devi mettere come puntatore una Tag,

come quella che hai detto tu N10_0, ma puoi chimarla come vuoi

Quindi N7[Pointer] oppure N7[Pointer / 2+Increment]

non puoi scrivere N7[ N10[0] ] ma devi sostituire con N10[0] con una Tag (Tipo Pointer)

chiaramente per ottenere i tuo compito prima devi trascrivere il Valore contenuto in N10[0] nella tag Pointer, usa l'istruzione MOV N10[0] => Pointer

Giuseppe Signorella
Inserita:

Ciao Henon,

Cortesemente utilizza la lingua Italiana all'interno dei post, perché l'uso di una lingua differente oltre ad essere contro il regolamento, rende difficoltosa la comprensione del concetto espresso.

Grazie per la collaborazione.

  • 2 weeks later...
Inserita:

Buongiorno a tutti

Grazie della risposta Henon, ho fatto come hai detto nel'ultimo post.

Buon lavoro a tutti.

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