示例#1
0
 private void MenuPause_Click(object sender, EventArgs e)
 {
     if (Global.WorkVar.tag_SuspendState == 1)
     {
         if (Global.WorkVar.tag_ResetState != 1)
         {
             IOParameter redlight    = StationManage.FindOutputIo("主控系统", "三色灯_红");
             IOParameter yellowlight = StationManage.FindOutputIo("主控系统", "三色灯_黄");
             IOParameter greenlight  = StationManage.FindOutputIo("主控系统", "三色灯_绿");
             NewCtrlCardV0.SetOutputIoBit(redlight, 0);
             NewCtrlCardV0.SetOutputIoBit(yellowlight, 0);
             NewCtrlCardV0.SetOutputIoBit(greenlight, 1);
         }
         tag_Work.Continue(null);
     }
     else
     {
         if (Global.WorkVar.tag_ResetState != 1)
         {
             IOParameter redlight    = StationManage.FindOutputIo("主控系统", "三色灯_红");
             IOParameter yellowlight = StationManage.FindOutputIo("主控系统", "三色灯_黄");
             IOParameter greenlight  = StationManage.FindOutputIo("主控系统", "三色灯_绿");
             NewCtrlCardV0.SetOutputIoBit(redlight, 0);
             NewCtrlCardV0.SetOutputIoBit(yellowlight, 1);
             NewCtrlCardV0.SetOutputIoBit(greenlight, 0);
         }
         tag_Work.Suspend(null);
     }
 }
示例#2
0
        /// <summary>
        /// IO输出
        /// </summary>
        /// <param name="io">IO类对象</param>
        /// <param name="ioValue">输出状态</param>
        /// <returns></returns>
        public static short GetOutputIoBit(IOParameter io, short ioValue)
        {
            short shrResult = 0;
            bool  bioValue  = false;

            if (io == null)
            {
                return(shrFail);
            }
            NewCtrlCardBase Base_ = tag_NewCtrlCardBase[(int)io.tag_MotionCardManufacturer];

            if (Base_ == null)
            {
                MessageBoxLog.Show(NewCtrlCardBase.GetManufacturerName((int)io.tag_MotionCardManufacturer) + "控制卡初始化失败!");
                return(shrFail);
            }
            shrResult = Base_.SR_GetOutputBit(io.CardNum, io.IOBit, out bioValue);
            if (shrResult != shrSuccess)
            {
                shrResult = -1;
                return(shrResult);
            }
            if (bioValue)
            {
                shrResult = 1;
            }
            else
            {
                shrResult = 0;
            }
            return(shrResult);
        }
示例#3
0
        public void LightandBuzzer(string lightColor, bool bBuzzer = false)
        {
            IOParameter redlight    = StationManage.FindOutputIo("主控系统", "三色灯_红");
            IOParameter yellowlight = StationManage.FindOutputIo("主控系统", "三色灯_黄");
            IOParameter greenlight  = StationManage.FindOutputIo("主控系统", "三色灯_绿");
            IOParameter buzzer      = StationManage.FindOutputIo("主控系统", "蜂鸣器");

            NewCtrlCardV0.SetOutputIoBit(redlight, 0);
            NewCtrlCardV0.SetOutputIoBit(yellowlight, 0);
            NewCtrlCardV0.SetOutputIoBit(greenlight, 0);
            if (bBuzzer)
            {
                NewCtrlCardV0.SetOutputIoBit(buzzer, 1);
            }
            if (lightColor == "红灯")
            {
                NewCtrlCardV0.SetOutputIoBit(redlight, 1);
            }
            else if (lightColor == "黄灯")
            {
                NewCtrlCardV0.SetOutputIoBit(yellowlight, 1);
            }
            else if (lightColor == "绿灯")
            {
                NewCtrlCardV0.SetOutputIoBit(greenlight, 1);
            }
        }
示例#4
0
 public IOInputStatusControl(IOParameter arrInputIo_)         //初始化IOinput参数数组
 {
     arrInputIo = arrInputIo_;
     NewCtrlCardIO.InputIOChange += new EventHandler(NewCtrlCardSR_IOstChange);
     tag_UIdelegate = UIdelegate_;
     InitializeComponent();
 }
示例#5
0
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            //IOinput组件加载到界面
            int m = 0;

            plIOmessage.Controls.Clear();
            StationModule sm = StationManage.FindStation(comboBox_IO.Text);

            for (int i = 0; i < sm.intUseInputIoCount && i < sm.arrInputIo.Count; i++)
            {
                IOInputStatusControl ioinput = new IOInputStatusControl(sm.arrInputIo[i]);
                {
                    ioinput.Location = new Point(5, 24 + 28 * i);
                    plIOmessage.Controls.Add(ioinput);
                }
                arrInputIo = sm.arrInputIo[i];
                m          = i + 1;
            }
            int n = 0;

            //IOoutput组件加载到界面
            for (int i = 0; i < sm.intUseOutputIoCount && i < sm.arrOutputIo.Count; i++)
            {
                IOOutputStatusControl iooutput = new IOOutputStatusControl(sm.arrOutputIo[i], OutIOStationSelect);
                iooutput.Location = new Point(200, 24 + 40 * i);
                plIOmessage.Controls.Add(iooutput);
                arrOutputIo = sm.arrOutputIo[i];
                n           = i + 1;
            }
            NewCtrlCardIO.tag_IO_refresh = 10;
        }
示例#6
0
 /// <summary>
 /// IO dao ru
 /// </summary>
 /// <param name="strIo"></param>
 public static void OutIoCardImport(string strIo)
 {
     try
     {
         string[]      str2       = System.Text.RegularExpressions.Regex.Split(strIo, "\r\n");
         string[]      title      = System.Text.RegularExpressions.Regex.Split(str2[0], ",");
         StationModule stationOld = FindStation(title[0]);
         if (stationOld == null && title[0] != "")
         {
             stationOld = new StationModule();
             _Config.arrWorkStation.Add(stationOld);
             _Config.arrWorkStation[_Config.arrWorkStation.Count - 1].strStationName = title[0];
             _Config.intUseStationCount++;
         }
         for (int j = 1; j < str2.Length; j++)
         {
             string[] IO = System.Text.RegularExpressions.Regex.Split(str2[j], ",");
             if (FindOutputIo(IO[0]) == null && IO[0] != "")
             {
                 IOParameter newIo = new IOParameter(IO[0]);
                 newIo.CardNum = short.Parse(IO[1]);
                 newIo.IOBit   = short.Parse(IO[2]);
                 stationOld.arrOutputIo.Add(newIo);
                 stationOld.intUseOutputIoCount++;
             }
         }
     }
     catch (Exception ex)
     {
         MessageBoxLog.Show(ex.Message);
     }
 }
示例#7
0
        private void button_Del_Click(object sender, EventArgs e)
        {
            try
            {
                IOParameter IO = null;
                int         i  = 0;
                if (!string.IsNullOrEmpty(tag_StationModule.strStationName))
                {
                    for (i = 0; i < tag_StationModule.intUseOutputIoCount; i++)
                    {
                        string axisFind = tag_StationModule.arrOutputIo[i].StrIoName;
                        if (axisFind == listBox2.SelectedItem.ToString())
                        {
                            IO = tag_StationModule.arrOutputIo[i];
                            break;
                        }
                    }
                }

                if (IO == null)
                {
                    return;
                }
                tag_StationModule.arrOutputIo.Remove(IO);
                tag_StationModule.intUseOutputIoCount--;
                listBox2.Items.Remove(IO.StrIoName);
            }
            catch
            {
            }
        }
示例#8
0
 public IOOutputStatusControl(IOParameter arrOutputIo_, delegateStationSelect selectstation)         //初始化IOinput参数数组
 {
     arrOutputIo = arrOutputIo_;
     NewCtrlCardIO.OutputIOChange += new EventHandler(NewCtrlCardSR_IOstChange);
     tag_UIdelegate            = UIdelegate_;
     tag_delegateStationSelect = selectstation;
     InitializeComponent();
 }
示例#9
0
 public void IOinputStatus_Load(IOParameter arrInputIo_)
 {
     arrInputIo = arrInputIo_;
     NewCtrlCardIO.InputIOChange += new EventHandler(NewCtrlCardSR_IOstChange);
     if (arrInputIo != null)
     {
         lblInputname.Text = arrInputIo.StrIoName;                 //从ArrAxis拿轴名称
     }
 }
示例#10
0
        private void MenuEmg_Click(object sender, EventArgs e)
        {
            IOParameter redlight    = StationManage.FindOutputIo("主控系统", "三色灯_红");
            IOParameter yellowlight = StationManage.FindOutputIo("主控系统", "三色灯_黄");
            IOParameter greenlight  = StationManage.FindOutputIo("主控系统", "三色灯_绿");

            NewCtrlCardV0.SetOutputIoBit(redlight, 1);
            NewCtrlCardV0.SetOutputIoBit(yellowlight, 0);
            NewCtrlCardV0.SetOutputIoBit(greenlight, 0);
            Global.WorkVar.tag_ButtonStopState = 1;

            tag_Work.Stop();
        }
