AGVAnalysis.cs
1.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
using HHECS.BllModel;
using HHECS.DAQHandle.Common.Enums;
using HHECS.DAQHandle.Common.Utils;
using HHECS.DAQHandle.Models;
using HHECS.EquipmentModel;
namespace HHECS.DAQHandle.EquipmentHandle
{
/// <summary>
/// AGV数据解析
/// </summary>
internal class AGVAnalysis : BaseAnalysis
{
public AGVAnalysis(EquipmentType equipmentType) : base(equipmentType) { }
public override EquipmentStatusRecordStatus? GetEquipmentStatus(EquipmentDataRecord equipmentInfo)
{
EquipmentStatusRecordStatus? equipmentStatus = null;
var equipment = Program.EquipmentInfos[equipmentInfo.EquipmentCode];
var address = equipment.EquipmentPropTemps.FindAll(x => x.PropCode.Contains("Abnormal")).Select(x => x.Address);
var totalError = equipmentInfo.Props.Any(x => address.Contains(x.Key) && x.Value == "1");
//故障
if (totalError)
{
equipmentStatus = EquipmentStatusRecordStatus.Error;
}
else
{
//运行
if (GetPropValue(equipmentInfo, AGVProp.TravelStatus) == "1")
{
equipmentStatus = EquipmentStatusRecordStatus.Running;
}
//待机
else
{
equipmentStatus = EquipmentStatusRecordStatus.Free;
}
}
return equipmentStatus;
}
}
}