|
@@ -628,7 +628,7 @@ namespace IMCS.CCS.Services
|
|
|
/// <summary>
|
|
|
/// 质量中心送物品
|
|
|
/// </summary>
|
|
|
- public async Task<ResponseECSData> SendQualityCenter(RequestData<WorkData> req)
|
|
|
+ public async Task<ResponseECSData> SendQualityCenter(RequestData<LocationData> req)
|
|
|
{
|
|
|
ResponseECSData responseData = new ResponseECSData(req.taskId, req.taskNodeId);
|
|
|
try
|
|
@@ -669,99 +669,37 @@ namespace IMCS.CCS.Services
|
|
|
return responseData;
|
|
|
}
|
|
|
|
|
|
- CcsActionAddress actionAddressQuery = new CcsActionAddress();
|
|
|
- List<CcsActionAddress> CcsActionAddresses = new List<CcsActionAddress>();
|
|
|
- //保障中心 放三坐标
|
|
|
- if (!string.IsNullOrEmpty(req.data.Location) && req.data.Location == "373" && req.url == "192.168.11.130")
|
|
|
- {
|
|
|
- //强制三坐标动作ID
|
|
|
- actionAddressQuery.ActionId = 47;
|
|
|
- CcsActionAddresses = _ccsActionAddressService.GetList(actionAddressQuery);
|
|
|
- string stationId = req.data.stationId;
|
|
|
- int key = 0;
|
|
|
- if (stationId == "L")
|
|
|
- {
|
|
|
- key = (int)ThreeCoordinatesPosEnum.L;
|
|
|
- }
|
|
|
- else if (stationId == "M")
|
|
|
- {
|
|
|
- key = (int)ThreeCoordinatesPosEnum.M;
|
|
|
- }
|
|
|
- else if (stationId == "R")
|
|
|
- {
|
|
|
- key = (int)ThreeCoordinatesPosEnum.R;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- //根据sort顺序,查询左中右空闲位置,写入地址列表
|
|
|
- List<CcsActionAddress> CcsActionAddressThreeCoordinatesWrites = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE.ToString() && o.Sort == key).ToList();
|
|
|
- foreach (CcsActionAddress actionAddress in CcsActionAddressThreeCoordinatesWrites)
|
|
|
- {
|
|
|
- if (!string.IsNullOrEmpty(actionAddress.Address))
|
|
|
- {
|
|
|
- if (actionAddress.Value == "workProgramName")
|
|
|
- {
|
|
|
- s7.Write(actionAddress.Address, ToolUtils.ReturnBtyesWtitString(req.data.workProgramName, 40));
|
|
|
- }
|
|
|
- else if (actionAddress.Value == "workId")
|
|
|
- {
|
|
|
- s7.Write(actionAddress.Address, ToolUtils.ReturnBtyesWtitString(req.data.workId, 60));
|
|
|
- }
|
|
|
- else if (actionAddress.Value == "procedureNo")
|
|
|
- {
|
|
|
- s7.Write(actionAddress.Address, ToolUtils.ReturnBtyesWtitString(req.data.procedureNo, 40));
|
|
|
- }
|
|
|
-
|
|
|
- Thread.Sleep(100);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //查询写入地址列表
|
|
|
- List<CcsActionAddress> CcsActionAddressWriteSends = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE_SEND.ToString()).OrderBy(o => o.Sort).ToList();
|
|
|
-
|
|
|
- foreach (CcsActionAddress actionAddress in CcsActionAddressWriteSends)
|
|
|
- {
|
|
|
- if (!string.IsNullOrEmpty(actionAddress.Address))
|
|
|
- {
|
|
|
- s7.Write(actionAddress.Address, Convert.ToInt16(string.IsNullOrEmpty(actionAddress.Value) ? req.data.Location : actionAddress.Value));
|
|
|
+ CcsActionAddress actionAddressQuery = new CcsActionAddress();
|
|
|
+ actionAddressQuery.ActionId = actionInfo.Id;
|
|
|
+ List<CcsActionAddress> CcsActionAddresses = _ccsActionAddressService.GetList(actionAddressQuery);
|
|
|
|
|
|
- Thread.Sleep(SLEEP_TIME);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- else //其他放
|
|
|
+ //查询条件
|
|
|
+ List<CcsActionAddress> CcsActionAddressChecks = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.CHECK.ToString()).ToList();
|
|
|
+ foreach (CcsActionAddress actionAddress in CcsActionAddressChecks)
|
|
|
{
|
|
|
- actionAddressQuery.ActionId = actionInfo.Id;
|
|
|
- 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))
|
|
|
{
|
|
|
- if (!string.IsNullOrEmpty(actionAddress.Address) && !string.IsNullOrEmpty(actionAddress.Value))
|
|
|
+ string CheckAddress = ToolUtils.AddressConvertDBW(actionAddress.Address);
|
|
|
+ var operateResult = ((ushort)s7.Read(CheckAddress)).ConvertToShort();
|
|
|
+ if (actionAddress.CheckType ? operateResult.ToString().Equals(actionAddress.Value) : operateResult.ToString() != actionAddress.Value)
|
|
|
{
|
|
|
- string CheckAddress = ToolUtils.AddressConvertDBW(actionAddress.Address);
|
|
|
- var operateResult = ((ushort)s7.Read(CheckAddress)).ConvertToShort();
|
|
|
- if (actionAddress.CheckType ? operateResult.ToString().Equals(actionAddress.Value) : operateResult.ToString() != actionAddress.Value)
|
|
|
- {
|
|
|
- s7.Close();
|
|
|
- Log.Instance.WriteLogAdd(ActionTypeEnum.SendQualityCenter + "取物品异常===>>" + "条件不满足" + JsonConvert.SerializeObject(req),
|
|
|
- EnumHelper.GetDescription(ActionTypeEnum.SendQualityCenter));
|
|
|
- responseData.result = "false";
|
|
|
- return responseData;
|
|
|
- }
|
|
|
+ s7.Close();
|
|
|
+ Log.Instance.WriteLogAdd(ActionTypeEnum.SendQualityCenter + "放物品异常===>>" + "条件不满足" + JsonConvert.SerializeObject(req),
|
|
|
+ EnumHelper.GetDescription(ActionTypeEnum.SendQualityCenter));
|
|
|
+ responseData.result = "false";
|
|
|
+ return responseData;
|
|
|
}
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- List<CcsActionAddress> CcsActionAddressWrites = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE.ToString()).ToList();
|
|
|
- foreach (CcsActionAddress actionAddress in CcsActionAddressWrites)
|
|
|
+ List<CcsActionAddress> CcsActionAddressWrites = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE.ToString()).ToList();
|
|
|
+ foreach (CcsActionAddress actionAddress in CcsActionAddressWrites)
|
|
|
+ {
|
|
|
+ if (!string.IsNullOrEmpty(actionAddress.Address))
|
|
|
{
|
|
|
- if (!string.IsNullOrEmpty(actionAddress.Address))
|
|
|
- {
|
|
|
- string Address = ToolUtils.AddressConvertDBW(actionAddress.Address);
|
|
|
- s7.Write(Address, Convert.ToInt16(string.IsNullOrEmpty(actionAddress.Value) ? req.data.Location : actionAddress.Value)); ;
|
|
|
- Thread.Sleep(SLEEP_TIME);
|
|
|
- }
|
|
|
+ string Address = ToolUtils.AddressConvertDBW(actionAddress.Address);
|
|
|
+ s7.Write(Address, Convert.ToInt16(string.IsNullOrEmpty(actionAddress.Value) ? req.data.Location : actionAddress.Value)); ;
|
|
|
+ Thread.Sleep(SLEEP_TIME);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -2174,7 +2112,7 @@ namespace IMCS.CCS.Services
|
|
|
/// <summary>
|
|
|
/// 伺服舵机放物品
|
|
|
/// </summary>
|
|
|
- public async Task<ResponseECSData> SendServoStacker(RequestData<LocationData> req)
|
|
|
+ public async Task<ResponseECSData> SendServoStacker(RequestData<WorkData> req)
|
|
|
{
|
|
|
ResponseECSData responseData = new ResponseECSData(req.taskId, req.taskNodeId);
|
|
|
try
|
|
@@ -2209,44 +2147,112 @@ namespace IMCS.CCS.Services
|
|
|
}
|
|
|
|
|
|
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)
|
|
|
+ List<CcsActionAddress> CcsActionAddresses = new List<CcsActionAddress>();
|
|
|
+ //保障中心 放三坐标
|
|
|
+ if (!string.IsNullOrEmpty(req.data.Location) && req.data.Location == "373" && req.url == "192.168.11.130")
|
|
|
{
|
|
|
- if (!string.IsNullOrEmpty(actionAddress.Address) && !string.IsNullOrEmpty(actionAddress.Value))
|
|
|
+ //强制三坐标动作ID
|
|
|
+ actionAddressQuery.ActionId = 47;
|
|
|
+ CcsActionAddresses = _ccsActionAddressService.GetList(actionAddressQuery);
|
|
|
+ string stationId = req.data.stationId;
|
|
|
+ int key = 0;
|
|
|
+ if (stationId == "L")
|
|
|
{
|
|
|
-
|
|
|
- var operateResult = s7.ReadInt16(actionAddress.Address);
|
|
|
- if (actionAddress.CheckType ? (operateResult.Content.ToString() == actionAddress.Value): operateResult.Content.ToString() != actionAddress.Value)
|
|
|
+ key = (int)ThreeCoordinatesPosEnum.L;
|
|
|
+ }
|
|
|
+ else if (stationId == "M")
|
|
|
+ {
|
|
|
+ key = (int)ThreeCoordinatesPosEnum.M;
|
|
|
+ }
|
|
|
+ else if (stationId == "R")
|
|
|
+ {
|
|
|
+ key = (int)ThreeCoordinatesPosEnum.R;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //根据sort顺序,查询左中右空闲位置,写入地址列表
|
|
|
+ List<CcsActionAddress> CcsActionAddressThreeCoordinatesWrites = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE.ToString() && o.Sort == key).ToList();
|
|
|
+ foreach (CcsActionAddress actionAddress in CcsActionAddressThreeCoordinatesWrites)
|
|
|
+ {
|
|
|
+ if (!string.IsNullOrEmpty(actionAddress.Address))
|
|
|
{
|
|
|
- s7.ConnectClose();
|
|
|
- Log.Instance.WriteLogAdd(ActionTypeEnum.SendServoStacker + "放物品异常===>>" + "条件不满足" + JsonConvert.SerializeObject(req),
|
|
|
- EnumHelper.GetDescription(ActionTypeEnum.SendServoStacker));
|
|
|
- responseData.result = "false";
|
|
|
- return responseData;
|
|
|
+ if (actionAddress.Value == "workProgramName")
|
|
|
+ {
|
|
|
+ s7.Write(actionAddress.Address, ToolUtils.ReturnBtyesWtitString(req.data.workProgramName, 40));
|
|
|
+ }
|
|
|
+ else if (actionAddress.Value == "workId")
|
|
|
+ {
|
|
|
+ s7.Write(actionAddress.Address, ToolUtils.ReturnBtyesWtitString(req.data.workId, 60));
|
|
|
+ }
|
|
|
+ else if (actionAddress.Value == "procedureNo")
|
|
|
+ {
|
|
|
+ s7.Write(actionAddress.Address, ToolUtils.ReturnBtyesWtitString(req.data.procedureNo, 40));
|
|
|
+ }
|
|
|
+
|
|
|
+ Thread.Sleep(100);
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- //查询写入地址列表
|
|
|
- List<CcsActionAddress> CcsActionAddressWrites = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE.ToString()).ToList();
|
|
|
- foreach (CcsActionAddress actionAddress in CcsActionAddressWrites)
|
|
|
- {
|
|
|
- if (!string.IsNullOrEmpty(actionAddress.Address))
|
|
|
+ //查询写入地址列表
|
|
|
+ List<CcsActionAddress> CcsActionAddressWriteSends = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE_SEND.ToString()).OrderBy(o => o.Sort).ToList();
|
|
|
+
|
|
|
+ foreach (CcsActionAddress actionAddress in CcsActionAddressWriteSends)
|
|
|
{
|
|
|
- s7.Write(actionAddress.Address, Convert.ToInt16(string.IsNullOrEmpty(actionAddress.Value) ? req.data.Location : actionAddress.Value)); ;
|
|
|
- Thread.Sleep(SLEEP_TIME);
|
|
|
+ if (!string.IsNullOrEmpty(actionAddress.Address))
|
|
|
+ {
|
|
|
+ s7.Write(actionAddress.Address, Convert.ToInt16(string.IsNullOrEmpty(actionAddress.Value) ? req.data.Location : actionAddress.Value));
|
|
|
+
|
|
|
+ Thread.Sleep(SLEEP_TIME);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ else
|
|
|
+ {
|
|
|
+ actionAddressQuery.ActionId = actionInfo.Id;
|
|
|
+ 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))
|
|
|
+ {
|
|
|
+
|
|
|
+ var operateResult = s7.ReadInt16(actionAddress.Address);
|
|
|
+ if (actionAddress.CheckType ? (operateResult.Content.ToString() == actionAddress.Value) : operateResult.Content.ToString() != actionAddress.Value)
|
|
|
+ {
|
|
|
+ s7.ConnectClose();
|
|
|
+ Log.Instance.WriteLogAdd(ActionTypeEnum.SendServoStacker + "放物品异常===>>" + "条件不满足" + JsonConvert.SerializeObject(req),
|
|
|
+ EnumHelper.GetDescription(ActionTypeEnum.SendServoStacker));
|
|
|
+ responseData.result = "false";
|
|
|
+ return responseData;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //查询写入地址列表
|
|
|
+ List<CcsActionAddress> CcsActionAddressWrites = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE.ToString()).ToList();
|
|
|
+ foreach (CcsActionAddress actionAddress in CcsActionAddressWrites)
|
|
|
+ {
|
|
|
+ if (!string.IsNullOrEmpty(actionAddress.Address))
|
|
|
+ {
|
|
|
+ s7.Write(actionAddress.Address, Convert.ToInt16(string.IsNullOrEmpty(actionAddress.Value) ? req.data.Location : actionAddress.Value)); ;
|
|
|
+ Thread.Sleep(SLEEP_TIME);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
s7.ConnectClose();
|
|
|
|
|
|
//插入回调
|
|
|
TaskCallback taskCallbackData = new TaskCallback(req.url, ActionTypeEnum.SendServoStacker.ToString(),
|
|
|
- EnumHelper.GetDescription(ActionTypeEnum.SendServoStacker), req.taskId, req.taskNodeId);
|
|
|
- await _taskCallbackService.CreateOrUpdateAndCache(setCallBackValue(CcsActionAddresses, taskCallbackData));
|
|
|
+ EnumHelper.GetDescription(ActionTypeEnum.SendServoStacker), req.taskId, req.taskNodeId);
|
|
|
+ taskCallbackData = setCallBackValue(CcsActionAddresses, taskCallbackData);
|
|
|
+ if(!string.IsNullOrEmpty(req.data.Location) && req.data.Location == "373")
|
|
|
+ {
|
|
|
+ taskCallbackData.Description = req.data.stationId;
|
|
|
+ }
|
|
|
+ await _taskCallbackService.CreateOrUpdateAndCache(taskCallbackData);
|
|
|
Log.Instance.WriteLogAdd(EnumHelper.GetDescription(ActionTypeEnum.SendServoStacker) + "放物品成功===>>" + JsonConvert.SerializeObject(req)
|
|
|
, EnumHelper.GetDescription(ActionTypeEnum.SendServoStacker));
|
|
|
return responseData;
|