Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
ACSingleStore
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 10be948a
由
几米阳光
编写于
2018-04-02 15:56:47 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
代码修改
1 个父辈
e1c28beb
显示空白字符变更
内嵌
并排
正在显示
37 个修改的文件
包含
424 行增加
和
4932 行删除
source/ACSingleStore/FrmAxisDebug.Designer.cs
source/ACSingleStore/FrmAxisDebug.cs
source/ACSingleStore/FrmBase.Designer.cs
source/ACSingleStore/FrmIOStatus.Designer.cs
source/ACSingleStore/FrmIOStatus.cs
source/ACSingleStore/FrmLogin.Designer.cs
source/ACSingleStore/FrmStoreBox.Designer.cs
source/ACSingleStore/FrmStoreBox.cs
source/ACSingleStore/FrmStoreBox.resx
source/DeviceLibrary/DeviceLibrary.csproj
source/DeviceLibrary/PanasonicServo/ACServerManager.cs
source/DeviceLibrary/StoreConfig/AC/StoreConfig.csv
source/DeviceLibrary/StoreConfig/SA-boshi/Data Matrix ECC 200.dcm
source/DeviceLibrary/StoreConfig/SA-boshi/QR Code.dcm
source/DeviceLibrary/StoreConfig/SA-boshi/StoreConfig.csv
source/DeviceLibrary/StoreConfig/SA-boshi/linePositions.csv
source/DeviceLibrary/StoreConfig/SA/StoreConfig.csv
source/DeviceLibrary/StoreConfig/SA/linePositions.csv
source/DeviceLibrary/acSingleStore/ACStoreManager.cs
source/DeviceLibrary/acSingleStore/AC_SA_BoxBean.cs
source/DeviceLibrary/acSingleStore/AC_SA_BoxBean_Partial.cs
source/DeviceLibrary/ktkSingleStore/KTK_SA_BoxBean.cs
source/DeviceLibrary/ktkSingleStore/KTK_SA_BoxBean_Partial.cs
source/DeviceLibrary/ktkSingleStore/SAStoreManager.cs
source/DeviceLibrary/store/IOUtil.cs
source/DeviceLibrary/store/InOrOutStoreParam.cs
source/DeviceLibrary/store/KTKLinePosition.cs → source/DeviceLibrary/store/LineMoveP.cs
source/DeviceLibrary/store/StoreBase.cs
source/LoadCVSLibrary/LoadCSVLibrary.csproj
source/LoadCVSLibrary/position/ACSAStorePosition.cs
source/LoadCVSLibrary/position/DoublePosition.cs
source/LoadCVSLibrary/position/KTKSAStorePostion.cs
source/LoadCVSLibrary/position/KTKStorePostion.cs
source/LoadCVSLibrary/storeConfig/config/AC_SA_Config.cs
source/LoadCVSLibrary/storeConfig/config/StoreConfig.cs
source/LoadCVSLibrary/storeConfig/config/StoreType.cs
source/LoadCVSLibrary/storeConfig/config/Store_IO_Type.cs
source/ACSingleStore/FrmAxisDebug.Designer.cs
查看文件 @
10be948
...
...
@@ -51,27 +51,27 @@
// label1
//
this
.
label1
.
AutoSize
=
true
;
this
.
label1
.
Location
=
new
System
.
Drawing
.
Point
(
39
,
91
);
this
.
label1
.
Location
=
new
System
.
Drawing
.
Point
(
39
,
77
);
this
.
label1
.
Name
=
"label1"
;
this
.
label1
.
Size
=
new
System
.
Drawing
.
Size
(
89
,
12
);
this
.
label1
.
Size
=
new
System
.
Drawing
.
Size
(
107
,
20
);
this
.
label1
.
TabIndex
=
0
;
this
.
label1
.
Text
=
"(轴一)旋转轴"
;
//
// label2
//
this
.
label2
.
AutoSize
=
true
;
this
.
label2
.
Location
=
new
System
.
Drawing
.
Point
(
39
,
1
45
);
this
.
label2
.
Location
=
new
System
.
Drawing
.
Point
(
39
,
1
31
);
this
.
label2
.
Name
=
"label2"
;
this
.
label2
.
Size
=
new
System
.
Drawing
.
Size
(
89
,
12
);
this
.
label2
.
Size
=
new
System
.
Drawing
.
Size
(
107
,
20
);
this
.
label2
.
TabIndex
=
1
;
this
.
label2
.
Text
=
"(轴二)升降轴"
;
//
// label3
//
this
.
label3
.
AutoSize
=
true
;
this
.
label3
.
Location
=
new
System
.
Drawing
.
Point
(
39
,
1
98
);
this
.
label3
.
Location
=
new
System
.
Drawing
.
Point
(
39
,
1
84
);
this
.
label3
.
Name
=
"label3"
;
this
.
label3
.
Size
=
new
System
.
Drawing
.
Size
(
89
,
12
);
this
.
label3
.
Size
=
new
System
.
Drawing
.
Size
(
107
,
20
);
this
.
label3
.
TabIndex
=
2
;
this
.
label3
.
Text
=
"(轴三)进出轴"
;
//
...
...
@@ -80,16 +80,16 @@
this
.
label4
.
AutoSize
=
true
;
this
.
label4
.
Location
=
new
System
.
Drawing
.
Point
(
39
,
233
);
this
.
label4
.
Name
=
"label4"
;
this
.
label4
.
Size
=
new
System
.
Drawing
.
Size
(
89
,
12
);
this
.
label4
.
Size
=
new
System
.
Drawing
.
Size
(
107
,
20
);
this
.
label4
.
TabIndex
=
3
;
this
.
label4
.
Text
=
"(轴四)压紧轴"
;
this
.
label4
.
Visible
=
false
;
//
// btnMiddleMove
//
this
.
btnMiddleMove
.
Location
=
new
System
.
Drawing
.
Point
(
2
93
,
79
);
this
.
btnMiddleMove
.
Location
=
new
System
.
Drawing
.
Point
(
2
66
,
70
);
this
.
btnMiddleMove
.
Name
=
"btnMiddleMove"
;
this
.
btnMiddleMove
.
Size
=
new
System
.
Drawing
.
Size
(
1
07
,
31
);
this
.
btnMiddleMove
.
Size
=
new
System
.
Drawing
.
Size
(
1
31
,
36
);
this
.
btnMiddleMove
.
TabIndex
=
4
;
this
.
btnMiddleMove
.
Text
=
"旋转轴+(顺时针)"
;
this
.
btnMiddleMove
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -99,38 +99,38 @@
//
// txtMiddleSpeed
//
this
.
txtMiddleSpeed
.
Location
=
new
System
.
Drawing
.
Point
(
150
,
86
);
this
.
txtMiddleSpeed
.
Location
=
new
System
.
Drawing
.
Point
(
150
,
75
);
this
.
txtMiddleSpeed
.
Name
=
"txtMiddleSpeed"
;
this
.
txtMiddleSpeed
.
Size
=
new
System
.
Drawing
.
Size
(
108
,
2
1
);
this
.
txtMiddleSpeed
.
Size
=
new
System
.
Drawing
.
Size
(
108
,
2
6
);
this
.
txtMiddleSpeed
.
TabIndex
=
5
;
//
// txtUpDownSpeed
//
this
.
txtUpDownSpeed
.
Location
=
new
System
.
Drawing
.
Point
(
150
,
1
40
);
this
.
txtUpDownSpeed
.
Location
=
new
System
.
Drawing
.
Point
(
150
,
1
29
);
this
.
txtUpDownSpeed
.
Name
=
"txtUpDownSpeed"
;
this
.
txtUpDownSpeed
.
Size
=
new
System
.
Drawing
.
Size
(
108
,
2
1
);
this
.
txtUpDownSpeed
.
Size
=
new
System
.
Drawing
.
Size
(
108
,
2
6
);
this
.
txtUpDownSpeed
.
TabIndex
=
6
;
//
// txtInOutSpeed
//
this
.
txtInOutSpeed
.
Location
=
new
System
.
Drawing
.
Point
(
150
,
1
93
);
this
.
txtInOutSpeed
.
Location
=
new
System
.
Drawing
.
Point
(
150
,
1
82
);
this
.
txtInOutSpeed
.
Name
=
"txtInOutSpeed"
;
this
.
txtInOutSpeed
.
Size
=
new
System
.
Drawing
.
Size
(
108
,
2
1
);
this
.
txtInOutSpeed
.
Size
=
new
System
.
Drawing
.
Size
(
108
,
2
6
);
this
.
txtInOutSpeed
.
TabIndex
=
7
;
//
// txtComSpeed
//
this
.
txtComSpeed
.
Location
=
new
System
.
Drawing
.
Point
(
150
,
228
);
this
.
txtComSpeed
.
Name
=
"txtComSpeed"
;
this
.
txtComSpeed
.
Size
=
new
System
.
Drawing
.
Size
(
108
,
2
1
);
this
.
txtComSpeed
.
Size
=
new
System
.
Drawing
.
Size
(
108
,
2
6
);
this
.
txtComSpeed
.
TabIndex
=
8
;
this
.
txtComSpeed
.
Visible
=
false
;
//
// btnUpDownMove
//
this
.
btnUpDownMove
.
Location
=
new
System
.
Drawing
.
Point
(
2
93
,
133
);
this
.
btnUpDownMove
.
Location
=
new
System
.
Drawing
.
Point
(
2
66
,
124
);
this
.
btnUpDownMove
.
Name
=
"btnUpDownMove"
;
this
.
btnUpDownMove
.
Size
=
new
System
.
Drawing
.
Size
(
1
07
,
31
);
this
.
btnUpDownMove
.
Size
=
new
System
.
Drawing
.
Size
(
1
31
,
36
);
this
.
btnUpDownMove
.
TabIndex
=
9
;
this
.
btnUpDownMove
.
Text
=
"升降轴+(下降)"
;
this
.
btnUpDownMove
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -139,9 +139,9 @@
//
// btnInOutMove
//
this
.
btnInOutMove
.
Location
=
new
System
.
Drawing
.
Point
(
2
93
,
186
);
this
.
btnInOutMove
.
Location
=
new
System
.
Drawing
.
Point
(
2
66
,
177
);
this
.
btnInOutMove
.
Name
=
"btnInOutMove"
;
this
.
btnInOutMove
.
Size
=
new
System
.
Drawing
.
Size
(
1
07
,
31
);
this
.
btnInOutMove
.
Size
=
new
System
.
Drawing
.
Size
(
1
31
,
36
);
this
.
btnInOutMove
.
TabIndex
=
10
;
this
.
btnInOutMove
.
Text
=
"进出轴+(前进)"
;
this
.
btnInOutMove
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -174,9 +174,9 @@
//
// btnInOutMovej
//
this
.
btnInOutMovej
.
Location
=
new
System
.
Drawing
.
Point
(
4
21
,
186
);
this
.
btnInOutMovej
.
Location
=
new
System
.
Drawing
.
Point
(
4
01
,
177
);
this
.
btnInOutMovej
.
Name
=
"btnInOutMovej"
;
this
.
btnInOutMovej
.
Size
=
new
System
.
Drawing
.
Size
(
1
07
,
31
);
this
.
btnInOutMovej
.
Size
=
new
System
.
Drawing
.
Size
(
1
31
,
36
);
this
.
btnInOutMovej
.
TabIndex
=
14
;
this
.
btnInOutMovej
.
Text
=
"进出轴-(后退)"
;
this
.
btnInOutMovej
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -185,9 +185,9 @@
//
// btnUpDownMovej
//
this
.
btnUpDownMovej
.
Location
=
new
System
.
Drawing
.
Point
(
4
21
,
133
);
this
.
btnUpDownMovej
.
Location
=
new
System
.
Drawing
.
Point
(
4
01
,
124
);
this
.
btnUpDownMovej
.
Name
=
"btnUpDownMovej"
;
this
.
btnUpDownMovej
.
Size
=
new
System
.
Drawing
.
Size
(
1
07
,
31
);
this
.
btnUpDownMovej
.
Size
=
new
System
.
Drawing
.
Size
(
1
31
,
36
);
this
.
btnUpDownMovej
.
TabIndex
=
13
;
this
.
btnUpDownMovej
.
Text
=
"升降轴-(上升)"
;
this
.
btnUpDownMovej
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -196,9 +196,9 @@
//
// btnMiddleMovej
//
this
.
btnMiddleMovej
.
Location
=
new
System
.
Drawing
.
Point
(
4
21
,
79
);
this
.
btnMiddleMovej
.
Location
=
new
System
.
Drawing
.
Point
(
4
01
,
70
);
this
.
btnMiddleMovej
.
Name
=
"btnMiddleMovej"
;
this
.
btnMiddleMovej
.
Size
=
new
System
.
Drawing
.
Size
(
1
07
,
31
);
this
.
btnMiddleMovej
.
Size
=
new
System
.
Drawing
.
Size
(
1
31
,
36
);
this
.
btnMiddleMovej
.
TabIndex
=
12
;
this
.
btnMiddleMovej
.
Text
=
"旋转轴-(逆时针)"
;
this
.
btnMiddleMovej
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -209,7 +209,7 @@
//
this
.
button1
.
Location
=
new
System
.
Drawing
.
Point
(
402
,
253
);
this
.
button1
.
Name
=
"button1"
;
this
.
button1
.
Size
=
new
System
.
Drawing
.
Size
(
126
,
3
0
);
this
.
button1
.
Size
=
new
System
.
Drawing
.
Size
(
126
,
3
7
);
this
.
button1
.
TabIndex
=
16
;
this
.
button1
.
Text
=
"关闭"
;
this
.
button1
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -217,7 +217,7 @@
//
// FrmAxisDebug
//
this
.
AutoScaleDimensions
=
new
System
.
Drawing
.
SizeF
(
6F
,
12
F
);
this
.
AutoScaleDimensions
=
new
System
.
Drawing
.
SizeF
(
8F
,
20
F
);
this
.
AutoScaleMode
=
System
.
Windows
.
Forms
.
AutoScaleMode
.
Font
;
this
.
ClientSize
=
new
System
.
Drawing
.
Size
(
558
,
318
);
this
.
Controls
.
Add
(
this
.
button1
);
...
...
source/ACSingleStore/FrmAxisDebug.cs
查看文件 @
10be948
...
...
@@ -231,10 +231,6 @@ namespace OnlineStore.ACSingleStore
this
.
Close
();
}
private
void
btnMiddleMove_Click
(
object
sender
,
EventArgs
e
)
{
}
private
void
FrmAxisDebug_Shown
(
object
sender
,
EventArgs
e
)
{
...
...
source/ACSingleStore/FrmBase.Designer.cs
查看文件 @
10be948
...
...
@@ -43,9 +43,10 @@
//
// FrmBase
//
this
.
AutoScaleDimensions
=
new
System
.
Drawing
.
SizeF
(
6F
,
12
F
);
this
.
AutoScaleMode
=
System
.
Windows
.
Forms
.
AutoScaleMode
.
Font
;
this
.
AutoScaleDimensions
=
new
System
.
Drawing
.
SizeF
(
96F
,
96
F
);
this
.
AutoScaleMode
=
System
.
Windows
.
Forms
.
AutoScaleMode
.
Dpi
;
this
.
ClientSize
=
new
System
.
Drawing
.
Size
(
300
,
300
);
this
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
Icon
=
((
System
.
Drawing
.
Icon
)(
resources
.
GetObject
(
"$this.Icon"
)));
this
.
Name
=
"FrmBase"
;
this
.
Text
=
"FrmBase"
;
...
...
source/ACSingleStore/FrmIOStatus.Designer.cs
查看文件 @
10be948
...
...
@@ -77,6 +77,7 @@
this
.
groupBox1
.
Controls
.
Add
(
this
.
label6
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
btnWriteSingleDO
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
cmbWriteIO
);
this
.
groupBox1
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
groupBox1
.
Location
=
new
System
.
Drawing
.
Point
(
19
,
25
);
this
.
groupBox1
.
Name
=
"groupBox1"
;
this
.
groupBox1
.
Size
=
new
System
.
Drawing
.
Size
(
344
,
478
);
...
...
@@ -86,10 +87,10 @@
//
// btnLocationDown
//
this
.
btnLocationDown
.
Font
=
new
System
.
Drawing
.
Font
(
"
宋体"
,
9
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnLocationDown
.
Location
=
new
System
.
Drawing
.
Point
(
201
,
280
);
this
.
btnLocationDown
.
Font
=
new
System
.
Drawing
.
Font
(
"
微软雅黑"
,
10.5
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnLocationDown
.
Location
=
new
System
.
Drawing
.
Point
(
164
,
384
);
this
.
btnLocationDown
.
Name
=
"btnLocationDown"
;
this
.
btnLocationDown
.
Size
=
new
System
.
Drawing
.
Size
(
117
,
27
);
this
.
btnLocationDown
.
Size
=
new
System
.
Drawing
.
Size
(
117
,
40
);
this
.
btnLocationDown
.
TabIndex
=
251
;
this
.
btnLocationDown
.
Text
=
"定位气缸下降"
;
this
.
btnLocationDown
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -97,10 +98,10 @@
//
// btnLocationUp
//
this
.
btnLocationUp
.
Font
=
new
System
.
Drawing
.
Font
(
"
宋体"
,
9
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnLocationUp
.
Location
=
new
System
.
Drawing
.
Point
(
68
,
280
);
this
.
btnLocationUp
.
Font
=
new
System
.
Drawing
.
Font
(
"
微软雅黑"
,
10.5
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnLocationUp
.
Location
=
new
System
.
Drawing
.
Point
(
31
,
384
);
this
.
btnLocationUp
.
Name
=
"btnLocationUp"
;
this
.
btnLocationUp
.
Size
=
new
System
.
Drawing
.
Size
(
117
,
27
);
this
.
btnLocationUp
.
Size
=
new
System
.
Drawing
.
Size
(
117
,
40
);
this
.
btnLocationUp
.
TabIndex
=
250
;
this
.
btnLocationUp
.
Text
=
"定位气缸上升"
;
this
.
btnLocationUp
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -108,10 +109,10 @@
//
// btnCloseDoor
//
this
.
btnCloseDoor
.
Font
=
new
System
.
Drawing
.
Font
(
"
宋体"
,
9
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnCloseDoor
.
Location
=
new
System
.
Drawing
.
Point
(
201
,
247
);
this
.
btnCloseDoor
.
Font
=
new
System
.
Drawing
.
Font
(
"
微软雅黑"
,
10.5
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnCloseDoor
.
Location
=
new
System
.
Drawing
.
Point
(
164
,
332
);
this
.
btnCloseDoor
.
Name
=
"btnCloseDoor"
;
this
.
btnCloseDoor
.
Size
=
new
System
.
Drawing
.
Size
(
117
,
27
);
this
.
btnCloseDoor
.
Size
=
new
System
.
Drawing
.
Size
(
117
,
40
);
this
.
btnCloseDoor
.
TabIndex
=
249
;
this
.
btnCloseDoor
.
Text
=
"关闭仓门"
;
this
.
btnCloseDoor
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -119,10 +120,10 @@
//
// btnOpenDoor
//
this
.
btnOpenDoor
.
Font
=
new
System
.
Drawing
.
Font
(
"
宋体"
,
9
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnOpenDoor
.
Location
=
new
System
.
Drawing
.
Point
(
68
,
247
);
this
.
btnOpenDoor
.
Font
=
new
System
.
Drawing
.
Font
(
"
微软雅黑"
,
10.5
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnOpenDoor
.
Location
=
new
System
.
Drawing
.
Point
(
31
,
332
);
this
.
btnOpenDoor
.
Name
=
"btnOpenDoor"
;
this
.
btnOpenDoor
.
Size
=
new
System
.
Drawing
.
Size
(
117
,
27
);
this
.
btnOpenDoor
.
Size
=
new
System
.
Drawing
.
Size
(
117
,
40
);
this
.
btnOpenDoor
.
TabIndex
=
248
;
this
.
btnOpenDoor
.
Text
=
"打开仓门"
;
this
.
btnOpenDoor
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -131,43 +132,43 @@
// label3
//
this
.
label3
.
AutoSize
=
true
;
this
.
label3
.
Font
=
new
System
.
Drawing
.
Font
(
"
宋体"
,
9
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label3
.
Font
=
new
System
.
Drawing
.
Font
(
"
微软雅黑"
,
10.5
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label3
.
ImageAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
this
.
label3
.
Location
=
new
System
.
Drawing
.
Point
(
194
,
83
);
this
.
label3
.
Location
=
new
System
.
Drawing
.
Point
(
194
,
99
);
this
.
label3
.
Name
=
"label3"
;
this
.
label3
.
Size
=
new
System
.
Drawing
.
Size
(
47
,
12
);
this
.
label3
.
Size
=
new
System
.
Drawing
.
Size
(
62
,
20
);
this
.
label3
.
TabIndex
=
247
;
this
.
label3
.
Text
=
"选择DO:"
;
this
.
label3
.
TextAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
//
// txtSlaveId
//
this
.
txtSlaveId
.
Font
=
new
System
.
Drawing
.
Font
(
"
宋体"
,
9
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
txtSlaveId
.
Location
=
new
System
.
Drawing
.
Point
(
79
,
80
);
this
.
txtSlaveId
.
Font
=
new
System
.
Drawing
.
Font
(
"
微软雅黑"
,
10.5
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
txtSlaveId
.
Location
=
new
System
.
Drawing
.
Point
(
79
,
94
);
this
.
txtSlaveId
.
MaxLength
=
10
;
this
.
txtSlaveId
.
Name
=
"txtSlaveId"
;
this
.
txtSlaveId
.
Size
=
new
System
.
Drawing
.
Size
(
101
,
2
1
);
this
.
txtSlaveId
.
Size
=
new
System
.
Drawing
.
Size
(
101
,
2
6
);
this
.
txtSlaveId
.
TabIndex
=
246
;
this
.
txtSlaveId
.
Text
=
"0"
;
//
// label2
//
this
.
label2
.
AutoSize
=
true
;
this
.
label2
.
Font
=
new
System
.
Drawing
.
Font
(
"
宋体"
,
9
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label2
.
Font
=
new
System
.
Drawing
.
Font
(
"
微软雅黑"
,
10.5
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label2
.
ImageAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
this
.
label2
.
Location
=
new
System
.
Drawing
.
Point
(
21
,
85
);
this
.
label2
.
Location
=
new
System
.
Drawing
.
Point
(
21
,
101
);
this
.
label2
.
Name
=
"label2"
;
this
.
label2
.
Size
=
new
System
.
Drawing
.
Size
(
47
,
12
);
this
.
label2
.
Size
=
new
System
.
Drawing
.
Size
(
57
,
20
);
this
.
label2
.
TabIndex
=
245
;
this
.
label2
.
Text
=
"SlaveId"
;
this
.
label2
.
TextAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
//
// btnReadAllDo
//
this
.
btnReadAllDo
.
Font
=
new
System
.
Drawing
.
Font
(
"
宋体"
,
9
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnReadAllDo
.
Location
=
new
System
.
Drawing
.
Point
(
1
99
,
214
);
this
.
btnReadAllDo
.
Font
=
new
System
.
Drawing
.
Font
(
"
微软雅黑"
,
10.5
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnReadAllDo
.
Location
=
new
System
.
Drawing
.
Point
(
1
64
,
280
);
this
.
btnReadAllDo
.
Name
=
"btnReadAllDo"
;
this
.
btnReadAllDo
.
Size
=
new
System
.
Drawing
.
Size
(
117
,
27
);
this
.
btnReadAllDo
.
Size
=
new
System
.
Drawing
.
Size
(
117
,
40
);
this
.
btnReadAllDo
.
TabIndex
=
245
;
this
.
btnReadAllDo
.
Text
=
"读取所有DO"
;
this
.
btnReadAllDo
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -176,19 +177,20 @@
// chbAutoRead
//
this
.
chbAutoRead
.
AutoSize
=
true
;
this
.
chbAutoRead
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
chbAutoRead
.
Location
=
new
System
.
Drawing
.
Point
(
196
,
21
);
this
.
chbAutoRead
.
Name
=
"chbAutoRead"
;
this
.
chbAutoRead
.
Size
=
new
System
.
Drawing
.
Size
(
84
,
16
);
this
.
chbAutoRead
.
Size
=
new
System
.
Drawing
.
Size
(
99
,
24
);
this
.
chbAutoRead
.
TabIndex
=
244
;
this
.
chbAutoRead
.
Text
=
"自动读取IO"
;
this
.
chbAutoRead
.
UseVisualStyleBackColor
=
true
;
//
// btnReadAllDi
//
this
.
btnReadAllDi
.
Font
=
new
System
.
Drawing
.
Font
(
"
宋体"
,
9
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnReadAllDi
.
Location
=
new
System
.
Drawing
.
Point
(
66
,
214
);
this
.
btnReadAllDi
.
Font
=
new
System
.
Drawing
.
Font
(
"
微软雅黑"
,
10.5
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnReadAllDi
.
Location
=
new
System
.
Drawing
.
Point
(
31
,
280
);
this
.
btnReadAllDi
.
Name
=
"btnReadAllDi"
;
this
.
btnReadAllDi
.
Size
=
new
System
.
Drawing
.
Size
(
117
,
27
);
this
.
btnReadAllDi
.
Size
=
new
System
.
Drawing
.
Size
(
117
,
40
);
this
.
btnReadAllDi
.
TabIndex
=
244
;
this
.
btnReadAllDi
.
Text
=
"读取所有DI"
;
this
.
btnReadAllDi
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -196,10 +198,10 @@
//
// btnReadIO
//
this
.
btnReadIO
.
Font
=
new
System
.
Drawing
.
Font
(
"
宋体"
,
9
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnReadIO
.
Location
=
new
System
.
Drawing
.
Point
(
66
,
182
);
this
.
btnReadIO
.
Font
=
new
System
.
Drawing
.
Font
(
"
微软雅黑"
,
10.5
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnReadIO
.
Location
=
new
System
.
Drawing
.
Point
(
31
,
228
);
this
.
btnReadIO
.
Name
=
"btnReadIO"
;
this
.
btnReadIO
.
Size
=
new
System
.
Drawing
.
Size
(
117
,
27
);
this
.
btnReadIO
.
Size
=
new
System
.
Drawing
.
Size
(
117
,
40
);
this
.
btnReadIO
.
TabIndex
=
243
;
this
.
btnReadIO
.
Text
=
"读取IO状态"
;
this
.
btnReadIO
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -207,32 +209,32 @@
//
// txtDOIndex
//
this
.
txtDOIndex
.
Font
=
new
System
.
Drawing
.
Font
(
"
宋体"
,
9
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
txtDOIndex
.
Location
=
new
System
.
Drawing
.
Point
(
79
,
49
);
this
.
txtDOIndex
.
Font
=
new
System
.
Drawing
.
Font
(
"
微软雅黑"
,
10.5
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
txtDOIndex
.
Location
=
new
System
.
Drawing
.
Point
(
79
,
56
);
this
.
txtDOIndex
.
MaxLength
=
10
;
this
.
txtDOIndex
.
Name
=
"txtDOIndex"
;
this
.
txtDOIndex
.
Size
=
new
System
.
Drawing
.
Size
(
101
,
2
1
);
this
.
txtDOIndex
.
Size
=
new
System
.
Drawing
.
Size
(
101
,
2
6
);
this
.
txtDOIndex
.
TabIndex
=
242
;
this
.
txtDOIndex
.
Text
=
"0"
;
//
// txtDoName
//
this
.
txtDoName
.
Font
=
new
System
.
Drawing
.
Font
(
"
宋体"
,
9
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
txtDoName
.
Font
=
new
System
.
Drawing
.
Font
(
"
微软雅黑"
,
10.5
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
txtDoName
.
Location
=
new
System
.
Drawing
.
Point
(
79
,
18
);
this
.
txtDoName
.
MaxLength
=
10
;
this
.
txtDoName
.
Name
=
"txtDoName"
;
this
.
txtDoName
.
Size
=
new
System
.
Drawing
.
Size
(
101
,
2
1
);
this
.
txtDoName
.
Size
=
new
System
.
Drawing
.
Size
(
101
,
2
6
);
this
.
txtDoName
.
TabIndex
=
241
;
this
.
txtDoName
.
Text
=
"0"
;
//
// label17
//
this
.
label17
.
AutoSize
=
true
;
this
.
label17
.
Font
=
new
System
.
Drawing
.
Font
(
"
宋体"
,
9
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label17
.
Font
=
new
System
.
Drawing
.
Font
(
"
微软雅黑"
,
10.5
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label17
.
ImageAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
this
.
label17
.
Location
=
new
System
.
Drawing
.
Point
(
21
,
25
);
this
.
label17
.
Name
=
"label17"
;
this
.
label17
.
Size
=
new
System
.
Drawing
.
Size
(
47
,
12
);
this
.
label17
.
Size
=
new
System
.
Drawing
.
Size
(
53
,
20
);
this
.
label17
.
TabIndex
=
240
;
this
.
label17
.
Text
=
"设备IP:"
;
this
.
label17
.
TextAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
...
...
@@ -240,33 +242,33 @@
// label14
//
this
.
label14
.
AutoSize
=
true
;
this
.
label14
.
Font
=
new
System
.
Drawing
.
Font
(
"
宋体"
,
9
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label14
.
Font
=
new
System
.
Drawing
.
Font
(
"
微软雅黑"
,
10.5
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label14
.
ImageAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
this
.
label14
.
Location
=
new
System
.
Drawing
.
Point
(
27
,
55
);
this
.
label14
.
Location
=
new
System
.
Drawing
.
Point
(
27
,
62
);
this
.
label14
.
Name
=
"label14"
;
this
.
label14
.
Size
=
new
System
.
Drawing
.
Size
(
41
,
12
);
this
.
label14
.
Size
=
new
System
.
Drawing
.
Size
(
51
,
20
);
this
.
label14
.
TabIndex
=
239
;
this
.
label14
.
Text
=
"地址:"
;
this
.
label14
.
TextAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
//
// txtWriteTime
//
this
.
txtWriteTime
.
Font
=
new
System
.
Drawing
.
Font
(
"
宋体"
,
9
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
txtWriteTime
.
Location
=
new
System
.
Drawing
.
Point
(
2
32
,
144
);
this
.
txtWriteTime
.
Font
=
new
System
.
Drawing
.
Font
(
"
微软雅黑"
,
10.5
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
txtWriteTime
.
Location
=
new
System
.
Drawing
.
Point
(
2
44
,
171
);
this
.
txtWriteTime
.
MaxLength
=
10
;
this
.
txtWriteTime
.
Name
=
"txtWriteTime"
;
this
.
txtWriteTime
.
Size
=
new
System
.
Drawing
.
Size
(
84
,
2
1
);
this
.
txtWriteTime
.
Size
=
new
System
.
Drawing
.
Size
(
84
,
2
6
);
this
.
txtWriteTime
.
TabIndex
=
238
;
this
.
txtWriteTime
.
Text
=
"0"
;
//
// label5
//
this
.
label5
.
AutoSize
=
true
;
this
.
label5
.
Font
=
new
System
.
Drawing
.
Font
(
"
宋体"
,
9
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label5
.
Font
=
new
System
.
Drawing
.
Font
(
"
微软雅黑"
,
10.5
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label5
.
ImageAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
this
.
label5
.
Location
=
new
System
.
Drawing
.
Point
(
169
,
1
53
);
this
.
label5
.
Location
=
new
System
.
Drawing
.
Point
(
169
,
1
74
);
this
.
label5
.
Name
=
"label5"
;
this
.
label5
.
Size
=
new
System
.
Drawing
.
Size
(
59
,
12
);
this
.
label5
.
Size
=
new
System
.
Drawing
.
Size
(
69
,
20
);
this
.
label5
.
TabIndex
=
237
;
this
.
label5
.
Text
=
"定时(ms):"
;
this
.
label5
.
TextAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
...
...
@@ -275,35 +277,35 @@
//
this
.
cmbWriteValue
.
DrawMode
=
System
.
Windows
.
Forms
.
DrawMode
.
OwnerDrawVariable
;
this
.
cmbWriteValue
.
DropDownStyle
=
System
.
Windows
.
Forms
.
ComboBoxStyle
.
DropDownList
;
this
.
cmbWriteValue
.
Font
=
new
System
.
Drawing
.
Font
(
"
宋体"
,
9
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
cmbWriteValue
.
Font
=
new
System
.
Drawing
.
Font
(
"
微软雅黑"
,
10.5
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
cmbWriteValue
.
FormattingEnabled
=
true
;
this
.
cmbWriteValue
.
Items
.
AddRange
(
new
object
[]
{
"0"
,
"1"
});
this
.
cmbWriteValue
.
Location
=
new
System
.
Drawing
.
Point
(
79
,
1
43
);
this
.
cmbWriteValue
.
Location
=
new
System
.
Drawing
.
Point
(
79
,
1
71
);
this
.
cmbWriteValue
.
Name
=
"cmbWriteValue"
;
this
.
cmbWriteValue
.
Size
=
new
System
.
Drawing
.
Size
(
84
,
2
2
);
this
.
cmbWriteValue
.
Size
=
new
System
.
Drawing
.
Size
(
84
,
2
7
);
this
.
cmbWriteValue
.
TabIndex
=
236
;
this
.
cmbWriteValue
.
DrawItem
+=
new
System
.
Windows
.
Forms
.
DrawItemEventHandler
(
this
.
cmbWriteValue_DrawItem
);
//
// label6
//
this
.
label6
.
AutoSize
=
true
;
this
.
label6
.
Font
=
new
System
.
Drawing
.
Font
(
"
宋体"
,
9
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label6
.
Font
=
new
System
.
Drawing
.
Font
(
"
微软雅黑"
,
10.5
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label6
.
ImageAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
this
.
label6
.
Location
=
new
System
.
Drawing
.
Point
(
21
,
1
53
);
this
.
label6
.
Location
=
new
System
.
Drawing
.
Point
(
21
,
1
74
);
this
.
label6
.
Name
=
"label6"
;
this
.
label6
.
Size
=
new
System
.
Drawing
.
Size
(
47
,
12
);
this
.
label6
.
Size
=
new
System
.
Drawing
.
Size
(
54
,
20
);
this
.
label6
.
TabIndex
=
235
;
this
.
label6
.
Text
=
"写入值:"
;
this
.
label6
.
TextAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
//
// btnWriteSingleDO
//
this
.
btnWriteSingleDO
.
Font
=
new
System
.
Drawing
.
Font
(
"
宋体"
,
9
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnWriteSingleDO
.
Location
=
new
System
.
Drawing
.
Point
(
1
99
,
183
);
this
.
btnWriteSingleDO
.
Font
=
new
System
.
Drawing
.
Font
(
"
微软雅黑"
,
10.5
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnWriteSingleDO
.
Location
=
new
System
.
Drawing
.
Point
(
1
64
,
228
);
this
.
btnWriteSingleDO
.
Name
=
"btnWriteSingleDO"
;
this
.
btnWriteSingleDO
.
Size
=
new
System
.
Drawing
.
Size
(
117
,
27
);
this
.
btnWriteSingleDO
.
Size
=
new
System
.
Drawing
.
Size
(
117
,
40
);
this
.
btnWriteSingleDO
.
TabIndex
=
232
;
this
.
btnWriteSingleDO
.
Text
=
"写入DO"
;
this
.
btnWriteSingleDO
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -314,11 +316,11 @@
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
(
"
宋体"
,
9
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
cmbWriteIO
.
Font
=
new
System
.
Drawing
.
Font
(
"
微软雅黑"
,
10.5
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
cmbWriteIO
.
FormattingEnabled
=
true
;
this
.
cmbWriteIO
.
Location
=
new
System
.
Drawing
.
Point
(
22
,
1
07
);
this
.
cmbWriteIO
.
Location
=
new
System
.
Drawing
.
Point
(
22
,
1
32
);
this
.
cmbWriteIO
.
Name
=
"cmbWriteIO"
;
this
.
cmbWriteIO
.
Size
=
new
System
.
Drawing
.
Size
(
279
,
2
2
);
this
.
cmbWriteIO
.
Size
=
new
System
.
Drawing
.
Size
(
279
,
2
7
);
this
.
cmbWriteIO
.
TabIndex
=
234
;
this
.
cmbWriteIO
.
ValueMember
=
"ProName"
;
this
.
cmbWriteIO
.
DrawItem
+=
new
System
.
Windows
.
Forms
.
DrawItemEventHandler
(
this
.
cmbWriteIO_DrawItem
);
...
...
source/ACSingleStore/FrmIOStatus.cs
查看文件 @
10be948
...
...
@@ -236,25 +236,25 @@ namespace OnlineStore.ACSingleStore
}
private
void
btnOpenDoor_Click
(
object
sender
,
EventArgs
e
)
{
boxBean
.
KNDIOMove
(
Store_
IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
);
boxBean
.
KNDIOMove
(
Store_
IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
);
boxBean
.
KNDIOMove
(
IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
);
boxBean
.
KNDIOMove
(
IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
);
}
private
void
btnCloseDoor_Click
(
object
sender
,
EventArgs
e
)
{
boxBean
.
KNDIOMove
(
Store_
IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
);
boxBean
.
KNDIOMove
(
Store_
IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
);
boxBean
.
KNDIOMove
(
IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
);
boxBean
.
KNDIOMove
(
IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
);
}
private
void
btnLocationUp_Click
(
object
sender
,
EventArgs
e
)
{
boxBean
.
KNDIOMove
(
Store_
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
LOW
);
boxBean
.
KNDIOMove
(
Store_
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
HIGH
);
boxBean
.
KNDIOMove
(
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
LOW
);
boxBean
.
KNDIOMove
(
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
HIGH
);
}
private
void
btnLocationDown_Click
(
object
sender
,
EventArgs
e
)
{
boxBean
.
KNDIOMove
(
Store_
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
HIGH
);
boxBean
.
KNDIOMove
(
Store_
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
);
boxBean
.
KNDIOMove
(
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
HIGH
);
boxBean
.
KNDIOMove
(
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
);
}
private
void
FrmIOStatus_Shown
(
object
sender
,
EventArgs
e
)
...
...
source/ACSingleStore/FrmLogin.Designer.cs
查看文件 @
10be948
...
...
@@ -60,7 +60,7 @@
this
.
txtPwd
.
MaxLength
=
100
;
this
.
txtPwd
.
Name
=
"txtPwd"
;
this
.
txtPwd
.
PasswordChar
=
'*'
;
this
.
txtPwd
.
Size
=
new
System
.
Drawing
.
Size
(
100
,
2
1
);
this
.
txtPwd
.
Size
=
new
System
.
Drawing
.
Size
(
100
,
2
6
);
this
.
txtPwd
.
TabIndex
=
5
;
//
// txtUserName
...
...
@@ -69,7 +69,7 @@
this
.
txtUserName
.
Location
=
new
System
.
Drawing
.
Point
(
145
,
32
);
this
.
txtUserName
.
MaxLength
=
100
;
this
.
txtUserName
.
Name
=
"txtUserName"
;
this
.
txtUserName
.
Size
=
new
System
.
Drawing
.
Size
(
100
,
2
1
);
this
.
txtUserName
.
Size
=
new
System
.
Drawing
.
Size
(
100
,
2
6
);
this
.
txtUserName
.
TabIndex
=
4
;
//
// btnCancel
...
...
@@ -77,7 +77,7 @@
this
.
btnCancel
.
Anchor
=
System
.
Windows
.
Forms
.
AnchorStyles
.
None
;
this
.
btnCancel
.
Location
=
new
System
.
Drawing
.
Point
(
170
,
148
);
this
.
btnCancel
.
Name
=
"btnCancel"
;
this
.
btnCancel
.
Size
=
new
System
.
Drawing
.
Size
(
75
,
2
3
);
this
.
btnCancel
.
Size
=
new
System
.
Drawing
.
Size
(
84
,
3
3
);
this
.
btnCancel
.
TabIndex
=
3
;
this
.
btnCancel
.
Text
=
"取消(&C)"
;
this
.
btnCancel
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -88,7 +88,7 @@
this
.
btnLogin
.
Anchor
=
System
.
Windows
.
Forms
.
AnchorStyles
.
None
;
this
.
btnLogin
.
Location
=
new
System
.
Drawing
.
Point
(
72
,
148
);
this
.
btnLogin
.
Name
=
"btnLogin"
;
this
.
btnLogin
.
Size
=
new
System
.
Drawing
.
Size
(
75
,
2
3
);
this
.
btnLogin
.
Size
=
new
System
.
Drawing
.
Size
(
84
,
3
3
);
this
.
btnLogin
.
TabIndex
=
2
;
this
.
btnLogin
.
Text
=
"登录(&L)"
;
this
.
btnLogin
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -100,7 +100,7 @@
this
.
label2
.
AutoSize
=
true
;
this
.
label2
.
Location
=
new
System
.
Drawing
.
Point
(
84
,
78
);
this
.
label2
.
Name
=
"label2"
;
this
.
label2
.
Size
=
new
System
.
Drawing
.
Size
(
41
,
12
);
this
.
label2
.
Size
=
new
System
.
Drawing
.
Size
(
51
,
20
);
this
.
label2
.
TabIndex
=
1
;
this
.
label2
.
Text
=
"密码:"
;
//
...
...
@@ -110,13 +110,13 @@
this
.
label1
.
AutoSize
=
true
;
this
.
label1
.
Location
=
new
System
.
Drawing
.
Point
(
72
,
41
);
this
.
label1
.
Name
=
"label1"
;
this
.
label1
.
Size
=
new
System
.
Drawing
.
Size
(
53
,
12
);
this
.
label1
.
Size
=
new
System
.
Drawing
.
Size
(
65
,
20
);
this
.
label1
.
TabIndex
=
0
;
this
.
label1
.
Text
=
"用户名:"
;
//
// FrmLogin
//
this
.
AutoScaleDimensions
=
new
System
.
Drawing
.
SizeF
(
6F
,
12
F
);
this
.
AutoScaleDimensions
=
new
System
.
Drawing
.
SizeF
(
8F
,
20
F
);
this
.
AutoScaleMode
=
System
.
Windows
.
Forms
.
AutoScaleMode
.
Font
;
this
.
ClientSize
=
new
System
.
Drawing
.
Size
(
793
,
397
);
this
.
Controls
.
Add
(
this
.
panel1
);
...
...
source/ACSingleStore/FrmStoreBox.Designer.cs
查看文件 @
10be948
...
...
@@ -224,7 +224,7 @@
this
.
groupBox5
.
Controls
.
Add
(
this
.
label46
);
this
.
groupBox5
.
Controls
.
Add
(
this
.
cmbAxisList
);
this
.
groupBox5
.
Controls
.
Add
(
this
.
label49
);
this
.
groupBox5
.
Location
=
new
System
.
Drawing
.
Point
(
621
,
85
);
this
.
groupBox5
.
Location
=
new
System
.
Drawing
.
Point
(
621
,
71
);
this
.
groupBox5
.
Name
=
"groupBox5"
;
this
.
groupBox5
.
Size
=
new
System
.
Drawing
.
Size
(
653
,
203
);
this
.
groupBox5
.
TabIndex
=
216
;
...
...
@@ -244,9 +244,10 @@
// label2
//
this
.
label2
.
AutoSize
=
true
;
this
.
label2
.
Location
=
new
System
.
Drawing
.
Point
(
24
,
165
);
this
.
label2
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label2
.
Location
=
new
System
.
Drawing
.
Point
(
19
,
166
);
this
.
label2
.
Name
=
"label2"
;
this
.
label2
.
Size
=
new
System
.
Drawing
.
Size
(
6
5
,
12
);
this
.
label2
.
Size
=
new
System
.
Drawing
.
Size
(
6
8
,
17
);
this
.
label2
.
TabIndex
=
277
;
this
.
label2
.
Text
=
"原点方向:"
;
//
...
...
@@ -257,16 +258,16 @@
this
.
cmbAxisHomeType
.
Items
.
AddRange
(
new
object
[]
{
"正方向"
,
"负方向"
});
this
.
cmbAxisHomeType
.
Location
=
new
System
.
Drawing
.
Point
(
95
,
1
61
);
this
.
cmbAxisHomeType
.
Location
=
new
System
.
Drawing
.
Point
(
95
,
1
59
);
this
.
cmbAxisHomeType
.
Name
=
"cmbAxisHomeType"
;
this
.
cmbAxisHomeType
.
Size
=
new
System
.
Drawing
.
Size
(
88
,
2
0
);
this
.
cmbAxisHomeType
.
Size
=
new
System
.
Drawing
.
Size
(
88
,
2
8
);
this
.
cmbAxisHomeType
.
TabIndex
=
276
;
//
// 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
(
9
,
108
);
this
.
label7
.
Location
=
new
System
.
Drawing
.
Point
(
7
,
108
);
this
.
label7
.
Name
=
"label7"
;
this
.
label7
.
Size
=
new
System
.
Drawing
.
Size
(
80
,
17
);
this
.
label7
.
TabIndex
=
254
;
...
...
@@ -276,7 +277,7 @@
//
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
(
9
,
137
);
this
.
label8
.
Location
=
new
System
.
Drawing
.
Point
(
7
,
137
);
this
.
label8
.
Name
=
"label8"
;
this
.
label8
.
Size
=
new
System
.
Drawing
.
Size
(
80
,
17
);
this
.
label8
.
TabIndex
=
255
;
...
...
@@ -314,10 +315,10 @@
//
// lblCountPulse
//
this
.
lblCountPulse
.
Location
=
new
System
.
Drawing
.
Point
(
95
,
1
34
);
this
.
lblCountPulse
.
Location
=
new
System
.
Drawing
.
Point
(
95
,
1
28
);
this
.
lblCountPulse
.
Name
=
"lblCountPulse"
;
this
.
lblCountPulse
.
ReadOnly
=
true
;
this
.
lblCountPulse
.
Size
=
new
System
.
Drawing
.
Size
(
87
,
2
1
);
this
.
lblCountPulse
.
Size
=
new
System
.
Drawing
.
Size
(
87
,
2
6
);
this
.
lblCountPulse
.
TabIndex
=
38
;
//
// txtASpeed
...
...
@@ -333,14 +334,14 @@
this
.
txtASpeed
.
RightToLeft
=
System
.
Windows
.
Forms
.
RightToLeft
.
No
;
this
.
txtASpeed
.
Size
=
new
System
.
Drawing
.
Size
(
86
,
23
);
this
.
txtASpeed
.
TabIndex
=
251
;
this
.
txtASpeed
.
Text
=
"
100
0"
;
this
.
txtASpeed
.
Text
=
"
3
0"
;
//
// lblOutPulse
//
this
.
lblOutPulse
.
Location
=
new
System
.
Drawing
.
Point
(
95
,
105
);
this
.
lblOutPulse
.
Location
=
new
System
.
Drawing
.
Point
(
95
,
97
);
this
.
lblOutPulse
.
Name
=
"lblOutPulse"
;
this
.
lblOutPulse
.
ReadOnly
=
true
;
this
.
lblOutPulse
.
Size
=
new
System
.
Drawing
.
Size
(
87
,
2
1
);
this
.
lblOutPulse
.
Size
=
new
System
.
Drawing
.
Size
(
87
,
2
6
);
this
.
lblOutPulse
.
TabIndex
=
30
;
//
// label47
...
...
@@ -453,7 +454,7 @@
this
.
txtAPosition
.
RightToLeft
=
System
.
Windows
.
Forms
.
RightToLeft
.
No
;
this
.
txtAPosition
.
Size
=
new
System
.
Drawing
.
Size
(
86
,
23
);
this
.
txtAPosition
.
TabIndex
=
244
;
this
.
txtAPosition
.
Text
=
"
100
0"
;
this
.
txtAPosition
.
Text
=
"
3
0"
;
//
// label48
//
...
...
@@ -486,7 +487,7 @@
// txtAxisValue
//
this
.
txtAxisValue
.
Font
=
new
System
.
Drawing
.
Font
(
"宋体"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
txtAxisValue
.
Location
=
new
System
.
Drawing
.
Point
(
95
,
7
6
);
this
.
txtAxisValue
.
Location
=
new
System
.
Drawing
.
Point
(
95
,
7
1
);
this
.
txtAxisValue
.
MaxLength
=
10
;
this
.
txtAxisValue
.
Name
=
"txtAxisValue"
;
this
.
txtAxisValue
.
Size
=
new
System
.
Drawing
.
Size
(
87
,
21
);
...
...
@@ -496,7 +497,7 @@
// txtAxisDeviceName
//
this
.
txtAxisDeviceName
.
Font
=
new
System
.
Drawing
.
Font
(
"宋体"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
txtAxisDeviceName
.
Location
=
new
System
.
Drawing
.
Point
(
95
,
4
7
);
this
.
txtAxisDeviceName
.
Location
=
new
System
.
Drawing
.
Point
(
95
,
4
5
);
this
.
txtAxisDeviceName
.
MaxLength
=
10
;
this
.
txtAxisDeviceName
.
Name
=
"txtAxisDeviceName"
;
this
.
txtAxisDeviceName
.
Size
=
new
System
.
Drawing
.
Size
(
87
,
21
);
...
...
@@ -508,7 +509,7 @@
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
(
3
3
,
47
);
this
.
label45
.
Location
=
new
System
.
Drawing
.
Point
(
3
1
,
50
);
this
.
label45
.
Name
=
"label45"
;
this
.
label45
.
Size
=
new
System
.
Drawing
.
Size
(
56
,
17
);
this
.
label45
.
TabIndex
=
240
;
...
...
@@ -520,7 +521,7 @@
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
(
21
,
79
);
this
.
label46
.
Location
=
new
System
.
Drawing
.
Point
(
19
,
79
);
this
.
label46
.
Name
=
"label46"
;
this
.
label46
.
Size
=
new
System
.
Drawing
.
Size
(
68
,
17
);
this
.
label46
.
TabIndex
=
239
;
...
...
@@ -547,7 +548,7 @@
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
(
2
9
,
21
);
this
.
label49
.
Location
=
new
System
.
Drawing
.
Point
(
2
7
,
21
);
this
.
label49
.
Name
=
"label49"
;
this
.
label49
.
Size
=
new
System
.
Drawing
.
Size
(
60
,
17
);
this
.
label49
.
TabIndex
=
233
;
...
...
@@ -589,18 +590,18 @@
this
.
groupBox3
.
Controls
.
Add
(
this
.
label25
);
this
.
groupBox3
.
Controls
.
Add
(
this
.
comboBoxPortName
);
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
(
621
,
4
94
);
this
.
groupBox3
.
Location
=
new
System
.
Drawing
.
Point
(
621
,
4
77
);
this
.
groupBox3
.
Name
=
"groupBox3"
;
this
.
groupBox3
.
Size
=
new
System
.
Drawing
.
Size
(
653
,
1
49
);
this
.
groupBox3
.
Size
=
new
System
.
Drawing
.
Size
(
653
,
1
66
);
this
.
groupBox3
.
TabIndex
=
255
;
this
.
groupBox3
.
TabStop
=
false
;
this
.
groupBox3
.
Text
=
"硕科步进电机驱动器"
;
//
// btnRelMove
//
this
.
btnRelMove
.
Location
=
new
System
.
Drawing
.
Point
(
308
,
5
1
);
this
.
btnRelMove
.
Location
=
new
System
.
Drawing
.
Point
(
308
,
5
0
);
this
.
btnRelMove
.
Name
=
"btnRelMove"
;
this
.
btnRelMove
.
Size
=
new
System
.
Drawing
.
Size
(
105
,
25
);
this
.
btnRelMove
.
Size
=
new
System
.
Drawing
.
Size
(
105
,
30
);
this
.
btnRelMove
.
TabIndex
=
96
;
this
.
btnRelMove
.
Text
=
"相对运动"
;
this
.
btnRelMove
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -626,9 +627,9 @@
//
// btnGetPosition
//
this
.
btnGetPosition
.
Location
=
new
System
.
Drawing
.
Point
(
426
,
5
1
);
this
.
btnGetPosition
.
Location
=
new
System
.
Drawing
.
Point
(
426
,
5
0
);
this
.
btnGetPosition
.
Name
=
"btnGetPosition"
;
this
.
btnGetPosition
.
Size
=
new
System
.
Drawing
.
Size
(
105
,
25
);
this
.
btnGetPosition
.
Size
=
new
System
.
Drawing
.
Size
(
105
,
30
);
this
.
btnGetPosition
.
TabIndex
=
93
;
this
.
btnGetPosition
.
Text
=
"查询位置"
;
this
.
btnGetPosition
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -675,9 +676,9 @@
//
// btnVolMove
//
this
.
btnVolMove
.
Location
=
new
System
.
Drawing
.
Point
(
191
,
8
1
);
this
.
btnVolMove
.
Location
=
new
System
.
Drawing
.
Point
(
191
,
8
0
);
this
.
btnVolMove
.
Name
=
"btnVolMove"
;
this
.
btnVolMove
.
Size
=
new
System
.
Drawing
.
Size
(
105
,
25
);
this
.
btnVolMove
.
Size
=
new
System
.
Drawing
.
Size
(
105
,
30
);
this
.
btnVolMove
.
TabIndex
=
88
;
this
.
btnVolMove
.
Text
=
"匀速运动"
;
this
.
btnVolMove
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -685,9 +686,9 @@
//
// btnClose
//
this
.
btnClose
.
Location
=
new
System
.
Drawing
.
Point
(
426
,
1
9
);
this
.
btnClose
.
Location
=
new
System
.
Drawing
.
Point
(
426
,
1
8
);
this
.
btnClose
.
Name
=
"btnClose"
;
this
.
btnClose
.
Size
=
new
System
.
Drawing
.
Size
(
105
,
25
);
this
.
btnClose
.
Size
=
new
System
.
Drawing
.
Size
(
105
,
30
);
this
.
btnClose
.
TabIndex
=
87
;
this
.
btnClose
.
Text
=
"关闭串口"
;
this
.
btnClose
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -695,9 +696,9 @@
//
// btnOpen
//
this
.
btnOpen
.
Location
=
new
System
.
Drawing
.
Point
(
308
,
20
);
this
.
btnOpen
.
Location
=
new
System
.
Drawing
.
Point
(
308
,
19
);
this
.
btnOpen
.
Name
=
"btnOpen"
;
this
.
btnOpen
.
Size
=
new
System
.
Drawing
.
Size
(
105
,
25
);
this
.
btnOpen
.
Size
=
new
System
.
Drawing
.
Size
(
105
,
30
);
this
.
btnOpen
.
TabIndex
=
86
;
this
.
btnOpen
.
Text
=
"打开串口"
;
this
.
btnOpen
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -705,9 +706,9 @@
//
// btnStatusSearch
//
this
.
btnStatusSearch
.
Location
=
new
System
.
Drawing
.
Point
(
309
,
8
1
);
this
.
btnStatusSearch
.
Location
=
new
System
.
Drawing
.
Point
(
309
,
8
0
);
this
.
btnStatusSearch
.
Name
=
"btnStatusSearch"
;
this
.
btnStatusSearch
.
Size
=
new
System
.
Drawing
.
Size
(
105
,
25
);
this
.
btnStatusSearch
.
Size
=
new
System
.
Drawing
.
Size
(
105
,
30
);
this
.
btnStatusSearch
.
TabIndex
=
85
;
this
.
btnStatusSearch
.
Text
=
"查询运动状态"
;
this
.
btnStatusSearch
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -733,9 +734,9 @@
//
// btnHomeMove
//
this
.
btnHomeMove
.
Location
=
new
System
.
Drawing
.
Point
(
192
,
11
3
);
this
.
btnHomeMove
.
Location
=
new
System
.
Drawing
.
Point
(
192
,
11
2
);
this
.
btnHomeMove
.
Name
=
"btnHomeMove"
;
this
.
btnHomeMove
.
Size
=
new
System
.
Drawing
.
Size
(
105
,
25
);
this
.
btnHomeMove
.
Size
=
new
System
.
Drawing
.
Size
(
105
,
30
);
this
.
btnHomeMove
.
TabIndex
=
12
;
this
.
btnHomeMove
.
Text
=
"原点返回"
;
this
.
btnHomeMove
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -743,9 +744,9 @@
//
// btnClearPosition
//
this
.
btnClearPosition
.
Location
=
new
System
.
Drawing
.
Point
(
426
,
8
3
);
this
.
btnClearPosition
.
Location
=
new
System
.
Drawing
.
Point
(
426
,
8
2
);
this
.
btnClearPosition
.
Name
=
"btnClearPosition"
;
this
.
btnClearPosition
.
Size
=
new
System
.
Drawing
.
Size
(
105
,
25
);
this
.
btnClearPosition
.
Size
=
new
System
.
Drawing
.
Size
(
105
,
30
);
this
.
btnClearPosition
.
TabIndex
=
11
;
this
.
btnClearPosition
.
Text
=
"清理位置"
;
this
.
btnClearPosition
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -753,9 +754,9 @@
//
// btnStop
//
this
.
btnStop
.
Location
=
new
System
.
Drawing
.
Point
(
308
,
11
3
);
this
.
btnStop
.
Location
=
new
System
.
Drawing
.
Point
(
308
,
11
2
);
this
.
btnStop
.
Name
=
"btnStop"
;
this
.
btnStop
.
Size
=
new
System
.
Drawing
.
Size
(
105
,
2
4
);
this
.
btnStop
.
Size
=
new
System
.
Drawing
.
Size
(
105
,
2
9
);
this
.
btnStop
.
TabIndex
=
10
;
this
.
btnStop
.
Text
=
"紧急停止"
;
this
.
btnStop
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -763,9 +764,9 @@
//
// btnLineAbsMove
//
this
.
btnLineAbsMove
.
Location
=
new
System
.
Drawing
.
Point
(
192
,
5
1
);
this
.
btnLineAbsMove
.
Location
=
new
System
.
Drawing
.
Point
(
192
,
5
0
);
this
.
btnLineAbsMove
.
Name
=
"btnLineAbsMove"
;
this
.
btnLineAbsMove
.
Size
=
new
System
.
Drawing
.
Size
(
105
,
25
);
this
.
btnLineAbsMove
.
Size
=
new
System
.
Drawing
.
Size
(
105
,
30
);
this
.
btnLineAbsMove
.
TabIndex
=
9
;
this
.
btnLineAbsMove
.
Text
=
"绝对运动"
;
this
.
btnLineAbsMove
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -813,7 +814,7 @@
this
.
groupBox1
.
Controls
.
Add
(
this
.
label43
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
label42
);
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
(
621
,
2
97
);
this
.
groupBox1
.
Location
=
new
System
.
Drawing
.
Point
(
621
,
2
79
);
this
.
groupBox1
.
Name
=
"groupBox1"
;
this
.
groupBox1
.
Size
=
new
System
.
Drawing
.
Size
(
414
,
193
);
this
.
groupBox1
.
TabIndex
=
217
;
...
...
@@ -1094,9 +1095,10 @@
// label9
//
this
.
label9
.
AutoSize
=
true
;
this
.
label9
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label9
.
Location
=
new
System
.
Drawing
.
Point
(
28
,
70
);
this
.
label9
.
Name
=
"label9"
;
this
.
label9
.
Size
=
new
System
.
Drawing
.
Size
(
89
,
12
);
this
.
label9
.
Size
=
new
System
.
Drawing
.
Size
(
92
,
17
);
this
.
label9
.
TabIndex
=
220
;
this
.
label9
.
Text
=
"入库间隔仓位:"
;
//
...
...
@@ -1104,7 +1106,7 @@
//
this
.
txtJiange
.
Location
=
new
System
.
Drawing
.
Point
(
123
,
65
);
this
.
txtJiange
.
Name
=
"txtJiange"
;
this
.
txtJiange
.
Size
=
new
System
.
Drawing
.
Size
(
37
,
2
1
);
this
.
txtJiange
.
Size
=
new
System
.
Drawing
.
Size
(
37
,
2
6
);
this
.
txtJiange
.
TabIndex
=
221
;
this
.
txtJiange
.
Text
=
"3"
;
//
...
...
@@ -1866,14 +1868,14 @@
// 轴卡点动ToolStripMenuItem
//
this
.
轴卡点动
ToolStripMenuItem
.
Name
=
"轴卡点动ToolStripMenuItem"
;
this
.
轴卡点动
ToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
1
52
,
22
);
this
.
轴卡点动
ToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
1
24
,
22
);
this
.
轴卡点动
ToolStripMenuItem
.
Text
=
"轴卡点动"
;
this
.
轴卡点动
ToolStripMenuItem
.
Click
+=
new
System
.
EventHandler
(
this
.
轴卡点动
ToolStripMenuItem_Click
);
//
// 扫码测试ToolStripMenuItem
//
this
.
扫码测试
ToolStripMenuItem
.
Name
=
"扫码测试ToolStripMenuItem"
;
this
.
扫码测试
ToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
1
52
,
22
);
this
.
扫码测试
ToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
1
24
,
22
);
this
.
扫码测试
ToolStripMenuItem
.
Text
=
"扫码测试"
;
this
.
扫码测试
ToolStripMenuItem
.
Click
+=
new
System
.
EventHandler
(
this
.
扫码测试
ToolStripMenuItem_Click
);
//
...
...
@@ -1889,14 +1891,14 @@
// 开启DEBUGToolStripMenuItem
//
this
.
开启
DEBUGToolStripMenuItem
.
Name
=
"开启DEBUGToolStripMenuItem"
;
this
.
开启
DEBUGToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
1
5
2
,
22
);
this
.
开启
DEBUGToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
1
4
2
,
22
);
this
.
开启
DEBUGToolStripMenuItem
.
Text
=
"开启DEBUG"
;
this
.
开启
DEBUGToolStripMenuItem
.
Click
+=
new
System
.
EventHandler
(
this
.
开启
DEBUGToolStripMenuItem_Click
);
//
// 清理日志ToolStripMenuItem
//
this
.
清理日志
ToolStripMenuItem
.
Name
=
"清理日志ToolStripMenuItem"
;
this
.
清理日志
ToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
1
5
2
,
22
);
this
.
清理日志
ToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
1
4
2
,
22
);
this
.
清理日志
ToolStripMenuItem
.
Text
=
"清理日志"
;
this
.
清理日志
ToolStripMenuItem
.
Click
+=
new
System
.
EventHandler
(
this
.
清理日志
ToolStripMenuItem_Click
);
//
...
...
@@ -1905,7 +1907,7 @@
this
.
lblThisSta
.
AutoSize
=
true
;
this
.
lblThisSta
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Bold
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
lblThisSta
.
ForeColor
=
System
.
Drawing
.
Color
.
Red
;
this
.
lblThisSta
.
Location
=
new
System
.
Drawing
.
Point
(
621
,
4
7
);
this
.
lblThisSta
.
Location
=
new
System
.
Drawing
.
Point
(
621
,
4
1
);
this
.
lblThisSta
.
Name
=
"lblThisSta"
;
this
.
lblThisSta
.
Size
=
new
System
.
Drawing
.
Size
(
65
,
19
);
this
.
lblThisSta
.
TabIndex
=
216
;
...
...
@@ -1920,7 +1922,7 @@
this
.
groupBox4
.
Controls
.
Add
(
this
.
txtPosition3
);
this
.
groupBox4
.
Controls
.
Add
(
this
.
txtPosition2
);
this
.
groupBox4
.
Controls
.
Add
(
this
.
txtPosition1
);
this
.
groupBox4
.
Location
=
new
System
.
Drawing
.
Point
(
1042
,
2
97
);
this
.
groupBox4
.
Location
=
new
System
.
Drawing
.
Point
(
1042
,
2
79
);
this
.
groupBox4
.
Name
=
"groupBox4"
;
this
.
groupBox4
.
Size
=
new
System
.
Drawing
.
Size
(
232
,
193
);
this
.
groupBox4
.
TabIndex
=
267
;
...
...
@@ -1942,7 +1944,7 @@
this
.
chb3
.
AutoSize
=
true
;
this
.
chb3
.
Location
=
new
System
.
Drawing
.
Point
(
21
,
104
);
this
.
chb3
.
Name
=
"chb3"
;
this
.
chb3
.
Size
=
new
System
.
Drawing
.
Size
(
72
,
16
);
this
.
chb3
.
Size
=
new
System
.
Drawing
.
Size
(
84
,
24
);
this
.
chb3
.
TabIndex
=
271
;
this
.
chb3
.
Text
=
"轴三位置"
;
this
.
chb3
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -1952,7 +1954,7 @@
this
.
chb2
.
AutoSize
=
true
;
this
.
chb2
.
Location
=
new
System
.
Drawing
.
Point
(
21
,
68
);
this
.
chb2
.
Name
=
"chb2"
;
this
.
chb2
.
Size
=
new
System
.
Drawing
.
Size
(
72
,
16
);
this
.
chb2
.
Size
=
new
System
.
Drawing
.
Size
(
84
,
24
);
this
.
chb2
.
TabIndex
=
270
;
this
.
chb2
.
Text
=
"轴二位置"
;
this
.
chb2
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -1962,7 +1964,7 @@
this
.
chb1
.
AutoSize
=
true
;
this
.
chb1
.
Location
=
new
System
.
Drawing
.
Point
(
21
,
32
);
this
.
chb1
.
Name
=
"chb1"
;
this
.
chb1
.
Size
=
new
System
.
Drawing
.
Size
(
72
,
16
);
this
.
chb1
.
Size
=
new
System
.
Drawing
.
Size
(
84
,
24
);
this
.
chb1
.
TabIndex
=
269
;
this
.
chb1
.
Text
=
"轴一位置"
;
this
.
chb1
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -1971,21 +1973,21 @@
//
this
.
txtPosition3
.
Location
=
new
System
.
Drawing
.
Point
(
109
,
99
);
this
.
txtPosition3
.
Name
=
"txtPosition3"
;
this
.
txtPosition3
.
Size
=
new
System
.
Drawing
.
Size
(
87
,
2
1
);
this
.
txtPosition3
.
Size
=
new
System
.
Drawing
.
Size
(
87
,
2
6
);
this
.
txtPosition3
.
TabIndex
=
268
;
//
// txtPosition2
//
this
.
txtPosition2
.
Location
=
new
System
.
Drawing
.
Point
(
109
,
64
);
this
.
txtPosition2
.
Name
=
"txtPosition2"
;
this
.
txtPosition2
.
Size
=
new
System
.
Drawing
.
Size
(
87
,
2
1
);
this
.
txtPosition2
.
Size
=
new
System
.
Drawing
.
Size
(
87
,
2
6
);
this
.
txtPosition2
.
TabIndex
=
266
;
//
// txtPosition1
//
this
.
txtPosition1
.
Location
=
new
System
.
Drawing
.
Point
(
109
,
27
);
this
.
txtPosition1
.
Name
=
"txtPosition1"
;
this
.
txtPosition1
.
Size
=
new
System
.
Drawing
.
Size
(
87
,
2
1
);
this
.
txtPosition1
.
Size
=
new
System
.
Drawing
.
Size
(
87
,
2
6
);
this
.
txtPosition1
.
TabIndex
=
265
;
//
// FrmStoreBox
...
...
source/ACSingleStore/FrmStoreBox.cs
查看文件 @
10be948
...
...
@@ -50,12 +50,12 @@ namespace OnlineStore.ACSingleStore
cmbAxisList
.
ValueMember
=
"Explain"
;
cmbAxisList
.
SelectedIndex
=
0
;
KTKSAStorePos
tion
ktkPosition
=
null
;
ACStorePosi
tion
ktkPosition
=
null
;
if
(
store
.
PositionNumList
.
Count
>
0
)
{
cmbPosition
.
DataSource
=
store
.
PositionNumList
;
cmbPosition
.
SelectedIndex
=
0
;
ktkPosition
=
CSVPositionReader
<
KTKSAStorePos
tion
>.
GetPositon
(
cmbPosition
.
Text
);
ktkPosition
=
CSVPositionReader
<
ACStorePosi
tion
>.
GetPositon
(
cmbPosition
.
Text
);
//store.PositionNumList = positionNumList;
}
...
...
@@ -249,10 +249,10 @@ namespace OnlineStore.ACSingleStore
}
lblWarnMsg
.
Text
=
store
.
WarnMsg
;
if
(
store
.
KNDIOValue
(
Store_
IO_Type
.
Left_Door_LimitSingle
).
Equals
(
IO_VALUE
.
LOW
))
if
(
store
.
KNDIOValue
(
IO_Type
.
Left_Door_LimitSingle
).
Equals
(
IO_VALUE
.
LOW
))
{
lblWarnMsg
.
Text
=
lblWarnMsg
.
Text
+
" 左侧门未关"
;
}
if
(
store
.
KNDIOValue
(
Store_
IO_Type
.
Right_Door_LimitSingle
).
Equals
(
IO_VALUE
.
LOW
))
}
if
(
store
.
KNDIOValue
(
IO_Type
.
Right_Door_LimitSingle
).
Equals
(
IO_VALUE
.
LOW
))
{
lblWarnMsg
.
Text
=
lblWarnMsg
.
Text
+
" 右侧门未关"
;
}
...
...
@@ -403,7 +403,7 @@ namespace OnlineStore.ACSingleStore
if
(
cmbPosition
.
SelectedIndex
>=
0
)
{
string
selectPositionNum
=
cmbPosition
.
Text
;
KTKSAStorePostion
ktkPosition
=
CSVPositionReader
<
KTKSAStorePos
tion
>.
GetPositon
(
selectPositionNum
);
ACStorePosition
ktkPosition
=
CSVPositionReader
<
ACStorePosi
tion
>.
GetPositon
(
selectPositionNum
);
if
(
ktkPosition
!=
null
)
{
...
...
@@ -514,7 +514,7 @@ namespace OnlineStore.ACSingleStore
{
//料仓格子位置保存
string
selectPositionNum
=
cmbPosition
.
Text
;
KTKSAStorePostion
ktkPosition
=
CSVPositionReader
<
KTKSAStorePos
tion
>.
GetPositon
(
selectPositionNum
);
ACStorePosition
ktkPosition
=
CSVPositionReader
<
ACStorePosi
tion
>.
GetPositon
(
selectPositionNum
);
if
(
ktkPosition
!=
null
)
{
ktkPosition
.
MiddleAxis_Position_P2
=
FormUtil
.
GetIntValue
(
txtMiddleP2
);
...
...
@@ -542,7 +542,7 @@ namespace OnlineStore.ACSingleStore
{
positionConfigFile
=
appPath
+
ConfigAppSettings
.
GetValue
(
Setting_Init
.
Store_Position_Config
,
"_"
+
store
.
StoreID
.
ToString
());
}
bool
result
=
CSVPositionReader
<
KTKSAStorePos
tion
>.
SavePostion
(
positionConfigFile
,
ktkPosition
);
bool
result
=
CSVPositionReader
<
ACStorePosi
tion
>.
SavePostion
(
positionConfigFile
,
ktkPosition
);
if
(!
result
)
{
MessageBox
.
Show
(
"保存位置失败!"
);
...
...
@@ -891,7 +891,7 @@ namespace OnlineStore.ACSingleStore
private
void
料仓运转
ONToolStripMenuItem_Click
(
object
sender
,
EventArgs
e
)
{
//store.RunAxis();
store
.
KNDIOMove
(
Store_
IO_Type
.
Run_Sign
,
IO_VALUE
.
HIGH
);
store
.
KNDIOMove
(
IO_Type
.
Run_Sign
,
IO_VALUE
.
HIGH
);
Thread
.
Sleep
(
1000
);
//打开三个轴
foreach
(
ConfigMoveAxis
SlvAddr
in
store
.
moveAxisList
)
...
...
@@ -925,8 +925,8 @@ namespace OnlineStore.ACSingleStore
private
void
打开舱门
ToolStripMenuItem_Click
(
object
sender
,
EventArgs
e
)
{
store
.
KNDIOMove
(
Store_
IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
);
store
.
KNDIOMove
(
Store_
IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
);
store
.
KNDIOMove
(
IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
);
store
.
KNDIOMove
(
IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
);
}
private
void
料仓运转
OFFToolStripMenuItem_Click
(
object
sender
,
EventArgs
e
)
...
...
@@ -936,13 +936,13 @@ namespace OnlineStore.ACSingleStore
ACServerManager
.
ServoOff
(
SlvAddr
.
DeviceName
,
SlvAddr
.
GetAxisValue
());
}
store
.
KNDIOMove
(
Store_
IO_Type
.
Run_Sign
,
IO_VALUE
.
LOW
);
store
.
KNDIOMove
(
IO_Type
.
Run_Sign
,
IO_VALUE
.
LOW
);
}
private
void
关闭仓门
ToolStripMenuItem_Click
(
object
sender
,
EventArgs
e
)
{
store
.
KNDIOMove
(
Store_
IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
);
store
.
KNDIOMove
(
Store_
IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
);
store
.
KNDIOMove
(
IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
);
store
.
KNDIOMove
(
IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
);
}
private
void
回待机点
ToolStripMenuItem_Click
(
object
sender
,
EventArgs
e
)
...
...
source/ACSingleStore/FrmStoreBox.resx
查看文件 @
10be948
...
...
@@ -124,7 +124,7 @@
<value>107, 16</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>
9
5</value>
<value>
2
5</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">
...
...
source/DeviceLibrary/DeviceLibrary.csproj
查看文件 @
10be948
...
...
@@ -69,6 +69,7 @@
<Compile Include="PanasonicServo\ACCMDManager.cs" />
<Compile Include="PanasonicServo\ACServerManager.cs" />
<Compile Include="PanasonicServo\ACServerManager_Partial.cs" />
<Compile Include="store\LineMoveP.cs" />
<Compile Include="store\LineAlarm.cs">
<SubType>Code</SubType>
</Compile>
...
...
@@ -79,7 +80,6 @@
<Compile Include="ShuoKe\ShuoKeControls.cs" />
<Compile Include="store\model\AxisAlarmInfo.cs" />
<Compile Include="store\model\FixtureCodeInfo.cs" />
<Compile Include="store\KTKLinePosition.cs" />
<Compile Include="store\KTK_DeviceBase.cs" />
<Compile Include="store\InOrOutStoreParam.cs">
<SubType>Code</SubType>
...
...
@@ -88,7 +88,6 @@
<Compile Include="store\model\StoreMoveInfo.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="store\StoreBase.cs" />
<Compile Include="store\KTK_Store.cs" />
<Compile Include="store\StoreManager.cs">
<SubType>Code</SubType>
...
...
@@ -126,20 +125,6 @@
<None Include="StoreConfig\AC\StoreConfig.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="StoreConfig\SA\linePositions.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="StoreConfig\SA\StoreConfig.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<None Include="StoreConfig\SA-boshi\linePositions.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="StoreConfig\SA-boshi\StoreConfig.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
...
...
source/DeviceLibrary/PanasonicServo/ACServerManager.cs
查看文件 @
10be948
...
...
@@ -251,16 +251,16 @@ namespace OnlineStore.DeviceLibrary
date
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_WriteRegisters
,
"4638"
,
string
.
Format
(
"{0:X2}"
,
Math
.
Abs
(
speed
/
2
)),
1
);
SendData
(
portName
,
date
);
Thread
.
Sleep
(
100
);
if
(
speed
>
0
)
{
byte
[]
data
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_WriteRegisters
,
ACCMDManager
.
BlockNo
,
ACCMDManager
.
Block_HomeMove0
,
2
);
SendData
(
portName
,
data
);
}
else
{
//
if (speed > 0)
//
{
//
byte[] data = ACCMDManager.GetWriteData(slvAddr, ACCMDManager.CMD_WriteRegisters, ACCMDManager.BlockNo, ACCMDManager.Block_HomeMove0, 2);
//
SendData(portName, data);
//
}
//
else
//
{
byte
[]
data
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_WriteRegisters
,
ACCMDManager
.
BlockNo
,
ACCMDManager
.
Block_HomeMove1
,
2
);
SendData
(
portName
,
data
);
}
//
}
Thread
.
Sleep
(
100
);
OpenSTB
(
portName
,
slvAddr
);
...
...
source/DeviceLibrary/StoreConfig/AC/StoreConfig.csv
查看文件 @
10be948
...
...
@@ -28,48 +28,46 @@ AXIS,(轴一)旋转轴,Middle_Axis,1,COM1,0,,,,
AXIS,(轴二)升降轴轴,UpDown_Axis,1,COM2,0,,,,
AXIS,(轴三)进出轴,InOut_Axis,1,COM3,0,,,,
PRO,温湿度传感器地址,Temperate_ServerAddress,192.168.0.14,,,,,,
PRO,升降轴 进料口取料点 P1,UpDownAxis_DoorOPosition_P1,-886
000
,,,,,,
PRO,升降轴 进料口出料前点 P2,UpDownAxis_DoorIPosition_P2,-900
000
,,,,,,
PRO,升降轴 进料口取料缓冲点 P7,UpDownAxis_DoorOBPosition_P7,-900
000
,,,,,,
PRO,升降轴 进料口出料缓冲点 P8,UpDownAxis_DoorIBPosition_P8,-886
000
,,,,,,
,进出轴进料口取料点 P2,InOutAxis_DoorPosition_P2,9
000
,,,,,,
PRO,旋转轴(轴1)P1 待机原位点,MiddleAxis_P1_Position,219
200
,,,,,,
PRO,升降轴 进料口取料点 P1,UpDownAxis_DoorOPosition_P1,-886,,,,,,
PRO,升降轴 进料口出料前点 P2,UpDownAxis_DoorIPosition_P2,-900,,,,,,
PRO,升降轴 进料口取料缓冲点 P7,UpDownAxis_DoorOBPosition_P7,-900,,,,,,
PRO,升降轴 进料口出料缓冲点 P8,UpDownAxis_DoorIBPosition_P8,-886,,,,,,
,进出轴进料口取料点 P2,InOutAxis_DoorPosition_P2,9,,,,,,
PRO,旋转轴(轴1)P1 待机原位点,MiddleAxis_P1_Position,219,,,,,,
PRO,进出轴(轴3)P1待机原位点,InOutAxis_P1_Position,0,,,,,,
PRO,押金轴(轴4)P1待机原位点,CompressAxis_P1_Position,360
000
,,,,,,
PRO,押金轴(轴4)P1待机原位点,CompressAxis_P1_Position,360,,,,,,
,,,,,,,,,
PRO,是否使用压紧轴(1=使用),IsHasCompress_Axis,1,,,,, ,
PRO,设备是否处于调试状态(1=调试,0=正常),IsInDebug,0,,,,,,
PRO,气压检测IO关闭需要持续的时间,AirCheckSeconds,3,,,,,,
PRO,扫码枪IP,Scanner_Ip,192.168.0.24,,,,,,
PRO,扫码枪端口号,Scanner_Port,51236,,,,,,
PRO,温湿度传感器地址,TemperateServer_Port,9001,,,,,,
PRO,预警温度,WarnTemperate,80,,,,,,
PRO,预警湿度,WarnHumidity,80,,,,,,
PRO,(轴一)旋转轴原点目标速度,MiddleAxis_TargetSpeed,
900
0,,,,,,
PRO,(轴一)旋转轴原点开始速度,MiddleAxis_StartSpeed,30
00
,,,,,,
PRO,(轴一)旋转轴加速时间,MiddleAxis_AccelTime,
50
0,,,,,,
PRO,(轴一)旋转轴减速时间,MiddleAxis_DecelTime,
50
0,,,,,,
PRO,(轴二)升降轴轴原点目标速度,UpdownAxis_TargetSpeed,
1200
0,,,,,,
PRO,(轴二)升降轴轴原点开始速度,UpdownAxis_StartSpeed,
450
0,,,,,,
PRO,(轴二)升降轴轴加速时间,UpdownAxis_AccelTime,
20
0,,,,,,
PRO,(轴二)升降轴轴减速时间,UpdownAxis_DecelTime,
20
0,,,,,,
PRO,(轴三)进出轴原点目标速度,InoutAxis_TargetSpeed,
360
0,,,,,,
PRO,(轴三)进出轴原点开始速度,InoutAxis_StartSpeed,
120
0,,,,,,
PRO,(轴三)进出轴加速时间,InoutAxis_AccelTime,
20
0,,,,,,
PRO,(轴三)进出轴减速时间,InoutAxis_DecelTime,
20
0,,,,,,
PRO,升降轴(轴2)P1速度,UpDownAxis_P1_Speed,130
000
,,,,,,
PRO,升降轴(轴2)P2速度,UpDownAxis_P2_Speed,130
000
,,,,,,
PRO,升降轴(轴2)P3速度,UpDownAxis_P3_Speed,130
000
,,,,,,
PRO,升降轴(轴2)P4速度,UpDownAxis_P4_Speed,20
000
,,,,,,
PRO,升降轴(轴2)P5速度,UpDownAxis_P5_Speed,130
000
,,,,,,
PRO,升降轴(轴2)P6速度,UpDownAxis_P6_Speed,20
000
,,,,,,
PRO,升降轴(轴2)P7速度,UpDownAxis_P7_Speed,20
000
,,,,,,
PRO,升降轴(轴2)P8速度,UpDownAxis_P8_Speed,20
000
,,,,,,
PRO,旋转轴(轴1)P1速度,MiddleAxis_P1_Speed,100
000
,,,,,,
PRO,旋转轴(轴1)P2速度,MiddleAxis_P2_Speed,100
000
,,,,,,
PRO,进出轴(轴3)P1速度,InOutAxis_P1_Speed,20
000
,,,,,,
PRO,进出轴(轴3)P2速度,InOutAxis_P2_Speed,20
000
,,,,,,
PRO,进出轴(轴3)P3速度,InOutAxis_P3_Speed,20
000
,,,,,,
PRO,(轴一)旋转轴原点目标速度,MiddleAxis_TargetSpeed,
3
0,,,,,,
PRO,(轴一)旋转轴原点开始速度,MiddleAxis_StartSpeed,30,,,,,,
PRO,(轴一)旋转轴加速时间,MiddleAxis_AccelTime,
1
0,,,,,,
PRO,(轴一)旋转轴减速时间,MiddleAxis_DecelTime,
1
0,,,,,,
PRO,(轴二)升降轴轴原点目标速度,UpdownAxis_TargetSpeed,
5
0,,,,,,
PRO,(轴二)升降轴轴原点开始速度,UpdownAxis_StartSpeed,
5
0,,,,,,
PRO,(轴二)升降轴轴加速时间,UpdownAxis_AccelTime,
1
0,,,,,,
PRO,(轴二)升降轴轴减速时间,UpdownAxis_DecelTime,
1
0,,,,,,
PRO,(轴三)进出轴原点目标速度,InoutAxis_TargetSpeed,
5
0,,,,,,
PRO,(轴三)进出轴原点开始速度,InoutAxis_StartSpeed,
5
0,,,,,,
PRO,(轴三)进出轴加速时间,InoutAxis_AccelTime,
1
0,,,,,,
PRO,(轴三)进出轴减速时间,InoutAxis_DecelTime,
1
0,,,,,,
PRO,升降轴(轴2)P1速度,UpDownAxis_P1_Speed,130,,,,,,
PRO,升降轴(轴2)P2速度,UpDownAxis_P2_Speed,130,,,,,,
PRO,升降轴(轴2)P3速度,UpDownAxis_P3_Speed,130,,,,,,
PRO,升降轴(轴2)P4速度,UpDownAxis_P4_Speed,20,,,,,,
PRO,升降轴(轴2)P5速度,UpDownAxis_P5_Speed,130,,,,,,
PRO,升降轴(轴2)P6速度,UpDownAxis_P6_Speed,20,,,,,,
PRO,升降轴(轴2)P7速度,UpDownAxis_P7_Speed,20,,,,,,
PRO,升降轴(轴2)P8速度,UpDownAxis_P8_Speed,20,,,,,,
PRO,旋转轴(轴1)P1速度,MiddleAxis_P1_Speed,100,,,,,,
PRO,旋转轴(轴1)P2速度,MiddleAxis_P2_Speed,100,,,,,,
PRO,进出轴(轴3)P1速度,InOutAxis_P1_Speed,20,,,,,,
PRO,进出轴(轴3)P2速度,InOutAxis_P2_Speed,20,,,,,,
PRO,进出轴(轴3)P3速度,InOutAxis_P3_Speed,20,,,,,,
PRO,(轴一)旋转轴停止时可误差的脉冲数的最小值,MiddleAxis_ErrorCountMin,10,,,,,,
PRO,(轴二)升降轴轴停止时可误差的脉冲数的最小值,UpdownAxis_ErrorCountMin,10,,,,,,
PRO,(轴三)进出轴停止时可误差的脉冲数的最小值,InoutAxis_ErrorCountMin,10,,,,,,
...
...
source/DeviceLibrary/StoreConfig/SA-boshi/Data Matrix ECC 200.dcm
deleted
100644 → 0
查看文件 @
e1c28be
此文件类型无法预览
source/DeviceLibrary/StoreConfig/SA-boshi/QR Code.dcm
deleted
100644 → 0
查看文件 @
e1c28be
此文件类型无法预览
source/DeviceLibrary/StoreConfig/SA-boshi/StoreConfig.csv
deleted
100644 → 0
查看文件 @
e1c28be
类型,说明,名称,属性值,设备名称,默认值,描述,电器定义,代码定义,SlaveID
DI,急停,SuddenStop_BTN,200,192.168.0.10,0,急停,X01,DI-01,0
DI,复位,Reset_BTN,201,192.168.0.10,0,复位,X02,DI-02,0
DI,自动,AutoRun_Single,202,192.168.0.10,0,自动,X03,DI-03,0
DI,气压检测,Airpressure_Check,203,192.168.0.10,0,气压检测,X04,DI-04,0
DI,料盘检测1,TrayCheck_1,204,192.168.0.10,0,料盘检测1,X05,DI-05,0
,料盘检测2,TrayCheck_2,205,192.168.0.10,0,料盘检测2,X06,DI-06,0
DI,进料口门上升端,Door_Up,206,192.168.0.10,0,进料口门上升端,X07,DI-07,0
DI,进料口门下降端,Door_Down,207,192.168.0.10,0,进料口门下降端,X08,DI-08,0
DI,定位气缸上升端,LocationCylinder_Up,208,192.168.0.10,0,定位气缸上升端,X09,DI-09,0
DI,定位气缸下降端,LocationCylinder_Down,209,192.168.0.10,0,定位气缸下降端,X10,DI-10,0
DI,左侧门限位,Left_Door_LimitSingle,210,192.168.0.10,0,左侧门限位,X11,DI-11,0
DI,右侧门限位,Right_Door_LimitSingle,211,192.168.0.10,0,右侧门限位,X12,DI-12,0
DI,料盘检测3,TrayCheck_3,212,192.168.0.10,0,料盘检测3,X13,DI-13,0
,料盘检测4,TrayCheck_4,213,192.168.0.10,0,料盘检测4,X14,DI-14,0
DO,自动指示灯,AutoRun_HddLed,100,192.168.0.10,0,自动指示灯,Y01,DO-01,0
DO,故障指示灯,Alarm_HddLed,101,192.168.0.10,0,故障指示灯,Y02,DO-02,0
DO,待机指示灯,RunSign_HddLed,102,192.168.0.10,0,待机指示灯,Y03,DO-03,0
DO,吹气SOL ON,StartOrStopBlow,103,192.168.0.10,0,吹气SOL ON,Y04,DO-04,0
DO,料仓运转ON,Run_Sign,104,192.168.0.10,0,料仓运转ON,Y05,DO-05,0
DO,上下轴刹车,Axis_Brake,105,192.168.0.10,0,上下轴刹车,Y06,DO-06,0
DO,进料口门上升SOL,Door_Up,106,192.168.0.10,0,进料口门上升SOL,Y07,DO-07,0
DO,进料口门下降SOL,Door_Down,107,192.168.0.10,0,进料口门下降SOL,Y08,DO-08,0
DO,定位上升SOL,LocationCylinder_Up,108,192.168.0.10,0,定位上升SOL,Y09,DO-09,0
DO,定位下降SOL,LocationCylinder_Down,109,192.168.0.10,0,定位下降SOL,Y10,DO-10,0
DO,摄像机光源,CameraLight_Power,110,192.168.0.10,0,摄像机光源,Y11,DO-11,0
AXIS,(轴一)旋转轴,Middle_Axis,1,SMC000,0,,,,
AXIS,(轴二)升降轴轴,UpDown_Axis,2,SMC000,0,,,,
AXIS,(轴三)进出轴,InOut_Axis,3,SMC000,0,,,,
PRO,温湿度传感器地址,Temperate_ServerAddress,192.168.0.14#192.168.0.15#192.168.0.16,,,,,,
PRO,升降轴 进料口取料点 P1,UpDownAxis_DoorOPosition_P1,-484800,,,,,,
PRO,升降轴 进料口出料前点 P2,UpDownAxis_DoorIPosition_P2,-498000,,,,,,
PRO,升降轴 进料口取料缓冲点 P7,UpDownAxis_DoorOBPosition_P7,-498000,,,,,,
PRO,升降轴 进料口出料缓冲点 P8,UpDownAxis_DoorIBPosition_P8,-484800,,,,,,
,进出轴进料口取料点 P2,InOutAxis_DoorPosition_P2,9000,,,,,,
PRO,旋转轴(轴1)P1 待机原位点,MiddleAxis_P1_Position,229190,,,,,,
PRO,进出轴(轴3)P1待机原位点,InOutAxis_P1_Position,0,,,,,,
PRO,押金轴(轴4)P1待机原位点,CompressAxis_P1_Position,-30000,,,,,,
,,,,,,,,,
PRO,是否使用压紧轴(1=使用),IsHasCompress_Axis,1,,,,, ,
PRO,设备是否处于调试状态(1=调试,0=正常),IsInDebug,0,,,,,,
PRO,气压检测IO关闭需要持续的时间,AirCheckSeconds,3,,,,,,
PRO,扫码枪IP,Scanner_Ip,192.168.0.24,,,,,,
PRO,扫码枪端口号,Scanner_Port,51236,,,,,,
PRO,温湿度传感器服务器端口号,TemperateServer_Port,9001,,,,,,
PRO,预警温度,WarnTemperate,80,,,,,,
PRO,预警湿度,WarnHumidity,80,,,,,,
PRO,(轴一)旋转轴原点目标速度,MiddleAxis_TargetSpeed,9000,,,,,,
PRO,(轴一)旋转轴原点开始速度,MiddleAxis_StartSpeed,3000,,,,,,
PRO,(轴一)旋转轴加速时间,MiddleAxis_AccelTime,500,,,,,,
PRO,(轴一)旋转轴减速时间,MiddleAxis_DecelTime,500,,,,,,
PRO,(轴二)升降轴轴原点目标速度,UpdownAxis_TargetSpeed,12000,,,,,,
PRO,(轴二)升降轴轴原点开始速度,UpdownAxis_StartSpeed,4500,,,,,,
PRO,(轴二)升降轴轴加速时间,UpdownAxis_AccelTime,200,,,,,,
PRO,(轴二)升降轴轴减速时间,UpdownAxis_DecelTime,200,,,,,,
PRO,(轴三)进出轴原点目标速度,InoutAxis_TargetSpeed,1800,,,,,,
PRO,(轴三)进出轴原点开始速度,InoutAxis_StartSpeed,600,,,,,,
PRO,(轴三)进出轴加速时间,InoutAxis_AccelTime,10,,,,,,
PRO,(轴三)进出轴减速时间,InoutAxis_DecelTime,10,,,,,,
PRO,升降轴(轴2)P1速度,UpDownAxis_P1_Speed,80000,,,,,,
PRO,升降轴(轴2)P2速度,UpDownAxis_P2_Speed,80000,,,,,,
PRO,升降轴(轴2)P3速度,UpDownAxis_P3_Speed,80000,,,,,,
PRO,升降轴(轴2)P4速度,UpDownAxis_P4_Speed,8000,,,,,,
PRO,升降轴(轴2)P5速度,UpDownAxis_P5_Speed,80000,,,,,,
PRO,升降轴(轴2)P6速度,UpDownAxis_P6_Speed,8000,,,,,,
PRO,升降轴(轴2)P7速度,UpDownAxis_P7_Speed,8000,,,,,,
PRO,升降轴(轴2)P8速度,UpDownAxis_P8_Speed,8000,,,,,,
PRO,旋转轴(轴1)P1速度,MiddleAxis_P1_Speed,80000,,,,,,
PRO,旋转轴(轴1)P2速度,MiddleAxis_P2_Speed,80000,,,,,,
PRO,进出轴(轴3)P1速度,InOutAxis_P1_Speed,20000,,,,,,
PRO,进出轴(轴3)P2速度,InOutAxis_P2_Speed,20000,,,,,,
PRO,进出轴(轴3)P3速度,InOutAxis_P3_Speed,20000,,,,,,
PRO,(轴一)旋转轴停止时可误差的脉冲数的最小值,MiddleAxis_ErrorCountMin,10,,,,,,
PRO,(轴二)升降轴轴停止时可误差的脉冲数的最小值,UpdownAxis_ErrorCountMin,10,,,,,,
PRO,(轴三)进出轴停止时可误差的脉冲数的最小值,InoutAxis_ErrorCountMin,10,,,,,,
PRO,(轴一)旋转轴停止时可误差的脉冲数的最大值,MiddleAxis_ErrorCountMax,5000,,,,,,
PRO,(轴二)升降轴轴停止时可误差的脉冲数的最大值,UpdownAxis_ErrorCountMax,5000,,,,,,
PRO,(轴三)进出轴停止时可误差的脉冲数的最大值,InoutAxis_ErrorCountMax,5000,,,,,,
PRO,出入库多少次,会自动重置旋转轴,Box_ResetMCount,1000,,,,,,
PRO,出入库多少次,会自动重置所有轴操作,Box_ResetACount,100,,,,,,
PRO,(轴一)旋转轴速度倍率,MiddleAxis_ResolveSpeed,10,,,,,,
PRO,(轴二)升降轴速度倍率,UpdownAxis_ResolveSpeed,20,,,,,,
PRO,(轴三)进出轴速度倍率,InoutAxis_ResolveSpeed,10,,,,,,
PRO,IO信号超时时间(毫秒),IOSingle_TimerOut,10000,,,,,,
PRO,是否使用料盘检测信号,IsUse_Tray_Check,0,,,,,,
,,,,,,,,,
PRO,硕科步进电机(压紧轴)控制端口号,CompressAxis_PortName,COM4,,,,,,
PRO,硕科步进电机(压紧轴)控制波特率,CompressAxis_PortBaudrate,9600,,,,,,
PRO,硕科步进电机(压紧轴)控制奇偶校验,CompressAxis_PortParity,0,,,,,,
PRO,硕科步进电机(压紧轴)控制停止位,CompressAxis_StopBits,1,,,,,,
PRO,硕科步进电机(压紧轴)控制初速度,CompressAxis_StartSpeed,15000,,,,,,
PRO,硕科步进电机(压紧轴)控制最大速度,CompressAxis_MaxSpeed,50000,,,,,,
PRO,硕科步进电机(压紧轴)控制末速度,CompressAxis_EndSpeed,30000,,,,,,
PRO,硕科步进电机(压紧轴)控制加速度,CompressAxis_AddSpeed,15000,,,,,,
PRO,硕科步进电机(压紧轴)控制减速度,CompressAxis_DelSpeed,15000,,,,,,
PRO,硕科步进电机(压紧轴)控制归零速度(原点返回速度),CompressAxis_HomeSpeed,15000,,,,,,
PRO,硕科步进电机轴地址(压紧轴),CompressAxis_Slv,1,,,,,,
,,,,,,,,,
PRO,(轴一)旋转轴最小限位,MiddleAxis_PositionMin,0,,,,,,
PRO,(轴二)升降轴最小限位,UpdownAxis_PositionMin,0,,,,,,
PRO,(轴三)进出轴最小限位,InoutAxis_PositionMin,0,,,,,,
PRO,(轴一)旋转轴最大限位,MiddleAxis_PositionMax,0,,,,,,
PRO,(轴二)升降轴最大限位,UpdownAxis_PositionMax,0,,,,,,
PRO,(轴三)进出轴最大限位,InoutAxis_PositionMax,0,,,,,,
PRO,扫码枪类型:0=默认扫码枪;1=摄像机识别,Scanner_Type,1,,,,,,
PRO,需要吹气的湿度(湿度标准),Max_Humidity,10,,,,,,
PRO,每次吹气的时间(分钟),BlowAir_Time,10,,,,,,
PRO,两次吹气间隔(分钟),BlowAir_Interval,10,,,,,,
source/DeviceLibrary/StoreConfig/SA-boshi/linePositions.csv
deleted
100644 → 0
查看文件 @
e1c28be
位置,优先级,高度,宽度,料仓ID,中轴位置P2,升降轴库位出料前点P5,升降轴库位出料缓冲点P6,升降轴库位入料前点P3,升降轴库位入料缓冲点P4,进出轴库位点取料点P3,压紧轴压紧点P2,压紧轴压紧前点P3,进出轴进料口取料点P2,升降轴进料口出料前点P2,升降轴进料口取料缓冲点P7
1#SA1_1_2_2:1,149,65,325,1,228600,-828700,-840700,-840700,-828700,94000,-92000,-20000,97000,-494500,-494500
1#SA1_1_2_2:2,149,65,325,1,228600,-828700,-840700,-840700,-828700,94000,-92000,-20000,97000,-494500,-494500
1#SA1_1_2_2:3,149,65,325,1,228600,-828700,-840700,-840700,-828700,94000,-92000,-20000,97000,-494500,-494500
1#SA1_1_2_2:4,149,65,325,1,228600,-828700,-840700,-840700,-828700,94000,-92000,-20000,97000,-494500,-494500
,,,,,,,,,,,,,,,
1#SA1_1_2_3:1,148,65,325,1,228600,-884900,-894900,-894900,-884900,94000,-92000,-20000,97000,-494500,-494500
1#SA1_1_2_3:2,148,65,325,1,228600,-884900,-894900,-894900,-884900,94000,-92000,-20000,97000,-494500,-494500
1#SA1_1_2_3:3,148,65,325,1,228600,-884900,-894900,-894900,-884900,94000,-92000,-20000,97000,-494500,-494500
1#SA1_1_2_3:4,148,65,325,1,228600,-884900,-894900,-894900,-884900,94000,-92000,-20000,97000,-494500,-494500
,,,,,,,,,,,,,,,
1#SA1_1_2_4:1,147,65,325,1,228600,-939100,-949100,-949100,-939100,94000,-92000,-20000,97000,-494500,-494500
1#SA1_1_2_4:2,147,65,325,1,228600,-939100,-949100,-949100,-939100,94000,-92000,-20000,97000,-494500,-494500
1#SA1_1_2_4:3,147,65,325,1,228600,-939100,-949100,-949100,-939100,94000,-92000,-20000,97000,-494500,-494500
1#SA1_1_2_4:4,147,65,325,1,228600,-939100,-949100,-949100,-939100,94000,-92000,-20000,97000,-494500,-494500
,,,,,,,,,,,,,,,
1#SA1_1_2_5:1,146,65,325,1,228600,-993300,-1003300,-1003300,-993300,94000,-92000,-20000,97000,-494500,-494500
1#SA1_1_2_5:2,146,65,325,1,228600,-993300,-1003300,-1003300,-993300,94000,-92000,-20000,97000,-494500,-494500
1#SA1_1_2_5:3,146,65,325,1,228600,-993300,-1003300,-1003300,-993300,94000,-92000,-20000,97000,-494500,-494500
1#SA1_1_2_5:4,146,65,325,1,228600,-993300,-1003300,-1003300,-993300,94000,-92000,-20000,97000,-494500,-494500
,,,,,,,,,,,,,,,
1#SA1_1_2_6:1,145,65,325,1,228600,-1047500,-1057500,-1057500,-1047500,94000,-92000,-20000,97000,-494500,-494500
1#SA1_1_2_6:2,145,65,325,1,228600,-1047500,-1057500,-1057500,-1047500,94000,-92000,-20000,97000,-494500,-494500
1#SA1_1_2_6:3,145,65,325,1,228600,-1047500,-1057500,-1057500,-1047500,94000,-92000,-20000,97000,-494500,-494500
1#SA1_1_2_6:4,145,65,325,1,228600,-1047500,-1057500,-1057500,-1047500,94000,-92000,-20000,97000,-494500,-494500
,,,,,,,,,,,,,,,
1#SA1_1_2_7:1,144,65,325,1,228600,-1101700,-1111700,-1111700,-1101700,94000,-92000,-20000,97000,-494500,-494500
1#SA1_1_2_7:2,144,65,325,1,228600,-1101700,-1111700,-1111700,-1101700,94000,-92000,-20000,97000,-494500,-494500
1#SA1_1_2_7:3,144,65,325,1,228600,-1101700,-1111700,-1111700,-1101700,94000,-92000,-20000,97000,-494500,-494500
1#SA1_1_2_7:4,144,65,325,1,228600,-1101700,-1111700,-1111700,-1101700,94000,-92000,-20000,97000,-494500,-494500
,,,,,,,,,,,,,,,
1#SA1_1_2_8:1,143,65,325,1,228600,-1155900,-1165900,-1165900,-1155900,94000,-92000,-20000,97000,-494500,-494500
1#SA1_1_2_8:2,143,65,325,1,228600,-1155900,-1165900,-1165900,-1155900,94000,-92000,-20000,97000,-494500,-494500
1#SA1_1_2_8:3,143,65,325,1,228600,-1155900,-1165900,-1165900,-1155900,94000,-92000,-20000,97000,-494500,-494500
1#SA1_1_2_8:4,143,65,325,1,228600,-1155900,-1165900,-1165900,-1155900,94000,-92000,-20000,97000,-494500,-494500
,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,
1#SA1_2_1_1:1,137,45,420,1,113900,-7000,-23000,-23000,-7000,90000,-175000,-100000,97000,-494500,-494500
1#SA1_2_1_2:1,138,45,420,1,113900,-52900,-68900,-68900,-52900,90000,-175000,-100000,97000,-494500,-494500
1#SA1_2_1_3:1,139,45,420,1,113900,-98700,-114700,-114700,-98700,90000,-175000,-100000,97000,-494500,-494500
1#SA1_2_1_4:1,140,45,420,1,113900,-144200,-160200,-160200,-144200,90000,-175000,-100000,97000,-494500,-494500
1#SA1_2_1_5:1,141,45,420,1,113900,-189700,-205700,-205700,-189700,90000,-175000,-100000,97000,-494500,-494500
1#SA1_2_1_6:1,142,45,420,1,113900,-235200,-251200,-251200,-235200,90000,-175000,-100000,97000,-494500,-494500
1#SA1_2_1_7:1,143,45,420,1,113900,-280700,-296700,-296700,-280700,90000,-175000,-100000,97000,-494500,-494500
1#SA1_2_1_8:1,144,45,420,1,113900,-326200,-342200,-342200,-326200,90000,-175000,-100000,97000,-494500,-494500
1#SA1_2_1_9:1,145,45,420,1,113900,-371700,-387700,-387700,-371700,90000,-175000,-100000,97000,-494500,-494500
1#SA1_2_1_10:1,146,45,420,1,113900,-417200,-433200,-433200,-417200,90000,-175000,-100000,97000,-494500,-494500
1#SA1_2_1_11:1,147,45,420,1,113900,-462700,-478700,-478700,-462700,90000,-175000,-100000,97000,-494500,-494500
1#SA1_2_1_12:1,148,45,420,1,113900,-508200,-524200,-524200,-508200,90000,-175000,-100000,97000,-494500,-494500
1#SA1_2_1_13:1,149,45,420,1,113900,-553700,-569700,-569700,-553700,90000,-175000,-100000,97000,-494500,-494500
,,,,,,,,,,,,,,,
1#SA1_2_2_1:1,150,45,420,1,113900,-598200,-614200,-614200,-598200,90000,-175000,-100000,97000,-494500,-494500
1#SA1_2_2_2:1,149,45,420,1,113900,-643700,-659700,-659700,-643700,90000,-175000,-100000,97000,-494500,-494500
1#SA1_2_2_3:1,148,45,420,1,113900,-689200,-705200,-705200,-689200,90000,-175000,-100000,97000,-494500,-494500
1#SA1_2_2_4:1,147,45,420,1,113900,-734700,-750700,-750700,-734700,90000,-175000,-100000,97000,-494500,-494500
1#SA1_2_2_5:1,146,45,420,1,113900,-780200,-796200,-796200,-780200,90000,-175000,-100000,97000,-494500,-494500
1#SA1_2_2_6:1,145,45,420,1,113900,-825700,-841700,-841700,-825700,90000,-175000,-100000,97000,-494500,-494500
1#SA1_2_2_7:1,144,45,420,1,113900,-871200,-887200,-887200,-871200,90000,-175000,-100000,97000,-494500,-494500
1#SA1_2_2_8:1,143,45,420,1,113900,-916700,-932700,-932700,-916700,90000,-175000,-100000,97000,-494500,-494500
1#SA1_2_2_9:1,142,45,420,1,113900,-962200,-978200,-978200,-962200,90000,-175000,-100000,97000,-494500,-494500
1#SA1_2_2_10:1,141,45,420,1,113900,-1007700,-1023700,-1023700,-1007700,90000,-175000,-100000,97000,-494500,-494500
1#SA1_2_2_11:1,140,45,420,1,113900,-1053200,-1069200,-1069200,-1053200,90000,-175000,-100000,97000,-494500,-494500
1#SA1_2_2_12:1,139,45,420,1,113900,-1098700,-1114700,-1114700,-1098700,90000,-175000,-100000,97000,-494500,-494500
1#SA1_2_2_13:1,138,45,420,1,113900,-1144200,-1160200,-1160200,-1144200,90000,-175000,-100000,97000,-494500,-494500
,,,,,,,,,,,,,,,
1#SA1_3_1_1:1,137,45,420,1,-1320,-7000,-23000,-23000,-7000,90000,-175000,-100000,97000,-494500,-494500
1#SA1_3_1_2:1,138,45,420,1,-1320,-52900,-68900,-68900,-52900,90000,-175000,-100000,97000,-494500,-494500
1#SA1_3_1_3:1,139,45,420,1,-1320,-98700,-114700,-114700,-98700,90000,-175000,-100000,97000,-494500,-494500
1#SA1_3_1_4:1,140,45,420,1,-1320,-144200,-160200,-160200,-144200,90000,-175000,-100000,97000,-494500,-494500
1#SA1_3_1_5:1,141,45,420,1,-1320,-189700,-205700,-205700,-189700,90000,-175000,-100000,97000,-494500,-494500
1#SA1_3_1_6:1,142,45,420,1,-1320,-235200,-251200,-251200,-235200,90000,-175000,-100000,97000,-494500,-494500
1#SA1_3_1_7:1,143,45,420,1,-1320,-280700,-296700,-296700,-280700,90000,-175000,-100000,97000,-494500,-494500
1#SA1_3_1_8:1,144,45,420,1,-1320,-326200,-342200,-342200,-326200,90000,-175000,-100000,97000,-494500,-494500
1#SA1_3_1_9:1,145,45,420,1,-1320,-371700,-387700,-387700,-371700,90000,-175000,-100000,97000,-494500,-494500
1#SA1_3_1_10:1,146,45,420,1,-1320,-417200,-433200,-433200,-417200,90000,-175000,-100000,97000,-494500,-494500
1#SA1_3_1_11:1,147,45,420,1,-1320,-462700,-478700,-478700,-462700,90000,-175000,-100000,97000,-494500,-494500
1#SA1_3_1_12:1,148,45,420,1,-1320,-508200,-524200,-524200,-508200,90000,-175000,-100000,97000,-494500,-494500
1#SA1_3_1_13:1,149,45,420,1,-1320,-553700,-569700,-569700,-553700,90000,-175000,-100000,97000,-494500,-494500
,,,,,,,,,,,,,,,
1#SA1_3_2_1:1,150,65,325,1,-1320,-611300,-621300,-621300,-611300,95000,-92000,-20000,97000,-494500,-494500
1#SA1_3_2_1:2,150,65,325,1,-1320,-611300,-621300,-621300,-611300,95000,-92000,-20000,97000,-494500,-494500
1#SA1_3_2_1:3,150,65,325,1,-1320,-611300,-621300,-621300,-611300,95000,-92000,-20000,97000,-494500,-494500
1#SA1_3_2_1:4,150,65,325,1,-1320,-611300,-621300,-621300,-611300,95000,-92000,-20000,97000,-494500,-494500
,,,,,,,,,,,,,,,
1#SA1_3_2_2:1,149,65,325,1,-1320,-666000,-676000,-676000,-666000,95000,-92000,-20000,97000,-494500,-494500
1#SA1_3_2_2:2,149,65,325,1,-1320,-666000,-676000,-676000,-666000,95000,-92000,-20000,97000,-494500,-494500
1#SA1_3_2_2:3,149,65,325,1,-1320,-666000,-676000,-676000,-666000,95000,-92000,-20000,97000,-494500,-494500
1#SA1_3_2_2:4,149,65,325,1,-1320,-666000,-676000,-676000,-666000,95000,-92000,-20000,97000,-494500,-494500
,,,,,,,,,,,,,,,
1#SA1_3_2_3:1,148,65,325,1,-1320,-719600,-729600,-729600,-719600,95000,-92000,-20000,97000,-494500,-494500
1#SA1_3_2_3:2,148,65,325,1,-1320,-719600,-729600,-729600,-719600,95000,-92000,-20000,97000,-494500,-494500
1#SA1_3_2_3:3,148,65,325,1,-1320,-719600,-729600,-729600,-719600,95000,-92000,-20000,97000,-494500,-494500
1#SA1_3_2_3:4,148,65,325,1,-1320,-719600,-729600,-729600,-719600,95000,-92000,-20000,97000,-494500,-494500
,,,,,,,,,,,,,,,
1#SA1_3_2_4:1,147,65,325,1,-1320,-773800,-783800,-783800,-773800,95000,-92000,-20000,97000,-494500,-494500
1#SA1_3_2_4:2,147,65,325,1,-1320,-773800,-783800,-783800,-773800,95000,-92000,-20000,97000,-494500,-494500
1#SA1_3_2_4:3,147,65,325,1,-1320,-773800,-783800,-783800,-773800,95000,-92000,-20000,97000,-494500,-494500
1#SA1_3_2_4:4,147,65,325,1,-1320,-773800,-783800,-783800,-773800,95000,-92000,-20000,97000,-494500,-494500
,,,,,,,,,,,,,,,
1#SA1_3_2_5:1,146,65,325,1,-1320,-828000,-838000,-838000,-828000,95000,-92000,-20000,97000,-494500,-494500
1#SA1_3_2_5:2,146,65,325,1,-1320,-828000,-838000,-838000,-828000,95000,-92000,-20000,97000,-494500,-494500
1#SA1_3_2_5:3,146,65,325,1,-1320,-828000,-838000,-838000,-828000,95000,-92000,-20000,97000,-494500,-494500
1#SA1_3_2_5:4,146,65,325,1,-1320,-828000,-838000,-838000,-828000,95000,-92000,-20000,97000,-494500,-494500
,,,,,,,,,,,,,,,
1#SA1_3_2_6:1,145,65,325,1,-1320,-882200,-892200,-892200,-882200,95000,-92000,-20000,97000,-494500,-494500
1#SA1_3_2_6:2,145,65,325,1,-1320,-882200,-892200,-892200,-882200,95000,-92000,-20000,97000,-494500,-494500
1#SA1_3_2_6:3,145,65,325,1,-1320,-882200,-892200,-892200,-882200,95000,-92000,-20000,97000,-494500,-494500
1#SA1_3_2_6:4,145,65,325,1,-1320,-882200,-892200,-892200,-882200,95000,-92000,-20000,97000,-494500,-494500
,,,,,,,,,,,,,,,
1#SA1_3_2_7:1,144,65,325,1,-1320,-936400,-946400,-946400,-936400,95000,-92000,-20000,97000,-494500,-494500
1#SA1_3_2_7:2,144,65,325,1,-1320,-936400,-946400,-946400,-936400,95000,-92000,-20000,97000,-494500,-494500
1#SA1_3_2_7:3,144,65,325,1,-1320,-936400,-946400,-946400,-936400,95000,-92000,-20000,97000,-494500,-494500
1#SA1_3_2_7:4,144,65,325,1,-1320,-936400,-946400,-946400,-936400,95000,-92000,-20000,97000,-494500,-494500
,,,,,,,,,,,,,,,
1#SA1_3_2_8:1,143,65,325,1,-1320,-990600,-1000600,-1000600,-990600,95000,-92000,-20000,97000,-494500,-494500
1#SA1_3_2_8:2,143,65,325,1,-1320,-990600,-1000600,-1000600,-990600,95000,-92000,-20000,97000,-494500,-494500
1#SA1_3_2_8:3,143,65,325,1,-1320,-990600,-1000600,-1000600,-990600,95000,-92000,-20000,97000,-494500,-494500
1#SA1_3_2_8:4,143,65,325,1,-1320,-990600,-1000600,-1000600,-990600,95000,-92000,-20000,97000,-494500,-494500
,,,,,,,,,,,,,,,
1#SA1_3_2_9:1,142,65,325,1,-1320,-1044800,-1054800,-1054800,-1044800,95000,-92000,-20000,97000,-494500,-494500
1#SA1_3_2_9:2,142,65,325,1,-1320,-1044800,-1054800,-1054800,-1044800,95000,-92000,-20000,97000,-494500,-494500
1#SA1_3_2_9:3,142,65,325,1,-1320,-1044800,-1054800,-1054800,-1044800,95000,-92000,-20000,97000,-494500,-494500
1#SA1_3_2_9:4,142,65,325,1,-1320,-1044800,-1054800,-1054800,-1044800,95000,-92000,-20000,97000,-494500,-494500
,,,,,,,,,,,,,,,
1#SA1_3_2_10:1,141,65,325,1,-1320,-1099000,-1109000,-1109000,-1099000,95000,-92000,-20000,97000,-494500,-494500
1#SA1_3_2_10:2,141,65,325,1,-1320,-1099000,-1109000,-1109000,-1099000,95000,-92000,-20000,97000,-494500,-494500
1#SA1_3_2_10:3,141,65,325,1,-1320,-1099000,-1109000,-1109000,-1099000,95000,-92000,-20000,97000,-494500,-494500
1#SA1_3_2_10:4,141,65,325,1,-1320,-1099000,-1109000,-1109000,-1099000,95000,-92000,-20000,97000,-494500,-494500
,,,,,,,,,,,,,,,
1#SA1_3_2_11:1,140,65,325,1,-1320,-1153200,-1163200,-1163200,-1153200,95000,-92000,-20000,97000,-494500,-494500
1#SA1_3_2_11:2,140,65,325,1,-1320,-1153200,-1163200,-1163200,-1153200,95000,-92000,-20000,97000,-494500,-494500
1#SA1_3_2_11:3,140,65,325,1,-1320,-1153200,-1163200,-1163200,-1153200,95000,-92000,-20000,97000,-494500,-494500
1#SA1_3_2_11:4,140,65,325,1,-1320,-1153200,-1163200,-1163200,-1153200,95000,-92000,-20000,97000,-494500,-494500
,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,
1#SA1_4_1_1:1,137,45,420,1,459800,-7000,-23000,-23000,-7000,90000,-175000,-100000,97000,-494500,-494500
1#SA1_4_1_2:1,138,45,420,1,459800,-52900,-68900,-68900,-52900,90000,-175000,-100000,97000,-494500,-494500
1#SA1_4_1_3:1,139,45,420,1,459800,-98700,-114700,-114700,-98700,90000,-175000,-100000,97000,-494500,-494500
1#SA1_4_1_4:1,140,45,420,1,459800,-144200,-160200,-160200,-144200,90000,-175000,-100000,97000,-494500,-494500
1#SA1_4_1_5:1,141,45,420,1,459800,-189700,-205700,-205700,-189700,90000,-175000,-100000,97000,-494500,-494500
1#SA1_4_1_6:1,142,45,420,1,459800,-235200,-251200,-251200,-235200,90000,-175000,-100000,97000,-494500,-494500
1#SA1_4_1_7:1,143,45,420,1,459800,-280700,-296700,-296700,-280700,90000,-175000,-100000,97000,-494500,-494500
1#SA1_4_1_8:1,144,45,420,1,459800,-326200,-342200,-342200,-326200,90000,-175000,-100000,97000,-494500,-494500
1#SA1_4_1_9:1,145,45,420,1,459800,-371700,-387700,-387700,-371700,90000,-175000,-100000,97000,-494500,-494500
1#SA1_4_1_10:1,146,45,420,1,459800,-417200,-433200,-433200,-417200,90000,-175000,-100000,97000,-494500,-494500
1#SA1_4_1_11:1,147,45,420,1,459800,-462700,-478700,-478700,-462700,90000,-175000,-100000,97000,-494500,-494500
1#SA1_4_1_12:1,148,45,420,1,459800,-508200,-524200,-524200,-508200,90000,-175000,-100000,97000,-494500,-494500
1#SA1_4_1_13:1,149,45,420,1,459800,-553700,-569700,-569700,-553700,90000,-175000,-100000,97000,-494500,-494500
,,,,,,,,,,,,,,,
1#SA1_4_2_1:1,150,65,325,1,459800,-611300,-621300,-621300,-611300,95000,-92000,-20000,97000,-494500,-494500
1#SA1_4_2_1:2,150,65,325,1,459800,-611300,-621300,-621300,-611300,95000,-92000,-20000,97000,-494500,-494500
1#SA1_4_2_1:3,150,65,325,1,459800,-611300,-621300,-621300,-611300,95000,-92000,-20000,97000,-494500,-494500
1#SA1_4_2_1:4,150,65,325,1,459800,-611300,-621300,-621300,-611300,95000,-92000,-20000,97000,-494500,-494500
,,,,,,,,,,,,,,,
1#SA1_4_2_2:1,149,65,325,1,459800,-666000,-676000,-676000,-666000,95000,-92000,-20000,97000,-494500,-494500
1#SA1_4_2_2:2,149,65,325,1,459800,-666000,-676000,-676000,-666000,95000,-92000,-20000,97000,-494500,-494500
1#SA1_4_2_2:3,149,65,325,1,459800,-666000,-676000,-676000,-666000,95000,-92000,-20000,97000,-494500,-494500
1#SA1_4_2_2:4,149,65,325,1,459800,-666000,-676000,-676000,-666000,95000,-92000,-20000,97000,-494500,-494500
,,,,,,,,,,,,,,,
1#SA1_4_2_3:1,148,65,325,1,459800,-719600,-729600,-729600,-719600,95000,-92000,-20000,97000,-494500,-494500
1#SA1_4_2_3:2,148,65,325,1,459800,-719600,-729600,-729600,-719600,95000,-92000,-20000,97000,-494500,-494500
1#SA1_4_2_3:3,148,65,325,1,459800,-719600,-729600,-729600,-719600,95000,-92000,-20000,97000,-494500,-494500
1#SA1_4_2_3:4,148,65,325,1,459800,-719600,-729600,-729600,-719600,95000,-92000,-20000,97000,-494500,-494500
,,,,,,,,,,,,,,,
1#SA1_4_2_4:1,147,65,325,1,459800,-773800,-783800,-783800,-773800,95000,-92000,-20000,97000,-494500,-494500
1#SA1_4_2_4:2,147,65,325,1,459800,-773800,-783800,-783800,-773800,95000,-92000,-20000,97000,-494500,-494500
1#SA1_4_2_4:3,147,65,325,1,459800,-773800,-783800,-783800,-773800,95000,-92000,-20000,97000,-494500,-494500
1#SA1_4_2_4:4,147,65,325,1,459800,-773800,-783800,-783800,-773800,95000,-92000,-20000,97000,-494500,-494500
,,,,,,,,,,,,,,,
1#SA1_4_2_5:1,146,65,325,1,459800,-828000,-838000,-838000,-828000,95000,-92000,-20000,97000,-494500,-494500
1#SA1_4_2_5:2,146,65,325,1,459800,-828000,-838000,-838000,-828000,95000,-92000,-20000,97000,-494500,-494500
1#SA1_4_2_5:3,146,65,325,1,459800,-828000,-838000,-838000,-828000,95000,-92000,-20000,97000,-494500,-494500
1#SA1_4_2_5:4,146,65,325,1,459800,-828000,-838000,-838000,-828000,95000,-92000,-20000,97000,-494500,-494500
,,,,,,,,,,,,,,,
1#SA1_4_2_6:1,145,65,325,1,459800,-882200,-892200,-892200,-882200,95000,-92000,-20000,97000,-494500,-494500
1#SA1_4_2_6:2,145,65,325,1,459800,-882200,-892200,-892200,-882200,95000,-92000,-20000,97000,-494500,-494500
1#SA1_4_2_6:3,145,65,325,1,459800,-882200,-892200,-892200,-882200,95000,-92000,-20000,97000,-494500,-494500
1#SA1_4_2_6:4,145,65,325,1,459800,-882200,-892200,-892200,-882200,95000,-92000,-20000,97000,-494500,-494500
,,,,,,,,,,,,,,,
1#SA1_4_2_7:1,144,65,325,1,459800,-936400,-946400,-946400,-936400,95000,-92000,-20000,97000,-494500,-494500
1#SA1_4_2_7:2,144,65,325,1,459800,-936400,-946400,-946400,-936400,95000,-92000,-20000,97000,-494500,-494500
1#SA1_4_2_7:3,144,65,325,1,459800,-936400,-946400,-946400,-936400,95000,-92000,-20000,97000,-494500,-494500
1#SA1_4_2_7:4,144,65,325,1,459800,-936400,-946400,-946400,-936400,95000,-92000,-20000,97000,-494500,-494500
,,,,,,,,,,,,,,,
1#SA1_4_2_8:1,143,65,325,1,459800,-990600,-1000600,-1000600,-990600,95000,-92000,-20000,97000,-494500,-494500
1#SA1_4_2_8:2,143,65,325,1,459800,-990600,-1000600,-1000600,-990600,95000,-92000,-20000,97000,-494500,-494500
1#SA1_4_2_8:3,143,65,325,1,459800,-990600,-1000600,-1000600,-990600,95000,-92000,-20000,97000,-494500,-494500
1#SA1_4_2_8:4,143,65,325,1,459800,-990600,-1000600,-1000600,-990600,95000,-92000,-20000,97000,-494500,-494500
,,,,,,,,,,,,,,,
1#SA1_4_2_9:1,142,65,325,1,459800,-1044800,-1054800,-1054800,-1044800,95000,-92000,-20000,97000,-494500,-494500
1#SA1_4_2_9:2,142,65,325,1,459800,-1044800,-1054800,-1054800,-1044800,95000,-92000,-20000,97000,-494500,-494500
1#SA1_4_2_9:3,142,65,325,1,459800,-1044800,-1054800,-1054800,-1044800,95000,-92000,-20000,97000,-494500,-494500
1#SA1_4_2_9:4,142,65,325,1,459800,-1044800,-1054800,-1054800,-1044800,95000,-92000,-20000,97000,-494500,-494500
,,,,,,,,,,,,,,,
1#SA1_4_2_10:1,141,65,325,1,459800,-1099000,-1109000,-1109000,-1099000,95000,-92000,-20000,97000,-494500,-494500
1#SA1_4_2_10:2,141,65,325,1,459800,-1099000,-1109000,-1109000,-1099000,95000,-92000,-20000,97000,-494500,-494500
1#SA1_4_2_10:3,141,65,325,1,459800,-1099000,-1109000,-1109000,-1099000,95000,-92000,-20000,97000,-494500,-494500
1#SA1_4_2_10:4,141,65,325,1,459800,-1099000,-1109000,-1109000,-1099000,95000,-92000,-20000,97000,-494500,-494500
,,,,,,,,,,,,,,,
1#SA1_4_2_11:1,140,65,325,1,459800,-1153200,-1163200,-1163200,-1153200,95000,-92000,-20000,97000,-494500,-494500
1#SA1_4_2_11:2,140,65,325,1,459800,-1153200,-1163200,-1163200,-1153200,95000,-92000,-20000,97000,-494500,-494500
1#SA1_4_2_11:3,140,65,325,1,459800,-1153200,-1163200,-1163200,-1153200,95000,-92000,-20000,97000,-494500,-494500
1#SA1_4_2_11:4,140,65,325,1,459800,-1153200,-1163200,-1163200,-1153200,95000,-92000,-20000,97000,-494500,-494500
,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,
1#SA1_5_1_1:1,137,45,420,1,345000,-7000,-23000,-23000,-7000,90000,-175000,-100000,97000,-494500,-494500
1#SA1_5_1_2:1,138,45,420,1,345000,-52900,-68900,-68900,-52900,90000,-175000,-100000,97000,-494500,-494500
1#SA1_5_1_3:1,139,45,420,1,345000,-98700,-114700,-114700,-98700,90000,-175000,-100000,97000,-494500,-494500
1#SA1_5_1_4:1,140,45,420,1,345000,-144200,-160200,-160200,-144200,90000,-175000,-100000,97000,-494500,-494500
1#SA1_5_1_5:1,141,45,420,1,345000,-189700,-205700,-205700,-189700,90000,-175000,-100000,97000,-494500,-494500
1#SA1_5_1_6:1,142,45,420,1,345000,-235200,-251200,-251200,-235200,90000,-175000,-100000,97000,-494500,-494500
1#SA1_5_1_7:1,143,45,420,1,345000,-280700,-296700,-296700,-280700,90000,-175000,-100000,97000,-494500,-494500
1#SA1_5_1_8:1,144,45,420,1,345000,-326200,-342200,-342200,-326200,90000,-175000,-100000,97000,-494500,-494500
1#SA1_5_1_9:1,145,45,420,1,345000,-371700,-387700,-387700,-371700,90000,-175000,-100000,97000,-494500,-494500
1#SA1_5_1_10:1,146,45,420,1,345000,-417200,-433200,-433200,-417200,90000,-175000,-100000,97000,-494500,-494500
1#SA1_5_1_11:1,147,45,420,1,345000,-462700,-478700,-478700,-462700,90000,-175000,-100000,97000,-494500,-494500
1#SA1_5_1_12:1,148,45,420,1,345000,-508200,-524200,-524200,-508200,90000,-175000,-100000,97000,-494500,-494500
1#SA1_5_1_13:1,149,45,420,1,345000,-553700,-569700,-569700,-553700,90000,-175000,-100000,97000,-494500,-494500
,,,,,,,,,,,,,,,
1#SA1_5_2_1:1,150,45,420,1,345000,-598200,-614200,-614200,-598200,90000,-175000,-100000,97000,-494500,-494500
1#SA1_5_2_2:1,149,45,420,1,345000,-643700,-659700,-659700,-643700,90000,-175000,-100000,97000,-494500,-494500
1#SA1_5_2_3:1,148,45,420,1,345000,-689200,-705200,-705200,-689200,90000,-175000,-100000,97000,-494500,-494500
1#SA1_5_2_4:1,147,45,420,1,345000,-734700,-750700,-750700,-734700,90000,-175000,-100000,97000,-494500,-494500
1#SA1_5_2_5:1,146,45,420,1,345000,-780200,-796200,-796200,-780200,90000,-175000,-100000,97000,-494500,-494500
1#SA1_5_2_6:1,145,45,420,1,345000,-825700,-841700,-841700,-825700,90000,-175000,-100000,97000,-494500,-494500
1#SA1_5_2_7:1,144,45,420,1,345000,-871200,-887200,-887200,-871200,90000,-175000,-100000,97000,-494500,-494500
1#SA1_5_2_8:1,143,45,420,1,345000,-916700,-932700,-932700,-916700,90000,-175000,-100000,97000,-494500,-494500
1#SA1_5_2_9:1,142,45,420,1,345000,-962200,-978200,-978200,-962200,90000,-175000,-100000,97000,-494500,-494500
1#SA1_5_2_10:1,141,45,420,1,345000,-1007700,-1023700,-1023700,-1007700,90000,-175000,-100000,97000,-494500,-494500
1#SA1_5_2_11:1,140,45,420,1,345000,-1053200,-1069200,-1069200,-1053200,90000,-175000,-100000,97000,-494500,-494500
1#SA1_5_2_12:1,139,45,420,1,345000,-1098700,-1114700,-1114700,-1098700,90000,-175000,-100000,97000,-494500,-494500
1#SA1_5_2_13:1,138,45,420,1,345000,-1144200,-1160200,-1160200,-1144200,90000,-175000,-100000,97000,-494500,-494500
source/DeviceLibrary/StoreConfig/SA/StoreConfig.csv
deleted
100644 → 0
查看文件 @
e1c28be
类型,说明,名称,属性值,设备名称,默认值,描述,电器定义,代码定义,SlaveID
DI,急停,SuddenStop_BTN,200,192.168.0.10,0,急停,X01,DI-01,0
DI,复位,Reset_BTN,201,192.168.0.10,0,复位,X02,DI-02,0
DI,自动,AutoRun_Single,202,192.168.0.10,0,自动,X03,DI-03,0
DI,气压检测,Airpressure_Check,203,192.168.0.10,0,气压检测,X04,DI-04,0
DI,料盘检测1,TrayCheck_1,204,192.168.0.10,0,料盘检测1,X05,DI-05,0
DI,料盘检测2,TrayCheck_2,205,192.168.0.10,0,料盘检测2,X06,DI-06,0
DI,进料口门上升端,Door_Up,206,192.168.0.10,0,进料口门上升端,X07,DI-07,0
DI,进料口门下降端,Door_Down,207,192.168.0.10,0,进料口门下降端,X08,DI-08,0
DI,定位气缸上升端,LocationCylinder_Up,208,192.168.0.10,0,定位气缸上升端,X09,DI-09,0
DI,定位气缸下降端,LocationCylinder_Down,209,192.168.0.10,0,定位气缸下降端,X10,DI-10,0
DI,左侧门限位,Left_Door_LimitSingle,210,192.168.0.10,0,左侧门限位,X11,DI-11,0
DI,右侧门限位,Right_Door_LimitSingle,211,192.168.0.10,0,右侧门限位,X12,DI-12,0
DI,料盘检测3,TrayCheck_3,212,192.168.0.10,0,料盘检测3,X13,DI-13,0
DI,料盘检测4,TrayCheck_4,213,192.168.0.10,0,料盘检测4,X14,DI-14,0
DO,自动指示灯,AutoRun_HddLed,100,192.168.0.10,0,自动指示灯,Y01,DO-01,0
DO,故障指示灯,Alarm_HddLed,101,192.168.0.10,0,故障指示灯,Y02,DO-02,0
DO,待机指示灯,RunSign_HddLed,102,192.168.0.10,0,待机指示灯,Y03,DO-03,0
DO,吹气SOL ON,StartOrStopBlow,103,192.168.0.10,0,吹气SOL ON,Y04,DO-04,0
DO,料仓运转ON,Run_Sign,104,192.168.0.10,0,料仓运转ON,Y05,DO-05,0
DO,上下轴刹车,Axis_Brake,105,192.168.0.10,0,上下轴刹车,Y06,DO-06,0
DO,进料口门上升SOL,Door_Up,106,192.168.0.10,0,进料口门上升SOL,Y07,DO-07,0
DO,进料口门下降SOL,Door_Down,107,192.168.0.10,0,进料口门下降SOL,Y08,DO-08,0
DO,定位上升SOL,LocationCylinder_Up,108,192.168.0.10,0,定位上升SOL,Y09,DO-09,0
DO,定位下降SOL,LocationCylinder_Down,109,192.168.0.10,0,定位下降SOL,Y10,DO-10,0
AXIS,(轴一)旋转轴,Middle_Axis,1,SMC000,0,,,,
AXIS,(轴二)升降轴轴,UpDown_Axis,2,SMC000,0,,,,
AXIS,(轴三)进出轴,InOut_Axis,3,SMC000,0,,,,
PRO,温湿度传感器地址,Temperate_ServerAddress,192.168.0.14,,,,,,
PRO,升降轴 进料口取料点 P1,UpDownAxis_DoorOPosition_P1,-886000,,,,,,
PRO,升降轴 进料口出料前点 P2,UpDownAxis_DoorIPosition_P2,-900000,,,,,,
PRO,升降轴 进料口取料缓冲点 P7,UpDownAxis_DoorOBPosition_P7,-900000,,,,,,
PRO,升降轴 进料口出料缓冲点 P8,UpDownAxis_DoorIBPosition_P8,-886000,,,,,,
,进出轴进料口取料点 P2,InOutAxis_DoorPosition_P2,9000,,,,,,
PRO,旋转轴(轴1)P1 待机原位点,MiddleAxis_P1_Position,219200,,,,,,
PRO,进出轴(轴3)P1待机原位点,InOutAxis_P1_Position,0,,,,,,
PRO,押金轴(轴4)P1待机原位点,CompressAxis_P1_Position,360000,,,,,,
,,,,,,,,,
PRO,是否使用压紧轴(1=使用),IsHasCompress_Axis,1,,,,, ,
PRO,设备是否处于调试状态(1=调试,0=正常),IsInDebug,0,,,,,,
PRO,气压检测IO关闭需要持续的时间,AirCheckSeconds,3,,,,,,
PRO,扫码枪IP,Scanner_Ip,192.168.0.24,,,,,,
PRO,扫码枪端口号,Scanner_Port,51236,,,,,,
PRO,温湿度传感器地址,TemperateServer_Port,9001,,,,,,
PRO,预警温度,WarnTemperate,80,,,,,,
PRO,预警湿度,WarnHumidity,80,,,,,,
PRO,(轴一)旋转轴原点目标速度,MiddleAxis_TargetSpeed,9000,,,,,,
PRO,(轴一)旋转轴原点开始速度,MiddleAxis_StartSpeed,3000,,,,,,
PRO,(轴一)旋转轴加速时间,MiddleAxis_AccelTime,500,,,,,,
PRO,(轴一)旋转轴减速时间,MiddleAxis_DecelTime,500,,,,,,
PRO,(轴二)升降轴轴原点目标速度,UpdownAxis_TargetSpeed,12000,,,,,,
PRO,(轴二)升降轴轴原点开始速度,UpdownAxis_StartSpeed,4500,,,,,,
PRO,(轴二)升降轴轴加速时间,UpdownAxis_AccelTime,200,,,,,,
PRO,(轴二)升降轴轴减速时间,UpdownAxis_DecelTime,200,,,,,,
PRO,(轴三)进出轴原点目标速度,InoutAxis_TargetSpeed,3600,,,,,,
PRO,(轴三)进出轴原点开始速度,InoutAxis_StartSpeed,1200,,,,,,
PRO,(轴三)进出轴加速时间,InoutAxis_AccelTime,200,,,,,,
PRO,(轴三)进出轴减速时间,InoutAxis_DecelTime,200,,,,,,
PRO,升降轴(轴2)P1速度,UpDownAxis_P1_Speed,130000,,,,,,
PRO,升降轴(轴2)P2速度,UpDownAxis_P2_Speed,130000,,,,,,
PRO,升降轴(轴2)P3速度,UpDownAxis_P3_Speed,130000,,,,,,
PRO,升降轴(轴2)P4速度,UpDownAxis_P4_Speed,20000,,,,,,
PRO,升降轴(轴2)P5速度,UpDownAxis_P5_Speed,130000,,,,,,
PRO,升降轴(轴2)P6速度,UpDownAxis_P6_Speed,20000,,,,,,
PRO,升降轴(轴2)P7速度,UpDownAxis_P7_Speed,20000,,,,,,
PRO,升降轴(轴2)P8速度,UpDownAxis_P8_Speed,20000,,,,,,
PRO,旋转轴(轴1)P1速度,MiddleAxis_P1_Speed,100000,,,,,,
PRO,旋转轴(轴1)P2速度,MiddleAxis_P2_Speed,100000,,,,,,
PRO,进出轴(轴3)P1速度,InOutAxis_P1_Speed,20000,,,,,,
PRO,进出轴(轴3)P2速度,InOutAxis_P2_Speed,20000,,,,,,
PRO,进出轴(轴3)P3速度,InOutAxis_P3_Speed,20000,,,,,,
PRO,(轴一)旋转轴停止时可误差的脉冲数的最小值,MiddleAxis_ErrorCountMin,10,,,,,,
PRO,(轴二)升降轴轴停止时可误差的脉冲数的最小值,UpdownAxis_ErrorCountMin,10,,,,,,
PRO,(轴三)进出轴停止时可误差的脉冲数的最小值,InoutAxis_ErrorCountMin,10,,,,,,
PRO,(轴一)旋转轴停止时可误差的脉冲数的最大值,MiddleAxis_ErrorCountMax,1000,,,,,,
PRO,(轴二)升降轴轴停止时可误差的脉冲数的最大值,UpdownAxis_ErrorCountMax,1000,,,,,,
PRO,(轴三)进出轴停止时可误差的脉冲数的最大值,InoutAxis_ErrorCountMax,1000,,,,,,
PRO,出入库多少次,会自动重置旋转轴,Box_ResetMCount,1000,,,,,,
PRO,出入库多少次,会自动重置所有轴操作,Box_ResetACount,100,,,,,,
PRO,(轴一)旋转轴速度倍率,MiddleAxis_ResolveSpeed,10,,,,,,
PRO,(轴二)升降轴速度倍率,UpdownAxis_ResolveSpeed,20,,,,,,
PRO,(轴三)进出轴速度倍率,InoutAxis_ResolveSpeed,10,,,,,,
PRO,IO信号超时时间(毫秒),IOSingle_TimerOut,10000,,,,,,
PRO,是否使用料盘检测信号,IsUse_Tray_Check,0,,,,,,
,,,,,,,,,
PRO,硕科步进电机(压紧轴)控制端口号,CompressAxis_PortName,COM3,,,,,,
PRO,硕科步进电机(压紧轴)控制波特率,CompressAxis_PortBaudrate,9600,,,,,,
PRO,硕科步进电机(压紧轴)控制奇偶校验,CompressAxis_PortParity,0,,,,,,
PRO,硕科步进电机(压紧轴)控制停止位,CompressAxis_StopBits,1,,,,,,
PRO,硕科步进电机(压紧轴)控制初速度,CompressAxis_StartSpeed,50000,,,,,,
PRO,硕科步进电机(压紧轴)控制最大速度,CompressAxis_MaxSpeed,200000,,,,,,
PRO,硕科步进电机(压紧轴)控制末速度,CompressAxis_EndSpeed,70000,,,,,,
PRO,硕科步进电机(压紧轴)控制加速度,CompressAxis_AddSpeed,50000,,,,,,
PRO,硕科步进电机(压紧轴)控制减速度,CompressAxis_DelSpeed,50000,,,,,,
PRO,硕科步进电机(压紧轴)控制归零速度(原点返回速度),CompressAxis_HomeSpeed,50000,,,,,,
PRO,硕科步进电机轴地址(压紧轴),CompressAxis_Slv,1,,,,,,
,,,,,,,,,
PRO,(轴一)旋转轴最小限位,MiddleAxis_PositionMin,0,,,,,,
PRO,(轴二)升降轴最小限位,UpdownAxis_PositionMin,0,,,,,,
PRO,(轴三)进出轴最小限位,InoutAxis_PositionMin,0,,,,,,
PRO,(轴一)旋转轴最大限位,MiddleAxis_PositionMax,0,,,,,,
PRO,(轴二)升降轴最大限位,UpdownAxis_PositionMax,0,,,,,,
PRO,(轴三)进出轴最大限位,InoutAxis_PositionMax,0,,,,,,
source/DeviceLibrary/StoreConfig/SA/linePositions.csv
deleted
100644 → 0
查看文件 @
e1c28be
位置,优先级,高度,宽度,料仓ID,中轴位置P2,升降轴库位出料前点P5,升降轴库位出料缓冲点P6,升降轴库位入料前点P3,升降轴库位入料缓冲点P4,进出轴库位点取料点P3,压紧轴压紧点P2,压紧轴压紧前点P3,进出轴进料口取料点P2
1#SA1_1_1_1,,,,,,,,,,,,,
1#SA1_1_1_2,,,,,,,,,,,,,
1#SA1_1_1_3,,,,,,,,,,,,,
1#SA1_1_1_4,,,,,,,,,,,,,
1#SA1_1_1_5,,,,,,,,,,,,,
1#SA1_1_1_6,,,,,,,,,,,,,
1#SA1_1_1_7,,,,,,,,,,,,,
1#SA1_1_1_8,,,,,,,,,,,,,
1#SA1_1_1_9,,,,,,,,,,,,,
1#SA1_1_1_10,,,,,,,,,,,,,
1#SA1_1_2_1,10,12,7,1,219400,-1216750,-1230750,-1230750,-1216750,46000,210000,360000,52217
1#SA1_1_2_2,10,12,7,1,219400,-1267400,-1281400,-1281400,-1267400,46000,210000,360000,52217
1#SA1_1_2_3,10,12,7,1,219400,-1312550,-1326550,-1326550,-1312550,46000,210000,360000,52217
1#SA1_1_2_4,10,12,7,1,219400,-1356000,-1370000,-1370000,-1356000,46000,210000,360000,52217
1#SA1_1_2_5,10,12,7,1,219400,-1399850,-1413850,-1413850,-1399850,46000,210000,360000,52217
1#SA1_1_2_6,10,12,7,1,219400,-1443400,-1457400,-1457400,-1443400,46000,210000,360000,52217
1#SA1_1_2_7,10,12,7,1,219400,-1486950,-1500950,-1500950,-1486950,46000,210000,360000,52217
1#SA1_1_2_8,10,12,7,1,219400,-1530500,-1544500,-1544500,-1530500,46000,210000,360000,52217
1#SA1_1_2_9,10,12,7,1,219400,-1574050,-1588050,-1588050,-1574050,46000,210000,360000,52217
1#SA1_1_2_10,10,12,7,1,219400,-1617600,-1631600,-1631600,-1617600,46000,210000,360000,52217
1#SA1_1_2_11,10,12,7,1,219400,-1661150,-1675150,-1675150,-1661150,46000,210000,360000,52217
1#SA1_1_2_12,10,12,7,1,219400,-1704700,-1718700,-1718700,-1704700,46000,210000,360000,52217
1#SA1_1_2_13,10,12,7,1,219400,-1748250,-1762250,-1762250,-1748250,46000,210000,360000,52217
1#SA1_1_2_14,10,12,7,1,219400,-1791800,-1805800,-1805800,-1791800,46000,210000,360000,52217
1#SA1_1_2_15,10,12,7,1,219400,-1835350,-1849350,-1849350,-1835350,46000,210000,360000,52217
1#SA1_1_2_16,10,12,7,1,219400,-1878900,-1892900,-1892900,-1878900,46000,210000,360000,52217
1#SA1_1_2_17,10,12,7,1,219400,-1922450,-1936450,-1936450,-1922450,46000,210000,360000,52217
1#SA1_1_2_18,10,12,7,1,219400,-1966000,-1980000,-1980000,-1966000,46000,210000,360000,52217
1#SA1_1_2_19,10,12,7,1,219400,-2009550,-2023550,-2023550,-2009550,46000,210000,360000,52217
1#SA1_1_2_20,10,12,7,1,219400,-2053100,-2067100,-2067100,-2053100,46000,210000,360000,52217
1#SA1_1_2_21,10,12,7,1,219400,-2096650,-2110650,-2110650,-2096650,46000,210000,360000,52217
1#SA1_1_2_22,10,12,7,1,219400,-2140200,-2154200,-2154200,-2140200,46000,210000,360000,52217
1#SA1_2_1_1,10,12,7,1,1000,,,,,46000,210000,360000,52217
1#SA1_2_1_2,10,12,7,1,1000,,,,,46000,210000,360000,52217
1#SA1_2_1_3,10,12,7,1,1000,,,,,46000,210000,360000,52217
1#SA1_2_1_4,10,12,7,1,1000,,,,,46000,210000,360000,52217
1#SA1_2_1_5,10,12,7,1,1000,,,,,46000,210000,360000,52217
1#SA1_2_1_6,10,12,7,1,1000,,,,,46000,210000,360000,52217
1#SA1_2_1_7,10,12,7,1,1000,,,,,46000,210000,360000,52217
1#SA1_2_1_8,10,12,7,1,1000,,,,,46000,210000,360000,52217
1#SA1_2_1_9,10,12,7,1,1000,,,,,46000,210000,360000,52217
1#SA1_2_1_10,10,12,7,1,1000,,,,,46000,210000,360000,52217
1#SA1_2_1_11,10,12,7,1,1000,,,,,46000,210000,360000,52217
1#SA1_2_1_12,10,12,7,1,1000,,,,,46000,210000,360000,52217
1#SA1_2_1_13,10,12,7,1,1000,,,,,46000,210000,360000,52217
1#SA1_2_1_14,10,12,7,1,1000,,,,,46000,210000,360000,52217
1#SA1_2_1_15,10,12,7,1,1000,,,,,46000,210000,360000,52217
1#SA1_2_1_16,10,12,7,1,1000,,,,,46000,210000,360000,52217
1#SA1_2_1_17,10,12,7,1,1000,,,,,46000,210000,360000,52217
1#SA1_2_2_1,10,16,7,1,147000,-1093300,-1105300,-1105300,-1093300,46000,210000,360000,52217
1#SA1_2_2_2,10,16,7,1,147020,-1129500,-1141500,-1141500,-1129500,46000,210000,360000,52217
1#SA1_2_2_3,10,16,7,1,147040,-1166500,-1178500,-1178500,-1166500,46000,210000,360000,52217
1#SA1_2_2_4,10,16,7,1,147060,-1203000,-1215000,-1215000,-1203000,46000,210000,360000,52217
1#SA1_2_2_5,10,16,7,1,147080,-1238000,-1250000,-1250000,-1238000,46000,210000,360000,52217
1#SA1_2_2_6,10,16,7,1,147100,-1276000,-1288000,-1288000,-1276000,46000,210000,360000,52217
1#SA1_2_2_7,10,16,7,1,147120,-1311900,-1323900,-1323900,-1311900,46000,210000,360000,52217
1#SA1_2_2_8,10,16,7,1,147140,-1348800,-1360800,-1360800,-1348800,46000,210000,360000,52217
1#SA1_2_2_9,10,16,7,1,147160,-1384000,-1396000,-1396000,-1384000,46000,210000,360000,52217
1#SA1_2_2_10,10,16,7,1,147180,-1420700,-1432700,-1432700,-1420700,46000,210000,360000,52217
1#SA1_2_2_11,10,16,7,1,147200,-1456950,-1468950,-1468950,-1456950,46000,210000,360000,52217
1#SA1_2_2_12,10,16,7,1,147220,-1493200,-1505200,-1505200,-1493200,46000,210000,360000,52217
1#SA1_2_2_13,10,16,7,1,147240,-1529450,-1541450,-1541450,-1529450,46000,210000,360000,52217
1#SA1_2_2_14,10,16,7,1,147260,-1565700,-1577700,-1577700,-1565700,46000,210000,360000,52217
1#SA1_2_2_15,10,16,7,1,147280,-1601950,-1613950,-1613950,-1601950,46000,210000,360000,52217
1#SA1_2_2_16,10,16,7,1,147300,-1638200,-1650200,-1650200,-1638200,46000,210000,360000,52217
1#SA1_2_2_17,10,16,7,1,147320,-1674450,-1686450,-1686450,-1674450,46000,210000,360000,52217
1#SA1_2_2_18,10,16,7,1,147340,-1710700,-1722700,-1722700,-1710700,46000,210000,360000,52217
1#SA1_2_2_19,10,16,7,1,147360,-1746950,-1758950,-1758950,-1746950,46000,210000,360000,52217
1#SA1_2_2_20,10,16,7,1,147380,-1783200,-1795200,-1795200,-1783200,46000,210000,360000,52217
1#SA1_2_2_21,10,16,7,1,147400,-1819450,-1831450,-1831450,-1819450,46000,210000,360000,52217
1#SA1_2_2_22,10,16,7,1,147420,-1855700,-1867700,-1867700,-1855700,46000,210000,360000,52217
1#SA1_2_2_23,10,16,7,1,147440,-1891950,-1903950,-1903950,-1891950,46000,210000,360000,52217
1#SA1_2_2_24,10,16,7,1,147460,-1928200,-1940200,-1940200,-1928200,46000,210000,360000,52217
1#SA1_2_2_25,10,16,7,1,147480,-1964450,-1976450,-1976450,-1964450,46000,210000,360000,52217
1#SA1_2_2_26,10,16,7,1,147500,-2000700,-2012700,-2012700,-2000700,46000,210000,360000,52217
1#SA1_2_2_27,10,16,7,1,147520,-2036950,-2048950,-2048950,-2036950,46000,210000,360000,52217
1#SA1_2_2_28,10,16,7,1,147540,-2073200,-2085200,-2085200,-2073200,46000,210000,360000,52217
1#SA1_2_2_29,10,16,7,1,147560,-2109450,-2121450,-2121450,-2109450,46000,210000,360000,52217
1#SA1_2_2_30,10,16,7,1,147580,-2145700,-2157700,-2157700,-2145700,46000,210000,360000,52217
1#SA1_3_1_1,10,12,7,1,73600,-8000,-24000,-24000,-8000,46000,210000,360000,52217
1#SA1_3_1_2,10,12,7,1,73700,-71500,-87500,-87500,-71500,46000,210000,360000,52217
1#SA1_3_1_3,10,12,7,1,73800,-135000,-151000,-151000,-135000,46000,210000,360000,52217
1#SA1_3_1_4,10,12,7,1,73900,-198500,-214500,-214500,-198500,46000,210000,360000,52217
1#SA1_3_1_5,10,12,7,1,74000,-262000,-278000,-278000,-262000,46000,210000,360000,52217
1#SA1_3_1_6,10,12,7,1,74100,-325500,-341500,-341500,-325500,46000,210000,360000,52217
1#SA1_3_1_7,10,12,7,1,74200,-389000,-405000,-405000,-389000,46000,210000,360000,52217
1#SA1_3_1_8,10,12,7,1,74300,-452500,-468500,-468500,-452500,46000,210000,360000,52217
1#SA1_3_1_9,10,12,7,1,74400,-516000,-532000,-532000,-516000,46000,210000,360000,52217
1#SA1_3_1_10,10,12,7,1,74500,-579500,-595500,-595500,-579500,46000,210000,360000,52217
1#SA1_3_1_11,10,12,7,1,74600,-643000,-659000,-659000,-643000,46000,210000,360000,52217
1#SA1_3_1_12,10,12,7,1,74700,-706500,-722500,-722500,-706500,46000,210000,360000,52217
1#SA1_3_1_13,10,12,7,1,74800,-770000,-786000,-786000,-770000,46000,210000,360000,52217
1#SA1_3_1_14,10,12,7,1,74900,-833500,-849500,-849500,-833500,46000,210000,360000,52217
1#SA1_3_1_15,10,12,7,1,75000,-897000,-913000,-913000,-897000,46000,210000,360000,52217
1#SA1_3_1_16,10,12,7,1,75100,-960500,-976500,-976500,-960500,46000,210000,360000,52217
1#SA1_3_1_17,10,12,7,1,75200,-1024000,-1040000,-1040000,-1024000,46000,210000,360000,52217
1#SA1_3_2_1,10,12,7,1,75000,-1089500,-1105500,-1105500,-1089500,46000,210000,360000,52217
1#SA1_3_2_2,10,12,7,1,75000,-1153000,-1169000,-1169000,-1153000,46000,210000,360000,52217
1#SA1_3_2_3,10,12,7,1,75000,-1216500,-1232500,-1232500,-1216500,46000,210000,360000,52217
1#SA1_3_2_4,10,12,7,1,75200,-1280000,-1296000,-1296000,-1280000,46000,210000,360000,52217
1#SA1_3_2_5,10,12,7,1,75200,-1343500,-1359500,-1359500,-1343500,46000,210000,360000,52217
1#SA1_3_2_6,10,12,7,1,75200,-1407000,-1423000,-1423000,-1407000,46000,210000,360000,52217
1#SA1_3_2_7,10,12,7,1,75200,-1470500,-1486500,-1486500,-1470500,46000,210000,360000,52217
1#SA1_3_2_8,10,12,7,1,75200,-1534000,-1550000,-1550000,-1534000,46000,210000,360000,52217
1#SA1_3_2_9,10,12,7,1,75200,-1597500,-1613500,-1613500,-1597500,46000,210000,360000,52217
1#SA1_3_2_10,10,12,7,1,75000,-1661000,-1677000,-1677000,-1661000,46000,210000,360000,52217
1#SA1_3_2_11,10,12,7,1,75000,-1724500,-1740500,-1740500,-1724500,46000,210000,360000,52217
1#SA1_3_2_12,10,12,7,1,75000,-1788000,-1804000,-1804000,-1788000,46000,210000,360000,52217
1#SA1_3_2_13,10,12,7,1,75000,-1851500,-1867500,-1867500,-1851500,46000,210000,360000,52217
1#SA1_3_2_14,10,12,7,1,74800,-1915000,-1931000,-1931000,-1915000,46000,210000,360000,52217
1#SA1_3_2_15,10,12,7,1,74800,-1978500,-1994500,-1994500,-1978500,46000,210000,360000,52217
1#SA1_3_2_16,10,12,7,1,74800,-2042000,-2058000,-2058000,-2042000,46000,210000,360000,52217
1#SA1_3_2_17,10,12,7,1,74800,-2105500,-2121500,-2121500,-2105500,46000,210000,360000,52217
1#SA1_4_1_1,10,12,7,1,1100,-8000,-24000,-24000,-8000,46000,210000,360000,52217
1#SA1_4_1_2,10,12,7,1,1200,-71500,-87500,-87500,-71500,46000,210000,360000,52217
1#SA1_4_1_3,10,12,7,1,1300,-135000,-151000,-151000,-135000,46000,210000,360000,52217
1#SA1_4_1_4,10,12,7,1,1400,-198500,-214500,-214500,-198500,46000,210000,360000,52217
1#SA1_4_1_5,10,12,7,1,1500,-262000,-278000,-278000,-262000,46000,210000,360000,52217
1#SA1_4_1_6,10,12,7,1,1600,-325500,-341500,-341500,-325500,46000,210000,360000,52217
1#SA1_4_1_7,10,12,7,1,1700,-389000,-405000,-405000,-389000,46000,210000,360000,52217
1#SA1_4_1_8,10,12,7,1,1800,-452500,-468500,-468500,-452500,46000,210000,360000,52217
1#SA1_4_1_9,10,12,7,1,1900,-516000,-532000,-532000,-516000,46000,210000,360000,52217
1#SA1_4_1_10,10,12,7,1,2000,-579500,-595500,-595500,-579500,46000,210000,360000,52217
1#SA1_4_1_11,10,12,7,1,2100,-643000,-659000,-659000,-643000,46000,210000,360000,52217
1#SA1_4_1_12,10,12,7,1,2200,-706500,-722500,-722500,-706500,46000,210000,360000,52217
1#SA1_4_1_13,10,12,7,1,2300,-770000,-786000,-786000,-770000,46000,210000,360000,52217
1#SA1_4_1_14,10,12,7,1,2400,-833500,-849500,-849500,-833500,46000,210000,360000,52217
1#SA1_4_1_15,10,12,7,1,2500,-897000,-913000,-913000,-897000,46000,210000,360000,52217
1#SA1_4_1_16,10,12,7,1,2600,-960500,-976500,-976500,-960500,46000,210000,360000,52217
1#SA1_4_1_17,10,12,7,1,2700,-1024000,-1040000,-1040000,-1024000,46000,210000,360000,52217
1#SA1_4_2_1,10,12,7,1,2500,-1093500,-1105500,-1105500,-1093500,46000,210000,360000,52217
1#SA1_4_2_2,10,12,7,1,2490,-1126000,-1138000,-1138000,-1128000,46000,210000,360000,52217
1#SA1_4_2_3,10,12,7,1,2480,-1158500,-1170500,-1170500,-1160500,46000,210000,360000,52217
1#SA1_4_2_4,10,12,7,1,2470,-1191000,-1203000,-1203000,-1193000,46000,210000,360000,52217
1#SA1_4_2_5,10,12,7,1,2460,-1223500,-1235500,-1235500,-1225500,46000,210000,360000,52217
1#SA1_4_2_6,10,12,7,1,2450,-1256000,-1268000,-1268000,-1258000,46000,210000,360000,52217
1#SA1_4_2_7,10,12,7,1,2440,-1288500,-1300500,-1300500,-1290500,46000,210000,360000,52217
1#SA1_4_2_8,10,12,7,1,2430,-1321000,-1333000,-1333000,-1323000,46000,210000,360000,52217
1#SA1_4_2_9,10,12,7,1,2420,-1353500,-1365500,-1365500,-1355500,46000,210000,360000,52217
1#SA1_4_2_10,10,12,7,1,2410,-1386000,-1398000,-1398000,-1388000,46000,210000,360000,52217
1#SA1_4_2_11,10,12,7,1,2400,-1418500,-1430500,-1430500,-1420500,46000,210000,360000,52217
1#SA1_4_2_12,10,12,7,1,2390,-1451000,-1463000,-1463000,-1453000,46000,210000,360000,52217
1#SA1_4_2_13,10,12,7,1,2380,-1483500,-1495500,-1495500,-1485500,46000,210000,360000,52217
1#SA1_4_2_14,10,12,7,1,2370,-1516000,-1528000,-1528000,-1518000,46000,210000,360000,52217
1#SA1_4_2_15,10,12,7,1,2360,-1548500,-1560500,-1560500,-1550500,46000,210000,360000,52217
1#SA1_4_2_16,10,12,7,1,2350,-1581000,-1593000,-1593000,-1583000,46000,210000,360000,52217
1#SA1_4_2_17,10,12,7,1,2340,-1613500,-1625500,-1625500,-1615500,46000,210000,360000,52217
1#SA1_4_2_18,10,12,7,1,2330,-1646000,-1658000,-1658000,-1648000,46000,210000,360000,52217
1#SA1_4_2_19,10,12,7,1,2320,-1678500,-1690500,-1690500,-1680500,46000,210000,360000,52217
1#SA1_4_2_20,10,12,7,1,2310,-1711000,-1723000,-1723000,-1713000,46000,210000,360000,52217
1#SA1_4_2_21,10,12,7,1,2300,-1743500,-1755500,-1755500,-1745500,46000,210000,360000,52217
1#SA1_4_2_22,10,12,7,1,2290,-1776000,-1788000,-1788000,-1778000,46000,210000,360000,52217
1#SA1_4_2_23,10,12,7,1,2280,-1808500,-1820500,-1820500,-1810500,46000,210000,360000,52217
1#SA1_4_2_24,10,12,7,1,2270,-1841000,-1853000,-1853000,-1843000,46000,210000,360000,52217
1#SA1_4_2_25,10,12,7,1,2260,-1873500,-1885500,-1885500,-1875500,46000,210000,360000,52217
1#SA1_4_2_26,10,12,7,1,2250,-1906000,-1918000,-1918000,-1908000,46000,210000,360000,52217
1#SA1_4_2_27,10,12,7,1,2240,-1938500,-1950500,-1950500,-1940500,46000,210000,360000,52217
1#SA1_4_2_28,10,12,7,1,2230,-1971000,-1983000,-1983000,-1973000,46000,210000,360000,52217
1#SA1_4_2_29,10,12,7,1,2220,-2003500,-2015500,-2015500,-2005500,46000,210000,360000,52217
1#SA1_4_2_30,10,12,7,1,2210,-2036000,-2048000,-2048000,-2038000,46000,210000,360000,52217
1#SA1_4_2_31,10,12,7,1,2200,-2068500,-2080500,-2080500,-2070500,46000,210000,360000,52217
1#SA1_4_2_32,10,12,7,1,2190,-2101000,-2113000,-2113000,-2103000,46000,210000,360000,52217
1#SA1_4_2_33,10,12,7,1,2180,-2133500,-2145500,-2145500,-2135500,46000,210000,360000,52217
1#SA1_5_1_1,10,12,7,1,505500,-8000,-24000,-24000,-8000,46000,210000,360000,52217
1#SA1_5_1_2,10,12,7,1,505600,-71500,-87500,-87500,-71500,46000,210000,360000,52217
1#SA1_5_1_3,10,12,7,1,505700,-135000,-151000,-151000,-135000,46000,210000,360000,52217
1#SA1_5_1_4,10,12,7,1,505800,-198500,-214500,-214500,-198500,46000,210000,360000,52217
1#SA1_5_1_5,10,12,7,1,505900,-262000,-278000,-278000,-262000,46000,210000,360000,52217
1#SA1_5_1_6,10,12,7,1,506000,-325500,-341500,-341500,-325500,46000,210000,360000,52217
1#SA1_5_1_7,10,12,7,1,506100,-389000,-405000,-405000,-389000,46000,210000,360000,52217
1#SA1_5_1_8,10,12,7,1,506200,-452500,-468500,-468500,-452500,46000,210000,360000,52217
1#SA1_5_1_9,10,12,7,1,506300,-516000,-532000,-532000,-516000,46000,210000,360000,52217
1#SA1_5_1_10,10,12,7,1,506400,-579500,-595500,-595500,-579500,46000,210000,360000,52217
1#SA1_5_1_11,10,12,7,1,506500,-643000,-659000,-659000,-643000,46000,210000,360000,52217
1#SA1_5_1_12,10,12,7,1,506600,-706500,-722500,-722500,-706500,46000,210000,360000,52217
1#SA1_5_1_13,10,12,7,1,506700,-770000,-786000,-786000,-770000,46000,210000,360000,52217
1#SA1_5_1_14,10,12,7,1,506800,-833500,-849500,-849500,-833500,46000,210000,360000,52217
1#SA1_5_1_15,10,12,7,1,506900,-897000,-913000,-913000,-897000,46000,210000,360000,52217
1#SA1_5_1_16,10,12,7,1,507000,-960500,-976500,-976500,-960500,46000,210000,360000,52217
1#SA1_5_1_17,10,12,7,1,507100,-1024000,-1040000,-1040000,-1024000,46000,210000,360000,52217
1#SA1_5_2_1,10,12,7,1,507000,-1089500,-1105500,-1105500,-1089500,46000,210000,360000,52217
1#SA1_5_2_2,10,12,7,1,506900,-1153000,-1169000,-1169000,-1153000,46000,210000,360000,52217
1#SA1_5_2_3,10,12,7,1,506860,-1216500,-1232500,-1232500,-1216500,46000,210000,360000,52217
1#SA1_5_2_4,10,12,7,1,506820,-1280000,-1296000,-1296000,-1280000,46000,210000,360000,52217
1#SA1_5_2_5,10,12,7,1,506780,-1343500,-1359500,-1359500,-1343500,46000,210000,360000,52217
1#SA1_5_2_6,10,12,7,1,506740,-1407000,-1423000,-1423000,-1407000,46000,210000,360000,52217
1#SA1_5_2_7,10,12,7,1,506700,-1470500,-1486500,-1486500,-1470500,46000,210000,360000,52217
1#SA1_5_2_8,10,12,7,1,506660,-1534000,-1550000,-1550000,-1534000,46000,210000,360000,52217
1#SA1_5_2_9,10,12,7,1,506620,-1597500,-1613500,-1613500,-1597500,46000,210000,360000,52217
1#SA1_5_2_10,10,12,7,1,506580,-1661000,-1677000,-1677000,-1661000,46000,210000,360000,52217
1#SA1_5_2_11,10,12,7,1,506540,-1724500,-1740500,-1740500,-1724500,46000,210000,360000,52217
1#SA1_5_2_12,10,12,7,1,506500,-1788000,-1804000,-1804000,-1788000,46000,210000,360000,52217
1#SA1_5_2_13,10,12,7,1,506460,-1851500,-1867500,-1867500,-1851500,46000,210000,360000,52217
1#SA1_5_2_14,10,12,7,1,506420,-1915000,-1931000,-1931000,-1915000,46000,210000,360000,52217
1#SA1_5_2_15,10,12,7,1,506380,-1978500,-1994500,-1994500,-1978500,46000,210000,360000,52217
1#SA1_5_2_16,10,12,7,1,506340,-2042000,-2058000,-2058000,-2042000,46000,210000,360000,52217
1#SA1_5_2_17,10,12,7,1,506300,-2105500,-2121500,-2121500,-2105500,46000,210000,360000,52217
1#SA1_6_1_1,10,12,7,1,433300,-8000,-24000,-24000,-8000,46000,210000,360000,52217
1#SA1_6_1_2,10,12,7,1,433390,-71500,-87500,-87500,-71500,46000,210000,360000,52217
1#SA1_6_1_3,10,12,7,1,433480,-135000,-151000,-151000,-135000,46000,210000,360000,52217
1#SA1_6_1_4,10,12,7,1,433570,-198500,-214500,-214500,-198500,46000,210000,360000,52217
1#SA1_6_1_5,10,12,7,1,433660,-262000,-278000,-278000,-262000,46000,210000,360000,52217
1#SA1_6_1_6,10,12,7,1,433750,-325500,-341500,-341500,-325500,46000,210000,360000,52217
1#SA1_6_1_7,10,12,7,1,433840,-389000,-405000,-405000,-389000,46000,210000,360000,52217
1#SA1_6_1_8,10,12,7,1,433930,-452500,-468500,-468500,-452500,46000,210000,360000,52217
1#SA1_6_1_9,10,12,7,1,434020,-516000,-532000,-532000,-516000,46000,210000,360000,52217
1#SA1_6_1_10,10,12,7,1,434110,-579500,-595500,-595500,-579500,46000,210000,360000,52217
1#SA1_6_1_11,10,12,7,1,434200,-643000,-659000,-659000,-643000,46000,210000,360000,52217
1#SA1_6_1_12,10,12,7,1,434290,-706500,-722500,-722500,-706500,46000,210000,360000,52217
1#SA1_6_1_13,10,12,7,1,434380,-770000,-786000,-786000,-770000,46000,210000,360000,52217
1#SA1_6_1_14,10,12,7,1,434470,-833500,-849500,-849500,-833500,46000,210000,360000,52217
1#SA1_6_1_15,10,12,7,1,434560,-897000,-913000,-913000,-897000,46000,210000,360000,52217
1#SA1_6_1_16,10,12,7,1,434650,-960500,-976500,-976500,-960500,46000,210000,360000,52217
1#SA1_6_1_17,10,12,7,1,434740,-1024000,-1040000,-1040000,-1024000,46000,210000,360000,52217
1#SA1_6_2_1,10,8,7,1,1000,-1094000,-1106000,-1106000,-1094000,46000,0,110000,52217
1#SA1_6_2_2,10,8,7,1,1000,-1120000,-1132000,-1132000,-1120000,46000,0,110000,52217
1#SA1_6_2_3,10,8,7,1,1000,-1148000,-1160000,-1160000,-1148000,46000,0,110000,52217
1#SA1_6_2_4,10,8,7,1,1000,-1177000,-1189000,-1189000,-1177000,46000,0,110000,52217
1#SA1_6_2_5,10,8,7,1,1000,-1206000,-1218000,-1218000,-1206000,46000,0,110000,52217
1#SA1_6_2_6,10,8,7,1,1000,-1235100,-1247100,-1247100,-1235100,46000,0,110000,52217
1#SA1_6_2_7,10,8,7,1,1000,-1264200,-1276200,-1276200,-1264200,46000,0,110000,52217
1#SA1_6_2_8,10,8,7,1,1000,-1293300,-1305300,-1305300,-1293300,46000,0,110000,52217
1#SA1_6_2_9,10,8,7,1,1000,-1322400,-1334400,-1334400,-1322400,46000,0,110000,52217
1#SA1_6_2_10,10,8,7,1,1000,-1351500,-1363500,-1363500,-1351500,46000,0,110000,52217
1#SA1_6_2_11,10,8,7,1,1000,-1380600,-1392600,-1392600,-1380600,46000,0,110000,52217
1#SA1_6_2_12,10,8,7,1,1000,-1409700,-1421700,-1421700,-1409700,46000,0,110000,52217
1#SA1_6_2_13,10,8,7,1,1000,-1438800,-1450800,-1450800,-1438800,46000,0,110000,52217
1#SA1_6_2_14,10,8,7,1,1000,-1467900,-1479900,-1479900,-1467900,46000,0,110000,52217
1#SA1_6_2_15,10,8,7,1,1000,-1497000,-1509000,-1509000,-1497000,46000,0,110000,52217
1#SA1_6_2_16,10,8,7,1,1000,-1526100,-1538100,-1538100,-1526100,46000,0,110000,52217
1#SA1_6_2_17,10,8,7,1,1000,-1555200,-1567200,-1567200,-1555200,46000,0,110000,52217
1#SA1_6_2_18,10,8,7,1,1000,-1584300,-1596300,-1596300,-1584300,46000,0,110000,52217
1#SA1_6_2_19,10,8,7,1,1000,-1613400,-1625400,-1625400,-1613400,46000,0,110000,52217
1#SA1_6_2_20,10,8,7,1,1000,-1642500,-1654500,-1654500,-1642500,46000,0,110000,52217
1#SA1_6_2_21,10,8,7,1,1000,-1671600,-1683600,-1683600,-1671600,46000,0,110000,52217
1#SA1_6_2_22,10,8,7,1,1000,-1700700,-1712700,-1712700,-1700700,46000,0,110000,52217
1#SA1_6_2_23,10,8,7,1,1000,-1729800,-1741800,-1741800,-1729800,46000,0,110000,52217
1#SA1_6_2_24,10,8,7,1,1000,-1758900,-1770900,-1770900,-1758900,46000,0,110000,52217
1#SA1_6_2_25,10,8,7,1,1000,-1788000,-1800000,-1800000,-1788000,46000,0,110000,52217
1#SA1_6_2_26,10,8,7,1,1000,-1817100,-1829100,-1829100,-1817100,46000,0,110000,52217
1#SA1_6_2_27,10,8,7,1,1000,-1846200,-1858200,-1858200,-1846200,46000,0,110000,52217
1#SA1_6_2_28,10,8,7,1,1000,-1875300,-1887300,-1887300,-1875300,46000,0,110000,52217
1#SA1_6_2_29,10,8,7,1,1000,-1904400,-1916400,-1916400,-1904400,46000,0,110000,52217
1#SA1_6_2_30,10,8,7,1,1000,-1933500,-1945500,-1945500,-1933500,46000,0,110000,52217
1#SA1_6_2_31,10,8,7,1,1000,-1962600,-1974600,-1974600,-1962600,46000,0,110000,52217
1#SA1_6_2_32,10,8,7,1,1000,-1991700,-2003700,-2003700,-1991700,46000,0,110000,52217
1#SA1_6_2_33,10,8,7,1,1000,-2020800,-2032800,-2032800,-2020800,46000,0,110000,52217
1#SA1_6_2_34,10,8,7,1,1000,-2049900,-2061900,-2061900,-2049900,46000,0,110000,52217
1#SA1_6_2_35,10,8,7,1,1000,-2079000,-2091000,-2091000,-2079000,46000,0,110000,52217
1#SA1_6_2_36,10,8,7,1,1000,-2108100,-2120100,-2120100,-2108100,46000,0,110000,52217
1#SA1_6_2_37,10,8,7,1,1000,-2137200,-2149200,-2149200,-2137200,46000,0,110000,52217
1#SA1_7_1_1,10,12,7,1,361100,-8000,-24000,-24000,-8000,46000,210000,360000,52217
1#SA1_7_1_2,10,12,7,1,361220,-71000,-87000,-87000,-71000,46000,210000,360000,52217
1#SA1_7_1_3,10,12,7,1,361340,-134000,-150000,-150000,-134000,46000,210000,360000,52217
1#SA1_7_1_4,10,12,7,1,361460,-197500,-213500,-213500,-197500,46000,210000,360000,52217
1#SA1_7_1_5,10,12,7,1,361580,-261000,-277000,-277000,-261000,46000,210000,360000,52217
1#SA1_7_1_6,10,12,7,1,361700,-324500,-340500,-340500,-324500,46000,210000,360000,52217
1#SA1_7_1_7,10,12,7,1,361820,-388000,-404000,-404000,-388000,46000,210000,360000,52217
1#SA1_7_1_8,10,12,7,1,361940,-451500,-467500,-467500,-451500,46000,210000,360000,52217
1#SA1_7_1_9,10,12,7,1,362060,-515000,-531000,-531000,-515000,46000,210000,360000,52217
1#SA1_7_1_10,10,12,7,1,362180,-578500,-594500,-594500,-578500,46000,210000,360000,52217
1#SA1_7_1_11,10,12,7,1,362300,-642000,-658000,-658000,-642000,46000,210000,360000,52217
1#SA1_7_1_12,10,12,7,1,362420,-705500,-721500,-721500,-705500,46000,210000,360000,52217
1#SA1_7_1_13,10,12,7,1,362540,-769000,-785000,-785000,-769000,46000,210000,360000,52217
1#SA1_7_1_14,10,12,7,1,362660,-832500,-848500,-848500,-832500,46000,210000,360000,52217
1#SA1_7_1_15,10,12,7,1,362780,-896000,-912000,-912000,-896000,46000,210000,360000,52217
1#SA1_7_1_16,10,12,7,1,362900,-959500,-975500,-975500,-959500,46000,210000,360000,52217
1#SA1_7_1_17,10,12,7,1,363020,-1023000,-1039000,-1039000,-1023000,46000,210000,360000,52217
1#SA1_7_2_1,10,8,7,1,363020,-1094000,-1106000,-1106000,-1094000,46000,0,110000,52217
1#SA1_7_2_2,10,8,7,1,363020,-1120000,-1132000,-1132000,-1120000,46000,0,110000,52217
1#SA1_7_2_3,10,8,7,1,363020,-1148000,-1160000,-1160000,-1148000,46000,0,110000,52217
1#SA1_7_2_4,10,8,7,1,363020,-1177000,-1189000,-1189000,-1177000,46000,0,110000,52217
1#SA1_7_2_5,10,8,7,1,363020,-1206000,-1218000,-1218000,-1206000,46000,0,110000,52217
1#SA1_7_2_6,10,8,7,1,363020,-1235100,-1247100,-1247100,-1235100,46000,0,110000,52217
1#SA1_7_2_7,10,8,7,1,363020,-1264200,-1276200,-1276200,-1264200,46000,0,110000,52217
1#SA1_7_2_8,10,8,7,1,363020,-1293300,-1305300,-1305300,-1293300,46000,0,110000,52217
1#SA1_7_2_9,10,8,7,1,363020,-1322400,-1334400,-1334400,-1322400,46000,0,110000,52217
1#SA1_7_2_10,10,8,7,1,363020,-1351500,-1363500,-1363500,-1351500,46000,0,110000,52217
1#SA1_7_2_11,10,8,7,1,363020,-1380600,-1392600,-1392600,-1380600,46000,0,110000,52217
1#SA1_7_2_12,10,8,7,1,363020,-1409700,-1421700,-1421700,-1409700,46000,0,110000,52217
1#SA1_7_2_13,10,8,7,1,363020,-1438800,-1450800,-1450800,-1438800,46000,0,110000,52217
1#SA1_7_2_14,10,8,7,1,363020,-1467900,-1479900,-1479900,-1467900,46000,0,110000,52217
1#SA1_7_2_15,10,8,7,1,363020,-1497000,-1509000,-1509000,-1497000,46000,0,110000,52217
1#SA1_7_2_16,10,8,7,1,363020,-1526100,-1538100,-1538100,-1526100,46000,0,110000,52217
1#SA1_7_2_17,10,8,7,1,363020,-1555200,-1567200,-1567200,-1555200,46000,0,110000,52217
1#SA1_7_2_18,10,8,7,1,363020,-1584300,-1596300,-1596300,-1584300,46000,0,110000,52217
1#SA1_7_2_19,10,8,7,1,363020,-1613400,-1625400,-1625400,-1613400,46000,0,110000,52217
1#SA1_7_2_20,10,8,7,1,363020,-1642500,-1654500,-1654500,-1642500,46000,0,110000,52217
1#SA1_7_2_21,10,8,7,1,363020,-1671600,-1683600,-1683600,-1671600,46000,0,110000,52217
1#SA1_7_2_22,10,8,7,1,363020,-1700700,-1712700,-1712700,-1700700,46000,0,110000,52217
1#SA1_7_2_23,10,8,7,1,363020,-1729800,-1741800,-1741800,-1729800,46000,0,110000,52217
1#SA1_7_2_24,10,8,7,1,363020,-1758900,-1770900,-1770900,-1758900,46000,0,110000,52217
1#SA1_7_2_25,10,8,7,1,363020,-1788000,-1800000,-1800000,-1788000,46000,0,110000,52217
1#SA1_7_2_26,10,8,7,1,363020,-1817100,-1829100,-1829100,-1817100,46000,0,110000,52217
1#SA1_7_2_27,10,8,7,1,363020,-1846200,-1858200,-1858200,-1846200,46000,0,110000,52217
1#SA1_7_2_28,10,8,7,1,363020,-1875300,-1887300,-1887300,-1875300,46000,0,110000,52217
1#SA1_7_2_29,10,8,7,1,363020,-1904400,-1916400,-1916400,-1904400,46000,0,110000,52217
1#SA1_7_2_30,10,8,7,1,363020,-1933500,-1945500,-1945500,-1933500,46000,0,110000,52217
1#SA1_7_2_31,10,8,7,1,363020,-1962600,-1974600,-1974600,-1962600,46000,0,110000,52217
1#SA1_7_2_32,10,8,7,1,363020,-1991700,-2003700,-2003700,-1991700,46000,0,110000,52217
1#SA1_7_2_33,10,8,7,1,363220,-2020800,-2032800,-2032800,-2020800,46000,0,110000,52217
1#SA1_7_2_34,10,8,7,1,363220,-2049900,-2061900,-2061900,-2049900,46000,0,110000,52217
1#SA1_7_2_35,10,8,7,1,363220,-2079000,-2091000,-2091000,-2079000,46000,0,110000,52217
1#SA1_7_2_36,10,8,7,1,363220,-2108100,-2120100,-2120100,-2108100,46000,0,110000,52217
1#SA1_7_2_37,10,8,7,1,363220,-2137200,-2149200,-2149200,-2137200,46000,0,110000,52217
1#SA1_8_1_1,10,12,7,1,1000,-8000,-24000,-24000,-8000,46000,210000,360000,52217
1#SA1_8_1_2,10,12,7,1,1000,-71500,-87500,-87500,-71500,46000,210000,360000,52217
1#SA1_8_1_3,10,12,7,1,1000,-135000,-151000,-151000,-135000,46000,210000,360000,52217
1#SA1_8_1_4,10,12,7,1,1000,-198500,-214500,-214500,-198500,46000,210000,360000,52217
1#SA1_8_1_5,10,12,7,1,1000,-262000,-278000,-278000,-262000,46000,210000,360000,52217
1#SA1_8_1_6,10,12,7,1,1000,-325500,-341500,-341500,-325500,46000,210000,360000,52217
1#SA1_8_1_7,10,12,7,1,1000,-389000,-405000,-405000,-389000,46000,210000,360000,52217
1#SA1_8_1_8,10,12,7,1,1000,-452500,-468500,-468500,-452500,46000,210000,360000,52217
1#SA1_8_1_9,10,12,7,1,1000,-516000,-532000,-532000,-516000,46000,210000,360000,52217
1#SA1_8_1_10,10,12,7,1,1000,-579500,-595500,-595500,-579500,46000,210000,360000,52217
1#SA1_8_1_11,10,12,7,1,1000,-643000,-659000,-659000,-643000,46000,210000,360000,52217
1#SA1_8_1_12,10,12,7,1,1000,-706500,-722500,-722500,-706500,46000,210000,360000,52217
1#SA1_8_1_13,10,12,7,1,1000,-770000,-786000,-786000,-770000,46000,210000,360000,52217
1#SA1_8_1_14,10,12,7,1,1000,-833500,-849500,-849500,-833500,46000,210000,360000,52217
1#SA1_8_1_15,10,12,7,1,1000,-897000,-913000,-913000,-897000,46000,210000,360000,52217
1#SA1_8_1_16,10,12,7,1,1000,-960500,-976500,-976500,-960500,46000,210000,360000,52217
1#SA1_8_1_17,10,12,7,1,1000,-1024000,-1040000,-1040000,-1024000,46000,210000,360000,52217
1#SA1_8_2_1,10,8,7,1,1000,-1094000,-1106000,-1106000,-1094000,46000,0,110000,52217
1#SA1_8_2_2,10,8,7,1,1000,-1120000,-1132000,-1132000,-1120000,46000,0,110000,52217
1#SA1_8_2_3,10,8,7,1,1000,-1148000,-1160000,-1160000,-1148000,46000,0,110000,52217
1#SA1_8_2_4,10,8,7,1,1000,-1177000,-1189000,-1189000,-1177000,46000,0,110000,52217
1#SA1_8_2_5,10,8,7,1,1000,-1206000,-1218000,-1218000,-1206000,46000,0,110000,52217
1#SA1_8_2_6,10,8,7,1,1000,-1235100,-1247100,-1247100,-1235100,46000,0,110000,52217
1#SA1_8_2_7,10,8,7,1,1000,-1264200,-1276200,-1276200,-1264200,46000,0,110000,52217
1#SA1_8_2_8,10,8,7,1,1000,-1293300,-1305300,-1305300,-1293300,46000,0,110000,52217
1#SA1_8_2_9,10,8,7,1,1000,-1322400,-1334400,-1334400,-1322400,46000,0,110000,52217
1#SA1_8_2_10,10,8,7,1,1000,-1351500,-1363500,-1363500,-1351500,46000,0,110000,52217
1#SA1_8_2_11,10,8,7,1,1000,-1380600,-1392600,-1392600,-1380600,46000,0,110000,52217
1#SA1_8_2_12,10,8,7,1,1000,-1409700,-1421700,-1421700,-1409700,46000,0,110000,52217
1#SA1_8_2_13,10,8,7,1,1000,-1438800,-1450800,-1450800,-1438800,46000,0,110000,52217
1#SA1_8_2_14,10,8,7,1,1000,-1467900,-1479900,-1479900,-1467900,46000,0,110000,52217
1#SA1_8_2_15,10,8,7,1,1000,-1497000,-1509000,-1509000,-1497000,46000,0,110000,52217
1#SA1_8_2_16,10,8,7,1,1000,-1526100,-1538100,-1538100,-1526100,46000,0,110000,52217
1#SA1_8_2_17,10,8,7,1,1000,-1555200,-1567200,-1567200,-1555200,46000,0,110000,52217
1#SA1_8_2_18,10,8,7,1,1000,-1584300,-1596300,-1596300,-1584300,46000,0,110000,52217
1#SA1_8_2_19,10,8,7,1,1000,-1613400,-1625400,-1625400,-1613400,46000,0,110000,52217
1#SA1_8_2_20,10,8,7,1,1000,-1642500,-1654500,-1654500,-1642500,46000,0,110000,52217
1#SA1_8_2_21,10,8,7,1,1000,-1671600,-1683600,-1683600,-1671600,46000,0,110000,52217
1#SA1_8_2_22,10,8,7,1,1000,-1700700,-1712700,-1712700,-1700700,46000,0,110000,52217
1#SA1_8_2_23,10,8,7,1,1000,-1729800,-1741800,-1741800,-1729800,46000,0,110000,52217
1#SA1_8_2_24,10,8,7,1,1000,-1758900,-1770900,-1770900,-1758900,46000,0,110000,52217
1#SA1_8_2_25,10,8,7,1,1000,-1788000,-1800000,-1800000,-1788000,46000,0,110000,52217
1#SA1_8_2_26,10,8,7,1,1000,-1817100,-1829100,-1829100,-1817100,46000,0,110000,52217
1#SA1_8_2_27,10,8,7,1,1000,-1846200,-1858200,-1858200,-1846200,46000,0,110000,52217
1#SA1_8_2_28,10,8,7,1,1000,-1875300,-1887300,-1887300,-1875300,46000,0,110000,52217
1#SA1_8_2_29,10,8,7,1,1000,-1904400,-1916400,-1916400,-1904400,46000,0,110000,52217
1#SA1_8_2_30,10,8,7,1,1000,-1933500,-1945500,-1945500,-1933500,46000,0,110000,52217
1#SA1_8_2_31,10,8,7,1,1000,-1962600,-1974600,-1974600,-1962600,46000,0,110000,52217
1#SA1_8_2_32,10,8,7,1,1000,-1991700,-2003700,-2003700,-1991700,46000,0,110000,52217
1#SA1_8_2_33,10,8,7,1,1000,-2020800,-2032800,-2032800,-2020800,46000,0,110000,52217
1#SA1_8_2_34,10,8,7,1,1000,-2049900,-2061900,-2061900,-2049900,46000,0,110000,52217
1#SA1_8_2_35,10,8,7,1,1000,-2079000,-2091000,-2091000,-2079000,46000,0,110000,52217
1#SA1_8_2_36,10,8,7,1,1000,-2108100,-2120100,-2120100,-2108100,46000,0,110000,52217
1#SA1_8_2_37,10,8,7,1,1000,-2137200,-2149200,-2149200,-2137200,46000,0,110000,52217
source/DeviceLibrary/acSingleStore/ACStoreManager.cs
查看文件 @
10be948
...
...
@@ -71,7 +71,7 @@ namespace OnlineStore.DeviceLibrary
if
(
File
.
Exists
(
positionConfigFile
))
{
LogUtil
.
info
(
LOGGER
,
"加载位置文件:"
+
positionConfigFile
);
CSVPositionReader
<
KTKSAStorePos
tion
>.
ReloadCSVFile
(
positionConfigFile
);
CSVPositionReader
<
ACStorePosi
tion
>.
ReloadCSVFile
(
positionConfigFile
);
}
AC_SA_BoxBean
storeBean
=
new
AC_SA_BoxBean
((
AC_SA_Config
)
storeConfig
);
storeBean
.
CID
=
CID
;
...
...
source/DeviceLibrary/acSingleStore/AC_SA_BoxBean.cs
查看文件 @
10be948
...
...
@@ -60,9 +60,9 @@ namespace OnlineStore.DeviceLibrary
moveAxisList
=
new
List
<
ConfigMoveAxis
>();
MoveAxisConfig
();
List
<
KTKSAStorePostion
>
positionList
=
CSVPositionReader
<
KTKSAStorePos
tion
>.
getPositionList
();
List
<
ACStorePosition
>
positionList
=
CSVPositionReader
<
ACStorePosi
tion
>.
getPositionList
();
PositionNumList
=
new
List
<
string
>();
foreach
(
KTKSAStorePos
tion
position
in
positionList
)
foreach
(
ACStorePosi
tion
position
in
positionList
)
{
if
(
position
.
StoreId
.
Equals
(
StoreID
))
{
...
...
@@ -84,12 +84,12 @@ namespace OnlineStore.DeviceLibrary
Thread
.
Sleep
(
300
);
//默认三个灯都亮
KNDIOMove
(
Store_
IO_Type
.
Alarm_HddLed
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
Store_
IO_Type
.
AutoRun_HddLed
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
Store_
IO_Type
.
RunSign_HddLed
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
IO_Type
.
Alarm_HddLed
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
IO_Type
.
AutoRun_HddLed
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
IO_Type
.
RunSign_HddLed
,
IO_VALUE
.
HIGH
);
}
private
void
CheckPositionLimit
(
KTKSAStorePos
tion
position
)
private
void
CheckPositionLimit
(
ACStorePosi
tion
position
)
{
try
{
...
...
@@ -219,8 +219,8 @@ namespace OnlineStore.DeviceLibrary
alarmType
=
StoreAlarmType
.
None
;
//急停按钮和气压检测需要一起判断
IO_VALUE
suddenBtn
=
KNDIOValue
(
Store_
IO_Type
.
SuddenStop_BTN
);
IO_VALUE
airCheck
=
KNDIOValue
(
Store_
IO_Type
.
Airpressure_Check
);
IO_VALUE
suddenBtn
=
KNDIOValue
(
IO_Type
.
SuddenStop_BTN
);
IO_VALUE
airCheck
=
KNDIOValue
(
IO_Type
.
Airpressure_Check
);
if
(
suddenBtn
==
IO_VALUE
.
HIGH
&&
airCheck
==
IO_VALUE
.
HIGH
)
{
...
...
@@ -266,9 +266,9 @@ namespace OnlineStore.DeviceLibrary
WarnMsg
=
""
;
CurrInOutACount
=
0
;
CurrInOutCount
=
0
;
KNDIOMove
(
Store_
IO_Type
.
Alarm_HddLed
,
IO_VALUE
.
LOW
);
KNDIOMove
(
Store_
IO_Type
.
AutoRun_HddLed
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
Store_
IO_Type
.
RunSign_HddLed
,
IO_VALUE
.
LOW
);
KNDIOMove
(
IO_Type
.
Alarm_HddLed
,
IO_VALUE
.
LOW
);
KNDIOMove
(
IO_Type
.
AutoRun_HddLed
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
IO_Type
.
RunSign_HddLed
,
IO_VALUE
.
LOW
);
storeRunStatus
=
StoreRunStatus
.
HomeMoving
;
StoreMove
.
NewMove
(
StoreMoveType
.
ReturnHome
);
...
...
@@ -301,8 +301,8 @@ namespace OnlineStore.DeviceLibrary
LogUtil
.
info
(
LOGGER
,
StoreName
+
"到待机状态,进出轴到P1,判断叉子没有料盘"
);
ACAxisMove
(
Config
.
InOut_Axis
,
Config
.
InOutAxis_P1_Position
,
Config
.
InOutAxis_P1_Speed
,
Config
.
InOut_Axis
.
StartSpeed
);
//判断叉子没有料盘
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
TrayCheck_3
,
IO_VALUE
.
LOW
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
TrayCheck_4
,
IO_VALUE
.
LOW
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
TrayCheck_3
,
IO_VALUE
.
LOW
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
TrayCheck_4
,
IO_VALUE
.
LOW
));
}
public
override
void
Reset
()
{
...
...
@@ -317,11 +317,11 @@ namespace OnlineStore.DeviceLibrary
CurrInOutCount
=
0
;
CurrInOutACount
=
0
;
KNDIOMove
(
Store_
IO_Type
.
Alarm_HddLed
,
IO_VALUE
.
LOW
);
KNDIOMove
(
IO_Type
.
Alarm_HddLed
,
IO_VALUE
.
LOW
);
Thread
.
Sleep
(
100
);
KNDIOMove
(
Store_
IO_Type
.
AutoRun_HddLed
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
IO_Type
.
AutoRun_HddLed
,
IO_VALUE
.
HIGH
);
Thread
.
Sleep
(
100
);
KNDIOMove
(
Store_
IO_Type
.
RunSign_HddLed
,
IO_VALUE
.
LOW
);
KNDIOMove
(
IO_Type
.
RunSign_HddLed
,
IO_VALUE
.
LOW
);
Thread
.
Sleep
(
100
);
//复位之前先停止运行
if
(
isNeedClearAuto
)
...
...
@@ -361,10 +361,10 @@ namespace OnlineStore.DeviceLibrary
LogUtil
.
info
(
LOGGER
,
StoreName
+
"开始重置:先定位气缸下降"
);
// 重置和回原点要等轴3进出轴ORG亮了以后才能返回其他轴
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
BOX_H_LocationCylinderBack
);
KNDIOMove
(
Store_
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
Store_
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
));
KNDIOMove
(
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
));
}
}
...
...
@@ -401,13 +401,13 @@ namespace OnlineStore.DeviceLibrary
AxisCountClear
(
Config
.
InOut_Axis
);
ACAxisMove
(
Config
.
InOut_Axis
,
Config
.
InOutAxis_P1_Position
,
Config
.
InOutAxis_P1_Speed
,
Config
.
InOut_Axis
.
StartSpeed
);
//判断叉子没有料盘
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
TrayCheck_3
,
IO_VALUE
.
LOW
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
TrayCheck_4
,
IO_VALUE
.
LOW
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
TrayCheck_3
,
IO_VALUE
.
LOW
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
TrayCheck_4
,
IO_VALUE
.
LOW
));
//关闭舱门
KNDIOMove
(
Store_
IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
Store_
IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
));
KNDIOMove
(
IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
));
break
;
case
StoreMoveStep
.
BOX_H_InOutToP1
:
//如果此时轴三还在报警,需要提示错误并等待
...
...
@@ -457,10 +457,10 @@ namespace OnlineStore.DeviceLibrary
ShuoKeControls
.
HomeMove
(
Config
.
CompressAxis_Slv
,
0
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitShuoKe
(
Config
.
CompressAxis_Slv
,
0
,
true
));
//关闭舱门
KNDIOMove
(
Store_
IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
Store_
IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
));
KNDIOMove
(
IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
));
break
;
case
StoreMoveStep
.
BOX_M_H_TOP1_CompressHome
:
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
BOX_M_H_TOP1_OtherAxisToP1
);
...
...
@@ -517,13 +517,13 @@ namespace OnlineStore.DeviceLibrary
AxisCountClear
(
Config
.
InOut_Axis
);
ACAxisMove
(
Config
.
InOut_Axis
,
Config
.
InOutAxis_P1_Position
,
Config
.
InOutAxis_P1_Speed
,
Config
.
InOut_Axis
.
StartSpeed
);
//判断叉子没有料盘
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
TrayCheck_3
,
IO_VALUE
.
LOW
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
TrayCheck_4
,
IO_VALUE
.
LOW
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
TrayCheck_3
,
IO_VALUE
.
LOW
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
TrayCheck_4
,
IO_VALUE
.
LOW
));
//关闭舱门
KNDIOMove
(
Store_
IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
Store_
IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
));
KNDIOMove
(
IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
));
break
;
case
StoreMoveStep
.
BOX_H_InOutToP1
:
...
...
@@ -574,7 +574,7 @@ namespace OnlineStore.DeviceLibrary
public
void
RunAxis
()
{
KNDIOMove
(
Store_
IO_Type
.
Run_Sign
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
IO_Type
.
Run_Sign
,
IO_VALUE
.
HIGH
);
Thread
.
Sleep
(
100
);
//打开所有轴
foreach
(
ConfigMoveAxis
moveAxis
in
moveAxisList
)
...
...
@@ -591,7 +591,7 @@ namespace OnlineStore.DeviceLibrary
ACServerManager
.
ServoOn
(
portName
,
slvAddr
);
}
KNDIOMove
(
Store_
IO_Type
.
Axis_Brake
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
IO_Type
.
Axis_Brake
,
IO_VALUE
.
HIGH
);
}
/// <summary>
/// 打开所有轴
...
...
@@ -634,7 +634,7 @@ namespace OnlineStore.DeviceLibrary
private
void
CloseAllAxis
()
{
KNDIOMove
(
Store_
IO_Type
.
Axis_Brake
,
IO_VALUE
.
LOW
);
KNDIOMove
(
IO_Type
.
Axis_Brake
,
IO_VALUE
.
LOW
);
foreach
(
ConfigMoveAxis
axis
in
moveAxisList
)
{
ACServerManager
.
ServoOff
(
axis
.
DeviceName
,
axis
.
GetAxisValue
());
...
...
@@ -642,7 +642,7 @@ namespace OnlineStore.DeviceLibrary
ACServerManager
.
ColsePort
(
axis
.
DeviceName
);
}
Thread
.
Sleep
(
100
);
KNDIOMove
(
Store_
IO_Type
.
Run_Sign
,
IO_VALUE
.
LOW
);
KNDIOMove
(
IO_Type
.
Run_Sign
,
IO_VALUE
.
LOW
);
}
private
int
GetAlarmCodeByAxis
(
ConfigMoveAxis
axis
)
...
...
@@ -758,33 +758,33 @@ namespace OnlineStore.DeviceLibrary
if
(
IsNotScanCode
||
storeRunStatus
.
Equals
(
StoreRunStatus
.
HomeMoving
)
||
storeRunStatus
.
Equals
(
StoreRunStatus
.
Reset
))
{
//开机执行中时黄灯闪烁
if
(
KNDIOValue
(
Store_
IO_Type
.
RunSign_HddLed
).
Equals
(
IO_VALUE
.
HIGH
))
if
(
KNDIOValue
(
IO_Type
.
RunSign_HddLed
).
Equals
(
IO_VALUE
.
HIGH
))
{
KNDIOMove
(
Store_
IO_Type
.
RunSign_HddLed
,
IO_VALUE
.
LOW
);
KNDIOMove
(
IO_Type
.
RunSign_HddLed
,
IO_VALUE
.
LOW
);
}
else
{
KNDIOMove
(
Store_
IO_Type
.
RunSign_HddLed
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
IO_Type
.
RunSign_HddLed
,
IO_VALUE
.
HIGH
);
}
}
else
{
if
(
KNDIOValue
(
Store_
IO_Type
.
RunSign_HddLed
).
Equals
(
IO_VALUE
.
HIGH
))
if
(
KNDIOValue
(
IO_Type
.
RunSign_HddLed
).
Equals
(
IO_VALUE
.
HIGH
))
{
KNDIOMove
(
Store_
IO_Type
.
RunSign_HddLed
,
IO_VALUE
.
LOW
);
KNDIOMove
(
IO_Type
.
RunSign_HddLed
,
IO_VALUE
.
LOW
);
}
}
//路灯亮
//出入库执行中,绿灯闪烁
if
((
StoreMove
.
MoveType
.
Equals
(
StoreMoveType
.
InStore
)
||
StoreMove
.
MoveType
.
Equals
(
StoreMoveType
.
OutStore
))
&&
KNDIOValue
(
Store_
IO_Type
.
AutoRun_HddLed
).
Equals
(
IO_VALUE
.
HIGH
))
if
((
StoreMove
.
MoveType
.
Equals
(
StoreMoveType
.
InStore
)
||
StoreMove
.
MoveType
.
Equals
(
StoreMoveType
.
OutStore
))
&&
KNDIOValue
(
IO_Type
.
AutoRun_HddLed
).
Equals
(
IO_VALUE
.
HIGH
))
{
KNDIOMove
(
Store_
IO_Type
.
AutoRun_HddLed
,
IO_VALUE
.
LOW
);
KNDIOMove
(
IO_Type
.
AutoRun_HddLed
,
IO_VALUE
.
LOW
);
}
else
{
if
(
KNDIOValue
(
Store_
IO_Type
.
AutoRun_HddLed
).
Equals
(
IO_VALUE
.
LOW
))
if
(
KNDIOValue
(
IO_Type
.
AutoRun_HddLed
).
Equals
(
IO_VALUE
.
LOW
))
{
KNDIOMove
(
Store_
IO_Type
.
AutoRun_HddLed
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
IO_Type
.
AutoRun_HddLed
,
IO_VALUE
.
HIGH
);
}
}
bool
isNeedAlarmLed
=
false
;
...
...
@@ -796,16 +796,16 @@ namespace OnlineStore.DeviceLibrary
if
(
isNeedAlarmLed
)
{
if
(
KNDIOValue
(
Store_
IO_Type
.
Alarm_HddLed
).
Equals
(
IO_VALUE
.
LOW
))
if
(
KNDIOValue
(
IO_Type
.
Alarm_HddLed
).
Equals
(
IO_VALUE
.
LOW
))
{
KNDIOMove
(
Store_
IO_Type
.
Alarm_HddLed
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
IO_Type
.
Alarm_HddLed
,
IO_VALUE
.
HIGH
);
}
}
else
{
if
(
KNDIOValue
(
Store_
IO_Type
.
Alarm_HddLed
).
Equals
(
IO_VALUE
.
HIGH
))
if
(
KNDIOValue
(
IO_Type
.
Alarm_HddLed
).
Equals
(
IO_VALUE
.
HIGH
))
{
KNDIOMove
(
Store_
IO_Type
.
Alarm_HddLed
,
IO_VALUE
.
LOW
);
KNDIOMove
(
IO_Type
.
Alarm_HddLed
,
IO_VALUE
.
LOW
);
}
}
}
...
...
@@ -822,7 +822,7 @@ namespace OnlineStore.DeviceLibrary
if
(
storeRunStatus
.
Equals
(
StoreRunStatus
.
Wait
))
{
//取新的Io状态
IO_VALUE
autoSingle
=
KNDIOValue
(
Store_
IO_Type
.
AutoRun_Single
);
IO_VALUE
autoSingle
=
KNDIOValue
(
IO_Type
.
AutoRun_Single
);
if
(
ConfigAppSettings
.
GetIntValue
(
Setting_Init
.
App_AutoRun
)
==
1
)
{
if
(
autoSingle
.
Equals
(
IO_VALUE
.
HIGH
)
&&
lastAutoRun
.
Equals
(
IO_VALUE
.
LOW
))
...
...
@@ -849,8 +849,8 @@ namespace OnlineStore.DeviceLibrary
else
if
(
storeRunStatus
>=
StoreRunStatus
.
HomeMoving
)
{
//取新的Io状态
IO_VALUE
suddenBtn
=
KNDIOValue
(
Store_
IO_Type
.
SuddenStop_BTN
);
IO_VALUE
resetBtn
=
KNDIOValue
(
Store_
IO_Type
.
Reset_BTN
);
IO_VALUE
suddenBtn
=
KNDIOValue
(
IO_Type
.
SuddenStop_BTN
);
IO_VALUE
resetBtn
=
KNDIOValue
(
IO_Type
.
Reset_BTN
);
//急停按钮
if
(
suddenBtn
.
Equals
(
IO_VALUE
.
LOW
))
...
...
@@ -889,7 +889,7 @@ namespace OnlineStore.DeviceLibrary
}
}
}
IO_VALUE
airCheck
=
KNDIOValue
(
Store_
IO_Type
.
Airpressure_Check
);
IO_VALUE
airCheck
=
KNDIOValue
(
IO_Type
.
Airpressure_Check
);
//气压检测按钮灭三秒以上才算关闭
if
(
airCheck
==
IO_VALUE
.
LOW
&&
(!
isInSuddenDown
))
{
...
...
@@ -942,8 +942,8 @@ namespace OnlineStore.DeviceLibrary
{
//判断是否需要出入库
if
(
StoreMove
.
MoveType
.
Equals
(
StoreMoveType
.
None
))
{
IO_VALUE
checkIO
=
KNDIOValue
(
Store_
IO_Type
.
TrayCheck_1
);
IO_VALUE
checkIO2
=
KNDIOValue
(
Store_
IO_Type
.
TrayCheck_2
);
IO_VALUE
checkIO
=
KNDIOValue
(
IO_Type
.
TrayCheck_1
);
IO_VALUE
checkIO2
=
KNDIOValue
(
IO_Type
.
TrayCheck_2
);
//判断料门口是否有料
if
((
checkIO
.
Equals
(
IO_VALUE
.
HIGH
))
&&
checkIO2
.
Equals
(
IO_VALUE
.
HIGH
))
{
...
...
@@ -1151,12 +1151,12 @@ namespace OnlineStore.DeviceLibrary
else
{
//定位气缸停止
KNDIOMove
(
Store_
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
LOW
);
KNDIOMove
(
Store_
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
);
KNDIOMove
(
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
LOW
);
KNDIOMove
(
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
);
}
LogUtil
.
info
(
LOGGER
,
StoreName
+
"StopMove"
);
KNDIOMove
(
Store_
IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
);
KNDIOMove
(
Store_
IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
);
KNDIOMove
(
IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
);
KNDIOMove
(
IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
);
Thread
.
Sleep
(
100
);
}
...
...
@@ -1247,7 +1247,7 @@ namespace OnlineStore.DeviceLibrary
int
storeId
=
int
.
Parse
(
posArray
[
0
]);
//根据发送的posId获取位置列表
KTKSAStorePostion
position
=
CSVPositionReader
<
KTKSAStorePos
tion
>.
GetPositon
(
posId
);
ACStorePosition
position
=
CSVPositionReader
<
ACStorePosi
tion
>.
GetPositon
(
posId
);
if
(
position
==
null
)
{
//出入库没有找到服务器发送的库位,需要打印日志方便查询原因
WarnMsg
=
"入库未找到库位:二维码【"
+
message
+
"】库位【"
+
posId
+
"】 "
;
...
...
@@ -1423,7 +1423,7 @@ namespace OnlineStore.DeviceLibrary
int
storeId
=
int
.
Parse
(
posArray
[
0
]);
//根据发送的posId获取位置列表
KTKSAStorePostion
position
=
CSVPositionReader
<
KTKSAStorePos
tion
>.
GetPositon
(
posId
);
ACStorePosition
position
=
CSVPositionReader
<
ACStorePosi
tion
>.
GetPositon
(
posId
);
if
(
position
==
null
)
{
//出入库没有找到服务器发送的库位,需要打印日志方便查询原因
...
...
@@ -1460,6 +1460,7 @@ namespace OnlineStore.DeviceLibrary
{
ConfigIO
configIo
=
Config
.
StoreDOList
[
ioType
];
KNDManager
.
WriteSingleDO
(
configIo
.
DeviceName
,
configIo
.
SlaveID
,
configIo
.
GetIOAddr
(),
ioValue
);
Thread
.
Sleep
(
60
);
}
else
{
...
...
source/DeviceLibrary/acSingleStore/AC_SA_BoxBean_Partial.cs
查看文件 @
10be948
...
...
@@ -44,7 +44,7 @@ namespace OnlineStore.DeviceLibrary
if
(
param
.
MoveP
==
null
)
{
LineMoveP
p
=
new
LineMoveP
();
KTKSAStorePostion
position
=
param
.
GetKTKSA
Position
();
ACStorePosition
position
=
param
.
GetAC
Position
();
if
(
position
==
null
)
{
LogUtil
.
error
(
LOGGER
,
StoreName
+
"出入库时发现param中取到的Position=null,没有库位不能执行出入库"
);
...
...
@@ -232,8 +232,8 @@ namespace OnlineStore.DeviceLibrary
//料盘检测
InStoreLog
(
" 入库【"
+
posId
+
"】处理:(SI_00_TrayCheck 检测料盘信号"
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SI_00_TrayCheck
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
TrayCheck_1
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
TrayCheck_2
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
TrayCheck_1
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
TrayCheck_2
,
IO_VALUE
.
HIGH
));
}
else
{
...
...
@@ -243,10 +243,10 @@ namespace OnlineStore.DeviceLibrary
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SI_02_InOutAxisHome
);
//打开门 ,门上升
KNDIOMove
(
Store_
IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
);
KNDIOMove
(
Store_
IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
));
KNDIOMove
(
IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
);
KNDIOMove
(
IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
));
//ACAxisMove(Config.InOut_Axis, param.MoveP.InOut_P1, Config.InOutAxis_P1_Speed, Config.InOut_Axis.StartSpeed);
InOutBackToP1
(
param
.
MoveP
.
InOut_P1
);
}
...
...
@@ -255,10 +255,10 @@ namespace OnlineStore.DeviceLibrary
InStoreLog
(
" 入库处理:(SI_01_LocationCylinderDown 定位气缸下降"
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SI_01_LocationCylinderDown
);
KNDIOMove
(
Store_
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
Store_
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
LOW
));
KNDIOMove
(
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
LOW
));
}
}
}
...
...
@@ -293,10 +293,10 @@ namespace OnlineStore.DeviceLibrary
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SI_02_InOutAxisHome
);
//打开门 ,门上升
KNDIOMove
(
Store_
IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
);
KNDIOMove
(
Store_
IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
));
KNDIOMove
(
IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
);
KNDIOMove
(
IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
));
//ACAxisMove(Config.InOut_Axis, moveP.InOut_P1, Config.InOutAxis_P1_Speed, Config.InOut_Axis.StartSpeed);
InOutBackToP1
(
moveP
.
InOut_P1
);
}
...
...
@@ -304,10 +304,10 @@ namespace OnlineStore.DeviceLibrary
{
InStoreLog
(
" 入库处理:(SI_01_LocationCylinderDown 定位气缸下降"
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SI_01_LocationCylinderDown
);
KNDIOMove
(
Store_
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
Store_
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
));
KNDIOMove
(
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
));
}
}
...
...
@@ -319,10 +319,10 @@ namespace OnlineStore.DeviceLibrary
InOutBackToP1
(
moveP
.
InOut_P1
);
//打开门 ,门上升
KNDIOMove
(
Store_
IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
);
KNDIOMove
(
Store_
IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
));
KNDIOMove
(
IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
);
KNDIOMove
(
IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
));
//ACAxisMove(Config.InOut_Axis, moveP.InOut_P1, Config.InOutAxis_P1_Speed, Config.InOut_Axis.StartSpeed);
}
else
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SI_02_InOutAxisHome
)
...
...
@@ -389,17 +389,17 @@ namespace OnlineStore.DeviceLibrary
ACAxisMove
(
Config
.
Middle_Axis
,
moveP
.
Middle_P2
,
Config
.
MiddleAxis_P2_Speed
,
Config
.
Middle_Axis
.
StartSpeed
);
ACAxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P3
,
Config
.
UpDownAxis_P3_Speed
,
Config
.
UpDown_Axis
.
StartSpeed
);
//关闭舱门
KNDIOMove
(
Store_
IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
Store_
IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
);
KNDIOMove
(
IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
);
}
else
{
InStoreLog
(
" 入库处理:(SI_08_LocationCylinder_Up 定位气缸伸出 (有压紧轴的不需要此步骤)开始"
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SI_08_LocationCylinder_Up
);
KNDIOMove
(
Store_
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
LOW
);
KNDIOMove
(
Store_
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
HIGH
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
LOW
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
HIGH
));
KNDIOMove
(
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
LOW
);
KNDIOMove
(
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
HIGH
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
LOW
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
HIGH
));
}
}
else
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SI_08_LocationCylinder_Up
)
...
...
@@ -409,8 +409,8 @@ namespace OnlineStore.DeviceLibrary
ACAxisMove
(
Config
.
Middle_Axis
,
moveP
.
Middle_P2
,
Config
.
MiddleAxis_P1_Speed
,
Config
.
Middle_Axis
.
StartSpeed
);
ACAxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P3
,
Config
.
UpDownAxis_P3_Speed
,
Config
.
UpDown_Axis
.
StartSpeed
);
//关闭舱门
KNDIOMove
(
Store_
IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
Store_
IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
);
KNDIOMove
(
IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
);
//StoreMove.WaitList.Add(WaitResultInfo.WaitIO(Store_IO_Type.Door_Down, IO_VALUE.HIGH));
//StoreMove.WaitList.Add(WaitResultInfo.WaitIO(Store_IO_Type.Door_Up, IO_VALUE.LOW));
}
...
...
@@ -427,15 +427,15 @@ namespace OnlineStore.DeviceLibrary
InStoreLog
(
" 入库处理:(SI_10_LocationCylinder_Down 定位气缸退回 (有压紧轴的不需要此步骤) )开始"
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SI_10_LocationCylinder_Down
);
KNDIOMove
(
Store_
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
Store_
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
));
KNDIOMove
(
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
));
}
}
else
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SI_10_LocationCylinder_Down
)
{
KNDIOMove
(
Store_
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
LOW
);
KNDIOMove
(
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
LOW
);
InStoreLog
(
" 入库处理:(SI_11_DeviceToBag 叉子进入库位中,轴3( 叉子) 至P3(库位取放料点))开始"
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SI_11_DeviceToBag
);
ACAxisMove
(
Config
.
InOut_Axis
,
moveP
.
InOut_P3
,
Config
.
InOutAxis_P3_Speed
,
Config
.
InOut_Axis
.
StartSpeed
);
...
...
@@ -481,10 +481,10 @@ namespace OnlineStore.DeviceLibrary
ACAxisMove
(
Config
.
Middle_Axis
,
moveP
.
Middle_P1
,
Config
.
MiddleAxis_P1_Speed
,
Config
.
Middle_Axis
.
StartSpeed
);
ACAxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P1
,
Config
.
UpDownAxis_P1_Speed
,
Config
.
UpDown_Axis
.
StartSpeed
);
//关闭门
KNDIOMove
(
Store_
IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
Store_
IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
));
KNDIOMove
(
IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
));
}
else
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SI_14_GoBack
)
{
...
...
@@ -533,19 +533,19 @@ namespace OnlineStore.DeviceLibrary
//ACAxisMove(Config.InOut_Axis, StoreMove.MoveParam.MoveP.InOut_P1, Config.InOutAxis_P1_Speed, Config.InOut_Axis.StartSpeed);
InOutBackToP1
(
StoreMove
.
MoveParam
.
MoveP
.
InOut_P1
);
//打开舱门
KNDIOMove
(
Store_
IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
Store_
IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
));
KNDIOMove
(
IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
));
}
else
{
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SO_01_LocationCylinderDown
);
OutStoreLog
(
" 出库处理:(SO_01_LocationCylinderDown 定位气缸下降"
);
KNDIOMove
(
Store_
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
Store_
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
));
KNDIOMove
(
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
));
//CylinderMove(StoreMove, Store_IO_Type.LocationCylinder_Up, Store_IO_Type.LocationCylinder_Down);
}
}
...
...
@@ -626,20 +626,20 @@ namespace OnlineStore.DeviceLibrary
ACAxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P2
,
Config
.
UpDownAxis_P2_Speed
,
Config
.
UpDown_Axis
.
StartSpeed
);
ACAxisMove
(
Config
.
Middle_Axis
,
moveP
.
Middle_P1
,
Config
.
MiddleAxis_P1_Speed
,
Config
.
Middle_Axis
.
StartSpeed
);
//打开舱门
KNDIOMove
(
Store_
IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
Store_
IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
));
KNDIOMove
(
IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
));
}
else
{
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SO_07_LocationCylinder_Up
);
OutStoreLog
(
" 出库处理: (SO_07_LocationCylinder_Up定位气缸伸出(有压紧轴的不需要此步骤),,定位气缸伸出 )开始"
);
//同时运动,电缸移动至入料口的上端位置 旋转电机2反转
KNDIOMove
(
Store_
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
LOW
);
KNDIOMove
(
Store_
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
HIGH
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
LOW
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
HIGH
));
KNDIOMove
(
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
LOW
);
KNDIOMove
(
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
HIGH
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
LOW
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
HIGH
));
}
}
else
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SO_07_LocationCylinder_Up
)
...
...
@@ -649,8 +649,8 @@ namespace OnlineStore.DeviceLibrary
ACAxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P2
,
Config
.
UpDownAxis_P2_Speed
,
Config
.
UpDown_Axis
.
StartSpeed
);
ACAxisMove
(
Config
.
Middle_Axis
,
moveP
.
Middle_P1
,
Config
.
MiddleAxis_P1_Speed
,
Config
.
Middle_Axis
.
StartSpeed
);
//此处需要等待box门口没有盘
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
TrayCheck_1
,
IO_VALUE
.
LOW
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
TrayCheck_2
,
IO_VALUE
.
LOW
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
TrayCheck_1
,
IO_VALUE
.
LOW
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
TrayCheck_2
,
IO_VALUE
.
LOW
));
}
else
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SO_08_ToDoorPosition
)
...
...
@@ -665,10 +665,10 @@ namespace OnlineStore.DeviceLibrary
{
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SO_09_LocationCylinder_Down
);
OutStoreLog
(
" 出库处理:(SO_09_LocationCylinder_Down定位气缸退回(有压紧轴的不需要此步骤),,定位气缸退回 )开始"
);
KNDIOMove
(
Store_
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
Store_
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
));
KNDIOMove
(
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
));
}
}
//此处需要等待移栽没有工作,才能把盘放入出料口
...
...
@@ -702,10 +702,10 @@ namespace OnlineStore.DeviceLibrary
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SO_13_GoBack
);
OutStoreLog
(
" 出库处理:(SO_13_GoBack升降轴返回,, 轴2至P1( 待机点))开始,关闭舱门!"
);
ACAxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P1
,
Config
.
UpDownAxis_P1_Speed
,
Config
.
UpDown_Axis
.
StartSpeed
);
KNDIOMove
(
Store_
IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
);
KNDIOMove
(
Store_
IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_
IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
));
KNDIOMove
(
IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
);
KNDIOMove
(
IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
));
}
else
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SO_13_GoBack
)
{
...
...
source/DeviceLibrary/ktkSingleStore/KTK_SA_BoxBean.cs
deleted
100644 → 0
查看文件 @
e1c28be
using
HalconDotNet
;
using
OnlineStore.Common
;
using
OnlineStore.LoadCSVLibrary
;
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
System.Threading
;
namespace
OnlineStore.DeviceLibrary
{
/// <summary>
/// 流水线自动料仓-Box类
/// </summary>
public
partial
class
KTK_SA_BoxBean
:
KTK_Store
{
/// <summary>
/// 开始运行
/// </summary>
public
static
bool
IsRun
=
false
;
public
string
CID
=
""
;
public
KTK_SA_Config
Config
;
/// <summary>
/// 记录最后一次 出库的posID,出库完成发送给服务器之后清除
/// </summary>
public
string
lastPosId
=
""
;
public
StoreStatus
lastPosIdStatus
=
StoreStatus
.
StoreOnline
;
/// <summary>
/// 轴列表
/// </summary>
public
List
<
ConfigMoveAxis
>
moveAxisList
=
new
List
<
ConfigMoveAxis
>();
/// <summary>
/// 轴报警信息
/// </summary>
private
Dictionary
<
ConfigMoveAxis
,
AxisAlarmInfo
>
AxisAlarmCodeMap
=
new
Dictionary
<
ConfigMoveAxis
,
AxisAlarmInfo
>();
/// <summary>
/// 湿度标准,超过后需要报警
/// </summary>
private
float
Max_Humidity
=
0
;
/// <summary>
/// 温度标准,超过后需要报警
/// </summary>
private
float
Max_Temperature
=
0
;
/// <summary>
/// 是否有压紧轴
/// </summary>
public
bool
IsHasCompress_Axis
=
true
;
private
System
.
Timers
.
Timer
serverConnectTimer
=
new
System
.
Timers
.
Timer
();
private
System
.
Timers
.
Timer
ledTimer
=
new
System
.
Timers
.
Timer
();
public
KTK_SA_BoxBean
(
KTK_SA_Config
config
)
{
Init
();
serverConnectTimer
=
new
System
.
Timers
.
Timer
();
serverConnectTimer
.
Interval
=
500
;
serverConnectTimer
.
AutoReset
=
true
;
serverConnectTimer
.
Enabled
=
false
;
serverConnectTimer
.
Elapsed
+=
server_connect_timer_Tick
;
ledTimer
.
Interval
=
500
;
ledTimer
.
Enabled
=
false
;
ledTimer
.
AutoReset
=
true
;
ledTimer
.
Elapsed
+=
ledTimer_Elapsed
;
//添加调试
if
(
config
.
IsInDebug
==
1
)
{
IsDebug
=
true
;
}
StoreName
=
(
"料仓BOX_"
+
config
.
Id
+
" "
).
ToUpper
();
this
.
StoreID
=
config
.
Id
;
this
.
Config
=
config
;
this
.
DIList
=
config
.
StoreDIList
;
this
.
DOList
=
config
.
StoreDOList
;
moveAxisList
=
new
List
<
ConfigMoveAxis
>();
MoveAxisConfig
();
List
<
KTKSAStorePostion
>
positionList
=
CSVPositionReader
<
KTKSAStorePostion
>.
getPositionList
();
PositionNumList
=
new
List
<
string
>();
foreach
(
KTKSAStorePostion
position
in
positionList
)
{
if
(
position
.
StoreId
.
Equals
(
StoreID
))
{
CheckPositionLimit
(
position
);
PositionNumList
.
Add
(
position
.
PositionNum
);
}
}
//初始化摄像机配置
HDevelopExport
.
LoadConfig
();
//初始化 //连接设备
KNDManager
.
ConnectionKND
(
Config
.
DIODeviceNameList
);
//初始化板卡
DeviceControl
.
InitDevice
(
Config
.
SMCDeviceNameList
,
new
List
<
string
>());
timersTimer
.
Enabled
=
false
;
int
isAuto
=
ConfigAppSettings
.
GetIntValue
(
Setting_Init
.
App_AutoRun
);
if
(
isAuto
==
1
)
{
timersTimer
.
Enabled
=
true
;
}
Thread
.
Sleep
(
300
);
//默认三个灯都亮
KNDIOMove
(
Store_IO_Type
.
Alarm_HddLed
,
IO_VALUE
.
LOW
);
KNDIOMove
(
Store_IO_Type
.
AutoRun_HddLed
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
Store_IO_Type
.
RunSign_HddLed
,
IO_VALUE
.
HIGH
);
ThreadPool
.
SetMaxThreads
(
5
,
5
);
}
private
void
CheckPositionLimit
(
KTKSAStorePostion
position
)
{
try
{
if
(
Config
.
Middle_Axis
.
PositionIsHasLimit
())
{
int
mMin
=
Config
.
Middle_Axis
.
PositionMin
;
int
mMax
=
Config
.
Middle_Axis
.
PositionMax
;
if
(
mMin
>
position
.
MiddleAxis_Position_P2
||
mMax
<
position
.
MiddleAxis_Position_P2
)
{
LogUtil
.
error
(
position
.
PositionNum
+
" MiddleAxis_Position_P2位置超出"
+
Config
.
Middle_Axis
.
Explain
+
"上下限("
+
mMin
+
"-"
+
mMax
+
")"
);
return
;
}
}
if
(
Config
.
InOut_Axis
.
PositionIsHasLimit
())
{
int
iMin
=
Config
.
InOut_Axis
.
PositionMin
;
int
iMax
=
Config
.
InOut_Axis
.
PositionMax
;
if
(
iMin
>
position
.
InOutAxis_DoorPosition_P2
||
iMax
<
position
.
InOutAxis_DoorPosition_P2
)
{
LogUtil
.
error
(
position
.
PositionNum
+
" InOutAxis_DoorPosition_P2位置超出"
+
Config
.
InOut_Axis
.
Explain
+
"上下限("
+
iMin
+
"-"
+
iMax
+
")"
);
return
;
}
if
(
iMin
>
position
.
InOutAxis_Position_P3
||
iMax
<
position
.
InOutAxis_Position_P3
)
{
LogUtil
.
error
(
position
.
PositionNum
+
" InOutAxis_Position_P3位置超出"
+
Config
.
InOut_Axis
.
Explain
+
"上下限("
+
iMin
+
"-"
+
iMax
+
")"
);
return
;
}
}
if
(
Config
.
UpDown_Axis
.
PositionIsHasLimit
())
{
int
uMin
=
Config
.
UpDown_Axis
.
PositionMin
;
int
uMax
=
Config
.
UpDown_Axis
.
PositionMax
;
if
(
uMin
>
position
.
UpDownAxis_IHPosition_P3
||
uMax
<
position
.
UpDownAxis_IHPosition_P3
)
{
LogUtil
.
error
(
position
.
PositionNum
+
" UpDownAxis_IHPosition_P3位置超出"
+
Config
.
UpDown_Axis
.
Explain
+
"上下限("
+
uMin
+
"-"
+
uMax
+
")"
);
return
;
}
if
(
uMin
>
position
.
UpDownAxis_ILPosition_P4
||
uMax
<
position
.
UpDownAxis_ILPosition_P4
)
{
LogUtil
.
error
(
position
.
PositionNum
+
" UpDownAxis_ILPosition_P4位置超出"
+
Config
.
UpDown_Axis
.
Explain
+
"上下限("
+
uMin
+
"-"
+
uMax
+
")"
);
return
;
}
if
(
uMin
>
position
.
UpDownAxis_OHPosition_P5
||
uMax
<
position
.
UpDownAxis_OHPosition_P5
)
{
LogUtil
.
error
(
position
.
PositionNum
+
" UpDownAxis_OHPosition_P5位置超出"
+
Config
.
UpDown_Axis
.
Explain
+
"上下限("
+
uMin
+
"-"
+
uMax
+
")"
);
return
;
}
if
(
uMin
>
position
.
UpDownAxis_OLPosition_P6
||
uMax
<
position
.
UpDownAxis_OLPosition_P6
)
{
LogUtil
.
error
(
position
.
PositionNum
+
" UpDownAxis_OLPosition_P6位置超出"
+
Config
.
UpDown_Axis
.
Explain
+
"上下限("
+
uMin
+
"-"
+
uMax
+
")"
);
return
;
}
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"验证"
+
position
.
PositionNum
+
"的位置范围出错:"
+
ex
.
ToString
());
}
}
/// <summary>
/// 配置速度,加减速时间
/// </summary>
public
void
MoveAxisConfig
()
{
Config
.
Middle_Axis
.
StartSpeed
=
Config
.
MiddleAxis_StartSpeed
;
Config
.
Middle_Axis
.
TargetSpeed
=
Config
.
MiddleAxis_TargetSpeed
;
Config
.
Middle_Axis
.
AccelTime
=
Config
.
MiddleAxis_AccelTime
;
Config
.
Middle_Axis
.
DecelTime
=
Config
.
MiddleAxis_DecelTime
;
Config
.
InOut_Axis
.
StartSpeed
=
Config
.
InoutAxis_StartSpeed
;
Config
.
InOut_Axis
.
TargetSpeed
=
Config
.
InoutAxis_TargetSpeed
;
Config
.
InOut_Axis
.
DecelTime
=
Config
.
InoutAxis_DecelTime
;
Config
.
InOut_Axis
.
AccelTime
=
Config
.
InoutAxis_AccelTime
;
Config
.
UpDown_Axis
.
StartSpeed
=
Config
.
UpdownAxis_StartSpeed
;
Config
.
UpDown_Axis
.
TargetSpeed
=
Config
.
UpdownAxis_TargetSpeed
;
Config
.
UpDown_Axis
.
AccelTime
=
Config
.
UpdownAxis_AccelTime
;
Config
.
UpDown_Axis
.
DecelTime
=
Config
.
UpdownAxis_DecelTime
;
Config
.
Middle_Axis
.
CanErrorCountMin
=
Config
.
MiddleAxis_ErrorCountMin
;
Config
.
InOut_Axis
.
CanErrorCountMin
=
Config
.
MiddleAxis_ErrorCountMin
;
Config
.
UpDown_Axis
.
CanErrorCountMin
=
Config
.
MiddleAxis_ErrorCountMin
;
Config
.
Middle_Axis
.
CanErrorCountMax
=
Config
.
MiddleAxis_ErrorCountMax
;
Config
.
InOut_Axis
.
CanErrorCountMax
=
Config
.
MiddleAxis_ErrorCountMax
;
Config
.
UpDown_Axis
.
CanErrorCountMax
=
Config
.
MiddleAxis_ErrorCountMax
;
Config
.
Middle_Axis
.
PositionMin
=
Config
.
MiddleAxis_PositionMin
;
Config
.
Middle_Axis
.
PositionMax
=
Config
.
MiddleAxis_PositionMax
;
Config
.
InOut_Axis
.
PositionMin
=
Config
.
InoutAxis_PositionMin
;
Config
.
InOut_Axis
.
PositionMax
=
Config
.
InoutAxis_PositionMax
;
Config
.
UpDown_Axis
.
PositionMin
=
Config
.
UpdownAxis_PositionMin
;
Config
.
UpDown_Axis
.
PositionMax
=
Config
.
UpdownAxis_PositionMax
;
Config
.
InOut_Axis
.
ResolveSpeed
=
Config
.
InoutAxis_ResolveSpeed
;
Config
.
UpDown_Axis
.
ResolveSpeed
=
Config
.
UpdownAxis_ResolveSpeed
;
Config
.
Middle_Axis
.
ResolveSpeed
=
Config
.
MiddleAxis_ResolveSpeed
;
Config
.
Middle_Axis
.
DefaultPosition
=
Config
.
MiddleAxis_P1_Position
;
Config
.
InOut_Axis
.
DefaultPosition
=
Config
.
InOutAxis_P1_Position
;
Config
.
UpDown_Axis
.
DefaultPosition
=
Config
.
UpDownAxis_DoorOPosition_P1
;
moveAxisList
=
new
List
<
ConfigMoveAxis
>();
moveAxisList
.
Add
(
Config
.
UpDown_Axis
);
moveAxisList
.
Add
(
Config
.
InOut_Axis
);
moveAxisList
.
Add
(
Config
.
Middle_Axis
);
this
.
AxisAlarmCodeMap
=
new
Dictionary
<
ConfigMoveAxis
,
AxisAlarmInfo
>();
this
.
AxisAlarmCodeMap
.
Add
(
Config
.
UpDown_Axis
,
new
AxisAlarmInfo
());
this
.
AxisAlarmCodeMap
.
Add
(
Config
.
InOut_Axis
,
new
AxisAlarmInfo
());
this
.
AxisAlarmCodeMap
.
Add
(
this
.
Config
.
Middle_Axis
,
new
AxisAlarmInfo
());
}
/// <summary>
/// 开始运行
/// </summary>
public
override
bool
StartRun
()
{
LogUtil
.
info
(
LOGGER
,
StoreName
+
"开始启动,启动时间:"
+
StartTime
.
ToString
());
if
(
ShuoKeControls
.
isRun
==
false
&&
(!
SAStoreManager
.
OpenShuoKe
(
this
)))
{
LogUtil
.
info
(
StoreName
+
"打开驱动器串口失败,启动失败!"
);
return
false
;
}
autoNext
=
false
;
timersTimer
.
Enabled
=
false
;
alarmType
=
StoreAlarmType
.
None
;
//急停按钮和气压检测需要一起判断
IO_VALUE
suddenBtn
=
KNDIOValue
(
Store_IO_Type
.
SuddenStop_BTN
);
IO_VALUE
airCheck
=
KNDIOValue
(
Store_IO_Type
.
Airpressure_Check
);
if
(
suddenBtn
==
IO_VALUE
.
HIGH
&&
airCheck
==
IO_VALUE
.
HIGH
)
//if (suddenBtn == IO_VALUE.HIGH )
{
lastAirValue
=
airCheck
;
lastAirCloseTime
=
DateTime
.
Now
;
RunAxis
();
//打开所有轴
if
(!
OpenAllAxis
())
{
return
false
;
}
storeRunStatus
=
StoreRunStatus
.
HomeMoving
;
//启动温湿度服务器
HumitureServer
.
StartTemperateServer
(
Config
.
TemperateServer_Port
);
if
(
Config
.
Scanner_Type
.
Equals
(
1
))
{
//TODO 启动扫码枪
}
else
{
//启动扫码枪
if
(!
isScannerRun
)
{
StartScanner
(
Config
.
Scanner_Ip
,
Config
.
Scanner_Port
);
}
}
ledTimer
.
Enabled
=
true
;
ReturnHome
();
StartTime
=
DateTime
.
Now
;
timersTimer
.
Enabled
=
true
;
serverConnectTimer
.
Enabled
=
true
;
IsRun
=
true
;
return
true
;
}
else
{
if
(
suddenBtn
.
Equals
(
IO_VALUE
.
LOW
))
{
LogUtil
.
error
(
LOGGER
,
" ("
+
StoreName
+
")启动出现错误:急停没开 !启动失败!"
);
}
else
{
LogUtil
.
error
(
LOGGER
,
" ("
+
StoreName
+
")启动出现错误:没有气压信号 !启动失败!"
);
}
return
false
;
}
}
#
region
原点返回和重置处理
private
void
ReturnHome
()
{
WarnMsg
=
""
;
CurrInOutACount
=
0
;
CurrInOutCount
=
0
;
KNDIOMove
(
Store_IO_Type
.
Alarm_HddLed
,
IO_VALUE
.
LOW
);
KNDIOMove
(
Store_IO_Type
.
AutoRun_HddLed
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
Store_IO_Type
.
RunSign_HddLed
,
IO_VALUE
.
LOW
);
Thread
.
Sleep
(
100
);
IsInBlowing
=
false
;
KNDIOMove
(
Store_IO_Type
.
StartOrStopBlow
,
IO_VALUE
.
LOW
);
storeRunStatus
=
StoreRunStatus
.
HomeMoving
;
StoreMove
.
NewMove
(
StoreMoveType
.
ReturnHome
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
BOX_H_InOutBack
);
AxisHomeMove
(
Config
.
InOut_Axis
);
LogUtil
.
info
(
LOGGER
,
StoreName
+
"开始原点返回,先把进出轴回原点"
);
//设置速度
SetShuokeSpeed
();
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
2000
));
}
public
void
SetShuokeSpeed
()
{
ShuoKeControls
.
SetSpeed
(
Config
.
CompressAxis_Slv
,
ShuoKeCMD
.
SetAddSpeed
,
Config
.
CompressAxis_AddSpeed
);
Thread
.
Sleep
(
100
);
ShuoKeControls
.
SetSpeed
(
Config
.
CompressAxis_Slv
,
ShuoKeCMD
.
SetDelSpeed
,
Config
.
CompressAxis_DelSpeed
);
Thread
.
Sleep
(
100
);
ShuoKeControls
.
SetSpeed
(
Config
.
CompressAxis_Slv
,
ShuoKeCMD
.
SetEndSpeed
,
Config
.
CompressAxis_EndSpeed
);
Thread
.
Sleep
(
100
);
ShuoKeControls
.
SetSpeed
(
Config
.
CompressAxis_Slv
,
ShuoKeCMD
.
SetHomeSpeed
,
Config
.
CompressAxis_HomeSpeed
);
Thread
.
Sleep
(
100
);
ShuoKeControls
.
SetSpeed
(
Config
.
CompressAxis_Slv
,
ShuoKeCMD
.
SetMaxSpeed
,
Config
.
CompressAxis_MaxSpeed
);
Thread
.
Sleep
(
100
);
ShuoKeControls
.
SetSpeed
(
Config
.
CompressAxis_Slv
,
ShuoKeCMD
.
SetStartSpeed
,
Config
.
CompressAxis_StartSpeed
);
}
public
void
MoveToP1
()
{
HDevelopExport
.
CloseAllCamera
();
//压紧轴回原点,叉子回到P1,关闭门旋转轴和升降轴回到P1
StoreMove
.
NewMove
(
StoreMoveType
.
StoreReset
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
BOX_M_H_TOP1_InOutToP1
);
LogUtil
.
info
(
LOGGER
,
StoreName
+
"到待机状态,进出轴到P1,判断叉子没有料盘"
);
AxisMove
(
Config
.
InOut_Axis
,
Config
.
InOutAxis_P1_Position
,
Config
.
InOutAxis_P1_Speed
,
Config
.
InOut_Axis
.
StartSpeed
);
//判断叉子没有料盘
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
TrayCheck_3
,
IO_VALUE
.
LOW
));
if
(
Config
.
StoreDIList
.
ContainsKey
(
Store_IO_Type
.
TrayCheck_4
))
{
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
TrayCheck_4
,
IO_VALUE
.
LOW
));
}
}
public
override
void
Reset
()
{
Reset
(
true
);
}
/// <summary>
/// 重置
/// </summary>
/// <param name="isNeedClearAuto">是否需要清理自动出入库</param>
public
void
Reset
(
bool
isNeedClearAuto
)
{
CurrInOutCount
=
0
;
CurrInOutACount
=
0
;
KNDIOMove
(
Store_IO_Type
.
Alarm_HddLed
,
IO_VALUE
.
LOW
);
Thread
.
Sleep
(
100
);
KNDIOMove
(
Store_IO_Type
.
AutoRun_HddLed
,
IO_VALUE
.
HIGH
);
Thread
.
Sleep
(
100
);
KNDIOMove
(
Store_IO_Type
.
RunSign_HddLed
,
IO_VALUE
.
LOW
);
Thread
.
Sleep
(
100
);
//复位之前先停止运行
if
(
isNeedClearAuto
)
{
autoNext
=
false
;
}
KTKSMCManager
.
StopMove
(
Config
.
Middle_Axis
.
DeviceName
,
Config
.
Middle_Axis
.
GetAxisValue
());
KTKSMCManager
.
StopMove
(
Config
.
UpDown_Axis
.
DeviceName
,
Config
.
UpDown_Axis
.
GetAxisValue
());
KTKSMCManager
.
StopMove
(
Config
.
InOut_Axis
.
DeviceName
,
Config
.
InOut_Axis
.
GetAxisValue
());
isInSuddenDown
=
false
;
isNoAirCheck
=
false
;
alarmType
=
StoreAlarmType
.
None
;
storeRunStatus
=
StoreRunStatus
.
Reset
;
storeStatus
=
StoreStatus
.
ResetMove
;
StoreMove
.
NewMove
(
StoreMoveType
.
StoreReset
);
WarnMsg
=
""
;
RunAxis
();
//打开四个轴
if
(!
OpenAllAxis
())
{
LogUtil
.
info
(
LOGGER
,
StoreName
+
"重置时打开轴失败,需要再次复位,直接报警停止复位"
);
}
HDevelopExport
.
CloseAllCamera
();
if
(
IsHasCompress_Axis
)
{
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
BOX_H_InOutBack
);
LogUtil
.
info
(
LOGGER
,
StoreName
+
"开始重置,先把进出轴回原点"
);
AxisHomeMove
(
Config
.
InOut_Axis
);
//硕科压紧轴回原点
SetShuokeSpeed
();
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
2000
));
}
else
{
LogUtil
.
info
(
LOGGER
,
StoreName
+
"开始重置:先定位气缸下降"
);
// 重置和回原点要等轴3进出轴ORG亮了以后才能返回其他轴
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
BOX_H_LocationCylinderBack
);
KNDIOMove
(
Store_IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
Store_IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
));
}
}
/// <summary>
/// 重置处理
/// </summary>
protected
override
void
ResetProcess
()
{
if
(
StoreMove
.
IsInWait
)
{
CheckWait
();
}
if
(
StoreMove
.
IsInWait
)
{
return
;
}
switch
(
StoreMove
.
MoveStep
)
{
case
StoreMoveStep
.
BOX_H_LocationCylinderBack
:
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
BOX_H_InOutBack
);
LogUtil
.
info
(
LOGGER
,
StoreName
+
"重置中,进出轴回原点"
);
//重置和回原点要等轴3进出轴ORG亮了以后才能返回其他轴
AxisHomeMove
(
Config
.
InOut_Axis
);
break
;
case
StoreMoveStep
.
BOX_H_InOutBack
:
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
BOX_H_InOutBackWait
);
LogUtil
.
info
(
LOGGER
,
StoreName
+
"重置中 ,进出轴已经回原点 ,等待1000毫秒清空位置"
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
1000
));
break
;
case
StoreMoveStep
.
BOX_H_InOutBackWait
:
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
BOX_H_InOutToP1
);
LogUtil
.
info
(
LOGGER
,
StoreName
+
"重置中 ,进出轴已经回原点 , 并且进出轴退回P1点,关闭舱门,判断叉子没料盘"
);
//进出轴原点返回完成,将进出轴的位置设置=0
AxisCountClear
(
Config
.
InOut_Axis
);
AxisMove
(
Config
.
InOut_Axis
,
Config
.
InOutAxis_P1_Position
,
Config
.
InOutAxis_P1_Speed
,
Config
.
InOut_Axis
.
StartSpeed
);
//判断叉子没有料盘
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
TrayCheck_3
,
IO_VALUE
.
LOW
));
if
(
Config
.
StoreDIList
.
ContainsKey
(
Store_IO_Type
.
TrayCheck_4
))
{
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
TrayCheck_4
,
IO_VALUE
.
LOW
));
}
//关闭舱门
KNDIOMove
(
Store_IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
Store_IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
));
break
;
case
StoreMoveStep
.
BOX_H_InOutToP1
:
//如果此时轴三还在报警,需要提示错误并等待
if
(
KTKSMCManager
.
GetAlarmIO
(
Config
.
InOut_Axis
.
DeviceName
,
Config
.
InOut_Axis
.
GetAxisValue
()).
Equals
(
IO_VALUE
.
HIGH
))
{
LogUtil
.
error
(
LOGGER
,
"进出轴报警!重置失败,请检查!"
);
}
//重置和回原点要等轴3进出轴ORG亮了以后才能返回其他轴
LogUtil
.
info
(
LOGGER
,
StoreName
+
"重置中: 压紧轴,旋转轴,上下轴开始 原点返回"
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
BOX_H_OtherAxisBack
);
ShuoKeControls
.
HomeMove
(
Config
.
CompressAxis_Slv
,
1
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitShuoKe
(
Config
.
CompressAxis_Slv
,
1
,
true
));
AxisHomeMove
(
Config
.
Middle_Axis
);
AxisHomeMove
(
Config
.
UpDown_Axis
);
break
;
case
StoreMoveStep
.
BOX_H_OtherAxisBack
:
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
BOX_H_WaitAxisCountClear
);
LogUtil
.
info
(
LOGGER
,
StoreName
+
"重置中:等待1500后清理 轴的位置!"
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
1500
));
break
;
case
StoreMoveStep
.
BOX_H_WaitAxisCountClear
:
LogUtil
.
info
(
LOGGER
,
StoreName
+
"重置中:压紧轴,旋转轴,上下轴计数器清空!"
);
AxisCountClear
(
Config
.
Middle_Axis
);
AxisCountClear
(
Config
.
UpDown_Axis
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
BOX_H_MiddleAxisToP1
);
LogUtil
.
info
(
LOGGER
,
StoreName
+
"重置中:旋转轴运动到P1,上下轴走到P1 !"
);
AxisMove
(
Config
.
Middle_Axis
,
Config
.
MiddleAxis_P1_Position
,
Config
.
MiddleAxis_P1_Speed
,
Config
.
Middle_Axis
.
StartSpeed
);
AxisMove
(
Config
.
UpDown_Axis
,
Config
.
UpDownAxis_DoorOPosition_P1
,
Config
.
UpDownAxis_P1_Speed
,
Config
.
UpDown_Axis
.
StartSpeed
);
//打开摄像机
HDevelopExport
.
OpenAllCamera
();
break
;
case
StoreMoveStep
.
BOX_H_MiddleAxisToP1
:
LogUtil
.
info
(
LOGGER
,
StoreName
+
"重置完成"
);
storeRunStatus
=
StoreRunStatus
.
Runing
;
StoreMove
.
EndMove
();
storeStatus
=
StoreStatus
.
StoreOnline
;
if
(
alarmType
.
Equals
(
StoreAlarmType
.
None
))
{
WarnMsg
=
""
;
}
break
;
case
StoreMoveStep
.
BOX_M_H_TOP1_InOutToP1
:
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
BOX_M_H_TOP1_CompressHome
);
LogUtil
.
info
(
LOGGER
,
StoreName
+
"到待机状态,压紧轴回原点,关闭舱门"
);
ShuoKeControls
.
HomeMove
(
Config
.
CompressAxis_Slv
,
1
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitShuoKe
(
Config
.
CompressAxis_Slv
,
0
,
true
));
//关闭舱门
KNDIOMove
(
Store_IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
Store_IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
));
break
;
case
StoreMoveStep
.
BOX_M_H_TOP1_CompressHome
:
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
BOX_M_H_TOP1_OtherAxisToP1
);
LogUtil
.
info
(
LOGGER
,
StoreName
+
"重置中:旋转轴运动到P1,上下轴走到P1, !"
);
AxisMove
(
Config
.
Middle_Axis
,
Config
.
MiddleAxis_P1_Position
,
Config
.
MiddleAxis_P1_Speed
,
Config
.
Middle_Axis
.
StartSpeed
);
AxisMove
(
Config
.
UpDown_Axis
,
Config
.
UpDownAxis_DoorOPosition_P1
,
Config
.
UpDownAxis_P1_Speed
,
Config
.
UpDown_Axis
.
StartSpeed
);
//打开摄像机
HDevelopExport
.
OpenAllCamera
();
break
;
case
StoreMoveStep
.
BOX_M_H_TOP1_OtherAxisToP1
:
LogUtil
.
info
(
LOGGER
,
StoreName
+
"到待机状态完成"
);
StoreMove
.
EndMove
();
storeStatus
=
StoreStatus
.
StoreOnline
;
storeRunStatus
=
StoreRunStatus
.
Runing
;
if
(
alarmType
.
Equals
(
StoreAlarmType
.
None
))
{
WarnMsg
=
""
;
}
break
;
default
:
break
;
}
}
/// <summary>
/// 原点返回处理
/// </summary>
protected
override
void
ReturnHomeProcess
()
{
if
(
StoreMove
.
IsInWait
)
{
CheckWait
();
}
if
(
StoreMove
.
IsInWait
)
{
return
;
}
switch
(
StoreMove
.
MoveStep
)
{
case
StoreMoveStep
.
BOX_H_LocationCylinderBack
:
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
BOX_H_InOutBack
);
LogUtil
.
info
(
LOGGER
,
StoreName
+
"原点返回中,进出轴回原点"
);
//重置和回原点要等轴3进出轴ORG亮了以后才能返回其他轴
AxisHomeMove
(
Config
.
InOut_Axis
);
break
;
case
StoreMoveStep
.
BOX_H_InOutBack
:
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
BOX_H_InOutBackWait
);
LogUtil
.
info
(
LOGGER
,
StoreName
+
"原点返回中 ,进出轴已经回原点 ,等待1000毫秒清空位置"
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
1000
));
break
;
case
StoreMoveStep
.
BOX_H_InOutBackWait
:
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
BOX_H_InOutToP1
);
LogUtil
.
info
(
LOGGER
,
StoreName
+
"原点返回中,进出轴已经回原点, 进出轴退回P1点,关闭仓门,检测叉子没有料盘"
);
//进出轴原点返回完成,将进出轴的位置设置=0
AxisCountClear
(
Config
.
InOut_Axis
);
AxisMove
(
Config
.
InOut_Axis
,
Config
.
InOutAxis_P1_Position
,
Config
.
InOutAxis_P1_Speed
,
Config
.
InOut_Axis
.
StartSpeed
);
//判断叉子没有料盘
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
TrayCheck_3
,
IO_VALUE
.
LOW
));
if
(
Config
.
StoreDIList
.
ContainsKey
(
Store_IO_Type
.
TrayCheck_4
))
{
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
TrayCheck_4
,
IO_VALUE
.
LOW
));
}
//关闭舱门
KNDIOMove
(
Store_IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
Store_IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
));
break
;
case
StoreMoveStep
.
BOX_H_InOutToP1
:
//如果此时轴三还在报警,需要提示错误并等待
if
(
KTKSMCManager
.
GetAlarmIO
(
Config
.
InOut_Axis
.
DeviceName
,
Config
.
InOut_Axis
.
GetAxisValue
()).
Equals
(
IO_VALUE
.
HIGH
))
{
WarnMsg
=
"进出轴报警!重置失败,请检查!"
;
LogUtil
.
error
(
LOGGER
,
"进出轴报警!重置失败,请检查!"
);
}
//重置和回原点要等轴3进出轴ORG亮了以后才能返回其他轴
LogUtil
.
info
(
LOGGER
,
StoreName
+
"原点返回中 :压紧轴,旋转轴,上下轴开始原点返回"
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
BOX_H_OtherAxisBack
);
ShuoKeControls
.
HomeMove
(
Config
.
CompressAxis_Slv
,
1
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitShuoKe
(
Config
.
CompressAxis_Slv
,
0
,
true
));
AxisHomeMove
(
Config
.
Middle_Axis
);
AxisHomeMove
(
Config
.
UpDown_Axis
);
break
;
case
StoreMoveStep
.
BOX_H_OtherAxisBack
:
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
BOX_H_WaitAxisCountClear
);
LogUtil
.
info
(
LOGGER
,
StoreName
+
"原点返回中:等待1500后清理压紧轴,旋转轴,上下轴的位置!"
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
1500
));
break
;
case
StoreMoveStep
.
BOX_H_WaitAxisCountClear
:
LogUtil
.
info
(
LOGGER
,
StoreName
+
"原点返回中:压紧轴,旋转轴,上下轴计数器清空!"
);
AxisCountClear
(
Config
.
Middle_Axis
);
AxisCountClear
(
Config
.
UpDown_Axis
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
BOX_H_MiddleAxisToP1
);
LogUtil
.
info
(
LOGGER
,
StoreName
+
"原点返回中:旋转轴运动到P1,上下轴到P1!"
);
AxisMove
(
Config
.
Middle_Axis
,
Config
.
MiddleAxis_P1_Position
,
Config
.
MiddleAxis_P1_Speed
,
Config
.
Middle_Axis
.
StartSpeed
);
AxisMove
(
Config
.
UpDown_Axis
,
Config
.
UpDownAxis_DoorOPosition_P1
,
Config
.
UpDownAxis_P1_Speed
,
Config
.
UpDown_Axis
.
StartSpeed
);
//打开摄像机
HDevelopExport
.
OpenAllCamera
();
break
;
case
StoreMoveStep
.
BOX_H_MiddleAxisToP1
:
LogUtil
.
info
(
LOGGER
,
StoreName
+
"原点返回完成"
);
storeRunStatus
=
StoreRunStatus
.
Runing
;
StoreMove
.
EndMove
();
storeStatus
=
StoreStatus
.
StoreOnline
;
WarnMsg
=
""
;
break
;
default
:
break
;
}
}
#
endregion
public
void
RunAxis
()
{
KNDIOMove
(
Store_IO_Type
.
Run_Sign
,
IO_VALUE
.
HIGH
);
Thread
.
Sleep
(
100
);
//打开所有轴
foreach
(
ConfigMoveAxis
moveAxis
in
moveAxisList
)
{
KTKSMCManager
.
InitAxis
(
moveAxis
.
DeviceName
,
moveAxis
.
GetAxisValue
());
KTKSMCManager
.
ClearAlarm
(
moveAxis
.
DeviceName
,
moveAxis
.
GetAxisValue
());
KTKSMCManager
.
OpenOrCloseAxis
(
moveAxis
,
1
);
}
Thread
.
Sleep
(
100
);
KNDIOMove
(
Store_IO_Type
.
Axis_Brake
,
IO_VALUE
.
HIGH
);
}
/// <summary>
/// 打开所有轴
/// </summary>
/// <returns></returns>
private
bool
OpenAllAxis
()
{
//判断轴是否正常
foreach
(
ConfigMoveAxis
axis
in
moveAxisList
)
{
//IN7
IO_VALUE
in7Value
=
KTKSMCManager
.
WGetDigitalIn
(
axis
.
DeviceName
,
axis
.
GetAxisValue
(),
7
);
//报警
IO_VALUE
alarmIo
=
KTKSMCManager
.
GetAlarmIO
(
axis
.
DeviceName
,
axis
.
GetAxisValue
());
if
(
in7Value
==
IO_VALUE
.
HIGH
&&
alarmIo
==
IO_VALUE
.
LOW
)
{
LogUtil
.
info
(
LOGGER
,
StoreName
+
"成功打开轴:"
+
axis
.
Explain
);
}
else
{
//清理报警,再重新打开一次
LogUtil
.
info
(
LOGGER
,
StoreName
+
"第一次打开轴"
+
axis
.
Explain
+
"失败,先清理一下报警,再重新打开一次"
);
KTKSMCManager
.
ClearAlarm
(
axis
.
DeviceName
,
axis
.
GetAxisValue
());
System
.
Threading
.
Thread
.
Sleep
(
1200
);
KTKSMCManager
.
OpenOrCloseAxis
(
axis
,
1
);
//IN7
in7Value
=
KTKSMCManager
.
WGetDigitalIn
(
axis
.
DeviceName
,
axis
.
GetAxisValue
(),
7
);
//报警
alarmIo
=
KTKSMCManager
.
GetAlarmIO
(
axis
.
DeviceName
,
axis
.
GetAxisValue
());
if
(
in7Value
==
IO_VALUE
.
HIGH
&&
alarmIo
==
IO_VALUE
.
LOW
)
{
LogUtil
.
info
(
LOGGER
,
StoreName
+
"清理报警后重新打卡轴成功:"
+
axis
.
Explain
);
}
else
{
KTKSMCManager
.
OpenOrCloseAxis
(
axis
,
0
);
int
alarmCode
=
GetAlarmCodeByAxis
(
axis
);
WarnMsg
=
StoreName
+
"打开轴"
+
axis
.
Explain
+
"失败 "
;
LogUtil
.
info
(
LOGGER
,
StoreName
+
" 打开轴"
+
axis
.
Explain
+
"失败,in7Value="
+
in7Value
+
",alarmIo="
+
alarmIo
+
",直接关闭轴"
);
Alarm
(
StoreAlarmType
.
AxisAlarm
,
GetAlarmCodeByAxis
(
axis
).
ToString
(),
WarnMsg
,
StoreMove
.
MoveType
);
return
false
;
}
}
}
return
true
;
}
private
void
CloseAllAxis
()
{
foreach
(
ConfigMoveAxis
axis
in
moveAxisList
)
{
KTKSMCManager
.
OpenOrCloseAxis
(
axis
,
0
);
}
KNDIOMove
(
Store_IO_Type
.
Run_Sign
,
IO_VALUE
.
LOW
);
Thread
.
Sleep
(
100
);
KNDIOMove
(
Store_IO_Type
.
Axis_Brake
,
IO_VALUE
.
LOW
);
}
private
int
GetAlarmCodeByAxis
(
ConfigMoveAxis
axis
)
{
int
alarmCode
=
LineAlarm
.
InOutAxisAlarm
;
int
axisType
=
axis
.
GetAxisValue
()
%
4
;
if
(
axisType
==
1
)
{
alarmCode
=
LineAlarm
.
MiddleAxisAlarm
;
}
else
if
(
axisType
==
2
)
{
alarmCode
=
LineAlarm
.
UpDownAxisAlarm
;
}
else
if
(
axisType
==
3
)
{
alarmCode
=
LineAlarm
.
InOutAxisAlarm
;
}
else
{
alarmCode
=
LineAlarm
.
CompressAxisAlarm
;
}
return
alarmCode
;
}
/// <summary>
/// 停止运行
/// </summary>
public
override
void
StopRun
()
{
autoNext
=
false
;
serverConnectTimer
.
Enabled
=
false
;
ledTimer
.
Enabled
=
false
;
StopMove
();
storeRunStatus
=
StoreRunStatus
.
Wait
;
timersTimer
.
Enabled
=
false
;
CloseAllAxis
();
TimeSpan
span
=
DateTime
.
Now
-
StartTime
;
IsRun
=
false
;
if
(
IsInBlowing
)
{
Thread
.
Sleep
(
100
);
KNDIOMove
(
Store_IO_Type
.
StartOrStopBlow
,
IO_VALUE
.
LOW
);
IsInBlowing
=
false
;
LastEndBlowTime
=
DateTime
.
Now
;
}
KNDManager
.
CloseAllDO
();
ShuoKeControls
.
ClosePort
();
HumitureServer
.
StopTemperateServer
();
if
(
Config
.
Scanner_Type
.
Equals
(
1
))
{
//TODO 停止扫码枪
}
else
{
StopScanner
();
}
LogUtil
.
info
(
LOGGER
,
StoreName
+
",停止运行,总运行时间:"
+
span
.
ToString
());
}
public
override
void
Alarm
(
StoreAlarmType
alarmType
,
string
alarmDetial
,
string
alarmMsg
,
StoreMoveType
storeMoveType
)
{
SaveAlarmInfo
(
alarmType
,
alarmDetial
,
alarmMsg
,
storeMoveType
);
autoNext
=
false
;
if
(
this
.
alarmType
.
Equals
(
alarmType
)
&&
alarmType
!=
StoreAlarmType
.
SuddenStop
&&
alarmType
!=
StoreAlarmType
.
NoAirCheck
)
{
return
;
}
LogUtil
.
error
(
LOGGER
,
StoreName
+
"XXXXXXXXXXXXXXXXXXXX 报警,报警类型:"
+
alarmType
);
if
(
alarmType
!=
StoreAlarmType
.
IoSingleTimeOut
)
{
StopMove
();
}
this
.
alarmType
=
alarmType
;
if
(
alarmType
==
StoreAlarmType
.
AxisAlarm
)
{
LogUtil
.
error
(
LOGGER
,
StoreName
+
"轴报警,关闭轴,打开报警灯"
);
CloseAllAxis
();
}
else
if
(
alarmType
==
StoreAlarmType
.
SuddenStop
)
{
isInSuddenDown
=
true
;
LogUtil
.
error
(
LOGGER
,
StoreName
+
"收到急停信号,关闭所有轴卡,关闭所有IO,停止所有运动"
);
CloseAllAxis
();
StoreMove
.
EndMove
();
storeStatus
=
StoreStatus
.
SuddenStop
;
}
else
if
(
alarmType
.
Equals
(
StoreAlarmType
.
NoAirCheck
))
{
isNoAirCheck
=
true
;
LogUtil
.
error
(
LOGGER
,
StoreName
+
" 未检测到气压信号 ,关闭所有轴卡,关闭所有IO,停止所有运动"
);
CloseAllAxis
();
StoreMove
.
EndMove
();
storeStatus
=
StoreStatus
.
SuddenStop
;
}
}
private
bool
InProcess
=
false
;
protected
override
void
timersTimer_Elapsed
(
object
sender
,
System
.
Timers
.
ElapsedEventArgs
e
)
{
if
(
InProcess
)
{
return
;
}
try
{
InProcess
=
true
;
IoCheckProcess
();
TimerProcess
();
}
catch
(
Exception
ex
)
{
LOGGER
.
Error
(
StoreName
+
"Timer定时处理出错:"
+
ex
.
ToString
());
}
InProcess
=
false
;
}
private
bool
ledInProcess
=
false
;
void
ledTimer_Elapsed
(
object
sender
,
System
.
Timers
.
ElapsedEventArgs
e
)
{
if
(
ledInProcess
)
{
return
;
}
try
{
ledInProcess
=
true
;
//灯处理
LedProcess
();
}
catch
(
Exception
ex
)
{
LOGGER
.
Error
(
StoreName
+
"LED定时处理出错:"
+
ex
.
ToString
());
}
ledInProcess
=
false
;
}
private
void
LedProcess
()
{
try
{
if
(
storeRunStatus
.
Equals
(
StoreRunStatus
.
Wait
))
{
return
;
}
DateTime
time
=
DateTime
.
Now
;
//黄灯
if
(
IsNotScanCode
||
storeRunStatus
.
Equals
(
StoreRunStatus
.
HomeMoving
)
||
storeRunStatus
.
Equals
(
StoreRunStatus
.
Reset
))
{
//开机执行中时黄灯闪烁
if
(
KNDIOValue
(
Store_IO_Type
.
RunSign_HddLed
).
Equals
(
IO_VALUE
.
HIGH
))
{
Thread
.
Sleep
(
60
);
KNDIOMove
(
Store_IO_Type
.
RunSign_HddLed
,
IO_VALUE
.
LOW
);
}
else
{
Thread
.
Sleep
(
60
);
KNDIOMove
(
Store_IO_Type
.
RunSign_HddLed
,
IO_VALUE
.
HIGH
);
}
}
else
{
if
(
KNDIOValue
(
Store_IO_Type
.
RunSign_HddLed
).
Equals
(
IO_VALUE
.
HIGH
))
{
Thread
.
Sleep
(
60
);
KNDIOMove
(
Store_IO_Type
.
RunSign_HddLed
,
IO_VALUE
.
LOW
);
}
}
//绿灯亮
//出入库执行中,绿灯闪烁
if
((
StoreMove
.
MoveType
.
Equals
(
StoreMoveType
.
InStore
)
||
StoreMove
.
MoveType
.
Equals
(
StoreMoveType
.
OutStore
))
&&
KNDIOValue
(
Store_IO_Type
.
AutoRun_HddLed
).
Equals
(
IO_VALUE
.
HIGH
))
{
Thread
.
Sleep
(
60
);
KNDIOMove
(
Store_IO_Type
.
AutoRun_HddLed
,
IO_VALUE
.
LOW
);
}
else
{
if
(
KNDIOValue
(
Store_IO_Type
.
AutoRun_HddLed
).
Equals
(
IO_VALUE
.
LOW
))
{
Thread
.
Sleep
(
60
);
KNDIOMove
(
Store_IO_Type
.
AutoRun_HddLed
,
IO_VALUE
.
HIGH
);
}
}
bool
isNeedAlarmLed
=
false
;
//报警灯
if
(!
alarmType
.
Equals
(
StoreAlarmType
.
None
)
||
isNoAirCheck
||
isInSuddenDown
||
TempOrHumidityIsAlarm
)
{
isNeedAlarmLed
=
true
;
}
if
(
isNeedAlarmLed
)
{
if
(
KNDIOValue
(
Store_IO_Type
.
Alarm_HddLed
).
Equals
(
IO_VALUE
.
LOW
))
{
Thread
.
Sleep
(
60
);
KNDIOMove
(
Store_IO_Type
.
Alarm_HddLed
,
IO_VALUE
.
HIGH
);
}
}
else
{
if
(
KNDIOValue
(
Store_IO_Type
.
Alarm_HddLed
).
Equals
(
IO_VALUE
.
HIGH
))
{
Thread
.
Sleep
(
60
);
KNDIOMove
(
Store_IO_Type
.
Alarm_HddLed
,
IO_VALUE
.
LOW
);
}
}
}
catch
(
Exception
ex
)
{
LOGGER
.
Error
(
StoreName
+
"灯处理定时器出错:"
,
ex
);
}
}
private
IO_VALUE
lastReset
=
IO_VALUE
.
LOW
;
private
IO_VALUE
lastAirValue
=
IO_VALUE
.
LOW
;
public
void
IoCheckProcess
()
{
DateTime
time
=
DateTime
.
Now
;
if
(
storeRunStatus
.
Equals
(
StoreRunStatus
.
Wait
))
{
//取新的Io状态
IO_VALUE
resetValue
=
KNDIOValue
(
Store_IO_Type
.
Reset_BTN
);
if
(
ConfigAppSettings
.
GetIntValue
(
Setting_Init
.
App_AutoRun
)
==
1
)
{
if
(
resetValue
.
Equals
(
IO_VALUE
.
HIGH
)
&&
lastReset
.
Equals
(
IO_VALUE
.
LOW
))
{
//没有启动时收到复位按钮,相当于启动按钮
LogUtil
.
info
(
LOGGER
,
StoreName
+
"没有启动时收到复位按钮,相当于启动按钮,开始调用启动方法!"
);
bool
result
=
StartRun
();
if
(
result
.
Equals
(
false
))
{
LogUtil
.
error
(
"料仓启动失败,重新打卡定时器等待下次启动!"
);
int
isAuto
=
ConfigAppSettings
.
GetIntValue
(
Setting_Init
.
App_AutoRun
);
if
(
isAuto
==
1
)
{
timersTimer
.
Enabled
=
true
;
}
}
}
lastReset
=
resetValue
;
return
;
}
lastReset
=
resetValue
;
}
//判断急停
else
if
(
storeRunStatus
>=
StoreRunStatus
.
HomeMoving
)
{
//取新的Io状态
IO_VALUE
suddenBtn
=
KNDIOValue
(
Store_IO_Type
.
SuddenStop_BTN
);
IO_VALUE
resetBtn
=
KNDIOValue
(
Store_IO_Type
.
Reset_BTN
);
//急停按钮
if
(
suddenBtn
.
Equals
(
IO_VALUE
.
LOW
))
{
if
(
isInSuddenDown
.
Equals
(
false
))
{
isInSuddenDown
=
true
;
LogUtil
.
error
(
LOGGER
,
StoreName
+
"收到急停信号,报警急停"
);
WarnMsg
=
StoreName
+
"收到急停信号,报警急停"
;
//报警时会关闭所有轴
Alarm
(
StoreAlarmType
.
SuddenStop
,
"1"
,
WarnMsg
,
StoreMoveType
.
None
);
}
}
else
if
(
resetBtn
.
Equals
(
IO_VALUE
.
HIGH
))
{
//收到复位信号,若报警直接复位,若不报警且无操作,回到待机点
if
(
alarmType
.
Equals
(
StoreAlarmType
.
None
)
&&
isInSuddenDown
.
Equals
(
false
)
&&
isNoAirCheck
.
Equals
(
false
))
{
if
(
StoreMove
.
MoveType
.
Equals
(
StoreMoveType
.
None
))
{
LogUtil
.
info
(
LOGGER
,
"收到复位信号但是没有报警,且当前无操作,只回到待机点"
);
MoveToP1
();
}
else
{
LogUtil
.
info
(
LOGGER
,
"收到复位信号但是已经在"
+
StoreMove
.
MoveType
+
"处理中,且无报警,不处理"
);
//WarnMsg = "收到复位信号但是已经在" + StoreMove.MoveType + "处理中,且无报警,不处理";
}
}
else
{
//收到复位信号
LogUtil
.
info
(
LOGGER
,
"收到复位信号,自动复位"
);
WarnMsg
=
"收到复位信号,自动复位"
;
Reset
();
}
}
}
IO_VALUE
airCheck
=
KNDIOValue
(
Store_IO_Type
.
Airpressure_Check
);
//气压检测按钮灭三秒以上才算关闭
if
(
airCheck
==
IO_VALUE
.
LOW
&&
(!
isInSuddenDown
))
{
int
checkSenconds
=
Config
.
AirCheckSeconds
;
LogUtil
.
info
(
LOGGER
,
StoreName
+
"未检测到气压信号,判断未检测到信号持续的时间是否"
+
checkSenconds
+
"以上!"
);
//判断是否持续
if
(
lastAirValue
==
IO_VALUE
.
LOW
)
{
if
((!
isNoAirCheck
)
&&
(
DateTime
.
Now
-
lastAirCloseTime
).
TotalSeconds
>
checkSenconds
)
{
isNoAirCheck
=
true
;
//没有了气压检测信号
LogUtil
.
error
(
LOGGER
,
StoreName
+
" 未检测到气压信号!"
);
WarnMsg
=
StoreName
+
" 未检测到气压信号"
;
//报警时会关闭所有轴
Alarm
(
StoreAlarmType
.
NoAirCheck
,
"2"
,
WarnMsg
,
StoreMoveType
.
None
);
}
}
else
{
lastAirValue
=
airCheck
;
lastAirCloseTime
=
DateTime
.
Now
;
isNoAirCheck
=
false
;
}
}
else
{
lastAirValue
=
airCheck
;
lastAirCloseTime
=
DateTime
.
Now
;
isNoAirCheck
=
false
;
}
//检查运动轴报警
if
(
storeRunStatus
>=
StoreRunStatus
.
HomeMoving
&&
(!
isInSuddenDown
))
{
CheckAxisAlarm
();
}
}
public
void
TimerProcess
()
{
try
{
DateTime
time
=
DateTime
.
Now
;
if
(
StoreMove
.
MoveType
!=
StoreMoveType
.
None
)
{
isWaitScan
=
false
;
IsNotScanCode
=
false
;
IsScanCode
=
false
;
BusyMoveProcess
();
}
else
if
(
storeRunStatus
.
Equals
(
StoreRunStatus
.
Runing
))
{
//判断是否需要出入库
if
(
StoreMove
.
MoveType
.
Equals
(
StoreMoveType
.
None
))
{
IO_VALUE
checkIO
=
KNDIOValue
(
Store_IO_Type
.
TrayCheck_1
);
IO_VALUE
checkIO2
=
IO_VALUE
.
HIGH
;
if
(
Config
.
StoreDIList
.
ContainsKey
(
Store_IO_Type
.
TrayCheck_2
))
{
checkIO2
=
KNDIOValue
(
Store_IO_Type
.
TrayCheck_2
);
}
//需要扫码入库
if
(((
checkIO
.
Equals
(
IO_VALUE
.
HIGH
))
&&
checkIO2
.
Equals
(
IO_VALUE
.
HIGH
))
||
(
KNDIOValue
(
Store_IO_Type
.
AutoRun_Single
).
Equals
(
IO_VALUE
.
HIGH
)))
{
//打开光源
if
(
KNDIOValue
(
Store_IO_Type
.
CameraLight_Power
).
Equals
(
IO_VALUE
.
LOW
))
{
Thread
.
Sleep
(
60
);
KNDIOMove
(
Store_IO_Type
.
CameraLight_Power
,
IO_VALUE
.
HIGH
);
}
//不需要验证是否扫码,服务器会通知扫码
//if (IsScanCode)
//{
// return;
//}
////检测到料盘,等待1.5秒后扫码
//if (isWaitScan)
//{
// TimeSpan span = DateTime.Now - StartWaitScanTime;
// //检测料盘扫码的时间改为300毫秒
// if (span.TotalMilliseconds > 300)
// {
// isWaitScan = false;
// IsScanCode = true;
// LogUtil.info(StoreName + "检测到料盘信号且等待300毫秒,开始扫码");
// if (Config.Scanner_Type.Equals(1))
// {
// //TODO 开始扫码
// IsTestCamera = false;
// GetCameraCode();
// }
// else
// {
// BeginScannering();
// }
// }
//}
//else
//{
// isWaitScan = true;
// StartWaitScanTime = DateTime.Now;
//}
}
else
{
isWaitScan
=
false
;
//不再扫码中,并且开了光源,关闭光源
if
(!
IsScanCode
)
{
if
(
KNDIOValue
(
Store_IO_Type
.
CameraLight_Power
).
Equals
(
IO_VALUE
.
HIGH
))
{
Thread
.
Sleep
(
60
);
KNDIOMove
(
Store_IO_Type
.
CameraLight_Power
,
IO_VALUE
.
LOW
);
}
}
}
}
AutoResetProcess
();
IOTimeOutProcess
();
}
}
catch
(
Exception
ex
)
{
LOGGER
.
Error
(
StoreName
+
"定时处理出错"
,
ex
);
}
}
private
DateTime
preIoTimerOutTime
=
DateTime
.
Now
;
/// <summary>
/// io检测异常
/// </summary>
private
void
IOTimeOutProcess
()
{
try
{
TimeSpan
span
=
DateTime
.
Now
-
preIoTimerOutTime
;
if
(
span
.
TotalSeconds
>
1
)
{
preIoTimerOutTime
=
DateTime
.
Now
;
if
(!
alarmType
.
Equals
(
StoreAlarmType
.
IoSingleTimeOut
))
{
return
;
}
if
(
storeRunStatus
<
StoreRunStatus
.
Runing
)
{
return
;
}
if
(
isInSuddenDown
||
isNoAirCheck
)
{
return
;
}
//若BOX和移栽都没有在等待Io的过程中则此Io超时异常可能已经处理过
if
(
StoreMove
.
IsInWait
==
false
)
{
LogUtil
.
info
(
StoreName
+
"之前有IO超时异常【"
+
alarmInfo
.
alarmDetail
+
"】,但是当前已经没有在等待中,清理信号超时异常!"
);
alarmType
=
StoreAlarmType
.
None
;
WarnMsg
=
""
;
}
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
LOGGER
,
"IOTimeOutProcess出错:"
+
ex
.
ToString
());
}
}
/// <summary>
/// 超过配置次数时需要重置
/// </summary>
private
void
AutoResetProcess
()
{
try
{
if
(
CurrInOutACount
>=
this
.
Config
.
Box_ResetACount
)
{
if
(
storeRunStatus
<
StoreRunStatus
.
Runing
||
StoreMove
.
MoveType
==
StoreMoveType
.
InStore
||
StoreMove
.
MoveType
==
StoreMoveType
.
OutStore
)
{
LogUtil
.
info
(
LOGGER
,
StoreName
+
"已经累计出入库"
+
CurrInOutACount
+
"次,当时当前正在忙碌中暂不重置"
);
}
else
{
LogUtil
.
info
(
LOGGER
,
StoreName
+
"已经累计出入库"
+
CurrInOutACount
+
"次,需要重置一下"
);
Reset
();
}
}
else
if
(
CurrInOutCount
>=
this
.
Config
.
Box_ResetMCount
)
{
if
(
storeRunStatus
<
StoreRunStatus
.
Runing
||
StoreMove
.
MoveType
==
StoreMoveType
.
InStore
||
StoreMove
.
MoveType
==
StoreMoveType
.
OutStore
)
{
LogUtil
.
info
(
LOGGER
,
StoreName
+
"已经累计出入库"
+
CurrInOutCount
+
"次,当时当前正在忙碌中暂不重置旋转轴"
);
}
else
{
LogUtil
.
info
(
LOGGER
,
StoreName
+
"已经累计出入库"
+
CurrInOutCount
+
"次,需要重置一下旋转轴"
);
}
}
else
{
FixtureCodeInfo
currInOutFixture
=
null
;
lock
(
waitOutListLock
)
{
if
(
waitOutStoreList
.
Count
>
0
&&
CanStarInOut
())
{
currInOutFixture
=
waitOutStoreList
[
0
];
waitOutStoreList
.
RemoveAt
(
0
);
}
}
if
(
currInOutFixture
!=
null
)
{
//出库
if
(
currInOutFixture
.
WareNum
.
Equals
(
""
))
{
LogUtil
.
info
(
LOGGER
,
StoreName
+
"开始执行排队中的出库【"
+
currInOutFixture
.
ToStr
()
+
"】"
);
StartOutStoreMove
(
new
InOutStoreParam
(
""
,
currInOutFixture
.
PosId
,
currInOutFixture
.
plateH
,
currInOutFixture
.
plateW
));
}
}
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
LOGGER
,
"处理出入库排队列表出错:"
+
ex
.
ToString
());
}
}
/// <summary>
/// 重置中轴
/// </summary>
private
void
ResetMiddleAxis
(
bool
isNeedClearAuto
)
{
//CurrInOutCount = 0;
////复位之前先停止运行
//if (isNeedClearAuto)
//{
// autoNext = false;
//}
//StopMove();
//storeRunStatus = StoreRunStatus.Reset;
//StoreMove.NewMove(StoreMoveType.StoreReset);
//StoreMove.NextMoveStep(StoreMoveStep.BOX_M_H_InOutToP1);
//LogUtil.info(LOGGER, StoreName + "重置(旋转轴),进出轴先回P1");
//AxisMove(Config.InOut_Axis, Config.InOutAxis_P1_Position, Config.InOutAxis_P1_Speed, Config.InOut_Axis.StartSpeed);
}
/// <summary>
/// 判断是否报警,返回 true表示报警 报警检测2秒钟检测一次
/// </summary>
/// <returns></returns>
private
DateTime
checkAlarmTime
=
DateTime
.
Now
;
public
bool
CheckAxisAlarm
()
{
TimeSpan
span
=
DateTime
.
Now
-
checkAlarmTime
;
if
(
span
.
TotalSeconds
<
2
)
{
return
false
;
}
checkAlarmTime
=
DateTime
.
Now
;
bool
isInAlarm
=
false
;
foreach
(
ConfigMoveAxis
axisInfo
in
moveAxisList
)
{
AxisAlarmInfo
info
=
AxisAlarmCodeMap
[
axisInfo
];
short
axis
=
axisInfo
.
GetAxisValue
();
string
deviceName
=
axisInfo
.
DeviceName
;
int
alarmIo
=
(
int
)
KTKSMCManager
.
GetAlarmIO
(
deviceName
,
axis
);
if
(
alarmIo
==
1
)
{
WarnMsg
=
StoreName
+
" 运动轴"
+
axisInfo
.
Explain
+
"报警"
;
if
(
info
.
AlarmIoValue
!=
alarmIo
)
{
LogUtil
.
error
(
LOGGER
,
WarnMsg
);
int
alarmCode
=
GetAlarmCodeByAxis
(
axisInfo
);
//GetLineBean().SendAlarmCode(StoreID, alarmCode);
info
.
AlarmIoValue
=
alarmIo
;
//TODO 记录报警状态,不能出入库
}
Alarm
(
StoreAlarmType
.
AxisAlarm
,
GetAlarmCodeByAxis
(
axisInfo
).
ToString
(),
WarnMsg
,
StoreMoveType
.
None
);
isInAlarm
=
true
;
}
else
{
if
(
info
.
AlarmIoValue
!=
alarmIo
)
{
LogUtil
.
error
(
LOGGER
,
StoreName
+
" 运动轴 "
+
axisInfo
.
Explain
+
",报警已解除!"
);
info
.
AlarmIoValue
=
alarmIo
;
//TODO 更改为正常联机状态
}
}
}
//判断报警状态
return
isInAlarm
;
}
/// <summary>
/// 停止所有运行
/// </summary>
public
override
void
StopMove
()
{
//运动版停止
KTKSMCManager
.
StopMove
(
Config
.
Middle_Axis
.
DeviceName
,
Config
.
Middle_Axis
.
GetAxisValue
());
KTKSMCManager
.
StopMove
(
Config
.
UpDown_Axis
.
DeviceName
,
Config
.
UpDown_Axis
.
GetAxisValue
());
KTKSMCManager
.
StopMove
(
Config
.
InOut_Axis
.
DeviceName
,
Config
.
InOut_Axis
.
GetAxisValue
());
if
(
IsHasCompress_Axis
)
{
ShuoKeControls
.
SuddownStop
(
Config
.
CompressAxis_Slv
);
}
else
{
//定位气缸停止
KNDIOMove
(
Store_IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
LOW
);
KNDIOMove
(
Store_IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
);
}
LogUtil
.
info
(
LOGGER
,
StoreName
+
"StopMove"
);
KNDIOMove
(
Store_IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
);
KNDIOMove
(
Store_IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
);
Thread
.
Sleep
(
100
);
HDevelopExport
.
CloseAllCamera
();
}
/// <summary>
/// 判断是可以开始出入库(当前在忙碌状态则需要排队等待)
/// </summary>
/// <returns></returns>
public
bool
CanStarInOut
()
{
if
(
isInSuddenDown
||
isNoAirCheck
||
(!
storeRunStatus
.
Equals
(
StoreRunStatus
.
Runing
))
||
storeStatus
.
Equals
(
StoreStatus
.
InStoreExecute
)
||
storeStatus
.
Equals
(
StoreStatus
.
OutStoreExecute
)
||
storeStatus
.
Equals
(
StoreStatus
.
InStoreEnd
)
||
storeStatus
.
Equals
(
StoreStatus
.
OutStoreBoxEnd
))
{
return
false
;
}
return
true
;
}
#
region
扫码枪代码
public
bool
IsTestCamera
=
false
;
private
System
.
Timers
.
Timer
scanTimer
=
null
;
public
void
GetCameraCode
()
{
if
(
IsTestCamera
&&
IsInScan
())
//if (IsTestCamera && IsScanCode)
{
LogUtil
.
info
(
"上次扫码还未执行完毕,请稍后!"
);
return
;
}
if
(
scanTimer
==
null
)
{
scanTimer
=
new
System
.
Timers
.
Timer
();
scanTimer
.
Interval
=
10
;
scanTimer
.
AutoReset
=
false
;
scanTimer
.
Enabled
=
false
;
scanTimer
.
Elapsed
+=
scanTimer_Elapsed
;
}
scanTimer
.
Enabled
=
true
;
}
public
static
Dictionary
<
string
,
List
<
string
>>
codeMap
=
new
Dictionary
<
string
,
List
<
string
>>();
public
static
object
codeMapLock
=
""
;
private
void
scanTimer_Elapsed
(
object
sender
,
System
.
Timers
.
ElapsedEventArgs
e
)
{
DateTime
date
=
DateTime
.
Now
;
scanTimer
.
Enabled
=
false
;
//打开光源
KNDIOMove
(
Store_IO_Type
.
CameraLight_Power
,
IO_VALUE
.
HIGH
);
LogUtil
.
debug
(
"扫码中:结束打开光源 ,已耗时:"
+
(
DateTime
.
Now
-
date
).
ToString
());
//打开所有摄像机
foreach
(
string
cameraName
in
HDevelopExport
.
cameraNameList
)
{
if
(!
HDevelopExport
.
IsOpen
(
cameraName
))
{
HDevelopExport
.
OpenCamera
(
cameraName
);
LogUtil
.
debug
(
"扫码中:结束打开摄像机["
+
cameraName
+
"],已耗时:"
+
(
DateTime
.
Now
-
date
).
ToString
());
}
}
List
<
string
>
codeList
=
new
List
<
string
>();
Dictionary
<
string
,
int
>
hasList
=
new
Dictionary
<
string
,
int
>();
//int maxCodeCount = 10;
string
spiltStr
=
"##"
;
string
message
=
""
;
try
{
int
cindex
=
0
;
codeMap
=
new
Dictionary
<
string
,
List
<
string
>>();
foreach
(
string
cameraName
in
HDevelopExport
.
cameraNameList
)
{
cindex
++;
int
cameraIndex
=
cindex
;
string
newName
=
cameraName
;
HObject
ho_Image
=
HDevelopExport
.
GrabImage
(
newName
);
LogUtil
.
debug
(
"扫码中:结束摄像机["
+
newName
+
"] 读取图片,已耗时:"
+
(
DateTime
.
Now
-
date
).
ToString
());
HObject
image
=
ho_Image
;
List
<
object
>
param
=
new
List
<
object
>()
{
image
,
cameraIndex
,
cameraName
};
ThreadPool
.
QueueUserWorkItem
(
new
WaitCallback
(
HDevelopExport
.
GetCode
),
param
);
ho_Image
=
null
;
}
//等待两个图片都识别完成,大概需要15秒,等待30秒还未结束直接结束
Thread
.
Sleep
(
500
);
int
i
=
0
;
int
needCount
=
cindex
;
for
(;
i
<
80
;
i
++)
{
if
(
codeMap
.
Count
>=
needCount
)
{
break
;
}
Thread
.
Sleep
(
100
);
}
LogUtil
.
info
(
"扫码中:结束等待识别二维码,循环次数i="
+
i
+
",已耗时:"
+
(
DateTime
.
Now
-
date
).
ToString
());
//如果等待300次,超时,需要关闭摄像机
if
(
i
>=
80
)
{
LogUtil
.
info
(
"扫码中:等待时间超时,关闭所有摄像机"
);
HDevelopExport
.
CloseAllCamera
();
}
foreach
(
List
<
string
>
codeArray
in
codeMap
.
Values
)
{
//List<string> codeArray = HDevelopExport.GetCode(ho_Image, cindex);
if
(
codeArray
!=
null
&&
codeArray
.
Count
>
0
)
{
foreach
(
string
str
in
codeArray
)
{
string
[]
array
=
str
.
Split
(
'='
);
string
code
=
array
[
1
];
if
(
array
.
Length
>=
1
)
{
if
(!
hasList
.
ContainsKey
(
code
))
{
hasList
.
Add
(
code
,
codeList
.
Count
);
codeList
.
Add
(
str
);
}
else
{
//替换原来的
int
index
=
hasList
[
code
];
if
(
codeList
.
Count
>
index
)
{
LOGGER
.
Info
(
StoreName
+
"重复二维码【"
+
codeList
[
index
]
+
"】【"
+
str
+
"】,使用【"
+
str
+
"】"
);
codeList
[
index
]
=
str
;
}
}
}
}
}
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
StoreName
+
"从摄像机获取二维码出错:"
+
ex
.
ToString
());
LogUtil
.
error
(
StoreName
+
"关闭摄像机"
);
HDevelopExport
.
CloseAllCamera
();
}
finally
{
//不关闭摄像机
//HDevelopExport.CloseCamera();
}
//不需要 关闭光源
// KNDIOMove(Store_IO_Type.CameraLight_Power, IO_VALUE.LOW);
foreach
(
string
str
in
codeList
)
{
message
=
message
+
str
+
spiltStr
;
}
LogUtil
.
info
(
"扫码中 开始从服务器获取库位,共耗时:"
+
(
DateTime
.
Now
-
date
).
ToString
());
onCodeReceived
(
message
);
}
private
bool
isWaitScan
=
false
;
private
DateTime
StartWaitScanTime
=
DateTime
.
Now
;
private
bool
IsNotScanCode
=
false
;
private
bool
IsScanCode
=
false
;
/// <summary>
/// 扫码枪数据接收
/// </summary>
/// <param name="message"></param>
protected
override
void
onCodeReceived
(
string
message
)
{
try
{
message
=
ScanCodeManager
.
ReplaceCode
(
message
);
if
(
message
.
Equals
(
""
)
||
string
.
IsNullOrEmpty
(
message
))
{
IsNotScanCode
=
true
;
IsScanCode
=
false
;
//LogUtil.info(LOGGER, StoreName + "没有收到二维码信息,请重新放入料盘");
//return;
}
IsNotScanCode
=
false
;
if
(
storeRunStatus
.
Equals
(
StoreRunStatus
.
Wait
)
&&
IsTestCamera
.
Equals
(
false
))
{
LogUtil
.
info
(
LOGGER
,
StoreName
+
"暂未开启,不需要发送服务器"
);
IsScanCode
=
false
;
return
;
}
LogUtil
.
info
(
LOGGER
,
StoreName
+
"收到二维码<< "
+
message
+
",发送给服务器获取入库PosID"
);
//发送扫码内容到服务器进行入库操作
Operation
operation
=
getLineBoxStatus
();
operation
.
op
=
4
;
operation
.
data
=
new
Dictionary
<
string
,
string
>()
{
{
"code"
,
message
},
{
"boxId"
,
StoreID
.
ToString
()
}
};
string
server
=
ConfigAppSettings
.
GetValue
(
Setting_Init
.
http_server
);
Operation
resultOperation
=
HttpHelper
.
Post
(
StoreManager
.
GetPostApi
(
server
),
operation
,
false
);
if
(
resultOperation
==
null
)
{
LogUtil
.
info
(
LOGGER
,
StoreName
+
"二维码【"
+
message
+
"】没有收到服务器反馈!"
);
IsScanCode
=
false
;
return
;
}
else
if
(!
string
.
IsNullOrEmpty
(
resultOperation
.
msg
))
{
//如果有提示消息,直接显示提示
LogUtil
.
info
(
LOGGER
,
StoreName
+
"服务器反馈 二维码【"
+
message
+
"】 :"
+
resultOperation
.
msg
);
IsScanCode
=
false
;
return
;
}
if
(
IsTestCamera
)
{
LogUtil
.
info
(
LOGGER
,
StoreName
+
" 测试扫码,【"
+
message
+
"】 收到服务器命令,OP="
+
resultOperation
.
op
);
return
;
}
IsScanCode
=
false
;
if
(
resultOperation
.
op
>
0
)
{
LogUtil
.
info
(
LOGGER
,
StoreName
+
"收到服务器命令,OP="
+
resultOperation
.
op
);
}
if
(
resultOperation
.
op
.
Equals
(
1
))
{
ProcessInStoreCMD
(
resultOperation
,
message
);
}
else
if
(
resultOperation
.
op
.
Equals
(
2
))
{
ProcessOutStoreCMD
(
resultOperation
);
}
else
if
(
resultOperation
.
op
.
Equals
(
4
))
{
ServerScanProcess
(
resultOperation
);
}
else
if
(
resultOperation
.
op
.
Equals
(
5
))
{
ProcessHumidityCMD
(
resultOperation
);
}
}
catch
(
Exception
ex
)
{
IsScanCode
=
false
;
LOGGER
.
Error
(
StoreName
+
ex
.
StackTrace
);
}
}
private
void
ProcessHumidityCMD
(
Operation
resultOperation
)
{
Dictionary
<
string
,
string
>
data
=
resultOperation
.
data
;
if
(
data
!=
null
&&
data
.
ContainsKey
(
ParamDefine
.
maxHumidity
)
&&
data
.
ContainsKey
(
ParamDefine
.
maxTemperature
))
{
string
maxHumidity
=
data
[
ParamDefine
.
maxHumidity
];
string
maxTemp
=
data
[
ParamDefine
.
maxTemperature
];
LogUtil
.
info
(
LOGGER
,
"收到服务器温湿度预警值:maxHumidity="
+
maxHumidity
+
",maxTemperature="
+
maxTemp
);
try
{
this
.
Max_Humidity
=
(
float
)
Convert
.
ToDouble
(
maxHumidity
);
this
.
Max_Temperature
=
(
float
)
Convert
.
ToDouble
(
maxTemp
);
LogUtil
.
info
(
LOGGER
,
"保存温湿度预警值:Max_Humidity="
+
Max_Humidity
+
",Max_Temperature="
+
Max_Temperature
);
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"转换温湿度失败:"
+
ex
.
ToString
());
}
}
}
private
DateTime
LastScanTime
=
DateTime
.
Now
;
private
bool
IsInScan
()
{
if
(!
IsScanCode
)
{
return
false
;
}
TimeSpan
span
=
DateTime
.
Now
-
LastScanTime
;
if
(
span
.
TotalSeconds
>
60
)
{
//大于60秒表示超时了,可以重新开始扫码
return
false
;
}
return
true
;
}
/// <summary>
/// 收到服务器消息扫码入库
/// </summary>
/// <param name="resultOperation"></param>
private
void
ServerScanProcess
(
Operation
resultOperation
)
{
//判断当前是否忙碌中
if
(
StoreMove
.
MoveType
.
Equals
(
StoreMoveType
.
None
)
&&
IsInScan
().
Equals
(
false
))
//if (StoreMove.MoveType.Equals(StoreMoveType.None) && IsScanCode.Equals(false))
{
LogUtil
.
info
(
LOGGER
,
StoreName
+
"收到服务器扫码命令,开始扫码"
);
isWaitScan
=
false
;
IsScanCode
=
true
;
LastScanTime
=
DateTime
.
Now
;
IsTestCamera
=
false
;
GetCameraCode
();
}
else
{
if
(
IsScanCode
)
{
LogUtil
.
info
(
LOGGER
,
StoreName
+
"收到服务器扫码命令,扫码失败,已在扫码中"
);
WarnMsg
=
"已经在扫码中"
;
}
else
if
(
StoreMove
.
MoveType
.
Equals
(
StoreMoveType
.
ReturnHome
))
{
LogUtil
.
info
(
LOGGER
,
StoreName
+
"收到服务器扫码命令,扫码失败,正在原点返回中"
);
WarnMsg
=
"扫码失败,正在原点返回中"
;
}
else
if
(
StoreMove
.
MoveType
.
Equals
(
StoreMoveType
.
StoreReset
))
{
LogUtil
.
info
(
LOGGER
,
StoreName
+
"收到服务器扫码命令,扫码失败,正在复位中"
);
WarnMsg
=
"扫码失败,正在复位中"
;
}
else
if
(
StoreMove
.
MoveType
.
Equals
(
StoreMoveType
.
InStore
))
{
LogUtil
.
info
(
LOGGER
,
StoreName
+
"收到服务器扫码命令,扫码失败,正在入库执行中"
);
WarnMsg
=
"扫码失败,正在入库执行中"
;
}
else
if
(
StoreMove
.
MoveType
.
Equals
(
StoreMoveType
.
OutStore
))
{
LogUtil
.
info
(
LOGGER
,
StoreName
+
"收到服务器扫码命令,扫码失败,正在出库执行中"
);
WarnMsg
=
"扫码失败,正在出库执行中"
;
}
}
}
private
void
ProcessInStoreCMD
(
Operation
resultOperation
,
string
message
)
{
Dictionary
<
string
,
string
>
data
=
resultOperation
.
data
;
if
(
data
!=
null
&&
data
.
ContainsKey
(
ParamDefine
.
posId
)
&&
data
.
ContainsKey
(
ParamDefine
.
plateH
)
&&
data
.
ContainsKey
(
ParamDefine
.
plateW
))
{
//服务器返回时有:posId库位编号,plateW:料盘宽度,plateH:料盘高度,
//postId格式BoxId#位置
string
posId
=
data
[
ParamDefine
.
posId
];
string
plateW
=
data
[
ParamDefine
.
plateW
];
string
plateH
=
data
[
ParamDefine
.
plateH
];
string
[]
posArray
=
posId
.
Split
(
'#'
);
if
(!(
posArray
.
Length
==
2
))
{
WarnMsg
=
StoreName
+
"入库库位格式错误:二维码【"
+
message
+
"】库位【"
+
posId
+
"】"
;
LogUtil
.
error
(
LOGGER
,
"服务器反馈 入库库位格式错误:二维码【"
+
message
+
"】库位【"
+
posId
+
"】"
);
LogUtil
.
info
(
LOGGER
,
"服务器反馈 入库库位格式错误:二维码【"
+
message
+
"】库位【"
+
posId
+
"】"
);
return
;
}
int
storeId
=
int
.
Parse
(
posArray
[
0
]);
//根据发送的posId获取位置列表
KTKSAStorePostion
position
=
CSVPositionReader
<
KTKSAStorePostion
>.
GetPositon
(
posId
);
if
(
position
==
null
)
{
//出入库没有找到服务器发送的库位,需要打印日志方便查询原因
WarnMsg
=
"入库未找到库位:二维码【"
+
message
+
"】库位【"
+
posId
+
"】 "
;
LogUtil
.
error
(
LOGGER
,
"收到服务器入库命令:入库未找到库位:二维码【"
+
message
+
"】库位【"
+
posId
+
"】"
);
LogUtil
.
info
(
LOGGER
,
"收到服务器入库命令:入库未找到库位:二维码【"
+
message
+
"】库位【"
+
posId
+
"】"
);
return
;
}
//TODO:判断BOX是否处于可以入库状态,如果调试或急停中,需要返回给服务器;
if
(
CanStarInOut
())
{
InOutStoreParam
param
=
new
InOutStoreParam
(
message
,
posId
,
plateH
,
plateW
,
0
);
StartInStoreMove
(
param
);
//如果当前正在出入库中,需要记录下来,等待空闲时执行
LogUtil
.
info
(
LOGGER
,
StoreName
+
" 收到服务器入库命令:库位号【"
+
posId
+
"】二维码【"
+
message
+
"】 开始入库!"
);
}
else
{
LogUtil
.
info
(
LOGGER
,
StoreName
+
" 收到服务器入库命令:库位号【"
+
posId
+
"】二维码【"
+
message
+
"】 正在忙碌中,无法入库!"
);
}
}
}
private
void
ProcessOutStoreCMD
(
Operation
resultOperation
)
{
Dictionary
<
string
,
string
>
data
=
resultOperation
.
data
;
if
(
data
!=
null
&&
data
.
ContainsKey
(
ParamDefine
.
posId
)
&&
data
.
ContainsKey
(
ParamDefine
.
plateH
)
&&
data
.
ContainsKey
(
ParamDefine
.
plateW
))
{
string
posIdStr
=
data
[
ParamDefine
.
posId
];
string
plateWStr
=
data
[
ParamDefine
.
plateW
];
string
plateHStr
=
data
[
ParamDefine
.
plateH
];
LogUtil
.
info
(
LOGGER
,
"收到服务器出库消息:poaIs="
+
posIdStr
+
",platew="
+
plateWStr
+
",plateh="
+
plateHStr
);
char
splitChar
=
'|'
;
string
[]
posIdArray
=
posIdStr
.
Split
(
splitChar
);
string
[]
plateWArray
=
plateWStr
.
Split
(
splitChar
);
string
[]
plateHArray
=
plateHStr
.
Split
(
splitChar
);
int
index
=
-
1
;
foreach
(
string
posId
in
posIdArray
)
{
index
++;
string
plateW
=
plateWArray
[
index
];
string
plateH
=
plateHArray
[
index
];
string
[]
posArray
=
posId
.
Split
(
'#'
);
if
(
posArray
.
Length
!=
2
)
{
WarnMsg
=
StoreName
+
"出库格式错误:库位号【"
+
posId
+
"】"
;
LogUtil
.
error
(
LOGGER
,
"收到服务器出库命令:库位号【"
+
posId
+
"】格式错误"
);
continue
;
}
int
storeId
=
int
.
Parse
(
posArray
[
0
]);
//根据发送的posId获取位置列表
KTKSAStorePostion
position
=
CSVPositionReader
<
KTKSAStorePostion
>.
GetPositon
(
posId
);
if
(
position
==
null
)
{
//出入库没有找到服务器发送的库位,需要打印日志方便查询原因
WarnMsg
=
StoreName
+
"出库未找库位:【"
+
posId
+
"】"
;
LogUtil
.
error
(
LOGGER
,
"收到服务器出库命令:未找到【"
+
posId
+
"】的库位信息"
);
continue
;
}
else
{
if
(
CanStarInOut
())
{
StartOutStoreMove
(
new
InOutStoreParam
(
""
,
posId
,
position
));
}
else
{
LogUtil
.
error
(
LOGGER
,
"收到服务器出库命令:出库【"
+
posId
+
"】失败,当前在忙碌中"
);
}
}
}
}
}
#
endregion
#
region
与服务器通信定时器,每
1
秒向服务器通知一次状态
,
同时执行出库操作
private
bool
isInProcess
=
false
;
public
void
server_connect_timer_Tick
(
object
sender
,
EventArgs
e
)
{
if
(
isInProcess
)
{
return
;
}
//温湿度处理
HumidityProcess
();
isInProcess
=
true
;
if
(
SAStoreManager
.
IsConnectServer
)
{
try
{
SendLineStatus
();
}
catch
(
Exception
ex
)
{
LOGGER
.
Error
(
"定时给服务器发送消息出错:"
,
ex
);
}
}
isInProcess
=
false
;
}
private
bool
IsInBlowing
=
false
;
private
DateTime
LastBeginBlowTime
=
DateTime
.
Now
;
private
DateTime
LastEndBlowTime
=
new
DateTime
(
1997
,
1
,
1
);
private
DateTime
preLogTime
=
DateTime
.
Now
;
private
bool
TempOrHumidityIsAlarm
=
false
;
private
float
StartBlowValue
=(
float
)
ConfigAppSettings
.
GetNumValue
(
Setting_Init
.
StartBlowValue
);
private
float
StopBlowValue
=
(
float
)
ConfigAppSettings
.
GetNumValue
(
Setting_Init
.
StopBlowValue
);
private
void
HumidityProcess
()
{
try
{
if
((
DateTime
.
Now
-
preLogTime
).
TotalSeconds
>
10
)
{
preLogTime
=
DateTime
.
Now
;
//用最大的湿度判断是否需要吹气,开始吹气的值=发过来的值-4
//温湿度
ASTemperateParam
param
=
HumitureServer
.
GetTemperateParam
(
Config
.
GetTempAddrList
());
double
humidity
=
0
;
double
temp
=
0
;
if
(
param
!=
null
)
{
humidity
=
param
.
Humidity
;
temp
=
param
.
Temperate
;
LOGGER
.
Info
(
"当前湿度:"
+
humidity
.
ToString
());
}
double
currMaxHumidity
=
HumitureServer
.
GetMaxTemperate
(
Config
.
GetTempAddrList
());
float
startBlowHumidity
=
Max_Humidity
-
StartBlowValue
;
float
stopBlowHumidity
=
Max_Humidity
-
StopBlowValue
;
//判断是否需要吹气
if
(
startBlowHumidity
>
0
&&
startBlowHumidity
<
currMaxHumidity
&&
IsInBlowing
.
Equals
(
false
))
{
//判断是否距离上次结束指定的时间
TimeSpan
span
=
DateTime
.
Now
-
LastEndBlowTime
;
if
(
span
.
TotalMinutes
>
this
.
Config
.
BlowAir_Interval
)
{
LOGGER
.
Info
(
"当前最大湿度:"
+
currMaxHumidity
.
ToString
()
+
",开始吹气湿度:"
+
startBlowHumidity
+
",当前不在吹气中,且间隔超过"
+
Config
.
BlowAir_Interval
+
"分钟,开始吹气!"
);
IsInBlowing
=
true
;
Thread
.
Sleep
(
100
);
KNDIOMove
(
Store_IO_Type
.
StartOrStopBlow
,
IO_VALUE
.
HIGH
);
LastBeginBlowTime
=
DateTime
.
Now
;
LastEndBlowTime
=
DateTime
.
Now
;
}
}
if
(
IsInBlowing
&&
stopBlowHumidity
>
currMaxHumidity
)
{
LOGGER
.
Info
(
"当前最大湿度:"
+
currMaxHumidity
.
ToString
()
+
",停止吹气湿度:"
+
stopBlowHumidity
+
",停止吹气!"
);
IsInBlowing
=
false
;
Thread
.
Sleep
(
100
);
KNDIOMove
(
Store_IO_Type
.
StartOrStopBlow
,
IO_VALUE
.
LOW
);
LastEndBlowTime
=
DateTime
.
Now
;
}
if
(
IsInBlowing
)
{
//判断是否需要结束吹气
TimeSpan
span
=
DateTime
.
Now
-
LastBeginBlowTime
;
if
(
span
.
TotalMinutes
>
this
.
Config
.
BlowAir_Time
)
{
LOGGER
.
Info
(
"已经吹气"
+
span
.
TotalMinutes
+
"分钟,超过配置的吹气时间"
+
Config
.
BlowAir_Time
+
"分钟,停止吹气!"
);
IsInBlowing
=
false
;
Thread
.
Sleep
(
100
);
KNDIOMove
(
Store_IO_Type
.
StartOrStopBlow
,
IO_VALUE
.
LOW
);
LastEndBlowTime
=
DateTime
.
Now
;
}
}
//如果开始吹气并且当前达到报警值
if
(
IsInBlowing
.
Equals
(
true
)
&&
humidity
>
Max_Humidity
)
{
TempOrHumidityIsAlarm
=
true
;
}
else
{
TempOrHumidityIsAlarm
=
false
;
}
//如果湿度没有报警,温度达到范围也需要报警
if
(
temp
>
Max_Temperature
&&
Max_Temperature
>
0
)
{
LOGGER
.
Info
(
"当前温度【"
+
param
.
Temperate
+
"】超过最高温度【"
+
Max_Temperature
+
"】,开始报警!"
);
TempOrHumidityIsAlarm
=
true
;
Thread
.
Sleep
(
100
);
KNDIOMove
(
Store_IO_Type
.
StartOrStopBlow
,
IO_VALUE
.
LOW
);
}
else
if
(
temp
<
Max_Temperature
)
{
if
(
IsInBlowing
.
Equals
(
false
)
&&
TempOrHumidityIsAlarm
)
{
LOGGER
.
Info
(
"不在吹气中,且当前温度【"
+
param
.
Temperate
+
"】低于【"
+
Max_Temperature
+
"】,关闭报警!"
);
TempOrHumidityIsAlarm
=
false
;
Thread
.
Sleep
(
100
);
KNDIOMove
(
Store_IO_Type
.
StartOrStopBlow
,
IO_VALUE
.
LOW
);
}
}
}
}
catch
(
Exception
ex
)
{
LOGGER
.
Error
(
StoreName
+
"HumidityProcess出错:"
+
ex
.
ToString
());
}
}
/// <summary>
/// 获取整个料仓的状态
/// </summary>
public
Operation
getLineBoxStatus
()
{
//构建发送给服务器的对象
Operation
lineOperation
=
new
Operation
();
lineOperation
.
msg
=
""
;
lineOperation
.
alarmList
=
new
List
<
AlarmInfo
>();
lineOperation
.
cid
=
CID
;
lineOperation
.
seq
=
ConfigAppSettings
.
nextSeq
();
lineOperation
.
status
=
1
;
if
(
WarnMsg
!=
""
)
{
lineOperation
.
status
=
(
int
)
StoreStatus
.
Warning
;
lineOperation
.
msg
=
WarnMsg
;
}
else
if
(
IsRun
)
{
lineOperation
.
status
=
(
int
)
StoreStatus
.
StoreOnline
;
}
lineOperation
.
status
=
(
int
)
StoreStatus
.
StoreOnline
;
BoxStatus
boxStatus
=
new
BoxStatus
();
boxStatus
.
boxId
=
StoreID
;
//状态
boxStatus
.
status
=
(
int
)
storeStatus
;
if
(
IsDebug
)
{
boxStatus
.
status
=
(
int
)
StoreStatus
.
Debugging
;
}
boxStatus
.
msg
=
WarnMsg
;
lineOperation
.
msg
=
WarnMsg
;
if
(
lineOperation
.
msg
.
Equals
(
""
))
{
if
(
IsInBlowing
)
{
lineOperation
.
msg
=
"湿度报警中"
;
}
else
if
(
TempOrHumidityIsAlarm
)
{
lineOperation
.
msg
=
"温度报警中"
;
}
}
WarnMsg
=
""
;
//状态
boxStatus
.
status
=
(
int
)
storeStatus
;
if
(
IsDebug
)
{
boxStatus
.
status
=
(
int
)
StoreStatus
.
Debugging
;
}
else
if
(
storeStatus
.
Equals
(
StoreStatus
.
OutStoreBoxEnd
)
||
storeStatus
.
Equals
(
StoreStatus
.
InStoreEnd
))
{
boxStatus
.
data
.
Add
(
ParamDefine
.
posId
,
lastPosId
);
}
else
if
(!
lastPosId
.
Equals
(
""
))
{
boxStatus
.
data
.
Add
(
ParamDefine
.
posId
,
lastPosId
);
boxStatus
.
status
=
(
int
)
lastPosIdStatus
;
if
(
lastPosId
!=
""
)
{
LogUtil
.
info
(
LOGGER
,
"给服务器发送出入库完成消息:"
+
StoreName
+
",status【"
+
lastPosIdStatus
+
"】posId【"
+
lastPosId
+
"】"
);
}
lastPosId
=
""
;
}
//温湿度
ASTemperateParam
param
=
HumitureServer
.
GetTemperateParam
(
Config
.
GetTempAddrList
());
if
(
param
!=
null
)
{
boxStatus
.
humidity
=
param
.
Humidity
.
ToString
();
boxStatus
.
temperature
=
param
.
Temperate
.
ToString
();
}
lineOperation
.
boxStatus
.
Add
(
StoreID
,
boxStatus
);
if
(!
alarmType
.
Equals
(
StoreAlarmType
.
None
))
{
lineOperation
.
alarmList
.
Add
(
alarmInfo
);
}
return
lineOperation
;
}
public
void
SendLineStatus
()
{
//构建发送给服务器的对象
Operation
lineOperation
=
getLineBoxStatus
();
//如果还没湿度范围,先获取
if
(
Max_Humidity
<=
0
||
(
Max_Temperature
<=
0
))
{
lineOperation
.
op
=
5
;
LogUtil
.
info
(
LOGGER
,
StoreName
+
"没有湿度预警范围,需要从服务器获取,发送OP="
+
lineOperation
.
op
);
}
string
server
=
ConfigAppSettings
.
GetValue
(
Setting_Init
.
http_server
);
Operation
resultOperation
=
HttpHelper
.
Post
(
StoreManager
.
GetPostApi
(
server
),
lineOperation
,
false
);
//发送状态信息到服务器
if
(
resultOperation
==
null
||
(
resultOperation
.
op
.
Equals
(
0
)))
{
//判断服务端是否返回出库操作
return
;
}
LogUtil
.
info
(
LOGGER
,
StoreName
+
"收到服务器命令,OP="
+
resultOperation
.
op
);
if
(
resultOperation
.
op
.
Equals
(
1
))
{
ProcessInStoreCMD
(
resultOperation
,
""
);
}
else
if
(
resultOperation
.
op
.
Equals
(
2
))
{
ProcessOutStoreCMD
(
resultOperation
);
}
else
if
(
resultOperation
.
op
.
Equals
(
4
))
{
ServerScanProcess
(
resultOperation
);
}
else
if
(
resultOperation
.
op
.
Equals
(
5
))
{
ProcessHumidityCMD
(
resultOperation
);
}
}
#
endregion
#
region
KNDIO
public
void
KNDIOMove
(
string
ioType
,
IO_VALUE
ioValue
)
{
if
(
Config
.
StoreDOList
.
ContainsKey
(
ioType
))
{
ConfigIO
configIo
=
Config
.
StoreDOList
[
ioType
];
KNDManager
.
WriteSingleDO
(
configIo
.
DeviceName
,
configIo
.
SlaveID
,
configIo
.
GetIOAddr
(),
ioValue
);
}
else
{
LogUtil
.
error
(
LOGGER
,
StoreName
+
"没有DO="
+
ioType
);
}
}
public
IO_VALUE
KNDIOValue
(
string
ioType
)
{
IO_VALUE
ioValue
=
IO_VALUE
.
LOW
;
if
(
Config
.
StoreDIList
.
ContainsKey
(
ioType
))
{
ConfigIO
configIo
=
Config
.
StoreDIList
[
ioType
];
ioValue
=
KNDManager
.
GetDIValue
(
configIo
.
DeviceName
,
configIo
.
SlaveID
,
configIo
.
GetIOAddr
());
//UpdateDoValue(ioType, ioValue);
}
else
if
(
Config
.
StoreDOList
.
ContainsKey
(
ioType
))
{
ConfigIO
configIo
=
Config
.
StoreDOList
[
ioType
];
ioValue
=
KNDManager
.
GetDOValue
(
configIo
.
DeviceName
,
configIo
.
SlaveID
,
configIo
.
GetIOAddr
());
}
else
{
LogUtil
.
error
(
LOGGER
,
StoreName
+
"没有DO="
+
ioType
);
}
return
ioValue
;
}
#
endregion
}
}
\ No newline at end of file
source/DeviceLibrary/ktkSingleStore/KTK_SA_BoxBean_Partial.cs
deleted
100644 → 0
查看文件 @
e1c28be
using
OnlineStore.Common
;
using
OnlineStore.LoadCSVLibrary
;
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
System.Threading
;
namespace
OnlineStore.DeviceLibrary
{
partial
class
KTK_SA_BoxBean
{
#
region
自动出入库参数
/// <summary>
/// 料仓内所有的位置列表
/// </summary>
public
List
<
string
>
PositionNumList
=
new
List
<
string
>();
/// <summary>
/// 入库完成后自动出库,出库完成后自动入库
/// </summary>
public
bool
autoNext
=
false
;
/// <summary>
/// 自动出入库间隔
/// </summary>
public
int
autoJiange
=
3
;
public
int
autoPositionIndex
=
0
;
public
string
autoMsg
=
""
;
#
endregion
#
region
出入库参数
/// <summary>
/// 当前出入库的次数,超过配置的数量时,需要自动重置一下,再进行出入库
/// </summary>
private
int
CurrInOutCount
=
0
;
private
int
CurrInOutACount
=
0
;
private
bool
LoadParamPosition
(
InOutStoreParam
param
)
{
if
(
param
==
null
)
{
return
false
;
}
//加载位置
if
(
param
.
MoveP
==
null
)
{
LineMoveP
p
=
new
LineMoveP
();
KTKSAStorePostion
position
=
param
.
GetKTKSAPosition
();
if
(
position
==
null
)
{
LogUtil
.
error
(
LOGGER
,
StoreName
+
"出入库时发现param中取到的Position=null,没有库位不能执行出入库"
);
return
false
;
}
p
.
ComPress_P1
=
Config
.
CompressAxis_P1_Position
;
p
.
InOut_P1
=
Config
.
InOutAxis_P1_Position
;
p
.
Middle_P1
=
Config
.
MiddleAxis_P1_Position
;
p
.
InOut_P2
=
position
.
InOutAxis_DoorPosition_P2
;
//p.UpDown_P1 = position.UpDownAxis_DoorOPosition_P1;
//p.UpDown_P8 = position.UpDownAxis_DoorIBPosition_P8;
p
.
UpDown_P2
=
position
.
UpDownAxis_DoorIPosition_P2
;
p
.
UpDown_P7
=
position
.
UpDownAxis_DoorOBPosition_P7
;
//p.InOut_P2 = Config.InOutAxis_DoorPosition_P2;
p
.
UpDown_P1
=
Config
.
UpDownAxis_DoorOPosition_P1
;
p
.
UpDown_P8
=
Config
.
UpDownAxis_DoorIBPosition_P8
;
//p.UpDown_P2 = Config.UpDownAxis_DoorIPosition_P2;
//p.UpDown_P7 = Config.UpDownAxis_DoorOBPosition_P7;
p
.
ComPress_P2
=
position
.
CompressAxis_Position_P2
;
p
.
ComPress_P3
=
position
.
CompressAxis_CPosition_P3
;
p
.
InOut_P3
=
position
.
InOutAxis_Position_P3
;
p
.
Middle_P2
=
position
.
MiddleAxis_Position_P2
;
p
.
UpDown_P3
=
position
.
UpDownAxis_IHPosition_P3
;
p
.
UpDown_P4
=
position
.
UpDownAxis_ILPosition_P4
;
p
.
UpDown_P5
=
position
.
UpDownAxis_OHPosition_P5
;
p
.
UpDown_P6
=
position
.
UpDownAxis_OLPosition_P6
;
param
.
MoveP
=
p
;
return
true
;
}
return
true
;
}
#
endregion
#
region
出入库结果验证
private
void
InOutBackToP1
(
int
InOut_P1
)
{
AxisMove
(
Config
.
InOut_Axis
,
InOut_P1
,
Config
.
InOutAxis_P1_Speed
,
Config
.
InOut_Axis
.
StartSpeed
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitAxisOrg
(
Config
.
InOut_Axis
,
IO_VALUE
.
HIGH
));
}
private
void
CheckWait
()
{
List
<
WaitResultInfo
>
list
=
StoreMove
.
WaitList
;
//当等待超过一分钟时,需要打印提示
TimeSpan
span
=
DateTime
.
Now
-
StoreMove
.
LastSetpTime
;
if
(
span
.
TotalMinutes
>
5
)
{
WarnMsg
=
StoreName
+
"等待超时【"
+
StoreMove
.
MoveType
+
"】【"
+
StoreMove
.
MoveStep
+
"】已等待【"
+
span
.
TotalMinutes
+
"】分钟,"
;
foreach
(
WaitResultInfo
wait
in
list
)
{
WarnMsg
=
WarnMsg
+
"\r\n"
+
wait
.
ToStr
();
}
LogUtil
.
error
(
LOGGER
,
WarnMsg
,
12
);
Alarm
(
StoreAlarmType
.
IoSingleTimeOut
,
""
,
WarnMsg
,
StoreMove
.
MoveType
);
}
if
(
list
.
Count
>
0
)
{
bool
isOk
=
true
;
foreach
(
WaitResultInfo
wait
in
list
)
{
if
(
wait
.
WaitType
==
1
)
{
if
(
wait
.
IsHomeMove
)
{
if
((!
HomeMoveIsEnd
(
wait
.
AxisInfo
)))
{
isOk
=
false
;
break
;
}
}
else
{
string
msg
=
""
;
bool
isEnd
=
AxisMoveIsEnd
(
wait
.
AxisInfo
,
wait
.
TargetPosition
,
wait
.
TargetSpeed
,
out
msg
);
if
(!
msg
.
Equals
(
""
))
{
isOk
=
false
;
WarnMsg
=
msg
;
Alarm
(
StoreAlarmType
.
AxisMoveError
,
GetAlarmCodeByAxis
(
wait
.
AxisInfo
).
ToString
(),
WarnMsg
,
StoreMove
.
MoveType
);
break
;
}
else
if
(!
isEnd
)
{
isOk
=
false
;
break
;
}
}
}
else
if
(
wait
.
WaitType
==
2
)
{
if
(!
KNDIOValue
(
wait
.
IoType
).
Equals
(
wait
.
IoValue
))
{
//if (wait.IoType.Equals(Store_IO_Type.Door_Down) || wait.IoType.Equals(Store_IO_Type.Door_Up))
//{
// LogUtil.error(LOGGER, StoreName + wait.IoType + "暂时不需要等待");
//}
//else
//{
//一分钟还未检测到
if
(
span
.
TotalMilliseconds
>
Config
.
IOSingle_TimerOut
)
{
ConfigIO
io
=
Config
.
getWaitIO
(
wait
.
IoType
);
WarnMsg
=
StoreName
+
" 等待信号"
+
io
.
DisplayStr
+
"="
+
wait
.
IoValue
+
"超时!"
;
//SendAlarmCode(StoreID, LineAlarm.IoNotOk, wait.IoType);
Alarm
(
StoreAlarmType
.
IoSingleTimeOut
,
io
.
ElectricalDefinition
,
WarnMsg
,
StoreMove
.
MoveType
);
LogUtil
.
error
(
LOGGER
,
StoreName
+
wait
.
IoType
+
"等待信号("
+
io
.
DisplayStr
+
"="
+
wait
.
IoValue
+
") 超时"
,
14
);
}
isOk
=
false
;
break
;
//}
}
}
else
if
(
wait
.
WaitType
==
3
)
{
if
(
span
.
TotalMilliseconds
<
wait
.
TimeMSeconds
)
{
isOk
=
false
;
break
;
}
}
else
if
(
wait
.
WaitType
==
5
)
{
if
(
wait
.
IsHomeMove
)
{
if
(!
ShuoKeControls
.
IsHomeMoveEnd
(
wait
.
SlvAddr
,
StoreMove
.
LastSetpTime
))
{
ShuoKeControls
.
GetStatus
(
wait
.
SlvAddr
);
isOk
=
false
;
break
;
}
else
if
(
StoreMove
.
OneWaitCanEndStep
)
{
isOk
=
true
;
break
;
}
}
else
{
if
(!
ShuoKeControls
.
IsMoveEnd
(
wait
.
SlvAddr
,
StoreMove
.
LastSetpTime
))
{
ShuoKeControls
.
GetStatus
(
wait
.
SlvAddr
);
isOk
=
false
;
break
;
}
else
if
(
StoreMove
.
OneWaitCanEndStep
)
{
isOk
=
true
;
break
;
}
}
}
else
if
(
wait
.
WaitType
==
6
)
{
IO_VALUE
orgValue
=
KTKSMCManager
.
GetOrgValue
(
wait
.
AxisInfo
.
DeviceName
,
wait
.
AxisInfo
.
GetAxisValue
());
if
(!
orgValue
.
Equals
(
wait
.
IoValue
))
{
isOk
=
false
;
break
;
}
else
if
(
StoreMove
.
OneWaitCanEndStep
)
{
isOk
=
true
;
break
;
}
}
}
if
(
isOk
)
{
StoreMove
.
EndStepWait
();
}
}
else
{
StoreMove
.
EndStepWait
();
}
}
#
endregion
#
region
入库
/// <summary>
/// 开始入库移动移动
/// </summary>
public
void
StartInStoreMove
(
InOutStoreParam
param
,
bool
isNeedCheckIO
)
{
string
posId
=
param
!=
null
?
param
.
PositionNum
:
""
;
if
(
storeRunStatus
==
StoreRunStatus
.
Runing
)
{
if
(!
LoadParamPosition
(
param
))
{
LogUtil
.
error
(
LOGGER
,
StoreName
+
" 启动一个 入库运动出错,找不到库位信息"
);
return
;
}
LogUtil
.
info
(
LOGGER
,
StoreName
+
" 入库【"
+
posId
+
"】处理:启动新的入库,目标位置【"
+
param
.
PositionNum
+
"】"
,
storeMoveColor
);
storeRunStatus
=
StoreRunStatus
.
Busy
;
storeStatus
=
StoreStatus
.
InStoreExecute
;
StoreMove
.
NewMove
(
StoreMoveType
.
InStore
,
param
);
if
(
isNeedCheckIO
)
{
//料盘检测
InStoreLog
(
" 入库【"
+
posId
+
"】处理:(SI_00_TrayCheck 检测料盘信号"
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SI_00_TrayCheck
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
TrayCheck_1
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
TrayCheck_2
,
IO_VALUE
.
HIGH
));
}
else
{
if
(
IsHasCompress_Axis
)
{
InStoreLog
(
" 入库处理:(SI_02_InOutAxisHome 进出轴(叉子)动作至P1, 打开舱门"
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SI_02_InOutAxisHome
);
//打开门 ,门上升
KNDIOMove
(
Store_IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
);
KNDIOMove
(
Store_IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
));
//AxisMove(Config.InOut_Axis, param.MoveP.InOut_P1, Config.InOutAxis_P1_Speed, Config.InOut_Axis.StartSpeed);
InOutBackToP1
(
param
.
MoveP
.
InOut_P1
);
}
else
{
InStoreLog
(
" 入库处理:(SI_01_LocationCylinderDown 定位气缸下降"
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SI_01_LocationCylinderDown
);
KNDIOMove
(
Store_IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
Store_IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
LOW
));
}
}
}
else
{
LogUtil
.
error
(
LOGGER
,
StoreName
+
" 启动一个 入库【"
+
posId
+
"】运动出错,当前状态,storeStatus="
+
storeRunStatus
);
}
}
/// <summary>
/// 开始入库移动移动
/// </summary>
public
override
void
StartInStoreMove
(
InOutStoreParam
param
)
{
StartInStoreMove
(
param
,
false
);
}
protected
override
void
InStoreProcess
()
{
LineMoveP
moveP
=
StoreMove
.
MoveParam
.
MoveP
;
if
(
StoreMove
.
IsInWait
)
{
CheckWait
();
}
if
(
StoreMove
.
IsInWait
)
{
return
;
}
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SI_00_TrayCheck
)
{
if
(
IsHasCompress_Axis
)
{
InStoreLog
(
" 入库处理:(SI_02_InOutAxisHome 进出轴(叉子)动作至P1,打开舱门"
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SI_02_InOutAxisHome
);
//打开门 ,门上升
KNDIOMove
(
Store_IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
);
KNDIOMove
(
Store_IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
));
//AxisMove(Config.InOut_Axis, moveP.InOut_P1, Config.InOutAxis_P1_Speed, Config.InOut_Axis.StartSpeed);
InOutBackToP1
(
moveP
.
InOut_P1
);
}
else
{
InStoreLog
(
" 入库处理:(SI_01_LocationCylinderDown 定位气缸下降"
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SI_01_LocationCylinderDown
);
KNDIOMove
(
Store_IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
Store_IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
));
}
}
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SI_01_LocationCylinderDown
)
{
InStoreLog
(
" 入库处理:(SI_02_InOutAxisHome 进出轴(叉子)动作至P1,打开舱门"
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SI_02_InOutAxisHome
);
//AxisMove(Config.InOut_Axis, moveP.InOut_P1, Config.InOutAxis_P1_Speed, Config.InOut_Axis.StartSpeed);
InOutBackToP1
(
moveP
.
InOut_P1
);
//打开门 ,门上升
KNDIOMove
(
Store_IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
);
KNDIOMove
(
Store_IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
));
//AxisMove(Config.InOut_Axis, moveP.InOut_P1, Config.InOutAxis_P1_Speed, Config.InOut_Axis.StartSpeed);
}
else
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SI_02_InOutAxisHome
)
{
InStoreLog
(
" 入库处理:(SI_03_ReturnHome 所有轴先回到待机点,轴2、轴1 动作到P1,,轴4动作至P3"
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SI_03_ReturnHome
);
if
(
IsHasCompress_Axis
)
{
ShuoKeControls
.
AbsMove
(
Config
.
CompressAxis_Slv
,
moveP
.
ComPress_P3
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitShuoKe
(
Config
.
CompressAxis_Slv
,
moveP
.
ComPress_P3
,
false
));
}
AxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P1
,
Config
.
UpDownAxis_P1_Speed
,
Config
.
UpDown_Axis
.
StartSpeed
);
AxisMove
(
Config
.
Middle_Axis
,
moveP
.
Middle_P1
,
Config
.
MiddleAxis_P1_Speed
,
Config
.
Middle_Axis
.
StartSpeed
);
}
else
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SI_03_ReturnHome
)
{
if
(
IsHasCompress_Axis
)
{
InStoreLog
(
" 入库处理:(SI_04_CompressWare 压紧物品(有压紧轴的才需要此步骤),轴4( 压紧) 至P3(压紧前点))开始"
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SI_04_CompressWare
);
ShuoKeControls
.
AbsMove
(
Config
.
CompressAxis_Slv
,
moveP
.
ComPress_P3
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitShuoKe
(
Config
.
CompressAxis_Slv
,
moveP
.
ComPress_P3
,
false
));
}
else
{
InStoreLog
(
" 入库处理:(SI_05_DeviceToDoor 叉子进入入料口,轴3( 叉子) 至P2( 进料口取料点)),打开光源,开始"
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SI_05_DeviceToDoor
);
Thread
.
Sleep
(
100
);
KNDIOMove
(
Store_IO_Type
.
CameraLight_Power
,
IO_VALUE
.
HIGH
);
AxisMove
(
Config
.
InOut_Axis
,
moveP
.
InOut_P2
,
Config
.
InOutAxis_P2_Speed
,
Config
.
InOut_Axis
.
StartSpeed
);
}
}
else
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SI_04_CompressWare
)
{
InStoreLog
(
" 入库处理:(SI_05_DeviceToDoor 叉子进入入料口,轴3( 叉子) 至P2( 进料口取料点)),打开光源,开始"
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SI_05_DeviceToDoor
);
Thread
.
Sleep
(
100
);
KNDIOMove
(
Store_IO_Type
.
CameraLight_Power
,
IO_VALUE
.
HIGH
);
AxisMove
(
Config
.
InOut_Axis
,
moveP
.
InOut_P2
,
Config
.
InOutAxis_P2_Speed
,
Config
.
InOut_Axis
.
StartSpeed
);
}
else
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SI_05_DeviceToDoor
)
{
InStoreLog
(
" 入库处理:(SI_06_DoorWarToDevice 把物品放入叉子上,轴4( 压紧) 至P2(压紧点))开始,等待一秒后,轴2( 上下) 至P7( 进料口取料缓冲点))开始"
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SI_06_DoorWarToDevice
);
if
(
IsHasCompress_Axis
)
{
ShuoKeControls
.
AbsMove
(
Config
.
CompressAxis_Slv
,
moveP
.
ComPress_P2
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitShuoKe
(
Config
.
CompressAxis_Slv
,
moveP
.
ComPress_P2
,
false
));
//AxisMove(Config.Compress_Axis, moveP.ComPress_P2, Config.CompressAxis_P2_Speed, Config.Compress_Axis.StartSpeed);
System
.
Threading
.
Thread
.
Sleep
(
600
);
}
AxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P7
,
Config
.
UpDownAxis_P7_Speed
,
Config
.
UpDown_Axis
.
StartSpeed
);
}
else
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SI_06_DoorWarToDevice
)
{
InStoreLog
(
" 入库处理:(SI_07_DeviceBackFromDoor 叉子 从入料口抽出,轴3( 叉子) 至P1( 待机点))开始"
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SI_07_DeviceBackFromDoor
);
InOutBackToP1
(
moveP
.
InOut_P1
);
}
else
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SI_07_DeviceBackFromDoor
)
{
if
(
IsHasCompress_Axis
)
{
InStoreLog
(
" 入库处理:(SI_09_MoveToBag 移动到库位点,轴1( 转盘) 至P2( 库位点)轴2(上下) 至P3(库位入库前点)),关闭舱门,关闭光源,开始"
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SI_09_MoveToBag
);
AxisMove
(
Config
.
Middle_Axis
,
moveP
.
Middle_P2
,
Config
.
MiddleAxis_P2_Speed
,
Config
.
Middle_Axis
.
StartSpeed
);
AxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P3
,
Config
.
UpDownAxis_P3_Speed
,
Config
.
UpDown_Axis
.
StartSpeed
);
//关闭舱门
KNDIOMove
(
Store_IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
Store_IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
);
Thread
.
Sleep
(
100
);
KNDIOMove
(
Store_IO_Type
.
CameraLight_Power
,
IO_VALUE
.
LOW
);
}
else
{
InStoreLog
(
" 入库处理:(SI_08_LocationCylinder_Up 定位气缸伸出 (有压紧轴的不需要此步骤),开始"
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SI_08_LocationCylinder_Up
);
KNDIOMove
(
Store_IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
LOW
);
KNDIOMove
(
Store_IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
HIGH
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
LOW
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
HIGH
));
}
}
else
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SI_08_LocationCylinder_Up
)
{
InStoreLog
(
" 入库处理:(SI_09_MoveToBag 移动到库位点,轴1( 转盘) 至P2( 库位点)轴2(上下) 至P3(库位入库前点)),关闭舱门 ,关闭光源, 开始"
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SI_09_MoveToBag
);
AxisMove
(
Config
.
Middle_Axis
,
moveP
.
Middle_P2
,
Config
.
MiddleAxis_P1_Speed
,
Config
.
Middle_Axis
.
StartSpeed
);
AxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P3
,
Config
.
UpDownAxis_P3_Speed
,
Config
.
UpDown_Axis
.
StartSpeed
);
//关闭舱门
KNDIOMove
(
Store_IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
Store_IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
);
Thread
.
Sleep
(
100
);
KNDIOMove
(
Store_IO_Type
.
CameraLight_Power
,
IO_VALUE
.
HIGH
);
//StoreMove.WaitList.Add(WaitResultInfo.WaitIO(Store_IO_Type.Door_Down, IO_VALUE.HIGH));
//StoreMove.WaitList.Add(WaitResultInfo.WaitIO(Store_IO_Type.Door_Up, IO_VALUE.LOW));
}
else
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SI_09_MoveToBag
)
{
if
(
IsHasCompress_Axis
)
{
InStoreLog
(
" 入库处理:(SI_11_DeviceToBag 叉子进入库位中,轴3( 叉子) 至P3(库位取放料点))开始"
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SI_11_DeviceToBag
);
AxisMove
(
Config
.
InOut_Axis
,
moveP
.
InOut_P3
,
Config
.
InOutAxis_P3_Speed
,
Config
.
InOut_Axis
.
StartSpeed
);
}
else
{
InStoreLog
(
" 入库处理:(SI_10_LocationCylinder_Down 定位气缸退回 (有压紧轴的不需要此步骤) )开始"
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SI_10_LocationCylinder_Down
);
KNDIOMove
(
Store_IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
Store_IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
));
}
}
else
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SI_10_LocationCylinder_Down
)
{
KNDIOMove
(
Store_IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
LOW
);
InStoreLog
(
" 入库处理:(SI_11_DeviceToBag 叉子进入库位中,轴3( 叉子) 至P3(库位取放料点))开始"
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SI_11_DeviceToBag
);
AxisMove
(
Config
.
InOut_Axis
,
moveP
.
InOut_P3
,
Config
.
InOutAxis_P3_Speed
,
Config
.
InOut_Axis
.
StartSpeed
);
}
else
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SI_11_DeviceToBag
)
{
InStoreLog
(
" 入库处理:(SI_12_PutWareToBag 放下物品,轴2( 上下) 至P4( 库位入料缓冲点)轴4( 压紧) 至P3( 压紧前点))开始!"
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SI_12_PutWareToBag
);
if
(
IsHasCompress_Axis
)
{
ShuoKeControls
.
AbsMove
(
Config
.
CompressAxis_Slv
,
moveP
.
ComPress_P3
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitShuoKe
(
Config
.
CompressAxis_Slv
,
moveP
.
ComPress_P3
,
false
));
//AxisMove(Config.Compress_Axis, moveP.ComPress_P3, Config.CompressAxis_P3_Speed, Config.Compress_Axis.StartSpeed);
}
AxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P4
,
Config
.
UpDownAxis_P4_Speed
,
Config
.
UpDown_Axis
.
StartSpeed
);
}
else
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SI_12_PutWareToBag
)
{
InStoreLog
(
" 入库处理:(SI_13_DeviceBackFromBag 叉子从库位中返回,轴3( 叉子) 动作至P1( 待机点))开始!"
);
// 5= 入仓位完成(料仓Box把料盘放入对应的库位中,装置还未恢复原始状态)
string
posId
=
StoreMove
.
MoveParam
!=
null
?
StoreMove
.
MoveParam
.
PositionNum
:
""
;
lastPosId
=
posId
;
lastPosIdStatus
=
StoreStatus
.
InStoreEnd
;
storeStatus
=
StoreStatus
.
InStoreEnd
;
//手动发给服务器状态,防止没有手动
//SendLineStatus(StoreID, posId, StoreStatus.InStoreEnd);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SI_13_DeviceBackFromBag
);
//AxisMove(Config.InOut_Axis, moveP.InOut_P1, Config.InOutAxis_P1_Speed, Config.InOut_Axis.StartSpeed);
InOutBackToP1
(
moveP
.
InOut_P1
);
}
else
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SI_13_DeviceBackFromBag
)
{
InStoreLog
(
" 入库处理:(SI_14_GoBack 返回待机点,轴2/轴1/轴4动作至P1( 待机点)),检测门关闭,开始!"
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SI_14_GoBack
);
if
(
IsHasCompress_Axis
)
{
ShuoKeControls
.
AbsMove
(
Config
.
CompressAxis_Slv
,
moveP
.
ComPress_P1
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitShuoKe
(
Config
.
CompressAxis_Slv
,
moveP
.
ComPress_P1
,
false
));
//AxisMove(Config.Compress_Axis, moveP.ComPress_P1, Config.CompressAxis_P1_Speed, Config.Compress_Axis.StartSpeed);
}
AxisMove
(
Config
.
Middle_Axis
,
moveP
.
Middle_P1
,
Config
.
MiddleAxis_P1_Speed
,
Config
.
Middle_Axis
.
StartSpeed
);
AxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P1
,
Config
.
UpDownAxis_P1_Speed
,
Config
.
UpDown_Axis
.
StartSpeed
);
//关闭门
KNDIOMove
(
Store_IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
Store_IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
));
}
else
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SI_14_GoBack
)
{
string
posId
=
StoreMove
.
MoveParam
!=
null
?
StoreMove
.
MoveParam
.
PositionNum
:
""
;
LogUtil
.
info
(
LOGGER
,
StoreName
+
" 入库【"
+
posId
+
"】处理: 整个入库流程结束!"
,
storeMoveColor
);
//MoveEndEvent.Invoke(StoreID, StoreMoveType.InStore, StoreMove.MoveParam);//触发完成事件
StoreMove
.
EndMove
();
storeRunStatus
=
StoreRunStatus
.
Runing
;
//设备连接,入库后,BOX恢复原始状态
storeStatus
=
StoreStatus
.
StoreOnline
;
InOutEndProcess
(
StoreMoveType
.
InStore
);
}
else
{
LogUtil
.
info
(
LOGGER
,
StoreName
+
" 入库处理,moveStatus="
+
StoreMove
.
MoveStep
+
",没有对应的处理!"
);
}
}
#
endregion
#
region
出库
/// <summary>
/// 开始出库运动
/// </summary>
public
override
void
StartOutStoreMove
(
InOutStoreParam
param
)
{
string
posId
=
param
!=
null
?
param
.
PositionNum
:
""
;
if
(
storeRunStatus
==
StoreRunStatus
.
Runing
)
{
if
(!
LoadParamPosition
(
param
))
{
LogUtil
.
error
(
LOGGER
,
StoreName
+
" 启动一个 出库【"
+
posId
+
"】运动出错,找不到库位信息"
);
return
;
}
storeStatus
=
StoreStatus
.
OutStoreExecute
;
LogUtil
.
info
(
LOGGER
,
StoreName
+
" 出库处理:启动一个出库【"
+
posId
+
"】 开始处理 "
,
storeMoveColor
);
storeRunStatus
=
StoreRunStatus
.
Busy
;
StoreMove
.
NewMove
(
StoreMoveType
.
OutStore
,
param
);
if
(
IsHasCompress_Axis
)
{
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SO_02_DeviceBack
);
OutStoreLog
(
" 出库处理:(SO_02_DeviceBack 叉子先运动到P1 ,打开舱门 开始"
);
//AxisMove(Config.InOut_Axis, StoreMove.MoveParam.MoveP.InOut_P1, Config.InOutAxis_P1_Speed, Config.InOut_Axis.StartSpeed);
InOutBackToP1
(
StoreMove
.
MoveParam
.
MoveP
.
InOut_P1
);
//打开舱门
//KNDIOMove(Store_IO_Type.Door_Up, IO_VALUE.HIGH);
//KNDIOMove(Store_IO_Type.Door_Down, IO_VALUE.LOW);
//StoreMove.WaitList.Add(WaitResultInfo.WaitIO(Store_IO_Type.Door_Up, IO_VALUE.HIGH));
//StoreMove.WaitList.Add(WaitResultInfo.WaitIO(Store_IO_Type.Door_Down, IO_VALUE.LOW));
}
else
{
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SO_01_LocationCylinderDown
);
OutStoreLog
(
" 出库处理:(SO_01_LocationCylinderDown 定位气缸下降"
);
KNDIOMove
(
Store_IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
Store_IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
));
//CylinderMove(StoreMove, Store_IO_Type.LocationCylinder_Up, Store_IO_Type.LocationCylinder_Down);
}
}
else
{
LogUtil
.
error
(
LOGGER
,
StoreName
+
" 启动一个 出库运动出错,当前状态,storeStatus="
+
storeRunStatus
);
}
}
protected
override
void
OutStoreProcess
()
{
LineMoveP
moveP
=
StoreMove
.
MoveParam
.
MoveP
;
if
(
StoreMove
.
IsInWait
)
{
CheckWait
();
}
if
(
StoreMove
.
IsInWait
)
{
return
;
}
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SO_01_LocationCylinderDown
)
{
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SO_02_DeviceBack
);
OutStoreLog
(
" 出库处理:(SO_02_DeviceBack 叉子先运动到P1 开始"
);
//AxisMove(Config.InOut_Axis, StoreMove.MoveParam.MoveP.InOut_P1, Config.InOutAxis_P1_Speed, Config.InOut_Axis.StartSpeed);
InOutBackToP1
(
StoreMove
.
MoveParam
.
MoveP
.
InOut_P1
);
}
else
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SO_02_DeviceBack
)
{
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SO_03_ToBagPosition
);
OutStoreLog
(
" 出库处理:(SO_03_ToBagPosition 所有轴运行到库位, 轴4( 压紧) 至P3(压紧前点) ,轴1( 转盘) 至P2( 库位点),轴2(上下) 至P5(库位出库前点) ) 开始"
);
if
(
IsHasCompress_Axis
)
{
ShuoKeControls
.
AbsMove
(
Config
.
CompressAxis_Slv
,
moveP
.
ComPress_P3
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitShuoKe
(
Config
.
CompressAxis_Slv
,
moveP
.
ComPress_P3
,
false
));
//AxisMove(Config.Compress_Axis, StoreMove.MoveParam.MoveP.ComPress_P3, Config.CompressAxis_P3_Speed, Config.Compress_Axis.StartSpeed);
}
AxisMove
(
Config
.
Middle_Axis
,
StoreMove
.
MoveParam
.
MoveP
.
Middle_P2
,
Config
.
MiddleAxis_P2_Speed
,
Config
.
Middle_Axis
.
StartSpeed
);
AxisMove
(
Config
.
UpDown_Axis
,
StoreMove
.
MoveParam
.
MoveP
.
UpDown_P5
,
Config
.
UpDownAxis_P5_Speed
,
Config
.
UpDown_Axis
.
StartSpeed
);
}
else
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SO_03_ToBagPosition
)
{
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SO_04_DeviceToBag
);
OutStoreLog
(
" 出库处理:(SO_04_DeviceToBag叉子进入库位中, 轴3( 叉子) 至P3(库位取放料点))开始"
);
AxisMove
(
Config
.
InOut_Axis
,
moveP
.
InOut_P3
,
Config
.
InOutAxis_P3_Speed
,
Config
.
InOut_Axis
.
StartSpeed
);
}
else
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SO_04_DeviceToBag
)
{
OutStoreLog
(
" 出库处理:(SO_05_BagWareToDevice库位的物品放入叉子上,轴2( 上下) 至P6( 库位出料缓冲点),轴4( 压紧) 至P2(压紧点))开始"
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SO_05_BagWareToDevice
);
//电缸微动至对应料盘的上端位置
if
(
IsHasCompress_Axis
)
{
ShuoKeControls
.
AbsMove
(
Config
.
CompressAxis_Slv
,
moveP
.
ComPress_P2
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitShuoKe
(
Config
.
CompressAxis_Slv
,
moveP
.
ComPress_P2
,
false
));
//AxisMove(Config.Compress_Axis, moveP.ComPress_P2, Config.CompressAxis_P2_Speed, Config.Compress_Axis.StartSpeed);
}
AxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P6
,
Config
.
UpDownAxis_P6_Speed
,
Config
.
UpDown_Axis
.
StartSpeed
);
}
else
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SO_05_BagWareToDevice
)
{
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SO_06_BagDeviceBack
);
OutStoreLog
(
" 出库处理:(SO_06_BagDeviceBack,叉子从 库位返回,轴3( 叉子) 至P1( 待机点))开始"
);
//AxisMove(Config.InOut_Axis, moveP.InOut_P1, Config.InOutAxis_P1_Speed, Config.InOut_Axis.StartSpeed);
InOutBackToP1
(
moveP
.
InOut_P1
);
//把库位的物品放到取到叉子上之后是出仓完成
string
posId
=
StoreMove
.
MoveParam
!=
null
?
StoreMove
.
MoveParam
.
PositionNum
:
""
;
lastPosId
=
posId
;
lastPosIdStatus
=
StoreStatus
.
OutStoreBoxEnd
;
storeStatus
=
StoreStatus
.
OutStoreBoxEnd
;
}
else
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SO_06_BagDeviceBack
)
{
if
(
IsHasCompress_Axis
)
{
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SO_08_ToDoorPosition
);
OutStoreLog
(
" 出库处理: (SO_08_ToDoorPosition所有设备运行到门,,轴1( 转盘) 至P1( 待机点)轴2( 上下) 至P2( 进料口出料前点)),打开舱门 开始"
);
AxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P2
,
Config
.
UpDownAxis_P2_Speed
,
Config
.
UpDown_Axis
.
StartSpeed
);
AxisMove
(
Config
.
Middle_Axis
,
moveP
.
Middle_P1
,
Config
.
MiddleAxis_P1_Speed
,
Config
.
Middle_Axis
.
StartSpeed
);
//打开舱门
Thread
.
Sleep
(
100
);
KNDIOMove
(
Store_IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
Store_IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
));
//此处需要等待box门口没有盘
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
TrayCheck_1
,
IO_VALUE
.
LOW
));
if
(
Config
.
StoreDIList
.
ContainsKey
(
Store_IO_Type
.
TrayCheck_2
))
{
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
TrayCheck_2
,
IO_VALUE
.
LOW
));
}
}
else
{
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SO_07_LocationCylinder_Up
);
OutStoreLog
(
" 出库处理: (SO_07_LocationCylinder_Up定位气缸伸出(有压紧轴的不需要此步骤),,定位气缸伸出 )开始"
);
//同时运动,电缸移动至入料口的上端位置 旋转电机2反转
KNDIOMove
(
Store_IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
LOW
);
KNDIOMove
(
Store_IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
HIGH
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
LOW
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
HIGH
));
}
}
else
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SO_07_LocationCylinder_Up
)
{
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SO_08_ToDoorPosition
);
OutStoreLog
(
" 出库处理: (SO_08_ToDoorPosition所有设备运行到门,,轴1( 转盘) 至P1( 待机点)轴2( 上下) 至P2( 进料口出料前点)),打开舱门,开始"
);
AxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P2
,
Config
.
UpDownAxis_P2_Speed
,
Config
.
UpDown_Axis
.
StartSpeed
);
AxisMove
(
Config
.
Middle_Axis
,
moveP
.
Middle_P1
,
Config
.
MiddleAxis_P1_Speed
,
Config
.
Middle_Axis
.
StartSpeed
);
//此处需要等待box门口没有盘
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
TrayCheck_1
,
IO_VALUE
.
LOW
));
if
(
Config
.
StoreDIList
.
ContainsKey
(
Store_IO_Type
.
TrayCheck_2
))
{
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
TrayCheck_2
,
IO_VALUE
.
LOW
));
}
//打开舱门
KNDIOMove
(
Store_IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
Store_IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
Door_Up
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
Door_Down
,
IO_VALUE
.
LOW
));
}
else
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SO_08_ToDoorPosition
)
{
if
(
IsHasCompress_Axis
)
{
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SO_10_DeviceToDoor
);
OutStoreLog
(
" 出库处理:(SO_10_DeviceToDoor叉子进出料口,,轴3( 叉子) 至P2( 进料口取料点)),打开光源,开始"
);
Thread
.
Sleep
(
100
);
KNDIOMove
(
Store_IO_Type
.
CameraLight_Power
,
IO_VALUE
.
HIGH
);
AxisMove
(
Config
.
InOut_Axis
,
moveP
.
InOut_P2
,
Config
.
InOutAxis_P2_Speed
,
Config
.
InOut_Axis
.
StartSpeed
);
}
else
{
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SO_09_LocationCylinder_Down
);
OutStoreLog
(
" 出库处理:(SO_09_LocationCylinder_Down定位气缸退回(有压紧轴的不需要此步骤),,定位气缸退回 )开始"
);
KNDIOMove
(
Store_IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
Store_IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
LocationCylinder_Down
,
IO_VALUE
.
HIGH
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
LocationCylinder_Up
,
IO_VALUE
.
LOW
));
}
}
//此处需要等待移栽没有工作,才能把盘放入出料口
else
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SO_09_LocationCylinder_Down
)
{
OutStoreLog
(
" 出库处理:(SO_10_DeviceToDoor叉子进出料口,,轴3( 叉子) 至P2( 进料口取料点)),打开光源,开始"
);
Thread
.
Sleep
(
100
);
KNDIOMove
(
Store_IO_Type
.
CameraLight_Power
,
IO_VALUE
.
HIGH
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SO_10_DeviceToDoor
);
AxisMove
(
Config
.
InOut_Axis
,
moveP
.
InOut_P2
,
Config
.
InOutAxis_P2_Speed
,
Config
.
InOut_Axis
.
StartSpeed
);
}
else
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SO_10_DeviceToDoor
)
{
OutStoreLog
(
" 出库处理:(SO_11_DevicePutWare把物品放下,,轴2( 上下) 至P8( 进料口出料缓冲点)轴4( 压紧) 至P1( 待机点)) 开始!"
);
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SO_11_DevicePutWare
);
if
(
IsHasCompress_Axis
)
{
ShuoKeControls
.
AbsMove
(
Config
.
CompressAxis_Slv
,
moveP
.
ComPress_P1
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitShuoKe
(
Config
.
CompressAxis_Slv
,
moveP
.
ComPress_P1
,
false
));
}
AxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P8
,
Config
.
UpDownAxis_P8_Speed
,
Config
.
UpDown_Axis
.
StartSpeed
);
}
else
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SO_11_DevicePutWare
)
{
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SO_12_DeviceOutFromDoor
);
OutStoreLog
(
" 出库处理:(SO_12_DeviceOutFromDoor叉子从出料口返回,,轴3( 叉子) 动作至P1( 待机点))开始!"
);
InOutBackToP1
(
moveP
.
InOut_P1
);
}
else
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SO_12_DeviceOutFromDoor
)
{
StoreMove
.
NextMoveStep
(
StoreMoveStep
.
SO_13_GoBack
);
OutStoreLog
(
" 出库处理:(SO_13_GoBack升降轴返回,, 轴2至P1( 待机点))开始,关闭舱门!"
);
AxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P1
,
Config
.
UpDownAxis_P1_Speed
,
Config
.
UpDown_Axis
.
StartSpeed
);
KNDIOMove
(
Store_IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
);
KNDIOMove
(
Store_IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
);
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
Door_Up
,
IO_VALUE
.
LOW
));
StoreMove
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Store_IO_Type
.
Door_Down
,
IO_VALUE
.
HIGH
));
}
else
if
(
StoreMove
.
MoveStep
==
StoreMoveStep
.
SO_13_GoBack
)
{
string
posId
=
StoreMove
.
MoveParam
!=
null
?
StoreMove
.
MoveParam
.
PositionNum
:
""
;
storeStatus
=
StoreStatus
.
StoreOnline
;
LogUtil
.
info
(
LOGGER
,
StoreName
+
" 出库【"
+
posId
+
"】处理: 整个出库流程结束,关闭光源!"
,
storeMoveColor
);
KNDIOMove
(
Store_IO_Type
.
CameraLight_Power
,
IO_VALUE
.
LOW
);
StoreMove
.
EndMove
();
storeRunStatus
=
StoreRunStatus
.
Runing
;
InOutEndProcess
(
StoreMoveType
.
OutStore
);
}
else
{
LogUtil
.
error
(
LOGGER
,
StoreName
+
" 出库处理,moveStatus="
+
StoreMove
.
MoveStep
+
",没有对应的处理!"
);
}
}
#
endregion
public
List
<
FixtureCodeInfo
>
waitOutStoreList
=
new
List
<
FixtureCodeInfo
>();
public
object
waitOutListLock
=
""
;
public
void
AddWaitOutInfo
(
FixtureCodeInfo
code
)
{
lock
(
waitOutListLock
)
{
waitOutStoreList
.
Add
(
code
);
}
}
private
void
InOutEndProcess
(
StoreMoveType
storeMoveType
)
{
try
{
CurrInOutCount
++;
CurrInOutACount
++;
//是否自动进入出库状态
if
(!
autoNext
)
{
return
;
}
if
(
storeMoveType
.
Equals
(
StoreMoveType
.
InStore
))
{
int
newIndex
=
autoPositionIndex
-
1
;
if
(
autoJiange
==
0
)
{
newIndex
=
autoPositionIndex
;
}
if
(
newIndex
<
0
)
{
autoNext
=
false
;
autoMsg
=
"自动出入库结束!"
;
LogUtil
.
info
(
LOGGER
,
StoreName
+
"下一个索引不存在,自动 出入库结束!"
);
}
else
{
autoPositionIndex
=
newIndex
;
string
posid
=
PositionNumList
[
autoPositionIndex
];
//判断是否需要重置
if
(
CurrInOutACount
>=
Config
.
Box_ResetACount
)
{
LogUtil
.
info
(
LOGGER
,
StoreName
+
"自动进入下一个出库:posid="
+
posid
+
",当时已经出入库"
+
CurrInOutACount
+
"次,需要重置BOX,先把出库信息存入排队列表中"
);
Reset
(
false
);
autoMsg
=
"自动出库:"
+
posid
;
AddWaitOutInfo
(
new
FixtureCodeInfo
(
0
,
""
,
posid
));
}
else
if
(
CurrInOutCount
>=
Config
.
Box_ResetMCount
)
{
LogUtil
.
info
(
LOGGER
,
StoreName
+
"自动进入下一个出库:posid="
+
posid
+
",当时已经出入库"
+
CurrInOutCount
+
"次,需要重置BOX旋转轴,先把出库信息存入排队列表中"
);
ResetMiddleAxis
(
false
);
autoMsg
=
"自动出库:"
+
posid
;
AddWaitOutInfo
(
new
FixtureCodeInfo
(
0
,
""
,
posid
));
}
else
{
LogUtil
.
info
(
LOGGER
,
StoreName
+
"自动进入下一个出库:posid="
+
posid
);
autoMsg
=
"自动出库:"
+
posid
;
StartOutStoreMove
(
new
InOutStoreParam
(
""
,
posid
));
}
}
}
else
if
(
storeMoveType
.
Equals
(
StoreMoveType
.
OutStore
))
{
int
newIndex
=
autoPositionIndex
-
autoJiange
;
if
(
newIndex
<
0
)
{
autoNext
=
false
;
autoMsg
=
"自动出入库结束!"
;
LogUtil
.
info
(
LOGGER
,
StoreName
+
"下一个索引不存在,自动 出入库结束!"
);
}
else
{
string
posid
=
PositionNumList
[
newIndex
];
//判断是否需要重置
if
(
CurrInOutACount
>=
Config
.
Box_ResetACount
)
{
LogUtil
.
info
(
LOGGER
,
StoreName
+
"自动进入下一个入库:posid="
+
posid
+
",当时已经出入库"
+
CurrInOutACount
+
"次,需要重置BOX,先把入库信息存入排队列表中"
);
Reset
(
false
);
autoMsg
=
"自动入库:"
+
posid
;
AddWaitOutInfo
(
new
FixtureCodeInfo
(
0
,
"AAAA"
,
posid
));
}
else
if
(
CurrInOutCount
>=
Config
.
Box_ResetMCount
)
{
LogUtil
.
info
(
LOGGER
,
StoreName
+
"自动进入下一个出库:posid="
+
posid
+
",当时已经出入库"
+
CurrInOutCount
+
"次,需要重置BOX旋转轴,先把出库信息存入排队列表中"
);
ResetMiddleAxis
(
false
);
autoMsg
=
"自动入库:"
+
posid
;
AddWaitOutInfo
(
new
FixtureCodeInfo
(
0
,
"AAAA"
,
posid
));
}
else
{
LogUtil
.
info
(
LOGGER
,
StoreName
+
"自动进入下一个入库:posid="
+
posid
);
autoMsg
=
"自动入库:"
+
posid
;
StartInStoreMove
(
new
InOutStoreParam
(
"AAAA"
,
posid
));
}
}
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
LOGGER
,
ex
.
ToString
());
}
}
private
void
InStoreLog
(
string
msg
)
{
string
posId
=
StoreMove
.
MoveParam
!=
null
?
StoreMove
.
MoveParam
.
PositionNum
:
""
;
LogUtil
.
info
(
LOGGER
,
StoreName
+
"【"
+
posId
+
"】"
+
msg
,
storeMoveColor
);
}
private
void
OutStoreLog
(
string
msg
)
{
string
posId
=
StoreMove
.
MoveParam
!=
null
?
StoreMove
.
MoveParam
.
PositionNum
:
""
;
LogUtil
.
info
(
LOGGER
,
StoreName
+
"【"
+
posId
+
"】"
+
msg
,
storeMoveColor
);
}
}
}
source/DeviceLibrary/ktkSingleStore/SAStoreManager.cs
deleted
100644 → 0
查看文件 @
e1c28be
using
log4net
;
using
OnlineStore.Common
;
using
OnlineStore.LoadCSVLibrary
;
using
System
;
using
System.Collections.Generic
;
using
System.IO
;
using
System.IO.Ports
;
using
System.Linq
;
using
System.Text
;
using
System.Windows.Forms
;
namespace
OnlineStore.DeviceLibrary
{
public
class
SAStoreManager
{
public
static
readonly
ILog
LOGGER
=
LogManager
.
GetLogger
(
System
.
Reflection
.
MethodBase
.
GetCurrentMethod
().
DeclaringType
);
public
static
KTK_SA_BoxBean
store
=
null
;
private
static
bool
isInit
=
false
;
public
static
bool
IsConnectServer
=
true
;
public
SAStoreManager
()
{
}
public
static
void
CheckEnum
(
Type
type
)
{
if
(
type
.
IsEnum
)
{
List
<
int
>
valueList
=
new
List
<
int
>();
foreach
(
int
item
in
Enum
.
GetValues
(
type
))
{
if
(
valueList
.
Contains
(
item
))
{
LogUtil
.
error
(
LOGGER
,
type
.
Name
+
"枚举值:"
+
item
+
"重复存在,请检查代码!"
);
Application
.
Exit
();
break
;
}
valueList
.
Add
(
item
);
}
}
}
public
static
KTK_SA_BoxBean
InitStore
()
{
try
{
if
(!
isInit
)
{
string
server
=
ConfigAppSettings
.
GetValue
(
Setting_Init
.
http_server
);
if
(
server
.
Equals
(
""
))
{
IsConnectServer
=
false
;
}
else
{
IsConnectServer
=
true
;
}
CheckEnum
(
typeof
(
StoreMoveStep
));
CheckEnum
(
typeof
(
StoreStatus
));
CheckEnum
(
typeof
(
StoreRunStatus
));
isInit
=
true
;
string
storeType
=
ConfigAppSettings
.
GetValue
(
Setting_Init
.
Store_Type
);
LogUtil
.
info
(
LOGGER
,
"配置的料仓 类型="
+
storeType
+
",开始加载料仓配置"
);
if
(
storeType
==
StoreType
.
RC_KTK_SA
)
{
string
appPath
=
Application
.
StartupPath
;
string
lineType
=
ConfigAppSettings
.
GetValue
(
Setting_Init
.
Store_Type
);
string
CID
=
ConfigAppSettings
.
GetValue
(
Setting_Init
.
Store_CID
);
string
linefilePath
=
appPath
+
ConfigAppSettings
.
GetValue
(
Setting_Init
.
Store_ConfigPath
);
StoreConfig
storeConfig
=
CSVConfigReader
.
LoadConfig
(
1
,
CID
,
StoreType
.
RC_KTK_SA
,
linefilePath
);
string
positionConfigFile
=
appPath
+
ConfigAppSettings
.
GetValue
(
Setting_Init
.
Store_Position_Config
);
if
(
File
.
Exists
(
positionConfigFile
))
{
LogUtil
.
info
(
LOGGER
,
"加载位置文件:"
+
positionConfigFile
);
CSVPositionReader
<
KTKSAStorePostion
>.
ReloadCSVFile
(
positionConfigFile
);
}
KTK_SA_BoxBean
storeBean
=
new
KTK_SA_BoxBean
((
KTK_SA_Config
)
storeConfig
);
storeBean
.
CID
=
CID
;
LogUtil
.
info
(
LOGGER
,
"加载料仓完成!"
);
store
=
storeBean
;
return
store
;
}
}
}
catch
(
Exception
ex
)
{
LOGGER
.
Error
(
"出错:"
,
ex
);
MessageBox
.
Show
(
ex
.
ToString
(),
"加载配置错误(请检查配置)"
);
Application
.
Exit
();
}
return
store
;
}
/// <summary>
/// 修改了料仓配置,更新缓存,更新配置文件(只能更新PRO的配置)
/// </summary>
/// <param name="kTK_LA_Store_Config"></param>
public
static
void
UpdateBoxConfig
(
KTK_SA_Config
storeConfig
)
{
try
{
//位置配置到文件中
string
appPath
=
Application
.
StartupPath
;
string
configFile
=
appPath
+
ConfigAppSettings
.
GetValue
(
Setting_Init
.
Store_ConfigPath
);
bool
result
=
CSVConfigReader
.
SaveBoxPosition
(
configFile
,
storeConfig
);
if
(!
result
)
{
LOGGER
.
Error
(
"保存配置文件失败:"
+
configFile
);
}
store
.
Config
=
storeConfig
;
store
.
MoveAxisConfig
();
}
catch
(
Exception
ex
)
{
LOGGER
.
Error
(
"出错:"
,
ex
);
}
}
public
static
bool
OpenShuoKe
(
KTK_SA_BoxBean
box
)
{
//打开硕科步进驱动器端口
Parity
parity
=
(
Parity
)
box
.
Config
.
CompressAxis_PortParity
;
StopBits
bit
=
(
StopBits
)
box
.
Config
.
CompressAxis_StopBits
;
bool
result
=
ShuoKeControls
.
InitPort
(
box
.
Config
.
CompressAxis_PortName
,
box
.
Config
.
CompressAxis_PortBaudrate
,
box
.
Config
.
CompressAxis_PortParity
,
8
,
bit
);
if
(
result
)
{
LogUtil
.
info
(
box
.
StoreName
+
"打开硕科步进控制器【"
+
box
.
Config
.
CompressAxis_PortName
+
"】成功"
);
return
true
;
}
else
{
LogUtil
.
error
(
LOGGER
,
box
.
StoreName
+
"打开硕科步进控制器【"
+
box
.
Config
.
CompressAxis_PortName
+
"】失败,启动失败!"
);
return
false
;
}
}
}
}
source/DeviceLibrary/store/IOUtil.cs
查看文件 @
10be948
...
...
@@ -21,78 +21,4 @@ namespace OnlineStore.DeviceLibrary
}
public
enum
IO_TYPE
{
/// <summary>
/// 输入io
/// </summary>
DI
=
1
,
/// <summary>
/// 输出io
/// </summary>
DO
=
2
,
/// <summary>
/// 扩展板卡输入IO
/// </summary>
EC_DI
=
3
,
/// <summary>
/// 扩展板卡输出Io
/// </summary>
EC_DO
=
4
,
/// <summary>
/// 轴IO
/// </summary>
AXIS_IO
=
5
,
/// <summary>
/// 轴MontionIO
/// </summary>
AXIS_MONTION_IO
=
6
,
/// <summary>
/// 康泰克输入IO
/// </summary>
KTK_DI
=
10
,
/// <summary>
/// 康泰克输出IO
/// </summary>
KTK_DO
=
11
,
}
//public class IOUtil
//{
// /// <summary>
// /// Io状态转为二进制字符串的长度
// /// </summary>
// public static int IOStrLength = 16;
// public static int TypeValue = 1000;
// //根据枚举获得类型和索引
// public static IO_TYPE GetIoType(PCI_IO io)
// {
// return (IO_TYPE)((int)io / TypeValue);
// }
// public static int GetIoIndex(PCI_IO io)
// {
// return (int)io % TypeValue;
// }
// //根据枚举获得类型和索引
// public static IO_TYPE GetIoType(PCI_AXIS_IO io)
// {
// return (IO_TYPE)((int)io / TypeValue);
// }
// public static int GetIoIndex(PCI_AXIS_IO io)
// {
// return (int)io % TypeValue;
// }
// public static PCI_IO ToPCIIO(IO_TYPE type, int index)
// {
// return (PCI_IO)((int)type * TypeValue + index);
// }
//}
}
source/DeviceLibrary/store/InOrOutStoreParam.cs
查看文件 @
10be948
...
...
@@ -18,11 +18,9 @@ namespace OnlineStore.DeviceLibrary
public
static
readonly
ILog
log
=
LogManager
.
GetLogger
(
MethodBase
.
GetCurrentMethod
().
DeclaringType
);
public
InOutStoreParam
()
{
KTK
StoreP
=
null
;
AC
StoreP
=
null
;
this
.
WareNumber
=
""
;
MoveP
=
null
;
KTKSAStoreP
=
null
;
}
/// <summary>
/// 新建一个对象
...
...
@@ -31,7 +29,7 @@ namespace OnlineStore.DeviceLibrary
/// <param name="position">仓位号</param>
public
InOutStoreParam
(
string
wareNo
,
string
posId
)
{
KTK
StoreP
=
null
;
AC
StoreP
=
null
;
WareNumber
=
wareNo
;
PositionNum
=
posId
;
MoveP
=
null
;
...
...
@@ -39,7 +37,7 @@ namespace OnlineStore.DeviceLibrary
}
public
InOutStoreParam
(
string
wareNo
,
string
posId
,
string
plateH
,
string
plateW
)
{
KTK
StoreP
=
null
;
AC
StoreP
=
null
;
WareNumber
=
wareNo
;
PositionNum
=
posId
;
MoveP
=
null
;
...
...
@@ -49,7 +47,7 @@ namespace OnlineStore.DeviceLibrary
}
public
InOutStoreParam
(
string
wareNo
,
string
posId
,
string
plateH
,
string
plateW
,
int
trayCode
)
{
KTK
StoreP
=
null
;
AC
StoreP
=
null
;
WareNumber
=
wareNo
;
PositionNum
=
posId
;
MoveP
=
null
;
...
...
@@ -61,81 +59,39 @@ namespace OnlineStore.DeviceLibrary
public
InOutStoreParam
(
string
wareNo
,
string
posId
,
LineMoveP
linePosition
)
{
KTK
StoreP
=
null
;
AC
StoreP
=
null
;
WareNumber
=
wareNo
;
PositionNum
=
posId
;
MoveP
=
linePosition
;
IsSolderPaste
=
false
;
}
public
InOutStoreParam
(
string
wareNo
,
string
posId
,
KTKSAStorePos
tion
movep
)
public
InOutStoreParam
(
string
wareNo
,
string
posId
,
ACStorePosi
tion
movep
)
{
KTKStoreP
=
null
;
DBMoveP
=
null
;
ACStoreP
=
movep
;
WareNumber
=
wareNo
;
PositionNum
=
posId
;
MoveP
=
null
;
KTKSAStoreP
=
movep
;
IsSolderPaste
=
false
;
}
public
InOutStoreParam
(
string
wareNo
,
string
posId
,
DoubleLineMoveP
linePosition
)
{
KTKStoreP
=
null
;
WareNumber
=
wareNo
;
PositionNum
=
posId
;
DBMoveP
=
linePosition
;
IsSolderPaste
=
false
;
}
private
KTKStorePostion
KTKStoreP
=
null
;
public
KTKStorePostion
GetKTKPosition
()
{
try
{
if
(
KTKStoreP
==
null
)
{
KTKStoreP
=
CSVPositionReader
<
KTKStorePostion
>.
GetPositon
(
PositionNum
);
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
log
,
"出入库获取库位信息GetKTKPosition出错:"
+
ex
.
ToString
());
}
return
KTKStoreP
;
}
private
ACStorePosition
ACStoreP
=
null
;
private
DoublePosition
DBStoreP
=
null
;
public
DoublePosition
GetDBPostion
()
public
ACStorePosition
GetACPosition
()
{
try
{
if
(
DB
StoreP
==
null
)
if
(
AC
StoreP
==
null
)
{
DBStoreP
=
CSVPositionReader
<
Doubl
ePosition
>.
GetPositon
(
PositionNum
);
ACStoreP
=
CSVPositionReader
<
ACStor
ePosition
>.
GetPositon
(
PositionNum
);
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
log
,
"出入库获取库位信息Get
DBPos
tion出错:"
+
ex
.
ToString
());
LogUtil
.
error
(
log
,
"出入库获取库位信息Get
KTKPosi
tion出错:"
+
ex
.
ToString
());
}
return
DB
StoreP
;
return
AC
StoreP
;
}
private
KTKSAStorePostion
KTKSAStoreP
=
null
;
public
KTKSAStorePostion
GetKTKSAPosition
()
{
try
{
if
(
KTKSAStoreP
==
null
)
{
KTKSAStoreP
=
CSVPositionReader
<
KTKSAStorePostion
>.
GetPositon
(
PositionNum
);
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
log
,
"出入库获取库位信息GetKTKSAPosition出错:"
+
ex
.
ToString
());
}
return
KTKSAStoreP
;
}
/// <summary>
/// 物品二维码信息
/// </summary>
...
...
@@ -163,7 +119,6 @@ namespace OnlineStore.DeviceLibrary
/// </summary>
public
bool
IsSolderPaste
{
get
;
set
;
}
public
DoubleLineMoveP
DBMoveP
{
get
;
set
;
}
}
}
source/DeviceLibrary/store/
KTKLinePosition
.cs
→
source/DeviceLibrary/store/
LineMoveP
.cs
查看文件 @
10be948
...
...
@@ -6,32 +6,6 @@ using System.Text;
namespace
OnlineStore.DeviceLibrary
{
/// <summary>
/// 双层料仓的移动信息(电钢上下运动,康泰克旋转)
/// </summary>
public
class
DoubleLineMoveP
{
/// <summary>
/// 电钢门高位
/// </summary>
public
int
DooHighPosition
{
get
;
set
;
}
/// <summary>
/// 电钢门低位
/// </summary>
public
int
DoorLowPosition
{
get
;
set
;
}
/// <summary>
/// 库位高点
/// </summary>
public
int
BagHighPosition
{
get
;
set
;
}
/// <summary>
/// 库位低点
/// </summary>
public
int
BagLowPosition
{
get
;
set
;
}
/// <summary>
/// 库位中轴位置
/// </summary>
public
int
MiddleAxisPosition
{
get
;
set
;
}
}
/// <summary>
/// 康泰克料仓的移动信息
...
...
source/DeviceLibrary/store/StoreBase.cs
deleted
100644 → 0
查看文件 @
e1c28be
//using log4net;
//using System;
//using System.Collections.Generic;
//using System.Drawing;
//using System.Linq;
//using System.Text;
//
//using OnlineStore.Common;
//using OnlineStore.LoadCSVLibrary;
//namespace OnlineStore.DeviceLibrary
//{
// public abstract class StoreBase
// {
// public static readonly ILog LOGGER = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// /// <summary>
// /// 料仓ID唯一
// /// </summary>
// public int StoreId { get; set; }
// /// <summary>
// /// 开始运行的时间
// /// </summary>
// public DateTime StartTime { get; set; }
// /// <summary>
// /// 日志颜色
// /// </summary>
// public static Color storeMoveColor = Color.Blue;
// public DateTime statusTime = DateTime.Now;
// /// <summary>
// /// 伺服运行时间列表,key=轴,key=开始时间,value=结束时间
// /// </summary>
// public Dictionary<int, Dictionary<DateTime, DateTime>> AxisRunTimeMap = new Dictionary<int, Dictionary<DateTime, DateTime>>();
// public DateTime middleAxisLastStartTime;
// public DateTime updownAxisLastStartTime;
// /// <summary>
// /// 上下轴报警状态
// /// </summary>
// public int UpDownAxisAlarmCode = 0;
// /// <summary>
// /// 料仓中轴报警状态
// /// </summary>
// public int MiddleAxisAlarmCode = 0;
// /// <summary>
// /// 定时器
// /// </summary>
// protected System.Timers.Timer timersTimer;
// /// <summary>
// /// 料仓状态
// /// </summary>
// protected StoreRunStatus storerunstatus = StoreRunStatus.Wait;
// /// <summary>
// /// 移动信息
// /// </summary>
// public StoreMoveInfo StoreMove = null;
// /// <summary>
// /// 料仓配置信息
// /// </summary>
// public StoreConfig Config { get; set; }
// public string StoreName()
// {
// return "ID=" + Config.Id + ",CID+" + Config.CID;
// }
// public StoreStatus storeStatus = StoreStatus.StoreOnline;
// /// <summary>
// /// 料仓状态
// /// </summary>
// public StoreRunStatus storeRunStatus
// {
// get
// {
// return storerunstatus;
// }
// set
// {
// StoreRunStatus oldStatus = storerunstatus;
// storerunstatus = value;
// statusTime = DateTime.Now;
// }
// }
// public StoreBase()
// {
// }
// public StoreBase(StoreConfig config)
// {
// this.StoreId = config.Id;
// this.Config = config;
// StoreMove = new StoreMoveInfo(StoreId);
// }
// /// <summary>
// /// 定时任务
// /// </summary>
// protected abstract void timersTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e);
// /// <summary>
// /// 复位
// /// </summary>
// public abstract void Reset();
// /// <summary>
// /// 报警
// /// </summary>
// /// <param name="alarmType"></param>
// public abstract void Alarm(StoreAlarmType alarmType);
// /// <summary>
// /// 停止运动
// /// </summary>
// public abstract void StopMove();
// /// <summary>
// /// 上下移动(根据料仓类型,为电钢移动或者运动轴运动)
// /// </summary>
// /// <param name="abs"></param>
// public abstract void UpDownAxisMove(AbsMoveParam abs);
// /// <summary>
// /// 中轴运动
// /// </summary>
// /// <param name="abs"></param>
// public abstract void MiddleAxisMove(AbsMoveParam abs);
// /// <summary>
// /// 出仓流程处理
// /// </summary>
// protected abstract void OutStoreProcess();
// /// <summary>
// /// 入仓流程处理
// /// </summary>
// protected abstract void InStoreProcess();
// /// <summary>
// /// 判断急停是否开着,开着表示可以运行
// /// </summary>
// /// <returns></returns>
// public abstract Boolean IsCanStart();
// /// <summary>
// /// 开始运行
// /// </summary>
// public abstract void StartRun();
// /// <summary>
// /// 停止运行
// /// </summary>
// public abstract void StopRun();
// /// <summary>
// /// 初始化
// /// </summary>
// public virtual void Init()
// {
// StoreMove = new StoreMoveInfo(this.StoreId);
// timersTimer = new System.Timers.Timer();
// timersTimer.Enabled = false;
// timersTimer.Interval = 100;
// timersTimer.Elapsed += timersTimer_Elapsed;
// timersTimer.AutoReset = true;
// }
// /// <summary>
// /// 运动处理
// /// </summary>
// public virtual void BusyMoveProcess()
// {
// if (StoreMove.MoveType == StoreMoveType.InStore)
// {
// InStoreProcess();
// }
// else if (StoreMove.MoveType == StoreMoveType.OutStore)
// {
// OutStoreProcess();
// }
// }
// /// <summary>
// /// 开始入库移动移动
// /// </summary>
// public abstract void StartInStoreMove(InOutStoreParam param);
// /// <summary>
// /// 开始出库运动
// /// </summary>
// public abstract void StartOutStoreMove(InOutStoreParam param);
// /// <summary>
// /// 开始或者停止吹吹气,通过io来判断
// /// </summary>
// /// <param name="start"></param>
// public abstract void StartOrStopBlow(bool start);
// /// <summary>
// /// io控制的运动(取料叉子运动,门上下移动)
// /// </summary>
// /// <param name="moveType">运行方式</param>
// /// <param name="ioValue">1=开始,0=停止</param>
// public abstract void DeviceIoMove(Store_IO_Type moveType, IO_VALUE ioValue);
// /// <summary>
// /// 获取io控制的运动当前的指示灯状态
// /// </summary>
// public abstract IO_VALUE GetDeviceIoStatus(Store_IO_Type moveType);
// /// <summary>
// /// 中轴轴定点运动结束处理
// /// </summary>
// public virtual void MiddleMoveEnd(int moveType, int AxisNo, int targetPosition)
// {
// StoreMoveInfo move = StoreMove;
// if (middleAxisLastStartTime != null && middleAxisLastStartTime.Year > 1)
// {
// Dictionary<DateTime,DateTime> moveTimeMap=null;
// if (AxisRunTimeMap.ContainsKey(AxisNo))
// {
// moveTimeMap = AxisRunTimeMap[AxisNo];
// }
// else
// {
// moveTimeMap = new Dictionary<DateTime, DateTime>();
// AxisRunTimeMap.Add(AxisNo, moveTimeMap);
// }
// if (!moveTimeMap.ContainsKey(middleAxisLastStartTime))
// {
// moveTimeMap.Add(middleAxisLastStartTime, DateTime.Now);
// LOGGER.Info("storeId=" + StoreId + ",伺服运动结束,开始时间" + middleAxisLastStartTime.ToString() + ",结束时间" + DateTime.Now.ToString());
// middleAxisLastStartTime.AddYears(-1 * middleAxisLastStartTime.Year+1);
// }
// AxisRunTimeMap.Remove(AxisNo);
// AxisRunTimeMap.Add(AxisNo, moveTimeMap);
// }
// if (moveType == 0)
// {
// //if (move.moveStatus == StoreMoveStep.InStoreReadyMove
// // || move.moveStatus == StoreMoveStep.MoveToRoom
// // || move.moveStatus == StoreMoveStep.MoveOutFromRoom
// // || move.moveStatus == StoreMoveStep.OutStoreReadyMove
// // )
// {
// move.MoveResult++;
// }
// }
// else if (moveType == 1)
// {
// //if (storeRunStatus == StoreRunStatus.Reset)
// //{
// // StoreMove.MoveResult--;
// // if (StoreMove.MoveResult == 0)
// // {
// // storeRunStatus = StoreRunStatus.Runing;
// // }
// //}
// }
// }
// /// <summary>
// /// 获取料仓运行的时间
// /// </summary>
// /// <returns></returns>
// public TimeSpan GetStoreRunTime()
// {
// if (StartTime != null)
// {
// return DateTime.Now - StartTime;
// }
// else
// {
// return new TimeSpan(0);
// }
// }
// /// <summary>
// /// 获取轴已运行时间
// /// </summary>
// /// <returns></returns>
// public TimeSpan GetAxisRunTime(int axisNo)
// {
// TimeSpan span = new TimeSpan(0);
// if (AxisRunTimeMap.ContainsKey(axisNo))
// {
// Dictionary<DateTime, DateTime> moveMap = AxisRunTimeMap[axisNo];
// if (moveMap != null && moveMap.Count > 0)
// {
// foreach (DateTime key in moveMap.Keys)
// {
// span += moveMap[key] - key;
// }
// }
// }
// return span;
// }
// public abstract string GetTemperateAddress();
// public abstract bool IsMyAxis(string deviceName, int AxisNo);
// }
//}
source/LoadCVSLibrary/LoadCSVLibrary.csproj
查看文件 @
10be948
...
...
@@ -48,8 +48,6 @@
<ItemGroup>
<Compile Include="CSVExection.cs" />
<Compile Include="position\ACSAStorePosition.cs" />
<Compile Include="position\DoublePosition.cs" />
<Compile Include="position\KTKSAStorePostion.cs" />
<Compile Include="storeConfig\ConfigItemBase.cs" />
<Compile Include="storeConfig\ConfigProAttribute.cs" />
<Compile Include="storeConfig\config\AC_SA_Config.cs" />
...
...
@@ -62,7 +60,6 @@
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="storeConfig\config\StoreConfig.cs" />
<Compile Include="position\StorePostionBase.cs" />
<Compile Include="position\KTKStorePostion.cs" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
...
...
source/LoadCVSLibrary/position/ACSAStorePosition.cs
查看文件 @
10be948
...
...
@@ -4,12 +4,12 @@ using System.Linq;
using
System.Text
;
namespace
OnlineStore.LoadCSVLibrary
.position
namespace
OnlineStore.LoadCSVLibrary
{
/// <summary>
/// 松下伺服485控制,单台料仓
/// </summary>
public
class
ACS
AS
torePosition
:
StorePostionBase
public
class
ACStorePosition
:
StorePostionBase
{
/// <summary>
/// 对应的料仓ID(流水线料仓需要用此字段区分哪个BOX)
/// </summary>
...
...
source/LoadCVSLibrary/position/DoublePosition.cs
deleted
100644 → 0
查看文件 @
e1c28be
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
namespace
OnlineStore.LoadCSVLibrary
{
public
class
DoublePosition
:
StorePostionBase
{
/// <summary>
/// 对应的料仓ID(流水线料仓需要用此字段区分哪个BOX)
/// </summary>
[
CSVAttribute
(
"料仓ID"
)]
public
int
StoreId
{
get
;
set
;
}
/// <summary>
///电钢高位
/// </summary>
[
CSVAttribute
(
"电钢高位"
)]
public
int
StellHigh
{
get
;
set
;
}
/// <summary>
///电钢低位
/// </summary>
[
CSVAttribute
(
"电钢低位"
)]
public
int
StellLow
{
get
;
set
;
}
/// <summary>
/// 出库中轴位置
/// </summary>
[
CSVAttribute
(
"出库中轴位置"
)]
public
int
MiddleOutPosition
{
get
;
set
;
}
/// <summary>
/// 入库中轴位置
/// </summary>
[
CSVAttribute
(
"入库中轴位置"
)]
public
int
MiddleInPosition
{
get
;
set
;
}
}
}
source/LoadCVSLibrary/position/KTKSAStorePostion.cs
deleted
100644 → 0
查看文件 @
e1c28be
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
namespace
OnlineStore.LoadCSVLibrary
{
/// <summary>
/// KTK单台料仓
/// </summary>
public
class
KTKSAStorePostion
:
StorePostionBase
{
/// <summary>
/// 对应的料仓ID(流水线料仓需要用此字段区分哪个BOX)
/// </summary>
[
CSVAttribute
(
"料仓ID"
)]
public
int
StoreId
{
get
;
set
;
}
/// <summary>
/// 中轴位置(旋转轴库位点)P2
/// </summary>
[
CSVAttribute
(
"中轴位置P2"
)]
public
int
MiddleAxis_Position_P2
{
get
;
set
;
}
/// <summary>
/// 升降轴(库位出料前点)P5
/// </summary>
[
CSVAttribute
(
"升降轴库位出料前点P5"
)]
public
int
UpDownAxis_OHPosition_P5
{
get
;
set
;
}
/// <summary>
/// 升降轴(库位出料缓冲点)P6
/// </summary>
[
CSVAttribute
(
"升降轴库位出料缓冲点P6"
)]
public
int
UpDownAxis_OLPosition_P6
{
get
;
set
;
}
/// <summary>
/// 升降轴(库位入料前点)P3
/// </summary>
[
CSVAttribute
(
"升降轴库位入料前点P3"
)]
public
int
UpDownAxis_IHPosition_P3
{
get
;
set
;
}
/// <summary>
/// 升降轴(库位入料缓冲点)P4
/// </summary>
[
CSVAttribute
(
"升降轴库位入料缓冲点P4"
)]
public
int
UpDownAxis_ILPosition_P4
{
get
;
set
;
}
/// <summary>
/// 进出轴(库位点取料点)P3
/// </summary>
[
CSVAttribute
(
"进出轴库位点取料点P3"
)]
public
int
InOutAxis_Position_P3
{
get
;
set
;
}
/// <summary>
/// 压紧轴(压紧点)P2
/// </summary>
[
CSVAttribute
(
"压紧轴压紧点P2"
)]
public
int
CompressAxis_Position_P2
{
get
;
set
;
}
/// <summary>
/// 压紧轴(压紧前点)P3
/// </summary>
[
CSVAttribute
(
"压紧轴压紧前点P3"
)]
public
int
CompressAxis_CPosition_P3
{
get
;
set
;
}
/// <summary>
/// 轴3(进出轴) 进料口取料点P2
/// </summary>
[
CSVAttribute
(
"进出轴进料口取料点P2"
)]
public
int
InOutAxis_DoorPosition_P2
{
get
;
set
;
}
///// <summary>
///// 轴2( 升降轴) 进料口取料点 P1
///// </summary>
//[CSVAttribute("升降轴进料口取料点P1")]
//public int UpDownAxis_DoorOPosition_P1 { get; set; }
///// <summary>
///// 轴2( 升降轴) 进料口出料缓冲点P8
///// </summary>
//[CSVAttribute("升降轴进料口出料缓冲点P8")]
//public int UpDownAxis_DoorIBPosition_P8 { get; set; }
/// <summary>
/// 轴2( 升降轴) 进料口出料前点P2
/// </summary>
[
CSVAttribute
(
"升降轴进料口出料前点P2"
)]
public
int
UpDownAxis_DoorIPosition_P2
{
get
;
set
;
}
/// <summary>
/// 轴2( 升降轴) 进料口取料缓冲点P7
/// </summary>
[
CSVAttribute
(
"升降轴进料口取料缓冲点P7"
)]
public
int
UpDownAxis_DoorOBPosition_P7
{
get
;
set
;
}
}
}
source/LoadCVSLibrary/position/KTKStorePostion.cs
deleted
100644 → 0
查看文件 @
e1c28be
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
namespace
OnlineStore.LoadCSVLibrary
{
/// <summary>
/// 流水线料仓,使用ktk运动版的配置
/// </summary>
public
class
KTKStorePostion
:
StorePostionBase
{
/// <summary>
/// 对应的料仓ID(流水线料仓需要用此字段区分哪个BOX)
/// </summary>
[
CSVAttribute
(
"料仓ID"
)]
public
int
StoreId
{
get
;
set
;
}
/// <summary>
/// 中轴位置(旋转轴库位点)P2
/// </summary>
[
CSVAttribute
(
"中轴位置P2"
)]
public
int
MiddleAxis_Position_P2
{
get
;
set
;
}
/// <summary>
/// 升降轴(库位出料前点)P5
/// </summary>
[
CSVAttribute
(
"升降轴库位出料前点P5"
)]
public
int
UpDownAxis_OHPosition_P5
{
get
;
set
;
}
/// <summary>
/// 升降轴(库位出料缓冲点)P6
/// </summary>
[
CSVAttribute
(
"升降轴库位出料缓冲点P6"
)]
public
int
UpDownAxis_OLPosition_P6
{
get
;
set
;
}
/// <summary>
/// 升降轴(库位入料前点)P3
/// </summary>
[
CSVAttribute
(
"升降轴库位入料前点P3"
)]
public
int
UpDownAxis_IHPosition_P3
{
get
;
set
;
}
/// <summary>
/// 升降轴(库位入料缓冲点)P4
/// </summary>
[
CSVAttribute
(
"升降轴库位入料缓冲点P4"
)]
public
int
UpDownAxis_ILPosition_P4
{
get
;
set
;
}
/// <summary>
/// 进出轴(库位点取料点)P3
/// </summary>
[
CSVAttribute
(
"进出轴库位点取料点P3"
)]
public
int
InOutAxis_Position_P3
{
get
;
set
;
}
/// <summary>
/// 压紧轴(压紧点)P2
/// </summary>
[
CSVAttribute
(
"压紧轴压紧点P2"
)]
public
int
CompressAxis_Position_P2
{
get
;
set
;
}
/// <summary>
/// 压紧轴(压紧前点)P3
/// </summary>
[
CSVAttribute
(
"压紧轴压紧前点P3"
)]
public
int
CompressAxis_CPosition_P3
{
get
;
set
;
}
}
}
source/LoadCVSLibrary/storeConfig/config/AC_SA_Config.cs
查看文件 @
10be948
...
...
@@ -16,16 +16,7 @@ namespace OnlineStore.LoadCSVLibrary
:
base
(
id
,
cid
,
type
,
filepath
)
{
}
/// <summary>
/// 扫码枪IP
/// </summary>
[
ConfigProAttribute
(
"Scanner_Ip"
)]
public
string
Scanner_Ip
{
get
;
set
;
}
/// <summary>
/// 扫码枪端口
/// </summary>
[
ConfigProAttribute
(
"Scanner_Port"
)]
public
int
Scanner_Port
{
get
;
set
;
}
/// <summary>
/// 温湿度传感器地址
/// </summary>
...
...
@@ -422,34 +413,34 @@ namespace OnlineStore.LoadCSVLibrary
{
MustHaveDIList
=
new
List
<
string
>();
MustHaveDOList
=
new
List
<
string
>();
MustHaveDIList
.
Add
(
Store_
IO_Type
.
SuddenStop_BTN
);
MustHaveDIList
.
Add
(
Store_
IO_Type
.
Reset_BTN
);
MustHaveDIList
.
Add
(
Store_
IO_Type
.
AutoRun_Single
);
MustHaveDIList
.
Add
(
Store_
IO_Type
.
Airpressure_Check
);
MustHaveDIList
.
Add
(
Store_
IO_Type
.
TrayCheck_1
);
MustHaveDIList
.
Add
(
Store_
IO_Type
.
TrayCheck_2
);
MustHaveDIList
.
Add
(
Store_
IO_Type
.
TrayCheck_3
);
MustHaveDIList
.
Add
(
Store_
IO_Type
.
TrayCheck_4
);
MustHaveDIList
.
Add
(
Store_
IO_Type
.
Door_Up
);
MustHaveDIList
.
Add
(
Store_
IO_Type
.
Door_Down
);
MustHaveDIList
.
Add
(
Store_
IO_Type
.
LocationCylinder_Down
);
MustHaveDIList
.
Add
(
Store_
IO_Type
.
LocationCylinder_Up
);
MustHaveDIList
.
Add
(
Store_
IO_Type
.
Left_Door_LimitSingle
);
MustHaveDIList
.
Add
(
Store_
IO_Type
.
Right_Door_LimitSingle
);
MustHaveDOList
.
Add
(
Store_
IO_Type
.
AutoRun_HddLed
);
MustHaveDOList
.
Add
(
Store_
IO_Type
.
Alarm_HddLed
);
MustHaveDOList
.
Add
(
Store_
IO_Type
.
RunSign_HddLed
);
MustHaveDOList
.
Add
(
Store_
IO_Type
.
StartOrStopBlow
);
MustHaveDOList
.
Add
(
Store_
IO_Type
.
Run_Sign
);
MustHaveDOList
.
Add
(
Store_
IO_Type
.
Door_Up
);
MustHaveDOList
.
Add
(
Store_
IO_Type
.
Door_Down
);
MustHaveDOList
.
Add
(
Store_
IO_Type
.
LocationCylinder_Down
);
MustHaveDOList
.
Add
(
Store_
IO_Type
.
LocationCylinder_Up
);
MustHaveDOList
.
Add
(
Store_
IO_Type
.
Axis_Brake
);
MustHaveDOList
.
Add
(
Store_
IO_Type
.
CameraLight_Power
);
MustHaveDIList
.
Add
(
IO_Type
.
SuddenStop_BTN
);
MustHaveDIList
.
Add
(
IO_Type
.
Reset_BTN
);
MustHaveDIList
.
Add
(
IO_Type
.
AutoRun_Single
);
MustHaveDIList
.
Add
(
IO_Type
.
Airpressure_Check
);
MustHaveDIList
.
Add
(
IO_Type
.
TrayCheck_1
);
MustHaveDIList
.
Add
(
IO_Type
.
TrayCheck_2
);
MustHaveDIList
.
Add
(
IO_Type
.
TrayCheck_3
);
MustHaveDIList
.
Add
(
IO_Type
.
TrayCheck_4
);
MustHaveDIList
.
Add
(
IO_Type
.
Door_Up
);
MustHaveDIList
.
Add
(
IO_Type
.
Door_Down
);
MustHaveDIList
.
Add
(
IO_Type
.
LocationCylinder_Down
);
MustHaveDIList
.
Add
(
IO_Type
.
LocationCylinder_Up
);
MustHaveDIList
.
Add
(
IO_Type
.
Left_Door_LimitSingle
);
MustHaveDIList
.
Add
(
IO_Type
.
Right_Door_LimitSingle
);
MustHaveDOList
.
Add
(
IO_Type
.
AutoRun_HddLed
);
MustHaveDOList
.
Add
(
IO_Type
.
Alarm_HddLed
);
MustHaveDOList
.
Add
(
IO_Type
.
RunSign_HddLed
);
MustHaveDOList
.
Add
(
IO_Type
.
StartOrStopBlow
);
MustHaveDOList
.
Add
(
IO_Type
.
Run_Sign
);
MustHaveDOList
.
Add
(
IO_Type
.
Door_Up
);
MustHaveDOList
.
Add
(
IO_Type
.
Door_Down
);
MustHaveDOList
.
Add
(
IO_Type
.
LocationCylinder_Down
);
MustHaveDOList
.
Add
(
IO_Type
.
LocationCylinder_Up
);
MustHaveDOList
.
Add
(
IO_Type
.
Axis_Brake
);
MustHaveDOList
.
Add
(
IO_Type
.
CameraLight_Power
);
}
}
}
source/LoadCVSLibrary/storeConfig/config/StoreConfig.cs
查看文件 @
10be948
...
...
@@ -120,7 +120,7 @@ namespace OnlineStore.LoadCSVLibrary
}
else
if
(
con
.
ProType
==
ConfigItemType
.
DI
)
{
if
(
Store_
IO_Type
.
GetTypeList
().
Contains
(
con
.
ProName
))
if
(
IO_Type
.
GetTypeList
().
Contains
(
con
.
ProName
))
{
ConfigIO
io
=
(
ConfigIO
)
con
;
if
(!
DIODeviceNameList
.
Contains
(
io
.
DeviceName
)
&&
(
io
.
GetIOValue
()
>=
0
||
io
.
GetIOAddr
()
>=
0
))
...
...
@@ -136,7 +136,7 @@ namespace OnlineStore.LoadCSVLibrary
}
else
if
(
con
.
ProType
==
ConfigItemType
.
DO
)
{
if
(
Store_
IO_Type
.
GetTypeList
().
Contains
(
con
.
ProName
))
if
(
IO_Type
.
GetTypeList
().
Contains
(
con
.
ProName
))
{
ConfigIO
io
=
(
ConfigIO
)
con
;
if
(!
DIODeviceNameList
.
Contains
(
io
.
DeviceName
)
&&
io
.
GetIOValue
()
>=
0
)
...
...
source/LoadCVSLibrary/storeConfig/config/StoreType.cs
查看文件 @
10be948
...
...
@@ -8,33 +8,33 @@ namespace OnlineStore.LoadCSVLibrary
{
public
class
StoreType
{
/// <summary>
/// 双层在线料仓(电钢,康泰克板子,康奈德IO模块)料仓总配置
/// </summary>
public
static
string
RC_DB_LINE
=
"RC_DB_LINE"
;
/// <summary>
/// 双层在线料仓(电钢,康泰克板子,康奈德IO模块)单个料仓配置
/// </summary>
public
static
string
RC_DB_LA
=
"RC_DB_LA"
;
/// <summary>
/// 单台自动料仓 锁孔板PLC
/// </summary>
public
static
string
RC_PLC_SM
=
"RC_PLC_SM"
;
///
//
<summary>
///
//
双层在线料仓(电钢,康泰克板子,康奈德IO模块)料仓总配置
///
//
</summary>
//
public static string RC_DB_LINE = "RC_DB_LINE";
///
//
<summary>
///
//
双层在线料仓(电钢,康泰克板子,康奈德IO模块)单个料仓配置
///
//
</summary>
//
public static string RC_DB_LA = "RC_DB_LA";
///
//
<summary>
///
//
单台自动料仓 锁孔板PLC
///
//
</summary>
//
public static string RC_PLC_SM = "RC_PLC_SM";
/// <summary>
/// 康泰克流水线料仓_子料仓
/// </summary>
public
static
string
RC_KTK_LA
=
"RC_KTK_LA"
;
///
//
<summary>
///
//
康泰克流水线料仓_子料仓
///
//
</summary>
//
public static string RC_KTK_LA = "RC_KTK_LA";
/// <summary>
/// 康泰克流水线料仓_流水线
/// </summary>
public
static
string
RC_KTK_LINE
=
"RC_KTK_LINE"
;
///
//
<summary>
///
//
康泰克流水线料仓_流水线
///
//
</summary>
//
public static string RC_KTK_LINE = "RC_KTK_LINE";
/// <summary>
/// 康泰克单台料仓
/// </summary>
public
static
string
RC_KTK_SA
=
"RC_KTK_SA"
;
///
//
<summary>
///
//
康泰克单台料仓
///
//
</summary>
//
public static string RC_KTK_SA = "RC_KTK_SA";
/// <summary>
/// 松下伺服485通信单台料仓
/// </summary>
...
...
source/LoadCVSLibrary/storeConfig/config/Store_IO_Type.cs
查看文件 @
10be948
...
...
@@ -8,7 +8,7 @@ using System.Text;
namespace
OnlineStore.LoadCSVLibrary
{
public
class
Store_
IO_Type
public
class
IO_Type
{
private
static
List
<
string
>
TypeList
=
null
;
public
static
List
<
string
>
GetTypeList
()
...
...
@@ -16,7 +16,7 @@ namespace OnlineStore.LoadCSVLibrary
if
(
TypeList
==
null
)
{
TypeList
=
new
List
<
string
>();
var
p
=
typeof
(
Store_
IO_Type
).
GetFields
(
BindingFlags
.
Instance
|
BindingFlags
.
Public
|
BindingFlags
.
Static
);
var
p
=
typeof
(
IO_Type
).
GetFields
(
BindingFlags
.
Instance
|
BindingFlags
.
Public
|
BindingFlags
.
Static
);
foreach
(
var
item
in
p
)
{
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论