|
@@ -1052,16 +1052,18 @@ namespace IMCS.CCS.Service.Impl
|
|
|
}
|
|
|
List<Device> deviceList = await getDeviceList();
|
|
|
//在线设备
|
|
|
- taskList = taskList.Where(x => x.OperateType.Equals(ActionTypeEnum.SendThreeCoordinates.ToString()) && x.State).ToList();
|
|
|
- TaskCallback task = taskList.Where(key => deviceList.Any(device => device.Ip == key.IP)).FirstOrDefault();
|
|
|
- if (task == null)
|
|
|
+ taskList = taskList.Where(x => x.OperateType.Equals(ActionTypeEnum.SendThreeCoordinates.ToString()) && x.State && deviceList.Any(device => device.Ip == x.IP)).ToList();
|
|
|
+ //taskList = taskList.Where(key => deviceList.Any(device => device.Ip == key.IP));
|
|
|
+ if (taskList == null || taskList.Count == 0)
|
|
|
{
|
|
|
return "无回调任务";
|
|
|
}
|
|
|
string message = "";
|
|
|
try
|
|
|
{
|
|
|
- DateTime currentTime = DateTime.Now;
|
|
|
+ DateTime currentTime = DateTime.Now;
|
|
|
+ foreach (TaskCallback task in taskList)
|
|
|
+ {
|
|
|
CcsTagValue tagValueQuery = new CcsTagValue();
|
|
|
tagValueQuery.Ip = task.IP;
|
|
|
List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagValueQuery).ToList();
|
|
@@ -1085,11 +1087,11 @@ namespace IMCS.CCS.Service.Impl
|
|
|
posValue = EnumHelper.GetDescription(ThreeCoordinatesFinishedEnum.R);
|
|
|
key = (int)ThreeCoordinatesPosEnum.R;
|
|
|
}
|
|
|
-
|
|
|
- CcsTagValue tagValue2 = tagValues.Where(o => o.Address == posValue ).FirstOrDefault();//测量结果
|
|
|
+
|
|
|
+ CcsTagValue tagValue2 = tagValues.Where(o => o.Address == posValue).FirstOrDefault();//测量结果
|
|
|
CcsTagValue tagValue3 = tagValues.Where(o => o.Address == "DB200.10").FirstOrDefault();//中间可取
|
|
|
string currentMiddleWorkId = ""; //初始化当前中间工件ID
|
|
|
- Log.Instance.WriteLogAdd("三坐标回调开始" + JsonConvert.SerializeObject(tagValue2) + JsonConvert.SerializeObject(tagValue3) , LOG_TITLE_CALLBACK);
|
|
|
+ Log.Instance.WriteLogAdd("三坐标回调开始" + JsonConvert.SerializeObject(tagValue2) + JsonConvert.SerializeObject(tagValue3), LOG_TITLE_CALLBACK);
|
|
|
if (tagValue != null && tagValue2 != null && tagValue3 != null && tagValue3.TagValue == "1")
|
|
|
{
|
|
|
CallBackThreeCoordinatesRequestData requestData = new CallBackThreeCoordinatesRequestData();
|
|
@@ -1104,7 +1106,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
s7.ConnectClose();
|
|
|
Log.Instance.WriteLogAdd(ActionTypeEnum.SendThreeCoordinates + "放三坐标异常===>>" + "PLC连接不上",
|
|
|
EnumHelper.GetDescription(ActionTypeEnum.SendThreeCoordinates));
|
|
|
- }
|
|
|
+ }
|
|
|
//根据sort顺序,查询左中右可取位置,写入地址列表
|
|
|
CcsActionAddress actionAddressGet = new CcsActionAddress();
|
|
|
actionAddressGet.Type = "CALLBACK_GET_COOR";
|
|
@@ -1116,42 +1118,43 @@ namespace IMCS.CCS.Service.Impl
|
|
|
//根据工件id确认哪个位置已测量,赋值工位id
|
|
|
string srcWorkId = task.CallbackFailValue3; //原工件id
|
|
|
|
|
|
- var operateResult = s7.Read("DB200.2708", 60);
|
|
|
- currentMiddleWorkId = ToolUtils.ReturnStringByBytes(operateResult.Content);
|
|
|
- if (!string.IsNullOrEmpty(currentMiddleWorkId))
|
|
|
- {
|
|
|
- currentMiddleWorkId = currentMiddleWorkId.Trim();
|
|
|
- }
|
|
|
- requestData.workId = currentMiddleWorkId;
|
|
|
-
|
|
|
- Log.Instance.WriteLogAdd("当前中间工件信息==>工件ID" + currentMiddleWorkId + ",当前任务工件ID = " + srcWorkId + ",程序名:" + requestData.workProgramName, LOG_TITLE_CALLBACK);
|
|
|
- //foreach (CcsActionAddress actionAddress in GetCcsActionAddresses)
|
|
|
- // {
|
|
|
- // if (!string.IsNullOrEmpty(actionAddress.Address))
|
|
|
- // {
|
|
|
- // if (actionAddress.Value == "workId")
|
|
|
- // {
|
|
|
- // var operateResult = s7.Read("DB200.2708", 60) ;
|
|
|
-
|
|
|
- // requestData.workId = ToolUtils.ReturnStringByBytes(operateResult.Content);
|
|
|
- // Log.Instance.WriteLogAdd("当前中间工件信息==>工件ID" + requestData.workId + ",operateResult = " + operateResult, LOG_TITLE_CALLBACK);
|
|
|
- // }
|
|
|
- // else if (actionAddress.Value == "procedureNo")
|
|
|
- // {
|
|
|
- // var operateResult = s7.Read(actionAddress.Address,40);
|
|
|
- // requestData.procedureNo = ToolUtils.ReturnStringByBytes(operateResult.Content);
|
|
|
- // }
|
|
|
- // else if (actionAddress.Value == "workProgramName")
|
|
|
- // {
|
|
|
- // var operateResult = s7.Read(actionAddress.Address,40);
|
|
|
- // requestData.workProgramName = ToolUtils.ReturnStringByBytes(operateResult.Content);
|
|
|
-
|
|
|
- // }
|
|
|
- // }
|
|
|
- // }
|
|
|
-
|
|
|
- //当中间位工件ID等于原工件ID
|
|
|
- if (srcWorkId == currentMiddleWorkId)
|
|
|
+ var operateResult = s7.Read("DB200.2708", 60);
|
|
|
+ currentMiddleWorkId = ToolUtils.ReturnStringByBytes(operateResult.Content);
|
|
|
+ if (!string.IsNullOrEmpty(currentMiddleWorkId))
|
|
|
+ {
|
|
|
+ currentMiddleWorkId = currentMiddleWorkId.Trim();
|
|
|
+ requestData.workId = currentMiddleWorkId.Trim();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ Log.Instance.WriteLogAdd("当前中间工件信息==>工件ID" + currentMiddleWorkId + ",当前任务工件ID = " + srcWorkId + ",程序名:" + requestData.workProgramName, LOG_TITLE_CALLBACK);
|
|
|
+ //foreach (CcsActionAddress actionAddress in GetCcsActionAddresses)
|
|
|
+ // {
|
|
|
+ // if (!string.IsNullOrEmpty(actionAddress.Address))
|
|
|
+ // {
|
|
|
+ // if (actionAddress.Value == "workId")
|
|
|
+ // {
|
|
|
+ // var operateResult = s7.Read("DB200.2708", 60) ;
|
|
|
+
|
|
|
+ // requestData.workId = ToolUtils.ReturnStringByBytes(operateResult.Content);
|
|
|
+ // Log.Instance.WriteLogAdd("当前中间工件信息==>工件ID" + requestData.workId + ",operateResult = " + operateResult, LOG_TITLE_CALLBACK);
|
|
|
+ // }
|
|
|
+ // else if (actionAddress.Value == "procedureNo")
|
|
|
+ // {
|
|
|
+ // var operateResult = s7.Read(actionAddress.Address,40);
|
|
|
+ // requestData.procedureNo = ToolUtils.ReturnStringByBytes(operateResult.Content);
|
|
|
+ // }
|
|
|
+ // else if (actionAddress.Value == "workProgramName")
|
|
|
+ // {
|
|
|
+ // var operateResult = s7.Read(actionAddress.Address,40);
|
|
|
+ // requestData.workProgramName = ToolUtils.ReturnStringByBytes(operateResult.Content);
|
|
|
+
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+
|
|
|
+ //当中间位工件ID等于原工件ID
|
|
|
+ if (srcWorkId == currentMiddleWorkId)
|
|
|
{
|
|
|
if (tagValue2.TagValue == "1")
|
|
|
{
|
|
@@ -1191,9 +1194,9 @@ namespace IMCS.CCS.Service.Impl
|
|
|
Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
- s7.ConnectClose();
|
|
|
+ s7.ConnectClose();
|
|
|
}
|
|
|
|
|
|
//回调检测到失败,回调通知ecs
|
|
@@ -1227,7 +1230,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
failFalg = true;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
if (failFalg)
|
|
|
{
|
|
|
CallBackRequestData requestData = new CallBackRequestData();
|
|
@@ -1252,11 +1255,13 @@ namespace IMCS.CCS.Service.Impl
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
|
|
|
+ }
|
|
|
+
|
|
|
+ Thread.Sleep(1000);
|
|
|
+ }
|
|
|
return string.IsNullOrEmpty(message) ? "无回调任务" : message;
|
|
|
+
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|