Exemplo n.º 1
0
def readModbusData():
    logging.basicConfig()
    log = logging.getLogger()
    log.setLevel(logging.DEBUG)

    client = ModbusClient(method='rtu',
                          port='/dev/ttyUSB0',
                          baudrate=38400,
                          timeout=1,
                          parity='N',
                          stopbits=2)
    print(client.connect())
    client.debug_enabled()

    log.debug("Read holding registers")
    response = client.read_holding_registers(0, 1, unit=0x1B)
    response1 = client.read_holding_registers(0, 1, unit=0x1B)

    print(response)  #This returns the response for whole length of registers
    print(response1)
    # print(response.getRegister(0));  #This returns value of only one

    client.close()
Exemplo n.º 2
0
obj = json.loads(data)

for met in range(len(obj["meters"])):
 client = ModbusClient(method = obj["meters"][met]["method"], port = obj["meters"][met]['portSlave'], timeout=1 , stopbits=2, bytesize=8, parity='N', baudrate=38400)
 
 
 if client.connect() == True: 
  print("Connected meter {} with address: {}".format(obj["meters"][met]["nameMeter"], obj["meters"][met]["slaveID"]))
 else:
  print("Failed connection")
  exit()
  
 print("_______________________________________________________")
 print("_______________________________________________________")
 
 client.debug_enabled()
 #enable hardware handshake IMPORTANT
 #client.socket.rtscts=True


 #print(result.raw())

 for i in range(len(obj["meters"][met]["registers"])):
  print("Register Adrress: {}".format(obj["meters"][met]["registers"][i]["address"]))
  result = client.read_input_registers(obj["meters"][met]["registers"][i]["address"], 2, unit = obj["meters"][met]["slaveID"])
  #print(result) #response regs
  #print(result.registers) #print values of register address  

  reg_list = result.registers #list: value of registers

  #PROGRAM: DECODING