zhuhao преди 2 години
родител
ревизия
0196664898

+ 1 - 1
IMCS_CCS/Controllers/CcsController.cs

@@ -232,7 +232,7 @@ namespace IMCS.CCS.Controllers
         }
 
         /// <summary>
-        /// 伺服舵机放物品: POST: api/SendServoStacker
+        /// 伺服舵机取和放物品: POST: api/SendServoStacker
         /// </summary> 
         /// <returns></returns>
         [Route("api/SendServoStacker")]

+ 1 - 1
IMCS_CCS/Controllers/JobTasksController.cs

@@ -141,7 +141,7 @@ namespace IMCS.CCS.Controllers
         [HttpPost("RemoveRedis")]
         public void RemoveRedis()
         {
-            _taskJobService.removeRedis();
+            //_taskJobService.removeRedis();
         }
     }
 }

+ 2 - 1
IMCS_CCS/Entitys/CcsTagValue.cs

@@ -57,6 +57,7 @@ namespace IMCS.CCS.Entitys
         BOOL,
         SHORT,
         String,
-        Double
+        Double,
+        Array
     }
 }

+ 2 - 3
IMCS_CCS/Entitys/RequestData.cs

@@ -8,7 +8,7 @@ namespace IMCS.CCS.Models
         /// </summary>
         public string Location { get; set; }
     }
-
+ 
     public class UploadFileData
     {
         /// <summary>
@@ -63,8 +63,7 @@ namespace IMCS.CCS.Models
         /// <summary>
         /// 放定位
         /// </summary>
-        public string location { get; set; }
-
+        public string Location { get; set; } 
         /// <summary>
         /// 工位
         /// </summary>

+ 1 - 1
IMCS_CCS/Service/IHttpRequestService .cs

@@ -107,7 +107,7 @@ namespace IMCS.CCS.Services
         Task<ResponseECSData> GetServoStacker(RequestData<LocationData> req);
 
         /// <summary>
-        /// 伺服舵机放物品
+        /// 伺服舵机取和放物品
         /// </summary> 
         Task<ResponseECSData> SendServoStacker(RequestData<LocationData> req);
 

+ 1 - 1
IMCS_CCS/Service/ITaskJobService.cs

@@ -82,7 +82,7 @@ namespace IMCS.CCS.Service
         /// 删除redis
         /// </summary> 
         /// <returns></returns>
-        void removeRedis();
+        //void removeRedis();
 
     }
 }

+ 62 - 56
IMCS_CCS/Service/Impl/HttpRequestService.cs

@@ -754,9 +754,8 @@ namespace IMCS.CCS.Services
                 foreach (CcsActionAddress actionAddress in CcsActionAddressWrites)
                 {
                     if (!string.IsNullOrEmpty(actionAddress.Address))
-                    {
-                        string Address = ToolUtils.AddressConvertDBW(actionAddress.Address);
-                        s7.Write(Address, Convert.ToInt16(string.IsNullOrEmpty(actionAddress.Value) ? req.data.Location : actionAddress.Value)); ;
+                    { 
+                        s7.Write(actionAddress.Address, Convert.ToInt16(string.IsNullOrEmpty(actionAddress.Value) ? req.data.Location : actionAddress.Value)); ;
                         Thread.Sleep(SLEEP_TIME);
                     }
                 }
@@ -1730,15 +1729,16 @@ namespace IMCS.CCS.Services
                     if (!string.IsNullOrEmpty(actionAddress.Address))
                     {
                         if(actionAddress.Value == "workProgramName")
-                        {
-                            s7.Write(actionAddress.Address, ToolUtils.ReturnBtyesWtitString(req.data.workProgramName, 20));
-                        }else if (actionAddress.Value == "workId")
+                        { 
+                            s7.Write(actionAddress.Address, ToolUtils.ReturnBtyesWtitString(req.data.workProgramName, 40));
+                        }
+                        else if (actionAddress.Value == "workId")
                         {
                             s7.Write(actionAddress.Address, ToolUtils.ReturnBtyesWtitString(req.data.workId, 40));
                         }
                         else if (actionAddress.Value == "procedureNo")
                         {
-                            s7.Write(actionAddress.Address, ToolUtils.ReturnBtyesWtitString(req.data.procedureNo, 20));
+                            s7.Write(actionAddress.Address, ToolUtils.ReturnBtyesWtitString(req.data.procedureNo, 40));
                         }
 
                         Thread.Sleep(SLEEP_TIME);  
@@ -1746,17 +1746,24 @@ namespace IMCS.CCS.Services
                 }
 
                 //查询写入地址列表
-                List<CcsActionAddress> CcsActionAddressWriteSends = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE_SEND.ToString()).ToList();
+                List<CcsActionAddress> CcsActionAddressWriteSends = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE_SEND.ToString()).OrderBy(o=>o.Sort).ToList();
+                /*s7.Write("DB200.46", Convert.ToInt16(req.data.beginLocation));
+                Thread.Sleep(SLEEP_TIME);
+                s7.Write("DB200.50", Convert.ToInt16("1"));*/
+               /* Thread.Sleep(SLEEP_TIME);
+                s7.Write("DB200.48", Convert.ToInt16(req.data.Location));
+                Thread.Sleep(SLEEP_TIME);
+                s7.Write("DB200.50", Convert.ToInt16("4"));
+                Thread.Sleep(2000);*/
                 foreach (CcsActionAddress actionAddress in CcsActionAddressWriteSends)
                 {
                     if (!string.IsNullOrEmpty(actionAddress.Address))
                     {
-                        string Address = ToolUtils.AddressConvertDBW(actionAddress.Address);
-                        s7.Write(Address, Convert.ToInt16(string.IsNullOrEmpty(actionAddress.Value) ? req.data.location : actionAddress.Value)); ;
-                        Thread.Sleep(SLEEP_TIME);
+                        s7.Write(actionAddress.Address, Convert.ToInt16(string.IsNullOrEmpty(actionAddress.Value) ? req.data.Location : actionAddress.Value));  
+      
+                        Thread.Sleep(SLEEP_TIME); 
                     }
-                }
-                 
+                } 
                 s7.ConnectClose();
 
                 //插入回调
