private void ReConnectToRobot() { string strMsg = ""; try { if (!yamahaRCX340API.Connected) { _iTimes++; strMsg = string.Format(">{0} 断开连接,即将尝试第 {1} 次重连...", _robotData.Name, _iTimes.ToString()); MainModule.AddRunMessage(strMsg, OutputLevel.Warn); } yamahaRCX340API.DisconnectToYamahaRobot(); System.Threading.Thread.Sleep(1000); yamahaRCX340API.ConnectToYamahaRobot(_robotData.IP, (short)_robotData.Port, (short)_robotData.ReadTimeout); if (yamahaRCX340API.Connected) { _iTimes = 0; MainModule.AddRunMessage(">成功建立连接。", OutputLevel.Trace); } else { MainModule.AddRunMessage(">连接未成功。", OutputLevel.Warn); } System.Threading.Thread.Sleep(1000); } catch (Exception) { } }
private void ThreadScan() { int iCount = 0; System.Threading.Thread.Sleep(1000); while (!MainModule.formMain.bExit) { System.Threading.Thread.Sleep(1000); try { #region 掉线检测重连 if (!yamahaRCX340API.Connected) //取消自动重连 { if (DataManage.CheckItemExist("System", "RXC340掉线重连次数")) { int iLimitTimes = DataManage.IntValue("System", "RXC340掉线重连次数"); if (_iTimes == iLimitTimes) { MainModule.alarmManage.InsertAlarm(AlarmKeys.ConnectAlarm1, "与机械手 YamahaRXC340 连接断开,请检查网络后在手动页面中手动重连!"); MainModule.AddRunMessage(">连接未成功。", OutputLevel.Warn); _iTimes++; continue; } else if (_iTimes > iLimitTimes) { continue; } } ReConnectToRobot(); continue; } #endregion #region 机械手信息获取 if (iCount % 2 == 0) { //2S GetAlarmStatus(); //GetServoStatus(); GetCurrentPos(); } if (iCount > 3) { //3S //GetCurrentVel(); //GetCurrDist(); //iCount = 0; } //1S GetInputStatus(); GetOutputStatus(); iCount++; #endregion } catch (Exception) { } } }