123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- 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<SystemSimulator>
- {
- 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<DataManager>.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;
- }
-
- }
- }
|