VerticalStorePosition.cs
6.3 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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
using OnlineStore.Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace OnlineStore.LoadCSVLibrary
{
/// <summary>
/// 松下伺服485控制,单台料仓
/// </summary>
public class VerticalStorePosition : PostionBase
{
/// <summary>
/// 对应的料仓ID(流水线料仓需要用此字段区分哪个BOX)
/// </summary>
[CSVAttribute("料仓ID")]
public int StoreId { get; set; }
/// <summary>
/// 库位类型 (1=冷藏区库位,2=回温区库位,>=100的为砝码区)
/// </summary>
[CSVAttribute("库位类型")]
public int PosType { get; set; }
/// <summary>
/// 中轴位置(旋转轴库位点)P2
/// </summary>
[CSVAttribute("旋转轴位置P2")]
public int MiddleAxis_P2 { get; set; }
/// <summary>
/// 升降轴(库位出料前点)P5
/// </summary>
[CSVAttribute("升降轴库位出料前点P5")]
public int UpDownAxis_OH_P5 { get; set; }
/// <summary>
/// 升降轴(库位出料缓冲点)P6
/// </summary>
[CSVAttribute("升降轴库位出料缓冲点P6")]
public int UpDownAxis_OL_P6 { get; set; }
/// <summary>
/// 升降轴(库位入料前点)P3
/// </summary>
[CSVAttribute("升降轴库位入料前点P3")]
public int UpDownAxis_IH_P3 { get; set; }
/// <summary>
/// 升降轴(库位入料缓冲点)P4
/// </summary>
[CSVAttribute("升降轴库位入料缓冲点P4")]
public int UpDownAxis_IL_P4 { get; set; }
/// <summary>
/// 进出轴(库位点取料点)P3
/// </summary>
[CSVAttribute("进出轴库位点取料点P3")]
public int InOutAxis_P3 { get; set; }
/// <summary>
/// 回温区旋转轴库位点P2
/// </summary>
[CSVAttribute("回温区旋转轴库位点P2")]
public int WarmAxis_P2 { get; set; }
/// <summary>
/// 冷藏区旋转轴P2
/// </summary>
[CSVAttribute("冷藏区旋转轴库位点P2")]
public int ColdAxis_P2 { get; set; }
public static bool CheckPosition(VerticalStorePosition position, VerticalStoreConfig Config)
{
try
{
if (Config.Middle_Axis.PositionIsHasLimit())
{
int mMin = Config.Middle_Axis.PositionMin;
int mMax = Config.Middle_Axis.PositionMax;
if (mMin > position.MiddleAxis_P2 || mMax < position.MiddleAxis_P2)
{
LogUtil.error(position.PositionNum + " MiddleAxis_Position_P2位置超出" + Config.Middle_Axis.Explain + "上下限(" + mMin + "-" + mMax + ")");
return false;
}
}
if (Config.InOut_Axis.PositionIsHasLimit())
{
int iMin = Config.InOut_Axis.PositionMin;
int iMax = Config.InOut_Axis.PositionMax;
//if (iMin > position.InOutAxis_DoorPosition_P2 || iMax < position.InOutAxis_DoorPosition_P2)
//{
// LogUtil.error(position.PositionNum + " InOutAxis_DoorPosition_P2位置超出" + Config.InOut_Axis.Explain + "上下限(" + iMin + "-" + iMax + ")");
// return false;
//}
if (iMin > position.InOutAxis_P3 || iMax < position.InOutAxis_P3)
{
LogUtil.error(position.PositionNum + " InOutAxis_P3 位置超出" + Config.InOut_Axis.Explain + "上下限(" + iMin + "-" + iMax + ")");
return false;
}
}
if (Config.UpDown_Axis.PositionIsHasLimit())
{
int uMin = Config.UpDown_Axis.PositionMin;
int uMax = Config.UpDown_Axis.PositionMax;
if (uMin > position.UpDownAxis_IH_P3 || uMax < position.UpDownAxis_IH_P3)
{
LogUtil.error(position.PositionNum + " UpDownAxis_IH_P3 位置超出" + Config.UpDown_Axis.Explain + "上下限(" + uMin + "-" + uMax + ")");
return false;
}
if (uMin > position.UpDownAxis_IL_P4 || uMax < position.UpDownAxis_IL_P4)
{
LogUtil.error(position.PositionNum + " UpDownAxis_IL_P4 位置超出" + Config.UpDown_Axis.Explain + "上下限(" + uMin + "-" + uMax + ")");
return false;
}
if (uMin > position.UpDownAxis_OH_P5 || uMax < position.UpDownAxis_OH_P5)
{
LogUtil.error(position.PositionNum + " UpDownAxis_OH_P5 位置超出" + Config.UpDown_Axis.Explain + "上下限(" + uMin + "-" + uMax + ")");
return false;
}
if (uMin > position.UpDownAxis_OL_P6 || uMax < position.UpDownAxis_OL_P6)
{
LogUtil.error(position.PositionNum + " UpDownAxis_OL_P6 位置超出" + Config.UpDown_Axis.Explain + "上下限(" + uMin + "-" + uMax + ")");
return false;
}
}
}
catch (Exception ex)
{
LogUtil.error("验证" + position.PositionNum + "的位置范围出错:" + ex.ToString());
}
return true;
}
public string PosTypeStr()
{
if (PosType.Equals(1))
{
return "冷藏区库位";
}
else if (PosType.Equals(2))
{
return "回温区库位";
}
else
{
return "砝码" + PosType + "g库位";
}
}
/// <summary>
/// 是否是锡膏库位
/// </summary>
/// <returns></returns>
public bool IsTieBag()
{
if (BagWidth.Equals(50) && BagHigh.Equals(50))
{
return true;
}
return false;
}
}
}