Mircovolpe Inserito: 4 maggio 2014 Segnala Share Inserito: 4 maggio 2014 Salve a tutti, ho la necessità di collegare il processore con un controllo assi tramite RS485 con protocollo Modubus RTU. sul micrologix 1400 ho impostato il canale come Modubus RTU Master . Tramite il programma ladder sono riuscito a crearmi le stringhe per accedere al controllo assi, ma purtroppo non so come passare le stringhe sul canale 2 del micrologix per inviarle. qualcuno può aiutarmi? Link al commento Condividi su altri siti More sharing options...
rguaresc Inserita: 4 maggio 2014 Segnala Share Inserita: 4 maggio 2014 (modificato) Non è conveniente cominciare in modo unilaterale con delle stringhe da RSLogix 500 Channel configuration scegli la tab Channel 2, nota che il canale 2 è RS232, mentre CH0 è RS485. Driver Modbus RTU master Poi, per l'effettivo trasferimento da master a slave si usa l'istruzione universale dei messaggi MSG "This controller" definisce la cpu master: channel, Modbus command (tipicamente 06 write single register) e ad un parametro per volta mandi i dati. L'istruzione MSG va abilitata e inibita ciclicamente altrimenti funziona una volta sola vedi l'esempio. Poi, se le stringhe hanno veramente un formato che coincide con la destinazione puoi anche usare 16 write multiple registers Data table address: l'indirizzo del dato da trasmettere Size in elements: 1 in "Target device" definisci il dispositivo in cui scrivere.messaggi.bmp Modificato: 4 maggio 2014 da rguaresc Link al commento Condividi su altri siti More sharing options...
Mircovolpe Inserita: 4 maggio 2014 Autore Segnala Share Inserita: 4 maggio 2014 Ciao rguaresc, grazie per la tempestiva risposta.... se ho capito bene, posso usare le stringhe nell'istruzione MSG il comando modbus "16 write multiple registers"? Provando ad impostare l'istruzione MSG, durante la configurazione nel campo "indirizzo tabella dati", se scrivo il numero riferito alla tabella dati contenente la stringa completa con il CRC, non viene accettata..... c'è una spiegazione grazie.. Link al commento Condividi su altri siti More sharing options...
rguaresc Inserita: 4 maggio 2014 Segnala Share Inserita: 4 maggio 2014 cosa intendi per stringhe? il modbus RTU tratta numeri, il comando modbus "16 write multiple registers" invia una successione di numeri alla destinazione. Il CRC viene generato dal trasmettitore e verificato nel ricevitore, non è che devi preparalo. Link al commento Condividi su altri siti More sharing options...
Mircovolpe Inserita: 4 maggio 2014 Autore Segnala Share Inserita: 4 maggio 2014 (modificato) è la prima volta che uso l'istruzione MSG..., ci sono esempi di come configurarla? dovrei richiedere la posizione dell'asse al controller, e dal manuale risulta che devo inviare tramite Modbus RTU la seguente stringa: 01 03 90 00 00 02 E9 0B dove: 01 è ID 03 è il comando modbus 90 00 è il registro della posizione 00 02 è il numero di word da leggere E9 0B il CRC Come posso usare MSG per tale funzione? Modificato: 4 maggio 2014 da Mircovolpe Link al commento Condividi su altri siti More sharing options...
rguaresc Inserita: 4 maggio 2014 Segnala Share Inserita: 4 maggio 2014 (modificato) 01 è ID cosa significa ID? è forse l'indirizzo del nodo del controllo assi? In pratica devi leggere il valore dei due registri adiacenti a partire da 49000 prova con This controller Modbus command: 03 read holding registers 4xxxxx Data table address N7:0 (o comunque un'area di due registri numerici nei quali entrerà ciò che ricevi) Size in elements 2 (sono due registri da 16 bit adiacenti Target device Message timeout 100 (variabile) MB data address 9000 Slave node address (vedi tu 1?) sarà, poi, il micrologix a comporre la stringa, aspettare la risposta e collocarla in N7:0 N7:1 Modificato: 4 maggio 2014 da rguaresc Link al commento Condividi su altri siti More sharing options...
Mircovolpe Inserita: 4 maggio 2014 Autore Segnala Share Inserita: 4 maggio 2014 grazie mille adesso è tutto un pò più chiaro..... ma nel caso dovrei scrivere la posizione e non leggerla, il valore della quota dove lo inserisco nella conf. MSG? Si usa lo stesso Data table address N7:0 e si cambia soltanto il comando Modbus in 06? Purtroppo non ho ancora il plc per provare..... Un ultima domanda... per richiamare funzioni Modbus diverse da quelle impostate nel Modbus command c'è qualche procedura particolare? Link al commento Condividi su altri siti More sharing options...
rguaresc Inserita: 4 maggio 2014 Segnala Share Inserita: 4 maggio 2014 dove lo inserisco nella conf. MSG? Si usa lo stesso Data table address N7:0 Lo inserirai in due registri adiacenti a 16 bit e poi in Data table address porrai l'indirizzo del primo specificando in Size in elements che sono 2 per richiamare funzioni Modbus diverse da quelle impostate nel Modbus command devi usare un'altra istruzione MSG 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