wudingsheng пре 2 месеци
родитељ
комит
8520c3757e

+ 31 - 7
IMCS_CCS/Controllers/CcsController.cs

@@ -8,7 +8,8 @@ using Newtonsoft.Json;
 using System;
 using System.Collections.Generic;
 using System.Threading.Tasks;
- 
+using static IMCS.CCS.Models.vo.ResponseECSData;
+
 
 namespace IMCS.CCS.Controllers
 {
@@ -74,7 +75,7 @@ namespace IMCS.CCS.Controllers
         /// 刀具机器人取放动作: POST: api/CutterRobotAction
         /// </summary> 
         /// <returns></returns>
-        [Route("api/CutterRobotAction")]
+       /* [Route("api/CutterRobotAction")]
         [HttpPost]
         public async Task<ActionResult<ResponseECSData>> CutterRobotAction(RequestData<CutterLocationData> data)
         {
@@ -90,7 +91,7 @@ namespace IMCS.CCS.Controllers
         public async Task<ActionResult<ResponseECSData>> CutterDeviceTakeOrPutRequest(RequestData<CutterLocationData> data)
         {
             return await _httpRequestService.CutterDeviceTakeOrPutRequest(data);
-        }
+        }*/
 
         /// <summary>
         /// 上传文件: POST: api/UploadFile
@@ -155,7 +156,7 @@ namespace IMCS.CCS.Controllers
         {
             return await _httpRequestService.GetCallBackListByCondition(vo);
         }
-
+/*
         /// <summary>
         /// 刀具接口列表: POST: api/GetTools
         /// </summary> 
@@ -165,7 +166,7 @@ namespace IMCS.CCS.Controllers
         public async Task<ActionResult<ResponseData<List<ResponseToolData>>>> GetTools(RequestToolData data)
         {
             return await _httpRequestService.GetTools(data);
-        }
+        }*/
 
         /// <summary>
         /// 机外对刀仪的刀具数据接受: POST: api/PushPushToMachine
@@ -180,7 +181,7 @@ namespace IMCS.CCS.Controllers
         }
 
         /// <summary>
-        /// 查询三坐标是否允许取-下料请求: POST: api/GetMiddleThreeCoordinates
+       /* /// 查询三坐标是否允许取-下料请求: POST: api/GetMiddleThreeCoordinates
         /// </summary> 
         /// <returns></returns>
         [Route("api/GetMiddleThreeCoordinates")]
@@ -225,7 +226,7 @@ namespace IMCS.CCS.Controllers
         public async Task<ActionResult<ResponseECSData>> SendOffsetSetting(RequestData<ThreeDimensionalOffset> data)
         {
             return await _httpRequestService.SendOffsetSetting(data);
-        }
+        }*/
 
         /// <summary>
         /// 查询rfid数据
@@ -300,5 +301,28 @@ namespace IMCS.CCS.Controllers
             return await _httpRequestService.sendTheBindingInfo(data);
         }
 
+        /// <summary>
+        /// 写入点位: POST: api/writePoint
+        /// </summary> 
+        /// <returns></returns>
+        [Route("api/writePoint")]
+        [HttpPost]
+        public async Task<ActionResult<ResponseECSData>> writePoint(RequestData<RequestPoint> data)
+        {
+            return await _httpRequestService.writePoint(data);
+        }
+
+
+        /// <summary>
+        /// 读取点位: POST: api/readPoint
+        /// </summary> 
+        /// <returns></returns>
+        [Route("api/readPoint")]
+        [HttpPost]
+        public async Task<ActionResult<ResponseCCSData<List<ResponseEcsPoint>>>> readPoint(RequestData<RequestPoint> data)
+        {
+            return await _httpRequestService.readPoint(data);
+        }
+
     }
 }

+ 5 - 0
IMCS_CCS/Entitys/RequestData.cs

@@ -3,6 +3,7 @@ using Google.Protobuf.WellKnownTypes;
 using IMCS.CCS.Entitys;
 using Renci.SshNet.Messages;
 using StackExchange.Redis;
+using System.Collections.Generic;
 using System.Xml.Linq;
 
 namespace IMCS.CCS.Models
@@ -244,6 +245,10 @@ namespace IMCS.CCS.Models
         public string ip { get; set; }
 
     }
