|
|
@@ -37,10 +37,12 @@ namespace IMCS.CCS.Service.Impl
|
|
|
|
|
|
private string ecsUrlContext;
|
|
|
|
|
|
- private string fanucUrlContext;
|
|
|
+ private string fanucUrlContext;
|
|
|
|
|
|
private string opcuacUrlContext;
|
|
|
|
|
|
+ private string hdhUrlContext;
|
|
|
+
|
|
|
private string LOG_TITLE_OPCUA = "OPCUA采集";
|
|
|
|
|
|
private string LOG_TITLE_S7 = "S7采集";
|
|
|
@@ -70,6 +72,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
ecsUrlContext = Configuration.GetConnectionString("ecsUrlContext");
|
|
|
fanucUrlContext = Configuration.GetConnectionString("fanucUrlContext");
|
|
|
opcuacUrlContext = Configuration.GetConnectionString("opcuacUrlContext");
|
|
|
+ hdhUrlContext = Configuration.GetConnectionString("hdhUrlContext");
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
@@ -350,7 +353,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
ResponseFanucData fanucData = JsonConvert.DeserializeObject<ResponseFanucData>(Result.Message);
|
|
|
foreach (CcsTagValue tagValueData in tagValues)
|
|
|
{
|
|
|
- string operateResult = GetFanucValue(fanucData, tagValueData.TagValue);
|
|
|
+ string operateResult = GetFanucValue(fanucData, tagValueData.Address);
|
|
|
if (tagValueData.TagValue != operateResult)
|
|
|
{
|
|
|
tagValueData.TagValue = operateResult.ToString();
|
|
|
@@ -389,9 +392,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
{
|
|
|
List<TaskCallback> list = await _taskCallbackService.GetAllList();
|
|
|
|
|
|
- list = list.Where(x => x.OperateType.Equals(ActionTypeEnum.UploadFile.ToString())
|
|
|
- || x.OperateType.Equals(ActionTypeEnum.SendLinShift.ToString())
|
|
|
- || x.OperateType.Equals(ActionTypeEnum.SendLinShiftFine.ToString())).ToList();
|
|
|
+ list = list.Where(x => x.OperateType.Equals(ActionTypeEnum.UploadFile.ToString())).ToList();
|
|
|
string message = "";
|
|
|
try
|
|
|
{
|
|
|
@@ -430,7 +431,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// 柔性产线,伺服回调任务
|
|
|
+ /// 柔性产线,伺服等取和放回调任务
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
public async Task<string> CallbackJob2()
|
|
|
@@ -442,8 +443,14 @@ namespace IMCS.CCS.Service.Impl
|
|
|
taskList = taskList.Where(x => x.OperateType.Equals(ActionTypeEnum.GetFlexibleWire.ToString())
|
|
|
|| x.OperateType.Equals(ActionTypeEnum.SendFlexibleWire.ToString())
|
|
|
|| x.OperateType.Equals(ActionTypeEnum.MoveRobotPosition.ToString())
|
|
|
+ || x.OperateType.Equals(ActionTypeEnum.GetIntelligenceUnit.ToString())
|
|
|
+ || x.OperateType.Equals(ActionTypeEnum.SendIntelligenceUnit.ToString())
|
|
|
+ || x.OperateType.Equals(ActionTypeEnum.GetQualityCenter.ToString())
|
|
|
+ || x.OperateType.Equals(ActionTypeEnum.SendQualityCenter.ToString())
|
|
|
|| x.OperateType.Equals(ActionTypeEnum.GetServoStacker.ToString())
|
|
|
- || x.OperateType.Equals(ActionTypeEnum.SendServoStacker.ToString())).ToList();
|
|
|
+ || x.OperateType.Equals(ActionTypeEnum.SendServoStacker.ToString())
|
|
|
+ || x.OperateType.Equals(ActionTypeEnum.SendLinShift.ToString())
|
|
|
+ || x.OperateType.Equals(ActionTypeEnum.SendLinShiftFine.ToString())).ToList();
|
|
|
List<TaskCallback> list = new List<TaskCallback>();
|
|
|
foreach (Device device in deviceList)
|
|
|
{
|
|
|
@@ -463,18 +470,11 @@ namespace IMCS.CCS.Service.Impl
|
|
|
DateTime currentTime = DateTime.Now;
|
|
|
CcsTagValue tagValueQuery = new CcsTagValue();
|
|
|
tagValueQuery.Ip = task.IP;
|
|
|
- tagValueQuery.Address = task.Address;
|
|
|
- CcsTagValue tagValue = _ccsTagValueService.GetList(tagValueQuery).FirstOrDefault();
|
|
|
- if (tagValue == null)
|
|
|
-
|
|
|
- {
|
|
|
-
|
|
|
- message = message + JsonConvert.SerializeObject(task) + ",此节点没配置;";
|
|
|
- Log.Instance.WriteLogAdd("回调异常,此节点没配置" + JsonConvert.SerializeObject(task), LOG_TITLE_CALLBACK);
|
|
|
- continue;
|
|
|
-
|
|
|
- }
|
|
|
- if (tagValue.TagValue == task.CallbackValue)
|
|
|
+ //tagValueQuery.Address = task.Address;
|
|
|
+ List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagValueQuery).ToList();
|
|
|
+ CcsTagValue callBacktagValue = tagValues.Where(o=>o.Address == task.Address).FirstOrDefault();
|
|
|
+
|
|
|
+ if (callBacktagValue != null && callBacktagValue.TagValue == task.CallbackValue)
|
|
|
{
|
|
|
CallBackRequestData requestData = new CallBackRequestData();
|
|
|
requestData.taskId = long.Parse(task.TaskId);
|
|
|
@@ -495,62 +495,61 @@ namespace IMCS.CCS.Service.Impl
|
|
|
}
|
|
|
|
|
|
}
|
|
|
- else if (tagValue.TagValue == task.CallbackValue2)
|
|
|
- {
|
|
|
- CallBackRequestData requestData = new CallBackRequestData();
|
|
|
- requestData.taskId = long.Parse(task.TaskId);
|
|
|
- requestData.taskNodeId = long.Parse(task.TaskNodeId);
|
|
|
- requestData.code = "0";
|
|
|
- requestData.msg = "操作失败";
|
|
|
- var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
|
|
|
- if (result.IsSuccess)
|
|
|
+ //回调检测到失败,回调通知ecs
|
|
|
+ if (!string.IsNullOrEmpty(task.FailAddress) || !string.IsNullOrEmpty(task.FailAddress2) || !string.IsNullOrEmpty(task.FailAddress3))
|
|
|
+ {
|
|
|
+ bool failFalg = false;
|
|
|
+ if (!string.IsNullOrEmpty(task.FailAddress))
|
|
|
{
|
|
|
- task.State = false;
|
|
|
- task.UpdateTime = DateTime.Now;
|
|
|
- await _taskCallbackService.Update(task);
|
|
|
- message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + message + ",请求结果:" + result.Message + ";";
|
|
|
- Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
|
|
|
+ List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress && o.TagValue == task.CallbackFailValue).ToList();
|
|
|
+
|
|
|
+ if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
|
|
|
+ {
|
|
|
+ failFalg = true;
|
|
|
+ }
|
|
|
}
|
|
|
- else
|
|
|
+ if (!string.IsNullOrEmpty(task.FailAddress2))
|
|
|
{
|
|
|
- message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
|
|
|
- Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(task), LOG_TITLE_CALLBACK);
|
|
|
+ List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress2 && o.TagValue == task.CallbackFailValue2).ToList();
|
|
|
+
|
|
|
+ if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
|
|
|
+ {
|
|
|
+ failFalg = true;
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- else if (!string.IsNullOrEmpty(task.CallbackValue3))
|
|
|
- {
|
|
|
- CcsTagValue tagValueQuery3 = new CcsTagValue();
|
|
|
- tagValueQuery.Ip = task.IP;
|
|
|
- tagValueQuery.Address = task.Address3;
|
|
|
- List<CcsTagValue> tagValues3 = _ccsTagValueService.GetList(tagValueQuery);
|
|
|
+ if (!string.IsNullOrEmpty(task.FailAddress3))
|
|
|
+ {
|
|
|
+ List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress3 && o.TagValue == task.CallbackFailValue3).ToList();
|
|
|
|
|
|
- if (tagValues3 != null && tagValues3.Count > 0)
|
|
|
+ if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
|
|
|
+ {
|
|
|
+ failFalg = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (failFalg)
|
|
|
{
|
|
|
- CcsTagValue tagValue3 = tagValues3[0];
|
|
|
- if (tagValue3.TagValue == task.CallbackValue3)
|
|
|
+ CallBackRequestData requestData = new CallBackRequestData();
|
|
|
+ requestData.taskId = long.Parse(task.TaskId);
|
|
|
+ requestData.taskNodeId = long.Parse(task.TaskNodeId);
|
|
|
+ requestData.code = "0";
|
|
|
+ requestData.msg = "操作失败";
|
|
|
+ var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
|
|
|
+ if (result.IsSuccess)
|
|
|
{
|
|
|
- CallBackRequestData requestData = new CallBackRequestData();
|
|
|
- requestData.taskId = long.Parse(task.TaskId);
|
|
|
- requestData.taskNodeId = long.Parse(task.TaskNodeId);
|
|
|
- requestData.code = "0";
|
|
|
- requestData.msg = "操作失败";
|
|
|
- var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
|
|
|
- if (result.IsSuccess)
|
|
|
- {
|
|
|
- task.State = false;
|
|
|
- task.UpdateTime = DateTime.Now;
|
|
|
- await _taskCallbackService.Update(task);
|
|
|
- message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + message + ",请求结果:" + result.Message + ";";
|
|
|
- Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
|
|
|
- Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(task), LOG_TITLE_CALLBACK);
|
|
|
- }
|
|
|
+ task.State = false;
|
|
|
+ task.UpdateTime = DateTime.Now;
|
|
|
+ await _taskCallbackService.Update(task);
|
|
|
+ message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + message + ",请求结果:" + result.Message + ";";
|
|
|
+ Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
|
|
|
+ Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(task), LOG_TITLE_CALLBACK);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
return string.IsNullOrEmpty(message) ? "无回调任务" : message;
|
|
|
}
|
|
|
@@ -591,29 +590,10 @@ namespace IMCS.CCS.Service.Impl
|
|
|
DateTime currentTime = DateTime.Now;
|
|
|
CcsTagValue tagValueQuery = new CcsTagValue();
|
|
|
tagValueQuery.Ip = task.IP;
|
|
|
- tagValueQuery.Address = task.Address;
|
|
|
- List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagValueQuery);
|
|
|
-
|
|
|
- CcsTagValue tagValueQuery3 = new CcsTagValue();
|
|
|
- tagValueQuery3.Ip = task.IP;
|
|
|
- tagValueQuery3.Address = task.Address3;
|
|
|
- List<CcsTagValue> tagValues3 = _ccsTagValueService.GetList(tagValueQuery3);
|
|
|
- CcsTagValue tagValue = null;
|
|
|
- CcsTagValue tagValue3 = null;
|
|
|
- if (tagValues != null && tagValues.Count > 0 && tagValues3 != null && tagValues3.Count > 0)
|
|
|
- {
|
|
|
- tagValue = tagValues[0];
|
|
|
- tagValue3 = tagValues3[0];
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
-
|
|
|
- message = message + JsonConvert.SerializeObject(task) + ",此节点没配置;";
|
|
|
- Log.Instance.WriteLogAdd("回调异常,此节点没配置" + JsonConvert.SerializeObject(task), LOG_TITLE_CALLBACK);
|
|
|
- continue;
|
|
|
-
|
|
|
- }
|
|
|
- if (tagValue.TagValue == task.CallbackValue)
|
|
|
+ //tagValueQuery.Address = task.Address;
|
|
|
+ List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagValueQuery).ToList();
|
|
|
+ CcsTagValue callBacktagValue = tagValues.Where(o=>o.Address == task.Address).FirstOrDefault();
|
|
|
+ if (callBacktagValue != null && callBacktagValue.TagValue == task.CallbackValue)
|
|
|
{
|
|
|
CallBackRequestData requestData = new CallBackRequestData();
|
|
|
requestData.taskId = long.Parse(task.TaskId);
|
|
|
@@ -621,14 +601,15 @@ namespace IMCS.CCS.Service.Impl
|
|
|
var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
|
|
|
if (result.IsSuccess)
|
|
|
{
|
|
|
- if (!string.IsNullOrEmpty(task.Address3))
|
|
|
+ if (!string.IsNullOrEmpty(task.SuccessResetAddress))
|
|
|
{
|
|
|
Plc s7 = DevicePlcS7.S7(task.IP, ProtocalTypeEnum.S7_1500.ToString());
|
|
|
if (s7.IsConnected == true)
|
|
|
{
|
|
|
- string Address3 = ToolUtils.AddressConvertDBW(task.Address3);
|
|
|
- short mc = 0;
|
|
|
- s7.Write(Address3, mc);
|
|
|
+ string ResetAddress = ToolUtils.AddressConvertDBW(task.SuccessResetAddress);
|
|
|
+ //short mc = 0;
|
|
|
+ short mc = (short)int.Parse(task.SuccessResetValue);
|
|
|
+ s7.Write(ResetAddress, mc);
|
|
|
s7.Close();
|
|
|
}
|
|
|
}
|
|
|
@@ -646,26 +627,59 @@ namespace IMCS.CCS.Service.Impl
|
|
|
}
|
|
|
|
|
|
}
|
|
|
- else if (tagValue.TagValue == task.CallbackValue2)
|
|
|
+
|
|
|
+ //回调检测到失败,回调通知ecs
|
|
|
+ if (!string.IsNullOrEmpty(task.FailAddress) || !string.IsNullOrEmpty(task.FailAddress2) || !string.IsNullOrEmpty(task.FailAddress3))
|
|
|
{
|
|
|
- CallBackRequestData requestData = new CallBackRequestData();
|
|
|
- requestData.taskId = long.Parse(task.TaskId);
|
|
|
- requestData.taskNodeId = long.Parse(task.TaskNodeId);
|
|
|
- requestData.code = "0";
|
|
|
- requestData.msg = "操作失败";
|
|
|
- var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
|
|
|
- if (result.IsSuccess)
|
|
|
+ bool failFalg = false;
|
|
|
+ if (!string.IsNullOrEmpty(task.FailAddress))
|
|
|
{
|
|
|
- task.State = false;
|
|
|
- task.UpdateTime = DateTime.Now;
|
|
|
- await _taskCallbackService.Update(task);
|
|
|
- message = message + result.Message + ";";
|
|
|
- Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
|
|
|
+ List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress && o.TagValue == task.CallbackFailValue).ToList();
|
|
|
+
|
|
|
+ if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
|
|
|
+ {
|
|
|
+ failFalg = true;
|
|
|
+ }
|
|
|
}
|
|
|
- else
|
|
|
+ if (!string.IsNullOrEmpty(task.FailAddress2))
|
|
|
{
|
|
|
- message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
|
|
|
- Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(task), LOG_TITLE_CALLBACK);
|
|
|
+ List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress2 && o.TagValue == task.CallbackFailValue2).ToList();
|
|
|
+
|
|
|
+ if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
|
|
|
+ {
|
|
|
+ failFalg = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!string.IsNullOrEmpty(task.FailAddress3))
|
|
|
+ {
|
|
|
+ List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress3 && o.TagValue == task.CallbackFailValue3).ToList();
|
|
|
+
|
|
|
+ if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
|
|
|
+ {
|
|
|
+ failFalg = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (failFalg)
|
|
|
+ {
|
|
|
+ CallBackRequestData requestData = new CallBackRequestData();
|
|
|
+ requestData.taskId = long.Parse(task.TaskId);
|
|
|
+ requestData.taskNodeId = long.Parse(task.TaskNodeId);
|
|
|
+ requestData.code = "0";
|
|
|
+ requestData.msg = "操作失败";
|
|
|
+ var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
|
|
|
+ if (result.IsSuccess)
|
|
|
+ {
|
|
|
+ task.State = false;
|
|
|
+ task.UpdateTime = DateTime.Now;
|
|
|
+ await _taskCallbackService.Update(task);
|
|
|
+ message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + message + ",请求结果:" + result.Message + ";";
|
|
|
+ Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
|
|
|
+ Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(task), LOG_TITLE_CALLBACK);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -680,7 +694,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// 启动机床程序,智能单元及质量中心取放回调任务
|
|
|
+ /// 启动机床程序回调任务
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
public async Task<string> CallbackJob4()
|
|
|
@@ -689,11 +703,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
//在线设备
|
|
|
List<Device> deviceList = _deviceService.GetDeviceList();
|
|
|
|
|
|
- taskList = taskList.Where(x => x.OperateType.Equals(ActionTypeEnum.GetIntelligenceUnit.ToString())
|
|
|
- || x.OperateType.Equals(ActionTypeEnum.SendIntelligenceUnit.ToString())
|
|
|
- || x.OperateType.Equals(ActionTypeEnum.GetQualityCenter.ToString())
|
|
|
- || x.OperateType.Equals(ActionTypeEnum.SendQualityCenter.ToString())
|
|
|
- || x.OperateType.Equals(ActionTypeEnum.StartNCProgram.ToString())).ToList();
|
|
|
+ taskList = taskList.Where(x => x.OperateType.Equals(ActionTypeEnum.StartNCProgram.ToString())).ToList();
|
|
|
List<TaskCallback> list = new List<TaskCallback>();
|
|
|
foreach (Device device in deviceList)
|
|
|
{
|
|
|
@@ -713,20 +723,11 @@ namespace IMCS.CCS.Service.Impl
|
|
|
DateTime currentTime = DateTime.Now;
|
|
|
CcsTagValue tagValueQuery = new CcsTagValue();
|
|
|
tagValueQuery.Ip = task.IP;
|
|
|
- tagValueQuery.Address = task.Address;
|
|
|
+ //tagValueQuery.Address = task.Address;
|
|
|
List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagValueQuery);
|
|
|
- CcsTagValue tagValue = null;
|
|
|
- if (tagValues != null && tagValues.Count > 0)
|
|
|
- {
|
|
|
- tagValue = tagValues[0];
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- message = message + JsonConvert.SerializeObject(task) + ",此节点没配置;";
|
|
|
- Log.Instance.WriteLogAdd("回调异常,此节点没配置" + JsonConvert.SerializeObject(task), LOG_TITLE_CALLBACK);
|
|
|
- continue;
|
|
|
- }
|
|
|
- if (tagValue.TagValue == task.CallbackValue)
|
|
|
+ CcsTagValue tagValue = tagValues.Where(o => o.Address == task.Address).FirstOrDefault() ;
|
|
|
+
|
|
|
+ if (tagValue != null && tagValue.TagValue == task.CallbackValue)
|
|
|
{
|
|
|
CallBackRequestData requestData = new CallBackRequestData();
|
|
|
requestData.taskId = long.Parse(task.TaskId);
|
|
|
@@ -746,6 +747,61 @@ namespace IMCS.CCS.Service.Impl
|
|
|
Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(task), LOG_TITLE_CALLBACK);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ //回调检测到失败,回调通知ecs
|
|
|
+ if (!string.IsNullOrEmpty(task.FailAddress) || !string.IsNullOrEmpty(task.FailAddress2) || !string.IsNullOrEmpty(task.FailAddress3))
|
|
|
+ {
|
|
|
+ bool failFalg = false;
|
|
|
+ if (!string.IsNullOrEmpty(task.FailAddress))
|
|
|
+ {
|
|
|
+ List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress && o.TagValue == task.CallbackFailValue).ToList();
|
|
|
+
|
|
|
+ if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
|
|
|
+ {
|
|
|
+ failFalg = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!string.IsNullOrEmpty(task.FailAddress2))
|
|
|
+ {
|
|
|
+ List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress2 && o.TagValue == task.CallbackFailValue2).ToList();
|
|
|
+
|
|
|
+ if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
|
|
|
+ {
|
|
|
+ failFalg = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!string.IsNullOrEmpty(task.FailAddress3))
|
|
|
+ {
|
|
|
+ List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress3 && o.TagValue == task.CallbackFailValue3).ToList();
|
|
|
+
|
|
|
+ if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
|
|
|
+ {
|
|
|
+ failFalg = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (failFalg)
|
|
|
+ {
|
|
|
+ CallBackRequestData requestData = new CallBackRequestData();
|
|
|
+ requestData.taskId = long.Parse(task.TaskId);
|
|
|
+ requestData.taskNodeId = long.Parse(task.TaskNodeId);
|
|
|
+ requestData.code = "0";
|
|
|
+ requestData.msg = "操作失败";
|
|
|
+ var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
|
|
|
+ if (result.IsSuccess)
|
|
|
+ {
|
|
|
+ task.State = false;
|
|
|
+ task.UpdateTime = DateTime.Now;
|
|
|
+ await _taskCallbackService.Update(task);
|
|
|
+ message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + message + ",请求结果:" + result.Message + ";";
|
|
|
+ Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
|
|
|
+ Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(task), LOG_TITLE_CALLBACK);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
return string.IsNullOrEmpty(message) ? "无回调任务" : message;
|
|
|
}
|
|
|
@@ -785,15 +841,10 @@ namespace IMCS.CCS.Service.Impl
|
|
|
DateTime currentTime = DateTime.Now;
|
|
|
CcsTagValue tagValueQuery = new CcsTagValue();
|
|
|
tagValueQuery.Ip = task.IP;
|
|
|
- tagValueQuery.Address = task.Address;
|
|
|
- CcsTagValue tagValue = _ccsTagValueService.GetList(tagValueQuery).FirstOrDefault();
|
|
|
- if (tagValue == null)
|
|
|
- {
|
|
|
- message = message + JsonConvert.SerializeObject(task) + ",此节点没配置;";
|
|
|
- Log.Instance.WriteLogAdd("回调异常,此节点没配置" + JsonConvert.SerializeObject(task), LOG_TITLE_CALLBACK);
|
|
|
- continue;
|
|
|
- }
|
|
|
- if (tagValue.TagValue == task.CallbackValue)
|
|
|
+ //tagValueQuery.Address = task.Address;
|
|
|
+ List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagValueQuery).ToList();
|
|
|
+ CcsTagValue tagValue = tagValues.Where(o => o.Address == task.Address).FirstOrDefault();
|
|
|
+ if (tagValue != null && tagValue.TagValue == task.CallbackValue)
|
|
|
{
|
|
|
CallBackRequestData requestData = new CallBackRequestData();
|
|
|
requestData.taskId = long.Parse(task.TaskId);
|
|
|
@@ -813,6 +864,61 @@ namespace IMCS.CCS.Service.Impl
|
|
|
Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(task), LOG_TITLE_CALLBACK);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ //回调检测到失败,回调通知ecs
|
|
|
+ if (!string.IsNullOrEmpty(task.FailAddress) || !string.IsNullOrEmpty(task.FailAddress2) || !string.IsNullOrEmpty(task.FailAddress3))
|
|
|
+ {
|
|
|
+ bool failFalg = false;
|
|
|
+ if (!string.IsNullOrEmpty(task.FailAddress))
|
|
|
+ {
|
|
|
+ List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress && o.TagValue == task.CallbackFailValue).ToList();
|
|
|
+
|
|
|
+ if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
|
|
|
+ {
|
|
|
+ failFalg = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!string.IsNullOrEmpty(task.FailAddress2))
|
|
|
+ {
|
|
|
+ List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress2 && o.TagValue == task.CallbackFailValue2).ToList();
|
|
|
+
|
|
|
+ if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
|
|
|
+ {
|
|
|
+ failFalg = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!string.IsNullOrEmpty(task.FailAddress3))
|
|
|
+ {
|
|
|
+ List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress3 && o.TagValue == task.CallbackFailValue3).ToList();
|
|
|
+
|
|
|
+ if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
|
|
|
+ {
|
|
|
+ failFalg = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (failFalg)
|
|
|
+ {
|
|
|
+ CallBackRequestData requestData = new CallBackRequestData();
|
|
|
+ requestData.taskId = long.Parse(task.TaskId);
|
|
|
+ requestData.taskNodeId = long.Parse(task.TaskNodeId);
|
|
|
+ requestData.code = "0";
|
|
|
+ requestData.msg = "操作失败";
|
|
|
+ var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
|
|
|
+ if (result.IsSuccess)
|
|
|
+ {
|
|
|
+ task.State = false;
|
|
|
+ task.UpdateTime = DateTime.Now;
|
|
|
+ await _taskCallbackService.Update(task);
|
|
|
+ message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + message + ",请求结果:" + result.Message + ";";
|
|
|
+ Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
|
|
|
+ Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(task), LOG_TITLE_CALLBACK);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
return string.IsNullOrEmpty(message) ? "无回调任务" : message;
|
|
|
}
|
|
|
@@ -853,16 +959,11 @@ namespace IMCS.CCS.Service.Impl
|
|
|
DateTime currentTime = DateTime.Now;
|
|
|
CcsTagValue tagValueQuery = new CcsTagValue();
|
|
|
tagValueQuery.Ip = task.IP;
|
|
|
- tagValueQuery.Address = task.Address;
|
|
|
- CcsTagValue tagValue = _ccsTagValueService.GetList(tagValueQuery).FirstOrDefault();
|
|
|
- if (tagValue == null)
|
|
|
- {
|
|
|
-
|
|
|
- message = message + JsonConvert.SerializeObject(task) + ",此节点没配置;";
|
|
|
- Log.Instance.WriteLogAdd("回调异常,此节点没配置" + JsonConvert.SerializeObject(task), LOG_TITLE_CALLBACK);
|
|
|
- continue;
|
|
|
- }
|
|
|
- if (tagValue.TagValue == task.CallbackValue || tagValue.TagValue == task.CallbackValue2)
|
|
|
+ //tagValueQuery.Address = task.Address;
|
|
|
+ List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagValueQuery).ToList();
|
|
|
+ CcsTagValue tagValue = tagValues.Where(o=>o.Address == task.Address).FirstOrDefault();
|
|
|
+
|
|
|
+ if (tagValue != null && (tagValue.TagValue == task.CallbackValue || tagValue.TagValue == task.CallbackValue2))
|
|
|
{
|
|
|
CallBackRequestData requestData = new CallBackRequestData();
|
|
|
requestData.taskId = long.Parse(task.TaskId);
|
|
|
@@ -882,6 +983,61 @@ namespace IMCS.CCS.Service.Impl
|
|
|
Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(task), LOG_TITLE_CALLBACK);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ //回调检测到失败,回调通知ecs
|
|
|
+ if (!string.IsNullOrEmpty(task.FailAddress) || !string.IsNullOrEmpty(task.FailAddress2) || !string.IsNullOrEmpty(task.FailAddress3))
|
|
|
+ {
|
|
|
+ bool failFalg = false;
|
|
|
+ if (!string.IsNullOrEmpty(task.FailAddress))
|
|
|
+ {
|
|
|
+ List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress && o.TagValue == task.CallbackFailValue).ToList();
|
|
|
+
|
|
|
+ if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
|
|
|
+ {
|
|
|
+ failFalg = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!string.IsNullOrEmpty(task.FailAddress2))
|
|
|
+ {
|
|
|
+ List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress2 && o.TagValue == task.CallbackFailValue2).ToList();
|
|
|
+
|
|
|
+ if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
|
|
|
+ {
|
|
|
+ failFalg = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!string.IsNullOrEmpty(task.FailAddress3))
|
|
|
+ {
|
|
|
+ List<CcsTagValue> FailCallbackTagValues = tagValues.Where(o => o.Address == task.FailAddress3 && o.TagValue == task.CallbackFailValue3).ToList();
|
|
|
+
|
|
|
+ if (FailCallbackTagValues != null && FailCallbackTagValues.Count > 0)
|
|
|
+ {
|
|
|
+ failFalg = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (failFalg)
|
|
|
+ {
|
|
|
+ CallBackRequestData requestData = new CallBackRequestData();
|
|
|
+ requestData.taskId = long.Parse(task.TaskId);
|
|
|
+ requestData.taskNodeId = long.Parse(task.TaskNodeId);
|
|
|
+ requestData.code = "0";
|
|
|
+ requestData.msg = "操作失败";
|
|
|
+ var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
|
|
|
+ if (result.IsSuccess)
|
|
|
+ {
|
|
|
+ task.State = false;
|
|
|
+ task.UpdateTime = DateTime.Now;
|
|
|
+ await _taskCallbackService.Update(task);
|
|
|
+ message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + message + ",请求结果:" + result.Message + ";";
|
|
|
+ Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
|
|
|
+ Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(task), LOG_TITLE_CALLBACK);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
return string.IsNullOrEmpty(message) ? "无回调任务" : message;
|
|
|
}
|
|
|
@@ -1153,14 +1309,64 @@ namespace IMCS.CCS.Service.Impl
|
|
|
//调用发那科是否连接接口
|
|
|
var Result = await _apiRequestService.RequestAsync(RequsetModeEnum.Get, Url + "&fun=Connect", null, null);
|
|
|
|
|
|
+ if (Result.IsSuccess && Result.Message == "0")
|
|
|
+ {
|
|
|
+ Device oldDevice = await _deviceService.GetDeviceById(device.Id);
|
|
|
+ if (!oldDevice.State)
|
|
|
+ {
|
|
|
+ oldDevice.State = true;
|
|
|
+ await _deviceService.UpdateDevice(oldDevice);
|
|
|
+ changeDevices.Add(oldDevice);
|
|
|
+ }
|
|
|
+ Log.Instance.WriteLogAdd("Fanuc连接成功,ip:" + device.Ip + ",协议类型:" + device.ProtocolType, LOG_TITLE_DEVICE);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ Device oldDevice = await _deviceService.GetDeviceById(device.Id);
|
|
|
+ if (oldDevice.State)
|
|
|
+ {
|
|
|
+ oldDevice.State = false;
|
|
|
+ await _deviceService.UpdateDevice(oldDevice);
|
|
|
+ changeDevices.Add(oldDevice);
|
|
|
+ }
|
|
|
+ Log.Instance.WriteLogAdd("Fanuc连接异常,或已离线,ip:" + device.Ip + ",协议类型:" + device.ProtocolType, LOG_TITLE_OPCUA);
|
|
|
+ message = message + ",Fanuc连接异常,或以离线,ip:" + device.Ip + ",协议类型:" + device.ProtocolType; ;
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ catch (Exception opcex)
|
|
|
+ {
|
|
|
+ Device oldDevice = await _deviceService.GetDeviceById(device.Id);
|
|
|
+ if (oldDevice.State)
|
|
|
+ {
|
|
|
+ oldDevice.State = false;
|
|
|
+ await _deviceService.UpdateDevice(oldDevice);
|
|
|
+ changeDevices.Add(oldDevice);
|
|
|
+ }
|
|
|
+ Log.Instance.WriteLogAdd("Fanuc连接异常,或以离线" + opcex.Message + ",ip:" + device.Ip + ", 协议类型: " + device.ProtocolType, LOG_TITLE_DEVICE);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if (device.ProtocolType.Equals(ProtocalTypeEnum.HEIDEHAIN.ToString()))
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ RequestHeidhData hdhReq = new RequestHeidhData();
|
|
|
+ hdhReq.ServerUrl = device.ServerUrl;
|
|
|
+ hdhReq.MachineName = device.UserName;
|
|
|
+ hdhReq.Type = OpcUaActionTypeEnum.Connect.ToString();
|
|
|
+ var Result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, hdhUrlContext, hdhReq, null);
|
|
|
+ ResponseOpcUaData responseOpcUaData = JsonConvert.DeserializeObject<ResponseOpcUaData>(Result.Message);
|
|
|
+
|
|
|
if (!Result.IsSuccess || Result.Message != "0")
|
|
|
{
|
|
|
Device oldDevice = await _deviceService.GetDeviceById(device.Id);
|
|
|
if (oldDevice.State)
|
|
|
{
|
|
|
- device.State = false;
|
|
|
- await _deviceService.UpdateDevice(device);
|
|
|
- changeDevices.Add(device);
|
|
|
+ oldDevice.State = false;
|
|
|
+ await _deviceService.UpdateDevice(oldDevice);
|
|
|
+ changeDevices.Add(oldDevice);
|
|
|
}
|
|
|
Log.Instance.WriteLogAdd("Fanuc连接异常,或已离线,ip:" + device.Ip + ",协议类型:" + device.ProtocolType, LOG_TITLE_OPCUA);
|
|
|
message = message + ",Fanuc连接异常,或以离线,ip:" + device.Ip + ",协议类型:" + device.ProtocolType; ;
|
|
|
@@ -1171,9 +1377,9 @@ namespace IMCS.CCS.Service.Impl
|
|
|
Device oldDevice = await _deviceService.GetDeviceById(device.Id);
|
|
|
if (!oldDevice.State)
|
|
|
{
|
|
|
- device.State = true;
|
|
|
- await _deviceService.UpdateDevice(device);
|
|
|
- changeDevices.Add(device);
|
|
|
+ oldDevice.State = true;
|
|
|
+ await _deviceService.UpdateDevice(oldDevice);
|
|
|
+ changeDevices.Add(oldDevice);
|
|
|
}
|
|
|
Log.Instance.WriteLogAdd("Fanuc连接成功,ip:" + device.Ip + ",协议类型:" + device.ProtocolType, LOG_TITLE_DEVICE);
|
|
|
continue;
|
|
|
@@ -1184,9 +1390,9 @@ namespace IMCS.CCS.Service.Impl
|
|
|
Device oldDevice = await _deviceService.GetDeviceById(device.Id);
|
|
|
if (oldDevice.State)
|
|
|
{
|
|
|
- device.State = false;
|
|
|
- await _deviceService.UpdateDevice(device);
|
|
|
- changeDevices.Add(device);
|
|
|
+ oldDevice.State = false;
|
|
|
+ await _deviceService.UpdateDevice(oldDevice);
|
|
|
+ changeDevices.Add(oldDevice);
|
|
|
}
|
|
|
Log.Instance.WriteLogAdd("Fanuc连接异常,或以离线" + opcex.Message + ",ip:" + device.Ip + ", 协议类型: " + device.ProtocolType, LOG_TITLE_DEVICE);
|
|
|
continue;
|
|
|
@@ -1211,20 +1417,24 @@ namespace IMCS.CCS.Service.Impl
|
|
|
/// fanuc根据类型获取值
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
- private string GetFanucValue(ResponseFanucData fanucData, string tagValue)
|
|
|
+ private string GetFanucValue(ResponseFanucData fanucData, string address)
|
|
|
{
|
|
|
string value = "";
|
|
|
- if (tagValue.Equals(FanucAddressEnum.MainProg.ToString()))
|
|
|
+ if (address == FanucAddressEnum.MainProg.ToString())
|
|
|
{
|
|
|
value = fanucData.MainProg;
|
|
|
}
|
|
|
- else if (tagValue.Equals(FanucAddressEnum.Status.ToString()))
|
|
|
+ else if (address == FanucAddressEnum.Status.ToString())
|
|
|
{
|
|
|
value = fanucData.Status;
|
|
|
}
|
|
|
- else if (tagValue.Equals(FanucAddressEnum.PowerOnTime.ToString()))
|
|
|
+ else if (address == FanucAddressEnum.PowerOnTime.ToString())
|
|
|
{
|
|
|
value = fanucData.PowerOnTime;
|
|
|
+ }
|
|
|
+ else if (address == FanucAddressEnum.ActSpindle.ToString())
|
|
|
+ {
|
|
|
+ value = fanucData.ActSpindle;
|
|
|
}
|
|
|
return value;
|
|
|
|