Пример #1
0
 /// <summary>
 /// OPCCLIENT数据改变事件处理方法
 /// </summary>
 private void OpcClient_DataChanged(MSTL.OpcClient.Model.DataChangedEventArgs e)
 {
     try
     {
         foreach (var item in e.Data)
         {
             //判断PLC连接
             if (item.Quality.Equals(Opc.Da.Quality.Bad))
             {
                 continue;
             }
             if (item.TagLongName == null)
             {
                 continue;
             }
             if (!BizHandle.Instance.alarmInfos.ContainsKey(item.TagLongName))
             {
                 continue;
             }
             BizHandle.Instance.alarmInfos[item.TagLongName].TagValue = Convert.ToInt32(item.TagValue ?? 0);
         }
     }
     catch (Exception ex)
     {
         log.Error($"[异常]执行OpcClient_DataChanged(MSTL.OpcClient.Model.DataChangedEventArgs e)读取OPC信息失败:{ex.ToString()}");
     }
 }
Пример #2
0
        /// <summary>
        /// OPCCLIENT数据改变事件处理方法
        /// </summary>
        /// <param name="e"></param>
        private void OpcClient_DataChanged(MSTL.OpcClient.Model.DataChangedEventArgs e)
        {
            try
            {
                foreach (var item in e.Data)
                {
                    //判断PLC连接
                    if (item.Quality.Equals(Opc.Da.Quality.Bad))
                    {
                        continue;
                    }
                    if (item.TagLongName == null)
                    {
                        continue;
                    }
                    //检查是否为站台的读取项
                    if (!BizHandle.Instance.readItems.Keys.Contains(item.TagLongName))
                    {
                        continue;
                    }
                    var items = BizHandle.Instance.readItems[item.TagLongName];
                    //获取站台号
                    var locNo = BizHandle.Instance.readItems[item.TagLongName].LocNo;
                    #region 绑定读取值
                    switch (items.BusIdentity)
                    {
                    case "Read.TaskNo":
                        BizHandle.Instance.locDic[locNo].plcStatus.TaskNo = Convert.ToInt32(item.TagValue ?? 0);
                        break;

                    case "Read.PalletNo":
                        BizHandle.Instance.locDic[locNo].plcStatus.PalletNo = (item.TagValue ?? 0).ToString().Trim();
                        break;

                    case "Read.SlocArea":
                        BizHandle.Instance.locDic[locNo].plcStatus.SlocArea = (item.TagValue ?? 0).ToString().Trim();
                        break;

                    case "Read.SlocNo":
                        BizHandle.Instance.locDic[locNo].plcStatus.SlocNo = (item.TagValue ?? 0).ToString().Trim();
                        break;

                    case "Read.ElocArea":
                        BizHandle.Instance.locDic[locNo].plcStatus.ElocArea = (item.TagValue ?? 0).ToString().Trim();
                        break;

                    case "Read.ElocNo":
                        BizHandle.Instance.locDic[locNo].plcStatus.ElocNo = (item.TagValue ?? 0).ToString().Trim();
                        break;

                    case "Read.StatusAuto":
                        BizHandle.Instance.locDic[locNo].plcStatus.StatusAuto = Convert.ToInt32(item.TagValue ?? 0);
                        break;

                    case "Read.StatusFault":
                        BizHandle.Instance.locDic[locNo].plcStatus.StatusFault = Convert.ToInt32(item.TagValue ?? 0);
                        break;

                    case "Read.StatusLoading":
                        BizHandle.Instance.locDic[locNo].plcStatus.StatusLoading = Convert.ToInt32(item.TagValue ?? 0);
                        break;

                    case "Read.StatusRequest":
                        BizHandle.Instance.locDic[locNo].plcStatus.StatusRequest = Convert.ToInt32(item.TagValue ?? 0);
                        break;

                    case "Read.StatusFree":
                        BizHandle.Instance.locDic[locNo].plcStatus.StatusFree = Convert.ToInt32(item.TagValue ?? 0);
                        break;

                    case "Read.StatusToLoad":
                        BizHandle.Instance.locDic[locNo].plcStatus.StatusToLoad = Convert.ToInt32(item.TagValue ?? 0);
                        break;
                    }
                    #endregion
                }
            }
            catch (Exception ex)
            {
                log.Error($"[异常]执行OpcClient_DataChanged(MSTL.OpcClient.Model.DataChangedEventArgs e)读取OPC信息失败:{ex.ToString()}");
            }
        }
