Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
李娜
/
SO664-AssemblyLine
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 9e37d75e
由
LN
编写于
2020-11-23 17:22:19 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
界面调整
1 个父辈
f4cd7e79
显示空白字符变更
内嵌
并排
正在显示
24 个修改的文件
包含
619 行增加
和
3140 行删除
source/AssemblyLineClient/FrmLineIO.Designer.cs
source/AssemblyLineClient/FrmLineIO.cs
source/AssemblyLineClient/FrmLineStore.Designer.cs
source/AssemblyLineClient/FrmLineStore.cs
source/AssemblyLineClient/equip/FrmEquipBaseForm.Designer.cs
source/AssemblyLineClient/equip/FrmEquipBaseForm.cs
source/AssemblyLineClient/equip/FrmEquipBaseForm.resx
source/AssemblyLineClient/equip/FrmFeedingEquipF.Designer.cs
source/AssemblyLineClient/equip/FrmFeedingEquipF.cs
source/AssemblyLineClient/equip/FrmMoveEquipForm.Designer.cs
source/AssemblyLineClient/equip/FrmMoveEquipForm.cs
source/AssemblyLineClient/image/line.png
source/AssemblyLineClient/image/line2.png
source/AssemblyLineClient/useControl/EquipControl.Designer.cs
source/AssemblyLineClient/useControl/EquipControl.cs
source/DeviceLibrary/assemblyLine/EquipBase.cs
source/DeviceLibrary/assemblyLine/FeedingEquip_InStore.cs
source/DeviceLibrary/assemblyLine/FeedingEquip_OutStore.cs
source/DeviceLibrary/assemblyLine/HY/HY_C1Line.cs
source/DeviceLibrary/assemblyLine/HY/HY_C1_SLStation.cs
source/DeviceLibrary/assemblyLine/HY/HY_Coveryor_Partial.cs
source/DeviceLibrary/assemblyLine/LineBean_T3-C1.cs
source/DeviceLibrary/assemblyLine/MoveEquip_Partial.cs
source/DeviceLibrary/model/StoreStep.cs
source/AssemblyLineClient/FrmLineIO.Designer.cs
查看文件 @
9e37d75
...
...
@@ -44,13 +44,35 @@
this
.
btnTopDown
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
lblTrayNum
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
panel1
=
new
System
.
Windows
.
Forms
.
Panel
();
this
.
groupBox6
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
lblSelTrayNum
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
label9
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
cmbHeight
=
new
System
.
Windows
.
Forms
.
ComboBox
();
this
.
cmbWidth
=
new
System
.
Windows
.
Forms
.
ComboBox
();
this
.
label8
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
label7
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
txtTrayCode
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
label6
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
label1
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
chbInStoNG
=
new
System
.
Windows
.
Forms
.
CheckBox
();
this
.
cmbTrayType
=
new
System
.
Windows
.
Forms
.
ComboBox
();
this
.
label2
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
txtTrayPosid
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
cmbTray
=
new
System
.
Windows
.
Forms
.
ComboBox
();
this
.
btnUpdateTray
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
lblMoveInfo
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
rdbUrg
=
new
System
.
Windows
.
Forms
.
RadioButton
();
this
.
rdbCutreel
=
new
System
.
Windows
.
Forms
.
RadioButton
();
this
.
chbSmall
=
new
System
.
Windows
.
Forms
.
CheckBox
();
this
.
label3
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
txtTrayLoc
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
groupBox1
.
SuspendLayout
();
this
.
groupBox4
.
SuspendLayout
();
this
.
groupBox3
.
SuspendLayout
();
this
.
groupBox2
.
SuspendLayout
();
this
.
groupBox5
.
SuspendLayout
();
this
.
panel1
.
SuspendLayout
();
this
.
groupBox6
.
SuspendLayout
();
this
.
SuspendLayout
();
//
// timer1
...
...
@@ -73,7 +95,7 @@
this
.
groupBox1
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
groupBox1
.
Location
=
new
System
.
Drawing
.
Point
(
573
,
3
);
this
.
groupBox1
.
Name
=
"groupBox1"
;
this
.
groupBox1
.
Size
=
new
System
.
Drawing
.
Size
(
4
00
,
127
);
this
.
groupBox1
.
Size
=
new
System
.
Drawing
.
Size
(
4
75
,
127
);
this
.
groupBox1
.
TabIndex
=
105
;
this
.
groupBox1
.
TabStop
=
false
;
this
.
groupBox1
.
Text
=
"DO写入"
;
...
...
@@ -93,7 +115,7 @@
// txtDOIndex
//
this
.
txtDOIndex
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
txtDOIndex
.
Location
=
new
System
.
Drawing
.
Point
(
1
91
,
55
);
this
.
txtDOIndex
.
Location
=
new
System
.
Drawing
.
Point
(
1
85
,
53
);
this
.
txtDOIndex
.
MaxLength
=
10
;
this
.
txtDOIndex
.
Name
=
"txtDOIndex"
;
this
.
txtDOIndex
.
Size
=
new
System
.
Drawing
.
Size
(
52
,
23
);
...
...
@@ -103,7 +125,7 @@
// txtDoName
//
this
.
txtDoName
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
txtDoName
.
Location
=
new
System
.
Drawing
.
Point
(
7
5
,
55
);
this
.
txtDoName
.
Location
=
new
System
.
Drawing
.
Point
(
7
3
,
53
);
this
.
txtDoName
.
MaxLength
=
10
;
this
.
txtDoName
.
Name
=
"txtDoName"
;
this
.
txtDoName
.
Size
=
new
System
.
Drawing
.
Size
(
52
,
23
);
...
...
@@ -128,7 +150,7 @@
this
.
label17
.
AutoSize
=
true
;
this
.
label17
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label17
.
ImageAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
this
.
label17
.
Location
=
new
System
.
Drawing
.
Point
(
19
,
5
8
);
this
.
label17
.
Location
=
new
System
.
Drawing
.
Point
(
19
,
5
6
);
this
.
label17
.
Name
=
"label17"
;
this
.
label17
.
Size
=
new
System
.
Drawing
.
Size
(
46
,
17
);
this
.
label17
.
TabIndex
=
240
;
...
...
@@ -140,7 +162,7 @@
this
.
label14
.
AutoSize
=
true
;
this
.
label14
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label14
.
ImageAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
this
.
label14
.
Location
=
new
System
.
Drawing
.
Point
(
13
7
,
58
);
this
.
label14
.
Location
=
new
System
.
Drawing
.
Point
(
13
3
,
56
);
this
.
label14
.
Name
=
"label14"
;
this
.
label14
.
Size
=
new
System
.
Drawing
.
Size
(
44
,
17
);
this
.
label14
.
TabIndex
=
239
;
...
...
@@ -162,7 +184,7 @@
// txtWriteTime
//
this
.
txtWriteTime
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
txtWriteTime
.
Location
=
new
System
.
Drawing
.
Point
(
3
23
,
55
);
this
.
txtWriteTime
.
Location
=
new
System
.
Drawing
.
Point
(
3
13
,
53
);
this
.
txtWriteTime
.
MaxLength
=
10
;
this
.
txtWriteTime
.
Name
=
"txtWriteTime"
;
this
.
txtWriteTime
.
Size
=
new
System
.
Drawing
.
Size
(
52
,
23
);
...
...
@@ -174,7 +196,7 @@
this
.
label5
.
AutoSize
=
true
;
this
.
label5
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label5
.
ImageAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
this
.
label5
.
Location
=
new
System
.
Drawing
.
Point
(
2
53
,
58
);
this
.
label5
.
Location
=
new
System
.
Drawing
.
Point
(
2
45
,
56
);
this
.
label5
.
Name
=
"label5"
;
this
.
label5
.
Size
=
new
System
.
Drawing
.
Size
(
60
,
17
);
this
.
label5
.
TabIndex
=
237
;
...
...
@@ -191,7 +213,7 @@
this
.
cmbWriteIO
.
ItemHeight
=
22
;
this
.
cmbWriteIO
.
Location
=
new
System
.
Drawing
.
Point
(
11
,
18
);
this
.
cmbWriteIO
.
Name
=
"cmbWriteIO"
;
this
.
cmbWriteIO
.
Size
=
new
System
.
Drawing
.
Size
(
3
6
6
,
28
);
this
.
cmbWriteIO
.
Size
=
new
System
.
Drawing
.
Size
(
3
5
6
,
28
);
this
.
cmbWriteIO
.
TabIndex
=
234
;
this
.
cmbWriteIO
.
ValueMember
=
"ProName"
;
this
.
cmbWriteIO
.
DrawItem
+=
new
System
.
Windows
.
Forms
.
DrawItemEventHandler
(
this
.
cmbWriteIO_DrawItem
);
...
...
@@ -291,9 +313,9 @@
this
.
groupBox5
.
Controls
.
Add
(
this
.
btnFrontStopDown
);
this
.
groupBox5
.
Controls
.
Add
(
this
.
btnStopDown
);
this
.
groupBox5
.
Controls
.
Add
(
this
.
btnTopDown
);
this
.
groupBox5
.
Location
=
new
System
.
Drawing
.
Point
(
573
,
13
9
);
this
.
groupBox5
.
Location
=
new
System
.
Drawing
.
Point
(
573
,
13
6
);
this
.
groupBox5
.
Name
=
"groupBox5"
;
this
.
groupBox5
.
Size
=
new
System
.
Drawing
.
Size
(
4
00
,
208
);
this
.
groupBox5
.
Size
=
new
System
.
Drawing
.
Size
(
4
75
,
130
);
this
.
groupBox5
.
TabIndex
=
246
;
this
.
groupBox5
.
TabStop
=
false
;
this
.
groupBox5
.
Text
=
"IO操作测试"
;
...
...
@@ -302,7 +324,7 @@
//
this
.
btnLineStop
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnLineStop
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnLineStop
.
Location
=
new
System
.
Drawing
.
Point
(
1
91
,
26
);
this
.
btnLineStop
.
Location
=
new
System
.
Drawing
.
Point
(
1
3
,
69
);
this
.
btnLineStop
.
Name
=
"btnLineStop"
;
this
.
btnLineStop
.
Size
=
new
System
.
Drawing
.
Size
(
140
,
37
);
this
.
btnLineStop
.
TabIndex
=
278
;
...
...
@@ -314,7 +336,7 @@
//
this
.
button2
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
button2
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
button2
.
Location
=
new
System
.
Drawing
.
Point
(
191
,
121
);
this
.
button2
.
Location
=
new
System
.
Drawing
.
Point
(
317
,
69
);
this
.
button2
.
Name
=
"button2"
;
this
.
button2
.
Size
=
new
System
.
Drawing
.
Size
(
140
,
37
);
this
.
button2
.
TabIndex
=
277
;
...
...
@@ -326,7 +348,7 @@
//
this
.
btnDriveMotor_Run
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnDriveMotor_Run
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnDriveMotor_Run
.
Location
=
new
System
.
Drawing
.
Point
(
22
,
26
);
this
.
btnDriveMotor_Run
.
Location
=
new
System
.
Drawing
.
Point
(
13
,
22
);
this
.
btnDriveMotor_Run
.
Name
=
"btnDriveMotor_Run"
;
this
.
btnDriveMotor_Run
.
Size
=
new
System
.
Drawing
.
Size
(
140
,
37
);
this
.
btnDriveMotor_Run
.
TabIndex
=
260
;
...
...
@@ -338,7 +360,7 @@
//
this
.
btnFrontStopDown
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnFrontStopDown
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnFrontStopDown
.
Location
=
new
System
.
Drawing
.
Point
(
22
,
78
);
this
.
btnFrontStopDown
.
Location
=
new
System
.
Drawing
.
Point
(
165
,
22
);
this
.
btnFrontStopDown
.
Name
=
"btnFrontStopDown"
;
this
.
btnFrontStopDown
.
Size
=
new
System
.
Drawing
.
Size
(
140
,
37
);
this
.
btnFrontStopDown
.
TabIndex
=
276
;
...
...
@@ -350,7 +372,7 @@
//
this
.
btnStopDown
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnStopDown
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnStopDown
.
Location
=
new
System
.
Drawing
.
Point
(
22
,
11
9
);
this
.
btnStopDown
.
Location
=
new
System
.
Drawing
.
Point
(
165
,
6
9
);
this
.
btnStopDown
.
Name
=
"btnStopDown"
;
this
.
btnStopDown
.
Size
=
new
System
.
Drawing
.
Size
(
140
,
37
);
this
.
btnStopDown
.
TabIndex
=
269
;
...
...
@@ -362,7 +384,7 @@
//
this
.
btnTopDown
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnTopDown
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnTopDown
.
Location
=
new
System
.
Drawing
.
Point
(
191
,
78
);
this
.
btnTopDown
.
Location
=
new
System
.
Drawing
.
Point
(
317
,
22
);
this
.
btnTopDown
.
Name
=
"btnTopDown"
;
this
.
btnTopDown
.
Size
=
new
System
.
Drawing
.
Size
(
140
,
37
);
this
.
btnTopDown
.
TabIndex
=
262
;
...
...
@@ -375,7 +397,7 @@
this
.
lblTrayNum
.
AutoSize
=
true
;
this
.
lblTrayNum
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
lblTrayNum
.
ImageAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
this
.
lblTrayNum
.
Location
=
new
System
.
Drawing
.
Point
(
8
26
,
350
);
this
.
lblTrayNum
.
Location
=
new
System
.
Drawing
.
Point
(
8
72
,
478
);
this
.
lblTrayNum
.
Name
=
"lblTrayNum"
;
this
.
lblTrayNum
.
Size
=
new
System
.
Drawing
.
Size
(
68
,
17
);
this
.
lblTrayNum
.
TabIndex
=
275
;
...
...
@@ -386,6 +408,7 @@
// panel1
//
this
.
panel1
.
AutoScroll
=
true
;
this
.
panel1
.
Controls
.
Add
(
this
.
groupBox6
);
this
.
panel1
.
Controls
.
Add
(
this
.
lblMoveInfo
);
this
.
panel1
.
Controls
.
Add
(
this
.
lblTrayNum
);
this
.
panel1
.
Controls
.
Add
(
this
.
groupBox4
);
...
...
@@ -396,25 +419,244 @@
this
.
panel1
.
Dock
=
System
.
Windows
.
Forms
.
DockStyle
.
Fill
;
this
.
panel1
.
Location
=
new
System
.
Drawing
.
Point
(
0
,
0
);
this
.
panel1
.
Name
=
"panel1"
;
this
.
panel1
.
Size
=
new
System
.
Drawing
.
Size
(
983
,
571
);
this
.
panel1
.
Size
=
new
System
.
Drawing
.
Size
(
1060
,
571
);
this
.
panel1
.
TabIndex
=
248
;
//
// groupBox6
//
this
.
groupBox6
.
Controls
.
Add
(
this
.
txtTrayLoc
);
this
.
groupBox6
.
Controls
.
Add
(
this
.
label3
);
this
.
groupBox6
.
Controls
.
Add
(
this
.
chbSmall
);
this
.
groupBox6
.
Controls
.
Add
(
this
.
rdbCutreel
);
this
.
groupBox6
.
Controls
.
Add
(
this
.
rdbUrg
);
this
.
groupBox6
.
Controls
.
Add
(
this
.
lblSelTrayNum
);
this
.
groupBox6
.
Controls
.
Add
(
this
.
label9
);
this
.
groupBox6
.
Controls
.
Add
(
this
.
cmbHeight
);
this
.
groupBox6
.
Controls
.
Add
(
this
.
cmbWidth
);
this
.
groupBox6
.
Controls
.
Add
(
this
.
label8
);
this
.
groupBox6
.
Controls
.
Add
(
this
.
label7
);
this
.
groupBox6
.
Controls
.
Add
(
this
.
txtTrayCode
);
this
.
groupBox6
.
Controls
.
Add
(
this
.
label6
);
this
.
groupBox6
.
Controls
.
Add
(
this
.
label1
);
this
.
groupBox6
.
Controls
.
Add
(
this
.
chbInStoNG
);
this
.
groupBox6
.
Controls
.
Add
(
this
.
cmbTrayType
);
this
.
groupBox6
.
Controls
.
Add
(
this
.
label2
);
this
.
groupBox6
.
Controls
.
Add
(
this
.
txtTrayPosid
);
this
.
groupBox6
.
Controls
.
Add
(
this
.
cmbTray
);
this
.
groupBox6
.
Controls
.
Add
(
this
.
btnUpdateTray
);
this
.
groupBox6
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
groupBox6
.
Location
=
new
System
.
Drawing
.
Point
(
573
,
272
);
this
.
groupBox6
.
Name
=
"groupBox6"
;
this
.
groupBox6
.
Size
=
new
System
.
Drawing
.
Size
(
475
,
203
);
this
.
groupBox6
.
TabIndex
=
277
;
this
.
groupBox6
.
TabStop
=
false
;
this
.
groupBox6
.
Text
=
"托盘信息编辑"
;
//
// lblSelTrayNum
//
this
.
lblSelTrayNum
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
lblSelTrayNum
.
ImageAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
this
.
lblSelTrayNum
.
Location
=
new
System
.
Drawing
.
Point
(
7
,
131
);
this
.
lblSelTrayNum
.
Name
=
"lblSelTrayNum"
;
this
.
lblSelTrayNum
.
Size
=
new
System
.
Drawing
.
Size
(
462
,
64
);
this
.
lblSelTrayNum
.
TabIndex
=
276
;
this
.
lblSelTrayNum
.
Text
=
"托盘编码:"
;
this
.
lblSelTrayNum
.
TextAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleLeft
;
//
// label9
//
this
.
label9
.
AutoSize
=
true
;
this
.
label9
.
Location
=
new
System
.
Drawing
.
Point
(
111
,
100
);
this
.
label9
.
Name
=
"label9"
;
this
.
label9
.
Size
=
new
System
.
Drawing
.
Size
(
16
,
17
);
this
.
label9
.
TabIndex
=
213
;
this
.
label9
.
Text
=
"X"
;
//
// cmbHeight
//
this
.
cmbHeight
.
DropDownStyle
=
System
.
Windows
.
Forms
.
ComboBoxStyle
.
DropDownList
;
this
.
cmbHeight
.
FormattingEnabled
=
true
;
this
.
cmbHeight
.
Location
=
new
System
.
Drawing
.
Point
(
128
,
96
);
this
.
cmbHeight
.
Name
=
"cmbHeight"
;
this
.
cmbHeight
.
Size
=
new
System
.
Drawing
.
Size
(
45
,
25
);
this
.
cmbHeight
.
TabIndex
=
212
;
//
// cmbWidth
//
this
.
cmbWidth
.
DropDownStyle
=
System
.
Windows
.
Forms
.
ComboBoxStyle
.
DropDownList
;
this
.
cmbWidth
.
FormattingEnabled
=
true
;
this
.
cmbWidth
.
Location
=
new
System
.
Drawing
.
Point
(
65
,
96
);
this
.
cmbWidth
.
Name
=
"cmbWidth"
;
this
.
cmbWidth
.
Size
=
new
System
.
Drawing
.
Size
(
45
,
25
);
this
.
cmbWidth
.
TabIndex
=
211
;
//
// label8
//
this
.
label8
.
AutoSize
=
true
;
this
.
label8
.
Location
=
new
System
.
Drawing
.
Point
(
24
,
100
);
this
.
label8
.
Name
=
"label8"
;
this
.
label8
.
Size
=
new
System
.
Drawing
.
Size
(
35
,
17
);
this
.
label8
.
TabIndex
=
210
;
this
.
label8
.
Text
=
"尺寸:"
;
//
// label7
//
this
.
label7
.
AutoSize
=
true
;
this
.
label7
.
Location
=
new
System
.
Drawing
.
Point
(
155
,
60
);
this
.
label7
.
Name
=
"label7"
;
this
.
label7
.
Size
=
new
System
.
Drawing
.
Size
(
35
,
17
);
this
.
label7
.
TabIndex
=
209
;
this
.
label7
.
Text
=
"条码:"
;
//
// txtTrayCode
//
this
.
txtTrayCode
.
Location
=
new
System
.
Drawing
.
Point
(
195
,
57
);
this
.
txtTrayCode
.
Name
=
"txtTrayCode"
;
this
.
txtTrayCode
.
Size
=
new
System
.
Drawing
.
Size
(
105
,
23
);
this
.
txtTrayCode
.
TabIndex
=
208
;
//
// label6
//
this
.
label6
.
AutoSize
=
true
;
this
.
label6
.
Location
=
new
System
.
Drawing
.
Point
(
16
,
27
);
this
.
label6
.
Name
=
"label6"
;
this
.
label6
.
Size
=
new
System
.
Drawing
.
Size
(
47
,
17
);
this
.
label6
.
TabIndex
=
207
;
this
.
label6
.
Text
=
"托盘号:"
;
//
// label1
//
this
.
label1
.
AutoSize
=
true
;
this
.
label1
.
Location
=
new
System
.
Drawing
.
Point
(
4
,
60
);
this
.
label1
.
Name
=
"label1"
;
this
.
label1
.
Size
=
new
System
.
Drawing
.
Size
(
59
,
17
);
this
.
label1
.
TabIndex
=
206
;
this
.
label1
.
Text
=
"料盘类型:"
;
//
// chbInStoNG
//
this
.
chbInStoNG
.
AutoSize
=
true
;
this
.
chbInStoNG
.
Location
=
new
System
.
Drawing
.
Point
(
398
,
58
);
this
.
chbInStoNG
.
Name
=
"chbInStoNG"
;
this
.
chbInStoNG
.
Size
=
new
System
.
Drawing
.
Size
(
70
,
21
);
this
.
chbInStoNG
.
TabIndex
=
205
;
this
.
chbInStoNG
.
Text
=
"入库NG"
;
this
.
chbInStoNG
.
UseVisualStyleBackColor
=
true
;
//
// cmbTrayType
//
this
.
cmbTrayType
.
DropDownStyle
=
System
.
Windows
.
Forms
.
ComboBoxStyle
.
DropDownList
;
this
.
cmbTrayType
.
FormattingEnabled
=
true
;
this
.
cmbTrayType
.
Items
.
AddRange
(
new
object
[]
{
"无"
,
"入库"
,
"出库"
});
this
.
cmbTrayType
.
Location
=
new
System
.
Drawing
.
Point
(
65
,
56
);
this
.
cmbTrayType
.
Name
=
"cmbTrayType"
;
this
.
cmbTrayType
.
Size
=
new
System
.
Drawing
.
Size
(
78
,
25
);
this
.
cmbTrayType
.
TabIndex
=
204
;
//
// label2
//
this
.
label2
.
AutoSize
=
true
;
this
.
label2
.
Location
=
new
System
.
Drawing
.
Point
(
155
,
27
);
this
.
label2
.
Name
=
"label2"
;
this
.
label2
.
Size
=
new
System
.
Drawing
.
Size
(
35
,
17
);
this
.
label2
.
TabIndex
=
199
;
this
.
label2
.
Text
=
"库位:"
;
//
// txtTrayPosid
//
this
.
txtTrayPosid
.
Location
=
new
System
.
Drawing
.
Point
(
195
,
24
);
this
.
txtTrayPosid
.
Name
=
"txtTrayPosid"
;
this
.
txtTrayPosid
.
Size
=
new
System
.
Drawing
.
Size
(
105
,
23
);
this
.
txtTrayPosid
.
TabIndex
=
198
;
//
// cmbTray
//
this
.
cmbTray
.
DropDownStyle
=
System
.
Windows
.
Forms
.
ComboBoxStyle
.
DropDownList
;
this
.
cmbTray
.
FormattingEnabled
=
true
;
this
.
cmbTray
.
Location
=
new
System
.
Drawing
.
Point
(
65
,
23
);
this
.
cmbTray
.
Name
=
"cmbTray"
;
this
.
cmbTray
.
Size
=
new
System
.
Drawing
.
Size
(
78
,
25
);
this
.
cmbTray
.
TabIndex
=
194
;
this
.
cmbTray
.
SelectedIndexChanged
+=
new
System
.
EventHandler
(
this
.
cmbTray_SelectedIndexChanged
);
//
// btnUpdateTray
//
this
.
btnUpdateTray
.
BackColor
=
System
.
Drawing
.
Color
.
White
;
this
.
btnUpdateTray
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnUpdateTray
.
Location
=
new
System
.
Drawing
.
Point
(
333
,
91
);
this
.
btnUpdateTray
.
Name
=
"btnUpdateTray"
;
this
.
btnUpdateTray
.
Size
=
new
System
.
Drawing
.
Size
(
105
,
35
);
this
.
btnUpdateTray
.
TabIndex
=
192
;
this
.
btnUpdateTray
.
Text
=
"更新托盘"
;
this
.
btnUpdateTray
.
UseVisualStyleBackColor
=
false
;
this
.
btnUpdateTray
.
Click
+=
new
System
.
EventHandler
(
this
.
btnUpdateTray_Click
);
//
// lblMoveInfo
//
this
.
lblMoveInfo
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
lblMoveInfo
.
AutoSize
=
true
;
this
.
lblMoveInfo
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
lblMoveInfo
.
Location
=
new
System
.
Drawing
.
Point
(
57
9
,
350
);
this
.
lblMoveInfo
.
Location
=
new
System
.
Drawing
.
Point
(
57
7
,
478
);
this
.
lblMoveInfo
.
Name
=
"lblMoveInfo"
;
this
.
lblMoveInfo
.
Size
=
new
System
.
Drawing
.
Size
(
29
,
17
);
this
.
lblMoveInfo
.
TabIndex
=
276
;
this
.
lblMoveInfo
.
Text
=
"CID"
;
//
// rdbUrg
//
this
.
rdbUrg
.
AutoSize
=
true
;
this
.
rdbUrg
.
Location
=
new
System
.
Drawing
.
Point
(
317
,
25
);
this
.
rdbUrg
.
Name
=
"rdbUrg"
;
this
.
rdbUrg
.
Size
=
new
System
.
Drawing
.
Size
(
62
,
21
);
this
.
rdbUrg
.
TabIndex
=
277
;
this
.
rdbUrg
.
TabStop
=
true
;
this
.
rdbUrg
.
Text
=
"紧急料"
;
this
.
rdbUrg
.
UseVisualStyleBackColor
=
true
;
//
// rdbCutreel
//
this
.
rdbCutreel
.
AutoSize
=
true
;
this
.
rdbCutreel
.
Location
=
new
System
.
Drawing
.
Point
(
395
,
25
);
this
.
rdbCutreel
.
Name
=
"rdbCutreel"
;
this
.
rdbCutreel
.
Size
=
new
System
.
Drawing
.
Size
(
62
,
21
);
this
.
rdbCutreel
.
TabIndex
=
278
;
this
.
rdbCutreel
.
TabStop
=
true
;
this
.
rdbCutreel
.
Text
=
"分盘料"
;
this
.
rdbCutreel
.
UseVisualStyleBackColor
=
true
;
//
// chbSmall
//
this
.
chbSmall
.
AutoSize
=
true
;
this
.
chbSmall
.
Location
=
new
System
.
Drawing
.
Point
(
316
,
58
);
this
.
chbSmall
.
Name
=
"chbSmall"
;
this
.
chbSmall
.
Size
=
new
System
.
Drawing
.
Size
(
63
,
21
);
this
.
chbSmall
.
TabIndex
=
279
;
this
.
chbSmall
.
Text
=
"小料盘"
;
this
.
chbSmall
.
UseVisualStyleBackColor
=
true
;
//
// label3
//
this
.
label3
.
AutoSize
=
true
;
this
.
label3
.
Location
=
new
System
.
Drawing
.
Point
(
190
,
100
);
this
.
label3
.
Name
=
"label3"
;
this
.
label3
.
Size
=
new
System
.
Drawing
.
Size
(
47
,
17
);
this
.
label3
.
TabIndex
=
280
;
this
.
label3
.
Text
=
"料架号:"
;
//
// txtTrayLoc
//
this
.
txtTrayLoc
.
Location
=
new
System
.
Drawing
.
Point
(
241
,
97
);
this
.
txtTrayLoc
.
Name
=
"txtTrayLoc"
;
this
.
txtTrayLoc
.
Size
=
new
System
.
Drawing
.
Size
(
59
,
23
);
this
.
txtTrayLoc
.
TabIndex
=
281
;
//
// FrmLineIO
//
this
.
AutoScaleDimensions
=
new
System
.
Drawing
.
SizeF
(
7F
,
17F
);
this
.
AutoScaleMode
=
System
.
Windows
.
Forms
.
AutoScaleMode
.
Font
;
this
.
ClientSize
=
new
System
.
Drawing
.
Size
(
983
,
571
);
this
.
ClientSize
=
new
System
.
Drawing
.
Size
(
1060
,
571
);
this
.
Controls
.
Add
(
this
.
panel1
);
this
.
Icon
=
((
System
.
Drawing
.
Icon
)(
resources
.
GetObject
(
"$this.Icon"
)));
this
.
MaximizeBox
=
false
;
...
...
@@ -432,6 +674,8 @@
this
.
groupBox5
.
ResumeLayout
(
false
);
this
.
panel1
.
ResumeLayout
(
false
);
this
.
panel1
.
PerformLayout
();
this
.
groupBox6
.
ResumeLayout
(
false
);
this
.
groupBox6
.
PerformLayout
();
this
.
ResumeLayout
(
false
);
}
...
...
@@ -466,6 +710,27 @@
private
System
.
Windows
.
Forms
.
Button
button2
;
private
System
.
Windows
.
Forms
.
Button
btnLineStop
;
private
System
.
Windows
.
Forms
.
Label
lblMoveInfo
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox6
;
private
System
.
Windows
.
Forms
.
Label
label6
;
private
System
.
Windows
.
Forms
.
Label
label1
;
private
System
.
Windows
.
Forms
.
CheckBox
chbInStoNG
;
private
System
.
Windows
.
Forms
.
ComboBox
cmbTrayType
;
private
System
.
Windows
.
Forms
.
Label
label2
;
private
System
.
Windows
.
Forms
.
TextBox
txtTrayPosid
;
private
System
.
Windows
.
Forms
.
ComboBox
cmbTray
;
private
System
.
Windows
.
Forms
.
Button
btnUpdateTray
;
private
System
.
Windows
.
Forms
.
Label
label7
;
private
System
.
Windows
.
Forms
.
TextBox
txtTrayCode
;
private
System
.
Windows
.
Forms
.
Label
label8
;
private
System
.
Windows
.
Forms
.
Label
label9
;
private
System
.
Windows
.
Forms
.
ComboBox
cmbHeight
;
private
System
.
Windows
.
Forms
.
ComboBox
cmbWidth
;
private
System
.
Windows
.
Forms
.
Label
lblSelTrayNum
;
private
System
.
Windows
.
Forms
.
TextBox
txtTrayLoc
;
private
System
.
Windows
.
Forms
.
Label
label3
;
private
System
.
Windows
.
Forms
.
CheckBox
chbSmall
;
private
System
.
Windows
.
Forms
.
RadioButton
rdbCutreel
;
private
System
.
Windows
.
Forms
.
RadioButton
rdbUrg
;
}
}
source/AssemblyLineClient/FrmLineIO.cs
查看文件 @
9e37d75
...
...
@@ -110,6 +110,13 @@ namespace OnlineStore.AssemblyLine
{
ReadIOList
();
lblMoveInfo
.
Text
=
LineManager
.
Line
.
GetMoveStr
();
lblTrayNum
.
Text
=
"T3-C1托盘号:"
+
LineManager
.
Line
.
T3C1_TrayNum
.
ToString
();
if
(
cmbTray
.
SelectedIndex
>=
0
)
{
int
trayNum
=
cmbTray
.
SelectedIndex
+
1
;
TrayInfo
tray
=
TrayManager
.
GetTrayInfo
(
trayNum
);
lblSelTrayNum
.
Text
=
tray
.
ToStr
();
}
}
}
...
...
@@ -188,6 +195,66 @@ namespace OnlineStore.AssemblyLine
{
// KNDAIManager.NeedShow = true;
//tabControl1.TabPages.RemoveAt(1);
LoadTray
();
}
private
void
LoadTray
()
{
cmbTray
.
Items
.
Clear
();
for
(
int
i
=
1
;
i
<=
30
;
i
++)
{
cmbTray
.
Items
.
Add
(
i
.
ToString
());
}
cmbWidth
.
Items
.
Clear
();
cmbHeight
.
Items
.
Clear
();
foreach
(
int
heigth
in
LineManager
.
GetTrayList
())
{
cmbHeight
.
Items
.
Add
(
heigth
);
}
cmbWidth
.
Items
.
AddRange
(
new
object
[]
{
7
,
11
,
13
,
15
});
cmbWidth
.
SelectedIndex
=
0
;
cmbHeight
.
SelectedIndex
=
0
;
cmbTrayType
.
SelectedIndex
=
0
;
cmbTray
.
SelectedIndex
=
0
;
}
private
void
btnUpdateTray_Click
(
object
sender
,
EventArgs
e
)
{
int
num
=
cmbTray
.
SelectedIndex
+
1
;
DialogResult
resut
=
MessageBox
.
Show
(
"确定手动更新托盘【"
+
num
+
"】的信息?"
,
"提示"
,
MessageBoxButtons
.
YesNo
);
if
(
resut
.
Equals
(
DialogResult
.
Yes
))
{
int
trayType
=
cmbTrayType
.
SelectedIndex
;
string
posId
=
txtTrayPosid
.
Text
;
int
ph
=
Convert
.
ToInt32
(
cmbHeight
.
Text
);
int
pw
=
Convert
.
ToInt32
(
cmbWidth
.
Text
);
bool
hasTray
=
trayType
>
0
;
bool
inNg
=
chbInStoNG
.
Checked
;
bool
isSmall
=
chbSmall
.
Checked
;
bool
urg
=
rdbUrg
.
Checked
;
bool
cutReel
=
rdbCutreel
.
Checked
;
int
loc
=
FormUtil
.
GetIntValue
(
txtTrayLoc
);
string
code
=
txtTrayCode
.
Text
.
Trim
();
if
(
hasTray
)
{
InOutParam
inoutP
=
new
InOutParam
(
num
,
"CodeTest"
,
posId
,
ph
,
pw
,
inNg
,
urg
,
cutReel
,
isSmall
,
""
,
loc
);
TrayManager
.
UpdateTrayInfo
(
num
,
hasTray
,
trayType
,
inoutP
,
"InStoreNG "
);
}
else
{
TrayManager
.
UpdateTrayInfo
(
num
,
hasTray
);
}
if
(
trayType
.
Equals
(
1
)
&&
inNg
)
{
TrayManager
.
UpdateInStoreNG
(
num
,
inNg
,
"手动更新"
);
}
TrayInfo
info
=
TrayManager
.
GetTrayInfo
(
num
);
MessageBox
.
Show
(
"更新成功:\r"
+
info
.
ToStr
());
LogUtil
.
info
(
"手动更新托盘信息:"
+
info
.
ToStr
());
}
}
private
void
cmbWriteIO_DrawItem
(
object
sender
,
DrawItemEventArgs
e
)
...
...
@@ -307,5 +374,42 @@ namespace OnlineStore.AssemblyLine
LineManager
.
Line
.
WriteDrivetMotorRun
(
IO_VALUE
.
LOW
);
}
private
void
cmbTray_SelectedIndexChanged
(
object
sender
,
EventArgs
e
)
{
if
(
cmbTray
.
SelectedIndex
>=
0
)
{
int
trayNum
=
cmbTray
.
SelectedIndex
+
1
;
TrayInfo
tray
=
TrayManager
.
GetTrayInfo
(
trayNum
);
cmbTrayType
.
SelectedIndex
=
tray
.
InOrOutStore
;
if
(
tray
.
IsFull
)
{
txtTrayCode
.
Text
=
tray
.
InoutPar
.
WareCode
;
txtTrayPosid
.
Text
=
tray
.
InoutPar
.
PosId
;
cmbWidth
.
Text
=
tray
.
InoutPar
.
PlateW
.
ToString
();
cmbHeight
.
Text
=
tray
.
InoutPar
.
PlateH
.
ToString
();
rdbCutreel
.
Checked
=
tray
.
InoutPar
.
cutReel
;
rdbUrg
.
Checked
=
tray
.
InoutPar
.
urgentReel
;
chbSmall
.
Checked
=
tray
.
InoutPar
.
smallReel
;
txtTrayLoc
.
Text
=
tray
.
InoutPar
.
rfidLoc
.
ToString
();
chbInStoNG
.
Checked
=
tray
.
InoutPar
.
InStoreNg
;
}
else
{
txtTrayCode
.
Text
=
""
;
txtTrayPosid
.
Text
=
""
;
cmbWidth
.
Text
=
""
;
cmbHeight
.
Text
=
""
;
rdbCutreel
.
Checked
=
false
;
rdbUrg
.
Checked
=
false
;
chbSmall
.
Checked
=
false
;
txtTrayLoc
.
Text
=
""
;
chbInStoNG
.
Checked
=
false
;
}
}
}
}
}
source/AssemblyLineClient/FrmLineStore.Designer.cs
查看文件 @
9e37d75
...
...
@@ -62,17 +62,6 @@
this
.
btnInStoreTset
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
button2
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
button1
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
groupBox3
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
chbInStoNG
=
new
System
.
Windows
.
Forms
.
CheckBox
();
this
.
cmbTrayType
=
new
System
.
Windows
.
Forms
.
ComboBox
();
this
.
label4
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
txtTrayW
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
label3
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
txtTrayH
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
label2
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
txtTrayPosid
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
cmbTray
=
new
System
.
Windows
.
Forms
.
ComboBox
();
this
.
btnUpdateTray
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
listView1
=
new
System
.
Windows
.
Forms
.
ListView
();
this
.
tabPage5
=
new
System
.
Windows
.
Forms
.
TabPage
();
this
.
panel5
=
new
System
.
Windows
.
Forms
.
Panel
();
...
...
@@ -146,7 +135,6 @@
this
.
panel4
.
SuspendLayout
();
this
.
tabPage4
.
SuspendLayout
();
this
.
groupBox1
.
SuspendLayout
();
this
.
groupBox3
.
SuspendLayout
();
this
.
tabPage5
.
SuspendLayout
();
this
.
panel5
.
SuspendLayout
();
((
System
.
ComponentModel
.
ISupportInitialize
)(
this
.
picLine
)).
BeginInit
();
...
...
@@ -439,7 +427,6 @@
// tabPage4
//
this
.
tabPage4
.
Controls
.
Add
(
this
.
groupBox1
);
this
.
tabPage4
.
Controls
.
Add
(
this
.
groupBox3
);
this
.
tabPage4
.
Controls
.
Add
(
this
.
listView1
);
this
.
tabPage4
.
Location
=
new
System
.
Drawing
.
Point
(
4
,
29
);
this
.
tabPage4
.
Name
=
"tabPage4"
;
...
...
@@ -541,124 +528,6 @@
this
.
button1
.
UseVisualStyleBackColor
=
false
;
this
.
button1
.
Click
+=
new
System
.
EventHandler
(
this
.
button1_Click
);
//
// groupBox3
//
this
.
groupBox3
.
Controls
.
Add
(
this
.
chbInStoNG
);
this
.
groupBox3
.
Controls
.
Add
(
this
.
cmbTrayType
);
this
.
groupBox3
.
Controls
.
Add
(
this
.
label4
);
this
.
groupBox3
.
Controls
.
Add
(
this
.
txtTrayW
);
this
.
groupBox3
.
Controls
.
Add
(
this
.
label3
);
this
.
groupBox3
.
Controls
.
Add
(
this
.
txtTrayH
);
this
.
groupBox3
.
Controls
.
Add
(
this
.
label2
);
this
.
groupBox3
.
Controls
.
Add
(
this
.
txtTrayPosid
);
this
.
groupBox3
.
Controls
.
Add
(
this
.
cmbTray
);
this
.
groupBox3
.
Controls
.
Add
(
this
.
btnUpdateTray
);
this
.
groupBox3
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
groupBox3
.
Location
=
new
System
.
Drawing
.
Point
(
417
,
169
);
this
.
groupBox3
.
Name
=
"groupBox3"
;
this
.
groupBox3
.
Size
=
new
System
.
Drawing
.
Size
(
670
,
61
);
this
.
groupBox3
.
TabIndex
=
197
;
this
.
groupBox3
.
TabStop
=
false
;
this
.
groupBox3
.
Text
=
"操作信息"
;
this
.
groupBox3
.
Visible
=
false
;
//
// chbInStoNG
//
this
.
chbInStoNG
.
AutoSize
=
true
;
this
.
chbInStoNG
.
Location
=
new
System
.
Drawing
.
Point
(
414
,
24
);
this
.
chbInStoNG
.
Name
=
"chbInStoNG"
;
this
.
chbInStoNG
.
Size
=
new
System
.
Drawing
.
Size
(
70
,
21
);
this
.
chbInStoNG
.
TabIndex
=
205
;
this
.
chbInStoNG
.
Text
=
"入库NG"
;
this
.
chbInStoNG
.
UseVisualStyleBackColor
=
true
;
//
// cmbTrayType
//
this
.
cmbTrayType
.
DropDownStyle
=
System
.
Windows
.
Forms
.
ComboBoxStyle
.
DropDownList
;
this
.
cmbTrayType
.
FormattingEnabled
=
true
;
this
.
cmbTrayType
.
Items
.
AddRange
(
new
object
[]
{
"无"
,
"入库"
,
"出库"
});
this
.
cmbTrayType
.
Location
=
new
System
.
Drawing
.
Point
(
64
,
22
);
this
.
cmbTrayType
.
Name
=
"cmbTrayType"
;
this
.
cmbTrayType
.
Size
=
new
System
.
Drawing
.
Size
(
78
,
25
);
this
.
cmbTrayType
.
TabIndex
=
204
;
//
// label4
//
this
.
label4
.
AutoSize
=
true
;
this
.
label4
.
Location
=
new
System
.
Drawing
.
Point
(
354
,
26
);
this
.
label4
.
Name
=
"label4"
;
this
.
label4
.
Size
=
new
System
.
Drawing
.
Size
(
23
,
17
);
this
.
label4
.
TabIndex
=
203
;
this
.
label4
.
Text
=
"宽:"
;
//
// txtTrayW
//
this
.
txtTrayW
.
Location
=
new
System
.
Drawing
.
Point
(
381
,
23
);
this
.
txtTrayW
.
MaxLength
=
2
;
this
.
txtTrayW
.
Name
=
"txtTrayW"
;
this
.
txtTrayW
.
Size
=
new
System
.
Drawing
.
Size
(
29
,
23
);
this
.
txtTrayW
.
TabIndex
=
202
;
this
.
txtTrayW
.
Text
=
"7"
;
//
// label3
//
this
.
label3
.
AutoSize
=
true
;
this
.
label3
.
Location
=
new
System
.
Drawing
.
Point
(
294
,
26
);
this
.
label3
.
Name
=
"label3"
;
this
.
label3
.
Size
=
new
System
.
Drawing
.
Size
(
23
,
17
);
this
.
label3
.
TabIndex
=
201
;
this
.
label3
.
Text
=
"高:"
;
//
// txtTrayH
//
this
.
txtTrayH
.
Location
=
new
System
.
Drawing
.
Point
(
321
,
23
);
this
.
txtTrayH
.
MaxLength
=
2
;
this
.
txtTrayH
.
Name
=
"txtTrayH"
;
this
.
txtTrayH
.
Size
=
new
System
.
Drawing
.
Size
(
29
,
23
);
this
.
txtTrayH
.
TabIndex
=
200
;
this
.
txtTrayH
.
Text
=
"8"
;
//
// label2
//
this
.
label2
.
AutoSize
=
true
;
this
.
label2
.
Location
=
new
System
.
Drawing
.
Point
(
146
,
26
);
this
.
label2
.
Name
=
"label2"
;
this
.
label2
.
Size
=
new
System
.
Drawing
.
Size
(
35
,
17
);
this
.
label2
.
TabIndex
=
199
;
this
.
label2
.
Text
=
"库位:"
;
//
// txtTrayPosid
//
this
.
txtTrayPosid
.
Location
=
new
System
.
Drawing
.
Point
(
185
,
23
);
this
.
txtTrayPosid
.
Name
=
"txtTrayPosid"
;
this
.
txtTrayPosid
.
Size
=
new
System
.
Drawing
.
Size
(
105
,
23
);
this
.
txtTrayPosid
.
TabIndex
=
198
;
this
.
txtTrayPosid
.
Text
=
"11#AC1_1_1"
;
//
// cmbTray
//
this
.
cmbTray
.
DropDownStyle
=
System
.
Windows
.
Forms
.
ComboBoxStyle
.
DropDownList
;
this
.
cmbTray
.
FormattingEnabled
=
true
;
this
.
cmbTray
.
Location
=
new
System
.
Drawing
.
Point
(
9
,
22
);
this
.
cmbTray
.
Name
=
"cmbTray"
;
this
.
cmbTray
.
Size
=
new
System
.
Drawing
.
Size
(
51
,
25
);
this
.
cmbTray
.
TabIndex
=
194
;
//
// btnUpdateTray
//
this
.
btnUpdateTray
.
BackColor
=
System
.
Drawing
.
Color
.
White
;
this
.
btnUpdateTray
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnUpdateTray
.
Location
=
new
System
.
Drawing
.
Point
(
488
,
17
);
this
.
btnUpdateTray
.
Name
=
"btnUpdateTray"
;
this
.
btnUpdateTray
.
Size
=
new
System
.
Drawing
.
Size
(
105
,
35
);
this
.
btnUpdateTray
.
TabIndex
=
192
;
this
.
btnUpdateTray
.
Text
=
"更新托盘"
;
this
.
btnUpdateTray
.
UseVisualStyleBackColor
=
false
;
this
.
btnUpdateTray
.
Click
+=
new
System
.
EventHandler
(
this
.
btnUpdateTray_Click
);
//
// listView1
//
this
.
listView1
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)(((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
...
...
@@ -866,73 +735,73 @@
// toolStripSeparator6
//
this
.
toolStripSeparator6
.
Name
=
"toolStripSeparator6"
;
this
.
toolStripSeparator6
.
Size
=
new
System
.
Drawing
.
Size
(
17
7
,
6
);
this
.
toolStripSeparator6
.
Size
=
new
System
.
Drawing
.
Size
(
17
3
,
6
);
this
.
toolStripSeparator6
.
Visible
=
false
;
//
// 二维码学习ToolStripMenuItem
//
this
.
二维码学习
ToolStripMenuItem
.
Name
=
"二维码学习ToolStripMenuItem"
;
this
.
二维码学习
ToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
1
80
,
26
);
this
.
二维码学习
ToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
1
76
,
26
);
this
.
二维码学习
ToolStripMenuItem
.
Text
=
"二维码学习"
;
this
.
二维码学习
ToolStripMenuItem
.
Click
+=
new
System
.
EventHandler
(
this
.
二维码学习
ToolStripMenuItem_Click
);
//
// toolStripSeparator7
//
this
.
toolStripSeparator7
.
Name
=
"toolStripSeparator7"
;
this
.
toolStripSeparator7
.
Size
=
new
System
.
Drawing
.
Size
(
17
7
,
6
);
this
.
toolStripSeparator7
.
Size
=
new
System
.
Drawing
.
Size
(
17
3
,
6
);
//
// 托盘初始化ToolStripMenuItem
//
this
.
托盘初始化
ToolStripMenuItem
.
Name
=
"托盘初始化ToolStripMenuItem"
;
this
.
托盘初始化
ToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
1
80
,
26
);
this
.
托盘初始化
ToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
1
76
,
26
);
this
.
托盘初始化
ToolStripMenuItem
.
Text
=
"托盘编码"
;
this
.
托盘初始化
ToolStripMenuItem
.
Click
+=
new
System
.
EventHandler
(
this
.
托盘初始化
ToolStripMenuItem_Click
);
//
// toolStripSeparator9
//
this
.
toolStripSeparator9
.
Name
=
"toolStripSeparator9"
;
this
.
toolStripSeparator9
.
Size
=
new
System
.
Drawing
.
Size
(
17
7
,
6
);
this
.
toolStripSeparator9
.
Size
=
new
System
.
Drawing
.
Size
(
17
3
,
6
);
//
// toolStripMenuItem2
//
this
.
toolStripMenuItem2
.
Name
=
"toolStripMenuItem2"
;
this
.
toolStripMenuItem2
.
Size
=
new
System
.
Drawing
.
Size
(
1
80
,
26
);
this
.
toolStripMenuItem2
.
Size
=
new
System
.
Drawing
.
Size
(
1
76
,
26
);
this
.
toolStripMenuItem2
.
Text
=
"AGV调试"
;
this
.
toolStripMenuItem2
.
Click
+=
new
System
.
EventHandler
(
this
.
toolStripMenuItem2_Click
);
//
// toolStripSeparator13
//
this
.
toolStripSeparator13
.
Name
=
"toolStripSeparator13"
;
this
.
toolStripSeparator13
.
Size
=
new
System
.
Drawing
.
Size
(
17
7
,
6
);
this
.
toolStripSeparator13
.
Size
=
new
System
.
Drawing
.
Size
(
17
3
,
6
);
//
// iO模块状态ToolStripMenuItem
//
this
.
iO
模块状态
ToolStripMenuItem
.
Name
=
"iO模块状态ToolStripMenuItem"
;
this
.
iO
模块状态
ToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
1
80
,
26
);
this
.
iO
模块状态
ToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
1
76
,
26
);
this
.
iO
模块状态
ToolStripMenuItem
.
Text
=
"查看料仓状态"
;
this
.
iO
模块状态
ToolStripMenuItem
.
Click
+=
new
System
.
EventHandler
(
this
.
iO
模块状态
ToolStripMenuItem_Click
);
//
// toolStripSeparator14
//
this
.
toolStripSeparator14
.
Name
=
"toolStripSeparator14"
;
this
.
toolStripSeparator14
.
Size
=
new
System
.
Drawing
.
Size
(
17
7
,
6
);
this
.
toolStripSeparator14
.
Size
=
new
System
.
Drawing
.
Size
(
17
3
,
6
);
//
// 查看托盘信息ToolStripMenuItem
//
this
.
查看托盘信息
ToolStripMenuItem
.
Name
=
"查看托盘信息ToolStripMenuItem"
;
this
.
查看托盘信息
ToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
1
80
,
26
);
this
.
查看托盘信息
ToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
1
76
,
26
);
this
.
查看托盘信息
ToolStripMenuItem
.
Text
=
"查看托盘信息"
;
this
.
查看托盘信息
ToolStripMenuItem
.
Click
+=
new
System
.
EventHandler
(
this
.
btnTrayInfo_Click
);
//
// toolStripSeparator12
//
this
.
toolStripSeparator12
.
Name
=
"toolStripSeparator12"
;
this
.
toolStripSeparator12
.
Size
=
new
System
.
Drawing
.
Size
(
17
7
,
6
);
this
.
toolStripSeparator12
.
Size
=
new
System
.
Drawing
.
Size
(
17
3
,
6
);
//
// 清空托盘信息ToolStripMenuItem
//
this
.
清空托盘信息
ToolStripMenuItem
.
Name
=
"清空托盘信息ToolStripMenuItem"
;
this
.
清空托盘信息
ToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
1
80
,
26
);
this
.
清空托盘信息
ToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
1
76
,
26
);
this
.
清空托盘信息
ToolStripMenuItem
.
Text
=
"清空托盘信息"
;
this
.
清空托盘信息
ToolStripMenuItem
.
Click
+=
new
System
.
EventHandler
(
this
.
清空托盘信息
ToolStripMenuItem_Click
);
//
...
...
@@ -1142,6 +1011,7 @@
this
.
Icon
=
((
System
.
Drawing
.
Icon
)(
resources
.
GetObject
(
"$this.Icon"
)));
this
.
MainMenuStrip
=
this
.
menuStrip1
;
this
.
Name
=
"FrmLineStore"
;
this
.
Opacity
=
0.1D
;
this
.
StartPosition
=
System
.
Windows
.
Forms
.
FormStartPosition
.
CenterScreen
;
this
.
Text
=
"流水线系统"
;
this
.
WindowState
=
System
.
Windows
.
Forms
.
FormWindowState
.
Maximized
;
...
...
@@ -1161,8 +1031,6 @@
this
.
tabPage4
.
ResumeLayout
(
false
);
this
.
groupBox1
.
ResumeLayout
(
false
);
this
.
groupBox1
.
PerformLayout
();
this
.
groupBox3
.
ResumeLayout
(
false
);
this
.
groupBox3
.
PerformLayout
();
this
.
tabPage5
.
ResumeLayout
(
false
);
this
.
tabPage5
.
PerformLayout
();
this
.
panel5
.
ResumeLayout
(
false
);
...
...
@@ -1198,17 +1066,6 @@
private
System
.
Windows
.
Forms
.
Label
lblPosId
;
private
System
.
Windows
.
Forms
.
Button
btnUpdateStatus
;
private
System
.
Windows
.
Forms
.
ToolStripSeparator
toolStripSeparator8
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox3
;
private
System
.
Windows
.
Forms
.
CheckBox
chbInStoNG
;
private
System
.
Windows
.
Forms
.
ComboBox
cmbTrayType
;
private
System
.
Windows
.
Forms
.
Label
label4
;
private
System
.
Windows
.
Forms
.
TextBox
txtTrayW
;
private
System
.
Windows
.
Forms
.
Label
label3
;
private
System
.
Windows
.
Forms
.
TextBox
txtTrayH
;
private
System
.
Windows
.
Forms
.
Label
label2
;
private
System
.
Windows
.
Forms
.
TextBox
txtTrayPosid
;
private
System
.
Windows
.
Forms
.
ComboBox
cmbTray
;
private
System
.
Windows
.
Forms
.
Button
btnUpdateTray
;
private
System
.
Windows
.
Forms
.
ToolStripMenuItem
操作
ToolStripMenuItem
;
private
System
.
Windows
.
Forms
.
ToolStripSeparator
toolStripSeparator1
;
private
System
.
Windows
.
Forms
.
ToolStripMenuItem
启动
AToolStripMenuItem
;
...
...
source/AssemblyLineClient/FrmLineStore.cs
查看文件 @
9e37d75
...
...
@@ -36,6 +36,7 @@ namespace OnlineStore.AssemblyLine
private
void
LoadStoreData
()
{
this
.
Opacity
=
0
;
formLineStatus
(
false
);
string
title
=
ConfigAppSettings
.
GetValue
(
Setting_Init
.
App_Title
);
this
.
Text
=
title
;
...
...
@@ -53,14 +54,11 @@ namespace OnlineStore.AssemblyLine
AddForm
(
" IO列表查看 "
,
ioStatus
);
FrmLineIO
frmIOStatus
=
new
FrmLineIO
();
AddForm
(
" 流水线IO "
,
frmIOStatus
);
LoadMoveList
();
LoadListView
();
托盘初始化
ToolStripMenuItem
.
Visible
=
ConfigAppSettings
.
GetIntValue
(
Setting_Init
.
OpenRFIDWrite
).
Equals
(
1
);
cmbTray
.
Items
.
Clear
();
for
(
int
i
=
1
;
i
<=
30
;
i
++)
{
cmbTray
.
Items
.
Add
(
i
.
ToString
());
}
if
(
autoValue
.
Equals
(
1
))
{
开机自动启动
ToolStripMenuItem
.
Text
=
gouStr
+
" 开机自动启动"
;
...
...
@@ -77,12 +75,11 @@ namespace OnlineStore.AssemblyLine
{
启用蜂鸣器
ToolStripMenuItem
.
Text
=
"启用蜂鸣器"
;
}
cmbTrayType
.
SelectedIndex
=
0
;
cmbTray
.
SelectedIndex
=
0
;
LogUtil
.
logBox
=
this
.
logBox
;
LoadOk
=
true
;
//HideForm();
lastLogTime
=
DateTime
.
Now
.
AddMinutes
(-
10
);
this
.
Opacity
=
100
;
LoadOk
=
true
;
}
private
void
AddForm
(
string
text
,
Form
form
)
{
...
...
@@ -820,37 +817,7 @@ namespace OnlineStore.AssemblyLine
}
}
private
void
btnUpdateTray_Click
(
object
sender
,
EventArgs
e
)
{
int
num
=
cmbTray
.
SelectedIndex
+
1
;
DialogResult
resut
=
MessageBox
.
Show
(
"确定手动更新托盘【"
+
num
+
"】的信息?"
,
"提示"
,
MessageBoxButtons
.
YesNo
);
if
(
resut
.
Equals
(
DialogResult
.
Yes
))
{
int
trayType
=
cmbTrayType
.
SelectedIndex
;
string
posId
=
txtTrayPosid
.
Text
;
int
ph
=
FormUtil
.
GetIntValue
(
txtTrayH
);
int
pw
=
FormUtil
.
GetIntValue
(
txtTrayW
);
bool
hasTray
=
trayType
>
0
;
bool
inNg
=
chbInStoNG
.
Checked
;
if
(
hasTray
)
{
InOutParam
inoutP
=
new
InOutParam
(
num
,
"CodeTest"
,
posId
,
ph
,
pw
,
inNg
);
TrayManager
.
UpdateTrayInfo
(
num
,
hasTray
,
trayType
,
inoutP
,
"InStoreNG "
);
}
else
{
TrayManager
.
UpdateTrayInfo
(
num
,
hasTray
);
}
//if (trayType.Equals(1) && inNg)
//{
// TrayManager.UpdateInStoreNG(num, inNg, );
//}
TrayInfo
info
=
TrayManager
.
GetTrayInfo
(
num
);
MessageBox
.
Show
(
"更新成功:\r"
+
info
.
ToStr
());
LogUtil
.
info
(
"手动更新托盘信息:"
+
info
.
ToStr
());
}
}
private
void
logBox_VisibleChanged
(
object
sender
,
EventArgs
e
)
{
...
...
@@ -1070,11 +1037,18 @@ namespace OnlineStore.AssemblyLine
}
}
private
EquipBase
seleEquip
=
null
;
private
EquipControl
selControl
=
null
;
private
void
Control_Click
(
object
sender
,
EventArgs
s
)
{
if
(
sender
is
EquipControl
)
{
EquipControl
control
=
(
EquipControl
)
sender
;
if
(
selControl
!=
null
)
{
selControl
.
UnSelectStyle
();
}
selControl
=
control
;
selControl
.
SelectStyle
();
int
deviceId
=
control
.
DeviceId
;
if
(
lineBean
.
MoveEquipMap
.
ContainsKey
(
deviceId
))
...
...
source/AssemblyLineClient/equip/FrmEquipBaseForm.Designer.cs
deleted
100644 → 0
查看文件 @
f4cd7e7
namespace
OnlineStore.AssemblyLine
{
partial
class
FrmEquipBaseForm
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private
System
.
ComponentModel
.
IContainer
components
=
null
;
#
region
Windows
窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private
void
InitializeComponent
()
{
this
.
components
=
new
System
.
ComponentModel
.
Container
();
System
.
ComponentModel
.
ComponentResourceManager
resources
=
new
System
.
ComponentModel
.
ComponentResourceManager
(
typeof
(
FrmEquipBaseForm
));
this
.
timer1
=
new
System
.
Windows
.
Forms
.
Timer
(
this
.
components
);
this
.
groupBox1
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
txtDOIndex
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
txtDoName
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
label17
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
label14
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
btnOpenDo
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnWriteSingleDO
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
txtWriteTime
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
label5
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
txtSlaveId
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
chbAutoRead
=
new
System
.
Windows
.
Forms
.
CheckBox
();
this
.
cmbWriteIO
=
new
System
.
Windows
.
Forms
.
ComboBox
();
this
.
groupBox4
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
tableLayoutPanel2
=
new
System
.
Windows
.
Forms
.
TableLayoutPanel
();
this
.
groupBox3
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
tableLayoutPanel1
=
new
System
.
Windows
.
Forms
.
TableLayoutPanel
();
this
.
groupBox5
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
chbDebug
=
new
System
.
Windows
.
Forms
.
CheckBox
();
this
.
lblThisSta
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
lblStoreStatus
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
btnStart
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnStop
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnReset
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnInStore
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnOutStore
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
tabControl1
=
new
System
.
Windows
.
Forms
.
TabControl
();
this
.
tabPage1
=
new
System
.
Windows
.
Forms
.
TabPage
();
this
.
groupBox6
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
lblTrayNum
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
lblInstoreList
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
tabPage2
=
new
System
.
Windows
.
Forms
.
TabPage
();
this
.
groupAxis
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
btnAxisOff
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnAxisOn
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
comboBox1
=
new
System
.
Windows
.
Forms
.
ComboBox
();
this
.
label6
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
label1
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
btnReadHomeSingle
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
txtHomeSingle
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
label16
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
label15
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
label2
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
label11
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
txtHomeStatus
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
button2
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
label10
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
txtBusyStatus
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
button1
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
label3
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
txtAlarmStatus
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
btnGetAlarm
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnReadPosition
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
lblServerOn
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
label7
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
label8
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
btnOpenAxis
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnCloseAxis
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
lblCountPulse
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
txtASpeed
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
lblOutPulse
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
label47
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
btnAxisVMove
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnAxisRMove
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnAxisReturnHome
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnAxisAMove
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnComAlarmClear
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
txtAPosition
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
label48
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
btnAxisStop
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
txtAxisValue
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
txtAxisDeviceName
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
label45
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
label46
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
label49
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
panel1
=
new
System
.
Windows
.
Forms
.
Panel
();
this
.
groupBox1
.
SuspendLayout
();
this
.
groupBox4
.
SuspendLayout
();
this
.
groupBox3
.
SuspendLayout
();
this
.
tabControl1
.
SuspendLayout
();
this
.
tabPage1
.
SuspendLayout
();
this
.
groupBox6
.
SuspendLayout
();
this
.
tabPage2
.
SuspendLayout
();
this
.
groupAxis
.
SuspendLayout
();
this
.
panel1
.
SuspendLayout
();
this
.
SuspendLayout
();
//
// timer1
//
this
.
timer1
.
Interval
=
1000
;
this
.
timer1
.
Tick
+=
new
System
.
EventHandler
(
this
.
timer1_Tick
);
//
// groupBox1
//
this
.
groupBox1
.
Controls
.
Add
(
this
.
txtDOIndex
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
txtDoName
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
label17
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
label14
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
btnOpenDo
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
btnWriteSingleDO
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
txtWriteTime
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
label5
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
txtSlaveId
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
chbAutoRead
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
cmbWriteIO
);
this
.
groupBox1
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
groupBox1
.
Location
=
new
System
.
Drawing
.
Point
(
497
,
6
);
this
.
groupBox1
.
Name
=
"groupBox1"
;
this
.
groupBox1
.
Size
=
new
System
.
Drawing
.
Size
(
394
,
208
);
this
.
groupBox1
.
TabIndex
=
105
;
this
.
groupBox1
.
TabStop
=
false
;
this
.
groupBox1
.
Text
=
"DO写入"
;
//
// txtDOIndex
//
this
.
txtDOIndex
.
Enabled
=
false
;
this
.
txtDOIndex
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
txtDOIndex
.
Location
=
new
System
.
Drawing
.
Point
(
328
,
67
);
this
.
txtDOIndex
.
MaxLength
=
10
;
this
.
txtDOIndex
.
Name
=
"txtDOIndex"
;
this
.
txtDOIndex
.
Size
=
new
System
.
Drawing
.
Size
(
47
,
23
);
this
.
txtDOIndex
.
TabIndex
=
276
;
this
.
txtDOIndex
.
Text
=
"0"
;
//
// txtDoName
//
this
.
txtDoName
.
Enabled
=
false
;
this
.
txtDoName
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
txtDoName
.
Location
=
new
System
.
Drawing
.
Point
(
71
,
67
);
this
.
txtDoName
.
MaxLength
=
10
;
this
.
txtDoName
.
Name
=
"txtDoName"
;
this
.
txtDoName
.
Size
=
new
System
.
Drawing
.
Size
(
116
,
23
);
this
.
txtDoName
.
TabIndex
=
275
;
this
.
txtDoName
.
Text
=
"0"
;
//
// label17
//
this
.
label17
.
AutoSize
=
true
;
this
.
label17
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label17
.
ImageAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
this
.
label17
.
Location
=
new
System
.
Drawing
.
Point
(
19
,
70
);
this
.
label17
.
Name
=
"label17"
;
this
.
label17
.
Size
=
new
System
.
Drawing
.
Size
(
46
,
17
);
this
.
label17
.
TabIndex
=
274
;
this
.
label17
.
Text
=
"设备IP:"
;
this
.
label17
.
TextAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
//
// label14
//
this
.
label14
.
AutoSize
=
true
;
this
.
label14
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label14
.
ImageAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
this
.
label14
.
Location
=
new
System
.
Drawing
.
Point
(
272
,
70
);
this
.
label14
.
Name
=
"label14"
;
this
.
label14
.
Size
=
new
System
.
Drawing
.
Size
(
35
,
17
);
this
.
label14
.
TabIndex
=
273
;
this
.
label14
.
Text
=
"地址:"
;
this
.
label14
.
TextAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
//
// btnOpenDo
//
this
.
btnOpenDo
.
BackColor
=
System
.
Drawing
.
Color
.
White
;
this
.
btnOpenDo
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnOpenDo
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnOpenDo
.
Location
=
new
System
.
Drawing
.
Point
(
169
,
107
);
this
.
btnOpenDo
.
Name
=
"btnOpenDo"
;
this
.
btnOpenDo
.
Size
=
new
System
.
Drawing
.
Size
(
100
,
34
);
this
.
btnOpenDo
.
TabIndex
=
272
;
this
.
btnOpenDo
.
Text
=
"打开"
;
this
.
btnOpenDo
.
UseVisualStyleBackColor
=
false
;
this
.
btnOpenDo
.
Click
+=
new
System
.
EventHandler
(
this
.
btnOpenDo_Click
);
//
// btnWriteSingleDO
//
this
.
btnWriteSingleDO
.
BackColor
=
System
.
Drawing
.
Color
.
White
;
this
.
btnWriteSingleDO
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnWriteSingleDO
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnWriteSingleDO
.
Location
=
new
System
.
Drawing
.
Point
(
275
,
107
);
this
.
btnWriteSingleDO
.
Name
=
"btnWriteSingleDO"
;
this
.
btnWriteSingleDO
.
Size
=
new
System
.
Drawing
.
Size
(
100
,
34
);
this
.
btnWriteSingleDO
.
TabIndex
=
269
;
this
.
btnWriteSingleDO
.
Text
=
"关闭"
;
this
.
btnWriteSingleDO
.
UseVisualStyleBackColor
=
false
;
this
.
btnWriteSingleDO
.
Click
+=
new
System
.
EventHandler
(
this
.
btnWriteSingleDO_Click
);
//
// txtWriteTime
//
this
.
txtWriteTime
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
txtWriteTime
.
Location
=
new
System
.
Drawing
.
Point
(
82
,
113
);
this
.
txtWriteTime
.
MaxLength
=
10
;
this
.
txtWriteTime
.
Name
=
"txtWriteTime"
;
this
.
txtWriteTime
.
Size
=
new
System
.
Drawing
.
Size
(
66
,
23
);
this
.
txtWriteTime
.
TabIndex
=
271
;
this
.
txtWriteTime
.
Text
=
"0"
;
//
// label5
//
this
.
label5
.
AutoSize
=
true
;
this
.
label5
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label5
.
ImageAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
this
.
label5
.
Location
=
new
System
.
Drawing
.
Point
(
19
,
116
);
this
.
label5
.
Name
=
"label5"
;
this
.
label5
.
Size
=
new
System
.
Drawing
.
Size
(
60
,
17
);
this
.
label5
.
TabIndex
=
270
;
this
.
label5
.
Text
=
"定时(ms):"
;
this
.
label5
.
TextAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
//
// txtSlaveId
//
this
.
txtSlaveId
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
txtSlaveId
.
Location
=
new
System
.
Drawing
.
Point
(
417
,
26
);
this
.
txtSlaveId
.
MaxLength
=
10
;
this
.
txtSlaveId
.
Name
=
"txtSlaveId"
;
this
.
txtSlaveId
.
Size
=
new
System
.
Drawing
.
Size
(
12
,
23
);
this
.
txtSlaveId
.
TabIndex
=
255
;
this
.
txtSlaveId
.
Text
=
"0"
;
this
.
txtSlaveId
.
Visible
=
false
;
//
// chbAutoRead
//
this
.
chbAutoRead
.
AutoSize
=
true
;
this
.
chbAutoRead
.
Checked
=
true
;
this
.
chbAutoRead
.
CheckState
=
System
.
Windows
.
Forms
.
CheckState
.
Checked
;
this
.
chbAutoRead
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
chbAutoRead
.
Location
=
new
System
.
Drawing
.
Point
(
370
,
69
);
this
.
chbAutoRead
.
Name
=
"chbAutoRead"
;
this
.
chbAutoRead
.
Size
=
new
System
.
Drawing
.
Size
(
75
,
21
);
this
.
chbAutoRead
.
TabIndex
=
244
;
this
.
chbAutoRead
.
Text
=
"自动读取"
;
this
.
chbAutoRead
.
UseVisualStyleBackColor
=
true
;
this
.
chbAutoRead
.
Visible
=
false
;
//
// cmbWriteIO
//
this
.
cmbWriteIO
.
DisplayMember
=
"ProName"
;
this
.
cmbWriteIO
.
DrawMode
=
System
.
Windows
.
Forms
.
DrawMode
.
OwnerDrawVariable
;
this
.
cmbWriteIO
.
DropDownStyle
=
System
.
Windows
.
Forms
.
ComboBoxStyle
.
DropDownList
;
this
.
cmbWriteIO
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
cmbWriteIO
.
FormattingEnabled
=
true
;
this
.
cmbWriteIO
.
ItemHeight
=
22
;
this
.
cmbWriteIO
.
Location
=
new
System
.
Drawing
.
Point
(
17
,
25
);
this
.
cmbWriteIO
.
Name
=
"cmbWriteIO"
;
this
.
cmbWriteIO
.
Size
=
new
System
.
Drawing
.
Size
(
358
,
28
);
this
.
cmbWriteIO
.
TabIndex
=
234
;
this
.
cmbWriteIO
.
ValueMember
=
"ProName"
;
this
.
cmbWriteIO
.
DrawItem
+=
new
System
.
Windows
.
Forms
.
DrawItemEventHandler
(
this
.
cmbWriteIO_DrawItem
);
this
.
cmbWriteIO
.
SelectedIndexChanged
+=
new
System
.
EventHandler
(
this
.
cmbWriteIO_SelectedIndexChanged
);
//
// groupBox4
//
this
.
groupBox4
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)(((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)));
this
.
groupBox4
.
Controls
.
Add
(
this
.
tableLayoutPanel2
);
this
.
groupBox4
.
Location
=
new
System
.
Drawing
.
Point
(
251
,
6
);
this
.
groupBox4
.
Name
=
"groupBox4"
;
this
.
groupBox4
.
Size
=
new
System
.
Drawing
.
Size
(
240
,
634
);
this
.
groupBox4
.
TabIndex
=
104
;
this
.
groupBox4
.
TabStop
=
false
;
this
.
groupBox4
.
Text
=
"DO列表"
;
//
// tableLayoutPanel2
//
this
.
tableLayoutPanel2
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
tableLayoutPanel2
.
ColumnCount
=
1
;
this
.
tableLayoutPanel2
.
ColumnStyles
.
Add
(
new
System
.
Windows
.
Forms
.
ColumnStyle
(
System
.
Windows
.
Forms
.
SizeType
.
Percent
,
100F
));
this
.
tableLayoutPanel2
.
Location
=
new
System
.
Drawing
.
Point
(
5
,
14
);
this
.
tableLayoutPanel2
.
Name
=
"tableLayoutPanel2"
;
this
.
tableLayoutPanel2
.
RowCount
=
2
;
this
.
tableLayoutPanel2
.
RowStyles
.
Add
(
new
System
.
Windows
.
Forms
.
RowStyle
(
System
.
Windows
.
Forms
.
SizeType
.
Absolute
,
17F
));
this
.
tableLayoutPanel2
.
RowStyles
.
Add
(
new
System
.
Windows
.
Forms
.
RowStyle
(
System
.
Windows
.
Forms
.
SizeType
.
Absolute
,
17F
));
this
.
tableLayoutPanel2
.
Size
=
new
System
.
Drawing
.
Size
(
229
,
614
);
this
.
tableLayoutPanel2
.
TabIndex
=
103
;
//
// groupBox3
//
this
.
groupBox3
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)(((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)));
this
.
groupBox3
.
Controls
.
Add
(
this
.
tableLayoutPanel1
);
this
.
groupBox3
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
6
);
this
.
groupBox3
.
Name
=
"groupBox3"
;
this
.
groupBox3
.
Size
=
new
System
.
Drawing
.
Size
(
240
,
634
);
this
.
groupBox3
.
TabIndex
=
103
;
this
.
groupBox3
.
TabStop
=
false
;
this
.
groupBox3
.
Text
=
"DI列表"
;
//
// tableLayoutPanel1
//
this
.
tableLayoutPanel1
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
tableLayoutPanel1
.
ColumnCount
=
1
;
this
.
tableLayoutPanel1
.
ColumnStyles
.
Add
(
new
System
.
Windows
.
Forms
.
ColumnStyle
(
System
.
Windows
.
Forms
.
SizeType
.
Percent
,
100F
));
this
.
tableLayoutPanel1
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
14
);
this
.
tableLayoutPanel1
.
Name
=
"tableLayoutPanel1"
;
this
.
tableLayoutPanel1
.
RowCount
=
2
;
this
.
tableLayoutPanel1
.
RowStyles
.
Add
(
new
System
.
Windows
.
Forms
.
RowStyle
(
System
.
Windows
.
Forms
.
SizeType
.
Absolute
,
17F
));
this
.
tableLayoutPanel1
.
RowStyles
.
Add
(
new
System
.
Windows
.
Forms
.
RowStyle
(
System
.
Windows
.
Forms
.
SizeType
.
Absolute
,
17F
));
this
.
tableLayoutPanel1
.
Size
=
new
System
.
Drawing
.
Size
(
229
,
614
);
this
.
tableLayoutPanel1
.
TabIndex
=
102
;
//
// groupBox5
//
this
.
groupBox5
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)(((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
groupBox5
.
Location
=
new
System
.
Drawing
.
Point
(
897
,
6
);
this
.
groupBox5
.
Name
=
"groupBox5"
;
this
.
groupBox5
.
Size
=
new
System
.
Drawing
.
Size
(
382
,
208
);
this
.
groupBox5
.
TabIndex
=
255
;
this
.
groupBox5
.
TabStop
=
false
;
this
.
groupBox5
.
Text
=
"IO操作测试"
;
//
// chbDebug
//
this
.
chbDebug
.
AutoSize
=
true
;
this
.
chbDebug
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
chbDebug
.
Location
=
new
System
.
Drawing
.
Point
(
648
,
19
);
this
.
chbDebug
.
Name
=
"chbDebug"
;
this
.
chbDebug
.
Size
=
new
System
.
Drawing
.
Size
(
84
,
24
);
this
.
chbDebug
.
TabIndex
=
247
;
this
.
chbDebug
.
Text
=
"调试状态"
;
this
.
chbDebug
.
UseVisualStyleBackColor
=
true
;
this
.
chbDebug
.
CheckedChanged
+=
new
System
.
EventHandler
(
this
.
chbDebug_CheckedChanged
);
//
// lblThisSta
//
this
.
lblThisSta
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
lblThisSta
.
ForeColor
=
System
.
Drawing
.
Color
.
Red
;
this
.
lblThisSta
.
ImageAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
this
.
lblThisSta
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
59
);
this
.
lblThisSta
.
Name
=
"lblThisSta"
;
this
.
lblThisSta
.
Size
=
new
System
.
Drawing
.
Size
(
770
,
120
);
this
.
lblThisSta
.
TabIndex
=
246
;
this
.
lblThisSta
.
Text
=
"等待启动"
;
this
.
lblThisSta
.
TextAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleCenter
;
//
// lblStoreStatus
//
this
.
lblStoreStatus
.
AutoSize
=
true
;
this
.
lblStoreStatus
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
lblStoreStatus
.
ForeColor
=
System
.
Drawing
.
Color
.
Green
;
this
.
lblStoreStatus
.
ImageAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
this
.
lblStoreStatus
.
Location
=
new
System
.
Drawing
.
Point
(
790
,
21
);
this
.
lblStoreStatus
.
Name
=
"lblStoreStatus"
;
this
.
lblStoreStatus
.
Size
=
new
System
.
Drawing
.
Size
(
65
,
20
);
this
.
lblStoreStatus
.
TabIndex
=
245
;
this
.
lblStoreStatus
.
Text
=
"等待启动"
;
this
.
lblStoreStatus
.
TextAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
//
// btnStart
//
this
.
btnStart
.
BackColor
=
System
.
Drawing
.
Color
.
White
;
this
.
btnStart
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnStart
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnStart
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
14
);
this
.
btnStart
.
Name
=
"btnStart"
;
this
.
btnStart
.
Size
=
new
System
.
Drawing
.
Size
(
110
,
34
);
this
.
btnStart
.
TabIndex
=
86
;
this
.
btnStart
.
Text
=
"启动调试"
;
this
.
btnStart
.
UseVisualStyleBackColor
=
false
;
this
.
btnStart
.
Click
+=
new
System
.
EventHandler
(
this
.
btnStart_Click
);
//
// btnStop
//
this
.
btnStop
.
BackColor
=
System
.
Drawing
.
Color
.
White
;
this
.
btnStop
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnStop
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnStop
.
Location
=
new
System
.
Drawing
.
Point
(
118
,
14
);
this
.
btnStop
.
Name
=
"btnStop"
;
this
.
btnStop
.
Size
=
new
System
.
Drawing
.
Size
(
110
,
34
);
this
.
btnStop
.
TabIndex
=
87
;
this
.
btnStop
.
Text
=
"停止"
;
this
.
btnStop
.
UseVisualStyleBackColor
=
false
;
this
.
btnStop
.
Click
+=
new
System
.
EventHandler
(
this
.
btnStop_Click
);
//
// btnReset
//
this
.
btnReset
.
BackColor
=
System
.
Drawing
.
Color
.
White
;
this
.
btnReset
.
Enabled
=
false
;
this
.
btnReset
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnReset
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnReset
.
Location
=
new
System
.
Drawing
.
Point
(
230
,
14
);
this
.
btnReset
.
Name
=
"btnReset"
;
this
.
btnReset
.
Size
=
new
System
.
Drawing
.
Size
(
110
,
34
);
this
.
btnReset
.
TabIndex
=
95
;
this
.
btnReset
.
Text
=
"复位"
;
this
.
btnReset
.
UseVisualStyleBackColor
=
false
;
this
.
btnReset
.
Click
+=
new
System
.
EventHandler
(
this
.
btnReset_Click
);
//
// btnInStore
//
this
.
btnInStore
.
BackColor
=
System
.
Drawing
.
Color
.
White
;
this
.
btnInStore
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnInStore
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnInStore
.
Location
=
new
System
.
Drawing
.
Point
(
457
,
14
);
this
.
btnInStore
.
Name
=
"btnInStore"
;
this
.
btnInStore
.
Size
=
new
System
.
Drawing
.
Size
(
110
,
34
);
this
.
btnInStore
.
TabIndex
=
102
;
this
.
btnInStore
.
Text
=
"入库测试"
;
this
.
btnInStore
.
UseVisualStyleBackColor
=
false
;
this
.
btnInStore
.
Click
+=
new
System
.
EventHandler
(
this
.
btnInStore_Click
);
//
// btnOutStore
//
this
.
btnOutStore
.
BackColor
=
System
.
Drawing
.
Color
.
White
;
this
.
btnOutStore
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnOutStore
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnOutStore
.
Location
=
new
System
.
Drawing
.
Point
(
345
,
14
);
this
.
btnOutStore
.
Name
=
"btnOutStore"
;
this
.
btnOutStore
.
Size
=
new
System
.
Drawing
.
Size
(
110
,
34
);
this
.
btnOutStore
.
TabIndex
=
101
;
this
.
btnOutStore
.
Text
=
"出库测试"
;
this
.
btnOutStore
.
UseVisualStyleBackColor
=
false
;
this
.
btnOutStore
.
Click
+=
new
System
.
EventHandler
(
this
.
btnOutStore_Click
);
//
// tabControl1
//
this
.
tabControl1
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
tabControl1
.
Controls
.
Add
(
this
.
tabPage1
);
this
.
tabControl1
.
Controls
.
Add
(
this
.
tabPage2
);
this
.
tabControl1
.
Location
=
new
System
.
Drawing
.
Point
(
5
,
69
);
this
.
tabControl1
.
Name
=
"tabControl1"
;
this
.
tabControl1
.
SelectedIndex
=
0
;
this
.
tabControl1
.
Size
=
new
System
.
Drawing
.
Size
(
1296
,
676
);
this
.
tabControl1
.
TabIndex
=
257
;
//
// tabPage1
//
this
.
tabPage1
.
Controls
.
Add
(
this
.
groupBox6
);
this
.
tabPage1
.
Controls
.
Add
(
this
.
groupBox3
);
this
.
tabPage1
.
Controls
.
Add
(
this
.
groupBox4
);
this
.
tabPage1
.
Controls
.
Add
(
this
.
groupBox5
);
this
.
tabPage1
.
Controls
.
Add
(
this
.
groupBox1
);
this
.
tabPage1
.
Location
=
new
System
.
Drawing
.
Point
(
4
,
26
);
this
.
tabPage1
.
Name
=
"tabPage1"
;
this
.
tabPage1
.
Padding
=
new
System
.
Windows
.
Forms
.
Padding
(
3
);
this
.
tabPage1
.
Size
=
new
System
.
Drawing
.
Size
(
1288
,
646
);
this
.
tabPage1
.
TabIndex
=
0
;
this
.
tabPage1
.
Text
=
" IO列表 "
;
this
.
tabPage1
.
UseVisualStyleBackColor
=
true
;
//
// groupBox6
//
this
.
groupBox6
.
Controls
.
Add
(
this
.
lblTrayNum
);
this
.
groupBox6
.
Controls
.
Add
(
this
.
lblInstoreList
);
this
.
groupBox6
.
Controls
.
Add
(
this
.
lblThisSta
);
this
.
groupBox6
.
Location
=
new
System
.
Drawing
.
Point
(
498
,
221
);
this
.
groupBox6
.
Name
=
"groupBox6"
;
this
.
groupBox6
.
Size
=
new
System
.
Drawing
.
Size
(
781
,
419
);
this
.
groupBox6
.
TabIndex
=
278
;
this
.
groupBox6
.
TabStop
=
false
;
this
.
groupBox6
.
Text
=
"消息"
;
//
// lblTrayNum
//
this
.
lblTrayNum
.
AutoSize
=
true
;
this
.
lblTrayNum
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
lblTrayNum
.
ImageAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
this
.
lblTrayNum
.
Location
=
new
System
.
Drawing
.
Point
(
29
,
29
);
this
.
lblTrayNum
.
Name
=
"lblTrayNum"
;
this
.
lblTrayNum
.
Size
=
new
System
.
Drawing
.
Size
(
68
,
17
);
this
.
lblTrayNum
.
TabIndex
=
276
;
this
.
lblTrayNum
.
Text
=
"托盘编码:"
;
this
.
lblTrayNum
.
TextAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
//
// lblInstoreList
//
this
.
lblInstoreList
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
lblInstoreList
.
ForeColor
=
System
.
Drawing
.
Color
.
Green
;
this
.
lblInstoreList
.
ImageAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
this
.
lblInstoreList
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
207
);
this
.
lblInstoreList
.
Name
=
"lblInstoreList"
;
this
.
lblInstoreList
.
Size
=
new
System
.
Drawing
.
Size
(
770
,
184
);
this
.
lblInstoreList
.
TabIndex
=
277
;
//
// tabPage2
//
this
.
tabPage2
.
Controls
.
Add
(
this
.
groupAxis
);
this
.
tabPage2
.
Location
=
new
System
.
Drawing
.
Point
(
4
,
26
);
this
.
tabPage2
.
Name
=
"tabPage2"
;
this
.
tabPage2
.
Padding
=
new
System
.
Windows
.
Forms
.
Padding
(
3
);
this
.
tabPage2
.
Size
=
new
System
.
Drawing
.
Size
(
1288
,
646
);
this
.
tabPage2
.
TabIndex
=
1
;
this
.
tabPage2
.
Text
=
" 伺服信息 "
;
this
.
tabPage2
.
UseVisualStyleBackColor
=
true
;
//
// groupAxis
//
this
.
groupAxis
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
groupAxis
.
Controls
.
Add
(
this
.
btnAxisOff
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
btnAxisOn
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
comboBox1
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
label6
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
label1
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
btnReadHomeSingle
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
txtHomeSingle
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
label16
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
label15
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
label2
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
label11
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
txtHomeStatus
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
button2
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
label10
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
txtBusyStatus
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
button1
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
label3
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
txtAlarmStatus
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
btnGetAlarm
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
btnReadPosition
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
lblServerOn
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
label7
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
label8
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
btnOpenAxis
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
btnCloseAxis
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
lblCountPulse
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
txtASpeed
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
lblOutPulse
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
label47
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
btnAxisVMove
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
btnAxisRMove
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
btnAxisReturnHome
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
btnAxisAMove
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
btnComAlarmClear
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
txtAPosition
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
label48
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
btnAxisStop
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
txtAxisValue
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
txtAxisDeviceName
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
label45
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
label46
);
this
.
groupAxis
.
Controls
.
Add
(
this
.
label49
);
this
.
groupAxis
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
groupAxis
.
Location
=
new
System
.
Drawing
.
Point
(
10
,
6
);
this
.
groupAxis
.
Name
=
"groupAxis"
;
this
.
groupAxis
.
Size
=
new
System
.
Drawing
.
Size
(
940
,
424
);
this
.
groupAxis
.
TabIndex
=
217
;
this
.
groupAxis
.
TabStop
=
false
;
this
.
groupAxis
.
Text
=
"伺服运动"
;
//
// btnAxisOff
//
this
.
btnAxisOff
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnAxisOff
.
Location
=
new
System
.
Drawing
.
Point
(
213
,
33
);
this
.
btnAxisOff
.
Name
=
"btnAxisOff"
;
this
.
btnAxisOff
.
Size
=
new
System
.
Drawing
.
Size
(
110
,
34
);
this
.
btnAxisOff
.
TabIndex
=
308
;
this
.
btnAxisOff
.
Text
=
"伺服运转OFF"
;
this
.
btnAxisOff
.
UseVisualStyleBackColor
=
true
;
this
.
btnAxisOff
.
Click
+=
new
System
.
EventHandler
(
this
.
btnAxisOff_Click
);
//
// btnAxisOn
//
this
.
btnAxisOn
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnAxisOn
.
Location
=
new
System
.
Drawing
.
Point
(
101
,
33
);
this
.
btnAxisOn
.
Name
=
"btnAxisOn"
;
this
.
btnAxisOn
.
Size
=
new
System
.
Drawing
.
Size
(
110
,
34
);
this
.
btnAxisOn
.
TabIndex
=
307
;
this
.
btnAxisOn
.
Text
=
"伺服运转ON"
;
this
.
btnAxisOn
.
UseVisualStyleBackColor
=
true
;
this
.
btnAxisOn
.
Click
+=
new
System
.
EventHandler
(
this
.
btnAxisOn_Click
);
//
// comboBox1
//
this
.
comboBox1
.
DropDownStyle
=
System
.
Windows
.
Forms
.
ComboBoxStyle
.
DropDownList
;
this
.
comboBox1
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
comboBox1
.
FormattingEnabled
=
true
;
this
.
comboBox1
.
Location
=
new
System
.
Drawing
.
Point
(
89
,
91
);
this
.
comboBox1
.
Name
=
"comboBox1"
;
this
.
comboBox1
.
Size
=
new
System
.
Drawing
.
Size
(
220
,
28
);
this
.
comboBox1
.
TabIndex
=
301
;
this
.
comboBox1
.
SelectedIndexChanged
+=
new
System
.
EventHandler
(
this
.
comboBox1_SelectedIndexChanged
);
//
// label6
//
this
.
label6
.
AutoSize
=
true
;
this
.
label6
.
Location
=
new
System
.
Drawing
.
Point
(
89
,
376
);
this
.
label6
.
Name
=
"label6"
;
this
.
label6
.
Size
=
new
System
.
Drawing
.
Size
(
68
,
17
);
this
.
label6
.
TabIndex
=
300
;
this
.
label6
.
Text
=
"原点信号:"
;
//
// label1
//
this
.
label1
.
AutoSize
=
true
;
this
.
label1
.
Location
=
new
System
.
Drawing
.
Point
(
195
,
376
);
this
.
label1
.
Name
=
"label1"
;
this
.
label1
.
Size
=
new
System
.
Drawing
.
Size
(
94
,
17
);
this
.
label1
.
TabIndex
=
299
;
this
.
label1
.
Text
=
"1=ON,0=OFF"
;
//
// btnReadHomeSingle
//
this
.
btnReadHomeSingle
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnReadHomeSingle
.
Location
=
new
System
.
Drawing
.
Point
(
358
,
373
);
this
.
btnReadHomeSingle
.
Name
=
"btnReadHomeSingle"
;
this
.
btnReadHomeSingle
.
Size
=
new
System
.
Drawing
.
Size
(
110
,
34
);
this
.
btnReadHomeSingle
.
TabIndex
=
298
;
this
.
btnReadHomeSingle
.
Text
=
"读原点信号"
;
this
.
btnReadHomeSingle
.
UseVisualStyleBackColor
=
true
;
this
.
btnReadHomeSingle
.
Click
+=
new
System
.
EventHandler
(
this
.
btnReadHomeSingle_Click
);
//
// txtHomeSingle
//
this
.
txtHomeSingle
.
Enabled
=
false
;
this
.
txtHomeSingle
.
Location
=
new
System
.
Drawing
.
Point
(
161
,
373
);
this
.
txtHomeSingle
.
Name
=
"txtHomeSingle"
;
this
.
txtHomeSingle
.
Size
=
new
System
.
Drawing
.
Size
(
25
,
23
);
this
.
txtHomeSingle
.
TabIndex
=
297
;
//
// label16
//
this
.
label16
.
AutoSize
=
true
;
this
.
label16
.
Location
=
new
System
.
Drawing
.
Point
(
192
,
343
);
this
.
label16
.
Name
=
"label16"
;
this
.
label16
.
Size
=
new
System
.
Drawing
.
Size
(
112
,
17
);
this
.
label16
.
TabIndex
=
295
;
this
.
label16
.
Text
=
"1=完成,0=未完成"
;
//
// label15
//
this
.
label15
.
AutoSize
=
true
;
this
.
label15
.
Location
=
new
System
.
Drawing
.
Point
(
192
,
312
);
this
.
label15
.
Name
=
"label15"
;
this
.
label15
.
Size
=
new
System
.
Drawing
.
Size
(
124
,
17
);
this
.
label15
.
TabIndex
=
294
;
this
.
label15
.
Text
=
"1=执行中,0=未执行"
;
//
// label2
//
this
.
label2
.
AutoSize
=
true
;
this
.
label2
.
Location
=
new
System
.
Drawing
.
Point
(
192
,
277
);
this
.
label2
.
Name
=
"label2"
;
this
.
label2
.
Size
=
new
System
.
Drawing
.
Size
(
100
,
17
);
this
.
label2
.
TabIndex
=
293
;
this
.
label2
.
Text
=
"1=报警,0=正常"
;
//
// label11
//
this
.
label11
.
AutoSize
=
true
;
this
.
label11
.
Location
=
new
System
.
Drawing
.
Point
(
43
,
343
);
this
.
label11
.
Name
=
"label11"
;
this
.
label11
.
Size
=
new
System
.
Drawing
.
Size
(
114
,
17
);
this
.
label11
.
TabIndex
=
292
;
this
.
label11
.
Text
=
"HOME-CMP状态:"
;
//
// txtHomeStatus
//
this
.
txtHomeStatus
.
Enabled
=
false
;
this
.
txtHomeStatus
.
Location
=
new
System
.
Drawing
.
Point
(
161
,
340
);
this
.
txtHomeStatus
.
Name
=
"txtHomeStatus"
;
this
.
txtHomeStatus
.
Size
=
new
System
.
Drawing
.
Size
(
25
,
23
);
this
.
txtHomeStatus
.
TabIndex
=
291
;
//
// button2
//
this
.
button2
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
button2
.
Location
=
new
System
.
Drawing
.
Point
(
358
,
338
);
this
.
button2
.
Name
=
"button2"
;
this
.
button2
.
Size
=
new
System
.
Drawing
.
Size
(
110
,
34
);
this
.
button2
.
TabIndex
=
290
;
this
.
button2
.
Text
=
"读HOME状态"
;
this
.
button2
.
UseVisualStyleBackColor
=
true
;
this
.
button2
.
Click
+=
new
System
.
EventHandler
(
this
.
button2_Click
);
//
// label10
//
this
.
label10
.
AutoSize
=
true
;
this
.
label10
.
Location
=
new
System
.
Drawing
.
Point
(
82
,
310
);
this
.
label10
.
Name
=
"label10"
;
this
.
label10
.
Size
=
new
System
.
Drawing
.
Size
(
75
,
17
);
this
.
label10
.
TabIndex
=
289
;
this
.
label10
.
Text
=
"BUSY状态:"
;
//
// txtBusyStatus
//
this
.
txtBusyStatus
.
Enabled
=
false
;
this
.
txtBusyStatus
.
Location
=
new
System
.
Drawing
.
Point
(
161
,
307
);
this
.
txtBusyStatus
.
Name
=
"txtBusyStatus"
;
this
.
txtBusyStatus
.
Size
=
new
System
.
Drawing
.
Size
(
25
,
23
);
this
.
txtBusyStatus
.
TabIndex
=
288
;
//
// button1
//
this
.
button1
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
button1
.
Location
=
new
System
.
Drawing
.
Point
(
358
,
303
);
this
.
button1
.
Name
=
"button1"
;
this
.
button1
.
Size
=
new
System
.
Drawing
.
Size
(
110
,
34
);
this
.
button1
.
TabIndex
=
287
;
this
.
button1
.
Text
=
"读BUSY状态"
;
this
.
button1
.
UseVisualStyleBackColor
=
true
;
this
.
button1
.
Click
+=
new
System
.
EventHandler
(
this
.
button1_Click
);
//
// label3
//
this
.
label3
.
AutoSize
=
true
;
this
.
label3
.
Location
=
new
System
.
Drawing
.
Point
(
89
,
277
);
this
.
label3
.
Name
=
"label3"
;
this
.
label3
.
Size
=
new
System
.
Drawing
.
Size
(
68
,
17
);
this
.
label3
.
TabIndex
=
286
;
this
.
label3
.
Text
=
"报警状态:"
;
//
// txtAlarmStatus
//
this
.
txtAlarmStatus
.
Enabled
=
false
;
this
.
txtAlarmStatus
.
Location
=
new
System
.
Drawing
.
Point
(
161
,
274
);
this
.
txtAlarmStatus
.
Name
=
"txtAlarmStatus"
;
this
.
txtAlarmStatus
.
Size
=
new
System
.
Drawing
.
Size
(
25
,
23
);
this
.
txtAlarmStatus
.
TabIndex
=
285
;
//
// btnGetAlarm
//
this
.
btnGetAlarm
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnGetAlarm
.
Location
=
new
System
.
Drawing
.
Point
(
358
,
268
);
this
.
btnGetAlarm
.
Name
=
"btnGetAlarm"
;
this
.
btnGetAlarm
.
Size
=
new
System
.
Drawing
.
Size
(
110
,
34
);
this
.
btnGetAlarm
.
TabIndex
=
284
;
this
.
btnGetAlarm
.
Text
=
"读报警状态"
;
this
.
btnGetAlarm
.
UseVisualStyleBackColor
=
true
;
this
.
btnGetAlarm
.
Click
+=
new
System
.
EventHandler
(
this
.
btnGetAlarm_Click
);
//
// btnReadPosition
//
this
.
btnReadPosition
.
BackColor
=
System
.
Drawing
.
SystemColors
.
Control
;
this
.
btnReadPosition
.
Cursor
=
System
.
Windows
.
Forms
.
Cursors
.
Default
;
this
.
btnReadPosition
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnReadPosition
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnReadPosition
.
ForeColor
=
System
.
Drawing
.
SystemColors
.
ControlText
;
this
.
btnReadPosition
.
Location
=
new
System
.
Drawing
.
Point
(
358
,
209
);
this
.
btnReadPosition
.
Name
=
"btnReadPosition"
;
this
.
btnReadPosition
.
RightToLeft
=
System
.
Windows
.
Forms
.
RightToLeft
.
No
;
this
.
btnReadPosition
.
Size
=
new
System
.
Drawing
.
Size
(
110
,
34
);
this
.
btnReadPosition
.
TabIndex
=
278
;
this
.
btnReadPosition
.
Text
=
"读取位置"
;
this
.
btnReadPosition
.
UseVisualStyleBackColor
=
true
;
this
.
btnReadPosition
.
Click
+=
new
System
.
EventHandler
(
this
.
btnReadPosition_Click
);
//
// lblServerOn
//
this
.
lblServerOn
.
AutoSize
=
true
;
this
.
lblServerOn
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
lblServerOn
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Bold
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
lblServerOn
.
ForeColor
=
System
.
Drawing
.
Color
.
Red
;
this
.
lblServerOn
.
Location
=
new
System
.
Drawing
.
Point
(
491
,
352
);
this
.
lblServerOn
.
Name
=
"lblServerOn"
;
this
.
lblServerOn
.
Size
=
new
System
.
Drawing
.
Size
(
0
,
19
);
this
.
lblServerOn
.
TabIndex
=
268
;
//
// label7
//
this
.
label7
.
AutoSize
=
true
;
this
.
label7
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label7
.
Location
=
new
System
.
Drawing
.
Point
(
8
,
203
);
this
.
label7
.
Name
=
"label7"
;
this
.
label7
.
Size
=
new
System
.
Drawing
.
Size
(
80
,
17
);
this
.
label7
.
TabIndex
=
254
;
this
.
label7
.
Text
=
"目标脉冲值:"
;
//
// label8
//
this
.
label8
.
AutoSize
=
true
;
this
.
label8
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label8
.
Location
=
new
System
.
Drawing
.
Point
(
8
,
235
);
this
.
label8
.
Name
=
"label8"
;
this
.
label8
.
Size
=
new
System
.
Drawing
.
Size
(
80
,
17
);
this
.
label8
.
TabIndex
=
255
;
this
.
label8
.
Text
=
"实际脉冲值:"
;
//
// btnOpenAxis
//
this
.
btnOpenAxis
.
BackColor
=
System
.
Drawing
.
SystemColors
.
Control
;
this
.
btnOpenAxis
.
Cursor
=
System
.
Windows
.
Forms
.
Cursors
.
Default
;
this
.
btnOpenAxis
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnOpenAxis
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnOpenAxis
.
ForeColor
=
System
.
Drawing
.
SystemColors
.
ControlText
;
this
.
btnOpenAxis
.
Location
=
new
System
.
Drawing
.
Point
(
358
,
89
);
this
.
btnOpenAxis
.
Name
=
"btnOpenAxis"
;
this
.
btnOpenAxis
.
RightToLeft
=
System
.
Windows
.
Forms
.
RightToLeft
.
No
;
this
.
btnOpenAxis
.
Size
=
new
System
.
Drawing
.
Size
(
110
,
34
);
this
.
btnOpenAxis
.
TabIndex
=
253
;
this
.
btnOpenAxis
.
Text
=
"打开伺服"
;
this
.
btnOpenAxis
.
UseVisualStyleBackColor
=
true
;
this
.
btnOpenAxis
.
Click
+=
new
System
.
EventHandler
(
this
.
btnOpenAxis_Click
);
//
// btnCloseAxis
//
this
.
btnCloseAxis
.
BackColor
=
System
.
Drawing
.
SystemColors
.
Control
;
this
.
btnCloseAxis
.
Cursor
=
System
.
Windows
.
Forms
.
Cursors
.
Default
;
this
.
btnCloseAxis
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnCloseAxis
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnCloseAxis
.
ForeColor
=
System
.
Drawing
.
SystemColors
.
ControlText
;
this
.
btnCloseAxis
.
Location
=
new
System
.
Drawing
.
Point
(
474
,
88
);
this
.
btnCloseAxis
.
Name
=
"btnCloseAxis"
;
this
.
btnCloseAxis
.
RightToLeft
=
System
.
Windows
.
Forms
.
RightToLeft
.
No
;
this
.
btnCloseAxis
.
Size
=
new
System
.
Drawing
.
Size
(
110
,
34
);
this
.
btnCloseAxis
.
TabIndex
=
252
;
this
.
btnCloseAxis
.
Text
=
"关闭伺服"
;
this
.
btnCloseAxis
.
UseVisualStyleBackColor
=
true
;
this
.
btnCloseAxis
.
Click
+=
new
System
.
EventHandler
(
this
.
btnCloseAxis_Click
);
//
// lblCountPulse
//
this
.
lblCountPulse
.
Location
=
new
System
.
Drawing
.
Point
(
89
,
230
);
this
.
lblCountPulse
.
Name
=
"lblCountPulse"
;
this
.
lblCountPulse
.
ReadOnly
=
true
;
this
.
lblCountPulse
.
Size
=
new
System
.
Drawing
.
Size
(
87
,
23
);
this
.
lblCountPulse
.
TabIndex
=
38
;
//
// txtASpeed
//
this
.
txtASpeed
.
AcceptsReturn
=
true
;
this
.
txtASpeed
.
BackColor
=
System
.
Drawing
.
SystemColors
.
Window
;
this
.
txtASpeed
.
Cursor
=
System
.
Windows
.
Forms
.
Cursors
.
IBeam
;
this
.
txtASpeed
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
txtASpeed
.
ForeColor
=
System
.
Drawing
.
SystemColors
.
WindowText
;
this
.
txtASpeed
.
Location
=
new
System
.
Drawing
.
Point
(
225
,
161
);
this
.
txtASpeed
.
MaxLength
=
12
;
this
.
txtASpeed
.
Name
=
"txtASpeed"
;
this
.
txtASpeed
.
RightToLeft
=
System
.
Windows
.
Forms
.
RightToLeft
.
No
;
this
.
txtASpeed
.
Size
=
new
System
.
Drawing
.
Size
(
84
,
26
);
this
.
txtASpeed
.
TabIndex
=
251
;
this
.
txtASpeed
.
Text
=
"30"
;
//
// lblOutPulse
//
this
.
lblOutPulse
.
Location
=
new
System
.
Drawing
.
Point
(
89
,
201
);
this
.
lblOutPulse
.
Name
=
"lblOutPulse"
;
this
.
lblOutPulse
.
ReadOnly
=
true
;
this
.
lblOutPulse
.
Size
=
new
System
.
Drawing
.
Size
(
87
,
23
);
this
.
lblOutPulse
.
TabIndex
=
30
;
//
// label47
//
this
.
label47
.
Cursor
=
System
.
Windows
.
Forms
.
Cursors
.
Default
;
this
.
label47
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label47
.
ForeColor
=
System
.
Drawing
.
SystemColors
.
ControlText
;
this
.
label47
.
Location
=
new
System
.
Drawing
.
Point
(
170
,
164
);
this
.
label47
.
Name
=
"label47"
;
this
.
label47
.
RightToLeft
=
System
.
Windows
.
Forms
.
RightToLeft
.
No
;
this
.
label47
.
Size
=
new
System
.
Drawing
.
Size
(
53
,
20
);
this
.
label47
.
TabIndex
=
250
;
this
.
label47
.
Text
=
"速度:"
;
this
.
label47
.
TextAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
//
// btnAxisVMove
//
this
.
btnAxisVMove
.
BackColor
=
System
.
Drawing
.
SystemColors
.
Control
;
this
.
btnAxisVMove
.
Cursor
=
System
.
Windows
.
Forms
.
Cursors
.
Default
;
this
.
btnAxisVMove
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnAxisVMove
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnAxisVMove
.
ForeColor
=
System
.
Drawing
.
SystemColors
.
ControlText
;
this
.
btnAxisVMove
.
Location
=
new
System
.
Drawing
.
Point
(
358
,
170
);
this
.
btnAxisVMove
.
Name
=
"btnAxisVMove"
;
this
.
btnAxisVMove
.
RightToLeft
=
System
.
Windows
.
Forms
.
RightToLeft
.
No
;
this
.
btnAxisVMove
.
Size
=
new
System
.
Drawing
.
Size
(
110
,
34
);
this
.
btnAxisVMove
.
TabIndex
=
249
;
this
.
btnAxisVMove
.
Text
=
"匀速运动"
;
this
.
btnAxisVMove
.
UseVisualStyleBackColor
=
true
;
this
.
btnAxisVMove
.
Click
+=
new
System
.
EventHandler
(
this
.
btnAxisVMove_Click
);
//
// btnAxisRMove
//
this
.
btnAxisRMove
.
BackColor
=
System
.
Drawing
.
SystemColors
.
Control
;
this
.
btnAxisRMove
.
Cursor
=
System
.
Windows
.
Forms
.
Cursors
.
Default
;
this
.
btnAxisRMove
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnAxisRMove
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnAxisRMove
.
ForeColor
=
System
.
Drawing
.
SystemColors
.
ControlText
;
this
.
btnAxisRMove
.
Location
=
new
System
.
Drawing
.
Point
(
474
,
130
);
this
.
btnAxisRMove
.
Name
=
"btnAxisRMove"
;
this
.
btnAxisRMove
.
RightToLeft
=
System
.
Windows
.
Forms
.
RightToLeft
.
No
;
this
.
btnAxisRMove
.
Size
=
new
System
.
Drawing
.
Size
(
110
,
34
);
this
.
btnAxisRMove
.
TabIndex
=
248
;
this
.
btnAxisRMove
.
Text
=
"相对运动"
;
this
.
btnAxisRMove
.
UseVisualStyleBackColor
=
true
;
this
.
btnAxisRMove
.
Click
+=
new
System
.
EventHandler
(
this
.
btnAxisRMove_Click
);
//
// btnAxisReturnHome
//
this
.
btnAxisReturnHome
.
BackColor
=
System
.
Drawing
.
SystemColors
.
Control
;
this
.
btnAxisReturnHome
.
Cursor
=
System
.
Windows
.
Forms
.
Cursors
.
Default
;
this
.
btnAxisReturnHome
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnAxisReturnHome
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnAxisReturnHome
.
ForeColor
=
System
.
Drawing
.
SystemColors
.
ControlText
;
this
.
btnAxisReturnHome
.
Location
=
new
System
.
Drawing
.
Point
(
474
,
209
);
this
.
btnAxisReturnHome
.
Name
=
"btnAxisReturnHome"
;
this
.
btnAxisReturnHome
.
RightToLeft
=
System
.
Windows
.
Forms
.
RightToLeft
.
No
;
this
.
btnAxisReturnHome
.
Size
=
new
System
.
Drawing
.
Size
(
110
,
34
);
this
.
btnAxisReturnHome
.
TabIndex
=
247
;
this
.
btnAxisReturnHome
.
Text
=
"原点返回"
;
this
.
btnAxisReturnHome
.
UseVisualStyleBackColor
=
true
;
this
.
btnAxisReturnHome
.
Click
+=
new
System
.
EventHandler
(
this
.
btnAxisReturnHome_Click
);
//
// btnAxisAMove
//
this
.
btnAxisAMove
.
BackColor
=
System
.
Drawing
.
SystemColors
.
Control
;
this
.
btnAxisAMove
.
Cursor
=
System
.
Windows
.
Forms
.
Cursors
.
Default
;
this
.
btnAxisAMove
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnAxisAMove
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnAxisAMove
.
ForeColor
=
System
.
Drawing
.
SystemColors
.
ControlText
;
this
.
btnAxisAMove
.
Location
=
new
System
.
Drawing
.
Point
(
358
,
131
);
this
.
btnAxisAMove
.
Name
=
"btnAxisAMove"
;
this
.
btnAxisAMove
.
RightToLeft
=
System
.
Windows
.
Forms
.
RightToLeft
.
No
;
this
.
btnAxisAMove
.
Size
=
new
System
.
Drawing
.
Size
(
110
,
34
);
this
.
btnAxisAMove
.
TabIndex
=
245
;
this
.
btnAxisAMove
.
Text
=
"绝对运动"
;
this
.
btnAxisAMove
.
UseVisualStyleBackColor
=
true
;
this
.
btnAxisAMove
.
Click
+=
new
System
.
EventHandler
(
this
.
btnAxisAMove_Click
);
//
// btnComAlarmClear
//
this
.
btnComAlarmClear
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnComAlarmClear
.
Location
=
new
System
.
Drawing
.
Point
(
474
,
268
);
this
.
btnComAlarmClear
.
Name
=
"btnComAlarmClear"
;
this
.
btnComAlarmClear
.
Size
=
new
System
.
Drawing
.
Size
(
110
,
34
);
this
.
btnComAlarmClear
.
TabIndex
=
50
;
this
.
btnComAlarmClear
.
Text
=
"清除报警"
;
this
.
btnComAlarmClear
.
UseVisualStyleBackColor
=
true
;
this
.
btnComAlarmClear
.
Click
+=
new
System
.
EventHandler
(
this
.
btnComAlarmClear_Click
);
//
// txtAPosition
//
this
.
txtAPosition
.
BackColor
=
System
.
Drawing
.
SystemColors
.
Window
;
this
.
txtAPosition
.
Cursor
=
System
.
Windows
.
Forms
.
Cursors
.
IBeam
;
this
.
txtAPosition
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
txtAPosition
.
ForeColor
=
System
.
Drawing
.
SystemColors
.
WindowText
;
this
.
txtAPosition
.
Location
=
new
System
.
Drawing
.
Point
(
225
,
127
);
this
.
txtAPosition
.
MaxLength
=
12
;
this
.
txtAPosition
.
Name
=
"txtAPosition"
;
this
.
txtAPosition
.
RightToLeft
=
System
.
Windows
.
Forms
.
RightToLeft
.
No
;
this
.
txtAPosition
.
Size
=
new
System
.
Drawing
.
Size
(
84
,
26
);
this
.
txtAPosition
.
TabIndex
=
244
;
this
.
txtAPosition
.
Text
=
"3000"
;
//
// label48
//
this
.
label48
.
Cursor
=
System
.
Windows
.
Forms
.
Cursors
.
Default
;
this
.
label48
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label48
.
ForeColor
=
System
.
Drawing
.
SystemColors
.
ControlText
;
this
.
label48
.
Location
=
new
System
.
Drawing
.
Point
(
170
,
130
);
this
.
label48
.
Name
=
"label48"
;
this
.
label48
.
RightToLeft
=
System
.
Windows
.
Forms
.
RightToLeft
.
No
;
this
.
label48
.
Size
=
new
System
.
Drawing
.
Size
(
53
,
20
);
this
.
label48
.
TabIndex
=
243
;
this
.
label48
.
Text
=
"位置:"
;
this
.
label48
.
TextAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
//
// btnAxisStop
//
this
.
btnAxisStop
.
BackColor
=
System
.
Drawing
.
SystemColors
.
Control
;
this
.
btnAxisStop
.
Cursor
=
System
.
Windows
.
Forms
.
Cursors
.
Default
;
this
.
btnAxisStop
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnAxisStop
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnAxisStop
.
ForeColor
=
System
.
Drawing
.
SystemColors
.
ControlText
;
this
.
btnAxisStop
.
Location
=
new
System
.
Drawing
.
Point
(
474
,
169
);
this
.
btnAxisStop
.
Name
=
"btnAxisStop"
;
this
.
btnAxisStop
.
RightToLeft
=
System
.
Windows
.
Forms
.
RightToLeft
.
No
;
this
.
btnAxisStop
.
Size
=
new
System
.
Drawing
.
Size
(
110
,
34
);
this
.
btnAxisStop
.
TabIndex
=
246
;
this
.
btnAxisStop
.
Text
=
" 停止运动"
;
this
.
btnAxisStop
.
UseVisualStyleBackColor
=
true
;
this
.
btnAxisStop
.
Click
+=
new
System
.
EventHandler
(
this
.
btnAxisStop_Click
);
//
// txtAxisValue
//
this
.
txtAxisValue
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
txtAxisValue
.
Location
=
new
System
.
Drawing
.
Point
(
89
,
161
);
this
.
txtAxisValue
.
MaxLength
=
10
;
this
.
txtAxisValue
.
Name
=
"txtAxisValue"
;
this
.
txtAxisValue
.
ReadOnly
=
true
;
this
.
txtAxisValue
.
Size
=
new
System
.
Drawing
.
Size
(
68
,
26
);
this
.
txtAxisValue
.
TabIndex
=
242
;
this
.
txtAxisValue
.
Text
=
"0"
;
//
// txtAxisDeviceName
//
this
.
txtAxisDeviceName
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
txtAxisDeviceName
.
Location
=
new
System
.
Drawing
.
Point
(
89
,
127
);
this
.
txtAxisDeviceName
.
MaxLength
=
10
;
this
.
txtAxisDeviceName
.
Name
=
"txtAxisDeviceName"
;
this
.
txtAxisDeviceName
.
ReadOnly
=
true
;
this
.
txtAxisDeviceName
.
Size
=
new
System
.
Drawing
.
Size
(
68
,
26
);
this
.
txtAxisDeviceName
.
TabIndex
=
241
;
this
.
txtAxisDeviceName
.
Text
=
"0"
;
//
// label45
//
this
.
label45
.
AutoSize
=
true
;
this
.
label45
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label45
.
ImageAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
this
.
label45
.
Location
=
new
System
.
Drawing
.
Point
(
32
,
132
);
this
.
label45
.
Name
=
"label45"
;
this
.
label45
.
Size
=
new
System
.
Drawing
.
Size
(
56
,
17
);
this
.
label45
.
TabIndex
=
240
;
this
.
label45
.
Text
=
"端口号:"
;
this
.
label45
.
TextAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
//
// label46
//
this
.
label46
.
AutoSize
=
true
;
this
.
label46
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label46
.
ImageAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
this
.
label46
.
Location
=
new
System
.
Drawing
.
Point
(
44
,
166
);
this
.
label46
.
Name
=
"label46"
;
this
.
label46
.
Size
=
new
System
.
Drawing
.
Size
(
44
,
17
);
this
.
label46
.
TabIndex
=
239
;
this
.
label46
.
Text
=
"地址:"
;
this
.
label46
.
TextAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
//
// label49
//
this
.
label49
.
AutoSize
=
true
;
this
.
label49
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label49
.
ImageAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
this
.
label49
.
Location
=
new
System
.
Drawing
.
Point
(
28
,
96
);
this
.
label49
.
Name
=
"label49"
;
this
.
label49
.
Size
=
new
System
.
Drawing
.
Size
(
60
,
17
);
this
.
label49
.
TabIndex
=
233
;
this
.
label49
.
Text
=
"AC伺服:"
;
this
.
label49
.
TextAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
//
// panel1
//
this
.
panel1
.
Controls
.
Add
(
this
.
chbDebug
);
this
.
panel1
.
Controls
.
Add
(
this
.
lblStoreStatus
);
this
.
panel1
.
Controls
.
Add
(
this
.
btnOutStore
);
this
.
panel1
.
Controls
.
Add
(
this
.
btnStart
);
this
.
panel1
.
Controls
.
Add
(
this
.
btnInStore
);
this
.
panel1
.
Controls
.
Add
(
this
.
btnStop
);
this
.
panel1
.
Controls
.
Add
(
this
.
btnReset
);
this
.
panel1
.
Location
=
new
System
.
Drawing
.
Point
(
2
,
1
);
this
.
panel1
.
Name
=
"panel1"
;
this
.
panel1
.
Size
=
new
System
.
Drawing
.
Size
(
1295
,
68
);
this
.
panel1
.
TabIndex
=
258
;
//
// FrmEquipBaseForm
//
this
.
AutoScaleDimensions
=
new
System
.
Drawing
.
SizeF
(
7F
,
17F
);
this
.
AutoScaleMode
=
System
.
Windows
.
Forms
.
AutoScaleMode
.
Font
;
this
.
ClientSize
=
new
System
.
Drawing
.
Size
(
1307
,
751
);
this
.
Controls
.
Add
(
this
.
panel1
);
this
.
Controls
.
Add
(
this
.
tabControl1
);
this
.
Icon
=
((
System
.
Drawing
.
Icon
)(
resources
.
GetObject
(
"$this.Icon"
)));
this
.
MaximizeBox
=
false
;
this
.
MinimizeBox
=
false
;
this
.
Name
=
"FrmEquipBaseForm"
;
this
.
Text
=
"出入仓移栽——"
;
this
.
FormClosing
+=
new
System
.
Windows
.
Forms
.
FormClosingEventHandler
(
this
.
FrmTest_FormClosing
);
this
.
Load
+=
new
System
.
EventHandler
(
this
.
FrmStoreIOStatus_Load
);
this
.
Shown
+=
new
System
.
EventHandler
(
this
.
FrmIOStatus_Shown
);
this
.
groupBox1
.
ResumeLayout
(
false
);
this
.
groupBox1
.
PerformLayout
();
this
.
groupBox4
.
ResumeLayout
(
false
);
this
.
groupBox3
.
ResumeLayout
(
false
);
this
.
tabControl1
.
ResumeLayout
(
false
);
this
.
tabPage1
.
ResumeLayout
(
false
);
this
.
groupBox6
.
ResumeLayout
(
false
);
this
.
groupBox6
.
PerformLayout
();
this
.
tabPage2
.
ResumeLayout
(
false
);
this
.
groupAxis
.
ResumeLayout
(
false
);
this
.
groupAxis
.
PerformLayout
();
this
.
panel1
.
ResumeLayout
(
false
);
this
.
panel1
.
PerformLayout
();
this
.
ResumeLayout
(
false
);
}
#
endregion
private
System
.
Windows
.
Forms
.
Timer
timer1
;
private
System
.
Windows
.
Forms
.
TableLayoutPanel
tableLayoutPanel1
;
private
System
.
Windows
.
Forms
.
TableLayoutPanel
tableLayoutPanel2
;
private
System
.
Windows
.
Forms
.
ComboBox
cmbWriteIO
;
private
System
.
Windows
.
Forms
.
CheckBox
chbAutoRead
;
private
System
.
Windows
.
Forms
.
TextBox
txtSlaveId
;
private
System
.
Windows
.
Forms
.
TabPage
tabPage1
;
private
System
.
Windows
.
Forms
.
TabPage
tabPage2
;
private
System
.
Windows
.
Forms
.
Label
label6
;
private
System
.
Windows
.
Forms
.
Label
label1
;
private
System
.
Windows
.
Forms
.
Button
btnReadHomeSingle
;
private
System
.
Windows
.
Forms
.
TextBox
txtHomeSingle
;
private
System
.
Windows
.
Forms
.
Label
label16
;
private
System
.
Windows
.
Forms
.
Label
label15
;
private
System
.
Windows
.
Forms
.
Label
label2
;
private
System
.
Windows
.
Forms
.
Label
label11
;
private
System
.
Windows
.
Forms
.
TextBox
txtHomeStatus
;
private
System
.
Windows
.
Forms
.
Button
button2
;
private
System
.
Windows
.
Forms
.
Label
label10
;
private
System
.
Windows
.
Forms
.
TextBox
txtBusyStatus
;
private
System
.
Windows
.
Forms
.
Button
button1
;
private
System
.
Windows
.
Forms
.
Label
label3
;
private
System
.
Windows
.
Forms
.
TextBox
txtAlarmStatus
;
private
System
.
Windows
.
Forms
.
Button
btnGetAlarm
;
private
System
.
Windows
.
Forms
.
Button
btnReadPosition
;
private
System
.
Windows
.
Forms
.
Label
lblServerOn
;
private
System
.
Windows
.
Forms
.
Label
label7
;
private
System
.
Windows
.
Forms
.
Label
label8
;
private
System
.
Windows
.
Forms
.
Button
btnOpenAxis
;
private
System
.
Windows
.
Forms
.
Button
btnCloseAxis
;
private
System
.
Windows
.
Forms
.
TextBox
lblCountPulse
;
private
System
.
Windows
.
Forms
.
TextBox
txtASpeed
;
private
System
.
Windows
.
Forms
.
TextBox
lblOutPulse
;
private
System
.
Windows
.
Forms
.
Label
label47
;
private
System
.
Windows
.
Forms
.
Button
btnAxisVMove
;
private
System
.
Windows
.
Forms
.
Button
btnAxisRMove
;
private
System
.
Windows
.
Forms
.
Button
btnAxisReturnHome
;
private
System
.
Windows
.
Forms
.
Button
btnAxisAMove
;
private
System
.
Windows
.
Forms
.
Button
btnComAlarmClear
;
private
System
.
Windows
.
Forms
.
TextBox
txtAPosition
;
private
System
.
Windows
.
Forms
.
Label
label48
;
private
System
.
Windows
.
Forms
.
Button
btnAxisStop
;
private
System
.
Windows
.
Forms
.
TextBox
txtAxisValue
;
private
System
.
Windows
.
Forms
.
TextBox
txtAxisDeviceName
;
private
System
.
Windows
.
Forms
.
Label
label45
;
private
System
.
Windows
.
Forms
.
Label
label46
;
private
System
.
Windows
.
Forms
.
Label
label49
;
private
System
.
Windows
.
Forms
.
ComboBox
comboBox1
;
private
System
.
Windows
.
Forms
.
Button
btnAxisOff
;
private
System
.
Windows
.
Forms
.
Button
btnAxisOn
;
private
System
.
Windows
.
Forms
.
TextBox
txtDOIndex
;
private
System
.
Windows
.
Forms
.
TextBox
txtDoName
;
private
System
.
Windows
.
Forms
.
Label
label17
;
private
System
.
Windows
.
Forms
.
Label
label14
;
private
System
.
Windows
.
Forms
.
Button
btnOpenDo
;
private
System
.
Windows
.
Forms
.
Button
btnWriteSingleDO
;
private
System
.
Windows
.
Forms
.
TextBox
txtWriteTime
;
private
System
.
Windows
.
Forms
.
Label
label5
;
private
System
.
Windows
.
Forms
.
Label
lblStoreStatus
;
private
System
.
Windows
.
Forms
.
Button
btnStart
;
private
System
.
Windows
.
Forms
.
Button
btnStop
;
private
System
.
Windows
.
Forms
.
Button
btnReset
;
private
System
.
Windows
.
Forms
.
Button
btnInStore
;
private
System
.
Windows
.
Forms
.
Button
btnOutStore
;
private
System
.
Windows
.
Forms
.
CheckBox
chbDebug
;
private
System
.
Windows
.
Forms
.
TabControl
tabControl1
;
private
System
.
Windows
.
Forms
.
GroupBox
groupAxis
;
private
System
.
Windows
.
Forms
.
Panel
panel1
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox3
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox4
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox1
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox5
;
private
System
.
Windows
.
Forms
.
Label
lblThisSta
;
private
System
.
Windows
.
Forms
.
Label
lblTrayNum
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox6
;
private
System
.
Windows
.
Forms
.
Label
lblInstoreList
;
}
}
source/AssemblyLineClient/equip/FrmEquipBaseForm.cs
deleted
100644 → 0
查看文件 @
f4cd7e7
using
System
;
using
System.Collections.Generic
;
using
System.ComponentModel
;
using
System.Data
;
using
System.Drawing
;
using
System.Linq
;
using
System.Text
;
using
System.Windows.Forms
;
using
System.Runtime.CompilerServices
;
using
System.Threading
;
using
System.IO
;
using
System.Runtime.InteropServices
;
using
OnlineStore.DeviceLibrary
;
using
log4net
;
using
System.Reflection
;
using
UserFromControl
;
using
OnlineStore.LoadCSVLibrary
;
using
OnlineStore.Common
;
namespace
OnlineStore.AssemblyLine
{
public
partial
class
FrmEquipBaseForm
:
FrmBase
{
protected
bool
IsLoad
=
false
;
protected
string
portName
=
""
;
protected
short
SlvAddr
=
0
;
protected
EquipBase
equipBase
=
null
;
public
static
readonly
ILog
LOGGER
=
LogManager
.
GetLogger
(
MethodBase
.
GetCurrentMethod
().
DeclaringType
);
protected
List
<
ConfigMoveAxis
>
allAxis
=
new
List
<
ConfigMoveAxis
>();
public
FrmEquipBaseForm
()
{
Control
.
CheckForIllegalCrossThreadCalls
=
false
;
InitializeComponent
();
}
public
FrmEquipBaseForm
(
EquipBase
equipBase
)
{
this
.
equipBase
=
equipBase
;
Control
.
CheckForIllegalCrossThreadCalls
=
false
;
InitializeComponent
();
LoadIOList
();
}
private
void
FrmStoreIOStatus_Load
(
object
sender
,
EventArgs
e
)
{
//chbDebug.Checked = equipBase.IsDebug;
//if (equipBase.UseAxis)
//{
// portName = equipBase.baseConfig.UpDown_Axis.DeviceName;
// SlvAddr = equipBase.baseConfig.UpDown_Axis.GetAxisValue();
// txtAxisDeviceName.Text = portName;
// txtSlaveId.Text = SlvAddr.ToString();
// comboBox1.Items.Clear();
// comboBox1.Items.Add(equipBase.baseConfig.UpDown_Axis.Explain);
// comboBox1.SelectedIndex = 0;
// txtAxisValue.Text = SlvAddr.ToString();
// btnUpDownUp.Visible = false;
//}
//else
//{
// tabControl1.TabPages.Remove(tabPage2);
// btnUpDownUp.Visible = true;
//}
//cmbSizeList.Items.Clear();
//cmbSizeList.Items.Add("0=默认位置");
//for(int i = 8; i <= 48; i = i + 4)
//{
// cmbSizeList.Items.Add(i.ToString());
//}
//cmbSizeList.SelectedIndex = 0;
//lblStoreStatus.Text = KTK_Store.GetRunStr(equipBase.lineStatus, equipBase.runStatus);
//lblThisSta.Text = equipBase.WarnMsg;
//txtP1.Text = equipBase.baseConfig.UpDownAxisP1.ToString();
//IsLoad = true;
//allAxis.Add()
//cmbAxisList.DataSource = new List<ConfigMoveAxis>(store.moveAxisList);
//cmbAxisList.DisplayMember = "Explain";
//cmbAxisList.ValueMember = "Explain";
//cmbAxisList.SelectedIndex = 0;
LoadData
();
}
protected
void
LoadData
()
{
}
protected
Dictionary
<
string
,
IOTextControl
>
DIControlList
=
new
Dictionary
<
string
,
IOTextControl
>();
protected
Dictionary
<
string
,
IOTextControl
>
DOControlList
=
new
Dictionary
<
string
,
IOTextControl
>();
protected
void
ReadIOList
()
{
foreach
(
string
key
in
DIControlList
.
Keys
)
{
IOTextControl
control
=
DIControlList
[
key
];
int
iov
=
(
int
)
IOManager
.
IOValue
(
key
,
equipBase
.
DeviceID
);
if
(
iov
!=
control
.
IOValue
)
{
control
.
IOValue
=
iov
;
control
.
ShowData
();
}
}
foreach
(
string
key
in
this
.
DOControlList
.
Keys
)
{
IOTextControl
control
=
DOControlList
[
key
];
int
iov
=
(
int
)
IOManager
.
DOValue
(
key
,
equipBase
.
DeviceID
);
if
(
iov
!=
control
.
IOValue
)
{
control
.
IOValue
=
iov
;
control
.
ShowData
();
}
}
}
protected
void
BtnMove
(
Button
btn
,
string
defaultText
,
string
targetText
,
string
ioHighType
)
{
LogUtil
.
info
(
"点击【"
+
btn
.
Text
+
"】 "
);
if
(
btn
.
Text
.
Equals
(
defaultText
))
{
equipBase
.
IOMove
(
ioHighType
,
IO_VALUE
.
HIGH
);
btn
.
Text
=
targetText
;
btn
.
BackColor
=
Color
.
Aqua
;
}
else
{
equipBase
.
IOMove
(
ioHighType
,
IO_VALUE
.
LOW
);
btn
.
Text
=
defaultText
;
btn
.
BackColor
=
Color
.
White
;
}
}
protected
void
BtnMove
(
Button
btn
,
string
defaultText
,
string
targetText
,
string
ioLowType
,
string
ioHighType
)
{
LogUtil
.
info
(
"点击【"
+
btn
.
Text
+
"】 "
);
if
(
btn
.
Text
.
Equals
(
defaultText
))
{
equipBase
.
CylinderMove
(
null
,
ioLowType
,
ioHighType
);
btn
.
Text
=
targetText
;
btn
.
BackColor
=
Color
.
Aqua
;
}
else
{
equipBase
.
CylinderMove
(
null
,
ioHighType
,
ioLowType
);
btn
.
Text
=
defaultText
;
btn
.
BackColor
=
Color
.
SkyBlue
;
}
}
private
void
LoadIOList
()
{
int
roleindex
=
0
;
this
.
tableLayoutPanel1
.
RowStyles
.
Clear
();
this
.
tableLayoutPanel1
.
RowCount
=
equipBase
.
baseConfig
.
DIList
.
Count
;
foreach
(
ConfigIO
ioValue
in
equipBase
.
baseConfig
.
DIList
.
Values
)
{
this
.
tableLayoutPanel1
.
RowStyles
.
Add
(
new
RowStyle
(
SizeType
.
Absolute
,
28
));
IOTextControl
control
=
new
IOTextControl
(
ioValue
.
ElectricalDefinition
+
"_"
+
ioValue
.
Explain
,
ioValue
.
ProName
);
this
.
tableLayoutPanel1
.
Controls
.
Add
(
control
,
0
,
roleindex
);
roleindex
++;
DIControlList
.
Add
(
ioValue
.
ProName
,
control
);
}
tableLayoutPanel2
.
RowStyles
.
Clear
();
this
.
tableLayoutPanel2
.
RowCount
=
equipBase
.
baseConfig
.
DOList
.
Count
;
roleindex
=
0
;
foreach
(
ConfigIO
ioValue
in
equipBase
.
baseConfig
.
DOList
.
Values
)
{
this
.
tableLayoutPanel2
.
RowStyles
.
Add
(
new
RowStyle
(
SizeType
.
Absolute
,
28
));
IOTextControl
control
=
new
IOTextControl
(
ioValue
.
ElectricalDefinition
+
"_"
+
ioValue
.
Explain
,
ioValue
.
ProName
);
this
.
tableLayoutPanel2
.
Controls
.
Add
(
control
,
0
,
roleindex
);
roleindex
++;
DOControlList
.
Add
(
ioValue
.
ProName
,
control
);
}
this
.
SuspendLayout
();
//此处为不闪屏,一定要有的!
cmbWriteIO
.
DataSource
=
new
List
<
ConfigIO
>(
equipBase
.
baseConfig
.
DOList
.
Values
);
cmbWriteIO
.
ValueMember
=
"ProName"
;
cmbWriteIO
.
DisplayMember
=
"DisplayStr"
;
}
private
void
timer1_Tick
(
object
sender
,
EventArgs
e
)
{
try
{
if
(!
this
.
Visible
)
{
return
;
}
if
(
chbAutoRead
.
Checked
&&
this
.
Visible
)
{
ReadIOList
();
lblTrayNum
.
Text
=
"托盘编码:"
+
TrayManager
.
GetNum
(
equipBase
.
DeviceID
);
}
string
canOut
=
LineManager
.
Line
.
CanOutStore
(
equipBase
.
DeviceID
)
?
"可出库"
:
"不可出库"
;
lblStoreStatus
.
Text
=
KTK_Store
.
GetRunStr
(
equipBase
.
lineStatus
,
equipBase
.
runStatus
)+
"("
+
canOut
+
")"
;
lblThisSta
.
Text
=
equipBase
.
WarnMsg
;
string
text
=
""
;
List
<
InOutParam
>
ps
=
new
List
<
InOutParam
>(
equipBase
.
waitInStoreList
);
if
(
ps
.
Count
>
0
)
{
text
=
"等待入库列表:\r"
;
foreach
(
InOutParam
param
in
ps
)
{
text
+=
param
.
ToStr
()
+
"\r"
;
}
}
else
{
ps
=
new
List
<
InOutParam
>(
equipBase
.
waitOutStoreList
);
if
(
ps
.
Count
>
0
)
{
text
=
"等待出库列表:\r"
;
foreach
(
InOutParam
param
in
ps
)
{
text
+=
param
.
ToStr
()
+
"\r"
;
}
}
}
if
(!
lblInstoreList
.
Text
.
Equals
(
text
))
{
lblInstoreList
.
Text
=
text
;
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
equipBase
.
Name
+
"界面定时器出错:"
+
ex
.
ToString
());
}
}
private
void
FrmTest_FormClosing
(
object
sender
,
FormClosingEventArgs
e
)
{
// KNDAIManager.NeedShow = false;
try
{
if
(
this
.
timer1
.
Enabled
)
{
this
.
timer1
.
Enabled
=
false
;
}
}
catch
(
Exception
ex
)
{
MessageBox
.
Show
(
ex
.
StackTrace
,
"Exception(异常)"
,
MessageBoxButtons
.
OK
,
MessageBoxIcon
.
Error
);
LogUtil
.
error
(
LOGGER
,
ex
.
StackTrace
);
}
}
private
void
btnOpenDo_Click
(
object
sender
,
EventArgs
e
)
{
WriteDO
(
IO_VALUE
.
HIGH
);
}
private
void
btnWriteSingleDO_Click
(
object
sender
,
EventArgs
e
)
{
WriteDO
(
IO_VALUE
.
LOW
);
}
private
void
WriteDO
(
IO_VALUE
value
)
{
string
deviceName
=
txtDoName
.
Text
;
int
index
=
FormUtil
.
GetIntValue
(
txtDOIndex
);
// IO_VALUE value = checkBox1.Checked ? IO_VALUE.HIGH : IO_VALUE.LOW;
int
time
=
FormUtil
.
GetIntValue
(
txtWriteTime
);
int
slaveId
=
FormUtil
.
GetIntValue
(
txtSlaveId
);
if
(
time
>
0
)
{
IOManager
.
instance
.
WriteSingleDO
(
deviceName
,
(
byte
)
slaveId
,
(
ushort
)
index
,
(
IO_VALUE
)
value
,
time
);
}
else
{
IOManager
.
instance
.
WriteSingleDO
(
deviceName
,
(
byte
)
slaveId
,
(
ushort
)
index
,
(
IO_VALUE
)
value
);
}
}
private
ConfigIO
GetSelectDO
()
{
string
text
=
cmbWriteIO
.
SelectedValue
.
ToString
();
if
(
equipBase
.
baseConfig
.
DOList
.
ContainsKey
(
text
))
{
ConfigIO
io
=
equipBase
.
baseConfig
.
DOList
[
text
];
return
io
;
}
return
null
;
}
IOTextControl
selectControl
=
null
;
private
void
cmbWriteIO_SelectedIndexChanged
(
object
sender
,
EventArgs
e
)
{
if
(
cmbWriteIO
.
SelectedIndex
>=
0
)
{
ConfigIO
io
=
GetSelectDO
();
if
(
io
!=
null
)
{
// txtIp.Text = io.DeviceName;
txtDOIndex
.
Text
=
io
.
GetIOAddr
().
ToString
();
txtDoName
.
Text
=
io
.
DeviceName
;
txtSlaveId
.
Text
=
io
.
SlaveID
.
ToString
();
IOTextControl
newControl
=
DOControlList
[
io
.
ProName
];
if
(
selectControl
!=
null
)
{
selectControl
.
BackColor
=
Color
.
White
;
}
newControl
.
BackColor
=
Color
.
SkyBlue
;
selectControl
=
newControl
;
}
}
}
private
void
cmbWriteIO_DrawItem
(
object
sender
,
DrawItemEventArgs
e
)
{
if
(
e
.
Index
<
0
)
{
return
;
}
e
.
DrawBackground
();
e
.
DrawFocusRectangle
();
if
(
cmbWriteIO
.
Items
.
Count
>
e
.
Index
)
{
ConfigIO
io
=
(
ConfigIO
)
cmbWriteIO
.
Items
[
e
.
Index
];
e
.
Graphics
.
DrawString
(
io
.
DisplayStr
,
e
.
Font
,
new
SolidBrush
(
e
.
ForeColor
),
e
.
Bounds
.
X
,
e
.
Bounds
.
Y
+
3
);
}
}
private
void
btnReadIO_Click
(
object
sender
,
EventArgs
e
)
{
ReadIOList
();
}
public
void
FormStatus
(
bool
isStart
)
{
btnStart
.
Enabled
=
!
isStart
;
btnStop
.
Enabled
=
true
;
btnReset
.
Enabled
=
isStart
;
btnInStore
.
Enabled
=
isStart
;
btnOutStore
.
Enabled
=
isStart
;
}
private
void
FrmIOStatus_Shown
(
object
sender
,
EventArgs
e
)
{
timer1
.
Start
();
}
private
void
btnStart_Click
(
object
sender
,
EventArgs
e
)
{
if
(
equipBase
.
runStatus
.
Equals
(
LineRunStatus
.
Wait
))
{
bool
result
=
equipBase
.
StartRun
(
true
);
if
(
result
)
{
FormStatus
(
true
);
}
}
}
private
void
chbDebug_CheckedChanged
(
object
sender
,
EventArgs
e
)
{
if
(!
IsLoad
)
{
return
;
}
if
(
chbDebug
.
Checked
)
{
if
(!
equipBase
.
IsDebug
)
{
DialogResult
result
=
MessageBox
.
Show
(
"是否切换到调试状态?"
,
"是否确认切换"
,
MessageBoxButtons
.
YesNo
,
MessageBoxIcon
.
Question
,
MessageBoxDefaultButton
.
Button1
);
if
(
result
.
Equals
(
DialogResult
.
Yes
))
{
//equipBase.IsDebug = true;
//equipBase.baseConfig.IsDebug = 1;
//LineManager.SaveMoveEquipConfig(equipBase.baseConfig);
//equipBase.ChangeDebug(true);
//LogUtil.info(equipBase.Name+ "用户切换到调试状态 ");
}
}
}
else
{
if
(
equipBase
.
IsDebug
)
{
DialogResult
result
=
MessageBox
.
Show
(
"是否切换到正常工作状态?"
,
"是否确认切换"
,
MessageBoxButtons
.
YesNo
,
MessageBoxIcon
.
Question
,
MessageBoxDefaultButton
.
Button1
);
if
(
result
.
Equals
(
DialogResult
.
Yes
))
{
//equipBase.IsDebug = false;
//equipBase.baseConfig.IsDebug = 0;
//LineManager.SaveMoveEquipConfig(equipBase.baseConfig);
//equipBase.ChangeDebug(false);
//LogUtil.info(equipBase.Name + "用户切换到正常工作状态 ");
}
}
}
}
private
void
btnOutStore_Click
(
object
sender
,
EventArgs
e
)
{
if
(
equipBase
.
runStatus
.
Equals
(
LineRunStatus
.
Runing
))
{
equipBase
.
StartOutStoreMove
(
new
InOutParam
(
));
}
else
{
MessageBox
.
Show
(
"未启动或不在空闲中,无法入库测试!"
);
}
}
private
void
btnInStore_Click
(
object
sender
,
EventArgs
e
)
{
if
(
equipBase
.
runStatus
.
Equals
(
LineRunStatus
.
Runing
))
{
equipBase
.
StartInStoreMove
(
new
InOutParam
());
}
else
{
MessageBox
.
Show
(
"未启动或不在空闲中,无法入库测试!"
);
}
}
private
void
btnStop_Click
(
object
sender
,
EventArgs
e
)
{
try
{
equipBase
.
StopMove
();
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"出错:"
+
ex
.
StackTrace
);
}
}
private
void
btnReset_Click
(
object
sender
,
EventArgs
e
)
{
if
(
equipBase
.
runStatus
>(
LineRunStatus
.
Wait
))
{
equipBase
.
Reset
();
}
}
private
void
btnOpenAxis_Click
(
object
sender
,
EventArgs
e
)
{
string
portName
=
txtAxisDeviceName
.
Text
;
short
SlvAddr
=
FormUtil
.
GetShortValue
(
txtAxisValue
);
LogUtil
.
info
(
"点击【打开伺服】,端口号【"
+
portName
+
"】地址【"
+
SlvAddr
+
"】 "
);
ACServerManager
.
OpenPort
(
portName
);
ACServerManager
.
AlarmClear
(
portName
,
SlvAddr
);
Thread
.
Sleep
(
100
);
ACServerManager
.
ServoOn
(
portName
,
SlvAddr
);
}
private
void
btnCloseAxis_Click
(
object
sender
,
EventArgs
e
)
{
LogUtil
.
info
(
"点击【关闭伺服】,端口号【"
+
portName
+
"】地址【"
+
SlvAddr
+
"】 "
);
ACServerManager
.
ServoOff
(
portName
,
SlvAddr
);
}
private
void
btnAxisAMove_Click
(
object
sender
,
EventArgs
e
)
{
int
position
=
FormUtil
.
GetIntValue
(
txtAPosition
);
int
speed
=
FormUtil
.
GetIntValue
(
txtASpeed
);
LogUtil
.
info
(
"点击【绝对运动】,端口号【"
+
portName
+
"】地址【"
+
SlvAddr
+
"】位置【"
+
position
+
"】速度【"
+
speed
+
"】"
);
ACServerManager
.
AbsMove
(
portName
,
SlvAddr
,
position
,
speed
);
}
private
void
btnAxisRMove_Click
(
object
sender
,
EventArgs
e
)
{
int
position
=
FormUtil
.
GetIntValue
(
txtAPosition
);
int
speed
=
FormUtil
.
GetIntValue
(
txtASpeed
);
LogUtil
.
info
(
"点击【相对运动】,端口号【"
+
portName
+
"】地址【"
+
SlvAddr
+
"】位置【"
+
position
+
"】速度【"
+
speed
+
"】"
);
ACServerManager
.
RelMove
(
portName
,
SlvAddr
,
position
,
speed
);
}
private
void
btnAxisVMove_Click
(
object
sender
,
EventArgs
e
)
{
int
speed
=
FormUtil
.
GetIntValue
(
txtASpeed
);
LogUtil
.
info
(
"点击【匀速运动】,端口号【"
+
portName
+
"】地址【"
+
SlvAddr
+
"】 速度【"
+
speed
+
"】"
);
ACServerManager
.
SpeedMove
(
portName
,
SlvAddr
,
speed
);
}
private
void
btnAxisStop_Click
(
object
sender
,
EventArgs
e
)
{
LogUtil
.
info
(
"点击【停止运动】,端口号【"
+
portName
+
"】地址【"
+
SlvAddr
+
"】 "
);
ACServerManager
.
SuddenStop
(
portName
,
SlvAddr
);
}
private
void
btnComAlarmClear_Click
(
object
sender
,
EventArgs
e
)
{
LogUtil
.
info
(
"点击【清理报警】,端口号【"
+
portName
+
"】地址【"
+
SlvAddr
+
"】 "
);
ACServerManager
.
AlarmClear
(
portName
,
SlvAddr
);
Thread
.
Sleep
(
100
);
ACServerManager
.
ServoOn
(
portName
,
SlvAddr
);
}
private
void
btnAxisReturnHome_Click
(
object
sender
,
EventArgs
e
)
{
int
speed
=
FormUtil
.
GetIntValue
(
txtASpeed
);
LogUtil
.
info
(
"点击【原点返回】,端口号【"
+
portName
+
"】地址【"
+
SlvAddr
+
"】 速度【"
+
speed
+
"】"
);
ACServerManager
.
HomeMove
(
portName
,
SlvAddr
,
speed
);
}
private
void
btnGetAlarm_Click
(
object
sender
,
EventArgs
e
)
{
int
value
=
ACServerManager
.
GetAlarmStatus
(
portName
,
SlvAddr
);
this
.
txtAlarmStatus
.
Text
=
value
.
ToString
();
}
private
void
button1_Click
(
object
sender
,
EventArgs
e
)
{
int
value
=
ACServerManager
.
GetBusyStatus
(
portName
,
SlvAddr
);
this
.
txtBusyStatus
.
Text
=
value
.
ToString
();
}
private
void
button2_Click
(
object
sender
,
EventArgs
e
)
{
int
value
=
ACServerManager
.
GetHomeEndStatus
(
portName
,
SlvAddr
);
this
.
txtHomeStatus
.
Text
=
value
.
ToString
();
}
private
void
btnReadHomeSingle_Click
(
object
sender
,
EventArgs
e
)
{
int
value
=
ACServerManager
.
GetHomeSingle
(
portName
,
SlvAddr
);
this
.
txtHomeSingle
.
Text
=
value
.
ToString
();
}
private
void
btnReadPosition_Click
(
object
sender
,
EventArgs
e
)
{
lblOutPulse
.
Text
=
ACServerManager
.
GetTargetPosition
(
portName
,
SlvAddr
).
ToString
();
lblCountPulse
.
Text
=
ACServerManager
.
GetActualtPosition
(
portName
,
SlvAddr
).
ToString
();
}
private
ConfigMoveAxis
GetSelAxis
()
{
if
(
this
.
comboBox1
.
SelectedIndex
>=
0
)
{
ConfigMoveAxis
SlvAddr
=
allAxis
[
comboBox1
.
SelectedIndex
];
}
return
null
;
}
private
void
btnAxisOn_Click
(
object
sender
,
EventArgs
e
)
{
this
.
Enabled
=
false
;
equipBase
.
RunAxis
(
false
,
GetSelAxis
());
this
.
Enabled
=
true
;
LogUtil
.
info
(
"伺服运转ON完成"
);
}
private
void
btnAxisOff_Click
(
object
sender
,
EventArgs
e
)
{
equipBase
.
CloseAxis
(
GetSelAxis
());
LogUtil
.
info
(
"伺服运转OFF完成"
);
}
private
void
btnCloseAll_Click
(
object
sender
,
EventArgs
e
)
{
IOManager
.
CloseDeviceDO
(
new
List
<
ConfigIO
>(
equipBase
.
baseConfig
.
DOList
.
Values
));
foreach
(
Control
con
in
groupBox5
.
Controls
)
{
if
(
con
is
Button
)
{
con
.
BackColor
=
BackColor
=
Color
.
White
;
}
}
}
private
void
comboBox1_SelectedIndexChanged
(
object
sender
,
EventArgs
e
)
{
if
(
this
.
comboBox1
.
SelectedIndex
>=
0
)
{
ConfigMoveAxis
SlvAddr
=
allAxis
[
comboBox1
.
SelectedIndex
];
txtAxisDeviceName
.
Text
=
SlvAddr
.
DeviceName
;
txtAxisValue
.
Text
=
SlvAddr
.
GetAxisValue
().
ToString
();
txtASpeed
.
Text
=
SlvAddr
.
TargetSpeed
.
ToString
();
}
}
}
}
source/AssemblyLineClient/equip/FrmEquipBaseForm.resx
deleted
100644 → 0
查看文件 @
f4cd7e7
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 11</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>25</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAA8AMDAQAAEABABoBgAA9gAAACgoEAABAAQAyAQAAF4HAAAgIBAAAQAEAOgCAAAmDAAAGBgQAAEA
BADoAQAADg8AABAQEAABAAQAKAEAAPYQAAAwMAAAAQAIAKgOAAAeEgAAKCgAAAEACACoCwAAxiAAACAg
AAABAAgAqAgAAG4sAAAYGAAAAQAIAMgGAAAWNQAAEBAAAAEACABoBQAA3jsAADAwAAABACAAqCUAAEZB
AAAoKAAAAQAgAGgaAADuZgAAICAAAAEAIACoEAAAVoEAABgYAAABACAAiAkAAP6RAAAQEAAAAQAgAGgE
AACGmwAAKAAAADAAAABgAAAAAQAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACA
gACAAAAAgACAAICAAACAgIAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAAwMDAAP///wAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAA/lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAA
D///8AAAAAAAAAAAAAAAAAAAAAAAAAAE7////0AAAAAAAAAAAAAAAAAEZHZGBABP/////+AAQkJWZkAA
AAAAAAAG6+t3YAD///////8AB7brd2AAAAAAAAAHvtt0AA/////////kAEd77UAAAAAAAAAGt3ZgBO//
////////ACRnvlAAAAAAAAAHd0QAT///////////8EBHdmAAAAAAAAAEZ2QA////7uvb7v///kAkR0AA
AAAAAAAEdAAf///r69e+vb7///AAZ0AAAAAAAAAGUATv//vtvr2+t72+//9AB0AAAAAAAAAEAC///r6+
t76+vbe+7//gBCAAAAAAAAAABO//7t6+fX2+vre3vv//AAAAAAAAAAAAD///3r69t76+vb69vv//5AAA
AAAAAAAA///+vt5+3r7b69t723///wAAAAAAAAAP///3576+vre+vXvr23////AAAAAAAAD////73n19
7t6+vNvrdr7///8AAAAAAA7////t7r7ne+vtd9vr237////wAAAABP/////r7evt536+vr6+t7f////+
cAAAb//////r7r7evt7X1769vr3/////8AABD/////99fu5+7r7r7X6+t7f/////8AAAAP/////n7t7u
7Xfr6+vX233/////AAAAAA/////t7u7e7u3n7evr577////wAAAAAAD////+7u7u7t6+2+vr69////8A
AAAAAAAP///+3u7+7ufud33tt7////AAAAAAAAAA///+7u/u7e7evt6+vu///wAAAAAAAAAAD///7u7u
7u7N7r7evf//8AAAAAAAAAAEBP///u7u7ud9576+v//+QEAAAAAAAAAGcE7//u7u7t7r7efe7//wR0AA
AAAAAAAGe0D///7u7n5+fr6///8AfVAAAAAAAAALfXAP///u3n19vt7///BOt2AAAAAAAAAHd75A////
/u7u7v///kB3vrAAAAAAAAAE3rdwD///////////8ke+3kAAAAAAAAAE6+17ZP//////////AHvte3AA
AAAAAAAE6+vrcA/////////wRd63fVAAAAAAAAAG7XfXdgH///////8Aduvtd2AAAAAAAAAAVkdGVkAP
//////AGVkdGVgAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAA
AAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD///////8AAP///n///wAA///8P///AAD///gf//8AAP//8A///wAA///gB///AAD8AAAAAD8AAPwA
AAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/
AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPgAAAAAHwAA8AAAAAAPAADgAAAAAAcAAMAA
AAAAAwAAgAAAAAABAACAAAAAAAEAAMAAAAAAAwAA4AAAAAAHAADwAAAAAA8AAPgAAAAAHwAA/AAAAAA/
AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwA
AAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD//+AH//8AAP//8A///wAA///4H///
AAD///w///8AAP///n///wAA////////AAAoAAAAKAAAAFAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//
AADAwMAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF
cAAAAAAAAAAAAAAAAAAAAAAAAH/3AAAAAAAAAAAAAAAAAAAAAAAH//9wAAAAAAAAAAAAAAAAQAAAAH//
//cAAAAABAAAAAAABHt2VkAH/////3AFa3t2AAAAAAAAfXt2AH//////9wBGd9VAAAAAAAC3dkQH////
////cAR7dgAAAAAAAGezAH/////////3BGZ2AAAAAAAAdkQH///uvr3u//9wBWcAAAAAAABkAH//++2+
vVvu//cERgAAAAAAAAQH//7et9vr29vv/3AEAAAAAAAAAH//6+e+t7e+t77/9wAAAAAAAAAH//7r1313
fb69tu//cAAAAAAAAH///m53e+t7e3vr7//3AAAAAAAH///uvtftfX3r22u+//9wAAAAAH///+vte+vr
6+vr6+7///cAAAAH////3nfu3u3r3r69tv///nAAAH/////r7evr6+vre9e+////9wAAf////75+7u3u
fn3rfbf////3AAAH////7e7t7uvtvrvr6////3AAAAB////u3u7t7ud+3r2+///3AAAAAAf//+7u7u7u
ve2+d37//3AAAAAAAH///u7v7u7r7evbf//3AAAAAAAAB///7u/t7Xfuvn7v/3AAAAAAAABAf//u7u7u
frd9vv/3BAAAAAAAAHdH//7u7n5+3tfv/3C3QAAAAAAAvVB//+7u1+vr7v/3C3cAAAAAAAB9e0f//+7n
7e7//3B96wAAAAAAALfeYH/////////3C+vmAAAAAAAAfr63R////////3B9e+ZAAAAAAAC3fXdwf///
///3C3fetwAAAAAAAGdnt2QH/////3BHZ7dnAAAAAAAAAAAAAAB////3AAAAAAAAAAAAAAAAAAAAAAf/
/3AAAAAAAAAAAAAAAAAAAAAAAH/3AAAAAAAAAAAAAAAAAAAAAAAAB3AAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////8AAAD//+f//wAAAP//w///AAAA//+B//8A
AAD//wD//wAAAPgAAAAfAAAA+AAAAB8AAAD4AAAAHwAAAPgAAAAfAAAA+AAAAB8AAAD4AAAAHwAAAPgA
AAAfAAAA+AAAAB8AAAD4AAAAHwAAAPgAAAAfAAAA+AAAAB8AAADwAAAADwAAAOAAAAAHAAAAwAAAAAMA
AACAAAAAAQAAAIAAAAABAAAAwAAAAAMAAADgAAAABwAAAPAAAAAPAAAA+AAAAB8AAAD4AAAAHwAAAPgA
AAAfAAAA+AAAAB8AAAD4AAAAHwAAAPgAAAAfAAAA+AAAAB8AAAD4AAAAHwAAAPgAAAAfAAAA+AAAAB8A
AAD4AAAAHwAAAP//AP//AAAA//+B//8AAAD//8P//wAAAP//5///AAAA//////8AAAAoAAAAIAAAAEAA
AAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICA
gAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AADAwMAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAG7gAAAAAAAAAAAAAAAAAADv/kAAAAAAAAAAAABARABO///gBARAAAAAAABH63tg
7////kZ3vrQAAAAAC+13Tv/////mt9dwAAAAAAfbdO///////gbr5AAAAABL5k7/7ut37v/iXXAAAAAA
DnDv/td729vv/kZ0AAAAAAZO/+vr6+vr6//lYAAAAAAA7/7r69t7e7v//gAAAAAATv/77efn13fbfv/k
AAAAAO//7ee+vbe9vr7//gAAAE7//+vt537uvr23///hAADv//933r7Xvbe3t////gAA7///5+7n7n7X
fXb///4AAA///+3u3u2+vr6+///mAAAA7//u7u7u7t69vv/+AAAAAA7//u/u7Xvr7c7/4AAAAAAA7/7u
7u7tfr3v/gAAAAAAB27/7+7ufuvu7+R0AAAAAEtw7/7u3r197/5GcAAAAAAO1U7//u7u7//gfrQAAAAA
S31w7//////+e11wAAAAAAfr607/////4WvtdAAAAABGd9dw7////kbm63AAAAAAAAQAAA7//+AABAAA
AAAAAAAAAAAA7/4AAAAAAAAAAAAAAAAAAA7nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA///////+f////D////gf//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AA
AAfAAAADgAAAAYAAAAHAAAAD4AAAB/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD//4
H////D////5///////8oAAAAGAAAADAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
gAAAgAAAAICAAIAAAACAAIAAgIAAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AADAwMAA////AAAA
AAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAf+cAAAAAAAAAQkYF7/9gBgYAAAAGvrdv///3vr5AAAAA
7mX/////R31AAAAAtl/+7r7v87cAAAAEd//b69vb/2dAAAAAT/7r6+vrf+cAAAAC/+vr7be3vv9wAAB/
/+3r5969vv/wAAf//33N6+t76///YAD//+3u5+3rt///cAB//+7u3te+3v/xAAAE//7u7u6+vv8gAAAA
f/7u7r197vYAAAAEZP/u7u6+/1ZAAAAA53/+7t7v925AAAAEt2H/////R74AAAAE7eZ////wft5AAAAA
BAQA//9wBAQAAAAAAAAAf/QAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAP//////5////8P//+AA
B//gAAf/4AAH/+AAB//gAAf/4AAH/+AAB//AAAP/gAAB/4AAAf/AAAP/4AAH/+AAB//gAAf/4AAH/+AA
B//gAAf/4AAH///D////5////////ygAAAAQAAAAIAAAAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAMDA
wAD///8AAAAADnAAAAAAAADufgAAAAAFZH/+RkQAAG6+///k5AAARu/ut/d2AABO+9vr3+QAB+7u7b6+
9+Du/+2+vrf/537/7u7Xe/9+Dn/u7uvt/uAAR/7t6+/gAABn7u7u97YAAE5u///m5gAABlDv9wZQAAAA
AH7uAAAAAAAADnAAAAD+f////D///8AD///AA///wAP//8AD//+AAf//AAD//wAA//+AAf//wAP//8AD
///AA///wAP///w////+f///KAAAADAAAABgAAAAAQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAEAgEABAQEAAgICAANDQ0AEQkGABISEgAUFBQAGRkZAB0dHQAnFg4AKBYOAC4aEQA9IhYAJSUlACws
LAAxMTEAODg4AD4+PgBFJxkAUy8fAFozIQBlOSUAcD8qAHJAKgB2QywAeUQtAEBAQABFRUUASEhIAFNT
UwBXV1cAXV1dAGFhYQBlZWUAampqAG5ubgBycnIAeHh4AH5+fgCHTDIAiEwyAMlTLgDLVTAAzVkzAMxZ
NADMXDoA0Fw2ANNgOADUYjoA1WQ8ANhnPgDYaD8AsWRCANVnQgDaaUAA3GxDANhrRADdbUQA3nBGANF2
TgDXclAA3ntXAOBxRgDhc0kA4XRKAON2TADkd00A5HhNAOh8TwDme1AA5nxSAOh9UQDpf1QA5IFVAOuA
UwDoglYA7IJVAOmCWADthlkA7IdcAO2IXQDwh1kA8ohZAPGKXADyjF8A9IxeAN2LbwDdi3AA3ZJ6AO6L
YADvjGIA8Y1hAPSOYQDxj2QA9JBiAPGRZgD0kmYA8pNoAPOWawD0lWoA9JZsAPSYbgDml3kA9ZpxAPWd
dQD2n3gA9aB5APaifQD2poEA9qeEAPeohAD3q4gA962LAPCqjgD3ro0A97CPAPexkAD3tZYA+LCQAPiz
lAD4tJYA+LaZAPi5nQDotKMA6LWmAPi7oAD4vaIA+b6kAPG/rAD5wKYA+cKqAPnFrQDsxbkA+cawAPnJ
tAD5zLcA+s25APrPvAD60L0A2traANzc2wDc3NwA+tTDAPrWxgD72McA+tfIAPvZyQD7280A+93PAPzd
zwD73dAA/OTZAP3p4AD46+cA++/pAPzw6wD98uwA/fbyAP39/QAAAAAALwMAAFAEAABwBgAAkAkAALAK
AADPDAAA8A4AAP8gEgD/PjEA/1xRAP96cQD/l5EA/7axAP/U0QD///8AAAAAAC8ADgBQABcAcAAhAJAA
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
AA78AAAAAD8ADvwAAAAAPwAO/AAAAAA/AA78AAAAAD8ADvwAAAAAPwAO/AAAAAA/AA78AAAAAD8ADvgA
AAAAHwAO8AAAAAAPAA7gAAAAAAcADsAAAAAAAwAOgAAAAAABAA6AAAAAAAEADsAAAAAAAwAO4AAAAAAH
AA7wAAAAAA8ADvgAAAAAHwAO/AAAAAA/AA78AAAAAD8ADvwAAAAAPwAO/AAAAAA/AA78AAAAAD8ADvwA
AAAAPwAO/AAAAAA/AA78AAAAAD8ADvwAAAAAPwAO/AAAAAA/AA78AAAAAD8ADvwAAAAAPwAO/AAAAAA/
AA7//+AH//8ADv//8A///wAO///4H///AA7///w///8ADv///n///wAO////////AA4oAAAAKAAAAFAA
AAABAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUFBQAMBwQACgoKAA4ODgAcDwoAHBAKABAQ
EAAeHh4ALRkQACkpKQAuLi4AMDAwADY2NgA6OjoAPT09AEUnGQBjNyQAYzgkAGQ4JABtPSgAcT8pAHJA
KgBCQkIARkZGAElJSQBOTk4AV1dXAFlZWQBdXV0AYWFhAGVlZQBoaGgAbGxsAHl5eQB+fn4AiU0zAJBR
NQCYVjgAp14+AKlfPgCqYD8AyVMuAMlULwDMVzEAz1s1ANJfOADTYDkA1WQ8ANloPwCuYkAAsmRCALVm
QwC2ZkQAxW9JANVnQQDZaUAA3GxCANhrRADdbkQA0GlJAN9wRQDXc1IA335aAOBxRwDgckkA4nRJAON3
TADjeE4A5XlNAOF/UwDnfVIA4X9UAOd+VADpflEA6YFWAOyCVQDphFcA6oNYAOmEWQDthlgA7YleAPKI
WgD0ilsA8IpdAPKMXgDeknkA6YpjAO2LYADyjmEA9I5hAPCPZAD0kGMA8pFmAPSSZQDxkmgA9JNoAPOU
aQD0lWoA9JZsAPSYbgD0mnEA9ZxzAPWddQD2n3gA9aF7APWifAD2pH4A6Z+EAOCdiQD2pYEA9qmGAPar
iAD3ro0A97GRAPe0lgD4tpgA97ibAPi5ngD3u6EA97yiAPi7oAD4vaIA+b6kAPnApwD4w6sA+cStAO3G
uQD5xrAA+ciyAPnJtAD5zbgA+tC+APTOwAD608EA+dXFAPvZyQD72swA+9zNAPzi1gD86N8A/Pn3APr6
+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
AAAsAC8ASwBQAGkAcACHAJAApQCwAMQAzwDhAPAA8BH/APIx/wD0Uf8A9nH/APeR/wD5sf8A+9H/AP//
/wAAAAAAGwAvAC0AUAA/AHAAUgCQAGMAsAB2AM8AiADwAJkR/wCmMf8AtFH/AMJx/wDPkf8A3LH/AOvR
/wD///8AAAAAAAgALwAOAFAAFQBwABsAkAAhALAAJgDPACwA8AA+Ef8AWDH/AHFR/wCMcf8AppH/AL+x
/wDa0f8A////AAAAAAAAAAAXFwAAAAAAAAAAAAAAAAAXFxcXAAAAAAAAAAACAwMBFyQkFwEDAwIAAAAA
AxAFFyQkJCQXBRADAAAAAAMFFyIYCwgRIRcFAwAAAAABFyITDQwJBwYhFwEAAAAXFyQbExIPDAoHESQX
FwAXFyQkFRYWFA8MCggkJBcXFxckJBodHBkUDgwLJCQXFwAXFyQeIB8dFhINGCQXFwAAAAEXIyAgHRYT
EyIXAQAAAAADBBcjHhoVGyIXBQMAAAAAAxAEFyQkJCQXBRADAAAAAAIDAwEXJCQXAQMDAgAAAAAAAAAA
FxcXFwAAAAAAAAAAAAAAAAAXFwAAAAAAAAD+fwAA/D8AAMADAADAAwAAwAMAAMADAACAAQAAAAAAAAAA
AACAAQAAwAMAAMADAADAAwAAwAMAAPw/AAD+fwAAKAAAADAAAABgAAAAAQAgAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAABAAAABQAAABAAAAAlAAAARgAAAHEAAACaAAAAvgAAAL4AAACaAAAAcAAA
AEYAAAAlAAAAEAAAAAUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAABAAA
AAUAAAAFAAAABgAAAAYAAAAGAAAABgAAAAYAAAALAAAAFQAAACoAAABKAAAAdAAAAKIAAADNAAAA+gAA
APoAAADNAAAAogAAAHQAAABKAAAAKQAAABUAAAAKAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAA
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
Qf+HTDL/WzMh/y4aEf8DAgH/HR0d/9ra2f/9/f3//v79//39/f/+/v3//v79//7+/f/9/f3//f39//7+
/f/+/v3//f39//7+/v/+/v3//f39//39/f/9/f3/2NjY/xwcG/8EAgH/LhoR/1szIf+ITDL/sWRB/9F2
Tv9wPyn/AAAA/wAAAL4AAAB/AAAAQQAAABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAHAAA
AP9lOSX/sGRB/4ZLMf9aMiH/LhoR/wMCAf8fHx//2tra//7+/f/+/v7//v79//7+/f/77ej/8L+r/+aW
ef/ee1f/2GtE/9VnQf/XcU//3Ipv/+i0o//46eX//f39//7+/f/9/f3//v7+/9jY2P8dHR3/AwIB/y4Z
EP9aMiH/hkwx/7FkQf9lOSX/AAAA/wAAAL8AAACAAAAAQQAAABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAA
AAEAAAALAAAAJgAAAP9TLx7/h0wx/1oyIf8uGhD/BAIB/x8fH//Z2dn//v7+//7+/v/+/v7//O/q/++q
jv/keE7/4HFG/91tQ//aakD/2GY+/9VjO//SXzj/0Fw1/81ZMv/MWjX/3ZF6//jq5v/+/v3//v7+//7+
/v/Y2Nf/HR0d/wMCAf8uGRD/WjIh/4dMMv9TLx//AAAA/wAAAMEAAACCAAAAQgAAABgAAAAGAAAAAAAA
AAAAAAAAAAAAAQAAAAUAAAAVAAAAOAAAAP89Ihb/WjMh/y4aEf8EAgH/HR0d/9ra2v/+/v7//v79//7+
/f/51sb/7Ihd/+h8T//leUz/4nVJ/+BxR//dbkT/2mtB/9hnP//VYzz/0l85/9BcNf/NWTL/ylUw/8xd
O//sxLj//v7+//7+/v/+/v7/2NjY/xwcG/8DAgH/LhkQ/1ozIf89Ihb/AAAA/wAAAMYAAACHAAAARQAA
ABkAAAAGAAAAAAAAAAAAAAABAAAABQAAABAAAAAqAAAAVwAAAP8nFg7/LhoR/wMCAf8fHx//2tra//7+
/v/+/v7//v79//rNuf/wh1n/7YNV/+qAU//ofVD/5XlO/+N2S//hckj/3m9F/9trQv/YZz//1WQ8/9Jf
Of/QXDb/zVkz/8pVL//JUy//57Sk//7+/v/+/v7//v7+/9jY2P8eHh3/AwIB/y4aEf8nFg7/AAAA/wAA
AM8AAACRAAAATAAAABwAAAAGAAAAAAAAAAEAAAAFAAAADwAAACUAAABJAAAAfgAAAP8QCQX/BAIB/x8f
H//Z2dn//f39//39/f/+/v3/+9jI//SMXf/yilv/74dZ/+2FV//rglX/6H5S/+Z7T//jd0z/4XNJ/95w
Rv/ba0P/2Gc//9VkPP/TYDn/0Fw2/81ZM//KVTD/yVMv/+zEuP/+/v3//v79//39/f/X19f/Hh4d/wQC
Af8QCQX/AAAA/wAAANoAAAChAAAAXAAAACYAAAAKAAAAAQAAAAUAAAAPAAAAJAAAAEYAAAB0AAAAqAAA
AP8AAAD/HR0d/9ra2v/+/v7//v79//7+/f/98ev/9JNo//OMXv/zjV7/8o1f//GKXf/uhlr/64NX/+l/
VP/me1D/5HhN/+FzSv/ecEb/22xD/9hnP//WZDz/02A5/9BcNv/NWTP/ylUw/8xdO//46ub//v7+//39
/f/+/v3/2NjY/xwcHP8AAAD/AAAA/wAAAOYAAAC3AAAAdAAAADgAAAAVAAAABQAAAA8AAAAkAAAARgAA
AHIAAACiAAAA0gAAAP8fHx//2trZ//39/f/9/f3//f39//7+/f/4t5n/841f//SOYP/0j2L/9I9i//OP
Yv/xjF//7ohc/+yEWf/pgFX/5nxS/+R4Tv/hdEr/3nBG/9tsQ//ZaED/1mQ8/9NgOf/QXDb/zVkz/8tV
MP/dkXr//v39//39/f/9/f3//v79/9jY2P8eHh7/AAAA/wAAAPEAAADPAAAAlQAAAFYAAAApAAAADwAA
ACAAAABCAAAAbwAAAKAAAADPAAAA+x8fH//Z2dn//v79//7+/f/+/v3//v79//3x6//0kWT/849h//SR
ZP/0kmX/9JJm//STZv/zkWX/8Y1i/+6JXv/shlr/6YFW/+Z9Uv/jeU7/4XRK/95wR//bbEP/2WhA/9Zk
PP/TYDn/0Fw2/81ZMv/MWTX/+Orl//39/f/+/v3//v79//39/f/X19f/Hh4e/wAAAP4AAADlAAAAtwAA
AHwAAABGAAAAIAAAADQAAABjAAAAmAAAAMwAAAD6HR0d/9ra2v/+/v7//v79//7+/v/+/v7//v7+//rN
uP/0kGL/9JJl//SUaP/0lWr/9JVr//SWa//0lWr/85No//GPZP/ui2D/64dc/+mCV//mfVP/43lO/+B0
Sv/ecEf/22xD/9loQP/WZDz/0mA5/9BcNf/NWTL/6LSj//7+/v/+/v7//v7+//7+/v/+/v7/2NjY/xwc
HP8AAAD8AAAA2AAAAKAAAABmAAAANQAAAEMAAAB5AAAAugAAAPofHx/+2tra//7+/v/+/v7//v7+//7+
/v/+/v7//v7+//ixkf/0k2f/9JZr//WYb//1mnH/9Zpx//Wacf/1mXD/9Jhv//SWbP/xkWf/74xi/+yH
Xf/pglj/5n1T/+N5T//hdEr/3nBH/9xsQ//ZaD//1WQ8/9JfOf/QXDX/3Ypv//7+/f/+/v7//v7+//7+
/v/+/v7//f39/9jY2P8dHR3/AAAA+wAAAL8AAAB7AAAAQwAAAEEAAACNAAAA9h8fH//Z2dn//v7+//39
/f/9/f3//v7+//7+/f/+/v7//v7+//ahe//0lmz/9Ztx//Wedv/1n3j/9aB5//Wgef/1n3j/9Z11//Wb
cv/0mG7/8pJp/++NY//siF3/6YJY/+Z9U//jeU7/4XRK/95wRv/bbEP/2Gc//9VjPP/SXzj/13JQ//7+
/f/+/v7//v7+//7+/v/+/v7//f39//39/f/X19f/HR0d/wAAAPYAAACOAAAAQQAAAFQAAADvHR0d/9ra
2v/9/f3//v7+//39/f/9/f3//f39//39/f/+/v3//f39//Wbcv/1m3L/9aB5//akf//2poL/9qeD//an
g//2pYH/9aN9//Wgef/1nXX/9Jlw//KTaf/vjWL/64dc/+iBV//mfVL/43hO/+FzSf/eb0b/22tC/9dn
Pv/VYzv/1WdB//39/f/+/v3//v79//39/f/9/f3//f39//39/f/9/f3/2NjY/xwcHP8AAADvAAAAVAAA
AEMAAADrHh4e/tvb2//+/v7//v7+//7+/v/+/v3//v7+//7+/v/+/v7//v79//aed//1oHn/9qeD//es
iv/3r47/97CQ//ewkP/3roz/9qqI//angv/2onz/9Z52//SZcP/ykmj/7oxh/+uHXP/pgVb/5nxS/+R4
Tf/hc0n/3m9G/9prQf/YZj7/2GtE//7+/f/+/v3//v79//7+/v/+/v7//f39//7+/v/9/f3/2tra/x0d
Hf4AAADqAAAAQQAAAAwAAABGAAAA6yAgIP7a2tr//v7+//39/f/9/f3//v79//7+/f/+/v7//f39//eq
iP/2pYH/966N//i1l//4uJz/+Lqe//i6nf/4t5n/97KT//etjP/2p4T/9aJ8//Wddf/0l27/8ZFm/+6L
YP/rhVr/6YBV/+Z7UP/kd0z/4XJI/91uRP/aakD/3ntX//39/f/+/v3//v79//7+/f/+/v3//f39//39
/f/Z2dn/Hx8f/gAAAOsAAABIAAAADAAAAAMAAAAMAAAARQAAAO0gICD+29vb//39/f/9/f3//v79//7+
/f/+/v3//v79//i9ov/2qoj/97WX//i+o//4wqr/+cSt//nEq//4wKf/+Luf//e0lv/3rYz/9qaC//Wg
ef/1m3L/85Vr//CPZP/uiV7/64RY/+l/U//me0//43ZL/99xRv/dbUP/5pZ5//7+/f/+/v3//v79//7+
/f/+/v3//f39/9nZ2f8fHx//AAAA7wAAAFQAAAASAAAABAAAAAAAAAADAAAADAAAAEUAAADrHh4e/tvb
2//+/v7//v7+//7+/v/+/v7//v79//vXx//3r47/+Lyg//nGr//5zLj/+s+7//nNuf/5ybP/+MOr//i7
oP/3s5T/9qqI//ajfv/1nXX/9Jhu//OTaP/wjWL/7ohc/+uDV//pflL/5XlO/+J1Sf/gcUb/8b+r//7+
/f/+/v3//v79//7+/v/+/v7/2tra/x0dHf8AAADzAAAAcQAAACMAAAAJAAAAAQAAAAAAAAAAAAAAAwAA
AA0AAABJAAAA7CAgIP/a2tr//v79//7+/f/+/v3//v79//308P/4tJb/+MCm//nMuP/61MP/+tfH//rW
xf/60b7/+cm0//jAp//4t5r/966N//amgf/1n3j/9Zlw//SVav/zkWX/8Yxf/+6HWv/rglX/6H1Q/+V4
TP/keE7/++3o//39/f/+/v3//v7+//7+/f/Z2dn/Hx8f/wAAAPgAAACeAAAASgAAABsAAAAGAAAAAAAA
AAAAAAAAAAAAAAAAAAQAAAASAAAAVQAAAP8gICD/29vb//7+/f/+/v3//f39//7+/f/60L3/+MCn//rO
u//62Mn/+9zP//vbzf/61sX/+c25//nErP/4up7/97CQ//eng//2oHn/9Zpx//WWa//0k2b/9I9i//GK
Xf/uhVj/64BT/+h8T//vqo3//v79//39/f/9/f3//v7+/9ra2v8fHx//AAAA/wAAAMwAAACFAAAARAAA
ABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAJAAAAIwAAAP8AAAD/Hh4e/9vb2//+/v7//v79//7+
/v/99vL/+cOq//nLt//618f/+93P//vcz//618f/+s+7//nFrf/4up7/97CQ//enhP/1oHn/9Zpx//SV
a//0kmb/9JBj//ONX//wiFr/7YNV/+yIXf/87+r//v7+//7+/f/+/v3/2tra/x0dHf8AAAD/AAAA/wAA
AMEAAACBAAAAQgAAABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAGwAAAP9EJhn/EgoG/yAg
IP/a2tr//v7+//7+/v/+/v7//Ong//nFrv/50L3/+tfH//vYyf/61MP/+cy4//nDq//4uZz/96+P//an
g//1oHn/9Zpw//SVav/0kmX/9I9i//ONX//yi1z/8IdZ//nWxv/+/v7//v7+//7+/f/Z2dn/Hx8f/xMK
B/9FJxn/AAAA/wAAAL4AAACAAAAAQQAAABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAGAAA
AP9yQCr/sWRB/xEJBv8gICD/29vb//7+/f/+/v7//v7+//zj2P/4xa7/+cu3//nOu//5zLj/+cav//i+
pP/3tZf/9qyK//akf//1nnb/9Zhu//SUaP/0kWP/9I5g//OMXf/zjF7/+s25//7+/f/+/v7//v79/9ra
2f8fHx//EQoG/7JlQv9yQCr/AAAA/wAAAL4AAAB/AAAAQQAAABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAGAAAAGAAAAP93Qyz/6INW/7FkQf8SCgb/Hh4e/9vb2//+/v7//v7+//7+/v/86eD/+cKq//jA
p//4v6b/+Lug//e1mP/3ro3/9qeD//Wgev/1mnH/9JVq//SSZf/0j2H/841f//WUaP/72Mj//v7+//7+
/v/+/v7/2tra/x0dHf8TCwf/smVC/+iCVv93Qyz/AAAA/wAAAL4AAAB/AAAAQQAAABgAAAAGAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAGAAAAGAAAAP95RC3/8IdZ/+eCVv+wY0H/EgoG/yAgIP/a2tr//v7+//7+
/f/+/v7//fby//rQvf/3tJX/9q6O//aqiP/2pYH/9aB5//Wbcv/0lmz/9JJm//SPYv/0kWT/+LeZ//3x
6//+/v3//v7+//7+/v/Z2dn/IB8f/xMLB/+yZEL/54JW//CHWf95RC3/AAAA/wAAAL4AAAB/AAAAQQAA
ABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAGAAAAP96RS3/84la//CHWf/nglb/sWRB/xEK
Bv8gICD/29vb//7+/f/+/v7//v7+//7+/f/99PD/+9fH//m+o//3q4j/9p53//Wbcv/2oXv/+LGR//rN
uP/98ev//v79//7+/f/9/f3//v7+/9ra2v8gIB//EgoG/7JlQv/nglb/8IdZ//OJWv95RC3/AAAA/wAA
AL4AAAB/AAAAQQAAABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAGAAAAP96RS3/84la//OJ
Wv/wh1n/6INW/7FkQf8SCgb/Hh4e/9vb2//+/v7//v79//39/f/+/v3//v79//7+/f/9/f3//v79//39
/f/+/v7//v7+//7+/v/+/v3//f39//7+/f/9/f3/2tra/x0dHf8TCgf/smVC/+iCVv/wh1n/84la//OJ
Wv95RC3/AAAA/wAAAL0AAAB/AAAAQQAAABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAGAAA
AP96RS3/84la//OJWv/ziVr/8IdZ/+eCVv+wY0H/EgoG/yAgIP/a2tr//v7+//39/f/+/v3//v7+//7+
/f/+/v7//v7+//7+/f/+/v7//v7+//7+/v/+/v3//f39//7+/v/Z2dn/Hx8f/xMKB/+yZEL/54JW//CH
Wf/ziVr/84la//OJWv95RC3/AAAA/wAAALkAAAB9AAAAQAAAABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAFAAAAFgAAAP96RS3/84la//OJWv/ziVr/84la//CHWf/nglb/sWRB/xEJBv8gICD/29vb//7+
/f/+/v3//v7+//7+/f/+/v3//v7+//39/f/+/v3//v79//7+/v/+/v7//f39/9ra2v8gHx//EQoG/7Jl
Qv/nglb/8IdZ//OJWv/ziVr/84la//OJWv95RC3/AAAA/wAAAKwAAABzAAAAOwAAABYAAAAFAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAEAAAAEgAAAP96RS3/84la//OJWv/ziVr/84la//OJWv/wh1n/6INW/7Fk
Qf8SCgb/Hh4e/9vb2//+/v3//v79//7+/f/+/v3//v79//39/f/+/v7//v79//7+/v/+/v3/2trZ/x0d
Hf8TCwf/smVC/+iCVv/wh1n/84la//OJWv/ziVr/84la//OJWv95RC3/AAAA/wAAAI0AAABfAAAAMQAA
ABIAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAADAAAAP89Ihb/ekUt/3pFLf96RS3/ekUt/3pF
Lf95RC3/d0Ms/3JAKv9EJhn/AAAA/yAgIP/a2tr//v7+//39/f/9/f3//v79//39/f/+/v3//v7+//7+
/v/Z2dn/Hx8f/wAAAP9FJxn/ckAq/3dDLP95RC3/eUQt/3lELf95RC3/eUQt/3lELf88Ihb/AAAA/wAA
AF8AAABAAAAAIQAAAAwAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABgAAAP8AAAD/AAAA/wAA
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8gICD/29vb//39/f/9/f3//v7+//39
/f/9/f3//v7+/9ra2v8fHx//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AP8AAAD/AAAA/wAAADEAAAAhAAAAEQAAAAYAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA
AAYAAAAMAAAAEgAAABYAAAAXAAAAGAAAABgAAAAYAAAAGAAAABgAAAAbAAAAIwAAAFUAAADsHh4e/tvb
2//+/v7//v7+//7+/v/+/v7/2tra/h0dHf8AAADrAAAAVAAAACMAAAAbAAAAGAAAABgAAAAYAAAAGAAA
ABgAAAAYAAAAGAAAABgAAAAXAAAAFgAAABIAAAAMAAAABgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAEAAAADAAAABAAAAAUAAAAFAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAACQAA
ABIAAABJAAAA6yAgIP7a2tr//v7+//39/f/Z2dn/Hx8f/gAAAOoAAABIAAAAEgAAAAkAAAAGAAAABgAA
AAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAFAAAABQAAAAQAAAADAAAAAQAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAQAAAAQAAAANAAAARQAAAO0gICD+29vb/tra2v4fHx/+AAAA7AAAAEQAAAANAAAABAAA
AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAADAAAAEIAAADqHh4e/h0dHf4AAADpAAAAQQAA
AAwAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAkAAAA9AAAA6QAA
AOgAAAA7AAAACQAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAIAAAAFAAAANAAAADMAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAD//wAO/AAAAAAH
AA74AAAAAAMADvAAAAAAAQAO8AAAAAABAA7wAAAAAAEADvAAAAAAAQAO8AAAAAABAA7wAAAAAAEADvAA
AAAAAQAO8AAAAAABAA7wAAAAAAEADvAAAAAAAQAO4AAAAAABAA7AAAAAAAEADoAAAAAAAQAOAAAAAAAA
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
/f/9/f3//f39//39/f/9/f3//f39//7+/f/9/f3//f39//r6+v9lZWX/AgEB/y4aEP9kOCX/mVY4/8Vv
Sf+nXj7/AAAA/wAAALgAAABsAAAAKgAAAAoAAAABAAAAAAAAAAAAAAAAAAAABAAAABoAAAD/kFE1/5hW
OP9jNyT/LRkQ/wIBAf9oaGj/+/v7//7+/v/+/v3//fr4//TOwP/pn4T/335a/9hrRP/VZ0H/13NS/96S
ef/txbj//Pn3//7+/f/9/f3/+/v7/2VlZf8CAQH/LRkQ/2M3JP+YVjj/kFE1/wAAAP8AAAC5AAAAbAAA
ACoAAAAKAAAAAQAAAAAAAAAAAAAAAQAAAAkAAAAnAAAA/209KP9jOCT/LRkQ/wIBAf9oaGj/+/v7//7+
/f/+/v7/+NXG/+qKY//idUn/33BF/9xsQv/ZaD//1mQ8/9JfOP/PWzX/zFcx/9BpSf/tx7v//v79//7+
/v/7+/v/ZWVl/wIBAP8tGRD/Yzgk/209KP8AAAD/AAAAvQAAAG4AAAAqAAAACgAAAAEAAAAAAAAAAQAA
AAUAAAAXAAAAQgAAAP9FJxn/LRkQ/wIBAf9nZ2f//Pz8//7+/v/9/Pz/97uh/+yCVP/pfVD/5XpN/+J1
Sv/gcUf/3W1E/9lpQP/VZDz/0l85/89bNf/MVzH/yVMv/+Cdif/9/Pz//v7+//v7+/9lZWX/AgEB/y0Z
EP9FJxn/AAAA/wAAAMQAAAB2AAAALgAAAAoAAAABAAAAAAAAAAUAAAATAAAAMwAAAGwAAAD/HBAK/wIB
Af9oaGj/+/v7//7+/f/+/v3/+b6k//KKW//vhlj/7INW/+l/U//me0//43dM/+BySP/dbkX/2WlA/9Zl
PP/TYDn/z1s1/8xXMf/JUy7/4J2J//7+/f/+/v3/+/v6/2ZmZf8CAQH/HBAK/wAAAP8AAADRAAAAhwAA
ADkAAAAOAAAAAQAAAAUAAAATAAAAMAAAAGEAAACeAAAA/wAAAP9nZ2f/+/v7//7+/f/+/v3/+9rK//OM
Xv/zjF7/8oxe//CJXP/thVj/6YBV/+d8Uf/keE3/4HNJ/91uRf/aaUH/1mU9/9NgOf/PWzb/zFcx/8lU
L//tx7v//v79//39/f/7+/v/ZWVl/wAAAP8AAAD/AAAA4AAAAKEAAABSAAAAHAAAAAUAAAASAAAAMAAA
AGAAAACZAAAA0gAAAP9oaGj/+/v7//39/f/9/f3//fv5//Wcc//zjmD/9I9h//SPY//zj2L/8Itf/+2H
W//qglf/531S/+R4Tv/gc0r/3W9F/9pqQf/WZT3/02A5/89bNv/MVzH/0GlJ//z59//9/f3//v79//v7
+/9lZWX/AAAA/wAAAPAAAADCAAAAeQAAADgAAAATAAAAKgAAAFoAAACVAAAAzwAAAPxoaGj/+/v7//7+
/v/+/v7//v79//vYyP/0j2H/9JFk//SSZv/0k2f/9JNo//OSZv/wjWL/7Yhd/+qDWP/nflP/43hO/+Bz
Sv/dbkX/2mpB/9ZlPf/TYDn/z1s1/8xXMf/txbj//f39//7+/v/+/v3/+/v6/2VlZf8AAAD+AAAA4QAA
AKUAAABgAAAAKgAAAEIAAACBAAAAxwAAAPxnZ2f/+/v7//7+/v/+/v7//v7+//7+/v/4tpj/9JJl//SV
av/0l23/9Jhu//WYbv/0l23/85Rq//CPZf/til//6oRZ/+d+VP/jeU7/4HNK/91vRf/aaUH/1mU9/9Jf
Of/PWzX/35J5//7+/f/+/v7//v7+//7+/v/7+/v/ZWVl/wAAAP0AAADOAAAAhQAAAEIAAABIAAAAoAAA
APpoaGj/+/v7//7+/v/+/v3//v7+//7+/v/+/v7/9qJ8//SWbP/1m3L/9Z11//Wed//1nnf/9Z11//Wb
cv/0l27/8ZFn/+6LYP/qhFr/535U/+N5T//gc0r/3W5F/9ppQf/WZDz/0l84/9dzUv/9/f3//v7+//7+
/v/+/v7//f39//v7+/9lZWX/AAAA+wAAAKMAAABIAAAAYQAAAPRnZ2f/+/v7//7+/v/9/f3//f39//39
/f/+/v3//f39//Wacv/1nHT/9aJ8//algP/2poL/9qaC//akf//1oXv/9Z12//SZb//xkmj/7Ytg/+mE
Wf/nflP/43hO/+BzSf/dbkX/2WlA/9VkPP/VZ0H//f39//7+/f/9/f3//f39//39/f/9/f3/+vr6/2Vl
Zf8AAAD0AAAAYQAAAEwAAADxaGho/vv7+//+/v7//v7+//7+/f/+/v7//v7+//7+/f/2n3j/9qN9//ar
iP/3r4//97GR//exkf/3roz/9qmG//akf//1n3f/9Jlw//GRZ//til//6oNY/+d9Uv/keE3/4XJJ/91t
RP/ZaD//2GtE//39/f/+/v3//v79//7+/v/9/f3//v7+//v7+/9nZ2f+AAAA8AAAAEsAAAAKAAAATgAA
APFpaWn++/v7//39/f/9/f3//v7+//7+/f/9/f3/962M//aqh//3tJb/+Lqf//i9ov/4vKH/97ib//ey
k//2q4n/9qR+//Wddf/0l23/8I9k/+2IXf/qglf/53xR/+N3TP/fcUf/3GxC/99+Wv/9/f3//v79//7+
/f/+/v3//f39//v7+/9oaGj+AAAA8gAAAFIAAAALAAAAAgAAAAoAAABOAAAA8WhoaP78/Pz//f39//7+
/v/+/v3//v79//nErP/3sJD/+L6j//nGr//5ybT/+ciy//jDq//4u6D/97KT//aphv/1oXv/9Zpx//OU
af/wjWH/7Ydb/+qAVf/ne0//4nVK/99wRf/pn4T//f39//7+/f/+/v3//v7+//v7+/9nZ2f/AAAA9QAA
AGcAAAATAAAAAwAAAAAAAAACAAAACgAAAFAAAADxaWlp//v7+//+/v3//v7+//7+/f/84tb/97WX//nF
rv/60L7/+tXE//rTwf/5zbj/+MOr//i4nP/3ro3/9qR///WddP/0l2z/85Jm//CLX//thVj/6n9T/+Z6
Tv/idEj/9M/A//39/f/+/v7//v79//v7+/9oaGj/AAAA+QAAAJMAAAAyAAAADAAAAAEAAAAAAAAAAAAA
AAIAAAAOAAAAWwAAAP9paWn//Pz8//7+/f/+/v3//fv6//nBp//5x7H/+tbF//vczv/72sz/+tPB//nI
sv/5vaL/97GR//amgv/2nnf/9Zhu//STaP/zj2P/8Ilc/+yDVv/pflH/6Ypj//36+P/9/f3//v79//v7
+/9oaGj/AAAA/wAAAMkAAABxAAAAKwAAAAoAAAABAAAAAAAAAAAAAAAAAAAABQAAAB8AAAD/AQAA/2ho
aP/7+/v//v79//7+/v/86N//+cSt//rTwv/73M7/+9zO//rVxP/5yrT/+L2j//exkf/2p4P/9Z53//WY
bv/0k2f/9JBj//KNXv/vh1n/7IJU//jVx//+/v3//v79//v7+/9nZ2f/AQEA/wAAAP8AAAC6AAAAbQAA
ACoAAAAKAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAXAAAA/3E/Kf8MBwT/aWlp//v7+//+/v7//v7+//vc
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
AEsAAAAKAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAACAAAACQAAAEgAAADwAAAA7wAAAEYAAAAJAAAAAgAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAEAAAAFAAAAPwAAAD0AAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/gAAAA//AA7wAAAAA/8ADvAAAAAB/wAO4AAAAAH/
AA7gAAAAAP8ADuAAAAAA/wAO4AAAAAD/AA7gAAAAAP8ADuAAAAAA/wAO4AAAAAD/AA7gAAAAAP8ADsAA
AAAA/wAOgAAAAAD/AA6AAAAAAP8ADgAAAAAA/wAOAAAAAAD/AA4AAAAAAP8ADgAAAAAA/wAOAAAAAAD/
AA4AAAAAAP8ADgAAAAAA/wAOAAAAAAD/AA4AAAAAAP8ADoAAAAAA/wAOwAAAAAD/AA7gAAAAAP8ADuAA
AAAA/wAO4AAAAAD/AA7gAAAAAP8ADuAAAAAA/wAO4AAAAAD/AA7gAAAAAP8ADuAAAAAA/wAO4AAAAAH/
AA7gAAAAAf8ADvAAAAAB/wAO+AAAAAf/AA7//gB///8ADv//AP///wAO//+B////AA4oAAAAIAAAAEAA
AAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAA
AAEAAAABAAAAAQAAAAIAAAAHAAAAGwAAAEgAAACIAAAAxQAAAMUAAACHAAAARwAAABsAAAAHAAAAAgAA
AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABgAA
AA0AAAARAAAAEwAAABMAAAATAAAAGAAAACoAAABUAAAAkQAAANINDQ39DAwM/QAAANIAAACQAAAAUwAA
ACoAAAAYAAAAEwAAABMAAAATAAAAEwAAABMAAAARAAAADQAAAAYAAAABAAAAAAAAAAAAAAAAAAAAAAAA
AAYAAAAZAAAANwAAAEoAAABQAAAAUAAAAFQAAABhAAAAfwAAAKwAAADcDQ0N/cLCwv/BwcH/DAwM/QAA
ANwAAACsAAAAfwAAAGEAAABUAAAAUAAAAFAAAABQAAAAUAAAAEoAAAA3AAAAGQAAAAYAAAAAAAAAAAAA
AAAAAAABAAAADQAAADcAAAB4AAAAogAAAK4AAACwAAAAtgAAAMMAAADYAAAA7g0NDf7CwsL//f39//39
/f/BwcH/DAwM/gAAAO4AAADYAAAAwwAAALYAAACwAAAArwAAAK8AAACuAAAAogAAAHgAAAA3AAAADQAA
AAEAAAAAAAAAAAAAAAEAAAARAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8NDQ3/wsLC//39
/f/9/f3//f39//39/f/BwcH/DAwM/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAogAA
AEoAAAARAAAAAQAAAAAAAAAAAAAAAQAAABMAAAD/84la/+6GWP/be1H/r2NB/3A/Kf8tGRD/Dg4N/8PD
wv/+/v3//v79//7+/f/9/f3//v7+//7+/v/BwcH/Dg0N/y0ZEP9wPyn/sGNB/9t8Uf/uhlj/84la/wAA
AP8AAACuAAAAUAAAABMAAAABAAAAAAAAAAAAAAABAAAAEwAAAP/uhlj/23tR/7BjQf9wPyn/LRkQ/w4O
Df/Dw8P//v7+//7+/f/+/v3//v79//39/f/+/v7//v7+//39/f/BwcH/Dg0M/y0ZEP9xPyn/sGNB/9t8
Uf/uhlj/AAAA/wAAAK8AAABQAAAAEwAAAAEAAAAAAAAAAAAAAAEAAAATAAAA/9t8Uf+wY0H/cUAp/y0Z
EP8ODg3/w8PC//7+/f/9/f3//v79//7+/f/9/f3//f39//7+/f/+/v3//f39//39/f/BwcH/Dg0N/y0Z
EP9xQCr/sGNB/9t8Uf8AAAD/AAAArwAAAFAAAAATAAAAAQAAAAAAAAAAAAAAAgAAABgAAAD/r2NB/3A/
Kf8tGRD/Dg4N/8PDw//+/v7//v79//nm3v/trZT/4YNh/9lrRP/VZkD/13ZW/+GeiP/14Nn//v79//7+
/f/BwcH/Dg0N/y0ZEP9wPyn/sGNB/wAAAP8AAACwAAAAUAAAABMAAAABAAAAAAAAAAAAAAAHAAAAKgAA
AP9wPyn/LRkQ/w4ODf/Dw8P//v7+//36+P/ztZr/53tO/+J1Sf/ecEX/22tB/9ZlPf/SXzn/zlo0/8tW
Mf/fmYT//Pn3//7+/v/BwcH/Dg0M/y0ZEP9wPyn/AAAA/wAAALYAAABUAAAAEwAAAAEAAAAAAAAABQAA
ABsAAABUAAAA/y0ZEP8ODg3/w8PC//7+/v/9+vn/9qiG/+6FV//qgFP/53tQ/+N2S//fcUf/22tC/9dm
Pf/SYDn/zlo0/8pVL//Xf2T//Pn3//7+/f/BwcH/Dg0M/y0ZEP8AAAD/AAAAwwAAAGEAAAAYAAAAAgAA
AAUAAAAZAAAARwAAAJAAAAD/Dg4N/8PDw//+/v7//v79//i7oP/zjF3/8oxe/++IWv/rg1b/531S/+R3
Tf/fcUj/22xD/9dmPv/TYDn/zlo0/8pVMP/fmYT//v79//39/f/BwcH/Dg0N/wAAAP8AAADYAAAAfwAA
ACoAAAAGAAAAGAAAAEYAAACKAAAA0g0NDf/Dw8L//f39//39/f/86uL/9I5g//SPYv/0kGP/849j/++K
Xv/shVn/6H9U/+R4Tv/fckj/22xD/9dmPv/TYDn/z1s1/8tWMf/14Nn//f39//7+/f/BwcH/DAwM/wAA
AO4AAACsAAAAUwAAABkAAAA6AAAAgQAAAM4NDQ39w8PD//7+/v/+/v7//v7+//i+pP/0kWT/9JNo//SV
af/0lWr/85Nn/++NYv/shlv/6H9V/+N5Tv/fckj/22xD/9dmPv/TYDn/zlo0/+GeiP/+/v3//v7+//7+
/v/BwcH/DAwM/gAAANsAAACJAAAAOgAAAFAAAAC1DQ0N/cPDw//+/v7//v7+//7+/v/+/v7/9qR///SW
a//1mnH/9Ztz//Wbc//1mnH/9JZs//CPZf/sh13/54BV/+N5T//fckj/22xD/9dmPv/SXzj/13dW//7+
/f/+/v7//v7+//39/f/BwcH/DAwM/QAAALkAAABRAAAAcA0NDfrDw8P//v7+//39/f/+/v3//v79//39
/f/1mnH/9Z52//ajfv/2pYH/9qWA//aifP/1nnb/9Jhv//CQZv/rh13/539V/+N4Tv/fckj/22tC/9Zl
Pf/VZkD//f39//39/f/+/v3//f39//39/f/BwcH/DAwM+gAAAHAAAABVDQ0N9sPDw//+/v7//f39//7+
/v/+/v7//v79//agev/2p4P/96+P//eyk//3spL/962M//ang//2oHn/9Jlv//CPZP/rhlv/6H5U/+R3
Tf/gcUf/2mpB/9lsRf/+/v3//v79//7+/v/9/f3//f39/8PDw/8NDQ32AAAAVAAAAAgAAABWDQ0N9sPD
w//9/f3//v79//7+/f/+/v3/97KT//exkf/4vaL/+cGo//jAp//4up7/97GR//ang//1nnb/85Zs/++N
Yf/rhFn/531S/+N2S//eb0X/4YNh//7+/f/+/v3//v79//39/f/CwsL/DQ0N+AAAAF8AAAAJAAAAAQAA
AAgAAABXDQ0N98PDw//+/v3//v79//7+/f/6zrr/+Lqd//nKtP/60L7/+c67//nGr//4up7/962M//ai
fP/1mXD/85Jn/++KXv/rg1b/53xQ/+J1Sf/trZT//v79//7+/v/+/v3/wsLC/w0NDfsAAACFAAAAGgAA
AAIAAAAAAAAAAQAAAAkAAABgDQ0N/8TEw//+/v3//v79//3w6v/4vaP/+tG+//vazP/72cr/+s+7//nB
p//3spL/9qWA//Wbc//0lWr/849j/++IW//rgVT/53tP//nm3v/9/f3//v7+/8PDwv8NDQ3/AAAAxAAA
AFUAAAATAAAAAQAAAAAAAAAAAAAAAgAAABoAAAD/FREQ/8TEw//+/v7//v7+//vZyf/5zbn/+9rM//vb
zP/60L7/+cKp//ezk//2pYH/9Ztz//SVaf/0kGP/8oxe/+6FV//ztZr//v7+//7+/f/Dw8P/FREQ/wAA
AP8AAACxAAAAUQAAABMAAAABAAAAAAAAAAAAAAABAAAAEwAAAP+hWjv/FREQ/8TEw//+/v3//vz7//rT
wf/5zbn/+tG+//nKtP/4vaL/96+P//ajfv/1mnH/9JNo//SPYf/zjF3/9qmG//36+f/+/v7/w8PC/xUR
EP+iWzz/AAAA/wAAAK8AAABQAAAAEwAAAAEAAAAAAAAAAAAAAAEAAAATAAAA/+yFWP+hWzv/FREQ/8TE
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
rEGAAKxBgACsQYAArEHAAaxB/D+sQQ==
</value>
</data>
</root>
\ No newline at end of file
source/AssemblyLineClient/equip/FrmFeedingEquipF.Designer.cs
deleted
100644 → 0
查看文件 @
f4cd7e7
namespace
OnlineStore.AssemblyLine
{
partial
class
FrmFeedingEquipF
{
/// <summary>
/// Required designer variable.
/// </summary>
private
System
.
ComponentModel
.
IContainer
components
=
null
;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected
override
void
Dispose
(
bool
disposing
)
{
if
(
disposing
&&
(
components
!=
null
))
{
components
.
Dispose
();
}
base
.
Dispose
(
disposing
);
}
#
region
Windows
Form
Designer
generated
code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private
void
InitializeComponent
()
{
this
.
components
=
new
System
.
ComponentModel
.
Container
();
this
.
AutoScaleMode
=
System
.
Windows
.
Forms
.
AutoScaleMode
.
Font
;
this
.
ClientSize
=
new
System
.
Drawing
.
Size
(
800
,
450
);
this
.
Text
=
"FrmFeedingEquipF"
;
}
#
endregion
}
}
\ No newline at end of file
source/AssemblyLineClient/equip/FrmFeedingEquipF.cs
deleted
100644 → 0
查看文件 @
f4cd7e7
using
System
;
using
System.Collections.Generic
;
using
System.ComponentModel
;
using
System.Data
;
using
System.Drawing
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
using
System.Windows.Forms
;
namespace
OnlineStore.AssemblyLine
{
public
partial
class
FrmFeedingEquipF
:
FrmEquipBaseForm
{
public
FrmFeedingEquipF
()
{
InitializeComponent
();
}
}
}
source/AssemblyLineClient/equip/FrmMoveEquipForm.Designer.cs
deleted
100644 → 0
查看文件 @
f4cd7e7
namespace
OnlineStore.AssemblyLine
{
partial
class
FrmMoveEquipForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private
System
.
ComponentModel
.
IContainer
components
=
null
;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected
override
void
Dispose
(
bool
disposing
)
{
if
(
disposing
&&
(
components
!=
null
))
{
components
.
Dispose
();
}
base
.
Dispose
(
disposing
);
}
#
region
Windows
Form
Designer
generated
code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private
void
InitializeComponent
()
{
this
.
components
=
new
System
.
ComponentModel
.
Container
();
this
.
AutoScaleMode
=
System
.
Windows
.
Forms
.
AutoScaleMode
.
Font
;
this
.
ClientSize
=
new
System
.
Drawing
.
Size
(
1399
,
800
);
this
.
Text
=
"FrmMoveEquipForm"
;
}
#
endregion
}
}
\ No newline at end of file
source/AssemblyLineClient/equip/FrmMoveEquipForm.cs
deleted
100644 → 0
查看文件 @
f4cd7e7
using
OnlineStore.DeviceLibrary
;
using
System
;
using
System.Collections.Generic
;
using
System.ComponentModel
;
using
System.Data
;
using
System.Drawing
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
using
System.Windows.Forms
;
namespace
OnlineStore.AssemblyLine
{
public
partial
class
FrmMoveEquipForm
:
FrmEquipBaseForm
{
private
MoveEquip
equipBean
;
public
FrmMoveEquipForm
(
)
{
Control
.
CheckForIllegalCrossThreadCalls
=
false
;
InitializeComponent
();
}
public
FrmMoveEquipForm
(
MoveEquip
moveEquip
)
:
base
(
moveEquip
)
{
equipBase
=
moveEquip
;
this
.
equipBean
=
moveEquip
;
Control
.
CheckForIllegalCrossThreadCalls
=
false
;
InitializeComponent
();
}
}
}
source/AssemblyLineClient/image/line.png
查看文件 @
9e37d75
27.9 KB
|
宽:
|
高:
61.4 KB
|
宽:
|
高:
两方对比
交换覆盖
透明覆盖
source/AssemblyLineClient/image/line2.png
0 → 100644
查看文件 @
9e37d75
27.9 KB
source/AssemblyLineClient/useControl/EquipControl.Designer.cs
查看文件 @
9e37d75
...
...
@@ -56,16 +56,19 @@
//
// lblName
//
this
.
lblName
.
AutoSize
=
true
;
this
.
lblName
.
BackColor
=
System
.
Drawing
.
Color
.
Transparent
;
this
.
lblName
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
12F
,
System
.
Drawing
.
FontStyle
.
Bold
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
lblName
.
ForeColor
=
System
.
Drawing
.
Color
.
Black
;
this
.
lblName
.
ImageAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleLeft
;
this
.
lblName
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
2
);
this
.
lblName
.
Name
=
"lblName"
;
this
.
lblName
.
Size
=
new
System
.
Drawing
.
Size
(
182
,
22
);
this
.
lblName
.
Size
=
new
System
.
Drawing
.
Size
(
99
,
22
);
this
.
lblName
.
TabIndex
=
1
;
this
.
lblName
.
Text
=
"移栽D1-1_1"
;
this
.
lblName
.
TextAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleLeft
;
this
.
lblName
.
DoubleClick
+=
new
System
.
EventHandler
(
this
.
lblName_DoubleClick
);
this
.
lblName
.
MouseEnter
+=
new
System
.
EventHandler
(
this
.
lblName_MouseEnter
);
//
// lblStatus
//
...
...
@@ -136,6 +139,8 @@
this
.
panName
.
Name
=
"panName"
;
this
.
panName
.
Size
=
new
System
.
Drawing
.
Size
(
246
,
28
);
this
.
panName
.
TabIndex
=
7
;
this
.
panName
.
DoubleClick
+=
new
System
.
EventHandler
(
this
.
panName_DoubleClick
);
this
.
panName
.
MouseEnter
+=
new
System
.
EventHandler
(
this
.
panName_MouseEnter
);
//
// EquipControl
//
...
...
source/AssemblyLineClient/useControl/EquipControl.cs
查看文件 @
9e37d75
...
...
@@ -41,26 +41,33 @@ namespace OnlineStore.AssemblyLine
this
.
BackColor
=
value
;
}
}
public
void
SelectStyle
()
{
panName
.
BackColor
=
Color
.
DeepSkyBlue
;
}
public
void
UnSelectStyle
()
{
panName
.
BackColor
=
Color
.
Transparent
;
}
public
void
InitData
(
EquipBase
equip
)
{
if
(
equip
is
MoveEquip
)
{
panName
.
BackColor
=
Color
.
DeepSkyBlue
;
//
panName.BackColor = Color.DeepSkyBlue;
lblBox
.
Visible
=
true
;
lblBox
.
Text
=
""
;
}
else
if
(
equip
is
FeedingEquip
)
{
panName
.
BackColor
=
Color
.
Lime
;
panName
.
BackColor
=
Color
.
MediumSpringGreen
;
//
panName.BackColor = Color.Lime;
//
panName.BackColor = Color.MediumSpringGreen;
lblBox
.
Visible
=
false
;
lblBox
.
Text
=
""
;
}
else
{
panName
.
BackColor
=
Color
.
Aqua
;
panName
.
BackColor
=
Color
.
DarkTurquoise
;
//
panName.BackColor = Color.Aqua;
//
panName.BackColor = Color.DarkTurquoise;
lblBox
.
Visible
=
false
;
lblBox
.
Text
=
""
;
}
...
...
@@ -180,5 +187,24 @@ namespace OnlineStore.AssemblyLine
return
control
;
}
private
void
lblName_DoubleClick
(
object
sender
,
EventArgs
e
)
{
this
.
OnDoubleClick
(
e
);
}
private
void
lblName_MouseEnter
(
object
sender
,
EventArgs
e
)
{
this
.
OnMouseEnter
(
e
);
}
private
void
panName_MouseEnter
(
object
sender
,
EventArgs
e
)
{
this
.
OnMouseEnter
(
e
);
}
private
void
panName_DoubleClick
(
object
sender
,
EventArgs
e
)
{
this
.
OnDoubleClick
(
e
);
}
}
}
source/DeviceLibrary/assemblyLine/EquipBase.cs
查看文件 @
9e37d75
...
...
@@ -162,10 +162,11 @@ namespace OnlineStore.DeviceLibrary
LogUtil
.
error
(
Name
+
" BusyMoveProcess 出错:"
+
ex
.
ToString
());
}
}
protected
void
MoveTimeOut
(
string
msg
)
protected
void
MoveTimeOut
(
LineMoveInfo
move
,
string
msg
)
{
WarnMsg
=
SecondMoveInfo
.
Name
+
"["
+
SecondMoveInfo
.
MoveStep
+
"] 等待移栽机构开始抓料超时 ["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
DeviceID
*
1000
+
30
);
WarnMsg
=
move
.
Name
+
"["
+
move
.
MoveStep
+
"] "
+
msg
+
" ["
+
Math
.
Round
(
move
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
int
logId
=
DeviceID
*
10000
+
(
int
)
move
.
MoveStep
;
LogUtil
.
error
(
WarnMsg
,
logId
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
}
protected
void
ClearTimeoutAlarm
(
string
msg
)
...
...
source/DeviceLibrary/assemblyLine/FeedingEquip_InStore.cs
查看文件 @
9e37d75
...
...
@@ -319,7 +319,7 @@ namespace OnlineStore.DeviceLibrary
{
if
(
ScanCodeTask
==
null
||
ScanCodeTask
.
IsCompleted
)
{
ClearTimeoutAlarm
(
"扫码
执行
结束超时"
);
ClearTimeoutAlarm
(
"扫码结束超时"
);
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
FI_21_CylinderTake
);
InLog
(
"料盘移栽"
+
MoveInfo
.
SLog
+
":上料横移取料端"
);
CylinderMove
(
MoveInfo
,
IO_Type
.
SL_MoveCylinder_Give
,
IO_Type
.
SL_MoveCylinder_Take
);
...
...
@@ -327,9 +327,7 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
IsTimeOut
(
60
))
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveStep
+
"] 扫码执行结束超时 ["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
DeviceID
*
1000
+
30
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
MoveTimeOut
(
MoveInfo
,
"扫码结束超时"
);
}
}
else
if
(
MoveInfo
.
IsStep
(
LineMoveStep
.
FI_21_CylinderTake
))
...
...
@@ -484,9 +482,7 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
IsTimeOut
(
120
))
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveStep
+
"] 获取库位号超时 ["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
DeviceID
*
1000
+
30
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
MoveTimeOut
(
MoveInfo
,
"获取库位号超时"
);
}
}
else
if
(
MoveInfo
.
IsStep
(
LineMoveStep
.
FI_32_WaitTray
))
//TODO
...
...
@@ -514,9 +510,7 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
IsTimeOut
(
180
))
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveType
+
"]["
+
MoveInfo
.
SLog
+
"]等待空托盘到达超时["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
DeviceID
*
1000
+
22
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
MoveTimeOut
(
MoveInfo
,
"等待空托盘到达超时"
);
}
}
else
if
(
MoveInfo
.
IsStep
(
LineMoveStep
.
FI_33_CylinderDown
))
...
...
source/DeviceLibrary/assemblyLine/FeedingEquip_OutStore.cs
查看文件 @
9e37d75
...
...
@@ -19,7 +19,7 @@ namespace OnlineStore.DeviceLibrary
private
bool
StartTrayOut
(
InOutParam
outParam
)
internal
bool
StartTrayOut
(
InOutParam
outParam
)
{
if
(
outParam
==
null
||
outParam
.
PosId
==
null
||
outParam
.
PosId
.
Equals
(
""
))
{
...
...
@@ -715,9 +715,7 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
IsTimeOut
(
60
))
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveStep
+
"] 等待给服务器发送afterPut完成超时 ["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
DeviceID
*
1000
+
21
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
MoveTimeOut
(
MoveInfo
,
"等待给服务器发送afterPut完成超时"
);
}
}
}
...
...
source/DeviceLibrary/assemblyLine/HY/HY_C1Line.cs
查看文件 @
9e37d75
...
...
@@ -376,24 +376,24 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
IsStep
(
LineMoveStep
.
HY12_WaitHY2Free
))
{
if
(
GetHyOutEquip
().
MoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
))
HYEquipBase
hyout
=
GetHyOutEquip
();
if
(
hyout
.
MoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
))
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
HY13_WaitHY2Ready
);
CheckLog
(
"托盘横移"
+
MoveInfo
.
SLog
+
" ,等待
HY"
+
HyOutDeviceId
+
" 准备完成(顶升上升,定位下降) "
);
CheckLog
(
"托盘横移"
+
MoveInfo
.
SLog
+
" ,等待
"
+
hyout
.
Name
+
" 准备完成(顶升上升,定位下降) "
);
GetHyOutEquip
().
MoveInfo
.
NewMove
(
LineMoveType
.
CheckFixture
);
GetHyOutEquip
().
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
HY51_WaitFree
);
ClearTimeoutAlarm
(
"等待
横移出口
可以横移超时"
);
ClearTimeoutAlarm
(
"等待
"
+
hyout
.
Name
+
"
可以横移超时"
);
}
else
if
(
MoveInfo
.
IsTimeOut
())
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveType
+
"]["
+
MoveInfo
.
SLog
+
"]等待横移出口可以横移超时["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
DeviceID
*
1000
+
22
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
MoveTimeOut
(
MoveInfo
,
"等待"
+
hyout
.
Name
+
"可以横移超时"
);
}
}
else
if
(
MoveInfo
.
IsStep
(
LineMoveStep
.
HY13_WaitHY2Ready
))
{
bool
result
=
GetHyOutEquip
().
MoveInfo
.
MoveStep
>=
LineMoveStep
.
HY54_HY2Ready
;
HYEquipBase
hyout
=
GetHyOutEquip
();
bool
result
=
hyout
.
MoveInfo
.
MoveStep
>=
LineMoveStep
.
HY54_HY2Ready
;
if
(
result
)
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
HY14_HYLineRun
);
...
...
@@ -401,13 +401,12 @@ namespace OnlineStore.DeviceLibrary
LineRun
(
MoveInfo
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
HY_TrayCheck
,
IO_VALUE
.
LOW
));
ClearTimeoutAlarm
(
"等待
横移出口
顶升上升完成超时"
);
ClearTimeoutAlarm
(
"等待
"
+
hyout
.
Name
+
"
顶升上升完成超时"
);
}
else
if
(
MoveInfo
.
IsTimeOut
())
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveType
+
"]["
+
MoveInfo
.
SLog
+
"]等待横移出口顶升上升完成超时["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
DeviceID
*
1000
+
22
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
MoveTimeOut
(
MoveInfo
,
"等待"
+
hyout
.
Name
+
"顶升上升完成超时"
);
}
}
...
...
@@ -418,23 +417,23 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
IsStep
(
LineMoveStep
.
HY15_WaitOutCheck
))
{
bool
result
=
GetHyOutEquip
().
MoveInfo
.
MoveStep
>=
LineMoveStep
.
HY55_WaitTrayCheck
;
HYEquipBase
hyout
=
GetHyOutEquip
();
bool
result
=
hyout
.
MoveInfo
.
MoveStep
>=
LineMoveStep
.
HY55_WaitTrayCheck
;
if
(
result
)
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
HY16_WatOutFixture2
);
CheckLog
(
"托盘横移"
+
MoveInfo
.
SLog
+
" ,等待托盘到达
HY"
+
HyOutDeviceId
+
"持续一段时间 "
);
ClearTimeoutAlarm
(
"等待托盘到达
横移出口
超时"
);
CheckLog
(
"托盘横移"
+
MoveInfo
.
SLog
+
" ,等待托盘到达
"
+
hyout
.
Name
+
"持续一段时间 "
);
ClearTimeoutAlarm
(
"等待托盘到达
"
+
hyout
.
Name
+
"
超时"
);
}
else
if
(
MoveInfo
.
IsTimeOut
())
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveType
+
"]["
+
MoveInfo
.
SLog
+
"]等待托盘到达横移出口超时["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
DeviceID
*
1000
+
22
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
MoveTimeOut
(
MoveInfo
,
"等待托盘到达"
+
hyout
.
Name
+
"超时"
);
}
}
else
if
(
MoveInfo
.
IsStep
(
LineMoveStep
.
HY16_WatOutFixture2
))
{
bool
result
=
GetHyOutEquip
().
MoveInfo
.
MoveStep
>=
LineMoveStep
.
HY56_CheckWait
;
HYEquipBase
hyout
=
GetHyOutEquip
();
bool
result
=
hyout
.
MoveInfo
.
MoveStep
>=
LineMoveStep
.
HY56_CheckWait
;
if
(
result
)
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
HY17_TopDown
);
...
...
@@ -443,13 +442,11 @@ namespace OnlineStore.DeviceLibrary
CylinderMove
(
MoveInfo
,
IO_Type
.
HY_TopCylinder_Up
,
IO_Type
.
HY_TopCylinder_Down
);
HY_StopCylinderUp
(
MoveInfo
);
OL_StopCylinderUp
(
MoveInfo
);
ClearTimeoutAlarm
(
"等待托盘到达
横移出口
"
);
ClearTimeoutAlarm
(
"等待托盘到达
"
+
hyout
.
Name
+
"
"
);
}
else
if
(
MoveInfo
.
IsTimeOut
())
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveType
+
"]["
+
MoveInfo
.
SLog
+
"]等待托盘到达横移出口["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
DeviceID
*
1000
+
22
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
MoveTimeOut
(
MoveInfo
,
"等待托盘到达"
+
hyout
.
Name
+
""
);
}
}
else
if
(
MoveInfo
.
IsStep
(
LineMoveStep
.
HY17_TopDown
))
...
...
source/DeviceLibrary/assemblyLine/HY/HY_C1_SLStation.cs
查看文件 @
9e37d75
...
...
@@ -311,10 +311,33 @@ namespace OnlineStore.DeviceLibrary
{
if
(
TrayNeedSL
(
currTrayNum
))
{
FeedingEquip
feed
=
LineManager
.
Line
.
FeedingEquipMap
[
Config
.
WorkDevice
];
if
(
feed
.
Config
.
IsCanOut
.
Equals
(
1
))
{
//紧急出料
if
(
feed
.
StartTrayOut
(
MoveInfo
.
MoveParam
))
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
HY08_SL_WaitProcessReel
);
CheckLog
(
"托盘阻挡"
+
MoveInfo
.
SLog
+
" "
+
feed
.
Name
+
"始抓料,等待料盘放入或料盘离开 "
);
}
else
if
(
MoveInfo
.
IsTimeOut
(
30
))
{
MoveTimeOut
(
MoveInfo
,
"等待"
+
feed
.
Name
+
"开始出库超时"
);
//如果当前无料串,或者料串已离开,直接放行 托盘
TrayCanLeave
();
}
else
if
(
MoveInfo
.
IsTimeOut
(
20
))
{
MoveTimeOut
(
MoveInfo
,
"等待"
+
feed
.
Name
+
"开始出库超时"
);
}
}
else
{
//如果是出库,且盘高大于30,暂不顶升
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
HY08_SL_WaitProcessReel
);
CheckLog
(
"托盘阻挡"
+
MoveInfo
.
SLog
+
" 等待料盘放入或料盘离开 "
);
}
}
else
{
HY11_TopUpToHY
();
...
...
@@ -331,37 +354,35 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
IsStep
(
LineMoveStep
.
HY12_WaitHY2Free
))
{
if
(
GetHyOutEquip
().
MoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
))
HYEquipBase
hyOut
=
GetHyOutEquip
();
if
(
hyOut
.
MoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
))
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
HY13_WaitHY2Ready
);
CheckLog
(
"托盘横移"
+
MoveInfo
.
SLog
+
" ,等待
HY"
+
HyOutDeviceId
+
"准备完成(顶升上升,定位下降) "
);
CheckLog
(
"托盘横移"
+
MoveInfo
.
SLog
+
" ,等待
"
+
hyOut
.
Name
+
"准备完成(顶升上升,定位下降) "
);
GetHyOutEquip
().
MoveInfo
.
NewMove
(
LineMoveType
.
CheckFixture
);
GetHyOutEquip
().
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
HY51_WaitFree
);
ClearTimeoutAlarm
(
"等待
横移出口
可以横移超时"
);
ClearTimeoutAlarm
(
"等待
"
+
hyOut
.
Name
+
"
可以横移超时"
);
}
else
if
(
MoveInfo
.
IsTimeOut
())
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveType
+
"]["
+
MoveInfo
.
SLog
+
"]等待横移出口可以横移超时["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
DeviceID
*
1000
+
22
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
MoveTimeOut
(
MoveInfo
,
"等待"
+
hyOut
.
Name
+
"可以横移超时"
);
}
}
else
if
(
MoveInfo
.
IsStep
(
LineMoveStep
.
HY13_WaitHY2Ready
))
{
bool
result
=
GetHyOutEquip
().
MoveInfo
.
MoveStep
>=
LineMoveStep
.
HY54_HY2Ready
;
HYEquipBase
hyOut
=
GetHyOutEquip
();
bool
result
=
hyOut
.
MoveInfo
.
MoveStep
>=
LineMoveStep
.
HY54_HY2Ready
;
if
(
result
)
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
HY14_HYLineRun
);
CheckLog
(
"托盘横移"
+
MoveInfo
.
SLog
+
" ,横移电机转动 "
);
LineRun
(
MoveInfo
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
HY_TrayCheck
,
IO_VALUE
.
LOW
));
ClearTimeoutAlarm
(
"等待
横移出口
顶升上升完成超时"
);
ClearTimeoutAlarm
(
"等待
"
+
hyOut
+
"
顶升上升完成超时"
);
}
else
if
(
MoveInfo
.
IsTimeOut
())
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveType
+
"]["
+
MoveInfo
.
SLog
+
"]等待横移出口顶升上升完成超时["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
DeviceID
*
1000
+
22
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
MoveTimeOut
(
MoveInfo
,
"等待"
+
hyOut
+
"顶升上升完成超时"
);
}
}
...
...
@@ -372,23 +393,23 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
IsStep
(
LineMoveStep
.
HY15_WaitOutCheck
))
{
bool
result
=
GetHyOutEquip
().
MoveInfo
.
MoveStep
>=
LineMoveStep
.
HY55_WaitTrayCheck
;
HYEquipBase
hyOut
=
GetHyOutEquip
();
bool
result
=
hyOut
.
MoveInfo
.
MoveStep
>=
LineMoveStep
.
HY55_WaitTrayCheck
;
if
(
result
)
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
HY16_WatOutFixture2
);
CheckLog
(
"托盘横移"
+
MoveInfo
.
SLog
+
" ,等待托盘到达
HY"
+
HyOutDeviceId
+
" 持续一段时间 "
);
ClearTimeoutAlarm
(
"等待托盘到达
横移出口
超时"
);
CheckLog
(
"托盘横移"
+
MoveInfo
.
SLog
+
" ,等待托盘到达
"
+
hyOut
.
Name
+
" 持续一段时间 "
);
ClearTimeoutAlarm
(
"等待托盘到达
"
+
hyOut
.
Name
+
"
超时"
);
}
else
if
(
MoveInfo
.
IsTimeOut
())
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveType
+
"]["
+
MoveInfo
.
SLog
+
"]等待托盘到达横移出口超时["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
DeviceID
*
1000
+
22
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
MoveTimeOut
(
MoveInfo
,
"等待托盘到达"
+
hyOut
.
Name
+
"超时"
);
}
}
else
if
(
MoveInfo
.
IsStep
(
LineMoveStep
.
HY16_WatOutFixture2
))
{
bool
result
=
GetHyOutEquip
().
MoveInfo
.
MoveStep
>=
LineMoveStep
.
HY56_CheckWait
;
HYEquipBase
hyOut
=
GetHyOutEquip
();
bool
result
=
hyOut
.
MoveInfo
.
MoveStep
>=
LineMoveStep
.
HY56_CheckWait
;
if
(
result
)
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
HY17_TopDown
);
...
...
@@ -396,13 +417,11 @@ namespace OnlineStore.DeviceLibrary
LineStop
(
MoveInfo
);
CylinderMove
(
MoveInfo
,
IO_Type
.
HY_TopCylinder_Up
,
IO_Type
.
HY_TopCylinder_Down
);
LocationCylinderDown
(
MoveInfo
);
ClearTimeoutAlarm
(
"等待托盘到达
横移出口
"
);
ClearTimeoutAlarm
(
"等待托盘到达
"
+
hyOut
.
Name
+
"
"
);
}
else
if
(
MoveInfo
.
IsTimeOut
())
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveType
+
"]["
+
MoveInfo
.
SLog
+
"]等待托盘到达横移出口["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
DeviceID
*
1000
+
22
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
MoveTimeOut
(
MoveInfo
,
"等待托盘到达"
+
hyOut
.
Name
+
""
);
}
}
else
if
(
MoveInfo
.
IsStep
(
LineMoveStep
.
HY17_TopDown
))
...
...
@@ -539,11 +558,11 @@ namespace OnlineStore.DeviceLibrary
{
return
false
;
}
//判断
T3
是否在入库等待托盘
FeedingEquip
feedT
3
=
LineManager
.
Line
.
FeedingEquipMap
[
Config
.
WorkDevice
];
if
(
feedT
3
.
CurrTrayIsNeed
(
currTrayNum
,
false
))
//判断
上料T
是否在入库等待托盘
FeedingEquip
feedT
=
LineManager
.
Line
.
FeedingEquipMap
[
Config
.
WorkDevice
];
if
(
feedT
.
CurrTrayIsNeed
(
currTrayNum
,
false
))
{
LogInfo
(
" "
+
feedT
3
.
Name
+
"拦截托盘【"
+
currTrayNum
+
"】"
);
LogInfo
(
" "
+
feedT
.
Name
+
"拦截托盘【"
+
currTrayNum
+
"】"
);
return
true
;
}
}
...
...
source/DeviceLibrary/assemblyLine/HY/HY_Coveryor_Partial.cs
查看文件 @
9e37d75
...
...
@@ -192,16 +192,12 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
SecondMoveInfo
.
IsTimeOut
())
{
WarnMsg
=
SecondMoveInfo
.
Name
+
"["
+
SecondMoveInfo
.
MoveStep
+
"] 等待移栽机构开始抓料超时 ["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
DeviceID
*
1000
+
30
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
MoveTimeOut
(
SecondMoveInfo
,
"等待移栽机构开始抓料超时"
);
}
}
else
if
(
SecondMoveInfo
.
IsTimeOut
())
{
WarnMsg
=
SecondMoveInfo
.
Name
+
"["
+
SecondMoveInfo
.
MoveStep
+
"] 等待移栽机构开始抓料超时 ["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
DeviceID
*
1000
+
30
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
MoveTimeOut
(
SecondMoveInfo
,
"等待移栽机构开始抓料超时"
);
}
}
else
if
(
SecondMoveInfo
.
IsStep
(
LineMoveStep
.
JHY_10_ReelProEnd
))
...
...
@@ -556,9 +552,7 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
IsTimeOut
(
60
))
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveType
+
"]["
+
MoveInfo
.
MoveStep
+
"]等待 给服务器发送afterPutCutTask完成 "
+
"超时["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
DeviceID
*
1000
+
20
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
MoveTimeOut
(
MoveInfo
,
"等待给服务器发送afterPutCutTask完成"
);
}
}
...
...
source/DeviceLibrary/assemblyLine/LineBean_T3-C1.cs
查看文件 @
9e37d75
...
...
@@ -16,7 +16,7 @@ namespace OnlineStore.DeviceLibrary
private
bool
T3C1_Pro
=
false
;
private
DateTime
T3C1_ProTime
=
DateTime
.
Now
;
private
static
LineMoveInfo
T3C1_MoveInfo
=
null
;
internal
int
T3C1_TrayNum
=
0
;
public
int
T3C1_TrayNum
=
0
;
private
void
Update_T3C1_TrayNum
()
...
...
source/DeviceLibrary/assemblyLine/MoveEquip_Partial.cs
查看文件 @
9e37d75
...
...
@@ -220,9 +220,7 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
IsTimeOut
(
180
))
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveType
+
"]["
+
MoveInfo
.
SLog
+
"]等待空托盘到达超时["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
DeviceID
*
1000
+
12
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
MoveTimeOut
(
MoveInfo
,
"等待空托盘到达超时"
);
return
false
;
}
return
false
;
...
...
source/DeviceLibrary/model/StoreStep.cs
查看文件 @
9e37d75
...
...
@@ -112,66 +112,12 @@ namespace OnlineStore.DeviceLibrary
Wait
=
0
,
#
region
流水线入仓操作
100
开始
/// <summary>
/// 流水线入仓,开始扫码 扫描枪触发,数据处理
/// </summary>
LI_Scannering
=
101
,
/// <summary>
/// 流水线入仓,料仓号及库位号发送, 夹具号编码记忆(X5,X6.X7)数据接收
/// </summary>
LI_WaitServerResult
=
102
,
/// <summary>
/// 等待100毫秒后再放行
/// </summary>
LI_00_Wait100
=
103
,
/// <summary>
/// 阻挡气缸0-2下降
/// </summary>
LI_01_Stop2Down
=
104
,
/// <summary>
/// 检测夹具检测1=0 ) 开始
/// </summary>
LI_02_FixtureCheck
=
105
,
/// <summary>
/// 阻挡气缸0-2上升
/// </summary>
LI_03_Stop2Up
=
106
,
/// <summary>
/// 阻挡气缸0-1下降
/// </summary>
LI_04_Stop1Down
=
107
,
#
endregion
#
region
流水线出库操作
200
开始
/// <summary>
/// 流水线出库,等待100毫秒之后在放行
/// </summary>
LO_00_Wait100
=
200
,
/// <summary>
/// 流水线出库,阻挡气缸0-2下降
/// </summary>
LO_01_Stop2Down
=
201
,
/// <summary>
/// 流水线出库, 检测夹具检测1=0
/// </summary>
LO_02_FixtureCheck
=
202
,
/// <summary>
/// 流水线出库,阻挡气缸0-2上升
/// </summary>
LO_03_Stop2Up
=
203
,
/// <summary>
/// 阻挡气缸0-1下降
/// </summary>
LO_04_Stop1Up
=
204
,
#
endregion
#
region
移栽装置原点返回和重置步骤
2
000
开始
#
region
移栽装置原点返回和重置步骤
1
000
开始
/// <summary>
/// 上下气缸回原点
/// </summary>
MH_01_UpDownHome
=
2
001
,
MH_01_UpDownHome
=
1
001
,
/// <summary>
/// 料仓移栽装置,上下气缸上升端
/// </summary>
...
...
@@ -188,11 +134,11 @@ namespace OnlineStore.DeviceLibrary
#
endregion
#
region
移载装置入库处理
3000
-
30
50
#
region
移载装置入库处理
1100
-
11
50
/// <summary>
///移载装置入库处理,顶升气缸先上升
/// </summary>
MI_01_UpdownUp
=
30
01
,
MI_01_UpdownUp
=
11
01
,
/// <summary>
///移载装置入库处理,横移气缸到流水线上方
/// </summary>
...
...
@@ -231,76 +177,76 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
///移载装置入库处理,上下气缸1下降
/// </summary>
MI_11_CylinderDown
=
30
11
,
MI_11_CylinderDown
=
11
11
,
/// <summary>
///移载装置入库处理,,夹料气缸1放松
/// </summary>
MI_12_CylinderRelax
=
3012
,
MI_12_CylinderRelax
,
/// <summary>
///移载装置入库处理,上下气缸1上升
/// </summary>
MI_13_UpdownCylinderUp
=
3013
,
MI_13_UpdownCylinderUp
,
/// <summary>
///移载装置入库处理,,前后气缸1后退
/// </summary>
MI_14_CylinderAfter
=
3014
,
MI_14_CylinderAfter
,
/// <summary>
///移载装置入库处理,,前后气缸已后退,通知料仓入库
/// </summary>
MI_15_SendPosToStore
=
3015
,
MI_15_SendPosToStore
,
/// <summary>
///移载装置入库处理,检测到X102-1=1送料流程完成
/// </summary>
MI_16_SendEnd
=
3016
,
MI_16_SendEnd
,
/// <summary>
///移载装置入库处理,编码不一致,顶升气缸1下降
/// </summary>
MI_20_TopDown
=
3020
,
MI_20_TopDown
,
/// <summary>
///移载装置入库处理,阻挡气缸1-2下降
/// </summary>
MI_21_StopDown
=
3021
,
MI_21_StopDown
,
/// <summary>
///移载装置入库处理,检测Check4=0,
/// </summary>
MI_22_FixtureCheck_Low
=
3022
,
MI_22_FixtureCheck_Low
,
/// <summary>
///移载装置入库处理,,,阻挡气缸1-2 上升,等待200毫秒
/// </summary>
MI_23_StopCylinderReset
=
3023
,
MI_23_StopCylinderReset
,
#
endregion
#
region
移栽装置出入库共同模块
3080
-
31
00
#
region
移栽装置出入库共同模块
1180
-
12
00
/// <summary>
///移载(流水线)装置出入库处理,阻挡气缸1-1下降
/// </summary>
MIO_00_Stop1Down
=
30
80
,
MIO_00_Stop1Down
=
11
80
,
/// <summary>
///移载(流水线)装置出入库处理,夹具检测1-4=1
/// </summary>
MIO_01_TrayCheck
=
3081
,
MIO_01_TrayCheck
,
/// <summary>
/// 移载(流水线)装置出入库处理,等待夹具持续500毫秒
/// </summary>
MIO_02_TrayCheck2
=
3082
,
MIO_02_TrayCheck2
,
/// <summary>
///移载(流水线)装置出入库处理,阻挡气缸1-1上升
/// </summary>
MIO_03_StopUp
=
3083
,
MIO_03_StopUp
,
/// <summary>
/// 检测夹具检测IO1=1
/// </summary>
MIO_04_Wait
=
3084
,
MIO_04_Wait
,
/// <summary>
/// 等待一秒钟
/// </summary>
MIO_05_WaitTime
=
3085
,
MIO_05_WaitTime
,
/// <summary>
///移载(流水线)装置出入库处理,顶 升气缸上升
/// </summary>
MIO_06_TopUp
=
3086
,
MIO_06_TopUp
,
///// <summary>
///// 移载(流水线)装置出入库处理,定位气缸上升
///// </summary>
...
...
@@ -308,99 +254,99 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 等待StoreMove完成当前操作开始入库
/// </summary>
MIO_08_WaitInStore
=
3088
,
MIO_08_WaitInStore
,
/// <summary>
/// 等待StoreMove移走料盘开始放托盘通过
/// </summary>
MIO_09_WaitTrayCanGo
=
3089
,
MIO_09_WaitTrayCanGo
,
#
endregion
#
region
移栽装置出库处理
3100
-
32
00
#
region
移栽装置出库处理
1201
-
13
00
/// <summary>
/// 移载(流水线)装置出库处理, 检测夹具编码并记忆,托盘 是空盘,并且BOX在出库等待中,开始移栽料盘
/// 上料模块横移,空托盘已准备好,可以放料
/// </summary>
MO_11_CodeRember
=
31
01
,
MO_11_CodeRember
=
12
01
,
/// <summary>
/// 移栽处理已完成,开始扫码或继续托盘处理流程
/// </summary>
MO_12_MoveOk
=
3102
,
MO_12_MoveOk
,
/// <summary>
/// 移载(流水线)定位气缸下降
/// </summary>
MO_13_LoactionDown
=
3103
,
MO_13_LoactionDown
,
/// <summary>
/// 移载(流水线)装置出库处理 ,顶升气缸1下降
/// </summary>
MO_14_TopDown
=
3104
,
MO_14_TopDown
,
/// <summary>
/// 如果是移栽2需要等待托盘是否可以走
/// </summary>
MO_15_WaitCanGo
=
3105
,
MO_15_WaitCanGo
,
/// <summary>
/// 移载(流水线)装置出库处理, 阻挡气缸1-2下降
/// </summary>
MO_16_Stop2Down
=
3106
,
MO_16_Stop2Down
,
/// <summary>
/// 移载(流水线)装置出库处理, 阻挡2托盘检测=0,
/// </summary>
MO_17_Stop2Check
=
3107
,
MO_17_Stop2Check
,
/// <summary>
/// 移载(流水线)装置出库处理, 延迟500ms后上升阻挡2
/// </summary>
MO_18_WaitTime
=
3108
,
MO_18_WaitTime
,
/// <summary>
/// 移载(流水线)装置出库处理, 阻挡气缸1-1下降 阻挡气缸1-2上升
/// </summary>
MO_19_StopUp
=
3109
,
MO_19_StopUp
,
/// <summary>
/// 移栽装置出库处理,开始出库
/// </summary>
MO_50_StartOutProcess
=
31
50
,
MO_50_StartOutProcess
=
12
50
,
/// <summary>
/// 移栽装置出库处理。。前后气缸1前进
/// </summary>
MO_51_CylinderBefore
=
3151
,
MO_51_CylinderBefore
,
/// <summary>
/// 移栽装置出库处理。上下气缸1下降
/// </summary>
MO_52_CylinderDown
=
3152
,
MO_52_CylinderDown
,
/// <summary>
/// 移栽装置出库处理。上下气缸1下降后,等待0.3秒再夹紧,防止没有下降到位就夹紧操作
/// </summary>
MO_53_DownWait
=
3153
,
MO_53_DownWait
,
/// <summary>
/// 移栽装置出库处理。 夹料气缸1夹紧
/// </summary>
MO_54_CylinderOpen
=
3154
,
MO_54_CylinderOpen
,
/// <summary>
/// 移栽装置出库处理。 上下气缸1上升
/// </summary>
MO_55_CylinderUp
=
3155
,
MO_55_CylinderUp
,
/// <summary>
/// 移栽装置出库处理。 夹料气缸检测
/// </summary>
MO_56_ClampCheck
=
3156
,
MO_56_ClampCheck
,
/// <summary>
/// 移栽装置出库处理。 前后气缸1后退
/// </summary>
MO_57_CylinderAfter
=
3157
,
MO_57_CylinderAfter
,
/// <summary>
/// 移载(流水线)装置出库处理,上下气缸1下降
/// </summary>
MO_58_CylinderDown
=
3158
,
MO_58_CylinderDown
,
/// <summary>
/// 移载(流水线)装置出库处理,夹料气缸1放松
/// </summary>
MO_59_CylinderRelax
=
3159
,
MO_59_CylinderRelax
,
/// <summary>
/// 移载(流水线)装置出库处理,上下气缸1上升
/// </summary>
MO_60_CylinderUp
=
3160
,
MO_60_CylinderUp
,
#
region
入料模块,紧急出料移栽处理
...
...
@@ -422,41 +368,41 @@ namespace OnlineStore.DeviceLibrary
#
region
入料装置原点返回,
10000
开始
#
region
入料装置原点返回,
2001
开始
/// <summary>
/// 上料模块复位,所有阻挡先上升到位
/// </summary>
FR_01_StopUp
=
10
001
,
FR_01_StopUp
=
2
001
,
/// <summary>
/// 复位之前,所有的链条先转动3秒钟
/// </summary>
FR_02_LineRun
=
10002
,
FR_02_LineRun
,
/// <summary>
/// 上料模块复位:横移装置上升,
/// </summary>
FR_03_CylinderUp
=
10003
,
FR_03_CylinderUp
,
/// <summary>
/// 上料模块复位:升降伺服回原点
/// </summary>
FR_04_UpdownAxisHome
=
10004
,
FR_04_UpdownAxisHome
,
/// <summary>
///上料模块复位:上料气缸放松SOL,升降机构到待机点
/// </summary>
FR_05_UpdownAxis_P1
=
10005
,
FR_05_UpdownAxis_P1
,
/// <summary>
///上料模块复位:上料横移气缸取料端SOL
/// </summary>
FR_06_CylinderGive
=
10006
,
FR_06_CylinderGive
,
/// <summary>
///上料模块复位: 提升伺服回原点,夹紧装置放松
/// </summary>
FR_11_BatchAxisHome
=
10
011
,
FR_11_BatchAxisHome
=
2
011
,
/// <summary>
/// 上料模块复位:然后提升伺服下降到P2点
...
...
@@ -488,7 +434,7 @@ namespace OnlineStore.DeviceLibrary
#
endregion
#
region
入料装置入料处理,
11000
开始
#
region
入料装置入料处理,
2101
开始
////SL1定位工位检测有信号,阻挡气缸不能下降。
//SL1定位工位检测无信号,阻挡气缸下降,然后料架到工位
...
...
@@ -520,7 +466,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 提升轴先返回P2
/// </summary>
FI_01_BatchAxisToP2
=
110
01
,
FI_01_BatchAxisToP2
=
21
01
,
/// <summary>
/// 入料流程:升降盘定位气缸后退
/// </summary>
...
...
@@ -670,7 +616,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 上料完成,未检测到料盘,提升伺服到P2点
/// </summary>
FI_51_BatchAxisToP2
=
110
51
,
FI_51_BatchAxisToP2
=
21
51
,
/// <summary>
/// 上料完成,升降盘定位气缸后退
/// </summary>
...
...
@@ -727,11 +673,11 @@ namespace OnlineStore.DeviceLibrary
FI_63_OutLineRun
,
#
endregion
#
region
入料装置出料处理,
12000
开始
#
region
入料装置出料处理,
2201
开始
/// <summary>
/// 出库流程:提升伺服到P2
/// </summary>
FO_01_BatchAxisToP2
=
120
01
,
FO_01_BatchAxisToP2
=
22
01
,
/// <summary>
/// 出料流程:升降盘定位气缸后退
/// </summary>
...
...
@@ -785,7 +731,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 紧急出料移栽:上料轴下降指定的高度,同时升降轴回待机点
/// </summary>
FO_21_AxisDownMove
=
120
21
,
FO_21_AxisDownMove
=
22
21
,
/// <summary>
/// 紧急出料移栽:上料横移机构取料端
...
...
@@ -845,7 +791,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 出料完成,料盘已放入料架,提升伺服到P2点
/// </summary>
FO_51_BatchAxisToP2
=
120
51
,
FO_51_BatchAxisToP2
=
22
51
,
/// <summary>
/// 出料完成,升降盘定位气缸后退
/// </summary>
...
...
@@ -904,22 +850,22 @@ namespace OnlineStore.DeviceLibrary
#
region
C1
线横移模块
5000
0
开始
#
region
C1
线横移模块
5000
开始
#
region
横移模块复位,
500
0
1
#
region
横移模块复位,
5001
/// <summary>
/// 横移模块复位:横移线体 停止,全部阻挡上升
/// </summary>
HY_R_01StopMove
=
500
0
1
,
HY_R_01StopMove
=
5001
,
/// <summary>
/// 横移模块复位:顶升气缸下降,定位气缸下降
/// </summary>
HY_R_02StopMove
,
#
endregion
#
region
C1
线横移
阻挡托盘检测处理,
510
0
1
#
region
C1
线横移
阻挡托盘检测处理,
5101
HY01_Wait
=
510
0
1
,
HY01_Wait
=
5101
,
/// <summary>
/// 横移入口托盘处理:检测到前阻挡托盘检测,前阻挡下降
/// </summary>
...
...
@@ -958,11 +904,11 @@ namespace OnlineStore.DeviceLibrary
#
endregion
#
region
横移
C1
->
C1
分流入口横移操作
,
51
011
-
510
19
#
region
横移
C1
->
C1
分流入口横移操作
,
51
11
-
51
19
/// <summary>
/// 横移C1->C1分流入口:开始横移,顶升上升,定位下降
/// </summary>
HY11_TopUpToHY
=
51
0
11
,
HY11_TopUpToHY
=
5111
,
/// <summary>
/// 横移C1->C1分流入口:开始横移,等待HY2空闲,可以开始横移
/// </summary>
...
...
@@ -996,11 +942,11 @@ namespace OnlineStore.DeviceLibrary
#
endregion
#
region
横移
C1
线
->
出料线
横移处理
51
031
-
510
39
#
region
横移
C1
线
->
出料线
横移处理
51
31
-
51
39
/// <summary>
/// C1线->出料线:开始横移,顶升上升
/// </summary>
HY31_IOL_TopUp
=
51
0
31
,
HY31_IOL_TopUp
=
5131
,
/// <summary>
...
...
@@ -1028,11 +974,11 @@ namespace OnlineStore.DeviceLibrary
#
endregion
#
region
上料横移出口(
HY1
,
HY21
及
C1
其他横移出口)托盘处理,
51
0
51
#
region
上料横移出口(
HY1
,
HY21
及
C1
其他横移出口)托盘处理,
5151
/// <summary>
/// 横移出口托盘处理:当前无托盘
/// </summary>
HY51_WaitFree
=
51
0
51
,
HY51_WaitFree
=
5151
,
/// <summary>
/// 横移出口托盘处理:顶升上升,定位下降
/// </summary>
...
...
@@ -1110,11 +1056,11 @@ namespace OnlineStore.DeviceLibrary
#
region
出料线
->
C1
线,托盘检测及横移处理,
51
0
71
#
region
出料线
->
C1
线,托盘检测及横移处理,
5171
/// <summary>
/// 出料线->C1线托盘检测: 等待检测到出料线托盘
/// </summary>
HY71_OL_Wait
=
51
0
71
,
HY71_OL_Wait
=
5171
,
/// <summary>
/// 出料线->C1线托盘检测:检测到出料线托盘,所有阻挡上升
/// </summary>
...
...
@@ -1152,11 +1098,11 @@ namespace OnlineStore.DeviceLibrary
HY79_OL_HYEnd
,
#
endregion
#
region
C1
线横移,阻挡托盘放行处理,
51
0
91
#
region
C1
线横移,阻挡托盘放行处理,
5191
/// <summary>
/// C1分流横移放盘离开:等待托盘可离开
/// </summary>
HY91_TrayCanGo
=
51
0
91
,
HY91_TrayCanGo
=
5191
,
/// <summary>
///C1分流横移放盘离开:阻挡下降
/// </summary>
...
...
@@ -1178,11 +1124,11 @@ namespace OnlineStore.DeviceLibrary
#
endregion
#
region
出料线横移,
5
20
01
#
region
出料线横移,
5
3
01
/// <summary>
/// 出料线横移(长线):短线阻挡检测到托盘
/// </summary>
OHY01_LongLCheck
=
5
20
01
,
OHY01_LongLCheck
=
5
3
01
,
/// <summary>
/// 出料线横移(短线):顶升气缸下降
/// </summary>
...
...
@@ -1206,7 +1152,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 出料线横移(短线):短线阻挡检测到托盘
/// </summary>
OHY11_ShortLCheck
=
5
20
11
,
OHY11_ShortLCheck
=
5
3
11
,
/// <summary>
/// 出料线横移(短线):顶升气缸上升
/// </summary>
...
...
@@ -1235,7 +1181,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 出料线横移: 等待托盘检测无信号
/// </summary>
OHY21_WaitTrayLeave
=
5
20
21
,
OHY21_WaitTrayLeave
=
5
3
21
,
/// <summary>
/// 出料线横移: 延迟500ms后再次等待托盘无信号
/// </summary>
...
...
@@ -1243,7 +1189,7 @@ namespace OnlineStore.DeviceLibrary
#
endregion
#
region
接驳台横移
,
5
30
01
#
region
接驳台横移
,
5
4
01
#
region
接驳台横移复位
//升降轴回待机点
...
...
@@ -1254,7 +1200,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 接驳台横移复位:电机停止,升降轴回原点,阻挡上升,定位气缸下降,顶升气缸下降
/// </summary>
JHY_R01_UpdownHome
=
5
30
01
,
JHY_R01_UpdownHome
=
5
4
01
,
/// <summary>
/// 接驳台横移复位:升降轴到P1
...
...
@@ -1279,11 +1225,11 @@ namespace OnlineStore.DeviceLibrary
#
endregion
#
region
接驳台横移托盘处理
5
40
01
#
region
接驳台横移托盘处理
5
5
01
/// <summary>
/// 接驳台托盘:前阻挡检测到托盘
/// </summary>
JHY_01_TrayCheck
=
5
40
01
,
JHY_01_TrayCheck
=
5
5
01
,
/// <summary>
/// 接驳台托盘:顶升气缸上升或下降,HY10,HY12下降,HY7上升
/// </summary>
...
...
@@ -1329,7 +1275,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 托盘放行: 阻挡上升,定位气缸下降,顶升气缸下降
/// </summary>
JHY_11_TopDown
=
5
30
11
,
JHY_11_TopDown
=
5
5
11
,
/// <summary>
/// 托盘放行: 等待托盘检测无信号
/// </summary>
...
...
@@ -1348,12 +1294,12 @@ namespace OnlineStore.DeviceLibrary
#
endregion
#
region
接驳台取放料处理
5
50
01
#
region
接驳台取放料处理
5
6
01
/// <summary>
/// 接驳台放料:升降轴到P1
/// </summary>
JM_01_UpdownToP1
=
5
50
01
,
JM_01_UpdownToP1
=
5
6
01
,
/// <summary>
///接驳台放料: 横移气缸取料端
/// </summary>
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论