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)
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)
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())
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))
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
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
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)
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)
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 = []
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)