Exemplo n.º 1
0
HOST_ADDR = "192.168.8.20"
HOST_PORT = 502


class ModbusClient(ModbusClient):

    def reg_read(self, address, reg=0x0000, length=0x01):
        if address is not None:
            self.unit_id(address)
        return self.read_holding_registers(reg, length * 2)

    @staticmethod
    def reg_dump(temp=None):
        if temp is not None:
            print("Temperature:     {:.1f}".format(float(temp[0]/10)))
            print("Humidity:   {:10.1%}".format(float(temp[1] / 1000)))


if __name__ == '__main__':

    c = ModbusClient(host=HOST_ADDR, port=HOST_PORT, auto_open=True, auto_close=True, timeout=1)

    while True:
        if c.last_error() > 0:
            c.close()
            c = ModbusClient(host=HOST_ADDR, port=HOST_PORT, auto_open=True, auto_close=True, timeout=1)

        c.reg_dump(c.reg_read(address=0x01))