using Aitex.Common.Util; using Aitex.Core.RT.DataCenter; using Aitex.Core.Util; using athosSimulator.IO; using athosSimulator.LoadPort; using athosSimulator.PreAligner; using IOs = Aitex.Core.RT.IOCore.IO; namespace athosSimulator { public class SystemSimulator : Singleton { public SimulatorPlc Plc { get; set; } private PeriodicJob _task; public SystemSimulator() { //Robot //RorzeRobot751Simulator robotSimulator = new RorzeRobot751Simulator(); //LP Hirata _hirataSimulator1 = new Hirata("COM11"); _hirataSimulator1.Enable();//打开端口 Hirata _hirataSimulator2 = new Hirata("COM1"); _hirataSimulator2.Enable(); Hirata _hirataSimulator3 = new Hirata("COM4"); _hirataSimulator3.Enable(); //PA Rorze _rorzePASimulator1 = new Rorze(10118); _rorzePASimulator1.Enable();//打开socket口 Rorze _rorzePASimulator2 = new Rorze(10119); _rorzePASimulator2.Enable(); //IO Plc = new SimulatorPlc(16731, "Simulator->IO", PathManager.GetCfgDir() + "_ioDefineCardNew.xml", "IO"); } public void Initialize() { SetDefaultValue(); Singleton.Instance.Initialize(false); _task = new PeriodicJob(50, onMonitor, "Simulator", true); } private bool onMonitor() { //控制Flipper //控制Flipper TurnOver if (IOs.DO["IO.DO_FlipperTurnOverMotorModeSW"].Value) { if (IOs.DO["IO.DO_FlipperTurnOverStartStop/HOME"].Value && (IOs.DO["IO.DO_FlipperTurnOverSEL0/JOGP"].Value || IOs.DO["IO.DO_FlipperTurnOverSEL1/JOGN"].Value || IOs.DO["IO.DO_FlipperTurnOverSEL2/JOG0"].Value)) { IOs.DI["IO.DI_FlipperTurnOverMotorPosCompleted"].Value = true; } } //控制Flipper Clamp if (IOs.DO["IO.DO_FlipperClampMotorModeSW"].Value) { if (IOs.DO["IO.DO_FlipperClampSTART-STOP/HOME"].Value && (IOs.DO["IO.DO_FlipperClampSEL0/JOGP"].Value || IOs.DO["IO.DO_FlipperClampSEL1/JOGN"].Value || IOs.DO["IO.DO_FlipperClampSEL2/JOG0"].Value)) { IOs.DI["IO.DI_FlipperClampMotorPosCompleted"].Value = true; } } //控制Robot //控制LP return true; } //设置初始值 private void SetDefaultValue() { IOs.DI["IO.DI_LightCurtainSensor"].Value = true; IOs.DI["IO.DI_FlipperTurnOverHorizontalSensor"].Value = true;//运动中为false 正反面时为true IOs.DI["IO.DI_FlipperTurnOverOriginSensor"].Value = true;// IOs.DI["IO.DI_FlipperTurnOverMotorPosCompleted"].Value = false; IOs.DI["IO.DI_FlipperTurnOverMotorAlarm"].Value = false; IOs.DI["IO.DI_FlipperEnableToRobot"].Value = true; IOs.DI["IO.DI_FlipperClampClosedSensor"].Value = false;//是否闭合 IOs.DI["IO.DI_FlipperClampOpenedSensor"].Value = true; IOs.DI["IO.DI_FlipperClampMotorPosCompleted"].Value = false;//动作是否完成 IOs.DI["IO.DI_FFUSIGNAL"].Value = true; IOs.DI["IO.DI_CDAPressureSW"].Value = true; IOs.DI["IO.DI_VACPressureSW"].Value = true; IOs.DI["IO.DI_IONCDAPressureSW"].Value = false; IOs.DI["IO.DI_IONSIGNAL"].Value = false; IOs.DI["IO.DI_SideDoorOpened"].Value = false;//侧门是否打开 一般情况不可以打开 IOs.DI["IO.DI_OuterSideDoorClosed"].Value = false;//外侧们是否打开 IOs.DI["IO.DI_RunMode"].Value = true; IOs.DI["IO.DI_EFEMPowerON"].Value = true; IOs.DI["IO.DI_PreAlignerEnableToRobot"].Value = true; IOs.DI["IO.DI_RobotEMSToEFEM"].Value = true; IOs.DI["IO.DI_RBNotExtendToPMA"].Value = true; IOs.DI["IO.DI_RBNotExtendToPMB"].Value = true; IOs.DI["IO.DI_RBNotExtendToLP1"].Value = true; IOs.DI["IO.DI_RBNotExtendToLP2"].Value = true; IOs.DI["IO.DI_RBNotExtendToLP2"].Value = true; IOs.DI["IO.DI_RBNotExtendPreAligner"].Value = true; IOs.DI["IO.DI_RBNotExtendFlipper"].Value = true; IOs.DI["IO.DI_LP1OperationStatus"].Value = true; IOs.DI["IO.DI_LP2OperationStatus"].Value = true; } } }