Ver código fonte

修改舵机三坐标操作

zhuhao 1 ano atrás
pai
commit
5b9705e63f

+ 2 - 2
IMCS_CCS/Controllers/CcsController.cs

@@ -117,7 +117,7 @@ namespace IMCS.CCS.Controllers
         /// <returns></returns>
         [Route("api/SendQualityCenter")]
         [HttpPost]
-        public async Task<ActionResult<ResponseECSData>> SendQualityCenter(RequestData<WorkData> data)
+        public async Task<ActionResult<ResponseECSData>> SendQualityCenter(RequestData<LocationData> data)
         {
             return await _httpRequestService.SendQualityCenter(data);
         }
@@ -248,7 +248,7 @@ namespace IMCS.CCS.Controllers
         /// <returns></returns>
         [Route("api/SendServoStacker")]
         [HttpPost]
-        public async Task<ActionResult<ResponseECSData>> SendServoStacker(RequestData<LocationData> data)
+        public async Task<ActionResult<ResponseECSData>> SendServoStacker(RequestData<WorkData> data)
         {
             return await _httpRequestService.SendServoStacker(data);
         }

+ 6 - 1
IMCS_CCS/Entitys/CallBackRequestData.cs

@@ -18,6 +18,11 @@ namespace IMCS.CCS.Entitys
         /// <summary>
         /// 任务节点id
         /// </summary>
-        public long taskNodeId { get; set; }  
+        public long taskNodeId { get; set; }
+
+        /// <summary>
+        /// 工位Id
+        /// </summary>
+        public string stationId { get; set; }
     }
 }

+ 2 - 2
IMCS_CCS/Service/IHttpRequestService .cs

@@ -55,7 +55,7 @@ namespace IMCS.CCS.Services
         /// <summary>
         /// 质量中心送物品
         /// </summary> 
-        Task<ResponseECSData> SendQualityCenter(RequestData<WorkData> req);
+        Task<ResponseECSData> SendQualityCenter(RequestData<LocationData> req);
 
         /// <summary>
         /// 柔性线机器人移动物品
@@ -125,7 +125,7 @@ namespace IMCS.CCS.Services
         /// <summary>
         /// 伺服舵机取和放物品
         /// </summary> 
-        Task<ResponseECSData> SendServoStacker(RequestData<LocationData> req);
+        Task<ResponseECSData> SendServoStacker(RequestData<WorkData> req);
 
         /// <summary>
         /// 刀具接口列表

+ 118 - 112
IMCS_CCS/Service/Impl/HttpRequestService.cs

@@ -628,7 +628,7 @@ namespace IMCS.CCS.Services
         /// <summary>
         /// 质量中心送物品
         /// </summary> 
-        public async Task<ResponseECSData> SendQualityCenter(RequestData<WorkData> req)
+        public async Task<ResponseECSData> SendQualityCenter(RequestData<LocationData> req)
         {
             ResponseECSData responseData = new ResponseECSData(req.taskId, req.taskNodeId);
             try
@@ -669,99 +669,37 @@ namespace IMCS.CCS.Services
                     return responseData;
                 }
 
