Vai al contenuto
PLC Forum


Codice Funzione Modbus S71200


enricojester1

Messaggi consigliati

enricojester1

buon giorno ragazzi e buon ferragosto

sto cercando di far comunicare la mia cpu s71214c in modbus rtu con inverter mitsubischi ( in realtà sto cercando di comunicare con qualsiasi inverter che non sia una serie v20 siemens)

quando vado a scrivere con il master l' errore è sempre il medesimo che io colleghi un mitsubischi o un allen brandley come inverte e cioè...codice funzione non supportato 8381.

la mia domanda è semplice e spero mi aiutate...dove vado ad impostare il codice funzione?

so che ogni inverter ha il suo ma nel master che mi da la siemens non so dove scriverlo

Link al commento
Condividi su altri siti


la mia domanda è semplice e spero mi aiutate...dove vado ad impostare il codice funzione?

so che ogni inverter ha il suo ma nel master che mi da la siemens non so dove scriverlo

Non mi risulta che esista un codice specifico per ogni inverter.

Il Modbus prevede si possano fare letture e scritture di ingressi, uscite e registri, di tipo bool e word.

Si può inoltre leggere/scrivere un solo registro (o ingresso/uscita) alla volta, oppure più registri consecutivi.

Questo almeno è quanto previsto dal Modbus.

Non tutti i dispositivi però supportano tutte le funzioni.

L'errore 8381 dice che stai utilizzando una funzione non supportata dal tuo dispositivo.

Per esempio, cerchi di scrivere 10 registri e il dispositivo supporta invece solo la scrittura singola.

Link al commento
Condividi su altri siti

enricojester1

ecco una diapositiva con l' errore in questione ho sfruttato i blocchi della simens cambiando solamente il numero di registro

ho provato a cambiare il valore mode e data len, quest' ultimo infatti identifica il numero di registri da scrivere contemporaneamente ..ma niente da fare

Link al commento
Condividi su altri siti

enricojester1

scusa la domanda e l' ignoranza

quando dici che il dispositivo supporta la scrittura singola di un registro vuol dire che posso scrivere solo velocità o control word e non tutte e due?

no perchè il programma va a step da quel che vedo e cerca di scrivere un registro per volta

ma al primo tentativo mi restituisce subito l' errore

Link al commento
Condividi su altri siti

enricojester1

ok forse ho sbagliato a mettere il codice identificativo su mode...

ecco il mio ragionamento e correggetemi se sbaglio..

ogni registro ha un codice funzione lettura\scrittura solo lettura o solo scrittura

se su mode inserisco il codice solo scrittura su un registro lettura\scrittura egli non funzionerà..

corretto?

Link al commento
Condividi su altri siti

Giuseppe Signorella

Il codice funzione si imposta se così si può dire con l'indirizzo del registro che vuoi leggere e/o scrivere.

Anche se in realtà non è proprio corretta questa affermazione,

Per poter essere più preciso bisognerebbe vedere il manuale dell' inverter pe capire come vengono identificati i registri.

In merito all' S7 1200

Per il codice funzione 01 i registri vanno da 1 a 9999 quindi scrivendo direttamente l'indirizzo di un registro compreso in questo range dici al sistema che vuoi utilizzare il codice funzione 01.

Per il codice funzione 02 i registri vanno da 10001 a 19999 quindi scrivendo direttamente l'indirizzo di un registro compreso in questo range dici al sistema che vuoi utilizzare il codice funzione 02.

Per il codice funzione 03 i registri vanno da 40001 a 49999 (oppure da 400001 a 465535) quindi scrivendo direttamente l'indirizzo di un registro compreso in questo range dici al sistema che vuoi utilizzare il codice funzione 03.

Per il codice funzione 04 i registri vanno da 30001 a 39999 (oppure da 400001 a 465535) quindi scrivendo direttamente l'indirizzo di un registro compreso in questo range dici al sistema che vuoi utilizzare il codice funzione 04.

questi codici funzione essendo in lettura hanno "MB_MODE=0"

Per la scrittura il discorso è simile. Sul manuale è ben specificato.

Facciamo un esempio.

