Vai al contenuto
PLC Forum


Micrologix 1400 Modubus Rtu


Mircovolpe

Messaggi consigliati

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


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: da rguaresc
Link al commento
Condividi su altri siti

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

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

è 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: da Mircovolpe
Link al commento
Condividi su altri siti

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: da rguaresc
Link al commento
Condividi su altri siti

grazie mille adesso è tutto un pò più chiaro..... :thumb_yello:

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

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

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