Vai al contenuto

Acquisizione registri Modbus da Python su router UR32

Home Forum Soluzioni di comunicazione cellulare Milesight Acquisizione registri Modbus da Python su router UR32

Stai visualizzando 2 post - dal 1 a 2 (di 2 totali)
  • Autore
    Post
  • #84855
    Anonimo
    Inattivo

    Sto utilizzando un router Milesight UR32 ed ho configurato il Modbus client sul router per gestire tramite porta seriale RS485 alcuni valori tramite Modbus RTU, questo è lo screenshot della mia configurazione.

    Ora mi chiedevo se è possibile leggere da programma Python i registri mappati nel Modbus client?

    #84861
    Sergio Bertana
    Amministratore del forum

    La soluzione migliore a mio avviso è di gestire la comunicazione Modbus direttamente da Python, utilizzando la libreria pymodbus. Tramite PIP ho installato sul router la versione 3.8.6 poi ho realizzato il semplice programma di test che riporto.

    # ==============================================================================
    # GESTIONE MODBUS
    # ==============================================================================
    # Gestione Modbus.
    # ------------------------------------------------------------------------------
    
    import serial
    from pymodbus.client import ModbusSerialClient
    
    def Modbus():
    
        # --------------------------------------------------------------------------
        # TEST MODBUS
        # --------------------------------------------------------------------------
        # Test Modbus.
    
        client = ModbusSerialClient(
            port="/dev/ttymxc1",
            baudrate=115200,
            parity='E',
            stopbits=1,
            bytesize=8,
            timeout=1
        )
    
        client.connect()
        result=client.read_holding_registers(address=10, count=2, slave=1)
        print(result.registers)
        client.close()
    
    # ==============================================================================
    # ESECUZIONE PROGRAMMA
    # ==============================================================================
    # Esecuzione programma.
    # ------------------------------------------------------------------------------
    
    if __name__=='__main__':
        Modbus()
    
    # [End of file]
Stai visualizzando 2 post - dal 1 a 2 (di 2 totali)
  • Devi essere connesso per rispondere a questo topic.