| | |
| | | /// <returns></returns> |
| | | public bool SendTask(int deviceId, int taskId, string sourcePlce, string toPlace, out string msg) |
| | | { |
| | | try |
| | | { |
| | | msg = ""; |
| | | if (!CanSendTask(deviceId, out msg)) |
| | | { |
| | | return false; |
| | | } |
| | | msg = ""; |
| | | return false; |
| | | //try |
| | | //{ |
| | | // msg = ""; |
| | | // if (!CanSendTask(deviceId, out msg)) |
| | | // { |
| | | // return false; |
| | | // } |
| | | |
| | | //这里特殊转换一下 |
| | | if (toPlace == ((int)EDevice.出库口1012).ToString()) |
| | | { |
| | | toPlace = ((int)EDevice.提升机1030).ToString(); |
| | | } |
| | | // //这里特殊转换一下 |
| | | // if (toPlace == ((int)EDevice.出库口1012).ToString()) |
| | | // { |
| | | // toPlace = ((int)EDevice.提升机1030).ToString(); |
| | | // } |
| | | |
| | | |
| | | StationDBForWriteComm w_db_source = this.DBBlockForWrite.W_StationForWriteCommList.FirstOrDefault(x => x.StationCode == sourcePlce); |
| | | StationDB2ObjForWriteComm w_dbObj_source = this.View.W_StationForWriteCommList.FirstOrDefault(x => x.StationCode == sourcePlce); |
| | | // StationDBForWriteComm w_db_source = this.DBBlockForWrite.W_StationForWriteCommList.FirstOrDefault(x => x.StationCode == sourcePlce); |
| | | // StationDB2ObjForWriteComm w_dbObj_source = this.View.W_StationForWriteCommList.FirstOrDefault(x => x.StationCode == sourcePlce); |
| | | |
| | | //StationDBForWriteComm w_db_to = this.DBBlockForWrite.W_StationForWriteCommList.FirstOrDefault(x => x.StationCode == toPlace); |
| | | //StationDB2ObjForWriteComm w_dbObj_to = this.View.W_StationForWriteCommList.FirstOrDefault(x => x.StationCode == toPlace); |
| | | //如果ACK为true,表示不能发任务 |
| | | var readObj = this.View.R_StationForReadCommList.FirstOrDefault(x => x.StationCode == sourcePlce); |
| | | if (readObj.R_ACK == true) |
| | | { |
| | | msg = "ACK为TRUE,不允许发任务"; |
| | | return false; |
| | | } |
| | | // //StationDBForWriteComm w_db_to = this.DBBlockForWrite.W_StationForWriteCommList.FirstOrDefault(x => x.StationCode == toPlace); |
| | | // //StationDB2ObjForWriteComm w_dbObj_to = this.View.W_StationForWriteCommList.FirstOrDefault(x => x.StationCode == toPlace); |
| | | // //如果ACK为true,表示不能发任务 |
| | | // var readObj = this.View.R_StationForReadCommList.FirstOrDefault(x => x.StationCode == sourcePlce); |
| | | // if (readObj.R_ACK == true) |
| | | // { |
| | | // msg = "ACK为TRUE,不允许发任务"; |
| | | // return false; |
| | | // } |
| | | |
| | | MessageModel b2 = null; |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station{0},起点{1}发送任务{2},写入目标站点{3}失败,返回结果:" + b2.resMsg, this.View.DeviceName, sourcePlce, taskId, toPlace); |
| | | return false; |
| | | } |
| | | b2 = this.plcService.WriteValuePoint(w_db_source.W_TaskID, Convert.ToInt32(taskId), w_dbObj_source.W_TaskID); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station{0},起点{1},目标点{2},写入任务号{3}失败,返回结果:" + b2.resMsg, this.View.DeviceName, sourcePlce, toPlace, taskId); |
| | | return false; |
| | | } |
| | | |
| | | // MessageModel b2 = null; |
| | | // if (!b2.result) |
| | | // { |
| | | // msg = string.Format("向Station{0},起点{1}发送任务{2},写入目标站点{3}失败,返回结果:" + b2.resMsg, this.View.DeviceName, sourcePlce, taskId, toPlace); |
| | | // return false; |
| | | // } |
| | | // b2 = this.plcService.WriteValuePoint(w_db_source.W_TaskID, Convert.ToInt32(taskId), w_dbObj_source.W_TaskID); |
| | | // if (!b2.result) |
| | | // { |
| | | // msg = string.Format("向Station{0},起点{1},目标点{2},写入任务号{3}失败,返回结果:" + b2.resMsg, this.View.DeviceName, sourcePlce, toPlace, taskId); |
| | | // return false; |
| | | // } |
| | | |
| | | return true; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | msg = ex.Message; |
| | | Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, "发送任务出现异常:" + ex.Message, ex); |
| | | return false; |
| | | } |
| | | |
| | | // return true; |
| | | //} |
| | | //catch (Exception ex) |
| | | //{ |
| | | // msg = ex.Message; |
| | | // Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, "发送任务出现异常:" + ex.Message, ex); |
| | | // return false; |
| | | //} |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 1015重新扫码 |
| | | /// 写入齐套结果 |
| | | /// </summary> |
| | | /// <param name="deviceId"></param> |
| | | /// <param name="value"></param> |
| | | /// <param name="value">true:表示 齐套。false:不齐套</param> |
| | | /// <param name="msg"></param> |
| | | /// <returns></returns> |
| | | public bool Write1015ReScan(int deviceId, bool value, out string msg) |
| | | public bool WriteQiTaoInfo(string stationCode, bool value, out string msg) |
| | | { |
| | | try |
| | | { |
| | | msg = ""; |
| | | MessageModel b2 = this.plcService.WriteValuePoint(this.DBBlockForWrite.W_1015_ReScan, value, this.View.W_1015_ReScan); |
| | | var stationObj = this.DBBlockForWrite.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault(); |
| | | |
| | | var view_stationObj = this.View.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault(); |
| | | |
| | | int i_result = 0; |
| | | if (value) |
| | | { |
| | | i_result = 998; |
| | | } |
| | | else |
| | | { |
| | | i_result = 999; |
| | | } |
| | | MessageModel b2 = this.plcService.WriteValuePoint(stationObj.W_KittingInfo, i_result, view_stationObj.W_KittingInfo); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 " + value + "失败,返回结果:" + b2.resMsg, |
| | | this.DBBlockForWrite.W_1015_ReScan); |
| | | stationObj.W_DataFinish); |
| | | return false; |
| | | } |
| | | |
| | | b2 = this.plcService.WriteValuePoint(stationObj.W_DataFinish, true, view_stationObj.W_DataFinish); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 " + true + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_DataFinish); |
| | | return false; |
| | | } |
| | | |
| | | return true; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | msg = ex.Message; |
| | | var logcontext = string.Format("向Station地址{0} " + value + "出现异常:" + JsonConvert.SerializeObject(ex), |
| | | this.DBBlockForWrite.W_1015_ReScan); |
| | | ""); |
| | | Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, logcontext, ex); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | |
| | | public bool InboundFinishConfirm(string stationCode, bool value, out string msg) |
| | | { |
| | | try |
| | | { |
| | | msg = ""; |
| | | var stationObj = this.DBBlockForWrite.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault(); |
| | | |
| | | var view_stationObj = this.View.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault(); |
| | | MessageModel b2 = this.plcService.WriteValuePoint(stationObj.W_InboundFinishConfirm, value, view_stationObj.W_DataFinish); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 入库完成确认 写 " + value + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_InboundFinishConfirm); |
| | | return false; |
| | | } |
| | | |
| | | return true; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | msg = ex.Message; |
| | | var logcontext = string.Format("向Statio 入库完成确认 出现异常:" + JsonConvert.SerializeObject(ex), |
| | | ""); |
| | | Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, logcontext, ex); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | public bool OutboundFinishConfirm(string stationCode, bool value, out string msg) |
| | | { |
| | | try |
| | | { |
| | | msg = ""; |
| | | var stationObj = this.DBBlockForWrite.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault(); |
| | | |
| | | var view_stationObj = this.View.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault(); |
| | | MessageModel b2 = this.plcService.WriteValuePoint(stationObj.W_OutboundFinishConfirm, value, view_stationObj.W_OutboundFinishConfirm); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station 出库任务完成确认 地址{0} 写 " + value + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_OutboundFinishConfirm); |
| | | return false; |
| | | } |
| | | |
| | | |
| | | b2 = this.plcService.WriteValuePoint(stationObj.W_ReqOut, false, view_stationObj.W_ReqOut); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station W_ReqOut 地址{0} 写 " + false + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_ReqOut); |
| | | return false; |
| | | } |
| | | b2 = this.plcService.WriteValuePoint(stationObj.W_Destination_Out, 0, view_stationObj.W_Destination_Out); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station W_Destination_Out 地址{0} 写 " + 0 + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_Destination_Out); |
| | | return false; |
| | | } |
| | | b2 = this.plcService.WriteValuePoint(stationObj.W_Outbound_TaskID, 0, view_stationObj.W_Outbound_TaskID); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station W_Outbound_TaskID 地址{0} 写 " + 0 + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_Outbound_TaskID); |
| | | return false; |
| | | } |
| | | |
| | | |
| | | return true; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | msg = ex.Message; |
| | | var logcontext = string.Format("向Statio 出库任务完成确认 出现异常:" + JsonConvert.SerializeObject(ex), |
| | | ""); |
| | | Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, logcontext, ex); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 1019重新扫码 |
| | | /// 切换模式 |
| | | /// </summary> |
| | | /// <param name="deviceId"></param> |
| | | /// <param name="stationCode"></param> |
| | | /// <param name="value"></param> |
| | | /// <param name="msg"></param> |
| | | /// <returns></returns> |
| | | public bool Write1019ReScan(int deviceId, bool value, out string msg) |
| | | public bool ChangeMode(string stationCode, int value, out string msg) |
| | | { |
| | | try |
| | | { |
| | | msg = ""; |
| | | MessageModel b2 = this.plcService.WriteValuePoint(this.DBBlockForWrite.W_1019_ReScan, value, this.View.W_1019_ReScan); |
| | | var stationObj = this.DBBlockForWrite.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault(); |
| | | |
| | | var view_stationObj = this.View.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault(); |
| | | MessageModel b2 = this.plcService.WriteValuePoint(stationObj.W_Mode, value, view_stationObj.W_Mode); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 " + value + "失败,返回结果:" + b2.resMsg, |
| | | this.DBBlockForWrite.W_1019_ReScan); |
| | | msg = string.Format("向Station 切换模式 地址{0} 写 " + value + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_Mode); |
| | | return false; |
| | | } |
| | | |
| | | return true; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | msg = ex.Message; |
| | | var logcontext = string.Format("向Station地址{0} " + value + "出现异常:" + JsonConvert.SerializeObject(ex), |
| | | this.DBBlockForWrite.W_1019_ReScan); |
| | | var logcontext = string.Format("向Statio 切换模式 出现异常:" + JsonConvert.SerializeObject(ex), |
| | | ""); |
| | | Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, logcontext, ex); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | public bool WriteInStoreTaskInfo(string stationCode, string toPlaceNo, short length, short width, short height, out string msg, int inbound_TaskID) |
| | | { |
| | | try |
| | | { |
| | | msg = ""; |
| | | var stationObj = this.DBBlockForWrite.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault(); |
| | | |
| | | var view_stationObj = this.View.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault(); |
| | | |
| | | MessageModel b2 = this.plcService.WriteValuePoint(stationObj.W_Inbound_TaskID, inbound_TaskID, view_stationObj.W_Inbound_TaskID); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 入库任务号 " + inbound_TaskID + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_Inbound_TaskID); |
| | | return false; |
| | | } |
| | | |
| | | b2 = this.plcService.WriteValuePoint(stationObj.W_Destination_In, Convert.ToInt32(toPlaceNo), view_stationObj.W_Destination_In); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 库位号 " + toPlaceNo + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_Destination_In); |
| | | return false; |
| | | } |
| | | |
| | | b2 = this.plcService.WriteValuePoint(stationObj.W_Length, length, view_stationObj.W_Length); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 长度 " + length + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_Length); |
| | | return false; |
| | | } |
| | | b2 = this.plcService.WriteValuePoint(stationObj.W_Width, width, view_stationObj.W_Width); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 宽度 " + width + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_Width); |
| | | return false; |
| | | } |
| | | b2 = this.plcService.WriteValuePoint(stationObj.W_Height, height, view_stationObj.W_Height); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 高度 " + height + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_Height); |
| | | return false; |
| | | } |
| | | |
| | | |
| | | b2 = this.plcService.WriteValuePoint(stationObj.W_DataFinish, true, view_stationObj.W_DataFinish); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 读码解析完成 " + true + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_DataFinish); |
| | | return false; |
| | | } |
| | | |
| | | |
| | | return true; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | msg = ex.Message; |
| | | var logcontext = string.Format("WriteInStoreTaskInfo出现异常:" + JsonConvert.SerializeObject(ex), |
| | | ""); |
| | | Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, logcontext, ex); |
| | | return false; |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// 写入码垛任务信息 |
| | | /// </summary> |
| | | /// <param name="stationCode"></param> |
| | | /// <param name=""></param> |
| | | /// <param name="taskID"></param> |
| | | /// <param name="isLast"></param> |
| | | /// <param name="length"></param> |
| | | /// <param name="width"></param> |
| | | /// <param name="height"></param> |
| | | /// <param name="rotate"></param> |
| | | /// <param name="toplace"></param> |
| | | /// <param name="placeX"></param> |
| | | /// <param name="placeY"></param> |
| | | /// <param name=""></param> |
| | | /// <param name=""></param> |
| | | /// <returns></returns> |
| | | public bool WritePalletizingTaskInfo(string stationCode, int taskID, short length, short width, short height, short rotate, short toplace, short placeX, short placeY, short placeZ,short lastnum, out string msg) |
| | | { |
| | | try |
| | | { |
| | | msg = ""; |
| | | var stationObj = this.DBBlockForWrite.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault(); |
| | | |
| | | var view_stationObj = this.View.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault(); |
| | | |
| | | MessageModel b2 = this.plcService.WriteValuePoint(stationObj.W_PalletizingTaskID, taskID, view_stationObj.W_PalletizingTaskID); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 码垛任务号 " + taskID + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_Inbound_TaskID); |
| | | return false; |
| | | } |
| | | |
| | | b2 = this.plcService.WriteValuePoint(stationObj.W_Length, length, view_stationObj.W_Length); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 长度 " + length + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_Length); |
| | | return false; |
| | | } |
| | | b2 = this.plcService.WriteValuePoint(stationObj.W_Width, width, view_stationObj.W_Width); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 宽度 " + width + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_Width); |
| | | return false; |
| | | } |
| | | b2 = this.plcService.WriteValuePoint(stationObj.W_Height, height, view_stationObj.W_Height); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 高度 " + height + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_Height); |
| | | return false; |
| | | } |
| | | b2 = this.plcService.WriteValuePoint(stationObj.W_PalletizingStation, toplace, view_stationObj.W_PalletizingStation); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 目标位 " + toplace + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_Height); |
| | | return false; |
| | | } |
| | | b2 = this.plcService.WriteValuePoint(stationObj.W_Rotate, rotate, view_stationObj.W_Rotate); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 是否旋转 " + rotate + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_Height); |
| | | return false; |
| | | } |
| | | b2 = this.plcService.WriteValuePoint(stationObj.W_PalletizingPlaceX, placeX, view_stationObj.W_PalletizingPlaceX); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 X坐标 " + placeX + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_Height); |
| | | return false; |
| | | } |
| | | b2 = this.plcService.WriteValuePoint(stationObj.W_PalletizingPlaceY, placeY, view_stationObj.W_PalletizingPlaceY); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 Y坐标 " + placeY + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_Height); |
| | | return false; |
| | | } |
| | | b2 = this.plcService.WriteValuePoint(stationObj.W_PalletizingPlaceZ, placeZ, view_stationObj.W_PalletizingPlaceZ); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 Z坐标 " + placeZ + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_Height); |
| | | return false; |
| | | } |
| | | b2 = this.plcService.WriteValuePoint(stationObj.W_PalletizingBucketType, lastnum, view_stationObj.W_PalletizingBucketType); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 首末板 " + lastnum + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_Height); |
| | | return false; |
| | | } |
| | | b2 = this.plcService.WriteValuePoint(stationObj.W_DataFinish, true, view_stationObj.W_DataFinish); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 读码解析完成 " + true + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_DataFinish); |
| | | return false; |
| | | } |
| | | |
| | | |
| | | return true; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | msg = ex.Message; |
| | | var logcontext = string.Format("WriteInStoreTaskInfo出现异常:" + JsonConvert.SerializeObject(ex), |
| | | ""); |
| | | Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, logcontext, ex); |
| | | return false; |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// 合包下发任务 |
| | | /// </summary> |
| | | /// <param name="stationCode"></param> |
| | | /// <param name="taskID"></param> |
| | | /// <param name="length"></param> |
| | | /// <param name="width"></param> |
| | | /// <param name="cartonhigh"></param> |
| | | /// <param name="cartonwidth"></param> |
| | | /// <param name="placex"></param> |
| | | /// <param name="placey"></param> |
| | | /// <param name="msg"></param> |
| | | /// <returns></returns> |
| | | public bool WriteSurroundTaskInfo(string stationCode, short taskID, short length, short width, short cartonhigh, short cartonwidth, short placex, short placey, out string msg) |
| | | { |
| | | try |
| | | { |
| | | msg = ""; |
| | | var stationObj = this.DBBlockForWrite.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault(); |
| | | |
| | | var view_stationObj = this.View.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault(); |
| | | |
| | | MessageModel b2 = this.plcService.WriteValuePoint(stationObj.W_SurroundTaskNo, taskID, view_stationObj.W_SurroundTaskNo); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 合包任务号 " + taskID + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_Inbound_TaskID); |
| | | return false; |
| | | } |
| | | |
| | | b2 = this.plcService.WriteValuePoint(stationObj.W_PackageLength, length, view_stationObj.W_PackageLength); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 合包长 " + length + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_Destination_In); |
| | | return false; |
| | | } |
| | | |
| | | b2 = this.plcService.WriteValuePoint(stationObj.W_PackageWidth, width, view_stationObj.W_PackageWidth); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 合包宽 " + width + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_Destination_In); |
| | | return false; |
| | | } |
| | | b2 = this.plcService.WriteValuePoint(stationObj.W_CartonHeight, cartonhigh, view_stationObj.W_CartonHeight); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 纸箱长 " + cartonhigh + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_Length); |
| | | return false; |
| | | } |
| | | b2 = this.plcService.WriteValuePoint(stationObj.W_CartonWidth, cartonwidth, view_stationObj.W_CartonWidth); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 纸箱宽 " + width + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_Width); |
| | | return false; |
| | | } |
| | | b2 = this.plcService.WriteValuePoint(stationObj.W_X_Offset, placex, view_stationObj.W_X_Offset); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 放料x " + placex + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_Height); |
| | | return false; |
| | | } |
| | | b2 = this.plcService.WriteValuePoint(stationObj.W_Y_Offset, placey, view_stationObj.W_Y_Offset); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 放料y " + placey + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_Height); |
| | | return false; |
| | | } |
| | | |
| | | b2 = this.plcService.WriteValuePoint(stationObj.W_DataFinish, true, view_stationObj.W_DataFinish); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 读码解析完成 " + true + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_DataFinish); |
| | | return false; |
| | | } |
| | | |
| | | |
| | | return true; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | msg = ex.Message; |
| | | var logcontext = string.Format("WriteInStoreTaskInfo出现异常:" + JsonConvert.SerializeObject(ex), |
| | | ""); |
| | | Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, logcontext, ex); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 写入站点任务完成确认 |
| | | /// </summary> |
| | | /// <param name="stationCode"></param> |
| | | /// <param name="value"></param> |
| | | /// <param name="msg"></param> |
| | | /// <returns></returns> |
| | | public bool WriteStation_FinishACK(string stationCode, bool value, out string msg) |
| | | { |
| | | try |
| | | { |
| | | msg = ""; |
| | | var stationObj = this.DBBlockForWrite.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault(); |
| | | |
| | | var view_stationObj = this.View.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault(); |
| | | MessageModel b2 = this.plcService.WriteValuePoint(stationObj.W_PalletizingTaskFinish, value, view_stationObj.W_PalletizingTaskFinish); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station"+stationCode+" 写入任务完成确认 地址{0} 写 " + value + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_OutboundFinishConfirm); |
| | | return false; |
| | | } |
| | | |
| | | return true; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | msg = ex.Message; |
| | | var logcontext = string.Format("向Statio 出库任务完成确认 出现异常:" + JsonConvert.SerializeObject(ex), |
| | | ""); |
| | | Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, logcontext, ex); |
| | | return false; |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// 写入站点任务完成确认 |
| | | /// </summary> |
| | | /// <param name="stationCode"></param> |
| | | /// <param name="value"></param> |
| | | /// <param name="msg"></param> |
| | | /// <returns></returns> |
| | | public bool WriteStation_ACK(string stationCode, bool value, out string msg) |
| | | { |
| | | try |
| | | { |
| | | msg = ""; |
| | | var stationObj = this.DBBlockForWrite.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault(); |
| | | |
| | | var view_stationObj = this.View.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault(); |
| | | MessageModel b2 = this.plcService.WriteValuePoint(stationObj.W_DataFinish, value, view_stationObj.W_DataFinish); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station" + stationCode + " 写入任务完成确认 地址{0} 写 " + value + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_OutboundFinishConfirm); |
| | | return false; |
| | | } |
| | | |
| | | return true; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | msg = ex.Message; |
| | | var logcontext = string.Format("向Statio 出库任务完成确认 出现异常:" + JsonConvert.SerializeObject(ex), |
| | | ""); |
| | | Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, logcontext, ex); |
| | | return false; |
| | | } |
| | | } |
| | | public bool WriteSurround_FinishACK(string stationCode, bool value, out string msg) |
| | | { |
| | | try |
| | | { |
| | | msg = ""; |
| | | var stationObj = this.DBBlockForWrite.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault(); |
| | | |
| | | var view_stationObj = this.View.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault(); |
| | | MessageModel b2 = this.plcService.WriteValuePoint(stationObj.W_SurroundTaskFinish, value, view_stationObj.W_SurroundTaskFinish); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station" + stationCode + " 写入任务完成确认 地址{0} 写 " + value + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_OutboundFinishConfirm); |
| | | return false; |
| | | } |
| | | |
| | | return true; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | msg = ex.Message; |
| | | var logcontext = string.Format("向Statio 出库任务完成确认 出现异常:" + JsonConvert.SerializeObject(ex), |
| | | ""); |
| | | Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, logcontext, ex); |
| | | return false; |
| | | } |
| | | } |
| | | public bool WriteOutStoreTaskInfo(string stationCode, string sourcePlaceNo, out string msg, int outbound_TaskID) |
| | | { |
| | | try |
| | | { |
| | | msg = ""; |
| | | var stationObj = this.DBBlockForWrite.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault(); |
| | | |
| | | var view_stationObj = this.View.W_StationForWriteCommList.Where(x => x.StationCode == stationCode).FirstOrDefault(); |
| | | MessageModel b2 = this.plcService.WriteValuePoint(stationObj.W_Outbound_TaskID, outbound_TaskID, view_stationObj.W_Outbound_TaskID); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 出库任务号 " + outbound_TaskID + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_Outbound_TaskID); |
| | | return false; |
| | | } |
| | | |
| | | b2 = this.plcService.WriteValuePoint(stationObj.W_Destination_Out, Convert.ToInt32(sourcePlaceNo), view_stationObj.W_Destination_Out); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 库位号 " + sourcePlaceNo + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_Destination_Out); |
| | | return false; |
| | | } |
| | | |
| | | b2 = this.plcService.WriteValuePoint(stationObj.W_ReqOut, true, view_stationObj.W_ReqOut); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 请求出库 " + true + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_ReqOut); |
| | | return false; |
| | | } |
| | | |
| | | return true; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | msg = ex.Message; |
| | | var logcontext = string.Format("WriteOutStoreTaskInfo 出现异常:" + JsonConvert.SerializeObject(ex), |
| | | ""); |
| | | Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, logcontext, ex); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// Station的任务完成ACK赋值 |
| | |
| | | /// <returns></returns> |
| | | public bool WriteStation_FinishACK(int deviceId, bool value, int plcTaskId, out string msg) |
| | | { |
| | | try |
| | | { |
| | | msg = ""; |
| | | Thread.Sleep(1000);//停留2秒 |
| | | MessageModel b2 = this.plcService.WriteValuePoint(this.DBBlockForWrite.W_Station_FinishACK, value, this.View.W_Station_FinishACK); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 " + value + "失败,返回结果:" + b2.resMsg, |
| | | this.DBBlockForWrite.W_Station_FinishACK); |
| | | Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, msg, null); |
| | | return false; |
| | | } |
| | | //重新再读取,判断是否写入正确,如果写入不正确,就认为失败 【Editby shaocx,2023-04-03】 |
| | | Thread.Sleep(1000);//停留3秒 |
| | | bool finishStation = (bool)this.plcService.ReadValuePoint(this.DBBlockForRead.R_Station_Finish, typeof(bool)); |
| | | bool finisAck = (bool)this.plcService.ReadValuePoint(this.DBBlockForWrite.W_Station_FinishACK, typeof(bool)); |
| | | if (finisAck == false && finishStation == true) |
| | | { |
| | | this.plcService.WriteValuePoint(this.DBBlockForWrite.W_Station_FinishACK, value, this.View.W_Station_FinishACK);//重发一次 20230503 王铮 |
| | | Thread.Sleep(1000);//停留2秒 |
| | | finishStation = (bool)this.plcService.ReadValuePoint(this.DBBlockForRead.R_Station_Finish, typeof(bool)); |
| | | finisAck = (bool)this.plcService.ReadValuePoint(this.DBBlockForWrite.W_Station_FinishACK, typeof(bool)); |
| | | if (finisAck == false && finishStation == true) |
| | | { |
| | | |
| | | msg = string.Format("向Station地址{0} 写 " + value + "失败,SDA返回结果:true,但是SDA再次读取PLC的地址时,获取的结果是FALSE,即认定为写入失败", |
| | | this.DBBlockForWrite.W_Station_FinishACK); |
| | | Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, msg, null); |
| | | return false; |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | Log4NetHelper.WriteInfoLog(Station_CacheEntity.curLogType, "写入W_Station_FinishACK(" + this.DBBlockForWrite.W_Station_FinishACK + ")值为" + value + "成功!因为PLC任务号:" + plcTaskId); |
| | | return true; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | msg = ex.Message; |
| | | var logcontext = string.Format("向Station地址{0} " + value + "出现异常:" + JsonConvert.SerializeObject(ex), |
| | | this.DBBlockForWrite.W_Station_FinishACK); |
| | | Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, logcontext, ex); |
| | | return false; |
| | | } |
| | | msg = ""; |
| | | return false; |
| | | } |
| | | |
| | | |
| | |
| | | public bool WriteScanValidateACK(bool isReset, int deviceId, string stationCode, bool value, int plcTaskId, out string msg) |
| | | { |
| | | msg = ""; |
| | | MessageModel b2 = null; |
| | | string address_fail = ""; |
| | | string address_success = ""; |
| | | try |
| | | { |
| | | switch (stationCode) |
| | | { |
| | | case "1002": |
| | | address_fail = this.DBBlockForWrite.W_1002_ScanFailACK; |
| | | address_success = this.DBBlockForWrite.W_1002_ScanSuccessACK; |
| | | break; |
| | | case "1004": |
| | | address_fail = this.DBBlockForWrite.W_1004_ScanFailACK; |
| | | address_success = this.DBBlockForWrite.W_1004_ScanSuccessACK; |
| | | break; |
| | | case "1006": |
| | | address_fail = this.DBBlockForWrite.W_1006_ScanFailACK; |
| | | address_success = this.DBBlockForWrite.W_1006_ScanSuccessACK; |
| | | break; |
| | | case "1007": |
| | | address_fail = this.DBBlockForWrite.W_1007_ScanFailACK; |
| | | address_success = this.DBBlockForWrite.W_1007_ScanSuccessACK; |
| | | break; |
| | | default: |
| | | throw new Exception("不支持的站点"); |
| | | } |
| | | if (isReset) |
| | | {//是重置 |
| | | b2 = this.plcService.WriteValuePoint(address_success, false, this.View.W_1002_ScanSuccessACK); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 " + false + "失败,返回结果:" + b2.resMsg, |
| | | address_success); |
| | | Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, msg, null); |
| | | return false; |
| | | } |
| | | b2 = this.plcService.WriteValuePoint(address_fail, false, this.View.W_1002_ScanFailACK); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 " + false + "失败,返回结果:" + b2.resMsg, |
| | | address_fail); |
| | | Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, msg, null); |
| | | return false; |
| | | } |
| | | } |
| | | else |
| | | {//不是重置 |
| | | if (value) |
| | | {//表示扫描验证通过 |
| | | b2 = this.plcService.WriteValuePoint(address_success, true, this.View.W_1002_ScanSuccessACK); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 " + true + "失败,返回结果:" + b2.resMsg, |
| | | address_success); |
| | | Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, msg, null); |
| | | return false; |
| | | } |
| | | } |
| | | else |
| | | {//表示扫描验证不通过 |
| | | b2 = this.plcService.WriteValuePoint(address_fail, true, this.View.W_1002_ScanFailACK); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 " + true + "失败,返回结果:" + b2.resMsg, |
| | | address_fail); |
| | | Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, msg, null); |
| | | return false; |
| | | } |
| | | } |
| | | } |
| | | |
| | | Log4NetHelper.WriteInfoLog(Station_CacheEntity.curLogType, "WriteScanFailACK方法,写入 四个入库口扫描失败ACK赋值 ScanFailACK(" + address_fail + ")值为" + value + "成功!因为PLC任务号:" + plcTaskId + ",isReset:" + isReset); |
| | | return true; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | msg = ex.Message; |
| | | var logcontext = string.Format("WriteScanFailACK方法,向Station地址{0} " + value + "出现异常:" + JsonConvert.SerializeObject(ex), |
| | | address_fail); |
| | | if (value) |
| | | { |
| | | logcontext = string.Format("WriteScanFailACK方法,向Station地址{0} " + value + "出现异常:" + JsonConvert.SerializeObject(ex), |
| | | address_success); |
| | | } |
| | | Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, logcontext, ex); |
| | | return false; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | |
| | |
| | | try |
| | | { |
| | | msg = ""; |
| | | MessageModel b2 = this.plcService.WriteValuePoint(this.DBBlockForWrite.W_Out_MaterialModel, value__Out_MaterialModel, this.View.W_Out_MaterialModel); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 " + value__Out_MaterialModel + "失败,返回结果:" + b2.resMsg, |
| | | this.DBBlockForWrite.W_Out_MaterialModel); |
| | | Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, msg, null); |
| | | return false; |
| | | } |
| | | b2 = this.plcService.WriteValuePoint(this.DBBlockForWrite.W_Out_OrderNo, value_Out_OrderNo, this.View.W_Out_OrderNo); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 " + value_Out_OrderNo + "失败,返回结果:" + b2.resMsg, |
| | | this.DBBlockForWrite.W_Out_OrderNo); |
| | | Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, msg, null); |
| | | return false; |
| | | } |
| | | b2 = this.plcService.WriteValuePoint(this.DBBlockForWrite.W_Out_SerialNumber, value_Out_SerialNumber, this.View.W_Out_SerialNumber); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 " + value_Out_SerialNumber + "失败,返回结果:" + b2.resMsg, |
| | | this.DBBlockForWrite.W_Out_SerialNumber); |
| | | Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, msg, null); |
| | | return false; |
| | | } |
| | | |
| | | |
| | | Log4NetHelper.WriteInfoLog(Station_CacheEntity.curLogType, $"写入 发动机出库,给西港PLC发送发动机数据成功!任务号{plcTaskId},机型{value__Out_MaterialModel},订货号{value_Out_OrderNo},编号{value_Out_SerialNumber}" + plcTaskId); |
| | | return true; |
| | | } |
| | | catch (Exception ex) |