Vai al contenuto
PLC Forum


Modbus Rtu -> Driver Lec (Smc)


Messaggi consigliati

Inserito:

Salve a tutti

sto cercando di comunicare attraverso protocollo modbus rtu con un driver SMC (lec6p). Premetto che ho già realizzato la stessa cosa con un plc allen/bradley e il tutto funziona correttamente: leggo e scrivo registri sul driver.

Con siemens s7 1200, riesco a scrivere e a leggere i registri con indirizzi tra 400001...465535 aggiungendo 1 e mettendo il 4 davanti al valore decimale dell'indirizzo dato dal fornitore ( funzioni modbus 03;16) , ma non riesco a scrivere ed a leggere i bit ingressi e di uscita del driver (funzione modbus 1;5) .

In dettaglio dovrei impostare ad '1' il registro con indirizzo 0030 hex, ma la funzione [MB_MASTER] restituisce sempre il codice d'errore 8383.

Ho provato anche ad aggiungere 1 all'indirizzo come faccio per i registri di mantenimento ma in errore il driver e la funzione restituisce 0 come codice d'errore.

Qualcuno può aiutarmi?

Ringrazio anticipatamente.


Giuseppe Signorella
Inserita: (modificato)

riesco a scrivere e a leggere i registri con indirizzi tra 400001...465535 aggiungendo 1 e mettendo il 4 davanti al valore decimale

Per la precisione anche se il risultato finale non cambia, non devi mettere il 4 davanti al registro ed aggiungere poi 1, come da manuale, i registri vanno per il codice funzione 03, 06 e 16 da 40001 a 49999 oppure da 400001 a 465535. Questo significa che al valore di 40001, oppure 400001, devi sommare il valore del registro. Quindi se vuoi leggere il registro 412, devi sommare 40001+412=4413. Oppure 400001+412=40413

Sempre da manuale, i i registri per i codice funzioni 01 e 05 vanno da 1 a 9999.

Modificato: da Giuseppe Signorella
Inserita:

Grazie per la risposta... e la precisazione....

Facendo diverse prove con il manuale della funzione MD_Master sono arrivato alla conclusione che per la lettura dei flag di out del driver devo sommare al registro il valore 10001, quindi se devo leggere lo stato del flag con indirizzo 64

gli devo sommare 10001: 10001+64=10065.

Il problema è quando devo scrivere il flag degli ingressi del driver, se uso la stessa formula (10001+reg) mi va in errore la funzione MD_MASTER per valore errato del parametro MODE, mentre se indirizzo il flag aggiungendo 1, la funzione non mi da errori ma il driver va in Allarme. :wallbash:

Inserita:

prova con Modscan..funziona sempre. In questa maniera sei sicuro della correttezza degli indirizzi..

..il famoso Modbus teutonico.. :lol:

Inserita: (modificato)

Problema risolto.... :thumb_yello:

........un errore sul collegamento del cavo......

In pratica l'indirizzamento con la funzione MD_Master è il seguente:

1+ REG per i Flag di ingresso del drive

100001 + REG per i Flag d'uscita del drive

400001 + REG per i registri dati del drive

Modificato: da Mircovolpe

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