@@ -1802,12 +1809,13 @@ namespace IMCS.CCS.Services
                 CcsAction actionQuery = new CcsAction();
                 actionQuery.OperateType = ActionTypeEnum.GetServoStacker.ToString();
                 actionQuery.Ip = req.url;
-                CcsAction actionInfo = _ccsActionService.GetList(actionQuery).FirstOrDefault(); 
+                CcsAction actionInfo = _ccsActionService.GetList(actionQuery).FirstOrDefault();
 
-                Plc s7 = DevicePlcS7.S7(req.url, ProtocalTypeEnum.S7_1500.ToString());
-                if (s7.IsConnected != true)
+                SiemensS7Net s7 = DevicePlcS7.SiemensS7(req.url);
+                HslCommunication.OperateResult ConnectionResult = s7.ConnectServer();
+                if (!ConnectionResult.IsSuccess)
                 {
-                    s7.Close();
+                    s7.ConnectClose();
                     Log.Instance.WriteLogAdd(ActionTypeEnum.GetServoStacker + "取物品故障===>>" + "PLC连接不上" + JsonConvert.SerializeObject(req),
                     EnumHelper.GetDescription(ActionTypeEnum.GetServoStacker));
                     responseData.result = "false";
@@ -1824,11 +1832,10 @@ namespace IMCS.CCS.Services
                 {
                     if (!string.IsNullOrEmpty(actionAddress.Address) && !string.IsNullOrEmpty(actionAddress.Value))
                     {
-                        string CheckAddress = ToolUtils.AddressConvertDBW(actionAddress.Address);
-                        var operateResult = ((ushort)s7.Read(CheckAddress)).ConvertToShort();
-                        if (actionAddress.CheckType ? operateResult.ToString().Equals(actionAddress.Value) : operateResult.ToString() != actionAddress.Value)
+                        var operateResult = s7.ReadInt16(actionAddress.Address);
+                        if (actionAddress.CheckType ? (operateResult.Content.ToString() == actionAddress.Value) : operateResult.Content.ToString() != actionAddress.Value)
                         {
-                            s7.Close();
+                            s7.ConnectClose();
                             Log.Instance.WriteLogAdd(ActionTypeEnum.GetServoStacker + "取物品异常===>>" + "条件不满足" + JsonConvert.SerializeObject(req),
                             EnumHelper.GetDescription(ActionTypeEnum.GetServoStacker));
                             responseData.result = "false";
@@ -1843,13 +1850,12 @@ namespace IMCS.CCS.Services
                 {
                     if (!string.IsNullOrEmpty(actionAddress.Address))
                     {
-                        string Address = ToolUtils.AddressConvertDBW(actionAddress.Address);
-                        s7.Write(Address, Convert.ToInt16(string.IsNullOrEmpty(actionAddress.Value) ? req.data.Location : actionAddress.Value)); ;
+                        s7.Write(actionAddress.Address, Convert.ToInt16(string.IsNullOrEmpty(actionAddress.Value) ? req.data.Location : actionAddress.Value)); ;
                         Thread.Sleep(SLEEP_TIME);
                     }
                 }
-                 
-                s7.Close();
+
+                s7.ConnectClose();
 
                 //插入回调
                 TaskCallback taskCallbackData = new TaskCallback(req.url, ActionTypeEnum.GetServoStacker.ToString(),
@@ -1895,10 +1901,11 @@ namespace IMCS.CCS.Services
                 List<CcsAction> actions = _ccsActionService.GetList(actionQuery);
                 CcsAction actionInfo = actions[0];
 
-                Plc s7 = DevicePlcS7.S7(req.url, ProtocalTypeEnum.S7_1500.ToString());
-                if (s7.IsConnected != true)
+                SiemensS7Net s7 = DevicePlcS7.SiemensS7(req.url);
+                HslCommunication.OperateResult ConnectionResult = s7.ConnectServer();
+                if (!ConnectionResult.IsSuccess)
                 {
-                    s7.Close();
+                    s7.ConnectClose();
                     Log.Instance.WriteLogAdd(ActionTypeEnum.SendServoStacker + "放物品故障===>>" + "PLC连接不上" + JsonConvert.SerializeObject(req),
                     EnumHelper.GetDescription(ActionTypeEnum.SendServoStacker));
                     responseData.result = "false";
@@ -1915,11 +1922,11 @@ namespace IMCS.CCS.Services
                 {
                     if (!string.IsNullOrEmpty(actionAddress.Address) && !string.IsNullOrEmpty(actionAddress.Value))
                     {
-                        string CheckAddress = ToolUtils.AddressConvertDBW(actionAddress.Address);
-                        var operateResult = ((ushort)s7.Read(CheckAddress)).ConvertToShort();
-                        if (actionAddress.CheckType ? operateResult.ToString().Equals(actionAddress.Value) : operateResult.ToString() != actionAddress.Value)
+                       
+                        var operateResult = s7.ReadInt16(actionAddress.Address);
+                        if (actionAddress.CheckType ? (operateResult.Content.ToString() == actionAddress.Value): operateResult.Content.ToString() != actionAddress.Value)
                         {
-                            s7.Close();
+                            s7.ConnectClose(); 
                             Log.Instance.WriteLogAdd(ActionTypeEnum.SendServoStacker + "放物品异常===>>" + "条件不满足" + JsonConvert.SerializeObject(req),
                             EnumHelper.GetDescription(ActionTypeEnum.SendServoStacker));
                             responseData.result = "false";
@@ -1934,12 +1941,11 @@ namespace IMCS.CCS.Services
                 {
                     if (!string.IsNullOrEmpty(actionAddress.Address))
                     {
-                        string Address = ToolUtils.AddressConvertDBW(actionAddress.Address);
-                        s7.Write(Address, Convert.ToInt16(string.IsNullOrEmpty(actionAddress.Value) ? req.data.Location : actionAddress.Value)); ;
+                        s7.Write(actionAddress.Address, Convert.ToInt16(string.IsNullOrEmpty(actionAddress.Value) ? req.data.Location : actionAddress.Value)); ;
                         Thread.Sleep(SLEEP_TIME);
                     }
                 }
-                s7.Close();
+                s7.ConnectClose();
 
                 //插入回调
                 TaskCallback taskCallbackData = new TaskCallback(req.url, ActionTypeEnum.SendServoStacker.ToString(),
@@ -2084,38 +2090,38 @@ namespace IMCS.CCS.Services
                 CcsAction actionQuery = new CcsAction();
                 actionQuery.OperateType = ActionTypeEnum.ReadRFID.ToString();
                 actionQuery.Ip = req.url;
-                CcsAction actionInfo = _ccsActionService.GetList(actionQuery).FirstOrDefault(); 
+                CcsAction actionInfo = _ccsActionService.GetList(actionQuery).FirstOrDefault();
 
-                Plc s7 = DevicePlcS7.S7(req.url, ProtocalTypeEnum.S7_1500.ToString());
-                if (s7.IsConnected != true)
+                SiemensS7Net s7 = DevicePlcS7.SiemensS7(req.url);
+                HslCommunication.OperateResult ConnectionResult = s7.ConnectServer();
+                if (!ConnectionResult.IsSuccess)
                 {
-                    s7.Close();
+                    s7.ConnectClose();
                     Log.Instance.WriteLogAdd(ActionTypeEnum.ReadRFID + "读取RFID故障===>>" + "PLC连接不上" + JsonConvert.SerializeObject(req),
                     EnumHelper.GetDescription(ActionTypeEnum.ReadRFID));
                     responseData.result = "false";
                     return responseData;
                 }
+
                 CcsActionAddress actionAddressQuery = new CcsActionAddress();
                 actionAddressQuery.ActionId = actionInfo.Id;
                 actionAddressQuery.Type = ActionAddressTypeEnum.WRITE.ToString() + req.data.positionIndex;        //根据positionIndex确认哪个工作台
                 List<CcsActionAddress> CcsActionAddresses = _ccsActionAddressService.GetList(actionAddressQuery);
-                 
-                foreach(CcsActionAddress actionAddress in CcsActionAddresses)
+           
+                foreach (CcsActionAddress actionAddress in CcsActionAddresses)
                 {
                     if (!string.IsNullOrEmpty(actionAddress.Address))
                     {
                         
                         if (string.IsNullOrEmpty(actionAddress.Value))
-                        { 
-                            string[] sArray = actionAddress.Address.Split('.');
-                            byte[] bytes = s7.ReadBytes(DataType.DataBlock, Convert.ToInt16(sArray[0].Substring(2)), Convert.ToInt16(sArray[1]) + 2, 120); 
-                            string content = Convert.ToBase64String(bytes);
-                            responseData.result = content;
+                        {
+                            var resultBytes = s7.Read(actionAddress.Value, 40); 
+                            responseData.result = ToolUtils.ReturnStringByBytes(resultBytes.Content);
                         } 
                     }
                 }
-                  
-                s7.Close();
+
+                s7.ConnectClose();
  
                 Log.Instance.WriteLogAdd(EnumHelper.GetDescription(ActionTypeEnum.ReadRFID) + "读取RFID故障===>>" + JsonConvert.SerializeObject(req)
                    , EnumHelper.GetDescription(ActionTypeEnum.GetServoStacker));
@@ -2152,12 +2158,13 @@ namespace IMCS.CCS.Services
                 CcsAction actionQuery = new CcsAction();
                 actionQuery.OperateType = ActionTypeEnum.WriteRFID.ToString();
                 actionQuery.Ip = req.url; 
-                CcsAction actionInfo = _ccsActionService.GetList(actionQuery).FirstOrDefault();  
+                CcsAction actionInfo = _ccsActionService.GetList(actionQuery).FirstOrDefault();
 
-                Plc s7 = DevicePlcS7.S7(req.url, ProtocalTypeEnum.S7_1500.ToString());
-                if (s7.IsConnected != true)
+                SiemensS7Net s7 = DevicePlcS7.SiemensS7(req.url);
+                HslCommunication.OperateResult ConnectionResult = s7.ConnectServer();
+                if (!ConnectionResult.IsSuccess)
                 {
-                    s7.Close();
+                    s7.ConnectClose();
                     Log.Instance.WriteLogAdd(ActionTypeEnum.WriteRFID + "写RFID故障===>>" + "PLC连接不上" + JsonConvert.SerializeObject(req),
                     EnumHelper.GetDescription(ActionTypeEnum.WriteRFID));
                     responseData.result = "false";
@@ -2175,9 +2182,8 @@ namespace IMCS.CCS.Services
                     {
 
                         if (string.IsNullOrEmpty(actionAddress.Value))
-                        {
-                            string[] sArray = actionAddress.Address.Split('.');
-                            s7.WriteBytes(DataType.DataBlock, Convert.ToInt16(sArray[0].Substring(2)), Convert.ToInt16(sArray[1]) + 2, ToolUtils.ReturnBtyesWtitString(req.data.content, 128));
+                        { 
+                             s7.Write(actionAddress.Address, ToolUtils.ReturnBtyesWtitString(req.data.content, 128));
                         }
                         else
                         {
@@ -2187,7 +2193,7 @@ namespace IMCS.CCS.Services
                     }
                 }
 
-                s7.Close();
+                s7.ConnectClose();
 
                 Log.Instance.WriteLogAdd(EnumHelper.GetDescription(ActionTypeEnum.WriteRFID) + "写RFID故障===>>" + JsonConvert.SerializeObject(req)
                    , EnumHelper.GetDescription(ActionTypeEnum.GetServoStacker));

+ 173 - 197
IMCS_CCS/Service/Impl/TaskJobService.cs

@@ -46,7 +46,7 @@ namespace IMCS.CCS.Service.Impl
 
         private string ecsRootUrlContext;
 
-        private string fanucUrlContext; 
+        private string fanucUrlContext;
 
         private string opcuacUrlContext;
 
@@ -75,7 +75,7 @@ namespace IMCS.CCS.Service.Impl
                               IApiRequestService apiRequestService,
                               ICcsTagValueService ccsTagValueService,
                               IEquipmentMonitorService equipmentMonitorService,
-                              IDictionaryService  dictionaryService,
+                              IDictionaryService dictionaryService,
                               ICcsActionAddressService ccsActionAddressService,
                               IConfiguration configuration)
         {
@@ -95,7 +95,7 @@ namespace IMCS.CCS.Service.Impl
             ecsRootUrlContext = Configuration.GetConnectionString("ecsRootUrlContext");
             syncStatusMap.Add("离线", 0);
             syncStatusMap.Add("空闲", 1);
-            syncStatusMap.Add("生产中", 2);            
+            syncStatusMap.Add("生产中", 2);
             syncStatusMap.Add("报警", 3);
             //在线状态默认传参后台空闲状态
             syncStatusMap.Add("在线", 1);
@@ -109,17 +109,17 @@ namespace IMCS.CCS.Service.Impl
         {
             try
             {
-                List<Device> deviceList = new List<Device>();  
+                List<Device> deviceList = new List<Device>();
                 var deviceListData = await _redisService.Database.StringGetAsync(device_redis_key);
                 if (deviceListData.IsNullOrEmpty)
                 {
-                    deviceList = _deviceService.GetDeviceList(); 
+                    deviceList = _deviceService.GetDeviceList();
                     await _redisService.Database.StringSetAsync(device_redis_key, JsonConvert.SerializeObject(deviceList));
                 }
                 else
                 {
                     deviceList = JsonConvert.DeserializeObject<List<Device>>(deviceListData);
-                }  
+                }
 
                 deviceList = deviceList.Where(x => x.ProtocolType.Equals(ProtocalTypeEnum.OPCUA.ToString())).ToList();
 
@@ -250,7 +250,7 @@ namespace IMCS.CCS.Service.Impl
                 else
                 {
                     deviceList = JsonConvert.DeserializeObject<List<Device>>(deviceListData);
-                } 
+                }
                 deviceList = deviceList.Where(x => x.ProtocolType.Equals(ProtocalTypeEnum.S7_1500.ToString())).ToList();
                 foreach (Device device in deviceList)
                 {
@@ -295,8 +295,6 @@ namespace IMCS.CCS.Service.Impl
                         {
                             foreach (CcsTagValue tagValueData in tagValues)
                             {
-                                //string Address = ToolUtils.AddressConvertDBW(tagValueData.Address);
-                                //var operateResult = ((ushort)s7.Read(Address)).ConvertToShort();
                                 string operateResult = "";
                                 if (tagValueData.Type.Equals(TagValueReadTypeEnum.BOOL.ToString()))
                                 {
@@ -310,6 +308,10 @@ namespace IMCS.CCS.Service.Impl
                                 {
                                     operateResult = s7.ReadString(tagValueData.Address).Content.ToString();
                                 }
+                                else if (tagValueData.Type.Equals(TagValueReadTypeEnum.Array.ToString()))
+                                {
+                                    operateResult = ToolUtils.ReturnStringByBytes(s7.Read(tagValueData.Address,40).Content);
+                                }
 
                                 if (!string.IsNullOrEmpty(operateResult) && tagValueData.TagValue != operateResult)
                                 {
@@ -453,36 +455,39 @@ namespace IMCS.CCS.Service.Impl
                 list = JsonConvert.DeserializeObject<List<TaskCallback>>(taskCallbackListData);
             }
 
-            list = list.Where(x => x.OperateType.Equals(ActionTypeEnum.UploadFile.ToString())).ToList();
+            TaskCallback task = list.Where(x => x.OperateType.Equals(ActionTypeEnum.UploadFile.ToString())).FirstOrDefault();
+            if (task == null)
+            {
+                return "无回调任务";
+            }
             string message = "";
             try
             {
-                foreach (TaskCallback task in list)
+
+                DateTime currentTime = DateTime.Now;
+                if (currentTime.Subtract(task.CreateTime).TotalSeconds > 5)
                 {
-                    DateTime currentTime = DateTime.Now;
-                    if (currentTime.Subtract(task.CreateTime).TotalSeconds > 5)
+                    CallBackRequestData requestData = new CallBackRequestData();
+                    requestData.taskId = long.Parse(task.TaskId);
+                    requestData.taskNodeId = long.Parse(task.TaskNodeId);
+                    var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
+                    ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
+                    if (result.IsSuccess && responseECSCallback.code == 0)
                     {
-                        CallBackRequestData requestData = new CallBackRequestData();
-                        requestData.taskId = long.Parse(task.TaskId);
-                        requestData.taskNodeId = long.Parse(task.TaskNodeId);
-                        var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
-                        ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
-                        if (result.IsSuccess && responseECSCallback.code == 0)
-                        {
-                            task.State = false;
-                            task.UpdateTime = DateTime.Now;
-                            await _taskCallbackService.CreateOrUpdateAndCache(task);
-                            message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + ",请求结果:" + result.Message + ";";
-                            Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
-                        }
-                        else
-                        {
-                            message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
-                            Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
-                        }
-
+                        task.State = false;
+                        task.UpdateTime = DateTime.Now;
+                        await _taskCallbackService.CreateOrUpdateAndCache(task);
+                        message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + ",请求结果:" + result.Message + ";";
+                        Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
                     }
+                    else
+                    {
+                        message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
+                        Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
+                    }
+
                 }
+
                 return string.IsNullOrEmpty(message) ? "无回调任务" : message;
             }
             catch (Exception ex)
@@ -517,34 +522,27 @@ namespace IMCS.CCS.Service.Impl
                                  || x.OperateType.Equals(ActionTypeEnum.GetIntelligenceUnit.ToString())
                                  || x.OperateType.Equals(ActionTypeEnum.SendIntelligenceUnit.ToString())
                                  || x.OperateType.Equals(ActionTypeEnum.GetQualityCenter.ToString())
-                                 || x.OperateType.Equals(ActionTypeEnum.SendQualityCenter.ToString()) 
+                                 || x.OperateType.Equals(ActionTypeEnum.SendQualityCenter.ToString())
                                  || x.OperateType.Equals(ActionTypeEnum.GetServoStacker.ToString())
-                                 || x.OperateType.Equals(ActionTypeEnum.SendServoStacker.ToString()) 
+                                 || x.OperateType.Equals(ActionTypeEnum.SendServoStacker.ToString())
                                  || x.OperateType.Equals(ActionTypeEnum.SendLinShift.ToString())
                                  || x.OperateType.Equals(ActionTypeEnum.SendLinShiftFine.ToString())).ToList();
-            List<TaskCallback> list = new List<TaskCallback>();
-            foreach (Device device in deviceList)
+
+            TaskCallback task = taskList.Where(key => deviceList.Any(device => device.Ip == key.IP)).FirstOrDefault() ; 
+            if (task == null)
             {
-                foreach (TaskCallback task in taskList)
-                {
-                    if (task.IP.Equals(device.Ip))
-                    {
-                        list.Add(task);
-                    }
-                }
-            }
+                return "无回调任务" ;
+            } 
             string message = "";
             try
-            {
-                foreach (TaskCallback task in list)
-                {
+            { 
                     DateTime currentTime = DateTime.Now;
                     CcsTagValue tagValueQuery = new CcsTagValue();
                     tagValueQuery.Ip = task.IP;
                     //tagValueQuery.Address = task.Address;
                     List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagValueQuery).ToList();
-                    CcsTagValue callBacktagValue = tagValues.Where(o=>o.Address == task.Address).FirstOrDefault();
-                    
+                    CcsTagValue callBacktagValue = tagValues.Where(o => o.Address == task.Address).FirstOrDefault();
+
                     if (callBacktagValue != null && callBacktagValue.TagValue == task.CallbackValue)
                     {
                         CallBackRequestData requestData = new CallBackRequestData();
@@ -569,7 +567,7 @@ namespace IMCS.CCS.Service.Impl
                     }
                     //回调检测到失败,回调通知ecs
                     if (!string.IsNullOrEmpty(task.FailAddress) || !string.IsNullOrEmpty(task.FailAddress2) || !string.IsNullOrEmpty(task.FailAddress3))
-                    { 
+                    {
                         bool failFalg = false;
                         if (!string.IsNullOrEmpty(task.FailAddress))
                         {
@@ -598,7 +596,7 @@ namespace IMCS.CCS.Service.Impl
                                 failFalg = true;
                             }
                         }
-                        if (failFalg) 
+                        if (failFalg)
                         {
                             CallBackRequestData requestData = new CallBackRequestData();
                             requestData.taskId = long.Parse(task.TaskId);
@@ -621,8 +619,7 @@ namespace IMCS.CCS.Service.Impl
                             }
                         }
                     }
-                     
-                }
+ 
                 return string.IsNullOrEmpty(message) ? "无回调任务" : message;
             }
             catch (Exception ex)
@@ -652,29 +649,22 @@ namespace IMCS.CCS.Service.Impl
             List<Device> deviceList = _deviceService.GetDeviceList();
 
             taskList = taskList.Where(x => x.OperateType.Equals(ActionTypeEnum.StartLabelMachine.ToString())).ToList();
-            List<TaskCallback> list = new List<TaskCallback>();
-            foreach (Device device in deviceList)
+            TaskCallback task = taskList.Where(key => deviceList.Any(device => device.Ip == key.IP)).FirstOrDefault();
+            if (task == null)
             {
-                foreach (TaskCallback task in taskList)
-                {
-                    if (task.IP.Equals(device.Ip))
-                    {
-                        list.Add(task);
-                    }
-                }
+                return "无回调任务";
             }
             string message = "";
             try
             {
-                foreach (TaskCallback task in list)
-                {
+               
                     DateTime currentTime = DateTime.Now;
                     CcsTagValue tagValueQuery = new CcsTagValue();
                     tagValueQuery.Ip = task.IP;
-                    //tagValueQuery.Address = task.Address;
                     List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagValueQuery).ToList();
-                    CcsTagValue callBacktagValue = tagValues.Where(o=>o.Address == task.Address).FirstOrDefault();
-                    if (callBacktagValue != null && callBacktagValue.TagValue == task.CallbackValue)
+                    CcsTagValue callBacktagValue = tagValues.Where(o => o.Address == task.Address).FirstOrDefault();
+                    CcsTagValue callBacktagValue2 = tagValues.Where(o => o.Address == task.Address2).FirstOrDefault();
+                    if (callBacktagValue != null && callBacktagValue2 != null && callBacktagValue.TagValue == task.CallbackValue && callBacktagValue2.TagValue == task.CallbackValue2)
                     {
                         CallBackRequestData requestData = new CallBackRequestData();
                         requestData.taskId = long.Parse(task.TaskId);
@@ -765,8 +755,7 @@ namespace IMCS.CCS.Service.Impl
                             }
                         }
                     }
-
-                }
+ 
                 return string.IsNullOrEmpty(message) ? "无回调任务" : message;
             }
             catch (Exception ex)
@@ -795,30 +784,23 @@ namespace IMCS.CCS.Service.Impl
             //在线设备
             List<Device> deviceList = _deviceService.GetDeviceList();
 
-            taskList = taskList.Where(x =>  x.OperateType.Equals(ActionTypeEnum.StartNCProgram.ToString())).ToList();
-            List<TaskCallback> list = new List<TaskCallback>();
-            foreach (Device device in deviceList)
+            taskList = taskList.Where(x => x.OperateType.Equals(ActionTypeEnum.StartNCProgram.ToString())).ToList();
+            TaskCallback task = taskList.Where(key => deviceList.Any(device => device.Ip == key.IP)).FirstOrDefault();
+            if (task == null)
             {
-                foreach (TaskCallback task in taskList)
-                {
-                    if (task.IP.Equals(device.Ip))
-                    {
-                        list.Add(task);
-                    }
-                }
+                return "无回调任务";
             }
             string message = "";
             try
             {
-                foreach (TaskCallback task in list)
-                {
+              
                     DateTime currentTime = DateTime.Now;
                     CcsTagValue tagValueQuery = new CcsTagValue();
                     tagValueQuery.Ip = task.IP;
                     //tagValueQuery.Address = task.Address;
                     List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagValueQuery);
-                    CcsTagValue tagValue = tagValues.Where(o => o.Address == task.Address).FirstOrDefault() ;
-                     
+                    CcsTagValue tagValue = tagValues.Where(o => o.Address == task.Address).FirstOrDefault();
+
                     if (tagValue != null && tagValue.TagValue == task.CallbackValue)
                     {
                         CallBackRequestData requestData = new CallBackRequestData();
@@ -896,7 +878,7 @@ namespace IMCS.CCS.Service.Impl
                             }
                         }
                     }
-                }
+                
                 return string.IsNullOrEmpty(message) ? "无回调任务" : message;
             }
             catch (Exception ex)
@@ -925,22 +907,14 @@ namespace IMCS.CCS.Service.Impl
             List<Device> deviceList = _deviceService.GetDeviceList();
 
             taskList = taskList.Where(x => x.OperateType.Equals(ActionTypeEnum.StartCleanMachine.ToString())).ToList();
-            List<TaskCallback> list = new List<TaskCallback>();
-            foreach (Device device in deviceList)
+            TaskCallback task = taskList.Where(key => deviceList.Any(device => device.Ip == key.IP)).FirstOrDefault();
+            if (task == null)
             {
-                foreach (TaskCallback task in taskList)
-                {
-                    if (task.IP.Equals(device.Ip))
-                    {
-                        list.Add(task);
-                    }
-                }
+                return "无回调任务";
             }
             string message = "";
             try
-            {
-                foreach (TaskCallback task in list)
-                {
+            { 
                     DateTime currentTime = DateTime.Now;
                     CcsTagValue tagValueQuery = new CcsTagValue();
                     tagValueQuery.Ip = task.IP;
@@ -1023,8 +997,7 @@ namespace IMCS.CCS.Service.Impl
                                 Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
                             }
                         }
-                    }
-                }
+                    } 
                 return string.IsNullOrEmpty(message) ? "无回调任务" : message;
             }
             catch (Exception ex)
@@ -1054,27 +1027,19 @@ namespace IMCS.CCS.Service.Impl
             List<Device> deviceList = _deviceService.GetDeviceList();
 
             taskList = taskList.Where(x => x.OperateType.Equals(ActionTypeEnum.SendThreeCoordinates.ToString())).ToList();
-            List<TaskCallback> list = new List<TaskCallback>();
-            foreach (Device device in deviceList)
+            TaskCallback task = taskList.Where(key => deviceList.Any(device => device.Ip == key.IP)).FirstOrDefault();
+            if (task == null)
             {
-                foreach (TaskCallback task in taskList)
-                {
-                    if (task.IP.Equals(device.Ip))
-                    {
-                        list.Add(task);
-                    }
-                }
+                return "无回调任务";
             }
             string message = "";
             try
-            {
-                foreach (TaskCallback task in list)
-                {
+            { 
                     DateTime currentTime = DateTime.Now;
                     CcsTagValue tagValueQuery = new CcsTagValue();
-                    tagValueQuery.Ip = task.IP; 
+                    tagValueQuery.Ip = task.IP;
                     List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagValueQuery).ToList();
-                    CcsTagValue tagValue = tagValues.Where(o=>o.Address == task.Address).FirstOrDefault();
+                    CcsTagValue tagValue = tagValues.Where(o => o.Address == task.Address).FirstOrDefault();
                     //点位放在描述里判断左中右
                     string pos = task.Description;
                     string posValue = "";
@@ -1094,9 +1059,9 @@ namespace IMCS.CCS.Service.Impl
                         posValue = EnumHelper.GetDescription(ThreeCoordinatesFinishedEnum.R);
                         key = (int)ThreeCoordinatesPosEnum.R;
                     }
-                   
+
                     CcsTagValue tagValue2 = tagValues.Where(o => o.Address == posValue && o.TagValue != "0").FirstOrDefault();
-                    if (tagValue != null && tagValue2 != null && (tagValue.TagValue == task.CallbackValue ))
+                    if (tagValue != null && tagValue2 != null && (tagValue.TagValue == task.CallbackValue))
                     {
                         CallBackThreeCoordinatesRequestData requestData = new CallBackThreeCoordinatesRequestData();
                         requestData.taskId = long.Parse(task.TaskId);
@@ -1135,7 +1100,7 @@ namespace IMCS.CCS.Service.Impl
                            //判断是否可取滑台
                            if (freeActionAdress != null)
                            {*/
-                           //根据sort顺序,查询左中右可取位置,写入地址列表
+                        //根据sort顺序,查询左中右可取位置,写入地址列表
                         CcsActionAddress actionAddressGet = new CcsActionAddress();
                         actionAddressGet.Type = "CALLBACK_GET_COOR";
                         actionAddressGet.Sort = key;
@@ -1145,53 +1110,51 @@ namespace IMCS.CCS.Service.Impl
                         requestData.result = tagValue2.TagValue;
                         //根据工件id确认哪个位置已测量,赋值工位id
                         string srcWorkId = task.CallbackFailValue3; //原工件id
-                        var workIdResult = s7.ReadString(EnumHelper.GetDescription(ThreeCoordinatesFinishedWrokIdEnum.L));
-                        if(workIdResult.ToString() == srcWorkId)
+                        var workIdResult = s7.Read(EnumHelper.GetDescription(ThreeCoordinatesFinishedWrokIdEnum.L), 40); 
+                        if (ToolUtils.ReturnStringByBytes(workIdResult.Content) == srcWorkId)
                         {
                             requestData.stationId = "L";
                         }
                         if (string.IsNullOrEmpty(requestData.stationId))
                         {
-                            workIdResult = s7.ReadString(EnumHelper.GetDescription(ThreeCoordinatesFinishedWrokIdEnum.M));
-                            if (workIdResult.ToString() == srcWorkId)
+                            workIdResult = s7.Read(EnumHelper.GetDescription(ThreeCoordinatesFinishedWrokIdEnum.M), 40);
+                            if (ToolUtils.ReturnStringByBytes(workIdResult.Content) == srcWorkId)
                             {
                                 requestData.stationId = "M";
                             }
                         }
                         if (string.IsNullOrEmpty(requestData.stationId))
                         {
-                            workIdResult = s7.ReadString(EnumHelper.GetDescription(ThreeCoordinatesFinishedWrokIdEnum.R));
-                            if (workIdResult.ToString() == srcWorkId)
+                            workIdResult = s7.Read(EnumHelper.GetDescription(ThreeCoordinatesFinishedWrokIdEnum.R),40);
+                            if (ToolUtils.ReturnStringByBytes(workIdResult.Content) == srcWorkId)
                             {
                                 requestData.stationId = "R";
                             }
                         }
 
                         foreach (CcsActionAddress actionAddress in GetCcsActionAddresses)
+                        {
+                            if (!string.IsNullOrEmpty(actionAddress.Address))
                             {
-                                if (!string.IsNullOrEmpty(actionAddress.Address))
+                                if (actionAddress.Value == "workId")
                                 {
-                                    if (actionAddress.Value == "workId")
-                                    {
-                                        var operateResult = s7.ReadString(actionAddress.Address);
-                                        requestData.workId = operateResult.ToString();
-                                    }
-                                    else if (actionAddress.Value == "procedureNo")
-                                    {
-                                        var operateResult = s7.ReadString(actionAddress.Address);
-                                        requestData.procedureNo = operateResult.ToString();
-                                     }
-                                    else if (actionAddress.Value == "workProgramName")
-                                    {
-                                         var operateResult = s7.ReadString(actionAddress.Address);
-                                        requestData.workProgramName = operateResult.ToString();
+                                    var operateResult = s7.Read(actionAddress.Address, 40) ;
+                                    requestData.workId = ToolUtils.ReturnStringByBytes(operateResult.Content);
+                                }
+                                else if (actionAddress.Value == "procedureNo")
+                                {
+                                    var operateResult = s7.Read(actionAddress.Address,40);
+                                    requestData.procedureNo = ToolUtils.ReturnStringByBytes(operateResult.Content);
+                                }
+                                else if (actionAddress.Value == "workProgramName")
+                                {
+                                    var operateResult = s7.Read(actionAddress.Address,40);
+                                    requestData.workProgramName = ToolUtils.ReturnStringByBytes(operateResult.Content);
 
-                                    }
-                            }
+                                }
                             }
-
-
-                       // }
+                        }
+                         
                         s7.ConnectClose();
 
                         var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
@@ -1265,8 +1228,7 @@ namespace IMCS.CCS.Service.Impl
                                 Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
                             }
                         }
-                    }
-                }
+                    } 
                 return string.IsNullOrEmpty(message) ? "无回调任务" : message;
             }
             catch (Exception ex)
@@ -1285,7 +1247,7 @@ namespace IMCS.CCS.Service.Impl
             try
             {
                 string message = "MonitorEquipmentStatusJob调度成功";
-                List<Device> devices = new List<Device>() ;
+                List<Device> devices = new List<Device>();
                 string device_redis_key = "IMCS_CCS:DeviceList";
                 var deviceData = await _redisService.Database.StringGetAsync(device_redis_key);
                 if (deviceData.IsNullOrEmpty)
@@ -1323,71 +1285,71 @@ namespace IMCS.CCS.Service.Impl
                     Device device = devices.Where(x => x.Ip.Equals(equipment.IP)).FirstOrDefault();
                     if (device == null)
                     {
-                        if(equipment.Status != "离线")
+                        if (equipment.Status != "离线")
                         {
                             equipment.Status = "离线";
                             changeEquipmentMonitors.Add(equipment);
                         }
-                        
+
                         continue;
                     }
                     else if (equipment.Name == "机械手")
-                        {
-                            CcsTagValue ccsTagValue = tagValues.Where(x => x.Ip.Equals(equipment.IP) && x.Address.Equals(equipment.Address)).FirstOrDefault();                            
+                    {
+                        CcsTagValue ccsTagValue = tagValues.Where(x => x.Ip.Equals(equipment.IP) && x.Address.Equals(equipment.Address)).FirstOrDefault();
                         if (ccsTagValue != null)
+                        {
+                            if (ccsTagValue.TagValue == "3")
                             {
-                                if (ccsTagValue.TagValue == "3")
+                                if (equipment.Status != "报警")
                                 {
-                                    if (equipment.Status != "报警")
-                                    {                                       
-                                        equipment.Status = "报警";                                        
-                                        changeEquipmentMonitors.Add(equipment);
-                                    }
-                                    
-                                    continue;
+                                    equipment.Status = "报警";
+                                    changeEquipmentMonitors.Add(equipment);
                                 }
+
+                                continue;
                             }
-                            CcsTagValue ccsTagValue2 = tagValues.Where(x => x.Ip.Equals(equipment.IP) && x.Address.Equals(equipment.Address2)).FirstOrDefault();
-                            if (ccsTagValue2 != null)
+                        }
+                        CcsTagValue ccsTagValue2 = tagValues.Where(x => x.Ip.Equals(equipment.IP) && x.Address.Equals(equipment.Address2)).FirstOrDefault();
+                        if (ccsTagValue2 != null)
+                        {
+                            if (ccsTagValue2.TagValue == "9")
                             {
-                                if (ccsTagValue2.TagValue == "9")
-                                {
-                                    if (equipment.Status != "报警")
-                                    {
-                                        equipment.Status = "报警";
-                                        changeEquipmentMonitors.Add(equipment);
-                                    }
-                                    continue;
-                                }
-                            }
-
-                            if (ccsTagValue2.TagValue == "0" || ccsTagValue2.TagValue == "3" || ccsTagValue2.TagValue == "6" || ccsTagValue2.TagValue == "8")
-                            { 
-                                if (equipment.Status != "空闲")
+                                if (equipment.Status != "报警")
                                 {
-                                    equipment.Status = "空闲";
+                                    equipment.Status = "报警";
                                     changeEquipmentMonitors.Add(equipment);
                                 }
                                 continue;
-                            } 
-                            if (equipment.Status != "生产中")
+                            }
+                        }
+
+                        if (ccsTagValue2.TagValue == "0" || ccsTagValue2.TagValue == "3" || ccsTagValue2.TagValue == "6" || ccsTagValue2.TagValue == "8")
+                        {
+                            if (equipment.Status != "空闲")
                             {
-                                equipment.Status = "生产中";
+                                equipment.Status = "空闲";
                                 changeEquipmentMonitors.Add(equipment);
                             }
+                            continue;
+                        }
+                        if (equipment.Status != "生产中")
+                        {
+                            equipment.Status = "生产中";
+                            changeEquipmentMonitors.Add(equipment);
+                        }
                     }
                     else
-                    { 
+                    {
                         if (equipment.Status != "在线")
                         {
                             equipment.Status = "在线";
                             changeEquipmentMonitors.Add(equipment);
                         }
                     }
-                    
+
                 }
                 //变化的修改 并且更新缓存
-                if(changeEquipmentMonitors.Count > 0)
+               /* if (changeEquipmentMonitors.Count > 0)
                 {
                     List<ProductionStatus> productionStatusList = new List<ProductionStatus>();
                     foreach (EquipmentMonitor changeEquipment in changeEquipmentMonitors)
@@ -1397,11 +1359,11 @@ namespace IMCS.CCS.Service.Impl
                         productionStatus.onlineStatus = syncStatusMap[changeEquipment.Status].ToString();
                         //equipment.Status == "离线" ? "0" : "1";
                         //productionStatus.alertMsg = equipment.AlertMsg;
-                        if (productionStatus.onlineStatus !="3" && !string.IsNullOrEmpty(changeEquipment.Type))
+                        if (productionStatus.onlineStatus != "3" && !string.IsNullOrEmpty(changeEquipment.Type))
                         {
-                            if(changeEquipment.Type == "HEIDEHAIN")
+                            if (changeEquipment.Type == "HEIDEHAIN")
                             {
-                                RequestHeidhData hdhReq = new RequestHeidhData();                                
+                                RequestHeidhData hdhReq = new RequestHeidhData();
                                 Device device = devices.Where(x => x.Ip.Equals(changeEquipment.IP)).FirstOrDefault();
                                 hdhReq.ServerUrl = device.ServerUrl;
                                 hdhReq.MachineName = device.UserName;
@@ -1416,8 +1378,8 @@ namespace IMCS.CCS.Service.Impl
                                     }
                                 }
                             }
-                            else if(changeEquipment.Type == "FANUC")
-                            {                                
+                            else if (changeEquipment.Type == "FANUC")
+                            {
                                 Device device = devices.Where(x => x.Ip.Equals(changeEquipment.IP)).FirstOrDefault();
                                 string Url = fanucUrlContext + "?ip=" + device.Ip + "&port=" + device.Port;
                                 //调用发那科接口
@@ -1427,10 +1389,10 @@ namespace IMCS.CCS.Service.Impl
                                     ResponseFanucData fncReq = new ResponseFanucData();
                                     fncReq = JsonConvert.DeserializeObject<ResponseFanucData>(Result.Message);
                                     List<AlmInfo> AlmMsg = fncReq.AlmMsg;
-                                    if (AlmMsg!=null && AlmMsg.Count>0)
+                                    if (AlmMsg != null && AlmMsg.Count > 0)
                                     {
                                         var msgs = from o in AlmMsg select o.msg;
-                                        productionStatus.alertMsg = string.Join(",", msgs.ToArray());                                        
+                                        productionStatus.alertMsg = string.Join(",", msgs.ToArray());
                                     }
                                 }
                             }
@@ -1460,23 +1422,23 @@ namespace IMCS.CCS.Service.Impl
                     }
                     await _redisService.Database.StringSetAsync(redis_key, JsonConvert.SerializeObject(equipmentMonitors));
 
-                    
+
                     //主动推送同步状态数据接口
-                    RequestSynStatusData requestData = new RequestSynStatusData();                    
+                    RequestSynStatusData requestData = new RequestSynStatusData();
                     requestData.productionStatus = JsonConvert.SerializeObject(productionStatusList);
-                    String synStatusUrl = ecsRootUrlContext + "/api/authority/synStatus/synProductionStatus";
+                    String synStatusUrl = ecsRootUrlContext + "api/authority/synStatus/synProductionStatus";
                     var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, synStatusUrl, requestData, null);
                     //解析回调数据结果
                     ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
-                    if(responseECSCallback!=null && responseECSCallback.code == 0)
+                    if (responseECSCallback != null && responseECSCallback.code == 0)
                     {
                         Log.Instance.WriteLogAdd("同步设备状态成功", LOG_TITLE_CALLBACK);
                     }
                     else
                     {
                         Log.Instance.WriteLogAdd("同步设备状态操作失败:" + responseECSCallback.msg, LOG_TITLE_CALLBACK);
-                    } 
-                }
+                    }
+                }*/
                 return message;
             }
             catch (Exception ex)
@@ -1619,7 +1581,7 @@ namespace IMCS.CCS.Service.Impl
                             var Result = await _apiRequestService.RequestAsync(RequsetModeEnum.Get, Url + "&fun=Connect", null, null);
 
                             if (Result.IsSuccess && Result.Message == "0")
-                            { 
+                            {
                                 Device oldDevice = await _deviceService.GetDeviceById(device.Id);
                                 if (!oldDevice.State)
                                 {
@@ -1708,7 +1670,7 @@ namespace IMCS.CCS.Service.Impl
                         }
                     }
                 }
-                if(changeDevices != null)
+                if (changeDevices != null)
                 {
                     await _redisService.Database.StringSetAsync(redis_key, JsonConvert.SerializeObject(devices));
                 }
@@ -1721,6 +1683,21 @@ namespace IMCS.CCS.Service.Impl
                 return "设备连接异常,或以离线" + ex.Message;
             }
         }
