Пример #1
0
 /// <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, "处理电枪结果回调时报错!");
     }
 }
Пример #2
0
 /// <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);
     }
 }
Пример #3
0
 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
     });
 }
Пример #4
0
 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
     });
 }
Пример #5
0
 /// <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);
     }
 }
Пример #6
0
        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);
        }
Пример #7
0
 public void AddTightenData(TightenData td)
 {
     TightenDatas.Add(td);
 }
Пример #8
0
        /// <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);
            }
        }