Comunicazione Modbus con PLC Elsist
Home › Forum › Terminali operatore (Weintek) › Comunicazione Modbus con PLC Elsist
- Questo topic ha 5 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 5 anni, 6 mesi fa da
Sergio Bertana.
-
AutorePost
-
Luglio 17, 2019 alle 12:36 pm #48586
Giuseppe Cattaneo
PartecipanteHo un applicazione che usa uno SlimLine Ethernet e un terminale MT8051iP che comunicano tra loro via Modbus TCP. Nei parametri di sistema del pannello ho selezionato come tipo di dispositivo MODBUS TCP/IP via ethernet, per non incappare nel problema dello shift di 1 negli indirizzi.
Ora vorrei replicare la stessa identica applicazione ma facendo comunicare PLC e pannello tramite porta seriale per lasciare libera la ethernet del PLC. Come devo fare?
Mi basta selezionare come tipo di dispositivo MODBUS RTU, RTU over TCP? Nel software del PLC devo cambiare qualcosa negli indirizzamenti?
Luglio 17, 2019 alle 1:23 pm #48589Sergio Bertana
Amministratore del forumPer comunicare con i PLC SlimLine puoi usare indifferentemente il protocollo MODBUS TCP/IP che ELSIST MODBUS, in entrambi i casi lo shift di 1 sull’indirizzamento è automaticamente corretto (Rimane il dover dividere per 2 l’indirizzo delle variabili WORD/DWORD/REAL).
Quando dici lasciare libera la porta Ethernet immagino tu intenda che devi collegare altri devices Ethernet e non vuoi utilizzare una switch di rete. Perchè sulla connessione Ethernet di default puoi connettere contemporaneamente più dispositivi Modbus TCP (E’ possibile configurare il numero, di default sono 3).
Scegliendo la connessione seriale conviene impostare MODBUS RTU e non devi fare altro. Da pagina web è possibile impostare il protocollo gestito (Over IP/RTU/Ascii, default RTU), attenzione alla impostazione dei parametri corretti di comunicazione (Modificabili da pagina web, default 115200, e, 8, 1).
Luglio 18, 2019 alle 6:39 am #48590Giuseppe Cattaneo
PartecipanteOk, perfetto.
La porta ethernet la devo lasciare libera perchè mi ci devo collegare con la rete aziendale che tramite MES dovrà prelevare alcune informazioni e nel mini quadretto che mi compone il dispositivo non ho lo spazio fisico per inserire anche uno switch. Mi interessava essere sicuro che tra i due tipi di modbus non ci fossero differenze negli indirizzi.
Strana la cosa dello shift sull’indirizzamento… perchè io mi ricordo che sul primo che ho configurato avevo sta problematica e quindi sono passato su modbus IDA per aggirarla…
Luglio 18, 2019 alle 8:19 am #48594Sergio Bertana
Amministratore del forumIl problema dello shift sull’indirizzamento Modbus purtroppo è un problema atavico, per evitare di indicare indirizzo 0 Movicon ha creato lo shift. In pratica nel master (Nel nostro caso l’HMI) si definisce indirizzo 1 ma in realtà nel protocollo viene passato l’indirizzo 0 e così di seguito.
Molti sistemi Modbus però non gestiscono correttamente lo shift ecco perchè a volte occorre sommare/sottrarre 1 all’indirizzo. Weintek per sopperire a questo problema nel protocollo MODBUS IDA ha aggiunto la scelta Zero-based Addressing che evita di sottrarre 1 all’indirizzo inviato sul protocollo.
Ottobre 22, 2019 alle 12:19 pm #50298Marcello
PartecipanteBuongiorno, volevo sapere se via ModBus da terminale Weintek sia possibile accedere alle memorie di sistema in sola lettura %MW0.130, %MW0.132 e %MB0.567.
Ottobre 22, 2019 alle 12:30 pm #50301Sergio Bertana
Amministratore del forumNo l’unico Data Block accessibile da Modbus è il DB100 accessibile con indirizzo Modbus 40000. Le System variables di sola lettura a cui tu fai riferimento sono mappate nel DB 0 e sono accessibili da programma utente con il loro indirizzo o meglio con il loro mnemonico, ma non possono essere lette da Modbus. La stessa cosa dicasi per le System variables di lettura e scrittura mappate nel DB 1.
Se ti serve accedere a queste variabili da Modbus li devi appoggiare ad una variabile allocata nel DB100.
-
AutorePost
- Devi essere connesso per rispondere a questo topic.