| | |
| | | using iWareCommon.Utils; |
| | | using iWareCommon.Common.Globle; |
| | | using iWareCommon; |
| | | using iWareSda.Devices._3_Station.StationModel; |
| | | |
| | | using Newtonsoft.Json; |
| | | using iWareSda.Model; |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 写PLC bool |
| | | /// </summary> |
| | | /// <param name="dbAddress"></param> |
| | | /// <param name="value"></param> |
| | | /// <param name="msg"></param> |
| | | /// <returns></returns> |
| | | public bool WriteBoolPlcData(string dbAddress, bool value, out string msg) |
| | | { |
| | | try |
| | | { |
| | | msg = ""; |
| | | |
| | | MessageModel b2 = null; |
| | | b2 = this.plcService.WriteValuePoint(dbAddress, value, value); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format($"写入PLC地址{dbAddress},值{value}失败"); |
| | | return false; |
| | | } |
| | | return true; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | msg = ex.Message; |
| | | Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, $"地址{dbAddress}失败:" + ex.Message, ex); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 写入齐套结果 |
| | | /// 写入齐套结果、解析结果 |
| | | /// </summary> |
| | | /// <param name="deviceId"></param> |
| | | /// <param name="value">true:表示 齐套。false:不齐套</param> |
| | |
| | | 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, true, view_stationObj.W_DataFinish); |
| | | |
| | | MessageModel b2 = null; |
| | | if (stationCode == StationLocationEnum.BZ01.ToString() || stationCode == StationLocationEnum.BZ30.ToString()) |
| | | { |
| | | int i_result = 0; |
| | | if (value) |
| | | { |
| | | i_result = 998; |
| | | } |
| | | else |
| | | { |
| | | i_result = 999; |
| | | } |
| | | b2 = this.plcService.WriteValuePoint(stationObj.W_KittingInfo, i_result, view_stationObj.W_KittingInfo); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 " + value + "失败,返回结果:" + b2.resMsg, |
| | | 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; |
| | | } |
| | | int i_result = 0; |
| | | if (value) |
| | | { |
| | | i_result = 998; |
| | | } |
| | | else |
| | | { |
| | | i_result = 999; |
| | | } |
| | | b2 = this.plcService.WriteValuePoint(stationObj.W_KittingInfo, i_result, view_stationObj.W_KittingInfo); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 " + value + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_DataFinish); |
| | | return false; |
| | | } |
| | | |
| | | return true; |
| | | } |
| | | catch (Exception ex) |
| | |
| | | } |
| | | |
| | | |
| | | public bool InboundFinishConfirm(string stationCode, out string msg) |
| | | public bool InboundFinishConfirm(string stationCode, bool value, out string msg) |
| | | { |
| | | try |
| | | { |
| | |
| | | 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, true, view_stationObj.W_DataFinish); |
| | | MessageModel b2 = this.plcService.WriteValuePoint(stationObj.W_InboundFinishConfirm, value, view_stationObj.W_DataFinish); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 " + true + "失败,返回结果:" + b2.resMsg, |
| | | msg = string.Format("向Station地址{0} 入库完成确认 写 " + value + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_InboundFinishConfirm); |
| | | return false; |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | public bool WriteInStoreTaskInfo(string stationCode, string toPlaceNo, short length, short width, short height, out string msg) |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | /// <param name="stationCode"></param> |
| | | /// <param name="value"></param> |
| | | /// <param name="msg"></param> |
| | | /// <param name="isClearData">是否需要清理数据</param> |
| | | /// <returns></returns> |
| | | public bool OutboundFinishConfirm(string stationCode, bool value, out string msg, bool isClearData) |
| | | { |
| | | try |
| | | { |
| | |
| | | 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, true, view_stationObj.W_DataFinish); |
| | | MessageModel b2 = this.plcService.WriteValuePoint(stationObj.W_OutboundFinishConfirm, value, view_stationObj.W_OutboundFinishConfirm); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 读码解析完成 " + true + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_DataFinish); |
| | | msg = string.Format("向Station 出库任务完成确认 地址{0} 写 " + value + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_OutboundFinishConfirm); |
| | | return false; |
| | | } |
| | | |
| | | if (value && isClearData) |
| | | { |
| | | 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> |
| | | /// 切换模式 |
| | | /// </summary> |
| | | /// <param name="stationCode"></param> |
| | | /// <param name="value"></param> |
| | | /// <param name="msg"></param> |
| | | /// <returns></returns> |
| | | public bool ChangeMode(string stationCode, int 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_Mode, value, view_stationObj.W_Mode); |
| | | if (!b2.result) |
| | | { |
| | | 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("向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; |
| | | } |
| | | |
| | |
| | | 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, bool isNgFlag) |
| | | { |
| | | 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; |
| | | } |
| | | |
| | | //增加写入NG标记 |
| | | if (isNgFlag) |
| | | { |
| | | b2 = this.plcService.WriteValuePoint(stationObj.W_NgFlag, true, view_stationObj.W_NgFlag); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 NG包标记 " + true + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_NgFlag); |
| | | 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; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 写入 补板工位允许进板 |
| | | /// </summary> |
| | | /// <param name="stationCode"></param> |
| | | /// <param name="value"></param> |
| | | /// <param name="msg"></param> |
| | | /// <returns></returns> |
| | | public bool WriteStation_AllowIn(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_AllowIn, value, view_stationObj.W_AllowIn); |
| | | 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 WriteStation_NgFlag(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_NgFlag, value, view_stationObj.W_NgFlag); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station" + stationCode + " 写入 NG包标记 地址{0} 写 " + value + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.W_OutboundFinishConfirm); |
| | | return false; |
| | | } |
| | | |
| | | return true; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | msg = ex.Message; |
| | | var logcontext = string.Format("向Statio NG包标记 出现异常:" + 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_PersonAllow(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_PersonAllow, value, view_stationObj.W_PersonAllow); |
| | | |
| | | var stationObj = this.DBBlockForRead.R_StationForReadCommList.Where(x => x.StationCode == stationCode).FirstOrDefault(); |
| | | var view_stationObj = this.View.R_StationForReadCommList.Where(x => x.StationCode == stationCode).FirstOrDefault(); |
| | | MessageModel b2 = this.plcService.WriteValuePoint(stationObj.R_ReqParseData, value, view_stationObj.R_ReqParseData); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station" + stationCode + " 写入 人工放行 地址{0} 写 " + value + "失败,返回结果:" + b2.resMsg, |
| | | stationObj.R_ReqParseData); |
| | | 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(bool isResetData, 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(); |
| | | if (isResetData == false) |
| | | { |
| | | 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; |
| | | } |
| | | else |
| | | { |
| | | MessageModel b2 = null; |
| | | b2 = this.plcService.WriteValuePoint(stationObj.W_ReqOut, false, view_stationObj.W_ReqOut); |
| | | if (!b2.result) |
| | | { |
| | | msg = string.Format("向Station地址{0} 写 请求出库 " + false + "失败,返回结果:" + 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; |
| | |
| | | StationDB2ObjForReadComm StationDB2ObjForReadComm = this.View.R_StationForReadCommList.Where(x => x.StationCode == item.StationCode).First(); |
| | | SdaHelper.SetPropertyValueForDB<StationDBForReadComm, StationDB2ObjForReadComm>(item, StationDB2ObjForReadComm, this.plcService, ""); |
| | | } |
| | | //这里特殊处理 读取的发动机码 |
| | | this.View.R_1019_CargoNoScan = GetNewCategoryNo(this.View.R_1019_CargoNoScan); |
| | | } |
| | | |
| | | |
| | |
| | | try |
| | | { |
| | | var r_dbBlock = this.DBBlockForRead; |
| | | short value = Convert.ToInt16(this.plcService.ReadValuePoint(r_dbBlock.R_HandShake, typeof(short))); |
| | | short value = Convert.ToInt16(this.plcService.ReadValuePoint(r_dbBlock.R_HandShake_FJ, typeof(short))); |
| | | //约定 等待2秒 |
| | | Thread.Sleep(2000); |
| | | short value_next = Convert.ToInt16(this.plcService.ReadValuePoint(r_dbBlock.R_HandShake, typeof(short))); |
| | | short value_next = Convert.ToInt16(this.plcService.ReadValuePoint(r_dbBlock.R_HandShake_FJ, typeof(short))); |
| | | if (value == value_next) |
| | | {//没有心跳 |
| | | return false; |
| | |
| | | /// 获取Station当前报警信息 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public List<DeviceWarningInfo> GetStationAlertDatas() |
| | | public List<DeviceWarningInfo> GetStationAlertDatas(List<WmsConfigDeviceWarning> configDeviceWarningList) |
| | | { |
| | | List<DeviceWarningInfo> db_warningList = new List<DeviceWarningInfo>(); |
| | | try |
| | | { |
| | | string _dbValue; |
| | | string _dbNumber; |
| | | string _dbOffset; |
| | | var isHasAlert = false; |
| | | IDictionary<string, string> StationAlertDict = new Dictionary<string, string>(); |
| | | StationAlertDict = WareSdaStruct.StationAlertDict; |
| | | foreach (var item in StationAlertDict) |
| | | //IDictionary<string, string> StationAlertDict = new Dictionary<string, string>(); |
| | | //StationAlertDict = StationWarningStruct.AlertDict; |
| | | foreach (var item in configDeviceWarningList) |
| | | { |
| | | _dbValue = item.Key; |
| | | isHasAlert = Convert.ToBoolean(this.plcService.ReadValuePoint(Station_CacheEntity.R_DBHeader_Station_Alert, item.Key, typeof(bool))); |
| | | //var arr = item.Key.Split('|'); |
| | | //_dbNumber = arr[0]; |
| | | //_dbOffset = arr[1]; |
| | | |
| | | var arr = item.WarningCode.Split('|'); |
| | | _dbNumber = arr[0]; |
| | | _dbOffset = arr[1]; |
| | | isHasAlert = Convert.ToBoolean(this.plcService.ReadValuePoint(_dbNumber, _dbOffset, typeof(bool))); |
| | | if (isHasAlert) |
| | | { |
| | | db_warningList.Add(new DeviceWarningInfo() |
| | | { |
| | | Address = item.Key, |
| | | Code = item.Key, |
| | | Context = item.Value.Trim() |
| | | Code = item.WarningCode, |
| | | //Context = item.WarningContent.Trim(), |
| | | }); |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw ex; |
| | | } |
| | | return db_warningList; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取输送线当前报警信息 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public List<DeviceWarningInfo> GetLineAlertDatas() |
| | | { |
| | | List<DeviceWarningInfo> db_warningList = new List<DeviceWarningInfo>(); |
| | | try |
| | | { |
| | | IDictionary<string, string> srmAlertDict = new Dictionary<string, string>(); |
| | | foreach (var item in this.View.R_StationForReadCommList) |
| | | { |
| | | if (item.R_AlarmCode > 0) |
| | | { |
| | | item.R_AlarmCodeMsg = WareSdaStruct.StationAlertDict[item.R_AlarmCode.ToString()]; |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | #endregion |
| | | |
| | | /// <summary> |
| | | /// 特殊处理下 读取的发动机码 |
| | | /// </summary> |
| | | /// <param name="orgCategoryNo"></param> |
| | | /// <returns></returns> |
| | | private string GetNewCategoryNo(string orgCategoryNo) |
| | | { |
| | | Log4NetHelper.WriteInfoLog(Station_CacheEntity.curLogType, "读取的发动机码,原始读取的值:" + orgCategoryNo); |
| | | //如果有 $R内容,就替换为空 |
| | | var repStr = "$R"; |
| | | if (!string.IsNullOrEmpty(orgCategoryNo) && orgCategoryNo.IndexOf(repStr) > -1) |
| | | { |
| | | orgCategoryNo = orgCategoryNo.Replace(repStr, ""); |
| | | } |
| | | Log4NetHelper.WriteInfoLog(Station_CacheEntity.curLogType, "读取的发动机码,替换后的值:" + orgCategoryNo); |
| | | return orgCategoryNo; |
| | | } |
| | | } |
| | | } |