Jump to content

Recommended Posts

Posted

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.

Posted

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

N7[N10_0] ma questo non lo prende.

Grazie di nuovo.

Posted (edited)
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.
Edited by Giuseppe Signorella
Posted

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
Posted

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

Buongiorno a tutti

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

Buon lavoro a tutti.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...