Exemple #1
0
        /// <summary>
        /// 设置拧紧点信息
        /// </summary>
        /// <param name="engineCode"></param>
        public void InitTightenInfo(string engineCode, LTightenConfigModel tConfig)
        {
            try
            {
                TightenCount     = 0;
                CurrentBoltIndex = 0;
                Debug.WriteLine($"MyController -> InitTightenInfo -> CurrentBoltIndex = {CurrentBoltIndex}");
                Debug.WriteLine($"MyController -> InitTightenInfo -> TightenCount = {TightenCount}");
                if (string.IsNullOrEmpty(engineCode) && tConfig == null)
                {
                    newTightenConfig = null;
                    TightenDatas.ReSetTighten(0);
                    return;
                }
                newTightenConfig = tConfig;
                if (engineCode != CurrentEngineCode)
                {
                    //TODO:测试时注释
                    //TightenToolClient.DisableTightenTool();
                    CurrentEngineCode = engineCode;

                    //取发动机码前7位,到DB中查询相关信息
                    var queryEngineCode = engineCode.Substring(0, 7);
                    if (newTightenConfig == null)
                    {
                        newTightenConfig = new LTightenConfigModel
                        {
                            StationId       = CurrentStationId,
                            TightenPointNum = 0
                        };
                    }

                    //未配置拧紧信息
                    if (newTightenConfig.TightenPointNum == 0)
                    {
                        Debug.WriteLine($"当前工位未配置{engineCode}类型的拧紧信息");
                        Log.Information("当前工位未配置{engineCode}类型的拧紧信息", engineCode);
                        TightenDatas.ReSetTighten(0);
                        OnWorkUnitFinishedAction?.Invoke(tdConfig.ToolId, true, null);
                        return;
                    }
                    CurrentPointNum = 1;
                    //兼容
                    TightenDatas.ReSetTighten(newTightenConfig.TightenPointNum);
                    SetTighenCode(engineCode);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine($"设置拧紧信息出错{ex.Message}");
                Log.Error("设置拧紧信息出错", ex);
            }
        }
Exemple #2
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);
            }
        }
Exemple #3
0
 public bool GetResult()
 {
     return(TightenDatas.IsTightenOK());
 }