Exemple #1
0
        /// <summary>
        /// 堆垛机状态
        /// </summary>
        /// <param name="stocker"></param>
        /// <returns></returns>
        private BllResult FilterForData(Equipment srm)
        {
            string status = String.Empty;
            //判断未开机
            var result = HHECS.Model.Common.CommonForPing.PingTest(srm.IP);

            if (!result)
            {
                status = "00";
                return(BllResultFactory.Sucess(null, status));
            }
            else
            {
                //判断堆垛机 联机 有故障。
                if (srm.EquipmentProps.Find(t => t.EquipmentTypeTemplateCode == TrussNormalProps.OperationModel.ToString()).Value == SRMOperationModel.联机.GetIndexString() &&
                    srm.EquipmentProps.Find(t => t.EquipmentTypeTemplateCode == TrussNormalProps.TotalError.ToString()).Value == "True")
                {
                    status = "10";
                    return(BllResultFactory.Sucess(null, status));
                }
                //判断堆垛机 联机,无故障
                else if (srm.EquipmentProps.Find(t => t.EquipmentTypeTemplateCode == TrussNormalProps.OperationModel.ToString()).Value == SRMOperationModel.联机.GetIndexString() &&
                         srm.EquipmentProps.Find(t => t.EquipmentTypeTemplateCode == TrussNormalProps.TotalError.ToString()).Value == "False")
                {
                    var Fork1TaskExcuteStatus = srm.EquipmentProps.FirstOrDefault(t => t.EquipmentTypeTemplateCode == TrussNormalProps.Fork1TaskExcuteStatus.ToString());
                    if (Fork1TaskExcuteStatus != null)
                    {
                        SRMTaskExcuteStatus temp = (SRMTaskExcuteStatus)(Convert.ToInt32(Fork1TaskExcuteStatus.Value));
                        switch (temp)
                        {
                        case SRMTaskExcuteStatus.待机:
                            status = "01";
                            break;

                        case SRMTaskExcuteStatus.任务执行中:
                        case SRMTaskExcuteStatus.任务完成:
                            status = "03";
                            break;

                        case SRMTaskExcuteStatus.任务中断_出错:
                        case SRMTaskExcuteStatus.发任务错误:
                            status = "10";
                            break;
                        }
                        return(BllResultFactory.Sucess(null, status));
                    }
                }
                else if (srm.EquipmentProps.Find(t => t.EquipmentTypeTemplateCode == TrussNormalProps.OperationModel.ToString()).Value != SRMOperationModel.联机.GetIndexString())
                {
                    status = "04";
                    return(BllResultFactory.Sucess(null, status));
                }
                status = "00";
                return(BllResultFactory.Sucess(null, status));
            }
        }
        /// <summary>
        /// 赋值属性
        /// </summary>
        /// <param name="deviceEntity"></param>
        /// <param name="props"></param>
        /// <param name="address"></param>
        public void SetProps(Equipment truss)
        {
            Self = truss;

            #region 固定属性赋值
            var Fork1ForkHasPallet = truss.EquipmentProps.FirstOrDefault(t => t.EquipmentTypeTemplateCode == TrussNormalProps.Fork1HasPallet.ToString());
            if (Fork1ForkHasPallet != null)
            {
                lab_Fork1ForkHasPallet.Foreground = Brushes.Blue;
                switch (Fork1ForkHasPallet.Value)
                {
                case "True":
                    lab_Fork1ForkHasPallet.Text = "有货";
                    break;

                case "False":
                    lab_Fork1ForkHasPallet.Text = "无货";
                    break;

                default:
                    lab_Fork1ForkHasPallet.Text       = "未知";
                    lab_Fork1ForkHasPallet.Foreground = Brushes.Red;
                    break;
                }
            }

            var Fork1TaskExcuteStatus = truss.EquipmentProps.FirstOrDefault(t => t.EquipmentTypeTemplateCode == TrussNormalProps.Fork1TaskExcuteStatus.ToString());
            if (Fork1TaskExcuteStatus != null)
            {
                lab_Fork1TaskExcuteStatus.Foreground = Brushes.Blue;
                SRMTaskExcuteStatus temp = (SRMTaskExcuteStatus)(Convert.ToInt32(Fork1TaskExcuteStatus.Value));
                switch (temp)
                {
                case SRMTaskExcuteStatus.待机:
                case SRMTaskExcuteStatus.任务执行中:
                case SRMTaskExcuteStatus.任务完成:
                    lab_Fork1TaskExcuteStatus.Text = temp.ToString();
                    break;

                case SRMTaskExcuteStatus.任务中断_出错:
                case SRMTaskExcuteStatus.发任务错误:
                    lab_Fork1TaskExcuteStatus.Text       = temp.ToString();
                    lab_Fork1TaskExcuteStatus.Foreground = Brushes.Red;
                    break;

                default:
                    lab_Fork1TaskExcuteStatus.Text       = "未知";
                    lab_Fork1TaskExcuteStatus.Foreground = Brushes.Red;
                    break;
                }
            }

            var operationModel = truss.EquipmentProps.FirstOrDefault(t => t.EquipmentTypeTemplateCode == TrussNormalProps.OperationModel.ToString());
            if (operationModel != null)
            {
                lab_OperationModel.Foreground = Brushes.Blue;
                SRMOperationModel temp = (SRMOperationModel)(Convert.ToInt32(operationModel.Value));
                switch (temp)
                {
                case SRMOperationModel.维修:
                case SRMOperationModel.手动:
                case SRMOperationModel.机载操作:
                case SRMOperationModel.单机自动:
                case SRMOperationModel.联机:
                    lab_OperationModel.Text = temp.ToString();
                    break;

                default:
                    lab_OperationModel.Text       = "未知";
                    lab_OperationModel.Foreground = Brushes.Red;
                    break;
                }
            }

            //var model = stocker.EquipmentProps.FirstOrDefault(t => t.EquipmentTypeTemplateCode == TrussNormalProps.ExpendMode.ToString());
            //if (model != null)
            //{
            //    lab_Model.Foreground = Brushes.Blue;
            //    if (model.Value == "True")
            //    {
            //        lab_Model.Text = "转轨";
            //    }
            //    else
            //    {
            //        lab_Model.Text = "正常";
            //    }
            //}

            var forkCenter = truss.EquipmentProps.FirstOrDefault(t => t.EquipmentTypeTemplateCode == TrussNormalProps.Fork1Center.ToString());
            if (forkCenter != null)
            {
                if (forkCenter.Value == "True")
                {
                    lab_ForkCenter.Text = "在高位";
                }
                else
                {
                    lab_ForkCenter.Text = "在低位";
                }
            }

            var maxColumn = truss.EquipmentProps.FirstOrDefault(t => t.EquipmentTypeTemplateCode == TrussNormalProps.ManageBigDistance.ToString());
            if (maxColumn != null)
            {
                lab_MaxColumn.Text = maxColumn.Value;
            }

            var minColumn = truss.EquipmentProps.FirstOrDefault(t => t.EquipmentTypeTemplateCode == TrussNormalProps.ManageSmallDistance.ToString());
            if (minColumn != null)
            {
                lab_MinColumn.Text = minColumn.Value;
            }

            var Fork1TaskType = truss.EquipmentProps.FirstOrDefault(t => t.EquipmentTypeTemplateCode == TrussNormalProps.Fork1TaskType.ToString());
            if (Fork1TaskType != null)
            {
                lab_Fork1TaskType.Foreground = Brushes.Blue;
                TrussForTaskFlag temp = (TrussForTaskFlag)Convert.ToInt32(Fork1TaskType.Value);
                switch (temp)
                {
                case TrussForTaskFlag.无任务:
                case TrussForTaskFlag.绗车取货:
                case TrussForTaskFlag.绗车放货:
                case TrussForTaskFlag.移车任务:
                    lab_Fork1TaskType.Text = temp.ToString();
                    break;

                default:
                    lab_Fork1TaskType.Text       = "未知";
                    lab_Fork1TaskType.Foreground = Brushes.Red;
                    break;
                }
            }

            var Fork1TaskNo = truss.EquipmentProps.FirstOrDefault(t => t.EquipmentTypeTemplateCode == TrussNormalProps.Fork1TaskNo.ToString());
            if (Fork1TaskNo != null)
            {
                lab_Fork1TaskNo.Text = Fork1TaskNo.Value;
            }

            lab_rowIndex1.Text = truss.RowIndex1.ToString();
            lab_rowIndex2.Text = truss.RowIndex2.ToString();

            var CurrentTongs = truss.EquipmentProps.FirstOrDefault(t => t.EquipmentTypeTemplateCode == TrussNormalProps.CurrentTongs.ToString());
            if (CurrentTongs != null)
            {
                lab_CurrentStation.Text = CurrentTongs.Value;
            }

            var horizontalDistance = truss.EquipmentProps.FirstOrDefault(t => t.EquipmentTypeTemplateCode == SRMProps.HorizontalDistance.ToString());
            if (horizontalDistance != null)
            {
                lab_HorizontalDistance.Text = horizontalDistance.Value;
            }

            var verticalDistance = truss.EquipmentProps.FirstOrDefault(t => t.EquipmentTypeTemplateCode == TrussNormalProps.VerticalDistance.ToString());
            if (verticalDistance != null)
            {
                lab_VerticalDistance.Text = verticalDistance.Value;
            }

            var ForkDistance = truss.EquipmentProps.FirstOrDefault(t => t.EquipmentTypeTemplateCode == TrussNormalProps.Fork1Distance.ToString());
            if (ForkDistance != null)
            {
                lab_ForkDistance.Text = ForkDistance.Value;
            }


            #endregion

            //监控属性赋值
            var tempProps = truss.EquipmentProps.FindAll(t => t.EquipmentTypeTemplate.IsMonitor == true);
            foreach (var item in tempProps)
            {
                if (item.Value != item.EquipmentTypeTemplate.MonitorCompareValue)
                {
                    AddAlarm("报警:" + item.EquipmentTypeTemplate.Name + " 信息:" + item.EquipmentTypeTemplate.MonitorFailure, 2);
                }
                else
                {
                    RemoveAlarm("报警:" + item.EquipmentTypeTemplate.Name + " 信息:" + item.EquipmentTypeTemplate.MonitorFailure);
                }
            }
        }