コード例 #1
0
        public MVacuum(CObjectInfo objInfo, IIO pIO, CVacuumData data)
            : base(objInfo)
        {
            m_IO = pIO;

            SetData(data);
        }
コード例 #2
0
ファイル: MLWDicer.cs プロジェクト: mrwangming/LWDicer
        int CreateVacuum(CObjectInfo objInfo, CVacuumData data, int objIndex, out IVacuum pVacuum)
        {
            int iResult = SUCCESS;

            data.Time = m_DataManager.SystemData_Vacuum.VacuumTimer[objIndex];
            pVacuum   = new MVacuum(objInfo, m_IO, data);

            return(iResult);
        }
コード例 #3
0
ファイル: MLWDicer.cs プロジェクト: mrwangming/LWDicer
        public int Initialize(CMainFrame form1 = null)
        {
            TestFunction_BeforeInit();

            ////////////////////////////////////////////////////////////////////////
            // 0. Common Class
            ////////////////////////////////////////////////////////////////////////
            // init data file name
            CDBInfo dbInfo;

            InitDataFileNames(out dbInfo);
            CObjectInfo.DBInfo = dbInfo;
            MLog.DBInfo        = dbInfo;

            CObjectInfo objInfo;

            m_SystemInfo = new MSystemInfo();

            // self set MLWDicer
            m_SystemInfo.GetObjectInfo(0, out objInfo);
            this.ObjInfo = objInfo;

            // DataManager
            m_SystemInfo.GetObjectInfo(1, out objInfo);
            m_DataManager = new MDataManager(objInfo, dbInfo);

            ////////////////////////////////////////////////////////////////////////
            // 1. Hardware Layer
            ////////////////////////////////////////////////////////////////////////

            // Motion
            m_SystemInfo.GetObjectInfo(2, out objInfo);
            CreateYMCBoard(objInfo);

            // MultiAxes
            CreateMultiAxes_YMC();
            m_AxUpperHandler.UpdateAxisStatus();
            // IO
            m_SystemInfo.GetObjectInfo(6, out objInfo);
            m_IO = new MIO_YMC(objInfo);
            m_IO.OutputOn(oUHandler_Self_Vac_On);

            // Cylinder
            // UHandlerUDCyl
            CCylinderData cylData = new CCylinderData();

            cylData.CylinderType  = ECylinderType.UP_DOWN;
            cylData.SolenoidType  = ESolenoidType.DOUBLE_SOLENOID;
            cylData.UpSensor[0]   = iUHandler_Up1;
            cylData.DownSensor[0] = iUHandler_Down1;
            cylData.Solenoid[0]   = oUHandler_Up1;
            cylData.Solenoid[1]   = oUHandler_Down1;

            m_SystemInfo.GetObjectInfo(100, out objInfo);
            CreateCylinder(objInfo, cylData, (int)EObjectCylinder.UHANDLER_UD, out m_UHandlerUDCyl);

            // UHandlerUDCyl2
            cylData = new CCylinderData();
            cylData.CylinderType  = ECylinderType.UP_DOWN;
            cylData.SolenoidType  = ESolenoidType.DOUBLE_SOLENOID;
            cylData.UpSensor[0]   = iUHandler_Up1;
            cylData.DownSensor[0] = iUHandler_Down2;
            cylData.Solenoid[0]   = oUHandler_Up1;
            cylData.Solenoid[1]   = oUHandler_Down2;

            m_SystemInfo.GetObjectInfo(101, out objInfo);
            CreateCylinder(objInfo, cylData, (int)EObjectCylinder.UHANDLER_UD2, out m_UHandlerUDCyl2);

            // Vacuum
            // Stage1 Vacuum
            CVacuumData vacData = new CVacuumData();

            vacData.VacuumType  = EVacuumType.SINGLE_VACUUM_WBLOW;
            vacData.Sensor[0]   = iStage1_Vac_On;
            vacData.Solenoid[0] = oStage1_Vac_On;
            vacData.Solenoid[1] = oStage1_Vac_Off;

            m_SystemInfo.GetObjectInfo(150, out objInfo);
            CreateVacuum(objInfo, vacData, (int)EObjectVacuum.STAGE1, out m_Stage1Vac);

            // UHandler Self Vacuum
            vacData             = new CVacuumData();
            vacData.VacuumType  = EVacuumType.SINGLE_VACUUM_WBLOW;
            vacData.Sensor[0]   = iUHandler_Self_Vac_On;
            vacData.Solenoid[0] = oUHandler_Self_Vac_On;
            vacData.Solenoid[1] = oUHandler_Self_Vac_Off;

            m_SystemInfo.GetObjectInfo(151, out objInfo);
            CreateVacuum(objInfo, vacData, (int)EObjectVacuum.UHANDLER_SELF, out m_UHandlerSelfVac);

            // Polygon Scanner Serial Com Port
            m_SystemInfo.GetObjectInfo(30, out objInfo);
            CreatePolygonSerialPort(objInfo, out m_PolygonComPort);

            CPolygonIni PolygonIni = new CPolygonIni();

            m_SystemInfo.GetObjectInfo(200, out objInfo);
            CreatePolygonScanner(objInfo, PolygonIni, (int)EObjectScanner.SCANNER1, m_PolygonComPort);

            // Vision System
            m_SystemInfo.GetObjectInfo(40, out objInfo);
            CreateVisionSystem(objInfo);
            // Vision Camera
            m_SystemInfo.GetObjectInfo(42, out objInfo);
            CreateVisionCamera(objInfo);
            // Vision Display
            m_SystemInfo.GetObjectInfo(46, out objInfo);
            MVisionView(objInfo);

            ////////////////////////////////////////////////////////////////////////
            // 2. Mechanical Layer
            ////////////////////////////////////////////////////////////////////////

            // Cassette Loader
            m_SystemInfo.GetObjectInfo(310, out objInfo);
            CreateMeElevator(objInfo);

            // Handler
            m_SystemInfo.GetObjectInfo(318, out objInfo);
            CreateMeUpperHandler(objInfo);

            m_SystemInfo.GetObjectInfo(319, out objInfo);
            CreateMeLowerHandler(objInfo);

            // Stage
            m_SystemInfo.GetObjectInfo(325, out objInfo);
            CreateMeStage(objInfo);


            // Vision
            m_SystemInfo.GetObjectInfo(340, out objInfo);
            CreateVision(objInfo);

            ////////////////////////////////////////////////////////////////////////
            // 3. Control Layer
            ////////////////////////////////////////////////////////////////////////
            m_SystemInfo.GetObjectInfo(351, out objInfo);
            CreateCtrlLoader(objInfo);

            m_SystemInfo.GetObjectInfo(352, out objInfo);
            CreateCtrlPushPull(objInfo);

            m_SystemInfo.GetObjectInfo(353, out objInfo);
            CreateCtrlStage1(objInfo);

            m_SystemInfo.GetObjectInfo(354, out objInfo);
            CreateCtrlHandler(objInfo);

            ////////////////////////////////////////////////////////////////////////
            // 4. Process Layer
            ////////////////////////////////////////////////////////////////////////
            m_SystemInfo.GetObjectInfo(401, out objInfo);
            CreateTrsLoader(objInfo);

            m_SystemInfo.GetObjectInfo(402, out objInfo);
            CreateTrsPushPull(objInfo);

            m_SystemInfo.GetObjectInfo(403, out objInfo);
            CreateTrsStage1(objInfo);

            m_SystemInfo.GetObjectInfo(400, out objInfo);
            CreateTrsAutoManager(objInfo);

            // temporary set windows
            m_trsLoader.SetWindows_Form1(form1);
            m_trsPushPull.SetWindows_Form1(form1);
            m_trsStage1.SetWindows_Form1(form1);
            m_trsAutoManager.SetWindows_Form1(form1);

            ////////////////////////////////////////////////////////////////////////
            // 5. Set Data
            ////////////////////////////////////////////////////////////////////////
            SetSystemDataToComponent();
            SetModelDataToComponent();
            SetPositionDataToComponent();

            ////////////////////////////////////////////////////////////////////////
            // 6. Start Thread & System
            ////////////////////////////////////////////////////////////////////////
            m_YMC.ThreadStart();

            SetThreadChannel();
            StartThreads();


            TestFunction_AfterInit();

            return(SUCCESS);
        }
コード例 #4
0
        public int GetData(out CVacuumData target)
        {
            target = ObjectExtensions.Copy(m_Data);

            return(SUCCESS);
        }
コード例 #5
0
        public int SetData(CVacuumData source)
        {
            m_Data = ObjectExtensions.Copy(source);

            return(SUCCESS);
        }