Pulpcollegno Inserito: 5 novembre 2010 Segnala Share Inserito: 5 novembre 2010 (modificato) 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?GrazieRoberto Modificato: 6 novembre 2010 da Livio Migliaresi adeguato il carattere Link al commento Condividi su altri siti More sharing options...
del_user_27683 Inserita: 8 novembre 2010 Segnala Share Inserita: 8 novembre 2010 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]:0ciao. Link al commento Condividi su altri siti More sharing options...
Pulpcollegno Inserita: 8 novembre 2010 Autore Segnala Share Inserita: 8 novembre 2010 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 More sharing options...
del_user_27683 Inserita: 8 novembre 2010 Segnala Share Inserita: 8 novembre 2010 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 copiareN35[10] > Array DINT di 10 elementi N71> DINT da usare come indicea 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 More sharing options...
Pulpcollegno Inserita: 8 novembre 2010 Autore Segnala Share Inserita: 8 novembre 2010 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 milleRoberto Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora