|
@@ -26,6 +26,8 @@ using IMCS_CCS.Service;
|
|
|
using IMCS_CCS.Entitys;
|
|
|
using static Google.Protobuf.Reflection.SourceCodeInfo.Types;
|
|
|
using Newtonsoft.Json.Linq;
|
|
|
+using static AutoMapper.Internal.ExpressionFactory;
|
|
|
+using Microsoft.EntityFrameworkCore.Internal;
|
|
|
|
|
|
namespace IMCS.CCS.Services
|
|
|
{
|
|
@@ -749,7 +751,8 @@ namespace IMCS.CCS.Services
|
|
|
{
|
|
|
// 写入源刀位号
|
|
|
parValue = req.data.LocationNo;
|
|
|
- if (req.data.LocationNo == null || req.data.LocationNo == "") {
|
|
|
+ if (req.data.LocationNo == null || req.data.LocationNo == "")
|
|
|
+ {
|
|
|
parValue = "0";
|
|
|
}
|
|
|
s7.Write(actionAddress.Address, Convert.ToByte(parValue));
|
|
@@ -764,6 +767,10 @@ namespace IMCS.CCS.Services
|
|
|
}
|
|
|
s7.Write(actionAddress.Address, Convert.ToByte(parValue));
|
|
|
}
|
|
|
+ else if (actionAddress.Sort == 5) {
|
|
|
+ parValue = req.data.rfid;
|
|
|
+ s7.Write(actionAddress.Address, Convert.ToInt16(parValue));
|
|
|
+ }
|
|
|
|
|
|
// 同步TagValue数据状态
|
|
|
CcsTagValue tagValueQuery = new CcsTagValue();
|
|
@@ -899,16 +906,21 @@ namespace IMCS.CCS.Services
|
|
|
|
|
|
int separatorIndex = req.data.LocationNo.IndexOf(".");
|
|
|
string substring = req.data.LocationNo.Substring(separatorIndex+1); // 从第7个字符开始截取5个字符
|
|
|
+ int num = int.Parse(substring);
|
|
|
+ string formatted = num.ToString("D2");
|
|
|
|
|
|
- before = "ATC00" + substring + req.data.Location.Substring(7, 3);
|
|
|
+ before = "ATC00" + formatted + req.data.Location.Substring(7, 3);
|
|
|
}
|
|
|
string theTail = "EMPTY00000";
|
|
|
if (req.data.DestLocation != null && req.data.DestLocation.Length>0) {
|
|
|
|
|
|
int separatorIndex = req.data.DestLocationNo.IndexOf(".");
|
|
|
string substring = req.data.DestLocationNo.Substring(separatorIndex+1); // 从第7个字符开始截取5个字符
|
|
|
+ int num = int.Parse(substring);
|
|
|
+ string formatted = num.ToString("D2");
|
|
|
+
|
|
|
|
|
|
- theTail = "ATC00" + substring + req.data.DestLocation.Substring(7, 3);
|
|
|
+ theTail = "ATC00" + formatted + req.data.DestLocation.Substring(7, 3);
|
|
|
}
|
|
|
parValue = before + theTail;
|
|
|
|
|
@@ -1326,7 +1338,7 @@ namespace IMCS.CCS.Services
|
|
|
List<Device> deviceList = devices.Where(x => x.Ip.Equals(req.url) && x.Port.Equals(req.port)).ToList();
|
|
|
|
|
|
if (deviceList ==null || deviceList.Count <= 0) {
|
|
|
- throw new InvalidOperationException("没查询到设备数据");
|
|
|
+ throw new InvalidOperationException("没查询到在线设备数据");
|
|
|
}
|
|
|
|
|
|
Device device = deviceList.FirstOrDefault();
|
|
@@ -2046,6 +2058,267 @@ namespace IMCS.CCS.Services
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public async Task<ResponseECSData> findRfidData(RequestData<RequestToolData> reqs)
|
|
|
+
|
|
|
+ {
|
|
|
+ Log.Instance.WriteLogAdd("查询rfid数据===>> " + JsonConvert.SerializeObject(reqs), "查询rfid数据");
|
|
|
+ // 1、根据url查询设备信息 2、调用httpserveer 发送执行消息
|
|
|
+
|
|
|
+ ResponseECSData responseData = new ResponseECSData(reqs.taskId, reqs.taskNodeId, "执行成功");
|
|
|
+ SiemensS7Net s7 = null;
|
|
|
+ try
|
|
|
+ {
|
|
|
+
|
|
|
+ // 获取所有在线的设备
|
|
|
+ List<Device> devices = _deviceService.GetDeviceList();
|
|
|
+
|
|
|
+ // 比较在线设备是否在其中
|
|
|
+ Device device = devices.Where(x => x.Ip == reqs.url && x.Port == reqs.port).FirstOrDefault();
|
|
|
+
|
|
|
+ if (device == null)
|
|
|
+ {
|
|
|
+ Log.Instance.WriteLogAdd(ActionTypeEnum.RfidRead + "设备已离线===>>" + JsonConvert.SerializeObject(reqs),
|
|
|
+ EnumHelper.GetDescription(ActionTypeEnum.RfidRead));
|
|
|
+ responseData.result = "false";
|
|
|
+ responseData.resultMsg = "设备已离线:" + reqs.url;
|
|
|
+ return responseData;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 根据ip查询设备
|
|
|
+ CcsAction actionQuery = new CcsAction();
|
|
|
+ actionQuery.OperateType = ActionTypeEnum.RfidRead.ToString();
|
|
|
+ actionQuery.Ip = reqs.url;
|
|
|
+ CcsAction actionInfo = _ccsActionService.GetList(actionQuery).FirstOrDefault();
|
|
|
+
|
|
|
+ // 进行plc的连接
|
|
|
+ s7 = DevicePlcS7.SiemensS7(actionInfo.Ip);
|
|
|
+ OperateResult ConnectionResult = s7.ConnectServer();
|
|
|
+ if (!ConnectionResult.IsSuccess)
|
|
|
+ {
|
|
|
+ s7.ConnectClose();
|
|
|
+ Log.Instance.WriteLogAdd(ActionTypeEnum.RfidRead + "异常===>>" + "PLC连接不上" + JsonConvert.SerializeObject(reqs),
|
|
|
+ EnumHelper.GetDescription(ActionTypeEnum.RfidRead));
|
|
|
+ responseData.result = "false";
|
|
|
+ responseData.resultMsg = ActionTypeEnum.RfidRead + "异常===>>" + "PLC连接不上" + JsonConvert.SerializeObject(reqs);
|
|
|
+ return responseData;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ // 查询需要操作的plc的db块
|
|
|
+ CcsActionAddress actionAddressQuery = new CcsActionAddress();
|
|
|
+ actionAddressQuery.ActionId = actionInfo.Id;
|
|
|
+ List<CcsActionAddress> CcsActionAddresses = _ccsActionAddressService.GetList(actionAddressQuery);
|
|
|
+
|
|
|
+ //查询出需要检查的地址列表
|
|
|
+ List<CcsActionAddress> CcsActionAddressChecks = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.CHECK.ToString()).ToList();
|
|
|
+ foreach (CcsActionAddress actionAddress in CcsActionAddressChecks)
|
|
|
+ {
|
|
|
+ if (!string.IsNullOrEmpty(actionAddress.Address) && !string.IsNullOrEmpty(actionAddress.Value))
|
|
|
+ {
|
|
|
+ string operateResult = s7.ReadBool(actionAddress.Address).Content.ToString();
|
|
|
+ if (actionAddress.CheckType ? operateResult != actionAddress.Value : operateResult == actionAddress.Value)
|
|
|
+ {
|
|
|
+ s7.ConnectClose();
|
|
|
+ Log.Instance.WriteLogAdd(ActionTypeEnum.CutterRobotAction + "异常===>>" + "条件不满足" + actionAddress.Address + "值应为:" + actionAddress.Value + "====实际为:" + operateResult + JsonConvert.SerializeObject(reqs),
|
|
|
+ EnumHelper.GetDescription(ActionTypeEnum.CutterRobotAction));
|
|
|
+ responseData.result = "false";
|
|
|
+ responseData.resultMsg = "异常===>>" + "条件不满足" + actionAddress.Address + "值应为:" + actionAddress.Value + "==实际为:" + operateResult;
|
|
|
+ return responseData;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 查询需要读取的地址列表
|
|
|
+ List<CcsActionAddress> CcsActionAddressReads = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.READ.ToString()).ToList();
|
|
|
+ Dictionary<string, string> map = new Dictionary<string, string>();
|
|
|
+
|
|
|
+ int i = 1;
|
|
|
+ foreach (CcsActionAddress actionAddress in CcsActionAddressReads)
|
|
|
+ {
|
|
|
+ if (string.IsNullOrEmpty(actionAddress.Address)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ string operateResult = "";
|
|
|
+ if (actionAddress.AddressType.Equals(TagValueReadTypeEnum.BOOL.ToString()))
|
|
|
+ {
|
|
|
+ operateResult = s7.ReadBool(actionAddress.Address).Content.ToString();
|
|
|
+ }
|
|
|
+ else if (actionAddress.AddressType.Equals(TagValueReadTypeEnum.SHORT.ToString()))
|
|
|
+ {
|
|
|
+ operateResult = s7.ReadInt16(actionAddress.Address).Content.ToString();
|
|
|
+ }
|
|
|
+ else if (actionAddress.AddressType.Equals(TagValueReadTypeEnum.String.ToString()))
|
|
|
+ {
|
|
|
+ operateResult = s7.ReadString(actionAddress.Address).Content.ToString();
|
|
|
+ }
|
|
|
+ else if (actionAddress.AddressType.Equals(TagValueReadTypeEnum.Byte.ToString()))
|
|
|
+ {
|
|
|
+ operateResult = s7.ReadByte(actionAddress.Address).Content.ToString();
|
|
|
+ }
|
|
|
+
|
|
|
+ map.Add("par"+1, operateResult);
|
|
|
+
|
|
|
+ }
|
|
|
+ responseData.returnData = JsonConvert.SerializeObject(map, Formatting.Indented);
|
|
|
+
|
|
|
+
|
|
|
+ //查询需要写入地址列表
|
|
|
+ List<CcsActionAddress> CcsActionAddressWrites = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE.ToString()).ToList();
|
|
|
+ foreach (CcsActionAddress actionAddress in CcsActionAddressWrites)
|
|
|
+ {
|
|
|
+ if (!string.IsNullOrEmpty(actionAddress.Address))
|
|
|
+ {
|
|
|
+ string parValue = "";
|
|
|
+ if (actionAddress.Sort == 1)
|
|
|
+ {
|
|
|
+ parValue = actionAddress.Value;
|
|
|
+ s7.Write(actionAddress.Address, Convert.ToBoolean(parValue));
|
|
|
+ }
|
|
|
+ else if (actionAddress.Sort == 2)
|
|
|
+ {
|
|
|
+ parValue = actionAddress.Value;
|
|
|
+ s7.Write(actionAddress.Address, Convert.ToBoolean(parValue));
|
|
|
+ }
|
|
|
+
|
|
|
+ // 同步TagValue数据状态
|
|
|
+ CcsTagValue tagValueQuery = new CcsTagValue();
|
|
|
+ tagValueQuery.Ip = reqs.url;
|
|
|
+ tagValueQuery.Address = actionAddress.Address;
|
|
|
+ CcsTagValue tagValue = _ccsTagValueService.GetList(tagValueQuery).ToList().FirstOrDefault();
|
|
|
+ if (tagValue != null)
|
|
|
+ {
|
|
|
+ tagValue.TagValue = parValue;
|
|
|
+ await _ccsTagValueService.Update(tagValue);
|
|
|
+ }
|
|
|
+
|
|
|
+ Thread.Sleep(SLEEP_TIME);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ s7.ConnectClose();
|
|
|
+ Log.Instance.WriteLogAdd(EnumHelper.GetDescription(ActionTypeEnum.RfidRead) + "取成功===>>" + JsonConvert.SerializeObject(reqs)
|
|
|
+ , EnumHelper.GetDescription(ActionTypeEnum.RfidRead));
|
|
|
+
|
|
|
+ return responseData;
|
|
|
+
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ s7.ConnectClose();
|
|
|
+ Log.Instance.WriteLogAdd(ActionTypeEnum.RfidRead + "设置异常===>>" + ex.Message + JsonConvert.SerializeObject(reqs),
|
|
|
+ EnumHelper.GetDescription(ActionTypeEnum.RfidRead));
|
|
|
+ responseData.resultMsg = ActionTypeEnum.RfidRead + "设置异常===>>" + ex.Message + JsonConvert.SerializeObject(reqs);
|
|
|
+ responseData.result = "false";
|
|
|
+ return responseData;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public async Task<ResponseECSData> rfidReset(RequestData<RequestToolData> reqs)
|
|
|
+ {
|
|
|
+ Log.Instance.WriteLogAdd("rfid重置===>> " + JsonConvert.SerializeObject(reqs), "查询rfid数据");
|
|
|
+ // 1、根据url查询设备信息 2、调用httpserveer 发送执行消息
|
|
|
+
|
|
|
+ ResponseECSData responseData = new ResponseECSData(reqs.taskId, reqs.taskNodeId, "执行成功");
|
|
|
+ SiemensS7Net s7 = null;
|
|
|
+ try
|
|
|
+ {
|
|
|
+
|
|
|
+ // 获取所有在线的设备
|
|
|
+ List<Device> devices = _deviceService.GetDeviceList();
|
|
|
+
|
|
|
+ // 比较在线设备是否在其中
|
|
|
+ Device device = devices.Where(x => x.Ip == reqs.url && x.Port == reqs.port).FirstOrDefault();
|
|
|
+
|
|
|
+ if (device == null)
|
|
|
+ {
|
|
|
+ Log.Instance.WriteLogAdd(ActionTypeEnum.RfidReset + "设备已离线===>>" + JsonConvert.SerializeObject(reqs),
|
|
|
+ EnumHelper.GetDescription(ActionTypeEnum.RfidReset));
|
|
|
+ responseData.result = "false";
|
|
|
+ responseData.resultMsg = "设备已离线:" + reqs.url;
|
|
|
+ return responseData;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 根据ip查询设备
|
|
|
+ CcsAction actionQuery = new CcsAction();
|
|
|
+ actionQuery.OperateType = ActionTypeEnum.RfidReset.ToString();
|
|
|
+ actionQuery.Ip = reqs.url;
|
|
|
+ CcsAction actionInfo = _ccsActionService.GetList(actionQuery).FirstOrDefault();
|
|
|
+
|
|
|
+ // 进行plc的连接
|
|
|
+ s7 = DevicePlcS7.SiemensS7(actionInfo.Ip);
|
|
|
+ OperateResult ConnectionResult = s7.ConnectServer();
|
|
|
+ if (!ConnectionResult.IsSuccess)
|
|
|
+ {
|
|
|
+ s7.ConnectClose();
|
|
|
+ Log.Instance.WriteLogAdd(ActionTypeEnum.RfidReset + "异常===>>" + "PLC连接不上" + JsonConvert.SerializeObject(reqs),
|
|
|
+ EnumHelper.GetDescription(ActionTypeEnum.RfidReset));
|
|
|
+ responseData.result = "false";
|
|
|
+ responseData.resultMsg = ActionTypeEnum.RfidReset + "异常===>>" + "PLC连接不上" + JsonConvert.SerializeObject(reqs);
|
|
|
+ return responseData;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ // 查询需要操作的plc的db块
|
|
|
+ CcsActionAddress actionAddressQuery = new CcsActionAddress();
|
|
|
+ actionAddressQuery.ActionId = actionInfo.Id;
|
|
|
+ List<CcsActionAddress> CcsActionAddresses = _ccsActionAddressService.GetList(actionAddressQuery);
|
|
|
+
|
|
|
+ //查询需要写入地址列表
|
|
|
+ List<CcsActionAddress> CcsActionAddressWrites = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE.ToString()).ToList();
|
|
|
+
|
|
|
+ foreach (CcsActionAddress actionAddress in CcsActionAddressWrites)
|
|
|
+ {
|
|
|
+ if (!string.IsNullOrEmpty(actionAddress.Address))
|
|
|
+ {
|
|
|
+ string parValue = "";
|
|
|
+ if (actionAddress.Sort == 1)
|
|
|
+ {
|
|
|
+ parValue = actionAddress.Value;
|
|
|
+ s7.Write(actionAddress.Address, Convert.ToBoolean(parValue));
|
|
|
+ }
|
|
|
+ else if (actionAddress.Sort == 2)
|
|
|
+ {
|
|
|
+ parValue = actionAddress.Value;
|
|
|
+ s7.Write(actionAddress.Address, Convert.ToBoolean(parValue));
|
|
|
+ }
|
|
|
+
|
|
|
+ // 同步TagValue数据状态
|
|
|
+ CcsTagValue tagValueQuery = new CcsTagValue();
|
|
|
+ tagValueQuery.Ip = reqs.url;
|
|
|
+ tagValueQuery.Address = actionAddress.Address;
|
|
|
+ CcsTagValue tagValue = _ccsTagValueService.GetList(tagValueQuery).ToList().FirstOrDefault();
|
|
|
+ if (tagValue != null)
|
|
|
+ {
|
|
|
+ tagValue.TagValue = parValue;
|
|
|
+ await _ccsTagValueService.Update(tagValue);
|
|
|
+ }
|
|
|
+
|
|
|
+ Thread.Sleep(SLEEP_TIME);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ s7.ConnectClose();
|
|
|
+ Log.Instance.WriteLogAdd(EnumHelper.GetDescription(ActionTypeEnum.RfidReset) + "取成功===>>" + JsonConvert.SerializeObject(reqs)
|
|
|
+ , EnumHelper.GetDescription(ActionTypeEnum.RfidReset));
|
|
|
+
|
|
|
+ return responseData;
|
|
|
+
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ s7.ConnectClose();
|
|
|
+ Log.Instance.WriteLogAdd(ActionTypeEnum.RfidReset + "设置异常===>>" + ex.Message + JsonConvert.SerializeObject(reqs),
|
|
|
+ EnumHelper.GetDescription(ActionTypeEnum.RfidReset));
|
|
|
+ responseData.resultMsg = ActionTypeEnum.RfidReset + "设置异常===>>" + ex.Message + JsonConvert.SerializeObject(reqs);
|
|
|
+ responseData.result = "false";
|
|
|
+ return responseData;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 查询刀具上下料站、机床刀具位是否允许取
|
|
|
/// </summary>
|
|
@@ -2384,8 +2657,137 @@ namespace IMCS.CCS.Services
|
|
|
return responseData;
|
|
|
}
|
|
|
|
|
|
+ public async Task<ResponseECSData> setWriteTakeCutter(RequestData<CutterTestData> req)
|
|
|
+ {
|
|
|
+ Log.Instance.WriteLogAdd("设置刀具取状态===>> " + JsonConvert.SerializeObject(req), "设置刀具取状态");
|
|
|
+ // 1、根据url查询设备信息 2、调用httpserveer 发送执行消息
|
|
|
+
|
|
|
+ ResponseECSData responseData = new ResponseECSData(req.taskId, req.taskNodeId, "设置刀具取状态");
|
|
|
+ try
|
|
|
+ {
|
|
|
+ // 获取所有在线的设备
|
|
|
+ List<Device> devices = _deviceService.GetDeviceList();
|
|
|
+
|
|
|
+ // 比较在线设备是否在其中
|
|
|
+ Device device = devices.Where(x => x.Ip == req.url && x.Port == req.port).FirstOrDefault();
|
|
|
+
|
|
|
+ if (device == null)
|
|
|
+ {
|
|
|
+ Log.Instance.WriteLogAdd("设备已离线===>>" + JsonConvert.SerializeObject(req),
|
|
|
+ "设置刀具取状态");
|
|
|
+ responseData.result = "false";
|
|
|
+ responseData.resultMsg = "设备已离线:" + req.url;
|
|
|
+ return responseData;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 调用httpserver 设置参数
|
|
|
+ if (null != device && device.ProtocolType == "HEIDEHAIN")
|
|
|
+ {
|
|
|
+ RequestHeidhData hdhReq = new RequestHeidhData();
|
|
|
+ hdhReq.ServerUrl = device.ServerUrl;
|
|
|
+ hdhReq.MachineName = device.UserName;
|
|
|
+ hdhReq.Type = "WriteTakeCutter";
|
|
|
+ hdhReq.CutterData = JsonConvert.SerializeObject(req.data);
|
|
|
+
|
|
|
+ var Result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, hdhUrlContext, hdhReq, null);
|
|
|
+ ResponseHeidhData responseHeidhData = JsonConvert.DeserializeObject<ResponseHeidhData>(Result.Message);
|
|
|
+ if (!Result.IsSuccess || !responseHeidhData.result)
|
|
|
+ {
|
|
|
+ Log.Instance.WriteLogAdd(ActionTypeEnum.WriteDeviationValue + "设置失败===>>" + JsonConvert.SerializeObject(req) + "======结果数据:" + Result, "设置刀具取状态");
|
|
|
+ responseData.result = "false";
|
|
|
+ responseData.resultMsg = Result.Message;
|
|
|
+ return responseData;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ responseData.result = "true";
|
|
|
+ responseData.resultMsg = "消费成功";
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ // 关闭连接
|
|
|
+ Log.Instance.WriteLogAdd("任务执行异常===>>" + ex.Message + JsonConvert.SerializeObject(req),
|
|
|
+ "设置刀具取状态");
|
|
|
+ responseData.result = "false";
|
|
|
+ responseData.resultMsg = ex.Message;
|
|
|
+ }
|
|
|
+ return responseData;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public async Task<ResponseECSData> sendTheBindingInfo(RequestData<BindInfo> req)
|
|
|
+ {
|
|
|
+ ResponseECSData responseData = new ResponseECSData(req.taskId, req.taskNodeId, "设置成功");
|
|
|
+
|
|
|
+ try
|
|
|
+ {
|
|
|
+ List<Device> devices = _deviceService.GetDeviceList();
|
|
|
+
|
|
|
+ Device deviceHeidenhain = devices.Where(x => x.Ip.Equals(req.url)
|
|
|
+ && x.ProtocolType.Equals(ProtocalTypeEnum.HEIDEHAIN.ToString())).FirstOrDefault();
|
|
|
+
|
|
|
+ if (deviceHeidenhain == null)
|
|
|
+ {
|
|
|
+ Log.Instance.WriteLogAdd(ActionTypeEnum.BindingInfo + "设备已离线===>>" + JsonConvert.SerializeObject(req),
|
|
|
+ EnumHelper.GetDescription(ActionTypeEnum.BindingInfo));
|
|
|
+ responseData.result = "false";
|
|
|
+ responseData.resultMsg = ActionTypeEnum.BindingInfo + "设备已离线===>>" + JsonConvert.SerializeObject(req);
|
|
|
+ return responseData;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (deviceHeidenhain != null)
|
|
|
+ {
|
|
|
|
|
|
+ RequestHeidhData hdhReq = new RequestHeidhData();
|
|
|
+ hdhReq.ServerUrl = deviceHeidenhain.ServerUrl;
|
|
|
+ hdhReq.MachineName = deviceHeidenhain.UserName;
|
|
|
+ hdhReq.Type = OpcUaActionTypeEnum.BindingInfo.ToString();
|
|
|
+ hdhReq.BindInfo = JsonConvert.SerializeObject(req.data);
|
|
|
|
|
|
+ var Result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, hdhUrlContext, hdhReq, null);
|
|
|
+ ResponseHeidhData responseHeidhData = JsonConvert.DeserializeObject<ResponseHeidhData>(Result.Message);
|
|
|
+ if (!Result.IsSuccess || !responseHeidhData.result)
|
|
|
+ {
|
|
|
+ Log.Instance.WriteLogAdd(ActionTypeEnum.BindingInfo + "绑定数据设置失败===>>" + JsonConvert.SerializeObject(req) + "======结果数据:" + Result, "设备绑定数据设置");
|
|
|
+ responseData.result = "false";
|
|
|
+ responseData.resultMsg = Result.Message;
|
|
|
+ return responseData;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ responseData.result = "true";
|
|
|
+ responseData.resultMsg = "消费成功";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ responseData.result = "false";
|
|
|
+ responseData.resultMsg = "没找到对应的类型方法";
|
|
|
|
|
|
+ return responseData;
|
|
|
+ }
|
|
|
+
|
|
|
+ //插入回调
|
|
|
+ TaskCallback taskCallbackData = new TaskCallback(req.url, ActionTypeEnum.BindingInfo.ToString(),
|
|
|
+ EnumHelper.GetDescription(ActionTypeEnum.BindingInfo), req.taskId, req.taskNodeId);
|
|
|
+ await _taskCallbackService.CreateOrUpdateAndCache(taskCallbackData);
|
|
|
+ Log.Instance.WriteLogAdd(ActionTypeEnum.BindingInfo + "设置成功===>>" + JsonConvert.SerializeObject(req),
|
|
|
+ EnumHelper.GetDescription(ActionTypeEnum.BindingInfo));
|
|
|
+ return responseData;
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ Log.Instance.WriteLogAdd(ActionTypeEnum.BindingInfo + "设置异常===>>" + ex.Message + JsonConvert.SerializeObject(req),
|
|
|
+ EnumHelper.GetDescription(ActionTypeEnum.BindingInfo));
|
|
|
+ responseData.resultMsg = ActionTypeEnum.BindingInfo + "设置异常===>>" + ex.Message + JsonConvert.SerializeObject(req);
|
|
|
+ responseData.result = "false";
|
|
|
+ return responseData;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|