Exemplo n.º 1
0
    def __init__(self, parent_name, parent, length=1000):
        self._box = None
        self._parent_name = parent_name
        self._target = None
        self._source = None
        self._run_drive = False

        # data points
        self._cmd_interrupt = CommandToggle(
            parent_name + "/Cmd_Interrupt_Toggle", parent, False)
        self._length = Variant(parent_name + "/Length", parent, length,
                               ValueDataType.Int)
        self._box_position = Variant(parent_name + "/BoxPosition", parent,
                                     False, ValueDataType.Float)
        self._box_id = Variant(parent_name + "/BoxId", parent, "",
                               ValueDataType.String)
        self._occupied = Switch(parent_name + "/Occupied", parent, False, True)
        self._transport_allowed = Switch(parent_name + "/TransportAllowed",
                                         parent, False, False)
        self._ready_handover = Switch(parent_name + "/ReadyHandover", parent,
                                      False, False)
        self._ready_takeover = Switch(parent_name + "/ReadyTakeover", parent,
                                      True, False)
        self._source_name = Variant(parent_name + "/SourceName", parent, "",
                                    ValueDataType.String)
        self._target_name = Variant(parent_name + "/TargetName", parent, "",
                                    ValueDataType.String)
Exemplo n.º 2
0
 def __init__(self, name, parent = None):
     super().__init__(name, parent)
     
     # states
     self._state_on = Variant("1_State/SwitchedOn", self, False, ValueDataType.Boolean)
     
     self._state_str = Variant("1_State/State", self, "Idle", ValueDataType.String)
     self._state_ready = Variant("1_State/Ready", self, False, ValueDataType.Boolean)
     self._state_busy = Variant("1_State/Busy", self, False, ValueDataType.Boolean)
     
     # commands
     
     self._cmd_switch_on = CommandTap("2_Commands/Switch_on", self, False, lambda v: self.switch_on(v))
     self._cmd_switch_off = CommandTap("2_Commands/Switch_off", self, False, lambda v: self.switch_off(v))
     self._cmd_switch_clean = CommandTap("2_Commands/Clean", self, False, lambda v: self.clean(v))
     self._cmd_switch_order = CommandTap("2_Commands/Order", self, False, lambda v: self.order(v))
     
     # orders
     self._order_coffee = ModelValue("3_Order/Coffee", self, ValueDataType.Boolean, False, True)
     self._order_espresso = ModelValue("3_Order/Espresso", self, ValueDataType.Boolean, False, True)
     self._order_intensity = ModelValue("3_Order/Intensity", self, ValueDataType.Int, 0, True)
     self._order_without_caffeine = ModelValue("3_Order/WithoutCaffeine", self, ValueDataType.Boolean, False, True)
     self._order_milk = ModelValue("3_Order/Addition/Milk", self, ValueDataType.Boolean, False, True)
     self._order_cream = ModelValue("3_Order/Addition/Cream", self, ValueDataType.Boolean, False, True)
     self._order_sugar = ModelValue("3_Order/Addition/Sugar", self, ValueDataType.Boolean, False, True)
     
     # parameters
     self._param_time_coffee = ModelValue("4_Parameter/Time_Coffee", self, ValueDataType.Float, 8.0, True)
     self._param_time_espresso = ModelValue("4_Parameter/Time_Espresso", self, ValueDataType.Float, 4.0, True)
     self._param_time_cleaning = ModelValue("4_Parameter/Time_Cleaning", self, ValueDataType.Float, 10.0, True)
     self._param_water_output = ModelValue("4_Parameter/Water_per_output", self, ValueDataType.Float, 10.0, True)
     
     # internal
     self._beans_container_1 = Switch("5_Beans/Container_coffee_empty", self, False, True)
  
     self._beans_container_2 = Switch("5_Beans/Container_espresso_empty", self, False, True)
     
     self._water_tank_empty = Switch("6_Water/Water_tank_empty", self, False)
     self._water_tank_level = LevelSensor("6_Water/Water_tank_level", self, 100.0, True)
     self._water_tank_available = Switch("6_Water/Water_tank_available", self, True, True)
     
     self._driptray_full = Switch("7_DripTray/Driptray_full", self, False, True)
     self._driptray_available = Switch("7_DripTray/Driptray_available", self, True, True)
     
     self._groundstray_full = Switch("8_GroundsTray/Groundstray_full", self, False, True)
     self._groundstray_available = Switch("8_GroundsTray/Groundstray_available", self, True, True)
     
     # sensors
     self._temp = TemperatureSensor("9_Sensors/Temperatur", self, 0.0, 83, 1)
     self._flow = TemperatureSensor("9_Sensors/Flow", self, 0.0, 0.05, 1)
     self._cup_available = Switch("9_Sensors/Cup_available", self, False, True)
     
     self._state = OperationState.Off
     
     self._t = timer()
     
     PaymentSystem("20_PaymentSystem", self)
