public override void ZoneInit() { base.ZoneInit(); AssignHardware(typeof(EnumAxisName), typeof(EnumInportName), typeof(EnumOutportName)); AxisSortingPNPY = ThisAxis(EnumAxisName.SortingPNPY); AxisSortingPNPZ = ThisAxis(EnumAxisName.SortingPNPZ); NGBoxFullSensor[0] = ThisInport(EnumInportName.SortingPNPNGBoxFull1); NGBoxFullSensor[1] = ThisInport(EnumInportName.SortingPNPNGBoxFull2); NGBoxFullSensor[2] = ThisInport(EnumInportName.SortingPNPNGBoxFull3); NGBoxFullSensor[3] = ThisInport(EnumInportName.SortingPNPNGBoxFull4); NGBoxBackSenser = ThisInport(EnumInportName.SortingPNPNGBoxBack); NGBoxFrontSensor = ThisInport(EnumInportName.SortingPNPNGBoxFront); AxisSortingPNPY.AddPoints(typeof(EnumPointPNPY)); AxisSortingPNPZ.AddPoints(typeof(EnumPointPNPZ)); PNPCylinder.Add(EnumCellIndex.左电芯, new CylinderControl(/*"左电芯Z气缸", "下降", "上升",*/ ThisOutport(EnumOutportName.SortingPNPCyLeftDown), ThisOutport(EnumOutportName.SortingPNPCyLeftUp), ThisInport(EnumInportName.SortingPNPCyLeftDown), ThisInport(EnumInportName.SortingPNPCyLeftUp))); PNPCylinder.Add(EnumCellIndex.中电芯, new CylinderControl(/*"中电芯Z气缸", "下降", "上升",*/ ThisOutport(EnumOutportName.SortingPNPCyMidDown), ThisOutport(EnumOutportName.SortingPNPCyMidUp), ThisInport(EnumInportName.SortingPNPCyMidDown), ThisInport(EnumInportName.SortingPNPCyMidUp))); PNPCylinder.Add(EnumCellIndex.右电芯, new CylinderControl(/*"右电芯Z气缸", "下降", "上升",*/ ThisOutport(EnumOutportName.SortingPNPCyRightDown), ThisOutport(EnumOutportName.SortingPNPCyRightUp), ThisInport(EnumInportName.SortingPNPCyRightDown), ThisInport(EnumInportName.SortingPNPCyRightUp))); CellVacuums[EnumCellIndex.左电芯].MainPort.Port = ThisOutport(EnumOutportName.SortingPNPVacLeft); CellVacuums[EnumCellIndex.左电芯].AirPorts[(int)EnumVacuumIndex.后真空].Port = ThisOutport(EnumOutportName.SortingPNPVacLeftBack); CellVacuums[EnumCellIndex.左电芯].AirPorts[(int)EnumVacuumIndex.中真空].Port = ThisOutport(EnumOutportName.SortingPNPVacLeftCent); CellVacuums[EnumCellIndex.左电芯].AirPorts[(int)EnumVacuumIndex.前真空].Port = ThisOutport(EnumOutportName.SortingPNPVacLeftFront); CellVacuums[EnumCellIndex.中电芯].MainPort.Port = ThisOutport(EnumOutportName.SortingPNPVacMid); CellVacuums[EnumCellIndex.中电芯].AirPorts[(int)EnumVacuumIndex.后真空].Port = ThisOutport(EnumOutportName.SortingPNPVacMidBack); CellVacuums[EnumCellIndex.中电芯].AirPorts[(int)EnumVacuumIndex.中真空].Port = ThisOutport(EnumOutportName.SortingPNPVacMidCent); CellVacuums[EnumCellIndex.中电芯].AirPorts[(int)EnumVacuumIndex.前真空].Port = ThisOutport(EnumOutportName.SortingPNPVacMidFront); CellVacuums[EnumCellIndex.右电芯].MainPort.Port = ThisOutport(EnumOutportName.SortingPNPVacRight); CellVacuums[EnumCellIndex.右电芯].AirPorts[(int)EnumVacuumIndex.后真空].Port = ThisOutport(EnumOutportName.SortingPNPVacRightBack); CellVacuums[EnumCellIndex.右电芯].AirPorts[(int)EnumVacuumIndex.中真空].Port = ThisOutport(EnumOutportName.SortingPNPVacRightCent); CellVacuums[EnumCellIndex.右电芯].AirPorts[(int)EnumVacuumIndex.前真空].Port = ThisOutport(EnumOutportName.SortingPNPVacRightFront); CellBlow.Port = ThisOutport(EnumOutportName.SortingPNPBlow); CellVacSensor[EnumCellIndex.左电芯].Port = ThisInport(EnumInportName.SortingPNPVacSensLeft); CellVacSensor[EnumCellIndex.中电芯].Port = ThisInport(EnumInportName.SortingPNPVacSensMid); CellVacSensor[EnumCellIndex.右电芯].Port = ThisInport(EnumInportName.SortingPNPVacSensRight); ZoneSettingPanel = new SettingPanelZoneNG挑选机械手(); ZoneManualPanel = new ManualPanelZoneNG挑选机械手(); }
/// <summary> /// 添加一个IO端口类BaseIOPort实例。 /// </summary> /// <param name="port">IO端口类实例</param> public void AddHardware(BaseIOPort port) { if (port == null) { return; } switch (port.Type) { case IOType.In: if (_InPortCollection.ContainsKey(port.PortName)) { return; } _InPortCollection.Add(port.PortName, port); port.subscribeMeToIOEvents(this); break; case IOType.Out: if (_OutPortCollection.ContainsKey(port.PortName)) { return; } _OutPortCollection.Add(port.PortName, port); break; } }
public override void ZoneInit() { base.ZoneInit(); AssignHardware(typeof(EnumAxisName), typeof(EnumInportName), typeof(EnumOutportName)); AxisLoadPNPY = ThisAxis(EnumAxisName.LoadPNPY); AxisLoadPNPY.AddPoints(typeof(EnumPointY)); AxisLoadPNPZ = ThisAxis(EnumAxisName.LoadPNPZ); AxisLoadPNPZ.AddPoints(typeof(EnumPointZ)); NGBoxFullSensor = ThisInport(EnumInportName.LoadPNPNGBoxFull); NGBoxSensor = ThisInport(EnumInportName.LoadPNPNGBox); PNPCylinder.Add(EnumCellIndex.左电芯, new CylinderControl(/*"左电芯Z气缸", "下降", "上升",*/ ThisOutport(EnumOutportName.LoadPNPCyLeftDown), ThisOutport(EnumOutportName.LoadPNPCyLeftUp), ThisInport(EnumInportName.LoadPNPCyLeftDown), ThisInport(EnumInportName.LoadPNPCyLeftUp))); PNPCylinder.Add(EnumCellIndex.中电芯, new CylinderControl(/*"中电芯Z气缸", "下降", "上升",*/ ThisOutport(EnumOutportName.LoadPNPCyMidDown), ThisOutport(EnumOutportName.LoadPNPCyMidUp), ThisInport(EnumInportName.LoadPNPCyMidDown), ThisInport(EnumInportName.LoadPNPCyMidUp))); PNPCylinder.Add(EnumCellIndex.右电芯, new CylinderControl(/*"右电芯Z气缸", "下降", "上升",*/ ThisOutport(EnumOutportName.LoadPNPCyRightDown), ThisOutport(EnumOutportName.LoadPNPCyRightUp), ThisInport(EnumInportName.LoadPNPCyRightDown), ThisInport(EnumInportName.LoadPNPCyRightUp))); CellVacuums[EnumCellIndex.左电芯].MainPort.Port = ThisOutport(EnumOutportName.LoadPNPVacLeft); CellVacuums[EnumCellIndex.左电芯].AirPorts[(int)EnumVacuumIndex.后真空].Port = ThisOutport(EnumOutportName.LoadPNPVacLeftBack); CellVacuums[EnumCellIndex.左电芯].AirPorts[(int)EnumVacuumIndex.中真空].Port = ThisOutport(EnumOutportName.LoadPNPVacLeftCent); CellVacuums[EnumCellIndex.左电芯].AirPorts[(int)EnumVacuumIndex.前真空].Port = ThisOutport(EnumOutportName.LoadPNPVacLeftFront); CellVacuums[EnumCellIndex.中电芯].MainPort.Port = ThisOutport(EnumOutportName.LoadPNPVacMid); CellVacuums[EnumCellIndex.中电芯].AirPorts[(int)EnumVacuumIndex.后真空].Port = ThisOutport(EnumOutportName.LoadPNPVacMidBack); CellVacuums[EnumCellIndex.中电芯].AirPorts[(int)EnumVacuumIndex.中真空].Port = ThisOutport(EnumOutportName.LoadPNPVacMidCent); CellVacuums[EnumCellIndex.中电芯].AirPorts[(int)EnumVacuumIndex.前真空].Port = ThisOutport(EnumOutportName.LoadPNPVacMidFront); CellVacuums[EnumCellIndex.右电芯].MainPort.Port = ThisOutport(EnumOutportName.LoadPNPVacRight); CellVacuums[EnumCellIndex.右电芯].AirPorts[(int)EnumVacuumIndex.后真空].Port = ThisOutport(EnumOutportName.LoadPNPVacRightBack); CellVacuums[EnumCellIndex.右电芯].AirPorts[(int)EnumVacuumIndex.中真空].Port = ThisOutport(EnumOutportName.LoadPNPVacRightCent); CellVacuums[EnumCellIndex.右电芯].AirPorts[(int)EnumVacuumIndex.前真空].Port = ThisOutport(EnumOutportName.LoadPNPVacRightFront); CellBlow[EnumCellIndex.左电芯].Port = ThisOutport(EnumOutportName.LoadPNPBlowLeft); CellBlow[EnumCellIndex.中电芯].Port = ThisOutport(EnumOutportName.LoadPNPBlowMid); CellBlow[EnumCellIndex.右电芯].Port = ThisOutport(EnumOutportName.LoadPNPBlowRight); CellVacSensor[EnumCellIndex.左电芯].Port = ThisInport(EnumInportName.LoadPNPVacSensLeft); CellVacSensor[EnumCellIndex.中电芯].Port = ThisInport(EnumInportName.LoadPNPVacSensMid); CellVacSensor[EnumCellIndex.右电芯].Port = ThisInport(EnumInportName.LoadPNPVacSensRight); ZoneSettingPanel = new SettingPanelZone上料机械手(); ZoneManualPanel = new ManualPanelZone上料机械手(); DoUpdateNGBox(); ProductChangeHandler(null, null); }
public static void UpdateIOStatus(Control con, BaseIOPort port) { con.BackColor = port.status ? Color.Tomato : Color.ForestGreen; }