/// <summary> /// 转盘道制定位置后通知PG拍摄 /// </summary> /// <param name="workPos"></param> public static void NoticePgShooting(int workPos) { try { if (workPos == 1) { Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("红灯"), 1); Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("红灯"), 1); //Global.ControlCard.WriteOutbit(27, 1); Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("绿灯"), 1); Global.ControlCard.WriteOutbit(28, 1); Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("启动按钮1灯"), 1); Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("启动按钮2灯"), 1); } else if (workPos == 2) { Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("红灯"), 1); Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("黄灯"), 0); //Global.ControlCard.WriteOutbit(27, 1); Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("绿灯"), 1); Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("报警"), 1); Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("启动按钮1灯"), 1); Global.ControlCard.WriteOutbit(30, 0); } else if (workPos == 3) { Global.ControlCard.WriteOutbit(25, 0); Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("红灯"), 1); Global.ControlCard.WriteOutbit(27, 0); Global.ControlCard.WriteOutbit(28, 1); Global.ControlCard.WriteOutbit(29, 0); Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("启动按钮2灯"), 1); } else if (workPos == 4) { Global.ControlCard.WriteOutbit(25, 0); Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("黄灯"), 0); Global.ControlCard.WriteOutbit(27, 0); Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("报警"), 1); Global.ControlCard.WriteOutbit(29, 0); Global.ControlCard.WriteOutbit(30, 0); } } catch (Exception ex) { Log.WriterExceptionLog(ex.ToString()); } }
/// <summary> /// 检测是否触发了急停按钮 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void TimerEmgStop_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { if (Global.ControlCard.ReadInbit(68) == 1) { Global.ControlCard.AxisStop(null, AxisStopType.EmgStop, true); //亮红灯 Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("红灯"), 1); //报警提示 Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("报警"), 1); Log.GetInstance().WarningWrite("需点击“复位”后重新开始检测"); Global.isReset = true; if (this.formAutomaticCheck != null) { this.formAutomaticCheck.Stop(); } } }
/// <summary> /// 所有轴复位 /// </summary> public static bool AllAxisReset() { bool f = false; try { Log.GetInstance().NormalWrite("轴正在开始复位......"); var fRtn = MoveExecute.SetBaffle(true); //气缸移动不到位不处理 if (!fRtn) { f = false; return(false); } var tasks = new List <Task>(); foreach (var axisInfo in Global.ListAxis) { tasks.Add(Task.Factory.StartNew(() => { //轴回原点 fRtn = MoveExecute.HomeMove(axisInfo, false); if (!fRtn) { f = false; } axisInfo.Dist = Convert.ToInt32(axisInfo.WorkPos1 * axisInfo.Step / axisInfo.Lead); axisInfo.PosiMode = 1; //轴到工作1位置 fRtn = MoveExecute.Pmove(axisInfo, false); if (!fRtn || Global.ControlCard.GetPosition(axisInfo, false) != axisInfo.Dist) { f = false; } })); } Task.WaitAll(tasks.ToArray()); if (f) { Global.isReset = false; //亮黄灯 Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("红灯"), 1); MoveExecute.NoticePgShooting(Global.WorkPos); return(f); } else { //报警提示 Global.ControlCard.WriteOutbit(28, 1); //亮红灯 Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("红灯"), 1); return(f); } } catch (Exception ex) { Log.WriterExceptionLog(ex.ToString()); return(false); } finally { if (f) { Log.GetInstance().NormalWrite("轴复位成功,可以开始Demura检测"); } else { Log.GetInstance().ErrorWrite("轴复位失败,请重启设备"); } Log.GetInstance().NormalWrite("轴复位结束"); } }
/// <summary> /// 设置气缸位置 /// </summary> /// <param name="svrType"></param> /// <param name="isUp"></param> /// <returns></returns> public static bool SetBaffle(SvrType svrType, bool isUp) { try { int waitTime = 0; //因为要等待IO信号到位,所以需要循坏等待到位信号 while (true) { //如果超出了等待时间就要报警 if (waitTime == Global.CardWaitTime) { Log.GetInstance().WarningWrite(string.Format("{0}气缸{1}超时,可能是部件损坏,需检查设备", svrType == SvrType.Left ? "左边" : "右边", isUp == true ? "上移" : "下移")); //报警提示 Global.ControlCard.WriteOutbit(28, 1); //亮红灯 Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("红灯"), 1); return(false); } if (svrType == SvrType.Left) { if (isUp) { //第一次才输出IO信号 if (waitTime == 0) { //左边气缸上 Global.ControlCard.WriteOutbit(63, 1); } //气缸到位 if (Global.ControlCard.ReadInbit(55) == 1) { return(true); } } else { //第一次才输出IO信号 if (waitTime == 0) { //左边气缸下 Global.ControlCard.WriteOutbit(63, 0); } //气缸到位 if (Global.ControlCard.ReadInbit(56) == 1) { return(true); } } } else { if (isUp) { //第一次才输出IO信号 if (waitTime == 0) { //右边气缸上 Global.ControlCard.WriteOutbit(64, 1); } //气缸到位 if (Global.ControlCard.ReadInbit(57) == 1) { return(true); } } else { //第一次才输出IO信号 if (waitTime == 0) { //右边气缸下 Global.ControlCard.WriteOutbit(64, 0); } //气缸到位 if (Global.ControlCard.ReadInbit(58) == 1) { return(true); } } } waitTime++; Thread.Sleep(1000); } } catch (Exception ex) { Log.WriterExceptionLog(ex.ToString()); return(false); } }
/// <summary> /// 设置屏幕锁住与否,点灯锁住,关灯解锁 /// </summary> /// <param name="iixServer"></param> /// <param name="isPanelOn"></param> /// <returns></returns> public static void SetPanelLock(IIXServer iixServer, bool isPanelOn) { try { //当前工位是#1 if (Global.WorkPos == 1) { //IIX服务端关联的屏幕#1 if (iixServer.AssociatedPanelPos == "#1") { //点灯 if (isPanelOn) { Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("红灯"), 1); } //关灯 else { Global.ControlCard.WriteOutbit(25, 0); } } else if (iixServer.AssociatedPanelPos == "#2") { //点灯 if (isPanelOn) { Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("红灯"), 1); } //关灯 else { Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("黄灯"), 0); } } else if (iixServer.AssociatedPanelPos == "#3") { //点灯 if (isPanelOn) { //Global.ControlCard.WriteOutbit(27, 1); Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("绿灯"), 1); } //关灯 else { Global.ControlCard.WriteOutbit(27, 0); } } } else if (Global.WorkPos == 2) { //IIX服务端关联的屏幕#1 if (iixServer.AssociatedPanelPos == "#1") { //点灯 if (isPanelOn) { Global.ControlCard.WriteOutbit(28, 1); } //关灯 else { Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("报警"), 1); } } else if (iixServer.AssociatedPanelPos == "#2") { //点灯 if (isPanelOn) { Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("启动按钮1灯"), 1); } //关灯 else { Global.ControlCard.WriteOutbit(29, 0); } } else if (iixServer.AssociatedPanelPos == "#3") { //点灯 if (isPanelOn) { Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("启动按钮2灯"), 1); } //关灯 else { Global.ControlCard.WriteOutbit(30, 0); } } } else if (Global.WorkPos == 3) { //IIX服务端关联的屏幕#1 if (iixServer.AssociatedPanelPos == "#1") { //点灯 if (isPanelOn) { Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("按钮1灯"), 1); } //关灯 else { Global.ControlCard.WriteOutbit(31, 0); } } else if (iixServer.AssociatedPanelPos == "#2") { //点灯 if (isPanelOn) { Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("按钮2灯"), 1); } //关灯 else { Global.ControlCard.WriteOutbit(32, 0); } } else if (iixServer.AssociatedPanelPos == "#3") { //点灯 if (isPanelOn) { Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("按钮3灯"), 1); } //关灯 else { Global.ControlCard.WriteOutbit(59, 0); } } } else if (Global.WorkPos == 4) { //IIX服务端关联的屏幕#1 if (iixServer.AssociatedPanelPos == "#1") { //点灯 if (isPanelOn) { Global.ControlCard.WriteOutbit(60, 1); } //关灯 else { Global.ControlCard.WriteOutbit(60, 0); } } else if (iixServer.AssociatedPanelPos == "#2") { //点灯 if (isPanelOn) { Global.ControlCard.WriteOutbit(61, 1); } //关灯 else { Global.ControlCard.WriteOutbit(61, 0); } } else if (iixServer.AssociatedPanelPos == "#3") { //点灯 if (isPanelOn) { Global.ControlCard.WriteOutbit(62, 1); } //关灯 else { Global.ControlCard.WriteOutbit(62, 0); } } } } catch (Exception ex) { Log.WriterExceptionLog(ex.ToString()); } }
/// <summary> /// 设置屏幕真空/破真空,并检测是否成功 /// </summary> /// <param name="iixServer"></param> /// <param name="isVacuum">true = 真空,false = 破真空</param> /// <returns></returns> public static bool SetVacuum(IIXServer iixServer, bool isVacuum) { bool f = false; try { int waitTime = 0; while (true) { if (waitTime == Global.CardWaitTime) { //报警提示 Global.ControlCard.WriteOutbit(28, 1); //亮红灯 Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("红灯"), 1); Log.GetInstance().WarningWrite(string.Format("屏[{0}]{1}超时", iixServer.AssociatedPanelPos, isVacuum == true ? "真空" : "破真空")); Log.GetInstance().WarningWrite(string.Format("请重新{0},如还不成功,可能是部件损坏,需检查设备", isVacuum == true ? "点灯" : "关灯")); return(false); } //当前工位是#1 if (Global.WorkPos == 1) { //IIX服务端关联的屏幕#1 if (iixServer.AssociatedPanelPos == "#1") { if (waitTime == 0) { //真空 if (isVacuum) { Global.IoCard.WriteOutBit(1, 1); } //破真空 else { Global.IoCard.WriteOutBit(4, 1); } } //检测动作完成 if (Global.IoCard.ReadInBit(12) == 1) { return(true); } } else if (iixServer.AssociatedPanelPos == "#2") { if (waitTime == 0) { //真空 if (isVacuum) { Global.IoCard.WriteOutBit(2, 1); } //破真空 else { Global.IoCard.WriteOutBit(5, 1); } } //检测动作完成 if (Global.IoCard.ReadInBit(13) == 1) { return(true); } } else if (iixServer.AssociatedPanelPos == "#3") { if (waitTime == 0) { //真空 if (isVacuum) { Global.IoCard.WriteOutBit(3, 1); } //破真空 else { Global.IoCard.WriteOutBit(6, 1); } } //检测动作完成 if (Global.IoCard.ReadInBit(14) == 1) { return(true); } } } else if (Global.WorkPos == 2) { //IIX服务端关联的屏幕#1 if (iixServer.AssociatedPanelPos == "#1") { if (waitTime == 0) { //真空 if (isVacuum) { Global.IoCard.WriteOutBit(7, 1); } //破真空 else { Global.IoCard.WriteOutBit(10, 1); } } //检测动作完成 if (Global.IoCard.ReadInBit(15) == 1) { return(true); } } else if (iixServer.AssociatedPanelPos == "#2") { if (waitTime == 0) { //真空 if (isVacuum) { Global.IoCard.WriteOutBit(8, 1); } //破真空 else { Global.IoCard.WriteOutBit(11, 1); } } //检测动作完成 if (Global.IoCard.ReadInBit(16) == 1) { return(true); } } else if (iixServer.AssociatedPanelPos == "#3") { if (waitTime == 0) { //真空 if (isVacuum) { Global.IoCard.WriteOutBit(9, 1); } //破真空 else { Global.IoCard.WriteOutBit(12, 1); } } //检测动作完成 if (Global.IoCard.ReadInBit(17) == 1) { return(true); } } } else if (Global.WorkPos == 3) { //IIX服务端关联的屏幕#1 if (iixServer.AssociatedPanelPos == "#1") { if (waitTime == 0) { //真空 if (isVacuum) { Global.IoCard.WriteOutBit(13, 1); } //破真空 else { Global.IoCard.WriteOutBit(16, 1); } } //检测动作完成 while (Global.IoCard.ReadInBit(18) == 1) { return(true); } } else if (iixServer.AssociatedPanelPos == "#2") { if (waitTime == 0) { //真空 if (isVacuum) { Global.IoCard.WriteOutBit(14, 1); } //破真空 else { Global.IoCard.WriteOutBit(17, 1); } } //检测动作完成 if (Global.IoCard.ReadInBit(19) == 1) { return(true); } } else if (iixServer.AssociatedPanelPos == "#3") { if (waitTime == 0) { //真空 if (isVacuum) { Global.IoCard.WriteOutBit(15, 1); } //破真空 else { Global.IoCard.WriteOutBit(18, 1); } } //检测动作完成 if (Global.IoCard.ReadInBit(20) == 1) { return(true); } } } else if (Global.WorkPos == 4) { //IIX服务端关联的屏幕#1 if (iixServer.AssociatedPanelPos == "#1") { if (waitTime == 0) { //真空 if (isVacuum) { Global.IoCard.WriteOutBit(19, 1); } //破真空 else { Global.IoCard.WriteOutBit(22, 1); } } //检测动作完成 if (Global.IoCard.ReadInBit(21) == 1) { return(true); } } else if (iixServer.AssociatedPanelPos == "#2") { if (waitTime == 0) { //真空 if (isVacuum) { Global.IoCard.WriteOutBit(20, 1); } //破真空 else { Global.IoCard.WriteOutBit(23, 1); } } //检测动作完成 if (Global.IoCard.ReadInBit(22) == 1) { return(true); } } else if (iixServer.AssociatedPanelPos == "#3") { if (waitTime == 0) { //真空 if (isVacuum) { Global.IoCard.WriteOutBit(21, 1); } //破真空 else { Global.IoCard.WriteOutBit(24, 1); } } //检测动作完成 if (Global.IoCard.ReadInBit(23) == 1) { return(true); } } } waitTime++; Thread.Sleep(1000); } } catch (Exception ex) { f = false; Log.WriterExceptionLog(ex.ToString()); } //Log.GetInstance().NormalWrite(string.Format("屏[{0}]{1}{2}", iixServer.AssociatedPanelPos, isVacuum == true ? "真空" : "破真空", f == true ? "成功" : "失败")); return(f); }
/// <summary> /// 轴回原点 /// </summary> /// <param name="axisInfo"></param> /// <param name="isShowLog"></param> /// <returns></returns> public static bool HomeMove(AxisInfo axisInfo, bool isShowLog) { bool f = false; try { if (isShowLog) { Log.GetInstance().NormalWrite(string.Format("[{0}]轴开始回原点运动......", axisInfo.AxisName)); } axisInfo.Outmode = 0; axisInfo.OrgLogic = 0; axisInfo.EzLogic = 0; axisInfo.EzMode = 1; axisInfo.HomeDir = 1; axisInfo.Vel = axisInfo.MaxVel; axisInfo.HomeMode = 3; axisInfo.EZCount = 1; //设置脉冲输出模式 int iRtn = Global.ControlCard.SetPulseOutmode(axisInfo, isShowLog); if (iRtn != 0) { return(false); } //设置ORG信号的有效电平 iRtn = Global.ControlCard.SetConfigHomePinLogic(axisInfo, isShowLog); if (iRtn != 0) { return(false); } //设置指定轴的EZ信号的有效电平及其作用 iRtn = Global.ControlCard.SetConfigEzPin(axisInfo, isShowLog); if (iRtn != 0) { return(false); } //设置回原点模式 iRtn = Global.ControlCard.SetConfigHomeMode(axisInfo, isShowLog); if (iRtn != 0) { return(false); } //设置运动模式 iRtn = Global.ControlCard.SetProFile(axisInfo, ProFileType.T, isShowLog); if (iRtn != 0) { return(false); } //回原点 iRtn = Global.ControlCard.HomeMove(axisInfo, isShowLog); if (iRtn != 0) { return(false); } int waitTime = 0; //等待轴停止运动 while (true) { if (waitTime == Global.CardWaitTime) { //报警提示 Global.ControlCard.WriteOutbit(28, 1); //亮红灯 Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("红灯"), 1); Log.GetInstance().WarningWrite(string.Format("[{0}]轴回原点运动超时", axisInfo.AxisName)); Log.GetInstance().WarningWrite(string.Format("[{0}]轴强制停止运动,需复位后重新开始检测", axisInfo.AxisName)); //停止轴运动 Global.ControlCard.AxisStop(axisInfo, AxisStopType.ImdStop, isShowLog); return(false); } if (Global.ControlCard.CheckDone(axisInfo, isShowLog) == 1) { f = true; return(true); } waitTime++; Thread.Sleep(1000); } } catch (Exception ex) { Log.WriterExceptionLog(ex.ToString()); return(false); } finally { if (isShowLog) { if (f) { Log.GetInstance().NormalWrite(string.Format("[{0}]轴回原点成功,请移动到工作位置1", axisInfo.AxisName)); } else { Log.GetInstance().ErrorWrite(string.Format("[{0}]轴回原点失败,请重启设备", axisInfo.AxisName)); } Log.GetInstance().NormalWrite(string.Format("[{0}]轴回原点运动结束", axisInfo.AxisName)); } } }
/// <summary> /// 轴定长运动 /// </summary> /// <param name="axisInfo"></param> /// <param name="isShowLog"></param> /// <returns></returns> public static bool Pmove(AxisInfo axisInfo, bool isShowLog) { try { if (isShowLog) { Log.GetInstance().NormalWrite(string.Format("[{0}]轴开始定长运动......", axisInfo.AxisName)); } axisInfo.Outmode = 0; //设置脉冲输出模式 int iRtn = Global.ControlCard.SetPulseOutmode(axisInfo, isShowLog); if (iRtn != 0) { return(false); } //设置运动模式 iRtn = Global.ControlCard.SetProFile(axisInfo, ProFileType.T, isShowLog); if (iRtn != 0) { return(false); } //定长运动 iRtn = Global.ControlCard.Pmove(axisInfo, isShowLog); if (iRtn != 0) { return(false); } int waitTime = 0; //检查是否移动到位 while (true) { if (waitTime == Global.CardWaitTime) { //报警提示 Global.ControlCard.WriteOutbit(28, 1); //亮红灯 Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("红灯"), 1); Log.GetInstance().WarningWrite(string.Format("[{0}]轴定长运动超时", axisInfo.AxisName)); Log.GetInstance().WarningWrite(string.Format("[{0}]轴强制停止运动,需复位后重新开始检测", axisInfo.AxisName)); //停止轴运动 Global.ControlCard.AxisStop(axisInfo, AxisStopType.ImdStop, isShowLog); return(false); } if (axisInfo.AxisName == "转盘") { //轴停止并且收到运动到位指令 if (Global.ControlCard.CheckDone(axisInfo, isShowLog) == 1 && Global.IoCard.ReadInBit(24) == 1) { return(true); } } else if (axisInfo.AxisName == "VCR-X") { if (Global.ControlCard.CheckDone(axisInfo, isShowLog) == 1 && Global.IoCard.ReadInBit(25) == 1) { return(true); } } else if (axisInfo.AxisName == "VCR-Z") { if (Global.ControlCard.CheckDone(axisInfo, isShowLog) == 1 && Global.IoCard.ReadInBit(26) == 1) { return(true); } } else if (axisInfo.AxisName == "检测相机#1") { if (Global.ControlCard.CheckDone(axisInfo, isShowLog) == 1 && Global.IoCard.ReadInBit(27) == 1) { return(true); } } else if (axisInfo.AxisName == "检测相机#2") { if (Global.ControlCard.CheckDone(axisInfo, isShowLog) == 1 && Global.IoCard.ReadInBit(28) == 1) { return(true); } } else if (axisInfo.AxisName == "检测相机#3") { if (Global.ControlCard.CheckDone(axisInfo, isShowLog) == 1 && Global.IoCard.ReadInBit(29) == 1) { return(true); } } else if (axisInfo.AxisName == "复检相机#1") { if (Global.ControlCard.CheckDone(axisInfo, isShowLog) == 1 && Global.IoCard.ReadInBit(30) == 1) { return(true); } } else if (axisInfo.AxisName == "复检相机#2") { if (Global.ControlCard.CheckDone(axisInfo, isShowLog) == 1 && Global.IoCard.ReadInBit(31) == 1) { return(true); } } else if (axisInfo.AxisName == "复检相机#3") { if (Global.ControlCard.CheckDone(axisInfo, isShowLog) == 1 && Global.IoCard.ReadInBit(32) == 1) { return(true); } } waitTime++; Thread.Sleep(1000); } } catch (Exception ex) { Log.WriterExceptionLog(ex.ToString()); return(false); } finally { if (isShowLog) { Log.GetInstance().NormalWrite(string.Format("[{0}]轴定长运动结束", axisInfo.AxisName)); } } }
private void btnCloseIo_Click(object sender, EventArgs e) { if (this.cbbIO.SelectedItem.ToString() == "真空") { var tasks = new List <Task>(); foreach (var _iixServer in Global.ListIIXSerevr) { if (_iixServer.IsEnable == false) { continue; } if (_iixServer.SvrType == SvrType.Right) { tasks.Add(Task.Factory.StartNew(() => { MoveExecute.SetVacuum(_iixServer, false); })); } } } else if (this.cbbIO.SelectedItem.ToString() == "治具防呆") { var tasks = new List <Task>(); foreach (var _iixServer in Global.ListIIXSerevr) { if (_iixServer.IsEnable == false) { continue; } if (_iixServer.SvrType == SvrType.Right) { tasks.Add(Task.Factory.StartNew(() => { MoveExecute.SetPanelLock(_iixServer, false); })); } } } else if (this.cbbIO.SelectedItem.ToString() == "暗室气缸") { MoveExecute.SetBaffle(false); } else if (this.cbbIO.SelectedItem.ToString() == "轴使能") { MoveExecute.SetAxisLock(false); } else if (this.cbbIO.SelectedItem.ToString() == "报警") { Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("报警"), 0); } else if (this.cbbIO.SelectedItem.ToString() == "黄灯") { Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("黄灯"), 0); } else if (this.cbbIO.SelectedItem.ToString() == "红灯") { Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("红灯"), 0); } else if (this.cbbIO.SelectedItem.ToString() == "绿灯") { Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("绿灯"), 0); } else if (this.cbbIO.SelectedItem.ToString() == "启动按钮1灯") { Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("启动按钮1灯"), 0); } else if (this.cbbIO.SelectedItem.ToString() == "启动按钮2灯") { Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("启动按钮2灯"), 0); } else if (this.cbbIO.SelectedItem.ToString() == "按钮1灯") { Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("按钮1灯"), 0); } else if (this.cbbIO.SelectedItem.ToString() == "按钮2灯") { Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("按钮2灯"), 0); } else if (this.cbbIO.SelectedItem.ToString() == "按钮3灯") { Global.ControlCard.WriteOutbit((ushort)Global.GetIOPortNoByName("按钮3灯"), 0); } }