zhuhao 1 year ago
parent
commit
bff57a048d
2 changed files with 32 additions and 23 deletions
  1. 29 20
      IMCS_CCS/Service/Impl/HttpRequestService.cs
  2. 3 3
      IMCS_CCS/Service/Impl/TaskJobService.cs

+ 29 - 20
IMCS_CCS/Service/Impl/HttpRequestService.cs

@@ -18,6 +18,7 @@ using IMCS_CCS.Model.vo;
 using FTP;
 using HslCommunication;
 using System.Text.RegularExpressions;
+using System.IO;
 
 namespace IMCS.CCS.Services
 {
@@ -961,6 +962,7 @@ namespace IMCS.CCS.Services
                    
                    
                 }
+
                 //插入回调
                 TaskCallback taskCallbackData = new TaskCallback(req.url, ActionTypeEnum.UploadFile.ToString(),
                 EnumHelper.GetDescription(ActionTypeEnum.UploadFile), req.taskId, req.taskNodeId);
@@ -1017,7 +1019,7 @@ namespace IMCS.CCS.Services
                     ResponseOpcUaData responseOpcUaData = JsonConvert.DeserializeObject<ResponseOpcUaData>(Result.Message);
                     if (!Result.IsSuccess || !responseOpcUaData.result)
                     {
-                        Log.Instance.WriteLogAdd(ActionTypeEnum.UploadFile + "上传异常===>>" + JsonConvert.SerializeObject(req),
+                        Log.Instance.WriteLogAdd(ActionTypeEnum.UploadFile + "上传异常===>>" + JsonConvert.SerializeObject(req),
                        EnumHelper.GetDescription(ActionTypeEnum.UploadFile));
                         responseData.result = "false";
                         return responseData;
@@ -1133,24 +1135,31 @@ namespace IMCS.CCS.Services
                         }
                     }
                     string currentWorkStationAddress = ToolUtils.AddressConvertDBW("DB200.332");
-                    var currentWorkOperateResult = s7.ReadInt16(currentWorkStationAddress).Content.ToString();
-                    string writeValue = "127";
-                    if(currentWorkOperateResult.ToString() == "1")//工作台1
-                    {
-                        writeValue = "127";
-                    }else if (currentWorkOperateResult.ToString() == "2")//工作台2
-                    {
-                        writeValue = "128";
-                    }
+                    var currentWorkStation = s7.ReadInt16(currentWorkStationAddress).Content.ToString();
+                    //string writeValue = "127";
+                    //if(currentWorkStation == "1")//工作台1
+                    //{
+                    //    writeValue = "127";
+                    //}else if (currentWorkStation == "2")//工作台2
+                    //{
+                    //    writeValue = "128";
+                    //}
 
-                        //查询写入地址列表
-                     List<CcsActionAddress> CcsActionAddressWrites = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE.ToString()).ToList();
+                    //查询写入地址列表
+                    List<CcsActionAddress> CcsActionAddressWrites = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE.ToString()).ToList();
                     foreach (CcsActionAddress actionAddress in CcsActionAddressWrites)
                     {
                         if (!string.IsNullOrEmpty(actionAddress.Address))
-                        {
-                            string Address = ToolUtils.AddressConvertDBW(actionAddress.Address);
-                            s7.Write(actionAddress.Address, Convert.ToInt16(writeValue));
+                        { 
+                            if (actionAddress.Sort == 1)
+                            {
+                                string proNo = Path.GetFileNameWithoutExtension(req.data.remotePath);
+                                s7.Write(actionAddress.Address, Convert.ToInt16(proNo));
+                            }  
+                            else
+                            {
+                                s7.Write(actionAddress.Address, Convert.ToInt16(actionAddress.Value));
+                            } 
                             Thread.Sleep(SLEEP_TIME);
                         }
                     }
@@ -1158,13 +1167,13 @@ namespace IMCS.CCS.Services
                     //插入回调
                     TaskCallback taskCallbackData = new TaskCallback(actionInfo.PlcIp, ActionTypeEnum.StartNCProgram.ToString(),
                     EnumHelper.GetDescription(ActionTypeEnum.StartNCProgram), req.taskId, req.taskNodeId);
-                    await _taskCallbackService.CreateOrUpdateAndCache(setCallBackValue(CcsActionAddresses, taskCallbackData));
+                    taskCallbackData = setCallBackValue(CcsActionAddresses, taskCallbackData);
+                    taskCallbackData.Description = ProtocalTypeEnum.OPCUA.ToString();
+                    taskCallbackData.Data = currentWorkStation;
+                    await _taskCallbackService.CreateOrUpdateAndCache(taskCallbackData);
                     Log.Instance.WriteLogAdd(ActionTypeEnum.StartNCProgram + "启动成功===>>" + JsonConvert.SerializeObject(req),
                         EnumHelper.GetDescription(ActionTypeEnum.StartNCProgram));
-                    return responseData;
-
-                     
-
+                    return responseData; 
 
                 } 
                 else if (actionInfo.ProtocolType == ProtocalTypeEnum.FANUC.ToString())

+ 3 - 3
IMCS_CCS/Service/Impl/TaskJobService.cs

@@ -800,7 +800,6 @@ namespace IMCS.CCS.Service.Impl
             List<Device> deviceList = await getDeviceList();
             //在线设备 
             taskList = taskList.Where(x => x.OperateType.Equals(ActionTypeEnum.StartNCProgram.ToString()) && x.State &&  deviceList.Any(device => device.Ip == x.IP)).ToList();
-            //TaskCallback task = taskList.Where(key => deviceList.Any(device => device.Ip == key.IP)).FirstOrDefault();
             if (taskList == null || taskList.Count == 0)
             {
                 return "无回调任务";
@@ -816,8 +815,9 @@ namespace IMCS.CCS.Service.Impl
                     //tagValueQuery.Address = task.Address;
                     List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagValueQuery);
                     CcsTagValue tagValue = tagValues.Where(o => o.Address == task.Address.Trim()).FirstOrDefault();
-
-                    if (tagValue != null && tagValue.TagValue == task.CallbackValue)
+                    CcsTagValue tagValue2 = tagValues.Where(o => o.Address == "DB200.332").FirstOrDefault(); //当前工作台
+                    if ((tagValue != null && tagValue.TagValue == task.CallbackValue && String.IsNullOrEmpty(task.Description)) 
+                        || (task.Description == ProtocalTypeEnum.OPCUA.ToString() && tagValue != null && tagValue.TagValue == task.CallbackValue && tagValue2 != null && tagValue2.TagValue == task.Data)) 
                     {
                         CallBackRequestData requestData = new CallBackRequestData();
                         requestData.taskId = long.Parse(task.TaskId);