Exemplo n.º 3
0
    def __init__(self,
                 name,
                 reference_designation,
                 area=None,
                 length=1000,
                 speed=200):

        self._name = name
        self._area = area
        self._length = length
        self._speed = speed
        self._source = None
        self._target = None

        self._error_handler = ErrorHandler(area, name)
        self._error_handler.link_to_parent(area.error_handler)
        self._reference_designation = Variant(name + "/ReferenceDesignation",
                                              area, reference_designation,
                                              ValueDataType.String)
        self._type = Variant(name + "/Type", area, "Conveyor",
                             ValueDataType.String)

        self._transport_handler = TransportHandler(name, area, length)
        self._transport_handler.on_request_source = self._on_request_source
        self._transport_handler.on_request_target = self._on_request_target

        # data points
        self._reset_error = CommandTap(name + "/Cmd_ResetError_Tap", area,
                                       False,
                                       lambda v: self._reset_error_request())
        self._photoeye = Switch(name + "/Photoeye", area, False, False)

        self._drive = Drive(name, "Drive", reference_designation[0:-3] + "D01",
                            speed, area)
        self._drive.error_handler.link_to_parent(self.error_handler)

        self._auto_clear = CommandToggle(name + "/Sim/AutoClear_Toggle", area,
                                         False)
        self._counter = 0

        self._auto_add_boxes = CommandToggle(
            name + "/Sim/AutoAddBoxes_Toggle", area, False,
            lambda v: self._change_speed_request())
        self._auto_add_boxes_interval = Variant(
            name + "/Sim/AutoAddBoxes_Interval", area, 5, ValueDataType.Int)
        self._auto_add_boxes_current = 0

        CommandTap(name + "/Sim/AddBox_Tap", area, False,
                   lambda v: self.transport_handler.insert_new_box())
        CommandTap(name + "/Sim/DriveErrorTap", area, False,
                   lambda v: self._drive.sim_error())
        CommandTap(name + "/Sim/JamErrorTap", area, False,
                   lambda v: self.sim_jam_error())
Exemplo n.º 4
0
    def __init__(self, name, reference_designation, parent=None):
        super().__init__(name, parent)

        self._error_handler = ErrorHandler(self)
        self._reference_designation = Variant("ReferenceDesignation", self,
                                              reference_designation,
                                              ValueDataType.String)
        self._type = Variant("Type", self, "Area", ValueDataType.String)

        self._conv_list = []

        self._area_on = CommandToggle("Cmd_AreaOn_Toggle", self, False,
                                      lambda v: self._area_state_changed(v))
        self._auto = CommandToggle("Cmd_ModeAuto_Toggle", self, True,
                                   lambda v: self._area_state_changed(v))
Exemplo n.º 5
0
    def __init__(self, parent, prefix=None):
        self._prefix = ""
        if prefix:
            self._prefix = prefix + "/"

        self._error_list = []
        self._error_src = Variant(self._prefix + "ErrorSource", parent, "",
                                  ValueDataType.String)
        self._error_active = Variant(self._prefix + "ErrorActive", parent,
                                     False, ValueDataType.Boolean)
        self._error_msg = Variant(self._prefix + "ErrorMessage", parent, "",
                                  ValueDataType.String)
        self._child_error_active = Variant(self._prefix + "ChildErrorActive",
                                           parent, False,
                                           ValueDataType.Boolean)
        self._child_errors = VariantDataMap(
            self._prefix + "ChildErrors", parent,
            [("Reference Designation", ValueDataType.String),
             ("Error MSG", ValueDataType.String)])
        self._parent_error_handler = None
