コード例 #1
0
ファイル: FormMain.cs プロジェクト: zoro-008/Works
        public void ShowPage(int _iPageIdx)
        {
            FrmDeviceSet.UpdateDevInfo(true);
            FrmDeviceSet.UpdateDevOptn(true);
            PM.UpdatePstn(true);
            PM.Load(OM.GetCrntDev());

            switch (_iPageIdx)
            {
            case 0: FrmOperation.Show();          break;

            case 1:                               break;

            case 2: FrmDevice.Show();          break;

            case 3: FrmOption.Show();          break;

            case 4: FrmSPC.FormInit();
                FrmSPC.Show();          break;

            case 5: SML.SetDllMainWin(ref pnBase); break;

            default: FrmOperation.Show();         break;
            }
        }
コード例 #2
0
        public static void Init()
        {
            SML.TPara Para;

            Para.sParaFolderPath = Directory.GetCurrentDirectory() + "\\Util\\";
            Para.iWidth          = 1280;
            Para.iHeight         = 863;
            Para.bTabHides       = new bool[6];
            Para.bUseErrPic      = true;
            Para.iCntErr         = 60;
            Para.iCntDIn         = 32;
            Para.iCntDOut        = 32;
            Para.iCntCylinder    = 9;
            Para.iCntMotr        = 3;
            Para.eLanSel         = EN_LAN_SEL.English;
            Para.eDio            = EN_DIO_SEL.AXL;
            Para.eMotors         = new EN_MOTR_SEL[Para.iCntMotr];

            Para.eMotors[0] = EN_MOTR_SEL.AXL;
            Para.eMotors[1] = EN_MOTR_SEL.AXL;
            Para.eMotors[2] = EN_MOTR_SEL.AXL;

            SML.Init(Para);
            DM.Init();
            OM.Init();
            LOT.Init();
            SPC.Init();
            PM.Init(PM.PstnCnt);

            MainThread.Priority = ThreadPriority.Highest;
            //MainThread.Priority = ThreadPriority.Normal;
            MainThread.Start();

            m_tmToStop    = new CDelayTimer();
            m_tmToStrt    = new CDelayTimer();
            m_tmFlickOn   = new CDelayTimer();
            m_tmFlickOff  = new CDelayTimer();
            m_tmCloseDoor = new CDelayTimer();
            m_tmTemp      = new CDelayTimer();

            m_bBtnReset = false;
            m_bBtnStart = false;
            m_bBtnStop  = false;
            m_bBtnAir   = false;

            m_bRun     = false;
            m_bRunEdge = false;
            m_bFlick   = false;
            m_iStep    = EN_SEQ_STEP.Idle;
            m_iSeqStat = EN_SEQ_STAT.Stop;

            //Run End Buzzer.
            m_bRunEnd = false;

            m_Part[(int)pi.IDX] = IDX;
        }
コード例 #3
0
        public static void Close()
        {
            MainThread.Abort();
            MainThread.Join();

            SML.Close();
            OM.Close();
            LOT.Close();
            SPC.Close();
        }
コード例 #4
0
        public static void Update()
        {
            double dPreTime = CTimer.GetTime_us();
            double dCrntTime;

            while (true)
            {
                dCrntTime = CTimer.GetTime_us();
                m_dMainThreadCycleTime = (dCrntTime - dPreTime) / 1000.0;
                dPreTime = dCrntTime;
                Thread.Sleep(0);
                SML.Update(m_iSeqStat);

                //Part
                for (int i = 0; i < (int)pi.MAX_PART; i++)
                {
                    m_Part[i].Update();
                }

                //Inspection
                InspectMainAir();
                InspectEmergency();
                InspectActuator();
                InspectMotor();
                InspectCrash();
                InspectTemp();
                InspectFlowMeter();

                //Update ErrorProc.
                UpdateButton();

                //Check Button.
                UpdateSeqState();

                //Update Motor State (Input)
                MM.Update();

                //SPC
                SPC.Update(LOT.CrntLotData.sEmployeeID, LOT.CrntLotData.sLotNo, OM.GetCrntDev(), m_iSeqStat, OM.EqpStat.bMaint);

                //Vision Communication
                Visn.Update();

                SEQ.BarcordPrnt.Update();
            }
        }
コード例 #5
0
        public static void Close()
        {
            MainThread.Abort();
            MainThread.Join();

            SML.Close();
            OM.Close();
            LOT.Close();
            SPC.Close();

            //for (int i = 1; i < (int)si.MAX_RS232; i++)
            //{
            //    Com[i].PortClose();
            //}

            //SM.IO_SetY(yi.SSTG_HeaterOn,false);

            SEQ.Oracle.Close();
        }
コード例 #6
0
ファイル: FormMain.cs プロジェクト: zoro-008/Works
        private void HidePage(int _iPageIdx)
        {
            switch (_iPageIdx)
            {
            case 0: FrmOperation.Hide();          break;

            case 1: FrmVision.Hide();          break;

            case 2: FrmDevice.Hide();
                FrmDeviceSet.Hide();          break;

            case 3: FrmOption.Hide();          break;

            case 4: FrmSPC.Hide();          break;

            case 5: SML.HideDllMainWin();          break;

            default: FrmOperation.Hide();         break;
            }
        }
