/// <summary> /// 同步更新轴号 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void tcMain_SelectedIndexChanged(object sender, EventArgs e) { int axis = S2data.Axis; if (S2data.GetShowMode(axis) == 1) { tcMain.SelectedIndex = axis; } else { S2data.Axis = tcMain.SelectedIndex; //选项卡索引 } }
/// <summary> /// 线程主体,循环发送指令 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void thread_Refresh() { int count = 0; while (true) { Thread.Sleep(30); if (S1data.COMHardCon == 1) //串口数据处理 { if (Com.IsExists()) { S1data.COMSoftCon = 1; count = 0; } else { count++; if (count > 5) { count = 0; S1data.COMHardCon = 0; S1data.COMSoftCon = 0; lForm.RecodeInfo("心跳异常"); thread.Abort(); //避免重复新建线程 } } if (S1data.COMSoftCon == 1) //软链接成功 { if (S1data.GetFirstNum() == 0) //读取固件信息 { S1data.SetFirstNum(1); //获取版本信息 S1data.SetVer_Info(Com.GetVerInfo()); } int axis = S1data.Axis; //获取轴位置 S1data.SetLocation(axis, Com.GetPosition()); //获取DIP if (Com.GetDIP() != Com.ErrNum) { S1data.DIP = Com.GetDIP(); } //获取输入口状态 if (Com.GetInputs() != Com.ErrNum) { S1data.MInput = Com.GetInputs(); } //获取输出口状态 if (Com.GetOutputs() != Com.ErrNum) { S1data.MOutput = Com.GetOutputs(); } if (S1data.GetShowMode(axis) == 1) { int dir = S1data.GetDire(axis); int dis = S1data.GetDistence(axis); long Loca = S1data.GetLocation(axis); if (ShowLoc - Loca == 0 && ShowNum == 0) { ShowEn = true; ShowNum++; } else if (Math.Abs(ShowLoc - Loca) == dis && ShowNum == 1) { ShowEn = true; ShowNum--; } if (ShowEn) { ShowEn = false; Com.SetMMmove(S1data.GetDire(axis), S1data.GetDistence(axis), S1data.GetRunSpd(axis)); if (dir == 0) { S1data.SetDire(axis, 1); } else { S1data.SetDire(axis, 0); } } } } } } }