+    public class RequestPoint
+    {
+        public List<string> pointList { get; set; } = null;
+    }
     public class RequestData<T>
     {
         /// <summary>

+ 20 - 42
IMCS_CCS/IMCS.CCS.xml

@@ -223,18 +223,6 @@
             </summary> 
             <returns></returns>
         </member>
-        <member name="M:IMCS.CCS.Controllers.CcsController.CutterRobotAction(IMCS.CCS.Models.RequestData{IMCS.CCS.Models.CutterLocationData})">
-            <summary>
-            刀具机器人取放动作: POST: api/CutterRobotAction
-            </summary> 
-            <returns></returns>
-        </member>
-        <member name="M:IMCS.CCS.Controllers.CcsController.CutterDeviceTakeOrPutRequest(IMCS.CCS.Models.RequestData{IMCS.CCS.Models.CutterLocationData})">
-            <summary>
-            CNC刀具库请求上下料动作: POST: api/CutterDeviceTakeOrPutRequest
-            </summary> 
-            <returns></returns>
-        </member>
         <member name="M:IMCS.CCS.Controllers.CcsController.UploadFile(IMCS.CCS.Models.RequestData{IMCS.CCS.Models.UploadFileData})">
             <summary>
             上传文件: POST: api/UploadFile
@@ -265,42 +253,12 @@
             </summary> 
             <returns></returns>
         </member>
-        <member name="M:IMCS.CCS.Controllers.CcsController.GetTools(IMCS.CCS.Models.RequestToolData)">
-            <summary>
-            刀具接口列表: POST: api/GetTools
-            </summary> 
-            <returns></returns>
-        </member>
         <member name="M:IMCS.CCS.Controllers.CcsController.PushPushToMachine(IMCS.CCS.Models.RequestData{IMCS.CCS.Models.CutterTestData})">
             <summary>
             机外对刀仪的刀具数据接受: POST: api/PushPushToMachine
             </summary> 
             <returns></returns>
         </member>
-        <member name="M:IMCS.CCS.Controllers.CcsController.GetMiddleThreeCoordinates(IMCS.CCS.Models.RequestData{IMCS.CCS.Models.RequestToolData})">
-            <summary>
-            查询三坐标是否允许取-下料请求: POST: api/GetMiddleThreeCoordinates
-            </summary> 
-            <returns></returns>
-        </member>
-        <member name="M:IMCS.CCS.Controllers.CcsController.QueryThreeCoordinatesFreePos(IMCS.CCS.Models.RequestData{IMCS.CCS.Models.RequestToolData})">
-            <summary>
-            查询三坐标是否允许放-上料请求: POST: api/QueryThreeCoordinatesFreePos
-            </summary> 
-            <returns></returns>
-        </member>
-        <member name="M:IMCS.CCS.Controllers.CcsController.SendThreeCoordinates(IMCS.CCS.Models.RequestData{IMCS.CCS.Models.ThreeDimensional})">
-            <summary>
-            三坐标启动: POST: api/SendThreeCoordinates
-            </summary> 
-            <returns></returns>
-        </member>
-        <member name="M:IMCS.CCS.Controllers.CcsController.SendOffsetSetting(IMCS.CCS.Models.RequestData{IMCS.CCS.Models.ThreeDimensionalOffset})">
-            <summary>
-            偏移量设置: POST: api/SendOffsetSetting
-            </summary> 
-            <returns></returns>
-        </member>
         <member name="M:IMCS.CCS.Controllers.CcsController.findRfidData(IMCS.CCS.Models.RequestData{IMCS.CCS.Models.RequestToolData})">
             <summary>
             查询rfid数据
@@ -337,6 +295,18 @@
             </summary> 
             <returns></returns>
         </member>
+        <member name="M:IMCS.CCS.Controllers.CcsController.writePoint(IMCS.CCS.Models.RequestData{IMCS.CCS.Models.RequestPoint})">
+            <summary>
+            写入点位: POST: api/writePoint
+            </summary> 
+            <returns></returns>
+        </member>
+        <member name="M:IMCS.CCS.Controllers.CcsController.readPoint(IMCS.CCS.Models.RequestData{IMCS.CCS.Models.RequestPoint})">
+            <summary>
+            读取点位: POST: api/readPoint
+            </summary> 
+            <returns></returns>
+        </member>
         <member name="M:IMCS.CCS.Controllers.DeviceController.GetDevice(System.Int32)">
             <summary>
             获取设备详情:GET: api/Device/5
@@ -872,6 +842,14 @@
             条件限制标志 空或1 限制规则,0不限制
             </summary>
         </member>
+        <member name="P:IMCS.CCS.Models.LocationData.TrayLatheType">
+            <summary>
+            托盘类型
+            </summary>
+        </member>
+        <member name="P:IMCS.CCS.Models.LocationData.TrayLatheCode">
+            托盘编码
+        </member>
         <member name="P:IMCS.CCS.Models.CutterLocationData.Location">
             <summary>
             原库位

+ 23 - 0
IMCS_CCS/Model/vo/ResponseECSData.cs

@@ -15,10 +15,14 @@ namespace IMCS.CCS.Models.vo
 
         public string resultMsg { get; set; }
 
+        public string msg { get; set; }
+
         public string concurrency { get; set; } = "false";
 
         public string data { get; set; }
         public string returnData { get; set; }
+
+        public string ip { get; set; }
         public ResponseECSData(string taskID,string taskNodeID)
         {
             this.taskID = taskID;
@@ -31,5 +35,24 @@ namespace IMCS.CCS.Models.vo
             this.resultMsg = resultMsg;
         }
 
+        public class ResponseCCSData<T>
+        {
+            public string result { get; set; } = "true";
+
+            public string msg { get; set; }
+
+            public T data { get; set; }
+        }
+        public class ResponseEcsPoint
+        {
+            public string point { get; set; }
+
+            public string result { get; set; }
+
+        }
+
+    
+
+
     }
 }

