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
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
| namespace SHARP_CLAS_UI
| {
| #region enum
| public enum PreAlignSteps
| {
| S0000_WAIT,
|
| //Panel 없는 상태, Paenl Exist 될때까지 대기.
| S1000_PANEL_LOAD_START,
| S1100_MOVE_STAY_POSITION,
| S1110_POSITION_CHECK,
| S1400_PANEL_EXIST_CHECK,
| S1999_PANEL_LOAD_END,
|
| //Film Judge 대기.
| S2000_FILM_JUDGE_START,
| S2100_FILM_JUDGE_CHECK,
| S2200_PANEL_EMPTY_CHECK,
| S2999_FILM_JUDGE_END,
|
|
| //Pre Align 대기.
| S3000_PRE_ALIGN_START,
| S3100_MOVE_X_BEFORE_POSITION,
| S3120_X_POSITION_CHECK,
| S3200_MOVE_Y_BEFORE_POSITION,
| S3220_Y_POSITION_CHECK,
| S3300_MOVE_T_BEFORE_POSITION,
| S3320_T_POSITION_CHECK,
| S3400_PRE_ALIGN_CHECK,
| S3999_PRE_ALIGN_END,
|
| //Pre Align 완료 후 언로딩.
| S4000_PANEL_UNLOAD_START,
| S4100_RESULT_OFFSET_GET,
| S4100_MOVE_X_UNLOAD_POSITION,
| S4200_MOVE_Y_UNLOAD_POSITION,
| S4300_MOVE_T_UNLOAD_POSITION,
| S4320_POSITION_CHECK,
| S4400_PANEL_EMPTY_CHECK,
| S4999_PANEL_UNLOAD_END,
| }
|
| public enum PreAlignHomeSteps
| {
| S0000_WAIT,
| S1000_STATUS_CHECK,
| S2000_X_HOME_START,
| S2100_X_HOME_CHECK,
| S2200_Y_HOME_START,
| S2300_Y_HOME_CHECK,
| S2400_T_HOME_START,
| S2500_T_HOME_CHECK,
| S3000_MOVE_LOAD_POSITION,
| S3100_POSITION_CHECK,
| S9999_END,
| }
|
| #endregion
| public abstract class PreAlign : Unit
| {
| #region Property
| public Axis MotorX1
| {
| get
| {
| return _motorX1;
| }
|
| set
| {
| _motorX1 = value;
| }
| }
|
| public Axis MotorY1
| {
| get
| {
| return _motorY1;
| }
|
| set
| {
| _motorY1 = value;
| }
| }
|
| public Axis MotorT1
| {
| get
| {
| return _motorT1;
| }
|
| set
| {
| _motorT1 = value;
| }
| }
|
| public Axis MotorX2
| {
| get
| {
| return _motorX2;
| }
|
| set
| {
| _motorX2 = value;
| }
| }
|
| public Axis MotorY2
| {
| get
| {
| return _motorY2;
| }
|
| set
| {
| _motorY2 = value;
| }
| }
|
| public Axis MotorT2
| {
| get
| {
| return _motorT2;
| }
|
| set
| {
| _motorT2 = value;
| }
| }
|
| public VacuumStageCh1 Stage1
| {
| get
| {
| return _stage1;
| }
|
| set
| {
| _stage1 = value;
| }
| }
|
| public VacuumStageCh1 Stage2
| {
| get
| {
| return _stage2;
| }
|
| set
| {
| _stage2 = value;
| }
| }
|
| public override bool IsHomeComplete
| {
| get
| {
| return isHomeComplete && _motorX1.IsHomed && _motorY1.IsHomed && _motorT1.IsHomed && _motorX2.IsHomed && _motorY2.IsHomed && _motorT2.IsHomed;
| }
| }
|
| public override bool IsExist
| {
| get
| {
| return Stage1.IsVacuumSensor || Stage2.IsVacuumSensor;
| }
| }
|
| public abstract Panel_Info Panel1
| {
| get;
| set;
| }
|
| public abstract Panel_Info Panel2
| {
| get;
| set;
| }
| #endregion
|
| #region Field
| private Axis _motorX1;
| private Axis _motorY1;
| private Axis _motorT1;
| private Axis _motorX2;
| private Axis _motorY2;
| private Axis _motorT2;
| private VacuumStageCh1 _stage1;
| private VacuumStageCh1 _stage2;
| #endregion
|
| #region Construct
| public PreAlign(Equipment equipment, MotorAxis motorX1, MotorAxis motorY1, MotorAxis motorT1,
| MotorAxis motorX2, MotorAxis motorY2, MotorAxis motorT2, string unitName = "PreAlign") : base (equipment, unitName)
| {
| MotorX1 = equipment.Board_Control.Motors[motorX1];
| MotorY1 = equipment.Board_Control.Motors[motorY1];
| MotorT1 = equipment.Board_Control.Motors[motorT1];
| MotorX2 = equipment.Board_Control.Motors[motorX2];
| MotorY2 = equipment.Board_Control.Motors[motorY2];
| MotorT2 = equipment.Board_Control.Motors[motorT2];
| Stage1 = new VacuumStageCh1(equipment);
| Stage2 = new VacuumStageCh1(equipment);
| }
| #endregion
| }
| }
|
|