|
@@ -1058,12 +1058,32 @@ namespace IMCS.CCS.Service.Impl
|
|
tagValueQuery.Ip = task.IP;
|
|
tagValueQuery.Ip = task.IP;
|
|
List<CcsTagValue> tagValues = _ccsTagValueService.GetList(tagValueQuery).ToList();
|
|
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();
|
|
- CcsTagValue tagValue2 = tagValues.Where(o => o.Address == task.Address2).FirstOrDefault();
|
|
|
|
- if (tagValue != null && tagValue2 != null && (tagValue.TagValue == task.CallbackValue && tagValue2.TagValue == task.CallbackValue2))
|
|
|
|
|
|
+ //点位放在描述里判断左中右
|
|
|
|
+ string pos = task.Description;
|
|
|
|
+ string posValue = "";
|
|
|
|
+ int key = 0;
|
|
|
|
+ if (pos == "L")
|
|
|
|
+ {
|
|
|
|
+ posValue = EnumHelper.GetDescription(ThreeCoordinatesFinishedEnum.L);
|
|
|
|
+ key = (int)ThreeCoordinatesPosEnum.L;
|
|
|
|
+ }
|
|
|
|
+ else if (pos == "M")
|
|
|
|
+ {
|
|
|
|
+ posValue = EnumHelper.GetDescription(ThreeCoordinatesFinishedEnum.M);
|
|
|
|
+ key = (int)ThreeCoordinatesPosEnum.M;
|
|
|
|
+ }
|
|
|
|
+ else if (pos == "R")
|
|
|
|
+ {
|
|
|
|
+ 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 ))
|
|
{
|
|
{
|
|
CallBackThreeCoordinatesRequestData requestData = new CallBackThreeCoordinatesRequestData();
|
|
CallBackThreeCoordinatesRequestData requestData = new CallBackThreeCoordinatesRequestData();
|
|
requestData.taskId = long.Parse(task.TaskId);
|
|
requestData.taskId = long.Parse(task.TaskId);
|
|
- requestData.taskNodeId = long.Parse(task.TaskNodeId);
|
|
|
|
|
|
+ requestData.taskNodeId = long.Parse(task.TaskNodeId);
|
|
|
|
|
|
//查询三坐标已测量工件id和工位
|
|
//查询三坐标已测量工件id和工位
|
|
SiemensS7Net s7 = DevicePlcS7.SiemensS7(task.IP);
|
|
SiemensS7Net s7 = DevicePlcS7.SiemensS7(task.IP);
|
|
@@ -1071,68 +1091,70 @@ namespace IMCS.CCS.Service.Impl
|
|
if (!ConnectionResult.IsSuccess)
|
|
if (!ConnectionResult.IsSuccess)
|
|
{
|
|
{
|
|
s7.ConnectClose();
|
|
s7.ConnectClose();
|
|
- Log.Instance.WriteLogAdd(ActionTypeEnum.SendThreeCoordinates + "放三坐标异常===>>" + "PLC连接不上" ,
|
|
|
|
|
|
+ Log.Instance.WriteLogAdd(ActionTypeEnum.SendThreeCoordinates + "放三坐标异常===>>" + "PLC连接不上",
|
|
EnumHelper.GetDescription(ActionTypeEnum.SendThreeCoordinates));
|
|
EnumHelper.GetDescription(ActionTypeEnum.SendThreeCoordinates));
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
- CcsActionAddress actionAddressQuery = new CcsActionAddress();
|
|
|
|
- actionAddressQuery.Type = "CALLBACK_CHECK_COOR";
|
|
|
|
- List<CcsActionAddress> CcsActionAddresses = _ccsActionAddressService.GetList(actionAddressQuery);
|
|
|
|
-
|
|
|
|
- CcsActionAddress freeActionAdress = new CcsActionAddress();
|
|
|
|
- //查询空闲位置
|
|
|
|
- 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))
|
|
|
|
- {
|
|
|
|
- var operateResult = s7.ReadInt16(actionAddress.Address);
|
|
|
|
- if (operateResult.ToString() == actionAddress.Value)
|
|
|
|
- {
|
|
|
|
- freeActionAdress = actionAddress;
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- //判断是否可取滑台
|
|
|
|
- if (freeActionAdress != null)
|
|
|
|
- {
|
|
|
|
- //根据sort顺序,查询左中右可取位置,写入地址列表
|
|
|
|
|
|
+ /* CcsActionAddress actionAddressQuery = new CcsActionAddress();
|
|
|
|
+ actionAddressQuery.Type = "CALLBACK_CHECK_COOR";
|
|
|
|
+ List<CcsActionAddress> CcsActionAddresses = _ccsActionAddressService.GetList(actionAddressQuery);
|
|
|
|
+
|
|
|
|
+ CcsActionAddress freeActionAdress = new CcsActionAddress();
|
|
|
|
+ //查询空闲位置
|
|
|
|
+ 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))
|
|
|
|
+ {
|
|
|
|
+ var operateResult = s7.ReadInt16(actionAddress.Address);
|
|
|
|
+ if (operateResult.ToString() == actionAddress.Value)
|
|
|
|
+ {
|
|
|
|
+ freeActionAdress = actionAddress;
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //判断是否可取滑台
|
|
|
|
+ if (freeActionAdress != null)
|
|
|
|
+ {*/
|
|
|
|
+ //根据sort顺序,查询左中右可取位置,写入地址列表
|
|
CcsActionAddress actionAddressGet = new CcsActionAddress();
|
|
CcsActionAddress actionAddressGet = new CcsActionAddress();
|
|
- actionAddressQuery.Type = "CALLBACK_GET_COOR";
|
|
|
|
- actionAddressQuery.Sort = freeActionAdress.Sort;
|
|
|
|
- List<CcsActionAddress> GetCcsActionAddresses = _ccsActionAddressService.GetList(actionAddressQuery);
|
|
|
|
|
|
+ actionAddressGet.Type = "CALLBACK_GET_COOR";
|
|
|
|
+ actionAddressGet.Sort = key;
|
|
|
|
+ List<CcsActionAddress> GetCcsActionAddresses = _ccsActionAddressService.GetList(actionAddressGet);
|
|
|
|
|
|
|
|
+ //赋值测量结果
|
|
|
|
+ requestData.result = tagValue2.TagValue;
|
|
//赋值工位id
|
|
//赋值工位id
|
|
- requestData.stationId = freeActionAdress.Address;
|
|
|
|
|
|
+ requestData.stationId = "";// freeActionAdress.Address;
|
|
foreach (CcsActionAddress actionAddress in GetCcsActionAddresses)
|
|
foreach (CcsActionAddress actionAddress in GetCcsActionAddresses)
|
|
{
|
|
{
|
|
if (!string.IsNullOrEmpty(actionAddress.Address))
|
|
if (!string.IsNullOrEmpty(actionAddress.Address))
|
|
- {
|
|
|
|
- if (actionAddress.Value == "workId")
|
|
|
|
|
|
+ {
|
|
|
|
+ if (actionAddress.Value == "workId")
|
|
{
|
|
{
|
|
var operateResult = s7.ReadString(actionAddress.Address);
|
|
var operateResult = s7.ReadString(actionAddress.Address);
|
|
requestData.workId = operateResult.ToString();
|
|
requestData.workId = operateResult.ToString();
|
|
}
|
|
}
|
|
- /* else if (actionAddress.Value == "procedureNo")
|
|
|
|
|
|
+ else if (actionAddress.Value == "procedureNo")
|
|
{
|
|
{
|
|
- s7.Write(actionAddress.Address, ToolUtils.ReturnBtyesWtitString(req.data.procedureNo, 20));
|
|
|
|
- }
|
|
|
|
|
|
+ var operateResult = s7.ReadString(actionAddress.Address);
|
|
|
|
+ requestData.procedureNo = operateResult.ToString();
|
|
|
|
+ }
|
|
else if (actionAddress.Value == "workProgramName")
|
|
else if (actionAddress.Value == "workProgramName")
|
|
{
|
|
{
|
|
- var operateResult = s7.ReadString(actionAddress.Address);
|
|
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+ var operateResult = s7.ReadString(actionAddress.Address);
|
|
|
|
+ requestData.workProgramName = operateResult.ToString();
|
|
|
|
|
|
- }*/
|
|
|
|
|
|
+ }
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
- }
|
|
|
|
- s7.ConnectClose();
|
|
|
|
|
|
+ // }
|
|
|
|
+ s7.ConnectClose();
|
|
|
|
|
|
var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
|
|
var result = await _apiRequestService.RequestAsync(RequsetModeEnum.Post, ecsUrlContext, requestData, null);
|
|
ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
|
|
ResponseECSCallbackData responseECSCallback = JsonConvert.DeserializeObject<ResponseECSCallbackData>(result.Message);
|