示例#11
0
        private void FrameUI_Load(object sender, EventArgs e)
        {
            //////////////////////////////////////////////////////////////////////////
            mainUI          = new MainUI(this, tag_Work);
            mainUI.TopLevel = false;
            mainUI.Parent   = this.PanelForm;

            debugUI          = new DebugUI(this, tag_Work);
            debugUI.TopLevel = false;
            debugUI.Parent   = this.PanelForm;
            alarmUI          = new AlarmUI();
            alarmUI.TopLevel = false;
            alarmUI.Parent   = this.PanelForm;
            formAdaptive.RecordOldSizeScale(this.PanelForm);
            timer_Main.Start();
            label_Version.Text = "版本号:" + System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();

            portShowControl.tag_Work = tag_Work;
            portShowControl.Location = new Point(label_User.Location.X + label_User.Size.Width - 20, label_User.Location.Y - 8);
            portShowControl.Size     = new Size((label_Version.Location.X - portShowControl.Location.X - 10) / 5, panel_MainInfo.Size.Height - 5);
            panel_MainInfo.Controls.Add(portShowControl);

            modeSelectControl.tag_Work = tag_Work;
            modeSelectControl.Location = new Point(portShowControl.Location.X + portShowControl.Size.Width - 40, portShowControl.Location.Y);
            modeSelectControl.Size     = new Size((label_Version.Location.X - modeSelectControl.Location.X - 10) / 4, panel_MainInfo.Size.Height - 5);
            panel_MainInfo.Controls.Add(modeSelectControl);

            ShowSubWindow(Global.CConst.FRM_MAIN);

            //////////////////////////////////////////////////////////////////////////
            if (Global.WorkVar.tag_StopState == 1)
            {
                IOParameter redlight    = StationManage.FindOutputIo("主控系统", "三色灯_红");
                IOParameter yellowlight = StationManage.FindOutputIo("主控系统", "三色灯_黄");
                IOParameter greenlight  = StationManage.FindOutputIo("主控系统", "三色灯_绿");
                NewCtrlCardV0.SetOutputIoBit(redlight, 1);
                NewCtrlCardV0.SetOutputIoBit(yellowlight, 0);
                NewCtrlCardV0.SetOutputIoBit(greenlight, 0);
            }
            IOParameter servoOnSwith = StationManage.FindOutputIo("总复位", "使能");

            if (servoOnSwith != null)
            {
                NewCtrlCardV0.SetOutputIoBit(servoOnSwith, 1);
            }
        }
示例#12
0
        /// <summary>
        /// 获取单通道(Bit)输入IO状态,函数执行成功 判断status参数值 TRUE 有信号输入  FALSE无信号输入
        /// </summary>
        /// <param name="stationName"></param>
        /// <param name="ioName"></param>
        /// <param name="status"></param>
        /// <returns></returns>
        public static short GetInputIoBitStatus(string stationName, string ioName, out bool status)
        {
            short shrResult;

            status = false;
            if (ioName == null)
            {
                status = true;
                return(0);
            }
            IOParameter     ioP   = StationManage.FindInputIo(ioName);
            NewCtrlCardBase Base_ = tag_NewCtrlCardBase[(int)ioP.tag_MotionCardManufacturer];

            if (Base_ == null)
            {
                MessageBoxLog.Show(NewCtrlCardBase.GetManufacturerName((int)ioP.tag_MotionCardManufacturer) + "控制卡初始化失败!");
                return(shrFail);
            }
            if (ioP == null)
            {
                MessageBoxLog.Show(stationName + "\r\nIO:<" + ioName + ">没有找到,请配置");
                return(shrFail);
            }

            shrResult = Base_.SR_GetInputBit(ioP.CardNum, ioP.IOBit, out status);
            if (ioP.Logic == 0)
            {
                if (status)
                {
                    status = false;
                }
                else
                {
                    status = true;
                }
            }
            if (shrResult
                == -1)
            {
                return(shrFail);
            }

            return(shrSuccess);
        }