Ipotizziamo che il tuo inverter accetti il codice funzione 03, e tu lo voglia utilizzare. Ipotizziamo sempre che tu voglia leggere il registro n° 3 Se ne manuale dell'inverter trovi scritto ad esempio che il 3 registro corrisponde a 40004, ti basta scrivere questo valore e sei a posto. In alternativa, devi sommare il valore dell'indirizzo del registro che vuoi leggere alla modalità del codice funzione che vuoi utilizzare ( assicurati sempre che il dispositivo supporti il codice funzione che vuoi utilizzare ) facendo 40001+3=40004. Se vuoi leggere il registro 126 fai 40001+126=40127

Spero di essere stato chiaro.

Ciao

Modificato: da Giuseppe Signorella
Link al commento
Condividi su altri siti

Come ti ha fatto notare Beppe, stai attento all'indirizzo.

Nel tuo caso, con MODE = 1 e DATA_ADDR = 40009, significa che vuoi scrivere sul nono registro del tuo dispositivo.

Se nel tuo dispositivo i registri partono da R0, significa che stai cercando di scrivere su R8.

Link al commento
Condividi su altri siti

enricojester1

grazie mille ragazzi mi avete illuminato!

per il momento sono riuscito a comunicare con un powerflex allen branley 4m con esito positivo!

domani provo con il mitsubishi

Link al commento
Condividi su altri siti

enricojester1

eccomi di nuovo..non sono riuscito a dormire e sto sbattendo la testa cercando di comunicare con un mitsubishi d700 sc.

ho seguito le indicazioni fornite gentilmente da batta e giuseppe ma riesco solamente ad accedere in lettura sui registri di parola di stato e velocità.

nel tentativo di scrivere nella control word il master mi rilascia sempre il medesimo errore 8382 data len error..ho provato a cambiare il valore data len ma

niente da fare

4f5fc959d37a78ac837a43196f21f0a6.png

per la scrittura addirittura il manuale mi suggerisce il codice funzione h10 scrittura a più registri

mi sembra strano..

so che sto chiedendo molto e mi avete aiutato già abbastanza ma se aveste qualche dritta ve ne sarei grato

grazie un saluto

Link al commento
Condividi su altri siti

Giuseppe Signorella

Il protocollo modbus e in grado di leggere per ogni singolo registro un nassimo di solo 16 bit. (1 word) Se ad esempio vuoi leggere o scrivere un numero (una variabile) di tipo reale quindi a 32 bit, devi leggere/scrivere 2 registri consecutivi per come ti ha detto batta. Aggiungo che potrestri aver la necessità di invertire l'ordine delle due word.

Modificato: da Giuseppe Signorella
Link al commento
Condividi su altri siti

enricojester1

ok credo che sia come avete detto voi..

 

 

abf798bab3cc58573c7e70bac710a52b.png

 

d628674931f2bb33098abb6ab12502cd.png

 

ma scusa ancora l' ignoranza ..se devo scrivere consecutivamente 2 registri devo richiamare 2 master contemporaneamente mettendo data estensione 2?

 

spero abbiate pietà

Link al commento
Condividi su altri siti

 

ma scusa ancora l' ignoranza ..se devo scrivere consecutivamente 2 registri devo richiamare 2 master contemporaneamente mettendo data estensione 2?

Certo che no.

Con un solo richiamo leggi il numero di registri consecutivi impostato.

Link al commento
Condividi su altri siti

enricojester1

sono esausto..penso di averle provate tutte..

 

ho provato ad impostare per il registro che mi interessava mode 1 scrittura di singolo registro e mode 2 scrittura di uno o più registri e per ogni uno ho combinato vari valori numerici  data len da 0 a 32 (lunghezza dati)

 

niente da fare.

 

ho provato a scambiare i registri con tutte le possibili combinazioni..l' errore è sempre 8382 o 8383 nel caso sbagliavo registro

 

ho provato a richiamare 2 master contemporanemente, non funziona per ovvi motivi

 

ho provato a richiamare i master in sequenza

 

ma il mitsubishi a piedi piantati e braccia incrociate non vuole comunicare con il plc

 

a sto punto appena torna dalle vacanze il rappresentante mi farò dare delle lucidazioni

 

e appena so qualcosa lo comunicherò nella speranza di aiutare i posteri

Link al commento
Condividi su altri siti

  • 4 weeks later...

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