+ 11 - 10
IMCS_CCS/Properties/launchSettings.json

@@ -1,13 +1,4 @@
 {
-  "iisSettings": {
-    "windowsAuthentication": false,
-    "anonymousAuthentication": true,
-    "iis": {
-      "applicationUrl": "http://localhost/CCS",
-      "sslPort": 0
-    }
-  },
-  "$schema": "http://json.schemastore.org/launchsettings.json",
   "profiles": {
     "IMCS_CCS": {
       "commandName": "Project",
@@ -16,7 +7,17 @@
         "ASPNETCORE_ENVIRONMENT": "Development"
       },
       "dotnetRunMessages": "true",
-      "applicationUrl": "http://localhost:8089"
+      "applicationUrl": "http://localhost:8089",
+      "nativeDebugging": false
+    }
+  },
+  "$schema": "http://json.schemastore.org/launchsettings.json",
+  "iisSettings": {
+    "windowsAuthentication": false,
+    "anonymousAuthentication": true,
+    "iis": {
+      "applicationUrl": "http://localhost/CCS",
+      "sslPort": 0
     }
   }
 }

+ 4 - 1
IMCS_CCS/Service/IHttpRequestService .cs

@@ -6,7 +6,8 @@ using IMCS_CCS.Model.vo;
 using System;
 using System.Collections.Generic;
 using System.Linq;
-using System.Threading.Tasks; 
+using System.Threading.Tasks;
+using static IMCS.CCS.Models.vo.ResponseECSData;
 
 namespace IMCS.CCS.Services
 {
@@ -149,7 +150,9 @@ namespace IMCS.CCS.Services
         /// <returns></returns>
         Task<ResponseECSData> sendTheBindingInfo(RequestData<BindInfo> reqs);
 
+        Task<ResponseECSData> writePoint(RequestData<RequestPoint> req);
 
+        Task<ResponseCCSData<List<ResponseEcsPoint>>> readPoint(RequestData<RequestPoint> req);
 
     }
 }

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

@@ -30,6 +30,7 @@ using static AutoMapper.Internal.ExpressionFactory;
 using Microsoft.EntityFrameworkCore.Internal;
 using Org.BouncyCastle.Asn1.Ocsp;
 using Ubiety.Dns.Core;