コード例 #7
0
        public static void Update()
        {
            double dPreTime = CTimer.GetTime_us();
            double dCrntTime;

            while (true)
            {
                dCrntTime = CTimer.GetTime_us();
                m_dMainThreadCycleTime = (dCrntTime - dPreTime) / 1000.0;
                dPreTime = dCrntTime;
                Thread.Sleep(0);
                SML.Update(m_iSeqStat);

                //Part
                for (int i = 0; i < (int)pi.MAX_PART; i++)
                {
                    m_Part[i].Update();
                }

                //Inspection
                InspectMainAir();
                InspectEmergency();
                InspectActuator();
                InspectMotor();
                //InspectCrash();

                //Update ErrorProc.
                UpdateButton();

                //Check Button.
                UpdateSeqState();

                //Update Motor State (Input)
                MM.Update();

                //SPC
                SPC.Update(m_iSeqStat);
            }
        }
コード例 #8
0
 public static void Read() => SML?.Read();
コード例 #9
0
        public static void Init()
        {
            SML.TPara Para;
            Para.sParaFolderPath = Directory.GetCurrentDirectory() + "\\Util\\";
            Para.iWidth          = 1280;
            Para.iHeight         = 863;
            Para.bTabHides       = new bool[6];

            Para.bUseErrPic   = true;
            Para.iCntErr      = 60;
            Para.iCntDIn      = 96;
            Para.iCntDOut     = 64;
            Para.iCntCylinder = (int)ci.MAX_ACTR;
            Para.iCntMotr     = (int)mi.MAX_MOTR;
            Para.eLanSel      = EN_LAN_SEL.English;
            Para.eDio         = EN_DIO_SEL.AXL;
            Para.eMotors      = new EN_MOTR_SEL[Para.iCntMotr];

            Para.eMotors[0] = EN_MOTR_SEL.AXL;
            Para.eMotors[1] = EN_MOTR_SEL.AXL;
            Para.eMotors[2] = EN_MOTR_SEL.AXL;
            Para.eMotors[3] = EN_MOTR_SEL.AXL;
            Para.eMotors[4] = EN_MOTR_SEL.AXL;
            Para.eMotors[5] = EN_MOTR_SEL.AXL;
            Para.eMotors[6] = EN_MOTR_SEL.AXL;
            Para.eMotors[7] = EN_MOTR_SEL.AXL;
            Para.eMotors[8] = EN_MOTR_SEL.AXL;
            Para.eMotors[9] = EN_MOTR_SEL.AXL;


            SML.Init(Para);
            OM.Init();
            DM.Init();
            LOT.Init();
            SPC.Init();
            PM.Init(PM.PstnCnt);


            VisnCom.TPara VisnPara = new VisnCom.TPara();
            VisnPara.sVisnPcName = "Visn";               //파일저장시에 파일명에 삽입.
            VisnPara.sVisnFolder = "c:\\Data";           //파일저장 하는 폴더.

            Visn.Init(ref VisnPara);

            MainThread.Priority = ThreadPriority.Highest;
            MainThread.Start();

            m_tmToStop    = new CDelayTimer();
            m_tmToStrt    = new CDelayTimer();
            m_tmFlickOn   = new CDelayTimer();
            m_tmFlickOff  = new CDelayTimer();
            m_tmCloseDoor = new CDelayTimer();
            m_tmTemp      = new CDelayTimer();

            m_cyTrayWorktime = new CCycleTimer();

            m_bBtnReset = false;
            m_bBtnStart = false;
            m_bBtnStop  = false;
            m_bBtnAir   = false;

            m_bRun     = false;
            m_bRunEdge = false;
            m_bFlick   = false;
            m_iStep    = EN_SEQ_STEP.Idle;
            m_iSeqStat = EN_SEQ_STAT.Stop;

            //Run End Buzzer.
            m_bRunEnd = false;

            m_Part[(int)pi.LODR] = LODR;
            m_Part[(int)pi.IDXR] = IDXR;
            m_Part[(int)pi.IDXF] = IDXF;
            m_Part[(int)pi.TOOL] = TOOL;
            m_Part[(int)pi.STCK] = STCK;
            m_Part[(int)pi.BARZ] = BARZ;

            BarcordLODR.PortOpen();
            BarcordBARZ.PortOpen();

            DateTime Time     = DateTime.Now;
            bool     bConnect = SEQ.Oracle.Init(OM.CmnOptn.sOracleIP, OM.CmnOptn.sOraclePort, OM.CmnOptn.sOracleID, OM.CmnOptn.sOraclePassword, OM.CmnOptn.sOracleSID);   //SEQ.Oracle.OpenDB();//"192.168.1.77" , "1521" , "hr","hr"

            if (!bConnect)
            {
                Log.ShowMessage("Oracle Open Failed!", SEQ.Oracle.GetLastMsg());
            }

            TimeSpan Span = DateTime.Now - Time;
            double   dVal = Span.TotalMilliseconds;
        }