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); } }
/// <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); }
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); } }
public IOInputStatusControl(IOParameter arrInputIo_) //初始化IOinput参数数组 { arrInputIo = arrInputIo_; NewCtrlCardIO.InputIOChange += new EventHandler(NewCtrlCardSR_IOstChange); tag_UIdelegate = UIdelegate_; InitializeComponent(); }
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; }
/// <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); } }
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 { } }
public IOOutputStatusControl(IOParameter arrOutputIo_, delegateStationSelect selectstation) //初始化IOinput参数数组 { arrOutputIo = arrOutputIo_; NewCtrlCardIO.OutputIOChange += new EventHandler(NewCtrlCardSR_IOstChange); tag_UIdelegate = UIdelegate_; tag_delegateStationSelect = selectstation; InitializeComponent(); }
public void IOinputStatus_Load(IOParameter arrInputIo_) { arrInputIo = arrInputIo_; NewCtrlCardIO.InputIOChange += new EventHandler(NewCtrlCardSR_IOstChange); if (arrInputIo != null) { lblInputname.Text = arrInputIo.StrIoName; //从ArrAxis拿轴名称 } }
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(); }
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); } }
/// <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); }
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; } }
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 { } }
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; } }
/// <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); }
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); } }
public IOSetPanelControl(IOParameter IO) { _IO = IO; InitializeComponent(); Init(); }