Vai al contenuto
PLC Forum


Conversione Indirizzi Indiretti Rslogix5000


Pulpcollegno

Messaggi consigliati

Ciao,

mi trovo a convertire un programma da rslogix5 al 5000.

Nel manuale rockwell Considerazioni sulla progettazione dei controllori Logix5000 leggo a pagina 34 nelle considerazioni la seguente frase:

non è possibile fare riferimento a più array in modo indiretto come nei processori PLC o SLC (ad.es., N[N7:0]:5).

Come posso fare per risolvere il mio problema?in Rslogix5 la sintassi è COP #N[N7:1] in #N35:0.

Nel rung sotto MOVE 0 in N[N7:1].

In Rslogix5000 non è possibile utilizzare questa sinstassi, ma non so come posso fare,qualcuno sa aiutarmi?

Grazie

Roberto

Modificato: da Livio Migliaresi
adeguato il carattere
Link al commento
Condividi su altri siti


del_user_27683

Una soluzione rapida non esiste, in generale la semplice traduzione da 5 a 5000 non è una buona idea, solitamente conviene rivedere la struttura del software, nel caso specifico se in PLC5 era indicizzato il file e la word, in logix su utilizzerà un array bidimensionele (es. file=riga e word=colonna). Le sintassi COP #N[N7:1] > #N35:0 e MOVE 0 > N[N7:1] non sono corrette perchè manca l'identificazione della word ad esempio #N[N7:1]:0

ciao.

Link al commento
Condividi su altri siti

Ti ringrazio per la risposta,in effetti mi ero dimenticato l'identificazione della word.

la sintassi è COP #N[N7:1]:0 > #N35:0 e MOVE 0 > N[N7:1]:0.

Tu consigli quindi di non convertire il progetto con il tool di conversione?

Purtroppo i tempi che mi hanno dato sono ristrettissimi, e riscrivere il tutto mi richiederebbe troppo tempo.

Nel mio caso posso usare un array bidimensionale, ma come faccio ad andare a puntare ad una N specifica?

Grazie

Link al commento
Condividi su altri siti

del_user_27683

Per avere un'aspetto simile all'Rs5 creiamo queste tag:

N[99,10] > Array DINT bidimensionale, dove 0-99 per noi rappresenta l'N e 10 è la lunghezza delle word da copiare

N35[10] > Array DINT di 10 elementi

N71> DINT da usare come indice

a questo punto possiamo fare:

COP N[N71,0] N35[0] lenght 10 se ad esempio N71=7 vegono copiati N[7,0]>N35[0], N[7,1]>N35[1]....

e quindi

MOV 0 N[N71,0] diventa MOV 0 N[7,0]

ciao.

Link al commento
Condividi su altri siti

Ciao, ti ringrazio,ora mi è tutto più chiaro.

Dovrò modificare la logica del plc e dello scada, ma come soluzione è perfetta.

Le mie N sono 57 e la lunghezza è di 100 word ciascuna.

Nella conversione sono state creati degli array per ciascuna N.

Io stavo già pensando di risolvere il tutto facendo dei compare con il puntatore(es. se N7_1=21 copiavo la N21 nella N35), anche se come soluzione non mi piaceva per niente.

Grazie mille

Roberto

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