Vai al contenuto
PLC Forum


Connessioni multiple mb client S7 1200


Peppe2801

Messaggi consigliati

Ciao a tutti, 

sto cercando aiuto per un progetto. Ho svariati dispositivi modbus rtu collegati tramite convertitore via tcp a un s7 1200. Per gestirli uso il blocco mb client 4.2. 
L’s7 può gestire 8 connessioni tcp contemporaneamente, ma, io ho bisogno di gestire 20 o anche 30 connessioni, non contemporaneamente. Ho fatto varie prove tra cui quello di creare un sequenziatore con frequenza 1hz che abilita l’ingresso disconnect in serie con l’out busy. Diciamo che funziona, ma spesso molti blocchi vanno in errore 8087 (troppe connessioni attive contemporaneamente). Qualcuno può darmi esempi-consigli?? 
Ringrazio anticipatamente. 

Modificato: da Peppe2801
Link al commento
Condividi su altri siti

  • Peppe2801 changed the title to Connessioni multiple mb client S7 1200

On 5/26/2023 at 11:41 PM, Peppe2801 said:

un sequenziatore con frequenza 1hz

un sequenziatore con frequenza 1hz potrebbe essere troppo veloce. Non ho mai provato con un 1200, ma con una cpu 300 ho dovuto usare 4 secondi. Le operazioni Connect/Disconnect necessarie per usare una unica risorsa erano lente

Link al commento
Condividi su altri siti

Ciao peppe, giusto per fare un attimo ordine : hai una sola linea TCP, verso un convertitore TCP/RTU Modbus a cui sono collegati svariati oggetti con ID xx, giusto ?

 

Se è cosi (perché usi il singolare), perché parli di più connessioni in parallelo ? L'istanza TCP è unica, devi cambiare la unit ID nella richiesta, perché il convertitore possa instradare correttamente il pacchetto sino al dispositivo RTU.

 

Dipende più dalla rete RTU che dal PLC, l'intervallo di chiamata. Se segui l'esempio Siemens, inseriscono un timer di attesa tra una chiamata e l'altra (a seconda della CPU 1200, ho in giro PLC che gestiscono da 100 ms a 500 ms) e solitamente lascio questo timer anche per compensare alcune latenze, lato RTU.

 

Altra fattore da considerare : il pacchetto è solo in lettura con registri attigui o hai diverse richieste lettura/scrittura, perché hai aree non attigue da interrogare ? 

 

Buona giornata, Ennio

Link al commento
Condividi su altri siti

Grazie per le risposte ragazzi, cerco di essere più preciso. Al S7 sono collegati 3 convertitori TCP - RTU impostati a 200ms. Ogni convertitore gestisce 5 o 6 dispositivi I/O tra i quali DI e DO, AI e AO, quindi, devo gestire sia letture che scritture. Al momento ho trovato una soluzione che sembri funzionare bene ma devo ancora terminarla:

Per quanto riguarda i DO e AO (quindi scrittura) li tengo costantemente in standby con il parametro disconnect sempre attivo. Quando un bit o una variabile cambia di stato abilito la comunicazione con lo slave e al termine della scrittura tutto torna in standby con il parametro DONE. In questo modo non occupo la rete inutilmente ma solo quando mi serve.

Per quanto riguarda i DI e AI li attivo e disattivo con un sequenziatore a 1hz controllati dal parametro connect di ogni blocco MB. Stavo pensando però di separare da questo sequenziatore tutto ciò che è AI, che, essendo dati non importati come frequenza di aggiornamento, posso farli attivare ogni 15/20 secondi. 

In ogni caso ogni blocco MB ha la sua db di istanza e ID dedicata.  

 

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