Browse Source

三坐标取放动作调整

zhuhao 1 year ago
parent
commit
4ae8d1df10

+ 23 - 1
IMCS_CCS/Controllers/CcsController.cs

@@ -117,7 +117,7 @@ namespace IMCS.CCS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [Route("api/SendQualityCenter")]
         [Route("api/SendQualityCenter")]
         [HttpPost]
         [HttpPost]
-        public async Task<ActionResult<ResponseECSData>> SendQualityCenter(RequestData<LocationData> data)
+        public async Task<ActionResult<ResponseECSData>> SendQualityCenter(RequestData<WorkData> data)
         {
         {
             return await _httpRequestService.SendQualityCenter(data);
             return await _httpRequestService.SendQualityCenter(data);
         }
         }
@@ -188,6 +188,28 @@ namespace IMCS.CCS.Controllers
             return await _httpRequestService.QueryThreeCoordinatesFreePos(data);
             return await _httpRequestService.QueryThreeCoordinatesFreePos(data);
         }
         }
 
 
+        /// <summary>
+        /// 三坐标中间位是否可取: POST: api/GetMiddleThreeCoordinates
+        /// </summary> 
+        /// <returns></returns>
+        [Route("api/GetMiddleThreeCoordinates")]
+        [HttpPost]
+        public async Task<ActionResult<ResponseECSData>> GetMiddleThreeCoordinates(RequestToolData data)
+        {
+            return await _httpRequestService.GetMiddleThreeCoordinates(data);
+        }
+
+        /// <summary>
+        /// 三坐标中间位工件ID: POST: api/GetMiddleWorkIdThreeCoordinates
+        /// </summary> 
+        /// <returns></returns>
+        [Route("api/GetMiddleWorkIdThreeCoordinates")]
+        [HttpPost]
+        public async Task<ActionResult<ResponseECSData>> GetMiddleWorkIdThreeCoordinates(RequestToolData data)
+        {
+            return await _httpRequestService.GetMiddleWorkIdThreeCoordinates(data);
+        }
+
         /// <summary>
         /// <summary>
         /// 放三坐标滑台: POST: api/SendThreeCoordinates
         /// 放三坐标滑台: POST: api/SendThreeCoordinates
         /// </summary> 
         /// </summary> 

+ 5 - 0
IMCS_CCS/Entitys/RequestData.cs

@@ -74,6 +74,11 @@ namespace IMCS.CCS.Models
         /// </summary>
         /// </summary>
         public string stationId { get; set; }
         public string stationId { get; set; }
 
 
+        /// <summary>
+        /// 条件限制标志 空或1 限制规则,0不限制
+        /// </summary>
+        public string IsAllowFlag { get; set; }
+
     }
     }
     public class LabelData
     public class LabelData
     {
     {

+ 1 - 1
IMCS_CCS/Service/IHttpRequestService .cs

@@ -55,7 +55,7 @@ namespace IMCS.CCS.Services
         /// <summary>
         /// <summary>
         /// 质量中心送物品
         /// 质量中心送物品
         /// </summary> 
         /// </summary> 
-        Task<ResponseECSData> SendQualityCenter(RequestData<LocationData> req);
+        Task<ResponseECSData> SendQualityCenter(RequestData<WorkData> req);
 
 
         /// <summary>
         /// <summary>
         /// 柔性线机器人移动物品
         /// 柔性线机器人移动物品

+ 149 - 88
IMCS_CCS/Service/Impl/HttpRequestService.cs

@@ -628,7 +628,7 @@ namespace IMCS.CCS.Services
         /// <summary>
         /// <summary>
         /// 质量中心送物品
         /// 质量中心送物品
         /// </summary> 
         /// </summary> 
-        public async Task<ResponseECSData> SendQualityCenter(RequestData<LocationData> req)
+        public async Task<ResponseECSData> SendQualityCenter(RequestData<WorkData> req)
         {
         {
             ResponseECSData responseData = new ResponseECSData(req.taskId, req.taskNodeId);
             ResponseECSData responseData = new ResponseECSData(req.taskId, req.taskNodeId);
             try
             try
@@ -670,39 +670,101 @@ namespace IMCS.CCS.Services
                 }
                 }
 
 
                 CcsActionAddress actionAddressQuery = new CcsActionAddress();
                 CcsActionAddress actionAddressQuery = new CcsActionAddress();
-                actionAddressQuery.ActionId = actionInfo.Id;
-                List<CcsActionAddress> CcsActionAddresses = _ccsActionAddressService.GetList(actionAddressQuery);
+                List<CcsActionAddress> CcsActionAddresses = new List<CcsActionAddress>(); 
+                //保障中心 放三坐标
+                if (!string.IsNullOrEmpty(req.data.Location) && req.data.Location == "137" && 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;
+                    }
 
 
-                //查询条件
-                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))
+
+                    //根据sort顺序,查询左中右空闲位置,写入地址列表
+                    List<CcsActionAddress> CcsActionAddressThreeCoordinatesWrites = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE.ToString() && o.Sort == key).ToList();
+                    foreach (CcsActionAddress actionAddress in CcsActionAddressThreeCoordinatesWrites)
                     {
                     {
-                        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)
+                        if (!string.IsNullOrEmpty(actionAddress.Address))
                         {
                         {
-                            s7.Close();
-                            Log.Instance.WriteLogAdd(ActionTypeEnum.SendQualityCenter + "取物品异常===>>" + "条件不满足" + JsonConvert.SerializeObject(req),
-                            EnumHelper.GetDescription(ActionTypeEnum.SendQualityCenter));
-                            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)
+                    //查询写入地址列表
+                    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));
+
+                            Thread.Sleep(SLEEP_TIME);
+                        }
+                    }
+                }
+                else  //其他放 
                 {
                 {
-                    if (!string.IsNullOrEmpty(actionAddress.Address))
+                    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)
                     {
                     {
-                        string Address = ToolUtils.AddressConvertDBW(actionAddress.Address);
-                        s7.Write(Address, Convert.ToInt16(string.IsNullOrEmpty(actionAddress.Value) ? req.data.Location : actionAddress.Value)); ;
-                        Thread.Sleep(SLEEP_TIME);
+                        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)
+                            {
+                                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)
+                    {
+                        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.Close();
                 s7.Close();
 
 
                 //插入回调
                 //插入回调
@@ -1133,17 +1195,18 @@ namespace IMCS.CCS.Services
                                 return responseData;
                                 return responseData;
                             }
                             }
                         }
                         }
