示例#1
0
 /// <summary>
 /// 报警的上下限配置在排产的 Bom 表中,由于 Bom 表的逻辑在 DMesCore 中,所以这里仅仅是将需要检查的参数派发出去
 /// </summary>
 /// <param name="machineCode">报警机台</param>
 /// <param name="cpms">机台的参数列表</param>
 void dispatchCheckBomAlarm(string machineCode, List <Cpm> cpms)
 {
     cpms?.ForEach(cpm => {
         if (MachineConfig.MachineDict[machineCode].CodeToMqBomAlarmCpmDict.TryGetValue(cpm.Code, out var alarmCpm))
         {
             if (cpm.ValueType != SmParamType.Signal)
             {
                 Logger.Error($"机台 {machineCode} 参数 {cpm.Name} 的值不是浮点类型,不能报警", 36000);
                 return;
             }
             var bomKeys = alarmCpm.MqAlarmBomKeys;
             if (bomKeys?.Length != 2)
             {
                 Logger.Error($"机台 {machineCode} 参数 {cpm.Name} 的报警配置有误,长度不为 2 ", 36000);
                 return;
             }
             string max = null;
             string min = null;
             string std = null;
             foreach (var key in bomKeys)
             {
                 if (key.ToLower().Contains("max"))
                 {
                     max = key;
                 }
                 else if (key.ToLower().Contains("min"))
                 {
                     min = key;
                 }
                 else
                 {
                     std = key;
                 }
             }
             var alarmCheck = new AlarmBomCheck()
             {
                 Cpm = cpm, MaxBomKey = max, MinBomKey = min, StdBomKey = std
             };
             App.Store.Dispatch(new AlarmActions.CheckCpmBomAlarm(machineCode, alarmCheck));
         }
     });
 }
示例#2
0
 public CheckCpmBomAlarm(string machineCode, AlarmBomCheck alarmBomCheck)
 {
     MachineCode   = machineCode;
     AlarmBomCheck = alarmBomCheck;
 }