Exemplo n.º 6
0
    def __init__(self, name, reference_designation, area=None, height=5000):
        self._name = name
        self._speed_fast = 1000
        self._speed_slow = 500
        self._area = area

        self._error_handler = ErrorHandler(area, name)
        self._error_handler.link_to_parent(area.error_handler)
        self._reference_designation = Variant(name + "/ReferenceDesignation",
                                              area, reference_designation,
                                              ValueDataType.String)

        self._move_fast = CommandToggle(name + "/Cmd_MoveFast_Toggle", area,
                                        True,
                                        lambda v: self._change_speed_request())
        self._reset_error = CommandTap(name + "/Cmd_ResetError_Tap", area,
                                       False,
                                       lambda v: self._reset_error_request())
        self._lift_position = Variant(name + "/LiftPosition", area, height / 2,
                                      ValueDataType.Float)

        self._conveyor = Conveyor(name + "/Conv", reference_designation, area,
                                  1000, 200)
        self._conveyor.transport_handler.on_request_source = self._on_request_source
        self._conveyor.transport_handler.on_request_target = self._on_request_target

        self._drive = DrivePos(name, "LiftDrive",
                               reference_designation[0:-3] + "D02",
                               self._speed_fast, area)
        self._drive.error_handler.link_to_parent(self.error_handler)
        self._drive.encoder = height / 2

        Switch(name + "/GapCheck_1", area, False, False)
        Switch(name + "/GapCheck_2", area, False, False)
        self._in_motion = Switch(name + "/InPosition", area, False, False)
        self._in_position = Switch(name + "/InMotion", area, False, False)

        self._next_source = None
        self._next_target = None
        self._lift_source = None
        self._lift_target = None
Exemplo n.º 7
0
    def __init__(self,
                 parent_name,
                 name,
                 reference_designation,
                 speed=100,
                 parent=None):

        self._manual_on = CommandToggle(parent_name + "/" + name +
                                        "/Cmd_ManualOn_Toggle",
                                        parent,
                                        False,
                                        None,
                                        condition=lambda: self.manual_mode)

        self._manual_mode = Switch(parent_name + "/" + name + "/ManualMode",
                                   parent, False, False)
        self._drive_on = Switch(parent_name + "/" + name + "/DriveOn", parent,
                                False, False)
        self._drive_speed = Variant(parent_name + "/" + name + "/CurrentSpeed",
                                    parent, 0, ValueDataType.Int)
        self._drive_speed_setpoint = Variant(
            parent_name + "/" + name + "/SetpointSpeed", parent, speed,
            ValueDataType.Int)
        self._drive_current = Variant(parent_name + "/" + name + "/Current",
                                      parent, 0.0, ValueDataType.Float)
        self._drive_encoder = Variant(parent_name + "/" + name + "/Encoder",
                                      parent, 0.0, ValueDataType.Float)

        self._error_handler = ErrorHandler(parent, parent_name + "/" + name)
        self._reference_designation = Variant(
            parent_name + "/" + name + "/ReferenceDesignation", parent,
            reference_designation, ValueDataType.String)
        self._type = Variant(parent_name + "/" + name + "/Type", parent,
                             "Drive", ValueDataType.String)
Exemplo n.º 8
0
    def __init__(self,
                 parent_name,
                 name,
                 reference_designation,
                 speed=1000,
                 parent=None):
        super().__init__(parent_name, name, reference_designation, speed,
                         parent)

        self._busy = Switch(parent_name + "/" + name + "/Busy", parent, False,
                            False)
        self._target = Variant(parent_name + "/" + name + "/Target", parent, 0,
                               ValueDataType.Int)
Exemplo n.º 9
0
    def __init__(self, name, reference_designation, parent=None):
        super().__init__(name, parent)

        self._error_handler = ErrorHandler(self)
        self._reference_designation = Variant("ReferenceDesignation", self,
                                              reference_designation,
                                              ValueDataType.String)
        self._type = Variant("Type", self, "System", ValueDataType.String)

        self._on = CommandTap("Cmd_SystemOn_Tap", self, False,
                              lambda v: self._switch_on_request(v))
        self._off = CommandTap("Cmd_SystemOff_Tap", self, False,
                               lambda v: self._switch_off_request(v))

        self._orders = VariantDataMap("Orders", self,
                                      [("id", ValueDataType.String),
                                       ("article", ValueDataType.String),
                                       ("length", ValueDataType.Int),
                                       ("weight", ValueDataType.Int)])
        self._initialize_orders()

        self._areas = []
Exemplo n.º 10
0
    def __init__(self, name, parent=None):
        super().__init__(name, parent)

        self._type = Variant("Type", self, "BA", ValueDataType.String)
        self._t1 = TemperatureSensorBA("T1",
                                       self,
                                       initial=21.5,
                                       range=0.5,
                                       delay=5)
        self._t2 = TemperatureSensorBA("T2",
                                       self,
                                       initial=21.2,
                                       range=0.2,
                                       delay=5)
        self._t3 = TemperatureSensorBA("T3",
                                       self,
                                       initial=21.3,
                                       range=0.3,
                                       delay=5)
        self._t4 = TemperatureSensorBA("T4",
                                       self,
                                       initial=21.9,
                                       range=0.1,
                                       delay=5)