+                    } 
+
+                    string currentWorkStation = s7.ReadInt16("DB200.332").Content.ToString();
+                    string writeValue = "128";
+                    if (currentWorkStation == "1")//工作台1
+                    {
+                        writeValue = "128";
+                    }
+                    else if (currentWorkStation == "2")//工作台2
+                    {
+                        writeValue = "127";
                     }
                     }
-                    string currentWorkStationAddress = ToolUtils.AddressConvertDBW("DB200.332");
-                    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();
@@ -1155,7 +1218,11 @@ namespace IMCS.CCS.Services
                             {
                             {
                                 string proNo = Path.GetFileNameWithoutExtension(req.data.remotePath);
                                 string proNo = Path.GetFileNameWithoutExtension(req.data.remotePath);
                                 s7.Write(actionAddress.Address, Convert.ToInt16(proNo));
                                 s7.Write(actionAddress.Address, Convert.ToInt16(proNo));
-                            }  
+                            } else if (actionAddress.Sort == 2)
+                            {
+                                string proNo = Path.GetFileNameWithoutExtension(req.data.remotePath);
+                                s7.Write(actionAddress.Address, Convert.ToInt16(writeValue));
+                            }
                             else
                             else
                             {
                             {
                                 s7.Write(actionAddress.Address, Convert.ToInt16(actionAddress.Value));
                                 s7.Write(actionAddress.Address, Convert.ToInt16(actionAddress.Value));
@@ -1920,63 +1987,57 @@ namespace IMCS.CCS.Services
                 List<CcsActionAddress> CcsActionAddresses = _ccsActionAddressService.GetList(actionAddressQuery);
                 List<CcsActionAddress> CcsActionAddresses = _ccsActionAddressService.GetList(actionAddressQuery);
 
 
                 string stationId = req.data.stationId;
                 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;
-                }
+                //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顺序,查询左中右空闲位置,写入地址列表
                 //根据sort顺序,查询左中右空闲位置,写入地址列表
-                List<CcsActionAddress> CcsActionAddressWrites = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE.ToString() && o.Sort == key).ToList();
-                foreach (CcsActionAddress actionAddress in CcsActionAddressWrites)
-                {
-                    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();
-                /*s7.Write("DB200.46", Convert.ToInt16(req.data.beginLocation));
+                //List<CcsActionAddress> CcsActionAddressWrites = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE.ToString() && o.Sort == key).ToList();
+                //foreach (CcsActionAddress actionAddress in CcsActionAddressWrites)
+                //{
+                //    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));  
+
+                //        Thread.Sleep(SLEEP_TIME); 
+                //    }
+                //} 
                 Thread.Sleep(SLEEP_TIME);
                 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))
-                    {
-                        s7.Write(actionAddress.Address, Convert.ToInt16(string.IsNullOrEmpty(actionAddress.Value) ? req.data.Location : actionAddress.Value));  
-      
-                        Thread.Sleep(SLEEP_TIME); 
-                    }
-                } 
                 s7.ConnectClose();
                 s7.ConnectClose();
 
 
                 //插入回调
                 //插入回调