Vai al contenuto
PLC Forum


SoMachine e scheda esterna Modbus


Messaggi consigliati

Ciao a tutti,

devo implementare nel sistema delle schede Modbus esterne, in questo caso della Area SX scheda EXP485,

il problema è che se la connetto e gestisco tramite Modbus IOScanner funziona tutto correttamente,

mentre se cerco di comunicare via READ_VAR o WRITE_VAR non riesco neanche a collegarmi!

 

stesso PLC (TM241 porta seriale 2) stesso cablaggio stessi parametri .. niente!

il codice di errore con READ_VAR è CommError: 255, OperError: 12 (la funzione di comunicazione non è attiva)

presumo sia un problema di settaggio della FB READ_VAR .. ma mi sembra di averle provate proprio tutte,

 

certo via IOScanner funziona però mi serviva per altri motivi usare questa procedura,

qualche dritta? .. grazie 😅

 

Link al commento
Condividi su altri siti


zanellatofabio

Ciao, avevo provato una volta a leggere tramite read_var.

Ti lascio degli screen che avevo fatto per promemoria.

Sono con una cattiva risoluzione perchè sono delle stampe ripassate allo scanner.

Purtroppo ho perso il file. Oppure ci sarà nel pc ma chissà dove 🤣 ( è la vecchaia..... )

Nel mio caso leggevo 2 registri ( quantità 2 ) sulla seriale 1 e id slave 1.

 

uno.png

due.png

tre.png

Link al commento
Condividi su altri siti

grazie Fabio per l'interessamento,

ho provato e riprovato ma niente e la cosa strana è che con IOScanner funziona!

ovviamente e come anche da te indicato è disabilitato

grazie ancora

Link al commento
Condividi su altri siti

zanellatofabio

Di niente, se hai un convertitore seriale rs485 per pc e tanta pazienza puoi scaricare da internet il programma winmodbus.exe che funziona per un tempo limitato per far delle prove ma poi basta riavviarlo. In pratica setti il programma come slave seriale e ti metti in ascolto col pc. Dovresti vedere i pacchetti che arrivano dalla seriale del plc sono codici esadecimali ma se ben ricordo ti dice anche che funzione modbus arriva (es, FC03 oppure FC16) così puoi capire che differenza c'è nei due modi. Magari la scheda slave (che non conosco) è un pò schizzinosa e accetta solo certi comandi modbus.

 

winmodbus1.png

winmodbus.png

Link al commento
Condividi su altri siti

ho scaricato e testato l'ottimo programma che mi hai indicato e forse ho un indizio,

se carico il programma per IOScanner vedo tutti i pacchetti in scambio,

se passo alla versione Red/Write .... tutto tace! 😰

 

il programma è praticamente identico a quello che hai postato tu,

sembra che la porta in questa modalità non trasmetta nulla ...

il PLC ha la porta con gli stessi parametri dell'IOScanner ed in versione Master ...non capisco 😌

 

Link al commento
Condividi su altri siti

12 minuti fa, Water ha scritto:

se carico il programma per IOScanner vedo tutti i pacchetti in scambio,

se passo alla versione Red/Write .... tutto tace! 😰

 

Spesso l'errore è da imputarsi ad un errato indirizzamento (della porta e/o del dispositivo) oltre ai soliti parametri di comunicazione (Baud,parità,etc)

 

Dimenticavo : la Read_Var non può essere eseguita in continuo, deve essere eseguita quando disponibile. Ora non uso M241 ma su M340 e M221 direi che devi usare il bit di attività che ti dice che la funzione Read_Var è disponibile. Ricordo che la Read_Var è una funzione aciclica rispetto al tempo di esecuzione del PLC.

Modificato: da max.riservo
Link al commento
Condividi su altri siti

grazie Max, ormai è chiaro che il problema risieda nel PLC e non nella scheda esterna,

la FB viene richiamata ciclicamente tramite un blinker con tempi nell'ordine del mezzo secondo,

mi sa che come dici devo lavorare sui parametri del PLC ma sono veramente pochi e mi sembra di averli provati tutti,

 

 

 

Link al commento
Condividi su altri siti

rispondo a me stesso e spero serva anche a qualcun'altro ...

penso di aver capito il problema anche se non posso testarlo non avendo quì il PLC,

avete presente quando ci si scervella perchè la macchina non parte e poi il problema è che manca la benzina? 😡

 

il PLC M241 ha due porte seriali e solitamente uso sempre la prima in automatico, senza pensarci troppo,

in questo caso ho usato la seconda per lasciare la prima ad altri scopi anche qui senza pensarci troppo,

ergo l'indirizzo dello slave non sarà più esempio '1.5' ma '2.5' essendo la prima cifra la porta di comunicazione,

in pratica mancava la benzina!! 🥵 🙈 🤐

 

ringrazio Max e Fabio per gli utili spunti 👍

 

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