-                CcsActionAddress actionAddressQuery = new CcsActionAddress();
-                List<CcsActionAddress> CcsActionAddresses = new List<CcsActionAddress>(); 
-                //保障中心 放三坐标
-                if (!string.IsNullOrEmpty(req.data.Location) && req.data.Location == "373" && req.url == "192.168.11.130")
-                {
-                    //强制三坐标动作ID
-                    actionAddressQuery.ActionId = 47;
-                    CcsActionAddresses = _ccsActionAddressService.GetList(actionAddressQuery);
-                    string stationId = req.data.stationId;
-                    int key = 0;
-                    if (stationId == "L")
-                    {
-                        key = (int)ThreeCoordinatesPosEnum.L;
-                    }
-                    else if (stationId == "M")
-                    {
-                        key = (int)ThreeCoordinatesPosEnum.M;
-                    }
-                    else if (stationId == "R")
-                    {
-                        key = (int)ThreeCoordinatesPosEnum.R;
-                    }
-
-
-                    //根据sort顺序,查询左中右空闲位置,写入地址列表
-                    List<CcsActionAddress> CcsActionAddressThreeCoordinatesWrites = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE.ToString() && o.Sort == key).ToList();
-                    foreach (CcsActionAddress actionAddress in CcsActionAddressThreeCoordinatesWrites)
-                    {
-                        if (!string.IsNullOrEmpty(actionAddress.Address))
-                        {
-                            if (actionAddress.Value == "workProgramName")
-                            {
-                                s7.Write(actionAddress.Address, ToolUtils.ReturnBtyesWtitString(req.data.workProgramName, 40));
-                            }
-                            else if (actionAddress.Value == "workId")
-                            {
-                                s7.Write(actionAddress.Address, ToolUtils.ReturnBtyesWtitString(req.data.workId, 60));
-                            }
-                            else if (actionAddress.Value == "procedureNo")
-                            {
-                                s7.Write(actionAddress.Address, ToolUtils.ReturnBtyesWtitString(req.data.procedureNo, 40));
-                            }
-
-                            Thread.Sleep(100);
-                        }
-                    }
-
-                    //查询写入地址列表
-                    List<CcsActionAddress> CcsActionAddressWriteSends = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE_SEND.ToString()).OrderBy(o => o.Sort).ToList();
-
-                    foreach (CcsActionAddress actionAddress in CcsActionAddressWriteSends)
-                    {
-                        if (!string.IsNullOrEmpty(actionAddress.Address))
-                        {
-                            s7.Write(actionAddress.Address, Convert.ToInt16(string.IsNullOrEmpty(actionAddress.Value) ? req.data.Location : actionAddress.Value));
+                CcsActionAddress actionAddressQuery = new CcsActionAddress(); 
+                actionAddressQuery.ActionId = actionInfo.Id;
+                List<CcsActionAddress> CcsActionAddresses = _ccsActionAddressService.GetList(actionAddressQuery);
 
-                            Thread.Sleep(SLEEP_TIME);
-                        }
-                    }
-                }
-                else  //其他放 
+                //查询条件
+                List<CcsActionAddress> CcsActionAddressChecks = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.CHECK.ToString()).ToList();
+                foreach (CcsActionAddress actionAddress in CcsActionAddressChecks)
                 {
-                    actionAddressQuery.ActionId = actionInfo.Id;
-                    CcsActionAddresses = _ccsActionAddressService.GetList(actionAddressQuery);
-
-                    //查询条件
-                    List<CcsActionAddress> CcsActionAddressChecks = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.CHECK.ToString()).ToList();
-                    foreach (CcsActionAddress actionAddress in CcsActionAddressChecks)
+                    if (!string.IsNullOrEmpty(actionAddress.Address) && !string.IsNullOrEmpty(actionAddress.Value))
                     {
-                        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)
                         {
-                            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)
-                            {
-                                s7.Close();
-                                Log.Instance.WriteLogAdd(ActionTypeEnum.SendQualityCenter + "取物品异常===>>" + "条件不满足" + JsonConvert.SerializeObject(req),
-                                EnumHelper.GetDescription(ActionTypeEnum.SendQualityCenter));
-                                responseData.result = "false";
-                                return responseData;
-                            }
+                            s7.Close();
+                            Log.Instance.WriteLogAdd(ActionTypeEnum.SendQualityCenter + "放物品异常===>>" + "条件不满足" + JsonConvert.SerializeObject(req),
+                            EnumHelper.GetDescription(ActionTypeEnum.SendQualityCenter));
+                            responseData.result = "false";
+                            return responseData;
                         }
                     }
+                }
 
-                    List<CcsActionAddress> CcsActionAddressWrites = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE.ToString()).ToList();
-                    foreach (CcsActionAddress actionAddress in CcsActionAddressWrites)
+                List<CcsActionAddress> CcsActionAddressWrites = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE.ToString()).ToList();
+                foreach (CcsActionAddress actionAddress in CcsActionAddressWrites)
+                {
+                    if (!string.IsNullOrEmpty(actionAddress.Address))
                     {
-                        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);
-                        }
+                        string Address = ToolUtils.AddressConvertDBW(actionAddress.Address);
+                        s7.Write(Address, Convert.ToInt16(string.IsNullOrEmpty(actionAddress.Value) ? req.data.Location : actionAddress.Value)); ;
+                        Thread.Sleep(SLEEP_TIME);
                     }
                 }
                
@@ -2174,7 +2112,7 @@ namespace IMCS.CCS.Services
         /// <summary>
         /// 伺服舵机放物品
         /// </summary> 