+using static IMCS.CCS.Models.vo.ResponseECSData;
 
 namespace IMCS.CCS.Services
 {
@@ -111,31 +112,31 @@ namespace IMCS.CCS.Services
             }
             if (sxlzxlqq.Count == 0)
             {
-                sxlzslqq.Add("129", "DB1001.112");
-                sxlzslqq.Add("446", "DB1001.112");
+                sxlzxlqq.Add("129", "DB1001.112");
+                sxlzxlqq.Add("446", "DB1001.112");
 
-                sxlzslqq.Add("130", "DB1001.114");
-                sxlzslqq.Add("447", "DB1001.114");
+                sxlzxlqq.Add("130", "DB1001.114");
+                sxlzxlqq.Add("447", "DB1001.114");
             }
 
             if (sxlzslwcxh.Count == 0)
             {
-                sxlzslqq.Add("129", "DB1000.42");
-                sxlzslqq.Add("446", "DB1000.42");
+                sxlzslwcxh.Add("129", "DB1000.42");
+                sxlzslwcxh.Add("446", "DB1000.42");
 
 
 
-                sxlzslqq.Add("130", "DB1000.44");
-                sxlzslqq.Add("447", "DB1000.44");
+                sxlzslwcxh.Add("130", "DB1000.44");
+                sxlzslwcxh.Add("447", "DB1000.44");
             }
             if (sxlzxlwcxh.Count == 0)
             {
-                sxlzslqq.Add("129", "DB1001.112");
-                sxlzslqq.Add("446", "DB1001.112");
+                sxlzxlwcxh.Add("129", "DB1001.112");
+                sxlzxlwcxh.Add("446", "DB1001.112");
 
 
-                sxlzslqq.Add("130", "DB1000.48");
-                sxlzslqq.Add("447", "DB1000.50");
+                sxlzxlwcxh.Add("130", "DB1000.48");
+                sxlzxlwcxh.Add("447", "DB1000.50");
             }
 
         }
@@ -318,7 +319,7 @@ namespace IMCS.CCS.Services
 
                 //查询出需要检查的地址列表
                 List<CcsActionAddress> CcsActionAddressChecks = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.CHECK.ToString()).ToList();
-                foreach (CcsActionAddress actionAddress in CcsActionAddressChecks)
+                /*foreach (CcsActionAddress actionAddress in CcsActionAddressChecks)
                 {
                     if (!string.IsNullOrEmpty(actionAddress.Address) && !string.IsNullOrEmpty(actionAddress.Value))
                     {
@@ -351,10 +352,10 @@ namespace IMCS.CCS.Services
                             return responseData;
                         }
                     }
-                }
+                }*/
 
                 //写入子盘编码,让plc去校验编码是否正确
-                if (req.data.TrayLatheType == "1")
+                /*if (req.data.TrayLatheType == "1")
                 {
                     s7.Write("DB1001.6", ToolUtils.ReturnBtyesWtitString(req.data.TrayLatheCode, 39));
                     
@@ -362,7 +363,7 @@ namespace IMCS.CCS.Services
                 else if (req.data.TrayLatheType == "4")
                 {
                     s7.Write("DB1001.54", ToolUtils.ReturnBtyesWtitString(req.data.TrayLatheCode, 39));
-                }
+                }*/
 
                 //查询写入地址列表
                 string log = "任务【" + req.taskNodeId + "】写入:";
@@ -383,7 +384,7 @@ namespace IMCS.CCS.Services
                         }
                         else
                         {
-                            s7.Write(actionAddress.Address, Convert.ToInt16(actionAddress.Value));
+                            s7.Write(actionAddress.Address, Convert.ToBoolean(actionAddress.Value));
                             log = log + "地址:" + actionAddress.Address + "【" + actionAddress.Value + "】";
                         }
                     }
@@ -393,9 +394,25 @@ namespace IMCS.CCS.Services
 
                 s7.ConnectClose();
 
+                //查询回调表是否存在此数据(避免在数据重复下发时,产生多条回调数据)
+                TaskCallback vo = new TaskCallback(null, ActionTypeEnum.RobotAction.ToString(),
+                    null, req.taskId, req.taskNodeId);
+
+                List<TaskCallback> taskCallbackList = await _taskCallbackService.GetListByCondition(vo);
                 //插入回调
-                TaskCallback taskCallbackData = new TaskCallback(req.url, ActionTypeEnum.RobotAction.ToString(),
-                    EnumHelper.GetDescription(ActionTypeEnum.RobotAction), req.taskId, req.taskNodeId);
+                TaskCallback taskCallbackData = new TaskCallback();
+                if (taskCallbackList != null && taskCallbackList.Count > 0)
+                {
+                    taskCallbackData = taskCallbackList[0];
+
+                    taskCallbackData.State = true;
+                }
+                else
+                {
+                    taskCallbackData = new TaskCallback(req.url, ActionTypeEnum.RobotAction.ToString(),
+                                        EnumHelper.GetDescription(ActionTypeEnum.RobotAction), req.taskId, req.taskNodeId);
+                }
+
                 taskCallbackData = setCallBackValue(CcsActionAddresses, taskCallbackData);
 
                 
