|
@@ -693,15 +693,48 @@ namespace IMCS.CCS.Services
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- List<CcsActionAddress> CcsActionAddressWrites = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE.ToString()).ToList();
|
|
|
- foreach (CcsActionAddress actionAddress in CcsActionAddressWrites)
|
|
|
+ //放入恒轮工位,作为启动
|
|
|
+ string currentWorkStation = "";
|
|
|
+ if (req.url == "192.168.11.150" && req.data.Location == "127")
|
|
|
{
|
|
|
- if (!string.IsNullOrEmpty(actionAddress.Address))
|
|
|
+ string workStationAddress = ToolUtils.AddressConvertDBW("DB200.332");
|
|
|
+ currentWorkStation = ((ushort)s7.Read(workStationAddress)).ConvertToShort().ToString();
|
|
|
+ //string currentWorkStation = s7.ReadInt16("DB200.332").Content.ToString();
|
|
|
+ string writeValue = "128";
|
|
|
+ if (currentWorkStation == "1")//工作台1
|
|
|
{
|
|
|
- string Address = ToolUtils.AddressConvertDBW(actionAddress.Address);
|
|
|
- s7.Write(Address, Convert.ToInt16(string.IsNullOrEmpty(actionAddress.Value) ? req.data.Location : actionAddress.Value)); ;
|
|
|
- Thread.Sleep(SLEEP_TIME);
|
|
|
+ writeValue = "128";
|
|
|
+ }
|
|
|
+ else if (currentWorkStation == "2")//工作台2
|
|
|
+ {
|
|
|
+ writeValue = "127";
|
|
|
+ }
|
|
|
+ if (string.IsNullOrEmpty(req.data.fileName))
|
|
|
+ {
|
|
|
+ s7.Close();
|
|
|
+ Log.Instance.WriteLogAdd(ActionTypeEnum.SendQualityCenter + "放物品异常===>>" + "恒轮程序名为空" + JsonConvert.SerializeObject(req),
|
|
|
+ EnumHelper.GetDescription(ActionTypeEnum.SendQualityCenter));
|
|
|
+ responseData.result = "false";
|
|
|
+ return responseData;
|
|
|
+ }
|
|
|
+ string proNo = Path.GetFileNameWithoutExtension(req.data.fileName);
|
|
|
+ s7.Write("DB200.334", Convert.ToInt16(proNo));
|
|
|
+ Thread.Sleep(SLEEP_TIME);
|
|
|
+ s7.Write("DB200.46", Convert.ToInt16(writeValue));
|
|
|
+ Thread.Sleep(SLEEP_TIME);
|
|
|
+ s7.Write("DB200.50", Convert.ToInt16("4"));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ 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);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -711,12 +744,17 @@ namespace IMCS.CCS.Services
|
|
|
TaskCallback taskCallbackData = new TaskCallback(req.url, ActionTypeEnum.SendQualityCenter.ToString(),
|
|
|
EnumHelper.GetDescription(ActionTypeEnum.SendQualityCenter), req.taskId, req.taskNodeId);
|
|
|
taskCallbackData = setCallBackValue(CcsActionAddresses, taskCallbackData);
|
|
|
- /*//清洗机启动时更新回调值
|
|
|
- if(!string.IsNullOrEmpty(req.data.Location) && req.data.Location == "123")
|
|
|
- {
|
|
|
- taskCallbackData.Address = "DB200.48";
|
|
|
- taskCallbackData.CallbackValue = "1";
|
|
|
- }*/
|
|
|
+ //放入恒轮工位,作为启动 ,传递给后续启动
|
|
|
+ if (req.url == "192.168.11.150" && req.data.Location == "127")
|
|
|
+ {
|
|
|
+ taskCallbackData.Description = currentWorkStation;
|
|
|
+ }
|
|
|
+ /*//清洗机启动时更新回调值
|
|
|
+ if(!string.IsNullOrEmpty(req.data.Location) && req.data.Location == "123")
|
|
|
+ {
|
|
|
+ taskCallbackData.Address = "DB200.48";
|
|
|
+ taskCallbackData.CallbackValue = "1";
|
|
|
+ }*/
|
|
|
await _taskCallbackService.CreateOrUpdateAndCache(taskCallbackData);
|
|
|
Log.Instance.WriteLogAdd(EnumHelper.GetDescription(ActionTypeEnum.SendQualityCenter) + "放物品成功===>>" + JsonConvert.SerializeObject(req)
|
|
|
, EnumHelper.GetDescription(ActionTypeEnum.SendQualityCenter));
|
|
@@ -1108,76 +1146,91 @@ namespace IMCS.CCS.Services
|
|
|
//opcua启动程序
|
|
|
if (actionInfo.ProtocolType == ProtocalTypeEnum.OPCUA.ToString())
|
|
|
{
|
|
|
- SiemensS7Net s7 = DevicePlcS7.SiemensS7(actionInfo.PlcIp);
|
|
|
- OperateResult ConnectionResult = s7.ConnectServer();
|
|
|
- if (!ConnectionResult.IsSuccess)
|
|
|
- {
|
|
|
- s7.ConnectClose();
|
|
|
- Log.Instance.WriteLogAdd(ActionTypeEnum.StartNCProgram + "启动程序异常===>>" + "PLC连接不上" + JsonConvert.SerializeObject(req),
|
|
|
- EnumHelper.GetDescription(ActionTypeEnum.StartNCProgram));
|
|
|
- responseData.result = "false";
|
|
|
- return responseData;
|
|
|
- }
|
|
|
-
|
|
|
- //查询条件
|
|
|
- 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 CheckAddress = ToolUtils.AddressConvertDBW(actionAddress.Address);
|
|
|
- var operateResult = s7.ReadInt16(CheckAddress).Content.ToString();
|
|
|
- if (actionAddress.CheckType ? operateResult.ToString().Equals(actionAddress.Value) : operateResult.ToString() != actionAddress.Value)
|
|
|
- {
|
|
|
- s7.ConnectClose();
|
|
|
- Log.Instance.WriteLogAdd(ActionTypeEnum.StartNCProgram + "启动程序异常===>>" + "条件不满足" + JsonConvert.SerializeObject(req),
|
|
|
- EnumHelper.GetDescription(ActionTypeEnum.StartNCProgram));
|
|
|
- responseData.result = "false";
|
|
|
- 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";
|
|
|
- }
|
|
|
-
|
|
|
- //查询写入地址列表
|
|
|
- List<CcsActionAddress> CcsActionAddressWrites = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE.ToString()).ToList();
|
|
|
- foreach (CcsActionAddress actionAddress in CcsActionAddressWrites)
|
|
|
- {
|
|
|
- if (!string.IsNullOrEmpty(actionAddress.Address))
|
|
|
- {
|
|
|
- if (actionAddress.Sort == 1)
|
|
|
- {
|
|
|
- string proNo = Path.GetFileNameWithoutExtension(req.data.remotePath);
|
|
|
- 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
|
|
|
- {
|
|
|
- s7.Write(actionAddress.Address, Convert.ToInt16(actionAddress.Value));
|
|
|
- }
|
|
|
- Thread.Sleep(SLEEP_TIME);
|
|
|
- }
|
|
|
- }
|
|
|
- s7.ConnectClose();
|
|
|
+ //SiemensS7Net s7 = DevicePlcS7.SiemensS7(actionInfo.PlcIp);
|
|
|
+ //OperateResult ConnectionResult = s7.ConnectServer();
|
|
|
+ //if (!ConnectionResult.IsSuccess)
|
|
|
+ //{
|
|
|
+ // s7.ConnectClose();
|
|
|
+ // Log.Instance.WriteLogAdd(ActionTypeEnum.StartNCProgram + "启动程序异常===>>" + "PLC连接不上" + JsonConvert.SerializeObject(req),
|
|
|
+ // EnumHelper.GetDescription(ActionTypeEnum.StartNCProgram));
|
|
|
+ // responseData.result = "false";
|
|
|
+ // return responseData;
|
|
|
+ //}
|
|
|
+
|
|
|
+ ////查询条件
|
|
|
+ //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 CheckAddress = ToolUtils.AddressConvertDBW(actionAddress.Address);
|
|
|
+ // var operateResult = s7.ReadInt16(CheckAddress).Content.ToString();
|
|
|
+ // if (actionAddress.CheckType ? operateResult.ToString().Equals(actionAddress.Value) : operateResult.ToString() != actionAddress.Value)
|
|
|
+ // {
|
|
|
+ // s7.ConnectClose();
|
|
|
+ // Log.Instance.WriteLogAdd(ActionTypeEnum.StartNCProgram + "启动程序异常===>>" + "条件不满足" + JsonConvert.SerializeObject(req),
|
|
|
+ // EnumHelper.GetDescription(ActionTypeEnum.StartNCProgram));
|
|
|
+ // responseData.result = "false";
|
|
|
+ // 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";
|
|
|
+ //}
|
|
|
+
|
|
|
+ ////查询写入地址列表
|
|
|
+ //List<CcsActionAddress> CcsActionAddressWrites = CcsActionAddresses.Where(o => o.Type == ActionAddressTypeEnum.WRITE.ToString()).ToList();
|
|
|
+ //foreach (CcsActionAddress actionAddress in CcsActionAddressWrites)
|
|
|
+ //{
|
|
|
+ // if (!string.IsNullOrEmpty(actionAddress.Address))
|
|
|
+ // {
|
|
|
+ // if (actionAddress.Sort == 1)
|
|
|
+ // {
|
|
|
+ // string proNo = Path.GetFileNameWithoutExtension(req.data.remotePath);
|
|
|
+ // 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
|
|
|
+ // {
|
|
|
+ // s7.Write(actionAddress.Address, Convert.ToInt16(actionAddress.Value));
|
|
|
+ // }
|
|
|
+ // Thread.Sleep(SLEEP_TIME);
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+ //s7.ConnectClose();
|
|
|
//插入回调
|
|
|
+ //获取启动前放的 工位
|
|
|
+ TaskCallback queryTaskCallBack = new TaskCallback();
|
|
|
+ queryTaskCallBack.IP = actionInfo.PlcIp;
|
|
|
+ TaskCallback TaskBean = await _taskCallbackService.GetRobotActionList(queryTaskCallBack);
|
|
|
+
|
|
|
TaskCallback taskCallbackData = new TaskCallback(actionInfo.PlcIp, ActionTypeEnum.StartNCProgram.ToString(),
|
|
|
EnumHelper.GetDescription(ActionTypeEnum.StartNCProgram), req.taskId, req.taskNodeId);
|
|
|
taskCallbackData = setCallBackValue(CcsActionAddresses, taskCallbackData);
|
|
|
taskCallbackData.Description = ProtocalTypeEnum.OPCUA.ToString();
|
|
|
- taskCallbackData.Data = currentWorkStation;
|
|
|
+ if(TaskBean != null)
|
|
|
+ {
|
|
|
+ taskCallbackData.Data = TaskBean.Description;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ Log.Instance.WriteLogAdd(ActionTypeEnum.StartNCProgram + "失败,上一放动作 没有工位信息===>>" + JsonConvert.SerializeObject(req),
|
|
|
+ EnumHelper.GetDescription(ActionTypeEnum.StartNCProgram));
|
|
|
+ return responseData;
|
|
|
+ }
|
|
|
+
|
|
|
await _taskCallbackService.CreateOrUpdateAndCache(taskCallbackData);
|
|
|
Log.Instance.WriteLogAdd(ActionTypeEnum.StartNCProgram + "启动成功===>>" + JsonConvert.SerializeObject(req),
|
|
|
EnumHelper.GetDescription(ActionTypeEnum.StartNCProgram));
|
|
@@ -1361,7 +1414,68 @@ namespace IMCS.CCS.Services
|
|
|
return responseData;
|
|
|
}
|
|
|
}
|
|
|
+ /// <summary>
|
|
|
+ /// 恒轮机床空闲标志
|
|
|
+ /// </summary>
|
|
|
+ public async Task<ResponseECSData> hellerFreeStatus(RequestData<RequestToolData> req)
|
|
|
+ {
|
|
|
+ ResponseECSData responseData = new ResponseECSData(req.taskId, req.taskNodeId);
|
|
|
+ try
|
|
|
+ {
|
|
|
+ List<Device> devices = _deviceService.GetDeviceList();
|
|
|
+
|
|
|
+ Device device = devices.Where(x => x.Ip.Equals(req.url) && x.Port.Equals(req.port)).FirstOrDefault();
|
|
|
+
|
|
|
+ if (device == null)
|
|
|
+ {
|
|
|
+ Log.Instance.WriteLogAdd(ActionTypeEnum.StartNCProgram + "设备已离线===>>" + JsonConvert.SerializeObject(req),
|
|
|
+ EnumHelper.GetDescription(ActionTypeEnum.StartNCProgram));
|
|
|
+ responseData.result = "false";
|
|
|
+ return responseData;
|
|
|
+ }
|
|
|
|
|
|
+ CcsAction actionQuery = new CcsAction();
|
|
|
+ actionQuery.OperateType = ActionTypeEnum.StartNCProgram.ToString();
|
|
|
+ actionQuery.Ip = req.url;
|
|
|
+ CcsAction actionInfo = _ccsActionService.GetList(actionQuery).FirstOrDefault();
|
|
|
+
|
|
|
+ //恒轮设备 对应plc ip
|
|
|
+ SiemensS7Net s7 = DevicePlcS7.SiemensS7(actionInfo.PlcIp);
|
|
|
+ OperateResult ConnectionResult = s7.ConnectServer();
|
|
|
+ if (!ConnectionResult.IsSuccess)
|
|
|
+ {
|
|
|
+ s7.ConnectClose();
|
|
|
+ Log.Instance.WriteLogAdd("查询恒轮是否空闲异常===>PLC连接不上" + JsonConvert.SerializeObject(req),
|
|
|
+ EnumHelper.GetDescription(ActionTypeEnum.StartNCProgram));
|
|
|
+ responseData.result = "false";
|
|
|
+ return responseData;
|
|
|
+ }
|
|
|
+ string status = s7.ReadInt16("DB200.336").Content.ToString();
|
|
|
+ if (status == "1")//状态1 有料
|
|
|
+ {
|
|
|
+ responseData.result = "true";
|
|
|
+ Log.Instance.WriteLogAdd("查询恒轮当前外面工作台有料===>>" + JsonConvert.SerializeObject(req),
|
|
|
+ EnumHelper.GetDescription(ActionTypeEnum.StartNCProgram));
|
|
|
+ responseData.result = "false";
|
|
|
+ return responseData;
|
|
|
+ }
|
|
|
+ else if(status == "2")//状态2 无料
|
|
|
+ {
|
|
|
+ Log.Instance.WriteLogAdd("查询恒轮当前外面工作台无料===>>" + JsonConvert.SerializeObject(req),
|
|
|
+ EnumHelper.GetDescription(ActionTypeEnum.StartNCProgram));
|
|
|
+ responseData.result = "false";
|
|
|
+ }
|
|
|
+ s7.ConnectClose();
|
|
|
+ return responseData;
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ Log.Instance.WriteLogAdd("查询恒轮是否程序异常===>>" + ex.Message + JsonConvert.SerializeObject(req),
|
|
|
+ EnumHelper.GetDescription(ActionTypeEnum.StartNCProgram));
|
|
|
+ responseData.result = "false";
|
|
|
+ return responseData;
|
|
|
+ }
|
|
|
+ }
|
|
|
/// <summary>
|
|
|
/// 粗偏写入
|
|
|
/// </summary>
|