|
@@ -628,7 +628,7 @@ namespace IMCS.CCS.Services
|
|
/// <summary>
|
|
/// <summary>
|
|
/// 质量中心送物品
|
|
/// 质量中心送物品
|
|
/// </summary>
|
|
/// </summary>
|
|
- public async Task<ResponseECSData> SendQualityCenter(RequestData<LocationData> req)
|
|
|
|
|
|
+ public async Task<ResponseECSData> SendQualityCenter(RequestData<WorkData> req)
|
|
{
|
|
{
|
|
ResponseECSData responseData = new ResponseECSData(req.taskId, req.taskNodeId);
|
|
ResponseECSData responseData = new ResponseECSData(req.taskId, req.taskNodeId);
|
|
try
|
|
try
|
|
@@ -670,39 +670,101 @@ namespace IMCS.CCS.Services
|
|
}
|
|
}
|
|
|
|
|
|
CcsActionAddress actionAddressQuery = new CcsActionAddress();
|
|
CcsActionAddress actionAddressQuery = new CcsActionAddress();
|
|
- actionAddressQuery.ActionId = actionInfo.Id;
|
|
|
|
- List<CcsActionAddress> CcsActionAddresses = _ccsActionAddressService.GetList(actionAddressQuery);
|
|
|
|
|
|
+ List<CcsActionAddress> CcsActionAddresses = new List<CcsActionAddress>();
|
|
|
|
+ //保障中心 放三坐标
|
|
|
|
+ if (!string.IsNullOrEmpty(req.data.Location) && req.data.Location == "137" && 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;
|
|
|
|
+ }
|
|
|
|
|
|
- //查询条件
|
|
|
|
- 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))
|
|
|
|
|
|
+
|
|
|
|
+ //根据sort顺序,查询左中右空闲位置,写入地址列表
|
|
|
|
+ List<CcsActionAddress> CcsActionAddressThreeCoordinatesWrites = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE.ToString() && o.Sort == key).ToList();
|
|
|
|
+ foreach (CcsActionAddress actionAddress in CcsActionAddressThreeCoordinatesWrites)
|
|
{
|
|
{
|
|
- 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)
|
|
|
|
|
|
+ if (!string.IsNullOrEmpty(actionAddress.Address))
|
|
{
|
|
{
|
|
- s7.Close();
|
|
|
|
- Log.Instance.WriteLogAdd(ActionTypeEnum.SendQualityCenter + "取物品异常===>>" + "条件不满足" + JsonConvert.SerializeObject(req),
|
|
|
|
- EnumHelper.GetDescription(ActionTypeEnum.SendQualityCenter));
|
|
|
|
- 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)
|
|
|
|
|
|
+ //查询写入地址列表
|
|
|
|
+ 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));
|
|
|
|
+
|
|
|
|
+ Thread.Sleep(SLEEP_TIME);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else //其他放
|
|
{
|
|
{
|
|
- if (!string.IsNullOrEmpty(actionAddress.Address))
|
|
|
|
|
|
+ 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)
|
|
{
|
|
{
|
|
- string Address = ToolUtils.AddressConvertDBW(actionAddress.Address);
|
|
|
|
- s7.Write(Address, Convert.ToInt16(string.IsNullOrEmpty(actionAddress.Value) ? req.data.Location : actionAddress.Value)); ;
|
|
|
|
- Thread.Sleep(SLEEP_TIME);
|
|
|
|
|
|
+ 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)
|
|
|
|
+ {
|
|
|
|
+ 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)
|
|
|
|
+ {
|
|
|
|
+ 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);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
s7.Close();
|
|
s7.Close();
|
|
|
|
|
|
//插入回调
|
|
//插入回调
|
|
@@ -1133,17 +1195,18 @@ namespace IMCS.CCS.Services
|
|
return responseData;
|
|
return responseData;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ string currentWorkStation = s7.ReadInt16("DB200.332").Content.ToString();
|
|
|
|
+ string writeValue = "128";
|
|
|
|
+ if (currentWorkStation == "1")//工作台1
|
|
|
|
+ {
|
|
|
|
+ writeValue = "128";
|
|
|
|
+ }
|
|
|
|
+ else if (currentWorkStation == "2")//工作台2
|
|
|
|
+ {
|
|
|
|
+ writeValue = "127";
|
|
}
|
|
}
|
|
- string currentWorkStationAddress = ToolUtils.AddressConvertDBW("DB200.332");
|
|
|
|
- var currentWorkStation = s7.ReadInt16(currentWorkStationAddress).Content.ToString();
|
|
|
|
- //string writeValue = "127";
|
|
|
|
- //if(currentWorkStation == "1")//工作台1
|
|
|
|
- //{
|
|
|
|
- // writeValue = "127";
|
|
|
|
- //}else if (currentWorkStation == "2")//工作台2
|
|
|
|
- //{
|
|
|
|
- // writeValue = "128";
|
|
|
|
- //}
|
|
|
|
|
|
|
|
//查询写入地址列表
|
|
//查询写入地址列表
|
|
List<CcsActionAddress> CcsActionAddressWrites = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE.ToString()).ToList();
|
|
List<CcsActionAddress> CcsActionAddressWrites = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE.ToString()).ToList();
|
|
@@ -1155,7 +1218,11 @@ namespace IMCS.CCS.Services
|
|
{
|
|
{
|
|
string proNo = Path.GetFileNameWithoutExtension(req.data.remotePath);
|
|
string proNo = Path.GetFileNameWithoutExtension(req.data.remotePath);
|
|
s7.Write(actionAddress.Address, Convert.ToInt16(proNo));
|
|
s7.Write(actionAddress.Address, Convert.ToInt16(proNo));
|
|
- }
|
|
|
|
|
|
+ } else if (actionAddress.Sort == 2)
|
|
|
|
+ {
|
|
|
|
+ string proNo = Path.GetFileNameWithoutExtension(req.data.remotePath);
|
|
|
|
+ s7.Write(actionAddress.Address, Convert.ToInt16(writeValue));
|
|
|
|
+ }
|
|
else
|
|
else
|
|
{
|
|
{
|
|
s7.Write(actionAddress.Address, Convert.ToInt16(actionAddress.Value));
|
|
s7.Write(actionAddress.Address, Convert.ToInt16(actionAddress.Value));
|
|
@@ -1920,63 +1987,57 @@ namespace IMCS.CCS.Services
|
|
List<CcsActionAddress> CcsActionAddresses = _ccsActionAddressService.GetList(actionAddressQuery);
|
|
List<CcsActionAddress> CcsActionAddresses = _ccsActionAddressService.GetList(actionAddressQuery);
|
|
|
|
|
|
string stationId = req.data.stationId;
|
|
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;
|
|
|
|
- }
|
|
|
|
|
|
+ //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顺序,查询左中右空闲位置,写入地址列表
|
|
//根据sort顺序,查询左中右空闲位置,写入地址列表
|
|
- List<CcsActionAddress> CcsActionAddressWrites = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE.ToString() && o.Sort == key).ToList();
|
|
|
|
- foreach (CcsActionAddress actionAddress in CcsActionAddressWrites)
|
|
|
|
- {
|
|
|
|
- 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();
|
|
|
|
- /*s7.Write("DB200.46", Convert.ToInt16(req.data.beginLocation));
|
|
|
|
|
|
+ //List<CcsActionAddress> CcsActionAddressWrites = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE.ToString() && o.Sort == key).ToList();
|
|
|
|
+ //foreach (CcsActionAddress actionAddress in CcsActionAddressWrites)
|
|
|
|
+ //{
|
|
|
|
+ // 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));
|
|
|
|
+
|
|
|
|
+ // Thread.Sleep(SLEEP_TIME);
|
|
|
|
+ // }
|
|
|
|
+ //}
|
|
Thread.Sleep(SLEEP_TIME);
|
|
Thread.Sleep(SLEEP_TIME);
|
|
- s7.Write("DB200.50", Convert.ToInt16("1"));*/
|
|
|
|
- /* Thread.Sleep(SLEEP_TIME);
|
|
|
|
- s7.Write("DB200.48", Convert.ToInt16(req.data.Location));
|
|
|
|
- Thread.Sleep(SLEEP_TIME);
|
|
|
|
- s7.Write("DB200.50", Convert.ToInt16("4"));
|
|
|
|
- Thread.Sleep(2000);*/
|
|
|
|
- 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));
|
|
|
|
-
|
|
|
|
- Thread.Sleep(SLEEP_TIME);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
s7.ConnectClose();
|
|
s7.ConnectClose();
|
|
|
|
|
|
//插入回调
|
|
//插入回调
|