예제 #1
0
        public void DataCollectThread()
        {
            int iiiii = 0;

            while (bCollect)
            {
                if (threaFucRuningF_OK)
                {
                    string macSN = "";
                    if (CollectShare.Instance().HNC_SystemGetValue((int)HncSystem.HNC_SYS_SN_NUM, ref macSN, hncdata.sysData.clientNo) == 0)
                    {
                        iiiii = 0;
                        if (macSN != hncdata.sysData.macSN)
                        {
                            hncdata.sysData.isConnect = false;
                            threaFucRuningF_OK        = false;
                            CollectShare.threaFucEvent.Set();

                            if (m_cnc.CNCchanDataEventHandler != null)
                            {
                                int[] senddata = new int[2];
                                senddata[0] = (int)LineDevice.CNC.CNCchanDataEventType.CNCStateChage;
                                senddata[1] = (int)LineDevice.CNC.CNCState.DISCON;
                                m_cnc.CNCchanDataEventHandler.BeginInvoke(this, senddata, null, null);
                            }

                            SCADA.LogData.EventHandlerSendParm SendParm = new SCADA.LogData.EventHandlerSendParm();
                            SendParm.Node1NameIndex = (int)SCADA.LogData.Node1Name.Equipment_CNC;
                            SendParm.LevelIndex     = (int)SCADA.LogData.Node2Level.MESSAGE;
                            SendParm.EventID        = ((int)SCADA.LogData.Node2Level.MESSAGE).ToString();
                            SendParm.Keywords       = "CNC采集器关闭";
                            SendParm.EventData      = hncdata.sysData.addr.ip + ":本次获取SN=" + macSN + ";上周期SN=" + hncdata.sysData.macSN;
                            SCADA.MainForm.m_Log.AddLogMsgHandler.BeginInvoke(this, SendParm, null, null);
                        }
                    }
                    else
                    {
                        iiiii++;
                        if (iiiii >= 10)
                        {
                            hncdata.sysData.isConnect = false;
                            threaFucRuningF_OK        = false;
                            CollectShare.threaFucEvent.Set();

                            if (m_cnc.CNCchanDataEventHandler != null)
                            {
                                int[] senddata = new int[2];
                                senddata[0] = (int)LineDevice.CNC.CNCchanDataEventType.CNCStateChage;
                                senddata[1] = (int)LineDevice.CNC.CNCState.DISCON;
                                m_cnc.CNCchanDataEventHandler.BeginInvoke(this, senddata, null, null);
                            }

                            SCADA.LogData.EventHandlerSendParm SendParm = new SCADA.LogData.EventHandlerSendParm();
                            SendParm.Node1NameIndex = (int)SCADA.LogData.Node1Name.Equipment_CNC;
                            SendParm.LevelIndex     = (int)SCADA.LogData.Node2Level.MESSAGE;
                            SendParm.EventID        = ((int)SCADA.LogData.Node2Level.MESSAGE).ToString();
                            SendParm.Keywords       = "CNC采集器关闭";
                            SendParm.EventData      = hncdata.sysData.addr.ip + ":累计连续10次调用网络接口失败!";
                            SCADA.MainForm.m_Log.AddLogMsgHandler.BeginInvoke(this, SendParm, null, null);
                        }
                    }
                    GatherData();

                    LineDevice.CNC.CNCState CNCStatei = LineDevice.CNC.CNCState.DISCON;
                    if (m_cnc != null && m_cnc.Checkcnc_state(ref CNCStatei) && m_cnc.CNCchanDataEventHandler != null)
                    {
                        int[] senddata = new int[2];
                        senddata[0] = (int)LineDevice.CNC.CNCchanDataEventType.CNCStateChage;
                        senddata[1] = (int)CNCStatei;
                        m_cnc.CNCchanDataEventHandler.BeginInvoke(this, senddata, null, null);
                    }
                    if (m_cnc != null && baogongold != m_cnc.HCNCShareData.chanDataLst[m_cnc.NC8_chang].partNum && m_cnc.CNCchanDataEventHandler != null)
                    {
                        int[] senddata = new int[2];
                        senddata[0] = (int)LineDevice.CNC.CNCchanDataEventType.CNCReport;
                        senddata[1] = m_cnc.HCNCShareData.chanDataLst[m_cnc.NC8_chang].partNum;
                        m_cnc.CNCchanDataEventHandler.BeginInvoke(this, senddata, null, null);
                        baogongold = m_cnc.HCNCShareData.chanDataLst[m_cnc.NC8_chang].partNum;
                    }

                    System.Threading.Thread.Sleep(50);
                }
                else
                {
                    Get_Reg_threaFucEvent.WaitOne();
                    iiiii = 0;
                }
            }
        }