示例#13
0
 private void FrameUI_FormClosing(object sender, FormClosingEventArgs e)
 {
     if (MessageBoxLog.Show("确定要退出程序吗?", "确认", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
     {
         IOParameter redlight    = StationManage.FindOutputIo("主控系统", "三色灯_红");
         IOParameter yellowlight = StationManage.FindOutputIo("主控系统", "三色灯_黄");
         IOParameter greenlight  = StationManage.FindOutputIo("主控系统", "三色灯_绿");
         NewCtrlCardV0.SetOutputIoBit(redlight, 0);
         NewCtrlCardV0.SetOutputIoBit(yellowlight, 0);
         NewCtrlCardV0.SetOutputIoBit(greenlight, 0);
         Global.WorkVar.tag_ButtonStopState = 1;
         tag_Work.Stop();
         NewCtrlCardV0.CloseCard(tag_Work.tag_CardHave);
     }
     else
     {
         e.Cancel = true;
     }
 }
示例#14
0
        private void button_Add_Click(object sender, EventArgs e)
        {
            try
            {
                IOParameter IO = null;
                foreach (StationModule sm in StationManage._Config.arrWorkStation)
                {
                    int i = 0;

                    if (!string.IsNullOrEmpty(sm.strStationName))
                    {
                        for (i = 0; i < sm.intUseOutputIoCount; i++)
                        {
                            string axisFind = sm.arrOutputIo[i].StrIoName;
                            if (axisFind == listBox1.SelectedItem.ToString())
                            {
                                IO = sm.arrOutputIo[i];
                                break;
                            }
                        }
                    }
                    if (IO != null)
                    {
                        break;
                    }
                }

                foreach (IOParameter io in tag_StationModule.arrOutputIo)
                {
                    if (io == IO)
                    {
                        return;
                    }
                }
                tag_StationModule.arrOutputIo.Add(IO);
                tag_StationModule.intUseOutputIoCount++;
                listBox2.Items.Add(IO.StrIoName);
            }
            catch
            {
            }
        }
示例#15
0
        public void IOoutputStatus_Load(IOParameter arrOutputIo_)
        {
            arrOutputIo = arrOutputIo_;
            if (arrOutputIo != null)
            {
                short var = NewCtrlCardV0.GetOutputIoBit(arrOutputIo, 0);

                OutputBT.BackColor = ((var > 0 && arrOutputIo.Logic == 1) ||
                                      (var < 1 && arrOutputIo.Logic == 0)) ? Color.Gainsboro : Color.LawnGreen;
                label1.Text = arrOutputIo.StrIoName;                 //从ArrAxis拿轴名称

                OutputBT.Text = ((var > 0 && arrOutputIo.Logic == 1) ||
                                 (var < 1 && arrOutputIo.Logic == 0)) ? "ON" : "OFF";
                label1.Text = arrOutputIo.StrIoName;                 //从ArrAxis拿轴名称

                btstatus = ((var > 0 && arrOutputIo.Logic == 1) ||
                            (var < 1 && arrOutputIo.Logic == 0)) ? true : false;
                label1.Text = arrOutputIo.StrIoName;
            }
        }
示例#16
0
        /// <summary>
        /// 卡初始化
        /// </summary>
        /// <param name="card"></param>
        /// <param name="axisCount"></param>
        /// <param name="configFileName"></param>
        /// <returns></returns>
        public short _SR_InitCard()
        {
            short returnValue;

            returnValue = (short)adt8960m.adt8960_initial();
            if (returnValue <= 0)
            {
                string str = "8960控制卡初始化失败!";


                if (returnValue == 0)
                {
                    str = str + "\r\n没有安装ADT卡";
                }
                if (returnValue == -1)
                {
                    str = str + "没有安装端口驱动程序!";
                }
                if (returnValue == -2)
                {
                    str = str + "PCI桥故障!";
                }

                MessageBoxLog.Show(str);
                return(-1);
            }

            IOParameter diancifaLeft  = StationManage.FindOutputIo("左工位", "左载具电磁阀");
            IOParameter diancifaRight = StationManage.FindOutputIo("右工位", "右载具电磁阀");

            NewCtrlCardV0.SetOutputIoBit(diancifaLeft, 1);
            NewCtrlCardV0.SetOutputIoBit(diancifaRight, 1);

            //int aaa = _SR_set_io_mode(0, 0, 0);
            //if (aaa != 0)
            //{
            //    return -1;
            //}

            return(returnValue);
        }
示例#17
0
        public void CheckIoThread(object o)
        {
            while (true)
            {
                bool suspendIo      = false;
                bool stopIoS        = false;
                bool RestIoS        = false;
                bool AxisAlarm      = false;
                bool AxisLimitAlarm = false;
                bool SafetyDoorIoS  = false;             //安全门
                bool RasterIoS_L    = false;             //左安全光栅
                bool RasterIoS_R    = false;             //右安全光栅


                if (NewCtrlCardV0.tag_isInit == 0)
                {
                    Thread.Sleep(100);
                    continue;
                }
                IOParameter SuspendIo  = StationManage.FindInputIo("暂停");
                IOParameter StopIo     = StationManage.FindInputIo("急停");
                IOParameter RestIo     = StationManage.FindInputIo("复位");
                IOParameter Raster_L   = StationManage.FindInputIo("左安全光栅");
                IOParameter Raster_R   = StationManage.FindInputIo("右安全光栅");
                IOParameter SafetyDoor = StationManage.FindInputIo("安全门");


                //AxisAlarm =  IsAxisAlarm();
                AxisLimitAlarm = IsAxisLimitAlarm();
                if (SuspendIo == null)
                {
                    LogOutControl.OutLog("请配置<暂停IO>", 0);
                    Thread.Sleep(100);
                    continue;
                }
                if (StopIo == null)
                {
                    LogOutControl.OutLog("请配置<急停IO>", 0);
                    Thread.Sleep(100);
                    continue;
                }
                if (RestIo == null)
                {
                    LogOutControl.OutLog("请配置<复位IO>", 0);
                    Thread.Sleep(100);
                    continue;
                }
                if (Raster_L == null)
                {
                    LogOutControl.OutLog("请配置<左安全光栅IO>", 0);
                    Thread.Sleep(100);
                    continue;
                }
                if (Raster_R == null)
                {
                    LogOutControl.OutLog("请配置<右安全光栅IO>", 0);
                    Thread.Sleep(100);
                    continue;
                }
                if (SafetyDoor == null)
                {
                    LogOutControl.OutLog("请配置<安全门IO>", 0);
                    Thread.Sleep(100);
                    continue;
                }


                NewCtrlCardV0.GetInputIoBitStatus("", "暂停", out suspendIo);
                NewCtrlCardV0.GetInputIoBitStatus("", "复位", out RestIoS);
                NewCtrlCardV0.GetInputIoBitStatus("", "急停", out stopIoS);
                NewCtrlCardV0.GetInputIoBitStatus("", "安全门", out SafetyDoorIoS);
                NewCtrlCardV0.GetInputIoBitStatus("", "左安全光栅", out RasterIoS_L);
                NewCtrlCardV0.GetInputIoBitStatus("", "右安全光栅", out RasterIoS_R);
                //if (!stopIoS || Global.WorkVar.tag_StopState == 2 || !IsafeIOOk() || !IoAllSafeCheck() || !AxisSafeCheck() || AxisAlarm || (AxisLimitAlarm && Global.WorkVar.tag_ResetState != 1))
                if (!stopIoS || Global.WorkVar.tag_StopState == 2 || !IsafeIOOk() || !IoAllSafeCheck() || !AxisSafeCheck() || AxisAlarm)
                {
                    IsafeIOInit();
                    Stop();
                    Thread.Sleep(100);
                    continue;
                }
                else if (((!SafetyDoorIoS && !_Config.tag_PrivateSave.tag_safeGateOffOn) || suspendIo) && Global.WorkVar.tag_SuspendState == 0 && (Global.WorkVar.bWork_L || Global.WorkVar.bWork_R))
                {
                    Suspend(null);
                    Thread.Sleep(500);
                }
                else if (RestIoS)
                {
                    Global.WorkVar.tag_StopState = 0;
                    if (Global.WorkVar.tag_ResetState != 1 && Global.WorkVar.tag_workState == 0)
                    {
                        Rest();
                    }
                    else
                    {
                    }
                    continue;
                }
                else if (suspendIo && Global.WorkVar.tag_SuspendState == 1)
                {
                    Continue(null);
                    Thread.Sleep(500);
                    continue;
                }
                else if (Global.WorkVar.bcanRunFalg == true && Global.WorkVar.tag_ResetState == 2 && Global.WorkVar.tag_workState == 0)
                {
                    Global.WorkVar.bcanRunFalg = false;
                    if (start())
                    {
                        Global.WorkVar.bcanRunFalg = true;
                    }
                    continue;
                }
                if (!RasterIoS_L && !_Config.tag_PrivateSave.tag_safeLightOffOn && Global.WorkVar.bWork_L && !Global.WorkVar.bSuspendState_L)
                {
                    Suspend_L(null);
                }
                else if (RasterIoS_L && Global.WorkVar.bSuspendState_L)
                {
                    Continue_L(null);
                }
                if (!RasterIoS_R && !_Config.tag_PrivateSave.tag_safeLightOffOn && Global.WorkVar.bWork_R && !Global.WorkVar.bSuspendState_R)
                {
                    Suspend_R(null);
                }
                else if (RasterIoS_R && Global.WorkVar.bSuspendState_R)
                {
                    Continue_R(null);
                }
                Thread.Sleep(100);
            }
        }
示例#18
0
 public IOSetPanelControl(IOParameter IO)
 {
     _IO = IO;
     InitializeComponent();
     Init();
 }