using System; using bizFacade; using MesServerWork; using WebApiCall; namespace MesServerFunctions { partial class FunctionMES { /// /// 叫料 /// /// /// private void CallMaterials(object e) { try { DoWhatPlc.CustomeEvetnArgs msgEvent = (DoWhatPlc.CustomeEvetnArgs)e; string OpName = Convert.ToString(msgEvent.OpName); int tagValue = Convert.ToInt32(msgEvent.TagValue); // 信号名称、库位1变量号、库位2变量号 // 请求叫料 1 206 2 211 // 请求退料 1 207 2 212 // 允许进入 1 208 2 213 // 退料类型 1 209 2 214 // 叫料类型 1 210 2 215 // 到料类型 1 202 2 205 // 请求进入 1 200 2 203 // AGV已离开1 201 2 204 int tagType = Convert.ToInt32(msgEvent.TagType); if (tagValue == 1) { // 根据变量类型代码 获取 位置号 与 叫料类型 string positionName = "-1"; // 位置号 string engineType = "-1"; // 型号 1 3 吨 string type = "叫料"; // 操作类型 分 叫料 退料 退余料 // 206 库位1 if(tagType == 206) { positionName = "H1"; engineType = MIS_BASE.ReadPLC(210,OpName).ToString(); } // 211 库位2 else if (tagType == 211) { positionName = "H2"; engineType = MIS_BASE.ReadPLC(215, OpName).ToString(); } // 1.调用WebApi通知叫料 bool isOk = AGVWebApiCall.MES_To_AGV_CallGoods(positionName,engineType); if (isOk) { // 2.叫料成功后 记录叫料日志 BaseDataSystemMES.Get_AGV_CallRecord(OpName, positionName, engineType, type); } } else { if (tagType == 206) { MIS_BASE.WritePLC(200,OpName,false); // AGV已离开 MIS_BASE.WritePLC(201, OpName, false); // 请求进入 MIS_BASE.WritePLC(202, OpName, false); // 叫料类型 } // 211 库位2 else if (tagType == 211) { MIS_BASE.WritePLC(203, OpName, false); // AGV已离开 MIS_BASE.WritePLC(204, OpName, false); // 请求进入 MIS_BASE.WritePLC(205, OpName, false); // 叫料类型 } } } catch (Exception err) { ////ApplicationLog.WriteLog(err, "Function02:ConfirmOkGo"); } } } }