@@ -440,10 +457,17 @@ namespace IMCS.CCS.Services
             {
                 string name = item.Name;
                 object value = item.GetValue(t, null);
-                if ((item.PropertyType.IsValueType || item.PropertyType.Name.StartsWith("String")) && name == propertyName)
+                /*if ((item.PropertyType.IsValueType || item.PropertyType.Name.StartsWith("String")) && name == propertyName)
                 {
                     tStr = value.ToString();
                     break;
+                }*/
+
+                if ((item.PropertyType.IsValueType || item.PropertyType == typeof(string))
+            && string.Equals(name, propertyName, StringComparison.OrdinalIgnoreCase))
+                {
+                    tStr = value?.ToString() ?? string.Empty;
+                    break;
                 }
 
             }
@@ -2842,5 +2866,77 @@ EnumHelper.GetDescription(ActionTypeEnum.StartDryMachine));
                 return responseData;
             }
         }
+
+
+        public async Task<ResponseECSData> writePoint(RequestData<RequestPoint> req)
+        {
+            ResponseECSData responseData = new ResponseECSData(req.taskId, req.taskNodeId);
+
+            List<string> pointList = req.data.pointList;
+
+            if (pointList == null || pointList.Count == 0)
+            {
+                responseData.result = "false";
+                responseData.msg = "参数点位集合为空";
+                return responseData;
+            }
+
+            SiemensS7Net s7 = DevicePlcS7.SiemensS7(req.url);
+            OperateResult ConnectionResult = s7.ConnectServer();
+            if (!ConnectionResult.IsSuccess)
+            {
+                s7.ConnectClose();
+                responseData.result = "false";
+                responseData.msg = "PLC连接不上";
+                return responseData;
+            }
+
+            foreach (string point in pointList)
+            {
+                s7.Write(point, Convert.ToInt16("0"));
+
+            }
+            responseData.result = "true";
+            s7.ConnectClose();
+            return responseData;
+        }
+
+
+        public async Task<ResponseCCSData<List<ResponseEcsPoint>>> readPoint(RequestData<RequestPoint> req)
+        {
+            ResponseCCSData<List<ResponseEcsPoint>> responseData = new ResponseCCSData<List<ResponseEcsPoint>>();
+
+            List<string> pointList = req.data.pointList;
+
+            if (pointList == null || pointList.Count == 0)
+            {
+                responseData.result = "false";
+                responseData.msg = "参数点位集合为空";
+                return responseData;
+            }
+
+            SiemensS7Net s7 = DevicePlcS7.SiemensS7(req.url);
+            OperateResult ConnectionResult = s7.ConnectServer();
+            if (!ConnectionResult.IsSuccess)
+            {
+                s7.ConnectClose();
+                responseData.result = "false";
+                responseData.msg = "PLC连接不上," + ConnectionResult.ErrorCode + "," + ConnectionResult.Message;
+                return responseData;
+            }
+            List<ResponseEcsPoint> responseEcsPointList = new List<ResponseEcsPoint>();
+            foreach (string point in pointList)
+            {
+                ResponseEcsPoint responseEcsPoint = new ResponseEcsPoint();
+                string result = s7.ReadInt16(point).Content.ToString();
+                responseEcsPoint.point = point;
+                responseEcsPoint.result = result;
+                responseEcsPointList.Add(responseEcsPoint);
+            }
+            responseData.result = "true";
+            responseData.data = responseEcsPointList;
+            s7.ConnectClose();
+            return responseData;
+        }
     }
 }

+ 1 - 2
IMCS_CCS/Service/Impl/TaskJobService.cs

@@ -523,8 +523,7 @@ namespace IMCS.CCS.Service.Impl
         public async Task<string> CallbackJob2()
         {
 
-            List<TaskCallback> taskList = new List<TaskCallback>();
-            var taskCallbackListData =await _taskCallbackService.GetAllList();
+            List<TaskCallback> taskList = await _taskCallbackService.GetAllList();
 
 
             //在线设备 

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
IMCS_CCS/wwwroot/db/Tasks.json


Неке датотеке нису приказане због велике количине промена