-        public async Task<ResponseECSData> SendServoStacker(RequestData<LocationData> req)
+        public async Task<ResponseECSData> SendServoStacker(RequestData<WorkData> req)
         {
             ResponseECSData responseData = new ResponseECSData(req.taskId, req.taskNodeId);
             try
@@ -2209,44 +2147,112 @@ namespace IMCS.CCS.Services
                 }
 
                 CcsActionAddress actionAddressQuery = new CcsActionAddress();
-                actionAddressQuery.ActionId = actionInfo.Id;
-                List<CcsActionAddress> CcsActionAddresses = _ccsActionAddressService.GetList(actionAddressQuery);
-
-                //查询条件
-                List<CcsActionAddress> CcsActionAddressChecks = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.CHECK.ToString()).ToList();
-                foreach (CcsActionAddress actionAddress in CcsActionAddressChecks)
+                List<CcsActionAddress> CcsActionAddresses = new List<CcsActionAddress>();
+                //保障中心 放三坐标
+                if (!string.IsNullOrEmpty(req.data.Location) && req.data.Location == "373" && req.url == "192.168.11.130")
                 {
-                    if (!string.IsNullOrEmpty(actionAddress.Address) && !string.IsNullOrEmpty(actionAddress.Value))
+                    //强制三坐标动作ID
+                    actionAddressQuery.ActionId = 47;
+                    CcsActionAddresses = _ccsActionAddressService.GetList(actionAddressQuery);
+                    string stationId = req.data.stationId;
+                    int key = 0;
+                    if (stationId == "L")
                     {
-                       
-                        var operateResult = s7.ReadInt16(actionAddress.Address);
-                        if (actionAddress.CheckType ? (operateResult.Content.ToString() == actionAddress.Value): operateResult.Content.ToString() != actionAddress.Value)
+                        key = (int)ThreeCoordinatesPosEnum.L;
+                    }
+                    else if (stationId == "M")
+                    {
+                        key = (int)ThreeCoordinatesPosEnum.M;
+                    }
+                    else if (stationId == "R")
+                    {
+                        key = (int)ThreeCoordinatesPosEnum.R;
+                    }
+
+
+                    //根据sort顺序,查询左中右空闲位置,写入地址列表
+                    List<CcsActionAddress> CcsActionAddressThreeCoordinatesWrites = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE.ToString() && o.Sort == key).ToList();
+                    foreach (CcsActionAddress actionAddress in CcsActionAddressThreeCoordinatesWrites)
+                    {
+                        if (!string.IsNullOrEmpty(actionAddress.Address))
                         {
-                            s7.ConnectClose(); 
-                            Log.Instance.WriteLogAdd(ActionTypeEnum.SendServoStacker + "放物品异常===>>" + "条件不满足" + JsonConvert.SerializeObject(req),
-                            EnumHelper.GetDescription(ActionTypeEnum.SendServoStacker));
-                            responseData.result = "false";
-                            return responseData;
+                            if (actionAddress.Value == "workProgramName")
+                            {
+                                s7.Write(actionAddress.Address, ToolUtils.ReturnBtyesWtitString(req.data.workProgramName, 40));
+                            }
+                            else if (actionAddress.Value == "workId")
+                            {
+                                s7.Write(actionAddress.Address, ToolUtils.ReturnBtyesWtitString(req.data.workId, 60));
+                            }
+                            else if (actionAddress.Value == "procedureNo")
+                            {
+                                s7.Write(actionAddress.Address, ToolUtils.ReturnBtyesWtitString(req.data.procedureNo, 40));
+                            }
+
+                            Thread.Sleep(100);
                         }
                     }
-                }
 
-                //查询写入地址列表
-                List<CcsActionAddress> CcsActionAddressWrites = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE.ToString()).ToList();
-                foreach (CcsActionAddress actionAddress in CcsActionAddressWrites)
-                {
-                    if (!string.IsNullOrEmpty(actionAddress.Address))
+                    //查询写入地址列表
+                    List<CcsActionAddress> CcsActionAddressWriteSends = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE_SEND.ToString()).OrderBy(o => o.Sort).ToList();
+
+                    foreach (CcsActionAddress actionAddress in CcsActionAddressWriteSends)
                     {
-                        s7.Write(actionAddress.Address, Convert.ToInt16(string.IsNullOrEmpty(actionAddress.Value) ? req.data.Location : actionAddress.Value)); ;
-                        Thread.Sleep(SLEEP_TIME);
+                        if (!string.IsNullOrEmpty(actionAddress.Address))
+                        {
+                            s7.Write(actionAddress.Address, Convert.ToInt16(string.IsNullOrEmpty(actionAddress.Value) ? req.data.Location : actionAddress.Value));
+
+                            Thread.Sleep(SLEEP_TIME);
+                        }
                     }
                 }