+        /// <summary>
+        /// 删除redis
+        /// </summary> 
+        /// <returns></returns>
+        public void removeRedis()
+        {
+            List<Device> devices = _deviceService.GetDeviceAllList();
+            string redis_key = "IMCS_CCS:";
+            _redisService.Database.KeyDelete(device_redis_key);
+            _redisService.Database.KeyDelete(callback_redis_key);
+            foreach (Device device in devices)
+            {
+                _redisService.Database.KeyDelete(redis_key + device.Ip + ":" + device.ProtocolType);
+            }
+        }
 
         /// <summary>
         /// fanuc根据类型获取值
@@ -1740,7 +1717,7 @@ namespace IMCS.CCS.Service.Impl
             else if (address == FanucAddressEnum.PowerOnTime.ToString())
             {
                 value = fanucData.PowerOnTime;
-            } 
+            }
             else if (address == FanucAddressEnum.ActSpindle.ToString())
             {
                 value = fanucData.ActSpindle;
@@ -1766,7 +1743,6 @@ namespace IMCS.CCS.Service.Impl
                 dData = Convert.ToDecimal(strData);
             }
             return dData;
-        }
-
+        } 
     }
 }

+ 5 - 0
IMCS_CCS/Utils/ToolUtils.cs

@@ -21,6 +21,11 @@ namespace IMCS_CCS.Utils
             Array.Copy(item, bt, item.Length);
             return bt;
         }
+
+        public static string ReturnStringByBytes(byte[] value)
+        {
+            return System.Text.Encoding.Default.GetString(value).Replace("\0", "");
+        }
     }