| | |
| | | } |
| | | return result; |
| | | } |
| | | internal static DeviceInfoModel Device() |
| | | { |
| | | |
| | | DeviceInfoModel device = new DeviceInfoModel(); |
| | | |
| | | List<DeviceInfos> deviceInfos = new List<DeviceInfos>();//叠盘机报错信息 |
| | | AgvInfos gvInfos = new AgvInfos();//agv报错信息 |
| | | //获取内存中叠盘机的报错信息 |
| | | foreach (var dpjInfo in DeviceProcess.DpjInfoDirectory) |
| | | { |
| | | deviceInfos.Add(new DeviceInfos() { Device = dpjInfo.Value.DeviceName, DeviceInfo = dpjInfo.Value.ErrorInfo }); |
| | | } |
| | | device.DeviceInfos = deviceInfos; |
| | | |
| | | |
| | | return device; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 库位清空 |
| | |
| | | |
| | | return result; |
| | | } |
| | | /// <summary> |
| | | /// 设备状态上报 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | internal static DeviceInfoModel Device() |
| | | { |
| | | var db = new SqlHelper<HangChaAGV>().GetInstance(); |
| | | DeviceInfoModel device = new DeviceInfoModel(); |
| | | |
| | | List<DeviceInfos> deviceInfos = new List<DeviceInfos>();//叠盘机报错信息 |
| | | List<AgvInfos> agvInfos = new List<AgvInfos>();//agv报错信息 |
| | | |
| | | //获取内存中叠盘机的报错信息 |
| | | foreach (var dpjInfo in DeviceProcess.DpjInfoDirectory) |
| | | { |
| | | deviceInfos.Add(new DeviceInfos() { Device = dpjInfo.Value.DeviceName, DeviceInfo = dpjInfo.Value.ErrorInfo }); |
| | | } |
| | | device.DeviceInfos = deviceInfos; |
| | | //获取车辆报警信息 |
| | | var agvDeviceInfo = db.Queryable<HangChaAGV>().ToList(); |
| | | if (agvDeviceInfo.Count > 0) |
| | | { |
| | | device.AgvQty = agvDeviceInfo.Count; |
| | | device.AgvErrorQty = agvDeviceInfo.FindAll(a => a.agvErrCode != "0" || a.agvErrCode != "0" || a.faildCode != "0").Count; |
| | | device.AgvChargeQty = agvDeviceInfo.FindAll(a => a.agvErrCode == "1").Count; |
| | | device.AgvRunQty = agvDeviceInfo.FindAll(a => a.agvErrCode == "1").Count; |
| | | foreach (var agv in agvDeviceInfo) |
| | | { |
| | | string agvErrorInfo = GetAgvAlarmSendCodeTwo(agv.agvErrCode, agv.errCode2, agv.faildCode); |
| | | agvInfos.Add(new AgvInfos() { AgvNo = agv.agvNo, AgvInfo = agvErrorInfo }); |
| | | } |
| | | } |
| | | device.AgvInfos = agvInfos; |
| | | |
| | | return device; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// agv小车故障码处理 |
| | | /// </summary> |
| | | /// <param name="errCode1">错误码1</param> |
| | | /// <param name="errCode2">错误码2</param> |
| | | /// <param name="faildCode">错误码3</param> |
| | | /// <returns></returns> |
| | | private static string GetAgvAlarmSendCodeTwo(string errCode1, string errCode2, string faildCode) |
| | | { |
| | | string result = ""; |
| | | //将报警信息整合 |
| | | string binSW1 = Convert.ToString(int.Parse(errCode1), 2).PadLeft(22, '0'); |
| | | string binSW2 = Convert.ToString(int.Parse(errCode1), 2).PadLeft(20, '0'); |
| | | string binFc = Convert.ToString(int.Parse(errCode1), 2).PadLeft(16, '0'); |
| | | var arr1 = binSW1.ToArray(); |
| | | var arr2 = binSW2.ToArray(); |
| | | var arr3 = binFc.ToArray(); |
| | | |
| | | for (int i = 0; i <= arr1.Length; i++) |
| | | { |
| | | if (arr1[i] == '1') |
| | | { |
| | | var ErrorInfo = Settings.agvErrorCode1.Where(a => a.ErrorCode == i).FirstOrDefault(); |
| | | if (ErrorInfo != null) |
| | | { |
| | | result = result + "," + $"{ErrorInfo.ErrorInfo}"; |
| | | } |
| | | |
| | | } |
| | | } |
| | | for (int i = 0; i <= arr2.Length; i++) |
| | | { |
| | | if (arr1[i] == '1') |
| | | { |
| | | var ErrorInfo = Settings.agvErrorCode2.Where(a => a.ErrorCode == i).FirstOrDefault(); |
| | | if (ErrorInfo != null) |
| | | { |
| | | result = result + "," + $"{ErrorInfo.ErrorInfo}"; |
| | | } |
| | | |
| | | } |
| | | } |
| | | for (int i = 0; i <= arr3.Length; i++) |
| | | { |
| | | if (arr1[i] == '1') |
| | | { |
| | | var ErrorInfo = Settings.agvFaildCode.Where(a => a.ErrorCode == i).FirstOrDefault(); |
| | | if (ErrorInfo != null) |
| | | { |
| | | result = result + "," + $"{ErrorInfo.ErrorInfo}"; |
| | | } |
| | | |
| | | } |
| | | } |
| | | return result; |
| | | } |
| | | #endregion |
| | | |
| | | #region 合肥佳通业务方法 |
| | |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取对应错误编码的小车数量 |
| | | /// </summary> |
| | | /// <param name="Error1">错误码1</param> |
| | | /// <param name="Error2">错误码2</param> |
| | | /// <param name="faildCode"></param> |
| | | /// <returns></returns> |
| | | internal static int GetAgvQty(string Error1, string Error2 = "0", string faildCode = "0") |
| | | { |
| | | try |
| | | { |
| | | var db = new SqlHelper<HangChaAGV>().GetInstance(); |
| | | return db.Queryable<HangChaAGV>().Where(a => a.faildCode == faildCode && a.errCode2 == Error2 && a.agvErrCode == Error1).Count(); |
| | | } |
| | | catch (Exception) |
| | | { |
| | | |
| | | throw; |
| | | } |
| | | |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | |
| | | internal static CodeInfo GetCodeInfo(string code, string org) |
| | | { |