/// <summary> /// 拧紧机作业完成事件 /// 根据1号机完成的结果,确定是否开启2号机 /// </summary> /// <param name="isOk"></param> /// <param name="tightenData"></param> private void TightenControllerFinished(int toolId, bool isOk, TightenData tightenData) { try { if (tightenData == null || curTightenCfg == null) { //不需要拧紧 RunNextTightenTool(); return; } OnReadTightenData(toolId, tightenData); if (toolId != curTightenCfg.ToolId) { adam.AlarmWarning(true); ViewModel.PrintlnWarning("当前使用电枪与配置电枪不符!"); return; } if (isOk)//拧紧机完成作业的结果.全部OK时是true,有NG是false { adam.AlarmWarning(false); RunNextTightenTool(); } else { //连续NG报警 ViewModel.PrintlnWarning("连续NG超过限制,锁枪!"); adam.AlarmWarning(true); } } catch (Exception ex) { Log.Error(ex, "处理电枪结果回调时报错!"); } }
/// <summary> /// 读取拧紧数据 /// </summary> /// <param name="model"></param> public void OnReadTightenData(int toolId, TightenData model) { try { if (model != null) { model.BoltNo = CurrentPointNum; if (model.Result == 1) { CurrentPointNum++; } Debug.WriteLine($"{this.GetType().Name} -> 拧紧数据回调(Controller)->EngineCode {model.EngineCode}"); Debug.WriteLine($"{this.GetType().Name} -> 拧紧数据回调(Controller)->BoltNo {model.BoltNo}"); Debug.WriteLine($"{this.GetType().Name} -> 拧紧数据回调(Controller)->Torque {model.Torque}"); Debug.WriteLine($"{this.GetType().Name} -> 拧紧数据回调(Controller)->Result {model.Result}"); ViewModel.TighteningData = model; ViewModel.CurTorque = model.Torque; ViewModel.TorqueColor = model.Result == 1 ? Color.Green : Color.Red; ViewModel.CurAngle = model.Angle.ToString() + "°"; Task.Run(() => SaveTightenToLocal(model)); } else { Debug.WriteLine($"{this.GetType().Name} -> 拧紧返回数据为NULL"); } } catch (Exception ex) { Log.Error("展示拧紧数据时异常,", ex); } }
public static TightenModel LocalMap(TightenData data) { return(new TightenModel { EngineCode = data.EngineCode, Pset = data.Pset, BoltNo = data.BoltNo, Torque = data.Torque, Angle = data.Angle, Result = data.Result, CreateTime = data.TightenTime }); }
public static TighteningResultModel ServerMap(TightenData data) { return(new TighteningResultModel { EngineCode = data.EngineCode, DataNO = data.Pset, BoltNO = data.BoltNo, Torque = data.Torque, Angle = data.Angle, Result = data.Result, ResultTime = data.TightenTime, CreateTime = DateTime.Now }); }
/// <summary> /// 保存拧紧数据到本地 /// </summary> /// <param name="data"></param> /// <returns></returns> private void SaveTightenToLocal(TightenData data) { if (data == null) { return; } try { var model = TightenMapper.LocalMap(data); model.StationName = _screenConfig.Station.StationID; model.IsUpload = 0; RFIDDBHelper.LocalSQLHandler.TighteningService.Insert(model); } catch (Exception ex) { Log.Error("拧紧数据存储到本地数据库异常", ex); } }
public void TestTighteningInsert() { LocalSQLService LocalSQLHandler = new LocalSQLService(); string code = "L15B84104476"; var data = new TightenData(); data.EngineCode = code; data.Torque = 195.5; data.Angle = 360; data.BoltNo = 1; data.Result = 1; //data.TightenTime = DateTime.Now; var model = TightenMapper.LocalMap(data); model.StationName = "td"; int result = LocalSQLHandler.TighteningService.Insert(model); Assert.IsTrue(result > 0); }
public void AddTightenData(TightenData td) { TightenDatas.Add(td); }
/// <summary> /// 读取拧紧数据 /// 这应该是TightenClient的回调方法 /// </summary> /// <param name="msg"></param> private void ReadLastTightenData(TightenData result) { Debug.WriteLine($"MyController -> ReadLastTightenData -> {result.Torque}"); Debug.WriteLine($"MyController -> ReadLastTightenData -> {result.Pset}"); try { if (result == null || result.Torque == 0) { return; } if (string.IsNullOrEmpty(CurrentEngineCode) == false) { result.EngineCode = CurrentEngineCode; } TightenDatas.AddTightenData(result); result.JobResult = GetResult() ? 1 : 0; //手动给螺栓号赋值 result.BoltNo = CurrentBoltIndex; if (CurrentBoltIndex == 0) { OnLastTightenAction?.Invoke(tdConfig.ToolId, result); return; } if (result.Result == 0) //NG { TightenCount++; Debug.WriteLine($"MyController -> ReadLastTightenData -> CurrentBoltIndex = {CurrentBoltIndex}"); Debug.WriteLine($"MyController -> ReadLastTightenData -> TightenCount = {TightenCount}"); if (TightenCount >= TightenCountLimit && TightenCountLimit != 0) //NG { //锁枪 //TODO:测试时注释 TightenToolClient.DisableTightenTool(); //调用结束事件 OnWorkUnitFinishedAction?.Invoke(tdConfig.ToolId, false, result); } else { //调用拧紧结果事件 OnLastTightenAction?.Invoke(tdConfig.ToolId, result); } } else { Debug.WriteLine($"MyController -> ReadLastTightenData -> CurrentBoltIndex = {CurrentBoltIndex}"); Debug.WriteLine($"MyController -> ReadLastTightenData -> TightenCount = {TightenCount}"); Debug.WriteLine($"MyController -> ReadLastTightenData -> newTightenConfig ==null? {newTightenConfig == null}"); //当前螺丝处理完再加1 if (CurrentBoltIndex == newTightenConfig.TightenPointNum) { //调用结束事件 OnWorkUnitFinishedAction?.Invoke(tdConfig.ToolId, true, result); //锁枪 //TODO:测试时注释 TightenToolClient.DisableTightenTool(); } else { CurrentBoltIndex++; //调用拧紧结果事件 OnLastTightenAction?.Invoke(tdConfig.ToolId, result); GotoNextBolt(CurrentBoltIndex); } //到下一颗螺丝时,拧紧次数清0 TightenCount = 0; } } catch (Exception ex) { Log.Error("ReadLastTightenData", ex); } }