コード例 #1
0
    def read_input_registers(self,
                             slave_addr,
                             starting_address=0,
                             register_quantity=10,
                             signed=True):
        register_value = list(range(6))
        modbus_pdu = uModBusFunctions.read_input_registers(
            starting_address, register_quantity)

        #resp_data=bytearray(b'\t%\x00Z\x00\x00\x00d\x00\x00\x00\x19\x00\x00\x01\xf4\x00/\x00\x00')
        resp_data = self._send_receive(modbus_pdu, slave_addr, True)

        register_value[0] = int.from_bytes(resp_data[0:2],
                                           'big') * 0.1  #1LSB 0.1V
        register_value[1]=(int.from_bytes(resp_data[2:4],'big') \
                 + int.from_bytes(resp_data[4:6],'big')*65536) \
                 * 0.001 #1LSB 0.001A
        register_value[2]=(int.from_bytes(resp_data[6:8],'big') \
                 + int.from_bytes(resp_data[8:10],'big')*65536) \
                 * 0.1 #1LSB 0.1W
        register_value[3]=(int.from_bytes(resp_data[10:12],'big') \
                 + int.from_bytes(resp_data[12:14],'big')*65536) \
                 * 1 #1LSB 1Wh
        register_value[4] = int.from_bytes(resp_data[14:16],
                                           'big') * 0.1  #1LSB 0.1Hz
        register_value[5] = int.from_bytes(resp_data[16:18],
                                           'big') * 0.01  #1LSB 0.01V

        return register_value
コード例 #2
0
    def read_input_registers(self, slave_addr, starting_address, register_quantity, signed=True):
        modbus_pdu = functions.read_input_registers(starting_address, register_quantity)

        resp_data = self._send_receive(modbus_pdu, slave_addr, True)
        register_value = self._to_short(resp_data, signed)

        return register_value