|
@@ -46,7 +46,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
|
|
|
private string ecsRootUrlContext;
|
|
|
|
|
|
- private string fanucUrlContext;
|
|
|
+ private string fanucUrlContext;
|
|
|
|
|
|
private string opcuacUrlContext;
|
|
|
|
|
@@ -75,7 +75,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
IApiRequestService apiRequestService,
|
|
|
ICcsTagValueService ccsTagValueService,
|
|
|
IEquipmentMonitorService equipmentMonitorService,
|
|
|
- IDictionaryService dictionaryService,
|
|
|
+ IDictionaryService dictionaryService,
|
|
|
ICcsActionAddressService ccsActionAddressService,
|
|
|
IConfiguration configuration)
|
|
|
{
|
|
@@ -95,7 +95,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
ecsRootUrlContext = Configuration.GetConnectionString("ecsRootUrlContext");
|
|
|
syncStatusMap.Add("离线", 0);
|
|
|
syncStatusMap.Add("空闲", 1);
|
|
|
- syncStatusMap.Add("生产中", 2);
|
|
|
+ syncStatusMap.Add("生产中", 2);
|
|
|
syncStatusMap.Add("报警", 3);
|
|
|
//在线状态默认传参后台空闲状态
|
|
|
syncStatusMap.Add("在线", 1);
|
|
@@ -109,17 +109,17 @@ namespace IMCS.CCS.Service.Impl
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
- List<Device> deviceList = new List<Device>();
|
|
|
+ List<Device> deviceList = new List<Device>();
|
|
|
var deviceListData = await _redisService.Database.StringGetAsync(device_redis_key);
|
|
|
if (deviceListData.IsNullOrEmpty)
|
|
|
{
|
|
|
- deviceList = _deviceService.GetDeviceList();
|
|
|
+ deviceList = _deviceService.GetDeviceList();
|
|
|
await _redisService.Database.StringSetAsync(device_redis_key, JsonConvert.SerializeObject(deviceList));
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
deviceList = JsonConvert.DeserializeObject<List<Device>>(deviceListData);
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
deviceList = deviceList.Where(x => x.ProtocolType.Equals(ProtocalTypeEnum.OPCUA.ToString())).ToList();
|
|
|
|
|
@@ -250,7 +250,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
else
|
|
|
{
|
|
|
deviceList = JsonConvert.DeserializeObject<List<Device>>(deviceListData);
|
|
|
- }
|
|
|
+ }
|
|
|
deviceList = deviceList.Where(x => x.ProtocolType.Equals(ProtocalTypeEnum.S7_1500.ToString())).ToList();
|
|
|
foreach (Device device in deviceList)
|
|
|
{
|
|
@@ -453,39 +453,36 @@ namespace IMCS.CCS.Service.Impl
|
|
|
list = JsonConvert.DeserializeObject<List<TaskCallback>>(taskCallbackListData);
|
|
|
}
|
|
|
|
|
|
- TaskCallback task = list.Where(x => x.OperateType.Equals(ActionTypeEnum.UploadFile.ToString())).FirstOrDefault();
|
|
|
- if (task == null)
|
|
|
- {
|
|
|
- return "无回调任务";
|
|
|
- }
|
|
|
+ list = list.Where(x => x.OperateType.Equals(ActionTypeEnum.UploadFile.ToString())).ToList();
|
|
|
string message = "";
|
|
|
try
|
|
|
{
|
|
|
-
|
|
|
- DateTime currentTime = DateTime.Now;
|
|
|
- if (currentTime.Subtract(task.CreateTime).TotalSeconds > 5)
|
|
|
+ foreach (TaskCallback task in list)
|
|
|
{
|
|
|
- CallBackRequestData requestData = new CallBackRequestData();
|
|
|
- requestData.taskId = long.Parse(task.TaskId);
|
|
|
- requestData.taskNodeId = long.Parse(task.TaskNodeId);
|
|
|
- var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
|
|
|
- ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
|
|
|
- if (result.IsSuccess && responseECSCallback.code == 0)
|
|
|
- {
|
|
|
- task.State = false;
|
|
|
- task.UpdateTime = DateTime.Now;
|
|
|
- await _taskCallbackService.CreateOrUpdateAndCache(task);
|
|
|
- message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + ",请求结果:" + result.Message + ";";
|
|
|
- Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
|
|
|
- }
|
|
|
- else
|
|
|
+ DateTime currentTime = DateTime.Now;
|
|
|
+ if (currentTime.Subtract(task.CreateTime).TotalSeconds > 5)
|
|
|
{
|
|
|
- message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
|
|
|
- Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
|
|
|
- }
|
|
|
+ CallBackRequestData requestData = new CallBackRequestData();
|
|
|
+ requestData.taskId = long.Parse(task.TaskId);
|
|
|
+ requestData.taskNodeId = long.Parse(task.TaskNodeId);
|
|
|
+ var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
|
|
|
+ ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
|
|
|
+ if (result.IsSuccess && responseECSCallback.code == 0)
|
|
|
+ {
|
|
|
+ task.State = false;
|
|
|
+ task.UpdateTime = DateTime.Now;
|
|
|
+ await _taskCallbackService.CreateOrUpdateAndCache(task);
|
|
|
+ message = task.OperateName + "==>taskId:" + task.TaskId + ",taskNodeId:" + task.TaskNodeId + ",请求结果:" + result.Message + ";";
|
|
|
+ Log.Instance.WriteLogAdd(message, LOG_TITLE_CALLBACK);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ message = message + JsonConvert.SerializeObject(task) + ",请求失败! WebApi 返回结果" + ";";
|
|
|
+ Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
|
|
|
+ }
|
|
|
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
return string.IsNullOrEmpty(message) ? "无回调任务" : message;
|
|
|
}
|
|
|
catch (Exception ex)
|
|
@@ -520,27 +517,34 @@ namespace IMCS.CCS.Service.Impl
|
|
|
|| 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.SendQualityCenter.ToString())
|
|
|
|| x.OperateType.Equals(ActionTypeEnum.GetServoStacker.ToString())
|
|
|
- || x.OperateType.Equals(ActionTypeEnum.SendServoStacker.ToString())
|
|
|
+ || x.OperateType.Equals(ActionTypeEnum.SendServoStacker.ToString())
|
|
|
|| x.OperateType.Equals(ActionTypeEnum.SendLinShift.ToString())
|
|
|
|| x.OperateType.Equals(ActionTypeEnum.SendLinShiftFine.ToString())).ToList();
|
|
|
-
|
|
|
- TaskCallback task = taskList.Where(key => deviceList.Any(device => device.Ip == key.IP)).FirstOrDefault() ;
|
|
|
- if (task == null)
|
|
|
+ List<TaskCallback> list = new List<TaskCallback>();
|
|
|
+ foreach (Device device in deviceList)
|
|
|
{
|
|
|
- return "无回调任务" ;
|
|
|
- }
|
|
|
+ foreach (TaskCallback task in taskList)
|
|
|
+ {
|
|
|
+ if (task.IP.Equals(device.Ip))
|
|
|
+ {
|
|
|
+ list.Add(task);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
string message = "";
|
|
|
try
|
|
|
- {
|
|
|
+ {
|
|
|
+ foreach (TaskCallback task in list)
|
|
|
+ {
|
|
|
DateTime currentTime = DateTime.Now;
|
|
|
CcsTagValue tagValueQuery = new CcsTagValue();
|
|
|
tagValueQuery.Ip = task.IP;
|
|
|
//tagValueQuery.Address = task.Address;
|
|
|
List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagValueQuery).ToList();
|
|
|
- CcsTagValue callBacktagValue = tagValues.Where(o => o.Address == task.Address).FirstOrDefault();
|
|
|
-
|
|
|
+ CcsTagValue callBacktagValue = tagValues.Where(o=>o.Address == task.Address).FirstOrDefault();
|
|
|
+
|
|
|
if (callBacktagValue != null && callBacktagValue.TagValue == task.CallbackValue)
|
|
|
{
|
|
|
CallBackRequestData requestData = new CallBackRequestData();
|
|
@@ -565,7 +569,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
}
|
|
|
//回调检测到失败,回调通知ecs
|
|
|
if (!string.IsNullOrEmpty(task.FailAddress) || !string.IsNullOrEmpty(task.FailAddress2) || !string.IsNullOrEmpty(task.FailAddress3))
|
|
|
- {
|
|
|
+ {
|
|
|
bool failFalg = false;
|
|
|
if (!string.IsNullOrEmpty(task.FailAddress))
|
|
|
{
|
|
@@ -594,7 +598,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
failFalg = true;
|
|
|
}
|
|
|
}
|
|
|
- if (failFalg)
|
|
|
+ if (failFalg)
|
|
|
{
|
|
|
CallBackRequestData requestData = new CallBackRequestData();
|
|
|
requestData.taskId = long.Parse(task.TaskId);
|
|
@@ -617,7 +621,8 @@ namespace IMCS.CCS.Service.Impl
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ }
|
|
|
return string.IsNullOrEmpty(message) ? "无回调任务" : message;
|
|
|
}
|
|
|
catch (Exception ex)
|
|
@@ -647,22 +652,29 @@ namespace IMCS.CCS.Service.Impl
|
|
|
List<Device> deviceList = _deviceService.GetDeviceList();
|
|
|
|
|
|
taskList = taskList.Where(x => x.OperateType.Equals(ActionTypeEnum.StartLabelMachine.ToString())).ToList();
|
|
|
- TaskCallback task = taskList.Where(key => deviceList.Any(device => device.Ip == key.IP)).FirstOrDefault();
|
|
|
- if (task == null)
|
|
|
+ List<TaskCallback> list = new List<TaskCallback>();
|
|
|
+ foreach (Device device in deviceList)
|
|
|
{
|
|
|
- return "无回调任务";
|
|
|
+ foreach (TaskCallback task in taskList)
|
|
|
+ {
|
|
|
+ if (task.IP.Equals(device.Ip))
|
|
|
+ {
|
|
|
+ list.Add(task);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
string message = "";
|
|
|
try
|
|
|
{
|
|
|
-
|
|
|
+ foreach (TaskCallback task in list)
|
|
|
+ {
|
|
|
DateTime currentTime = DateTime.Now;
|
|
|
CcsTagValue tagValueQuery = new CcsTagValue();
|
|
|
tagValueQuery.Ip = task.IP;
|
|
|
+ //tagValueQuery.Address = task.Address;
|
|
|
List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagValueQuery).ToList();
|
|
|
- CcsTagValue callBacktagValue = tagValues.Where(o => o.Address == task.Address).FirstOrDefault();
|
|
|
- CcsTagValue callBacktagValue2 = tagValues.Where(o => o.Address == task.Address2).FirstOrDefault();
|
|
|
- if (callBacktagValue != null && callBacktagValue2 != null && callBacktagValue.TagValue == task.CallbackValue && callBacktagValue2.TagValue == task.CallbackValue2)
|
|
|
+ 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);
|
|
@@ -753,7 +765,8 @@ namespace IMCS.CCS.Service.Impl
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ }
|
|
|
return string.IsNullOrEmpty(message) ? "无回调任务" : message;
|
|
|
}
|
|
|
catch (Exception ex)
|
|
@@ -782,23 +795,30 @@ namespace IMCS.CCS.Service.Impl
|
|
|
//在线设备
|
|
|
List<Device> deviceList = _deviceService.GetDeviceList();
|
|
|
|
|
|
- taskList = taskList.Where(x => x.OperateType.Equals(ActionTypeEnum.StartNCProgram.ToString())).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.StartNCProgram.ToString())).ToList();
|
|
|
+ List<TaskCallback> list = new List<TaskCallback>();
|
|
|
+ foreach (Device device in deviceList)
|
|
|
{
|
|
|
- return "无回调任务";
|
|
|
+ foreach (TaskCallback task in taskList)
|
|
|
+ {
|
|
|
+ if (task.IP.Equals(device.Ip))
|
|
|
+ {
|
|
|
+ list.Add(task);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
string message = "";
|
|
|
try
|
|
|
{
|
|
|
-
|
|
|
+ foreach (TaskCallback task in list)
|
|
|
+ {
|
|
|
DateTime currentTime = DateTime.Now;
|
|
|
CcsTagValue tagValueQuery = new CcsTagValue();
|
|
|
tagValueQuery.Ip = task.IP;
|
|
|
//tagValueQuery.Address = task.Address;
|
|
|
List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagValueQuery);
|
|
|
- CcsTagValue tagValue = tagValues.Where(o => o.Address == task.Address).FirstOrDefault();
|
|
|
-
|
|
|
+ CcsTagValue tagValue = tagValues.Where(o => o.Address == task.Address).FirstOrDefault() ;
|
|
|
+
|
|
|
if (tagValue != null && tagValue.TagValue == task.CallbackValue)
|
|
|
{
|
|
|
CallBackRequestData requestData = new CallBackRequestData();
|
|
@@ -876,7 +896,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ }
|
|
|
return string.IsNullOrEmpty(message) ? "无回调任务" : message;
|
|
|
}
|
|
|
catch (Exception ex)
|
|
@@ -905,14 +925,22 @@ namespace IMCS.CCS.Service.Impl
|
|
|
List<Device> deviceList = _deviceService.GetDeviceList();
|
|
|
|
|
|
taskList = taskList.Where(x => x.OperateType.Equals(ActionTypeEnum.StartCleanMachine.ToString())).ToList();
|
|
|
- TaskCallback task = taskList.Where(key => deviceList.Any(device => device.Ip == key.IP)).FirstOrDefault();
|
|
|
- if (task == null)
|
|
|
+ List<TaskCallback> list = new List<TaskCallback>();
|
|
|
+ foreach (Device device in deviceList)
|
|
|
{
|
|
|
- return "无回调任务";
|
|
|
+ foreach (TaskCallback task in taskList)
|
|
|
+ {
|
|
|
+ if (task.IP.Equals(device.Ip))
|
|
|
+ {
|
|
|
+ list.Add(task);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
string message = "";
|
|
|
try
|
|
|
- {
|
|
|
+ {
|
|
|
+ foreach (TaskCallback task in list)
|
|
|
+ {
|
|
|
DateTime currentTime = DateTime.Now;
|
|
|
CcsTagValue tagValueQuery = new CcsTagValue();
|
|
|
tagValueQuery.Ip = task.IP;
|
|
@@ -995,7 +1023,8 @@ namespace IMCS.CCS.Service.Impl
|
|
|
Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
+ }
|
|
|
+ }
|
|
|
return string.IsNullOrEmpty(message) ? "无回调任务" : message;
|
|
|
}
|
|
|
catch (Exception ex)
|
|
@@ -1025,19 +1054,27 @@ namespace IMCS.CCS.Service.Impl
|
|
|
List<Device> deviceList = _deviceService.GetDeviceList();
|
|
|
|
|
|
taskList = taskList.Where(x => x.OperateType.Equals(ActionTypeEnum.SendThreeCoordinates.ToString())).ToList();
|
|
|
- TaskCallback task = taskList.Where(key => deviceList.Any(device => device.Ip == key.IP)).FirstOrDefault();
|
|
|
- if (task == null)
|
|
|
+ List<TaskCallback> list = new List<TaskCallback>();
|
|
|
+ foreach (Device device in deviceList)
|
|
|
{
|
|
|
- return "无回调任务";
|
|
|
+ foreach (TaskCallback task in taskList)
|
|
|
+ {
|
|
|
+ if (task.IP.Equals(device.Ip))
|
|
|
+ {
|
|
|
+ list.Add(task);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
string message = "";
|
|
|
try
|
|
|
- {
|
|
|
+ {
|
|
|
+ foreach (TaskCallback task in list)
|
|
|
+ {
|
|
|
DateTime currentTime = DateTime.Now;
|
|
|
CcsTagValue tagValueQuery = new CcsTagValue();
|
|
|
- tagValueQuery.Ip = task.IP;
|
|
|
+ tagValueQuery.Ip = task.IP;
|
|
|
List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagValueQuery).ToList();
|
|
|
- CcsTagValue tagValue = tagValues.Where(o => o.Address == task.Address).FirstOrDefault();
|
|
|
+ CcsTagValue tagValue = tagValues.Where(o=>o.Address == task.Address).FirstOrDefault();
|
|
|
//点位放在描述里判断左中右
|
|
|
string pos = task.Description;
|
|
|
string posValue = "";
|
|
@@ -1057,9 +1094,9 @@ namespace IMCS.CCS.Service.Impl
|
|
|
posValue = EnumHelper.GetDescription(ThreeCoordinatesFinishedEnum.R);
|
|
|
key = (int)ThreeCoordinatesPosEnum.R;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
CcsTagValue tagValue2 = tagValues.Where(o => o.Address == posValue && o.TagValue != "0").FirstOrDefault();
|
|
|
- if (tagValue != null && tagValue2 != null && (tagValue.TagValue == task.CallbackValue))
|
|
|
+ if (tagValue != null && tagValue2 != null && (tagValue.TagValue == task.CallbackValue ))
|
|
|
{
|
|
|
CallBackThreeCoordinatesRequestData requestData = new CallBackThreeCoordinatesRequestData();
|
|
|
requestData.taskId = long.Parse(task.TaskId);
|
|
@@ -1098,7 +1135,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
//判断是否可取滑台
|
|
|
if (freeActionAdress != null)
|
|
|
{*/
|
|
|
- //根据sort顺序,查询左中右可取位置,写入地址列表
|
|
|
+ //根据sort顺序,查询左中右可取位置,写入地址列表
|
|
|
CcsActionAddress actionAddressGet = new CcsActionAddress();
|
|
|
actionAddressGet.Type = "CALLBACK_GET_COOR";
|
|
|
actionAddressGet.Sort = key;
|
|
@@ -1109,7 +1146,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
//根据工件id确认哪个位置已测量,赋值工位id
|
|
|
string srcWorkId = task.CallbackFailValue3; //原工件id
|
|
|
var workIdResult = s7.ReadString(EnumHelper.GetDescription(ThreeCoordinatesFinishedWrokIdEnum.L));
|
|
|
- if (workIdResult.ToString() == srcWorkId)
|
|
|
+ if(workIdResult.ToString() == srcWorkId)
|
|
|
{
|
|
|
requestData.stationId = "L";
|
|
|
}
|
|
@@ -1131,30 +1168,30 @@ namespace IMCS.CCS.Service.Impl
|
|
|
}
|
|
|
|
|
|
foreach (CcsActionAddress actionAddress in GetCcsActionAddresses)
|
|
|
- {
|
|
|
- if (!string.IsNullOrEmpty(actionAddress.Address))
|
|
|
{
|
|
|
- if (actionAddress.Value == "workId")
|
|
|
+ if (!string.IsNullOrEmpty(actionAddress.Address))
|
|
|
{
|
|
|
- var operateResult = s7.ReadString(actionAddress.Address);
|
|
|
- requestData.workId = operateResult.ToString();
|
|
|
- }
|
|
|
- else if (actionAddress.Value == "procedureNo")
|
|
|
- {
|
|
|
- var operateResult = s7.ReadString(actionAddress.Address);
|
|
|
- requestData.procedureNo = operateResult.ToString();
|
|
|
- }
|
|
|
- else if (actionAddress.Value == "workProgramName")
|
|
|
- {
|
|
|
- var operateResult = s7.ReadString(actionAddress.Address);
|
|
|
- requestData.workProgramName = operateResult.ToString();
|
|
|
+ if (actionAddress.Value == "workId")
|
|
|
+ {
|
|
|
+ var operateResult = s7.ReadString(actionAddress.Address);
|
|
|
+ requestData.workId = operateResult.ToString();
|
|
|
+ }
|
|
|
+ else if (actionAddress.Value == "procedureNo")
|
|
|
+ {
|
|
|
+ var operateResult = s7.ReadString(actionAddress.Address);
|
|
|
+ requestData.procedureNo = operateResult.ToString();
|
|
|
+ }
|
|
|
+ else if (actionAddress.Value == "workProgramName")
|
|
|
+ {
|
|
|
+ var operateResult = s7.ReadString(actionAddress.Address);
|
|
|
+ requestData.workProgramName = operateResult.ToString();
|
|
|
|
|
|
- }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
|
|
|
- // }
|
|
|
+ // }
|
|
|
s7.ConnectClose();
|
|
|
|
|
|
var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
|
|
@@ -1228,7 +1265,8 @@ namespace IMCS.CCS.Service.Impl
|
|
|
Log.Instance.WriteLogAdd("回调异常,请求接口失败" + JsonConvert.SerializeObject(result), LOG_TITLE_CALLBACK);
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
+ }
|
|
|
+ }
|
|
|
return string.IsNullOrEmpty(message) ? "无回调任务" : message;
|
|
|
}
|
|
|
catch (Exception ex)
|
|
@@ -1247,7 +1285,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
try
|
|
|
{
|
|
|
string message = "MonitorEquipmentStatusJob调度成功";
|
|
|
- List<Device> devices = new List<Device>();
|
|
|
+ List<Device> devices = new List<Device>() ;
|
|
|
string device_redis_key = "IMCS_CCS:DeviceList";
|
|
|
var deviceData = await _redisService.Database.StringGetAsync(device_redis_key);
|
|
|
if (deviceData.IsNullOrEmpty)
|
|
@@ -1285,71 +1323,71 @@ namespace IMCS.CCS.Service.Impl
|
|
|
Device device = devices.Where(x => x.Ip.Equals(equipment.IP)).FirstOrDefault();
|
|
|
if (device == null)
|
|
|
{
|
|
|
- if (equipment.Status != "离线")
|
|
|
+ if(equipment.Status != "离线")
|
|
|
{
|
|
|
equipment.Status = "离线";
|
|
|
changeEquipmentMonitors.Add(equipment);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
continue;
|
|
|
}
|
|
|
else if (equipment.Name == "机械手")
|
|
|
- {
|
|
|
- CcsTagValue ccsTagValue = tagValues.Where(x => x.Ip.Equals(equipment.IP) && x.Address.Equals(equipment.Address)).FirstOrDefault();
|
|
|
- if (ccsTagValue != null)
|
|
|
{
|
|
|
- if (ccsTagValue.TagValue == "3")
|
|
|
+ CcsTagValue ccsTagValue = tagValues.Where(x => x.Ip.Equals(equipment.IP) && x.Address.Equals(equipment.Address)).FirstOrDefault();
|
|
|
+ if (ccsTagValue != null)
|
|
|
{
|
|
|
- if (equipment.Status != "报警")
|
|
|
+ if (ccsTagValue.TagValue == "3")
|
|
|
{
|
|
|
- equipment.Status = "报警";
|
|
|
- changeEquipmentMonitors.Add(equipment);
|
|
|
+ if (equipment.Status != "报警")
|
|
|
+ {
|
|
|
+ equipment.Status = "报警";
|
|
|
+ changeEquipmentMonitors.Add(equipment);
|
|
|
+ }
|
|
|
+
|
|
|
+ continue;
|
|
|
}
|
|
|
-
|
|
|
- continue;
|
|
|
}
|
|
|
- }
|
|
|
- CcsTagValue ccsTagValue2 = tagValues.Where(x => x.Ip.Equals(equipment.IP) && x.Address.Equals(equipment.Address2)).FirstOrDefault();
|
|
|
- if (ccsTagValue2 != null)
|
|
|
- {
|
|
|
- if (ccsTagValue2.TagValue == "9")
|
|
|
+ CcsTagValue ccsTagValue2 = tagValues.Where(x => x.Ip.Equals(equipment.IP) && x.Address.Equals(equipment.Address2)).FirstOrDefault();
|
|
|
+ if (ccsTagValue2 != null)
|
|
|
{
|
|
|
- if (equipment.Status != "报警")
|
|
|
+ if (ccsTagValue2.TagValue == "9")
|
|
|
{
|
|
|
- equipment.Status = "报警";
|
|
|
- changeEquipmentMonitors.Add(equipment);
|
|
|
+ if (equipment.Status != "报警")
|
|
|
+ {
|
|
|
+ equipment.Status = "报警";
|
|
|
+ changeEquipmentMonitors.Add(equipment);
|
|
|
+ }
|
|
|
+ continue;
|
|
|
}
|
|
|
- continue;
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- if (ccsTagValue2.TagValue == "0" || ccsTagValue2.TagValue == "3" || ccsTagValue2.TagValue == "6" || ccsTagValue2.TagValue == "8")
|
|
|
- {
|
|
|
- if (equipment.Status != "空闲")
|
|
|
+ if (ccsTagValue2.TagValue == "0" || ccsTagValue2.TagValue == "3" || ccsTagValue2.TagValue == "6" || ccsTagValue2.TagValue == "8")
|
|
|
+ {
|
|
|
+ if (equipment.Status != "空闲")
|
|
|
+ {
|
|
|
+ equipment.Status = "空闲";
|
|
|
+ changeEquipmentMonitors.Add(equipment);
|
|
|
+ }
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (equipment.Status != "生产中")
|
|
|
{
|
|
|
- equipment.Status = "空闲";
|
|
|
+ equipment.Status = "生产中";
|
|
|
changeEquipmentMonitors.Add(equipment);
|
|
|
}
|
|
|
- continue;
|
|
|
- }
|
|
|
- if (equipment.Status != "生产中")
|
|
|
- {
|
|
|
- equipment.Status = "生产中";
|
|
|
- changeEquipmentMonitors.Add(equipment);
|
|
|
- }
|
|
|
}
|
|
|
else
|
|
|
- {
|
|
|
+ {
|
|
|
if (equipment.Status != "在线")
|
|
|
{
|
|
|
equipment.Status = "在线";
|
|
|
changeEquipmentMonitors.Add(equipment);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
//变化的修改 并且更新缓存
|
|
|
- if (changeEquipmentMonitors.Count > 0)
|
|
|
+ if(changeEquipmentMonitors.Count > 0)
|
|
|
{
|
|
|
List<ProductionStatus> productionStatusList = new List<ProductionStatus>();
|
|
|
foreach (EquipmentMonitor changeEquipment in changeEquipmentMonitors)
|
|
@@ -1359,11 +1397,11 @@ namespace IMCS.CCS.Service.Impl
|
|
|
productionStatus.onlineStatus = syncStatusMap[changeEquipment.Status].ToString();
|
|
|
//equipment.Status == "离线" ? "0" : "1";
|
|
|
//productionStatus.alertMsg = equipment.AlertMsg;
|
|
|
- if (productionStatus.onlineStatus != "3" && !string.IsNullOrEmpty(changeEquipment.Type))
|
|
|
+ if (productionStatus.onlineStatus !="3" && !string.IsNullOrEmpty(changeEquipment.Type))
|
|
|
{
|
|
|
- if (changeEquipment.Type == "HEIDEHAIN")
|
|
|
+ if(changeEquipment.Type == "HEIDEHAIN")
|
|
|
{
|
|
|
- RequestHeidhData hdhReq = new RequestHeidhData();
|
|
|
+ RequestHeidhData hdhReq = new RequestHeidhData();
|
|
|
Device device = devices.Where(x => x.Ip.Equals(changeEquipment.IP)).FirstOrDefault();
|
|
|
hdhReq.ServerUrl = device.ServerUrl;
|
|
|
hdhReq.MachineName = device.UserName;
|
|
@@ -1378,8 +1416,8 @@ namespace IMCS.CCS.Service.Impl
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- else if (changeEquipment.Type == "FANUC")
|
|
|
- {
|
|
|
+ else if(changeEquipment.Type == "FANUC")
|
|
|
+ {
|
|
|
Device device = devices.Where(x => x.Ip.Equals(changeEquipment.IP)).FirstOrDefault();
|
|
|
string Url = fanucUrlContext + "?ip=" + device.Ip + "&port=" + device.Port;
|
|
|
//调用发那科接口
|
|
@@ -1389,10 +1427,10 @@ namespace IMCS.CCS.Service.Impl
|
|
|
ResponseFanucData fncReq = new ResponseFanucData();
|
|
|
fncReq = JsonConvert.DeserializeObject<ResponseFanucData>(Result.Message);
|
|
|
List<AlmInfo> AlmMsg = fncReq.AlmMsg;
|
|
|
- if (AlmMsg != null && AlmMsg.Count > 0)
|
|
|
+ if (AlmMsg!=null && AlmMsg.Count>0)
|
|
|
{
|
|
|
var msgs = from o in AlmMsg select o.msg;
|
|
|
- productionStatus.alertMsg = string.Join(",", msgs.ToArray());
|
|
|
+ productionStatus.alertMsg = string.Join(",", msgs.ToArray());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1422,22 +1460,22 @@ namespace IMCS.CCS.Service.Impl
|
|
|
}
|
|
|
await _redisService.Database.StringSetAsync(redis_key, JsonConvert.SerializeObject(equipmentMonitors));
|
|
|
|
|
|
-
|
|
|
+
|
|
|
//主动推送同步状态数据接口
|
|
|
- RequestSynStatusData requestData = new RequestSynStatusData();
|
|
|
+ RequestSynStatusData requestData = new RequestSynStatusData();
|
|
|
requestData.productionStatus = JsonConvert.SerializeObject(productionStatusList);
|
|
|
- String synStatusUrl = ecsRootUrlContext + "api/authority/synStatus/synProductionStatus";
|
|
|
+ String synStatusUrl = ecsRootUrlContext + "/api/authority/synStatus/synProductionStatus";
|
|
|
var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, synStatusUrl, requestData, null);
|
|
|
//解析回调数据结果
|
|
|
ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
|
|
|
- if (responseECSCallback != null && responseECSCallback.code == 0)
|
|
|
+ if(responseECSCallback!=null && responseECSCallback.code == 0)
|
|
|
{
|
|
|
Log.Instance.WriteLogAdd("同步设备状态成功", LOG_TITLE_CALLBACK);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
Log.Instance.WriteLogAdd("同步设备状态操作失败:" + responseECSCallback.msg, LOG_TITLE_CALLBACK);
|
|
|
- }
|
|
|
+ }
|
|
|
}
|
|
|
return message;
|
|
|
}
|
|
@@ -1581,7 +1619,7 @@ 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)
|
|
|
{
|
|
@@ -1670,7 +1708,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- if (changeDevices != null)
|
|
|
+ if(changeDevices != null)
|
|
|
{
|
|
|
await _redisService.Database.StringSetAsync(redis_key, JsonConvert.SerializeObject(devices));
|
|
|
}
|
|
@@ -1683,21 +1721,6 @@ namespace IMCS.CCS.Service.Impl
|
|
|
return "设备连接异常,或以离线" + ex.Message;
|
|
|
}
|
|
|
}
|
|
|
- /// <summary>
|
|
|
- /// 删除redis
|
|
|
- /// </summary>
|
|
|
- /// <returns></returns>
|
|
|
- public void removeRedis()
|
|
|
- {
|
|
|
- List<Device> devices = _deviceService.GetDeviceAllList();
|
|
|
- string redis_key = "IMCS_CCS:";
|
|
|
- _redisService.Database.KeyDelete(device_redis_key);
|
|
|
- _redisService.Database.KeyDelete(callback_redis_key);
|
|
|
- foreach (Device device in devices)
|
|
|
- {
|
|
|
- _redisService.Database.KeyDelete(redis_key + device.Ip + ":" + device.ProtocolType);
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
/// <summary>
|
|
|
/// fanuc根据类型获取值
|
|
@@ -1717,7 +1740,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
else if (address == FanucAddressEnum.PowerOnTime.ToString())
|
|
|
{
|
|
|
value = fanucData.PowerOnTime;
|
|
|
- }
|
|
|
+ }
|
|
|
else if (address == FanucAddressEnum.ActSpindle.ToString())
|
|
|
{
|
|
|
value = fanucData.ActSpindle;
|
|
@@ -1743,6 +1766,7 @@ namespace IMCS.CCS.Service.Impl
|
|
|
dData = Convert.ToDecimal(strData);
|
|
|
}
|
|
|
return dData;
|
|
|
- }
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
}
|