|
@@ -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;
|