예제 #2
0
            public void UpdataShowItem()
            {
                LineDevice.CNC.CNCState stad = 0; //状态
                if (m_showtype == 0)              //CNC
                {
                    MainForm.cnclist[m_showitemserial].Checkcnc_state(ref stad);
//                     if(Oldstad != stad)
                    {
                        String ShowStr = MainForm.cnclist[m_showitemserial].JiTaiHao;
                        switch (stad)
                        {
                        case LineDevice.CNC.CNCState.DISCON:
                            m_label.Text       = ShowStr;
                            m_ColorPictrue_str = CNCStateColorPictrueFile[3];
                            break;

                        case LineDevice.CNC.CNCState.IDLE:
                            m_label.Text       = ShowStr;
                            m_ColorPictrue_str = CNCStateColorPictrueFile[1];
                            break;

                        case LineDevice.CNC.CNCState.ALARM:
                            m_label.Text       = ShowStr;
                            m_ColorPictrue_str = CNCStateColorPictrueFile[2];
                            break;

                        case LineDevice.CNC.CNCState.RUNING:    //运行
                            m_label.Text       = ShowStr;
                            m_ColorPictrue_str = CNCStateColorPictrueFile[0];
                            break;

                        default:
                            break;
                        }
                        Size m_imagesize = new Size();
                        m_imagesize.Width  = m_bt.Width;
                        m_imagesize.Height = m_bt.Height;
                        Bitmap m_bitmap = new Bitmap(System.Drawing.Image.FromFile(m_ColorPictrue_str), m_imagesize);
                        if (m_bitmap != m_bt.Image)
                        {
                            m_bt.Image = m_bitmap;
                        }
                    }
                }
                else if (m_showtype == 10)//ROBOT
                {
                    if (PLCDataShare.m_plclist.Count > 0)
                    {
                        String ShowStr = MainForm.robotlist[m_showitemserial].EQUIP_CODE;
                        bool   connet  = false;
                        if (PLCDataShare.m_plclist[0].system == m_xmlDociment.PLC_System[0])
                        {
                            connet = PLCDataShare.m_plclist[0].conneted;
                        }
                        else if (PLCDataShare.m_plclist[0].system == m_xmlDociment.PLC_System[1])
                        {
                            connet = PLCDataShare.m_plclist[0].m_hncPLCCollector.connectStat;
                        }
                        if (ROBOTstad != connet)
                        {
                            if (connet)
                            {
                                m_label.Text = ShowStr;
                                if (m_showitemserial != MainForm.cnclist.Count)
                                {
                                    if (lineType == 1)  //2015.11.28 RGV
                                    {
                                        m_ColorPictrue_str = RGVStateColorPictrueFile[0];
                                    }
                                    else
                                    {
                                        m_ColorPictrue_str = ROBOTStateColorPictrueFile[0];
                                    }
                                }
                            }
                            else
                            {
                                m_label.Text = ShowStr;
                                if (m_showitemserial != MainForm.cnclist.Count)
                                {
                                    if (lineType == 1)  //2015.11.28 RGV
                                    {
                                        m_ColorPictrue_str = RGVStateColorPictrueFile[3];
                                    }
                                    else
                                    {
                                        m_ColorPictrue_str = ROBOTStateColorPictrueFile[3];
                                    }
                                }
                            }
                            Size m_imagesize = new Size();
                            m_imagesize.Width  = m_bt.Width;
                            m_imagesize.Height = m_bt.Height;
                            Bitmap m_bitmap = new Bitmap(System.Drawing.Image.FromFile(m_ColorPictrue_str), m_imagesize);
                            m_bt.Image = m_bitmap;
                            ROBOTstad  = connet;
                        }
                    }
                }
            }