Ver Fonte

代码修改

zhuhao há 2 anos atrás
pai
commit
20932396ec

+ 2 - 2
IMCS_CCS/Controllers/CcsController.cs

@@ -249,7 +249,7 @@ namespace IMCS.CCS.Controllers
         /// <returns></returns>
         [Route("api/ReadRFID")]
         [HttpPost]
-        public async Task<ActionResult<ResponseECSData>> ReadRFID(RequestData<WorkData> data)
+        public async Task<ActionResult<ResponseECSData>> ReadRFID(RequestData<RFIData> data)
         {
             return await _httpRequestService.ReadRFID(data);
         }
@@ -260,7 +260,7 @@ namespace IMCS.CCS.Controllers
         /// <returns></returns>
         [Route("api/WriteRFID")]
         [HttpPost]
-        public async Task<ActionResult<ResponseECSData>> WriteRFID(RequestData<WorkData> data)
+        public async Task<ActionResult<ResponseECSData>> WriteRFID(RequestData<RFIData> data)
         {
             return await _httpRequestService.WriteRFID(data);
         }

+ 13 - 0
IMCS_CCS/Entitys/RequestData.cs

@@ -70,6 +70,19 @@ namespace IMCS.CCS.Models
         /// </summary>
         public string stationId { get; set; }
 
+    }
+    public class RFIData
+    {
+        /// <summary>
+        /// 写入内容
+        /// </summary>
+        public string content { get; set; }
+
+        /// <summary>
+        /// 写入位置
+        /// </summary>
+        public string positionIndex { get; set; } 
+
     }
     public class RequestToolData
     {

+ 2 - 2
IMCS_CCS/Service/IHttpRequestService .cs

@@ -119,11 +119,11 @@ namespace IMCS.CCS.Services
         /// <summary>
         /// 读RFID
         /// </summary> 
-        Task<ResponseECSData> ReadRFID(RequestData<WorkData> req);
+        Task<ResponseECSData> ReadRFID(RequestData<RFIData> req);
 
         /// <summary>
         /// 写RFID
         /// </summary> 
-        Task<ResponseECSData> WriteRFID(RequestData<WorkData> req);
+        Task<ResponseECSData> WriteRFID(RequestData<RFIData> req);
     }
 }

+ 46 - 36
IMCS_CCS/Service/Impl/HttpRequestService.cs

@@ -2064,7 +2064,7 @@ namespace IMCS.CCS.Services
         /// <summary>
         /// 读RFID
         /// </summary> 
-        public async Task<ResponseECSData> ReadRFID(RequestData<WorkData> req)
+        public async Task<ResponseECSData> ReadRFID(RequestData<RFIData> req)
         {
             ResponseECSData responseData = new ResponseECSData(req.taskId, req.taskNodeId);
             try
@@ -2083,9 +2083,8 @@ namespace IMCS.CCS.Services
 
                 CcsAction actionQuery = new CcsAction();
                 actionQuery.OperateType = ActionTypeEnum.ReadRFID.ToString();
-                actionQuery.Ip = req.url; 
-                List<CcsAction> actions = _ccsActionService.GetList(actionQuery);
-                CcsAction actionInfo = actions[0]; 
+                actionQuery.Ip = req.url;
+                CcsAction actionInfo = _ccsActionService.GetList(actionQuery).FirstOrDefault(); 
 
                 Plc s7 = DevicePlcS7.S7(req.url, ProtocalTypeEnum.S7_1500.ToString());
                 if (s7.IsConnected != true)
@@ -2096,25 +2095,28 @@ namespace IMCS.CCS.Services
                     responseData.result = "false";
                     return responseData;
                 }
-
-
-              /*  string Address1 = ToolUtils.AddressConvertDBW(actionInfo.Address);
-                string[] sArray = actionInfo.Address.Split('.');
-                s7.WriteBytes(DataType.DataBlock, Convert.ToInt16(sArray[0].Substring(2)), Convert.ToInt16(sArray[1]) + 2, ToolUtils.ReturnBtyesWtitString(Content, 128));
-                Thread.Sleep(SLEEP_TIME);
-
-                short n = 1;
-                s7.Write(actionInfo.Address2, n);
-                Thread.Sleep(SLEEP_TIME);
-                n = 0;
-                s7.Write(actionInfo.Address2, n);*/
+                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)
+                {
+                    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;
+                        } 
+                    }
+                }
+                  
                 s7.Close();
-
-                //插入回调
-                TaskCallback taskCallbackData = new TaskCallback(req.url, ActionTypeEnum.ReadRFID.ToString(),
-                    EnumHelper.GetDescription(ActionTypeEnum.ReadRFID), req.taskId, req.taskNodeId); 
-
-                // await _taskCallbackService.CreateOrUpdateAndCache(taskCallbackData);
+ 
                 Log.Instance.WriteLogAdd(EnumHelper.GetDescription(ActionTypeEnum.ReadRFID) + "读取RFID故障===>>" + JsonConvert.SerializeObject(req)
                    , EnumHelper.GetDescription(ActionTypeEnum.GetServoStacker));
                 return responseData;
@@ -2131,7 +2133,7 @@ namespace IMCS.CCS.Services
         /// <summary>
         /// 写RFID
         /// </summary> 
-        public async Task<ResponseECSData> WriteRFID(RequestData<WorkData> req)
+        public async Task<ResponseECSData> WriteRFID(RequestData<RFIData> req)
         {
             ResponseECSData responseData = new ResponseECSData(req.taskId, req.taskNodeId);
             List<Device> devices = _deviceService.GetDeviceList();
@@ -2162,23 +2164,31 @@ namespace IMCS.CCS.Services
                     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)
+                {
+                    if (!string.IsNullOrEmpty(actionAddress.Address))
+                    {
 
-                /*string Address1 = ToolUtils.AddressConvertDBW(actionInfo.Address);
-                string[] sArray = actionInfo.Address.Split('.');
-                s7.WriteBytes(DataType.DataBlock, Convert.ToInt16(sArray[0].Substring(2)), Convert.ToInt16(sArray[1]) + 2, ToolUtils.ReturnBtyesWtitString(Content, 128));
-                Thread.Sleep(SLEEP_TIME);
+                        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));
+                        }
+                        else
+                        {
+                            s7.Write(actionAddress.Address, actionAddress.Value);
+                        }
+                        Thread.Sleep(SLEEP_TIME);
+                    }
+                }
 
-                short n = 1;
-                s7.Write(actionInfo.Address2, n);
-                Thread.Sleep(SLEEP_TIME);
-                n = 0;
-                s7.Write(actionInfo.Address2, n);*/
                 s7.Close();
 
-                //插入回调
-                TaskCallback taskCallbackData = new TaskCallback(req.url, ActionTypeEnum.WriteRFID.ToString(),
-                    EnumHelper.GetDescription(ActionTypeEnum.WriteRFID), req.taskId, req.taskNodeId); 
-                // await _taskCallbackService.CreateOrUpdateAndCache(taskCallbackData);
                 Log.Instance.WriteLogAdd(EnumHelper.GetDescription(ActionTypeEnum.WriteRFID) + "写RFID故障===>>" + JsonConvert.SerializeObject(req)
                    , EnumHelper.GetDescription(ActionTypeEnum.GetServoStacker));
                 return responseData;