Пример #3
0
        /// <summary>
        /// OPCCLIENT数据改变事件处理方法
        /// </summary>
        /// <param name="e"></param>
        private void OpcClient_DataChanged(MSTL.OpcClient.Model.DataChangedEventArgs e)
        {
            try
            {
                foreach (var item in e.Data)
                {
                    //判断PLC连接
                    if (item.Quality.Equals(Opc.Da.Quality.Bad))
                    {
                        continue;
                    }
                    //检查是否为堆垛机的读取项
                    var items = BizHandle.Instance.readItems.FirstOrDefault(p => p.TagLongName == item.TagLongName);
                    if (items == null)
                    {
                        continue;
                    }

                    #region 绑定读取值
                    switch (items.BusIdentity)
                    {
                    case "Read.DeviceId":
                        BizHandle.Instance.srm.plcStatus.DeviceId = (item.TagValue ?? 0).ToString();
                        break;

                    case "Read.HeartBeat":
                        BizHandle.Instance.srm.plcStatus.HeartBeat = Convert.ToInt32(item.TagValue ?? 0);
                        break;

                    case "Read.OperateMode":
                        BizHandle.Instance.srm.plcStatus.OperateMode = Convert.ToInt32(item.TagValue ?? 0);
                        break;

                    case "Read.MissionState":
                        BizHandle.Instance.srm.plcStatus.MissionState = Convert.ToInt32(item.TagValue ?? 0);
                        break;

                    case "Read.MissionType":
                        BizHandle.Instance.srm.plcStatus.MissionType = Convert.ToInt32(item.TagValue ?? 0);
                        break;

                    case "Read.MissionId":
                        BizHandle.Instance.srm.plcStatus.MissionId = Convert.ToInt32(item.TagValue ?? 0);
                        break;

                    case "Read.PalletId":
                        BizHandle.Instance.srm.plcStatus.PalletNo = (item.TagValue ?? 0).ToString();
                        break;

                    case "Read.ActPosBay":
                        BizHandle.Instance.srm.plcStatus.ActPosBay = Convert.ToInt32(item.TagValue ?? 0);
                        break;

                    case "Read.ActPosLevel":
                        BizHandle.Instance.srm.plcStatus.ActPosLevel = Convert.ToInt32(item.TagValue ?? 0);
                        break;

                    case "Read.ActPosX":
                        BizHandle.Instance.srm.plcStatus.ActPosX = Convert.ToInt32(item.TagValue ?? 0);
                        break;

                    case "Read.ActPosY":
                        BizHandle.Instance.srm.plcStatus.ActPosY = Convert.ToInt32(item.TagValue ?? 0);
                        break;

                    case "Read.ActPosZ":
                        BizHandle.Instance.srm.plcStatus.ActPosZ = Convert.ToInt32(item.TagValue ?? 0);
                        break;

                    case "Read.ActPosZDeep":
                        BizHandle.Instance.srm.plcStatus.ActPosZDeep = Convert.ToInt32(item.TagValue ?? 0);
                        break;

                    case "Read.ActSpeedX":
                        BizHandle.Instance.srm.plcStatus.ActSpeedX = Convert.ToInt32(item.TagValue ?? 0);
                        break;

                    case "Read.ActSpeedY":
                        BizHandle.Instance.srm.plcStatus.ActSpeedY = Convert.ToInt32(item.TagValue ?? 0);
                        break;

                    case "Read.ActSpeedZ":
                        BizHandle.Instance.srm.plcStatus.ActSpeedZ = Convert.ToInt32(item.TagValue ?? 0);
                        break;

                    case "Read.ActSpeedZDeep":
                        BizHandle.Instance.srm.plcStatus.ActSpeedZDeep = Convert.ToInt32(item.TagValue ?? 0);
                        break;

                    case "Read.LoadStatus":
                        BizHandle.Instance.srm.plcStatus.LoadStatus = Convert.ToInt32(item.TagValue ?? 0);
                        break;

                    case "Read.FaultNo":
                        BizHandle.Instance.srm.plcStatus.FaultNo = Convert.ToInt32(item.TagValue ?? 0);
                        break;

                    case "Read.NoFunction":
                        BizHandle.Instance.srm.plcStatus.NoFunction = Convert.ToInt32(item.TagValue ?? 0);
                        break;
                    }
                    #endregion
                }
            }
            catch (Exception ex)
            {
                log.Error($"[异常]执行OpcClient_DataChanged(MSTL.OpcClient.Model.DataChangedEventArgs e)读取OPC信息失败:{ex.ToString()}");
            }
        }