+                else
+                {
+                    actionAddressQuery.ActionId = actionInfo.Id;
+                    CcsActionAddresses = _ccsActionAddressService.GetList(actionAddressQuery);
+
+                    //查询条件
+                    List<CcsActionAddress> CcsActionAddressChecks = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.CHECK.ToString()).ToList();
+                    foreach (CcsActionAddress actionAddress in CcsActionAddressChecks)
+                    {
+                        if (!string.IsNullOrEmpty(actionAddress.Address) && !string.IsNullOrEmpty(actionAddress.Value))
+                        {
+
+                            var operateResult = s7.ReadInt16(actionAddress.Address);
+                            if (actionAddress.CheckType ? (operateResult.Content.ToString() == actionAddress.Value) : operateResult.Content.ToString() != actionAddress.Value)
+                            {
+                                s7.ConnectClose();
+                                Log.Instance.WriteLogAdd(ActionTypeEnum.SendServoStacker + "放物品异常===>>" + "条件不满足" + JsonConvert.SerializeObject(req),
+                                EnumHelper.GetDescription(ActionTypeEnum.SendServoStacker));
+                                responseData.result = "false";
+                                return responseData;
+                            }
+                        }
+                    }
+
+                    //查询写入地址列表
+                    List<CcsActionAddress> CcsActionAddressWrites = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE.ToString()).ToList();
+                    foreach (CcsActionAddress actionAddress in CcsActionAddressWrites)
+                    {
+                        if (!string.IsNullOrEmpty(actionAddress.Address))
+                        {
+                            s7.Write(actionAddress.Address, Convert.ToInt16(string.IsNullOrEmpty(actionAddress.Value) ? req.data.Location : actionAddress.Value)); ;
+                            Thread.Sleep(SLEEP_TIME);
+                        }
+                    }
+                } 
+                
                 s7.ConnectClose();
 
                 //插入回调
                 TaskCallback taskCallbackData = new TaskCallback(req.url, ActionTypeEnum.SendServoStacker.ToString(),
-                    EnumHelper.GetDescription(ActionTypeEnum.SendServoStacker), req.taskId, req.taskNodeId); 
-                await _taskCallbackService.CreateOrUpdateAndCache(setCallBackValue(CcsActionAddresses, taskCallbackData));
+                    EnumHelper.GetDescription(ActionTypeEnum.SendServoStacker), req.taskId, req.taskNodeId);
+                taskCallbackData = setCallBackValue(CcsActionAddresses, taskCallbackData);
+                if(!string.IsNullOrEmpty(req.data.Location) && req.data.Location == "373")
+                {
+                    taskCallbackData.Description = req.data.stationId;
+                }
+                await _taskCallbackService.CreateOrUpdateAndCache(taskCallbackData);
                 Log.Instance.WriteLogAdd(EnumHelper.GetDescription(ActionTypeEnum.SendServoStacker) + "放物品成功===>>" + JsonConvert.SerializeObject(req)
                    , EnumHelper.GetDescription(ActionTypeEnum.SendServoStacker));
                 return responseData;

+ 4 - 0
IMCS_CCS/Service/Impl/TaskJobService.cs

@@ -548,6 +548,10 @@ namespace IMCS.CCS.Service.Impl
                         CallBackRequestData requestData = new CallBackRequestData();
                         requestData.taskId = long.Parse(task.TaskId);
                         requestData.taskNodeId = long.Parse(task.TaskNodeId);
+                        if(task.OperateType == ActionTypeEnum.SendServoStacker.ToString() && !string.IsNullOrEmpty(task.Description))
+                        {
+                            requestData.stationId = task.Description;
+                        }
                         var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
                         ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
                         if (result.IsSuccess && responseECSCallback.code == 0)