Пример #1
0
def ModbusWrite():
    try:
        try:
            modbus = ModbusProtocol(updatecallback=RegisterResults,
                                    address=modbusaddress,
                                    name=device,
                                    rate=baudrate,
                                    Parity=parity,
                                    OnePointFiveStopBits=OnePointFiveStopBits)

        except Exception as e1:
            print("Test all: Error opening serial device...: " + str(e1))
            return False

        LowByte = writevalue & 0x00FF
        HighByte = writevalue >> 8
        Data = []
        Data.append(HighByte)  # Value for register (High byte)
        Data.append(LowByte)  # Value for register (Low byte)

        RegStr = "%04x" % startregister
        modbus.ProcessMasterSlaveWriteTransaction(RegStr, len(Data) / 2, Data)
        DisplayComErrors(modbus)
    except Exception as e1:
        print("Error write device: " + str(e1))
        return False
    return True
Пример #2
0
def TestAllAddresses():

    try:
        modbus = ModbusProtocol(updatecallback=RegisterResults,
                                address=0,
                                name=device,
                                rate=baudrate,
                                Parity=parity,
                                OnePointFiveStopBits=OnePointFiveStopBits)
    except Exception as e1:
        print("Test all: Error opening serial device...: " + str(e1))
        return False

    try:
        for Address in range(0, 0x100):
            modbus.Address = Address
            print("Testing modbus address %02x" % Address)
            for Reg in range(startregister, endregister):
                RegStr = "%04x" % Reg
                modbus.ProcessTransaction(RegStr, 1)

        DisplayComErrors(modbus)
    except Exception as e1:
        print("Error reading device: " + str(e1))
        return False

    return True
Пример #3
0
    try:
        modbus = None

        if writevalue != None and modbusaddress != "all":
            if not ModbusWrite():
                sys.exit(2)

        elif modbusaddress != "all":

            try:
                if not useTCP:
                    modbus = ModbusProtocol(
                        updatecallback=RegisterResults,
                        address=modbusaddress,
                        name=device,
                        rate=baudrate,
                        Parity=parity,
                        OnePointFiveStopBits=OnePointFiveStopBits)
                else:
                    modbus = ModbusProtocol(updatecallback=RegisterResults,
                                            address=modbusaddress,
                                            host=hostIP,
                                            port=TCPport)
            except Exception as e1:
                print("Error opening serial device...: " + str(e1))
                sys.exit(2)
            try:
                for Reg in range(startregister, endregister):
                    RegStr = "%04x" % Reg
                    modbus.ProcessTransaction(RegStr, 1)
Пример #4
0
    if not stopbits == None:
        OnePointFiveStopBits = True
    else:
        OnePointFiveStopBits = False

    if not parity == None:
        if not parity == 1 and not parity == 2:
            print(HelpStr)
            sys.exit(2)

    modbus = None
    try:
        modbus = ModbusProtocol(RegisterResults,
                                modbusaddress,
                                device,
                                baudrate,
                                Parity=parity,
                                OnePointFiveStopBits=OnePointFiveStopBits)
        pass
    except Exception as e1:
        print("Error opening serial device...: " + str(e1))
        sys.exit(2)
    try:
        for Reg in range(startregister, endregister):
            RegStr = "%04x" % Reg
            modbus.ProcessMasterSlaveTransaction(RegStr, 1)
    except Exception as e1:
        print("Error reading device: " + str(e1))
        sys.exit(2)

    print("OK")