Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
刘韬
/
SO775-DUOStore
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit c1af307d
由
LN
编写于
2020-08-07 14:16:18 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
出入库
1 个父辈
b1431631
隐藏空白字符变更
内嵌
并排
正在显示
17 个修改的文件
包含
885 行增加
和
275 行删除
source/DUOStore/App.config
source/DUOStore/FrmBox.Designer.cs
source/DUOStore/FrmStore.Designer.cs
source/DUOStore/FrmStore.cs
source/DUOStore/Properties/AssemblyInfo.cs
source/DeviceLibrary/StoreConfig/StoreConfig.csv
source/DeviceLibrary/duoStore/BoxBean.cs
source/DeviceLibrary/duoStore/BoxBean_Partial.cs
source/DeviceLibrary/duoStore/BoxBean_Shelf.cs
source/DeviceLibrary/duoStore/DUOStoreBean.cs
source/DeviceLibrary/duoStore/DUOStoreBean_Partial.cs
source/DeviceLibrary/duoStore/EquipBase.cs
source/DeviceLibrary/duoStore/StoreManager.cs
source/DeviceLibrary/store/InOutParam.cs
source/DeviceLibrary/store/StoreStep.cs
source/DeviceLibrary/store/model/StoreMoveInfo.cs
source/LoadCVSLibrary/storeConfig/config/Store_Config.cs
source/DUOStore/App.config
查看文件 @
c1af307
...
...
@@ -58,7 +58,7 @@
<!--当前料架信息-料架号-->
<
add
key
=
"CurrShelfNum"
value
=
"-1"
/>
<!--当前料架信息-料架类型,
0
=空料架,
1
=入库料架,
2
=出库料架-->
<
add
key
=
"CurrShelfType"
value
=
"
0
"
/>
<
add
key
=
"CurrShelfType"
value
=
"
-1
"
/>
</
appSettings
>
<
log4net
>
<
appender
name
=
"RollingLogFileAppender"
type
=
"log4net.Appender.RollingFileAppender"
>
...
...
source/DUOStore/FrmBox.Designer.cs
查看文件 @
c1af307
...
...
@@ -163,6 +163,7 @@ namespace OnlineStore.DUOStore
this
.
tableLayoutPanel2
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
tableLayoutPanel2
.
AutoScroll
=
true
;
this
.
tableLayoutPanel2
.
ColumnCount
=
1
;
this
.
tableLayoutPanel2
.
ColumnStyles
.
Add
(
new
System
.
Windows
.
Forms
.
ColumnStyle
(
System
.
Windows
.
Forms
.
SizeType
.
Percent
,
100F
));
this
.
tableLayoutPanel2
.
Location
=
new
System
.
Drawing
.
Point
(
5
,
14
);
...
...
@@ -201,6 +202,7 @@ namespace OnlineStore.DUOStore
this
.
tableLayoutPanel1
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
tableLayoutPanel1
.
AutoScroll
=
true
;
this
.
tableLayoutPanel1
.
ColumnCount
=
1
;
this
.
tableLayoutPanel1
.
ColumnStyles
.
Add
(
new
System
.
Windows
.
Forms
.
ColumnStyle
(
System
.
Windows
.
Forms
.
SizeType
.
Percent
,
100F
));
this
.
tableLayoutPanel1
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
14
);
...
...
@@ -1254,7 +1256,7 @@ namespace OnlineStore.DUOStore
this
.
lblMoveEquipInfo
.
AutoSize
=
true
;
this
.
lblMoveEquipInfo
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
lblMoveEquipInfo
.
ForeColor
=
System
.
Drawing
.
Color
.
Blue
;
this
.
lblMoveEquipInfo
.
Location
=
new
System
.
Drawing
.
Point
(
270
,
73
);
this
.
lblMoveEquipInfo
.
Location
=
new
System
.
Drawing
.
Point
(
142
,
74
);
this
.
lblMoveEquipInfo
.
Name
=
"lblMoveEquipInfo"
;
this
.
lblMoveEquipInfo
.
Size
=
new
System
.
Drawing
.
Size
(
56
,
17
);
this
.
lblMoveEquipInfo
.
TabIndex
=
272
;
...
...
@@ -1310,7 +1312,7 @@ namespace OnlineStore.DUOStore
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
.
Green
;
this
.
lblThisSta
.
Location
=
new
System
.
Drawing
.
Point
(
1
38
,
72
);
this
.
lblThisSta
.
Location
=
new
System
.
Drawing
.
Point
(
1
0
,
73
);
this
.
lblThisSta
.
Name
=
"lblThisSta"
;
this
.
lblThisSta
.
Size
=
new
System
.
Drawing
.
Size
(
65
,
19
);
this
.
lblThisSta
.
TabIndex
=
216
;
...
...
@@ -1335,6 +1337,7 @@ namespace OnlineStore.DUOStore
this
.
Name
=
"FrmBox"
;
this
.
Opacity
=
0D
;
this
.
Text
=
"AC_SA_料仓"
;
this
.
WindowState
=
System
.
Windows
.
Forms
.
FormWindowState
.
Maximized
;
this
.
Load
+=
new
System
.
EventHandler
(
this
.
FrmTest_Load
);
this
.
Shown
+=
new
System
.
EventHandler
(
this
.
FrmStoreBox_Shown
);
this
.
groupBox4
.
ResumeLayout
(
false
);
...
...
source/DUOStore/FrmStore.Designer.cs
查看文件 @
c1af307
...
...
@@ -32,14 +32,18 @@
System
.
ComponentModel
.
ComponentResourceManager
resources
=
new
System
.
ComponentModel
.
ComponentResourceManager
(
typeof
(
FrmStore
));
this
.
tabControl1
=
new
System
.
Windows
.
Forms
.
TabControl
();
this
.
tabPage1
=
new
System
.
Windows
.
Forms
.
TabPage
();
this
.
listView1
=
new
System
.
Windows
.
Forms
.
ListView
();
this
.
chbSendShelfOut
=
new
System
.
Windows
.
Forms
.
CheckBox
();
this
.
lblServerMsg
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
chbUseBuzzer
=
new
System
.
Windows
.
Forms
.
CheckBox
();
this
.
panel1
=
new
System
.
Windows
.
Forms
.
Panel
();
this
.
chbInstoreEnd
=
new
System
.
Windows
.
Forms
.
CheckBox
();
this
.
chkDebug
=
new
System
.
Windows
.
Forms
.
CheckBox
();
this
.
lblMoveInfo
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
chbAutoRun
=
new
System
.
Windows
.
Forms
.
CheckBox
();
this
.
btnCopyLog
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnClearLog
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
lblShelf
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
chbUseBuzzer
=
new
System
.
Windows
.
Forms
.
CheckBox
();
this
.
chbOutstoreEnd
=
new
System
.
Windows
.
Forms
.
CheckBox
();
this
.
listView1
=
new
System
.
Windows
.
Forms
.
ListView
();
this
.
lblServerMsg
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
logBox
=
new
System
.
Windows
.
Forms
.
RichTextBox
();
this
.
lblWarnMsg
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
menuStrip1
=
new
System
.
Windows
.
Forms
.
MenuStrip
();
...
...
@@ -70,6 +74,7 @@
this
.
timer1
=
new
System
.
Windows
.
Forms
.
Timer
(
this
.
components
);
this
.
tabControl1
.
SuspendLayout
();
this
.
tabPage1
.
SuspendLayout
();
this
.
panel1
.
SuspendLayout
();
this
.
menuStrip1
.
SuspendLayout
();
this
.
contextMenuStrip1
.
SuspendLayout
();
this
.
SuspendLayout
();
...
...
@@ -82,90 +87,63 @@
this
.
tabControl1
.
Controls
.
Add
(
this
.
tabPage1
);
this
.
tabControl1
.
DrawMode
=
System
.
Windows
.
Forms
.
TabDrawMode
.
OwnerDrawFixed
;
this
.
tabControl1
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
tabControl1
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
50
);
this
.
tabControl1
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
61
);
this
.
tabControl1
.
Multiline
=
true
;
this
.
tabControl1
.
Name
=
"tabControl1"
;
this
.
tabControl1
.
SelectedIndex
=
0
;
this
.
tabControl1
.
Size
=
new
System
.
Drawing
.
Size
(
1303
,
6
75
);
this
.
tabControl1
.
Size
=
new
System
.
Drawing
.
Size
(
1303
,
6
63
);
this
.
tabControl1
.
TabIndex
=
0
;
this
.
tabControl1
.
DrawItem
+=
new
System
.
Windows
.
Forms
.
DrawItemEventHandler
(
this
.
tabControl1_DrawItem
);
this
.
tabControl1
.
SelectedIndexChanged
+=
new
System
.
EventHandler
(
this
.
tabControl1_SelectedIndexChanged
);
//
// tabPage1
//
this
.
tabPage1
.
Controls
.
Add
(
this
.
panel1
);
this
.
tabPage1
.
Controls
.
Add
(
this
.
listView1
);
this
.
tabPage1
.
Controls
.
Add
(
this
.
chbSendShelfOut
);
this
.
tabPage1
.
Controls
.
Add
(
this
.
lblServerMsg
);
this
.
tabPage1
.
Controls
.
Add
(
this
.
chbUseBuzzer
);
this
.
tabPage1
.
Controls
.
Add
(
this
.
chkDebug
);
this
.
tabPage1
.
Controls
.
Add
(
this
.
chbAutoRun
);
this
.
tabPage1
.
Controls
.
Add
(
this
.
btnCopyLog
);
this
.
tabPage1
.
Controls
.
Add
(
this
.
btnClearLog
);
this
.
tabPage1
.
Controls
.
Add
(
this
.
logBox
);
this
.
tabPage1
.
Location
=
new
System
.
Drawing
.
Point
(
4
,
29
);
this
.
tabPage1
.
Name
=
"tabPage1"
;
this
.
tabPage1
.
Size
=
new
System
.
Drawing
.
Size
(
1295
,
6
42
);
this
.
tabPage1
.
Size
=
new
System
.
Drawing
.
Size
(
1295
,
6
30
);
this
.
tabPage1
.
TabIndex
=
0
;
this
.
tabPage1
.
Text
=
" 日志信息 "
;
this
.
tabPage1
.
UseVisualStyleBackColor
=
true
;
//
//
listView
1
//
panel
1
//
this
.
listView1
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)(((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)
this
.
panel1
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)(((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
listView1
.
BackColor
=
System
.
Drawing
.
Color
.
White
;
this
.
listView1
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
listView1
.
FullRowSelect
=
true
;
this
.
listView1
.
GridLines
=
true
;
this
.
listView1
.
HideSelection
=
false
;
this
.
listView1
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
3
);
this
.
listView1
.
MultiSelect
=
false
;
this
.
listView1
.
Name
=
"listView1"
;
this
.
listView1
.
Size
=
new
System
.
Drawing
.
Size
(
1110
,
117
);
this
.
listView1
.
TabIndex
=
203
;
this
.
listView1
.
UseCompatibleStateImageBehavior
=
false
;
this
.
listView1
.
View
=
System
.
Windows
.
Forms
.
View
.
Details
;
//
// chbSendShelfOut
//
this
.
chbSendShelfOut
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
chbSendShelfOut
.
AutoSize
=
true
;
this
.
chbSendShelfOut
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
chbSendShelfOut
.
Location
=
new
System
.
Drawing
.
Point
(
1132
,
142
);
this
.
chbSendShelfOut
.
Name
=
"chbSendShelfOut"
;
this
.
chbSendShelfOut
.
Size
=
new
System
.
Drawing
.
Size
(
112
,
24
);
this
.
chbSendShelfOut
.
TabIndex
=
202
;
this
.
chbSendShelfOut
.
Text
=
"送出出料料架"
;
this
.
chbSendShelfOut
.
UseVisualStyleBackColor
=
true
;
//
// lblServerMsg
//
this
.
lblServerMsg
.
AutoSize
=
true
;
this
.
lblServerMsg
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
lblServerMsg
.
Location
=
new
System
.
Drawing
.
Point
(
261
,
20
);
this
.
lblServerMsg
.
Name
=
"lblServerMsg"
;
this
.
lblServerMsg
.
Size
=
new
System
.
Drawing
.
Size
(
0
,
17
);
this
.
lblServerMsg
.
TabIndex
=
201
;
//
// chbUseBuzzer
//
this
.
chbUseBuzzer
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
chbUseBuzzer
.
AutoSize
=
true
;
this
.
chbUseBuzzer
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
chbUseBuzzer
.
Location
=
new
System
.
Drawing
.
Point
(
1132
,
56
);
this
.
chbUseBuzzer
.
Name
=
"chbUseBuzzer"
;
this
.
chbUseBuzzer
.
Size
=
new
System
.
Drawing
.
Size
(
98
,
24
);
this
.
chbUseBuzzer
.
TabIndex
=
195
;
this
.
chbUseBuzzer
.
Text
=
"启用蜂鸣器"
;
this
.
chbUseBuzzer
.
UseVisualStyleBackColor
=
true
;
this
.
chbUseBuzzer
.
CheckedChanged
+=
new
System
.
EventHandler
(
this
.
chbUseBuzzer_CheckedChanged
);
this
.
panel1
.
Controls
.
Add
(
this
.
chbInstoreEnd
);
this
.
panel1
.
Controls
.
Add
(
this
.
chkDebug
);
this
.
panel1
.
Controls
.
Add
(
this
.
lblMoveInfo
);
this
.
panel1
.
Controls
.
Add
(
this
.
chbAutoRun
);
this
.
panel1
.
Controls
.
Add
(
this
.
btnCopyLog
);
this
.
panel1
.
Controls
.
Add
(
this
.
btnClearLog
);
this
.
panel1
.
Controls
.
Add
(
this
.
lblShelf
);
this
.
panel1
.
Controls
.
Add
(
this
.
chbUseBuzzer
);
this
.
panel1
.
Controls
.
Add
(
this
.
chbOutstoreEnd
);
this
.
panel1
.
Location
=
new
System
.
Drawing
.
Point
(
1107
,
3
);
this
.
panel1
.
Name
=
"panel1"
;
this
.
panel1
.
Size
=
new
System
.
Drawing
.
Size
(
182
,
623
);
this
.
panel1
.
TabIndex
=
271
;
//
// chbInstoreEnd
//
this
.
chbInstoreEnd
.
AutoSize
=
true
;
this
.
chbInstoreEnd
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
chbInstoreEnd
.
Location
=
new
System
.
Drawing
.
Point
(
12
,
241
);
this
.
chbInstoreEnd
.
Name
=
"chbInstoreEnd"
;
this
.
chbInstoreEnd
.
Size
=
new
System
.
Drawing
.
Size
(
140
,
24
);
this
.
chbInstoreEnd
.
TabIndex
=
271
;
this
.
chbInstoreEnd
.
Text
=
"入库完成送出料架"
;
this
.
chbInstoreEnd
.
UseVisualStyleBackColor
=
true
;
this
.
chbInstoreEnd
.
CheckedChanged
+=
new
System
.
EventHandler
(
this
.
chbInstoreEnd_CheckedChanged
);
//
// chkDebug
//
this
.
chkDebug
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
chkDebug
.
AutoSize
=
true
;
this
.
chkDebug
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
chkDebug
.
Location
=
new
System
.
Drawing
.
Point
(
1
132
,
99
);
this
.
chkDebug
.
Location
=
new
System
.
Drawing
.
Point
(
1
2
,
205
);
this
.
chkDebug
.
Name
=
"chkDebug"
;
this
.
chkDebug
.
Size
=
new
System
.
Drawing
.
Size
(
132
,
24
);
this
.
chkDebug
.
TabIndex
=
194
;
...
...
@@ -173,12 +151,21 @@
this
.
chkDebug
.
UseVisualStyleBackColor
=
true
;
this
.
chkDebug
.
CheckedChanged
+=
new
System
.
EventHandler
(
this
.
chkDebug_CheckedChanged
);
//
// lblMoveInfo
//
this
.
lblMoveInfo
.
AutoSize
=
true
;
this
.
lblMoveInfo
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
lblMoveInfo
.
Location
=
new
System
.
Drawing
.
Point
(
12
,
41
);
this
.
lblMoveInfo
.
Name
=
"lblMoveInfo"
;
this
.
lblMoveInfo
.
Size
=
new
System
.
Drawing
.
Size
(
56
,
17
);
this
.
lblMoveInfo
.
TabIndex
=
270
;
this
.
lblMoveInfo
.
Text
=
"运转状态"
;
//
// chbAutoRun
//
this
.
chbAutoRun
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
chbAutoRun
.
AutoSize
=
true
;
this
.
chbAutoRun
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
chbAutoRun
.
Location
=
new
System
.
Drawing
.
Point
(
1
132
,
1
3
);
this
.
chbAutoRun
.
Location
=
new
System
.
Drawing
.
Point
(
1
2
,
13
3
);
this
.
chbAutoRun
.
Name
=
"chbAutoRun"
;
this
.
chbAutoRun
.
Size
=
new
System
.
Drawing
.
Size
(
140
,
24
);
this
.
chbAutoRun
.
TabIndex
=
94
;
...
...
@@ -188,10 +175,10 @@
//
// btnCopyLog
//
this
.
btnCopyLog
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Righ
t
)));
this
.
btnCopyLog
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Lef
t
)));
this
.
btnCopyLog
.
BackColor
=
System
.
Drawing
.
Color
.
White
;
this
.
btnCopyLog
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnCopyLog
.
Location
=
new
System
.
Drawing
.
Point
(
1
145
,
546
);
this
.
btnCopyLog
.
Location
=
new
System
.
Drawing
.
Point
(
1
2
,
531
);
this
.
btnCopyLog
.
Name
=
"btnCopyLog"
;
this
.
btnCopyLog
.
Size
=
new
System
.
Drawing
.
Size
(
105
,
35
);
this
.
btnCopyLog
.
TabIndex
=
191
;
...
...
@@ -201,10 +188,10 @@
//
// btnClearLog
//
this
.
btnClearLog
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Righ
t
)));
this
.
btnClearLog
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Lef
t
)));
this
.
btnClearLog
.
BackColor
=
System
.
Drawing
.
Color
.
White
;
this
.
btnClearLog
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnClearLog
.
Location
=
new
System
.
Drawing
.
Point
(
1
145
,
599
);
this
.
btnClearLog
.
Location
=
new
System
.
Drawing
.
Point
(
1
2
,
572
);
this
.
btnClearLog
.
Name
=
"btnClearLog"
;
this
.
btnClearLog
.
Size
=
new
System
.
Drawing
.
Size
(
105
,
35
);
this
.
btnClearLog
.
TabIndex
=
190
;
...
...
@@ -212,6 +199,66 @@
this
.
btnClearLog
.
UseVisualStyleBackColor
=
false
;
this
.
btnClearLog
.
Click
+=
new
System
.
EventHandler
(
this
.
btnClearLog_Click
);
//
// lblShelf
//
this
.
lblShelf
.
AutoSize
=
true
;
this
.
lblShelf
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
lblShelf
.
Location
=
new
System
.
Drawing
.
Point
(
12
,
10
);
this
.
lblShelf
.
Name
=
"lblShelf"
;
this
.
lblShelf
.
Size
=
new
System
.
Drawing
.
Size
(
68
,
17
);
this
.
lblShelf
.
TabIndex
=
204
;
this
.
lblShelf
.
Text
=
"当前料架:"
;
//
// chbUseBuzzer
//
this
.
chbUseBuzzer
.
AutoSize
=
true
;
this
.
chbUseBuzzer
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
chbUseBuzzer
.
Location
=
new
System
.
Drawing
.
Point
(
12
,
169
);
this
.
chbUseBuzzer
.
Name
=
"chbUseBuzzer"
;
this
.
chbUseBuzzer
.
Size
=
new
System
.
Drawing
.
Size
(
98
,
24
);
this
.
chbUseBuzzer
.
TabIndex
=
195
;
this
.
chbUseBuzzer
.
Text
=
"启用蜂鸣器"
;
this
.
chbUseBuzzer
.
UseVisualStyleBackColor
=
true
;
this
.
chbUseBuzzer
.
CheckedChanged
+=
new
System
.
EventHandler
(
this
.
chbUseBuzzer_CheckedChanged
);
//
// chbOutstoreEnd
//
this
.
chbOutstoreEnd
.
AutoSize
=
true
;
this
.
chbOutstoreEnd
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
chbOutstoreEnd
.
Location
=
new
System
.
Drawing
.
Point
(
12
,
277
);
this
.
chbOutstoreEnd
.
Name
=
"chbOutstoreEnd"
;
this
.
chbOutstoreEnd
.
Size
=
new
System
.
Drawing
.
Size
(
140
,
24
);
this
.
chbOutstoreEnd
.
TabIndex
=
202
;
this
.
chbOutstoreEnd
.
Text
=
"出库完成送出料架"
;
this
.
chbOutstoreEnd
.
UseVisualStyleBackColor
=
true
;
this
.
chbOutstoreEnd
.
CheckedChanged
+=
new
System
.
EventHandler
(
this
.
chbOutstoreEnd_CheckedChanged
);
//
// listView1
//
this
.
listView1
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)(((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
listView1
.
BackColor
=
System
.
Drawing
.
Color
.
White
;
this
.
listView1
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
listView1
.
FullRowSelect
=
true
;
this
.
listView1
.
GridLines
=
true
;
this
.
listView1
.
HideSelection
=
false
;
this
.
listView1
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
3
);
this
.
listView1
.
MultiSelect
=
false
;
this
.
listView1
.
Name
=
"listView1"
;
this
.
listView1
.
Size
=
new
System
.
Drawing
.
Size
(
1098
,
117
);
this
.
listView1
.
TabIndex
=
203
;
this
.
listView1
.
UseCompatibleStateImageBehavior
=
false
;
this
.
listView1
.
View
=
System
.
Windows
.
Forms
.
View
.
Details
;
//
// lblServerMsg
//
this
.
lblServerMsg
.
AutoSize
=
true
;
this
.
lblServerMsg
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
lblServerMsg
.
Location
=
new
System
.
Drawing
.
Point
(
261
,
20
);
this
.
lblServerMsg
.
Name
=
"lblServerMsg"
;
this
.
lblServerMsg
.
Size
=
new
System
.
Drawing
.
Size
(
0
,
17
);
this
.
lblServerMsg
.
TabIndex
=
201
;
//
// logBox
//
this
.
logBox
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
...
...
@@ -220,7 +267,7 @@
this
.
logBox
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
logBox
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
126
);
this
.
logBox
.
Name
=
"logBox"
;
this
.
logBox
.
Size
=
new
System
.
Drawing
.
Size
(
1
110
,
512
);
this
.
logBox
.
Size
=
new
System
.
Drawing
.
Size
(
1
098
,
500
);
this
.
logBox
.
TabIndex
=
106
;
this
.
logBox
.
Text
=
""
;
this
.
logBox
.
VisibleChanged
+=
new
System
.
EventHandler
(
this
.
logBox_VisibleChanged
);
...
...
@@ -234,7 +281,7 @@
this
.
lblWarnMsg
.
ForeColor
=
System
.
Drawing
.
Color
.
Red
;
this
.
lblWarnMsg
.
Location
=
new
System
.
Drawing
.
Point
(
511
,
4
);
this
.
lblWarnMsg
.
Name
=
"lblWarnMsg"
;
this
.
lblWarnMsg
.
Size
=
new
System
.
Drawing
.
Size
(
79
0
,
72
);
this
.
lblWarnMsg
.
Size
=
new
System
.
Drawing
.
Size
(
79
3
,
83
);
this
.
lblWarnMsg
.
TabIndex
=
96
;
this
.
lblWarnMsg
.
TextAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleCenter
;
//
...
...
@@ -450,6 +497,8 @@
this
.
tabControl1
.
ResumeLayout
(
false
);
this
.
tabPage1
.
ResumeLayout
(
false
);
this
.
tabPage1
.
PerformLayout
();
this
.
panel1
.
ResumeLayout
(
false
);
this
.
panel1
.
PerformLayout
();
this
.
menuStrip1
.
ResumeLayout
(
false
);
this
.
menuStrip1
.
PerformLayout
();
this
.
contextMenuStrip1
.
ResumeLayout
(
false
);
...
...
@@ -496,8 +545,12 @@
private
System
.
Windows
.
Forms
.
Label
lblServerMsg
;
private
System
.
Windows
.
Forms
.
ToolStripMenuItem
扫码测试
ToolStripMenuItem
;
private
System
.
Windows
.
Forms
.
ToolStripSeparator
toolStripSeparator9
;
private
System
.
Windows
.
Forms
.
CheckBox
chb
SendShelfOut
;
private
System
.
Windows
.
Forms
.
CheckBox
chb
OutstoreEnd
;
private
System
.
Windows
.
Forms
.
ListView
listView1
;
private
System
.
Windows
.
Forms
.
Label
lblShelf
;
private
System
.
Windows
.
Forms
.
Label
lblMoveInfo
;
private
System
.
Windows
.
Forms
.
Panel
panel1
;
private
System
.
Windows
.
Forms
.
CheckBox
chbInstoreEnd
;
}
}
source/DUOStore/FrmStore.cs
查看文件 @
c1af307
...
...
@@ -57,9 +57,10 @@ namespace OnlineStore.DUOStore
chbAutoRun
.
Checked
=
store
.
UseBuzzer
;
this
.
Text
=
ConfigAppSettings
.
GetValue
(
Setting_Init
.
App_Title
);
chbAutoRun
.
Checked
=
(
ConfigAppSettings
.
GetIntValue
(
Setting_Init
.
App_AutoRun
).
Equals
(
1
));
// LogUtil.logBox = this.logBox;
// HideForm();
chbAutoRun
.
Checked
=
(
ConfigAppSettings
.
GetIntValue
(
Setting_Init
.
App_AutoRun
).
Equals
(
1
));
LoadListView
();
chbInstoreEnd
.
Checked
=
store
.
InstoreEndSendShelf
;
chbOutstoreEnd
.
Checked
=
store
.
OutstoreEndSendShelf
;
LoadOk
=
true
;
LogUtil
.
logBox
=
this
.
logBox
;
this
.
timer1
.
Start
();
...
...
@@ -91,6 +92,8 @@ namespace OnlineStore.DUOStore
tabPageList
.
Add
(
lineTabPage
);
tabControl1
.
Controls
.
Add
(
lineTabPage
);
}
#
region
料仓列表状态显示
private
void
LoadListView
()
{
this
.
listView1
.
Columns
.
Clear
();
...
...
@@ -101,7 +104,7 @@ namespace OnlineStore.DUOStore
AddHealder
(
"料盘信息"
,
listView1
.
Size
.
Width
-
110
-
130
-
50
-
90
-
10
);
//AddHealder("BOX状态", listView1.Size.Width - 100 - 80 - 80 - 100 - 100 - 100 -40- 8);
AddRow
(
store
,
true
);
AddRow
(
store
,
false
);
AddRow
(
store
.
BoxMap
[
1
],
store
.
BoxMap
[
1
].
IsDebug
);
AddRow
(
store
.
BoxMap
[
2
],
store
.
BoxMap
[
2
].
IsDebug
);
}
...
...
@@ -133,11 +136,11 @@ namespace OnlineStore.DUOStore
List
<
EquipBase
>
eqList
=
new
List
<
EquipBase
>(
store
.
BoxMap
.
Values
);
eqList
.
Insert
(
0
,
store
);
foreach
(
EquipBase
equip
in
store
.
BoxMap
.
Values
)
{
if
(
i
.
Equals
(
0
))
{
{
}
else
{
...
...
@@ -202,7 +205,9 @@ namespace OnlineStore.DUOStore
this
.
listView1
.
Items
[
rowIndex
].
SubItems
[
subIndex
].
Text
=
value
;
}
}
}
}
#
endregion
/// <summary>
/// 隐藏窗口
/// </summary>
...
...
@@ -451,10 +456,25 @@ namespace OnlineStore.DUOStore
if
(!
this
.
Visible
)
{
return
;
}
}
lblMoveInfo
.
Text
=
store
.
GetMoveStr
();
string
type
=
""
;
if
(
store
.
CurrShelfType
.
Equals
(
0
))
{
type
=
"空料架"
;
}
else
if
(
store
.
CurrShelfType
.
Equals
(
1
))
{
type
=
"入库料架"
;
}
else
if
(
store
.
CurrShelfType
.
Equals
(
2
))
{
type
=
"出库料架"
;
}
lblShelf
.
Text
=
"当前"
+
type
+
":"
+
store
.
CurrShelfNum
;
string
msg
=
""
;
foreach
(
BoxBean
box
in
StoreManager
.
S
tore
.
BoxMap
.
Values
)
foreach
(
BoxBean
box
in
s
tore
.
BoxMap
.
Values
)
{
string
s
=
box
.
WarnMsg
;
if
(!
s
.
Equals
(
""
))
...
...
@@ -462,7 +482,7 @@ namespace OnlineStore.DUOStore
msg
+=
box
.
Name
+
":"
+
s
+
"\r"
;
}
}
UpdateListBox
();
lblWarnMsg
.
Text
=
msg
;
LogM
();
}
...
...
@@ -656,5 +676,36 @@ namespace OnlineStore.DUOStore
MessageBox
.
Show
(
"未扫到二维码"
);
}
}
private
void
chbInstoreEnd_CheckedChanged
(
object
sender
,
EventArgs
e
)
{
if
(!
LoadOk
)
{
return
;
}
if
(
chbInstoreEnd
.
Checked
.
Equals
(
store
.
InstoreEndSendShelf
))
{
return
;
}
store
.
InstoreEndSendShelf
=
chbInstoreEnd
.
Checked
;
LogUtil
.
info
(
store
.
Name
+
" 切换 入库完成送出料架="
+
store
.
InstoreEndSendShelf
);
}
private
void
chbOutstoreEnd_CheckedChanged
(
object
sender
,
EventArgs
e
)
{
if
(!
LoadOk
)
{
return
;
}
if
(
chbOutstoreEnd
.
Checked
.
Equals
(
store
.
OutstoreEndSendShelf
))
{
return
;
}
store
.
OutstoreEndSendShelf
=
chbOutstoreEnd
.
Checked
;
LogUtil
.
info
(
store
.
Name
+
" 切换 入库完成送出料架="
+
store
.
OutstoreEndSendShelf
);
}
}
}
source/DUOStore/Properties/AssemblyInfo.cs
查看文件 @
c1af307
...
...
@@ -5,11 +5,11 @@ using System.Runtime.InteropServices;
// 有关程序集的常规信息通过以下
// 特性集控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("
ACPacking
Store")]
[assembly: AssemblyTitle("
DUO
Store")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("
ACPacking
Store")]
[assembly: AssemblyProduct("
DUO
Store")]
[assembly: AssemblyCopyright("Copyright © 2017")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
...
...
source/DeviceLibrary/StoreConfig/StoreConfig.csv
查看文件 @
c1af307
...
...
@@ -113,17 +113,17 @@ PRO,0,T2_旋转轴P3速度,MiddleAxis_P3Speed,500,,,,,,,,,,,,
PRO,0,T2_旋转轴P4速度,MiddleAxis_P4Speed,500,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
PRO,0,T3_升降轴料串取放料低点 P1,UpdownAxis_P1,5000,,,,,,,,,,,,
PRO,0,T3_升降轴料串取放料高点 P2,UpdownAxis_P2,5001,,,,,,,,,,,,
PRO,0,T3_升降轴料串取放料高点
/待机点
P2,UpdownAxis_P2,5001,,,,,,,,,,,,
PRO,0,T3_升降轴左侧料仓取放料低点 P3,UpdownAxis_P3,5002,,,,,,,,,,,,
PRO,0,T3_升降轴左侧料仓取放料高点 P4,UpdownAxis_P4,5003,,,,,,,,,,,,
PRO,0,T3_升降轴右侧料仓取放料低点 P5,UpdownAxis_P5,5004,,,,,,,,,,,,
PRO,0,T3_升降轴右侧料仓取放料高点 P6,UpdownAxis_P6,5005,,,,,,,,,,,,
PRO,0,T2_升降轴P1速度,UpdownAxis_P1Speed,500,,,,,,,,,,,,
PRO,0,T2_升降轴P2速度,UpdownAxis_P2Speed,501,,,,,,,,,,,,
PRO,0,T2_升降轴P3速度,UpdownAxis_P3Speed,502,,,,,,,,,,,,
PRO,0,T2_升降轴P4速度,UpdownAxis_P4Speed,503,,,,,,,,,,,,
PRO,0,T2_升降轴P5速度,UpdownAxis_P5Speed,504,,,,,,,,,,,,
PRO,0,T2_升降轴P6速度,UpdownAxis_P6Speed,505,,,,,,,,,,,,
PRO,0,T2_升降轴P1速度
/慢速度
,UpdownAxis_P1Speed,500,,,,,,,,,,,,
PRO,0,T2_升降轴P2速度
/快速度
,UpdownAxis_P2Speed,501,,,,,,,,,,,,
PRO,0,T2_升降轴P3速度
/慢速度
,UpdownAxis_P3Speed,502,,,,,,,,,,,,
PRO,0,T2_升降轴P4速度
/快速度
,UpdownAxis_P4Speed,503,,,,,,,,,,,,
PRO,0,T2_升降轴P5速度
/慢速度
,UpdownAxis_P5Speed,504,,,,,,,,,,,,
PRO,0,T2_升降轴P6速度
/快速度
,UpdownAxis_P6Speed,505,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
PRO,,预警温度,WarnTemperate,80,,,,,,,,,,,,
...
...
source/DeviceLibrary/duoStore/BoxBean.cs
查看文件 @
c1af307
...
...
@@ -320,17 +320,17 @@ namespace OnlineStore.DeviceLibrary
}
}
private
void
AutoResetProcess
()
{
try
{
bool
noInStore
=
true
;
bool
noInStore
=
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
None
)
&&
alarmType
.
Equals
(
AlarmType
.
None
)
;
if
(
AutoInout
.
CurrInOutACount
>=
StoreManager
.
Config
.
Box_ResetACount
&&
noInStore
)
{
if
(
runStatus
<
StoreRunStatus
.
Runing
||
MoveInfo
.
MoveType
==
MoveType
.
InStore
||
MoveInfo
.
MoveType
==
MoveType
.
OutStore
)
{
// LogInfo("已经累计出入库" + AutoInout.CurrInOutACount + "次,当时当前正在忙碌中暂不复位");
// LogInfo("已经累计出入库" + AutoInout.CurrInOutACount + "次,当时当前正在忙碌中暂不复位");
}
else
{
...
...
@@ -339,14 +339,26 @@ namespace OnlineStore.DeviceLibrary
}
return
;
}
else
if
(
waitOutStoreList
.
Count
>
0
)
else
if
(
waitInStoreParam
!=
null
&&
noInStore
&&
IsDebug
.
Equals
(
false
))
{
if
(!
StartInStoreMove
(
waitInStoreParam
))
{
LogInfo
(
"执行排队的入库【"
+
waitInStoreParam
.
ToStr
()
+
"】失败"
);
}
else
{
LogInfo
(
"执行排队的入库【"
+
waitInStoreParam
.
ToStr
()
+
"】成功,清理缓存"
);
waitInStoreParam
=
null
;
}
}
else
if
(
waitOutStoreList
.
Count
>
0
&&
noInStore
&&
IsDebug
.
Equals
(
false
))
{
InOutParam
param
=
null
;
bool
result
=
waitOutStoreList
.
TryDequeue
(
out
param
);
if
(
result
&&
param
!=
null
)
{
{
LogInfo
(
"执行排队的出库【"
+
param
.
ToStr
()
+
"】"
);
StartExecuctOut
(
param
);
StartExecuctOut
(
param
);
}
}
}
...
...
@@ -367,10 +379,6 @@ namespace OnlineStore.DeviceLibrary
UpdownAxis
.
SuddenStop
(
true
);
InoutAxis
.
SuddenStop
(
true
);
ComAxis
.
SuddenStop
(
true
);
//ACServerManager.SuddenStop(Config.Middle_Axis.DeviceName, Config.Middle_Axis.GetAxisValue());
//ACServerManager.SuddenStop(Config.UpDown_Axis.DeviceName, Config.UpDown_Axis.GetAxisValue());
//ACServerManager.SuddenStop(Config.InOut_Axis.DeviceName, Config.InOut_Axis.GetAxisValue());
//ACServerManager.SuddenStop(Config.Comp_Axis.DeviceName, Config.Comp_Axis.GetAxisValue());
CloseAllAxis
();
LogInfo
(
"StopMove"
);
isInPro
=
false
;
...
...
@@ -386,14 +394,6 @@ namespace OnlineStore.DeviceLibrary
CloseMultiAxis
(
IO_Type
.
Axis_Run
,
IO_Type
.
UpdownAxis_Break
,
new
AxisBean
[]
{
MiddleAxis
,
UpdownAxis
,
InoutAxis
,
ComAxis
});
}
public
string
GetMoveStr
()
{
string
msg
=
""
;
msg
+=
"状态: "
+
runStatus
+
" "
+
storeStatus
+
"\n"
;
// msg += "lineS: " + storeStatus + "\n";
msg
+=
"报警: "
+
alarmType
+
"\n"
;
msg
+=
MoveInfo
.
MoveType
+
" "
+
MoveInfo
.
SLog
+
"\n"
;
return
msg
;
}
}
}
\ No newline at end of file
source/DeviceLibrary/duoStore/BoxBean_Partial.cs
查看文件 @
c1af307
...
...
@@ -14,12 +14,11 @@ namespace OnlineStore.DeviceLibrary
{
partial
class
BoxBean
{
public
ConcurrentQueue
<
InOutParam
>
waitOutStoreList
=
new
ConcurrentQueue
<
InOutParam
>();
public
InOutParam
waitInStoreList
=
null
;
public
InOutParam
waitInStoreParam
=
null
;
#
region
出入库结果验证
private
bool
AcInPosition
(
ConfigMoveAxis
axis
,
int
p
)
private
bool
AcInPosition
(
ConfigMoveAxis
axis
,
int
p
)
{
return
ACServerManager
.
isInPosition
(
axis
.
DeviceName
,
axis
.
GetAxisValue
(),
p
,
axis
.
CanErrorCountMax
);
...
...
@@ -35,7 +34,7 @@ namespace OnlineStore.DeviceLibrary
else
{
InoutAxis
.
AbsMove
(
MoveInfo
,
InOut_P1
,
Config
.
InOutAxis_P1_Speed
);
}
}
}
...
...
@@ -52,13 +51,13 @@ namespace OnlineStore.DeviceLibrary
LogInfo
(
" IsReviceInPosId 正在入库中:"
+
MoveInfo
.
MoveParam
.
ToStr
());
isReviceInfo
=
true
;
}
if
(!
isReviceInfo
&&
(
waitInStore
List
!=
null
))
if
(!
isReviceInfo
&&
(
waitInStore
Param
!=
null
))
{
if
(
waitInStore
List
.
PosID
.
Equals
(
posId
)
&&
(!
waitInStoreList
.
WareCode
.
Equals
(
""
)))
if
(
waitInStore
Param
.
PosID
.
Equals
(
posId
)
&&
(!
waitInStoreParam
.
WareCode
.
Equals
(
""
)))
{
LogInfo
(
" IsReviceInPosId 已存在入库任务:"
+
waitInStore
List
.
ToStr
());
isReviceInfo
=
true
;
}
LogInfo
(
" IsReviceInPosId 已存在入库任务:"
+
waitInStore
Param
.
ToStr
());
isReviceInfo
=
true
;
}
}
}
catch
(
Exception
ex
)
...
...
@@ -72,8 +71,8 @@ namespace OnlineStore.DeviceLibrary
#
region
入库
private
DateTime
startInStoreTime
=
DateTime
.
Now
;
public
override
bool
StartInStoreMove
(
InOutParam
param
)
public
override
bool
StartInStoreMove
(
InOutParam
param
)
{
startInStoreTime
=
DateTime
.
Now
;
string
posId
=
param
!=
null
?
param
.
PosID
:
""
;
...
...
@@ -82,13 +81,13 @@ namespace OnlineStore.DeviceLibrary
||
(!
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
None
)))
{
LogUtil
.
error
(
Name
+
" 启动出库出错,忙碌或报警中 ,storeStatus="
+
runStatus
+
",MoveType="
+
MoveInfo
.
MoveType
+
",isInSuddenDown="
+
isInSuddenDown
+
",isNoAirCheck"
+
isNoAirCheck
);
return
false
;
return
false
;
}
if
(!
StoreManager
.
LoadInoutParam
(
param
,
MoveType
.
InStore
,
true
,
this
))
{
LogUtil
.
error
(
Name
+
" 启动入库【"
+
param
.
ToStr
()
+
"】出错,找不到库位信息"
);
return
false
;
return
false
;
}
LogInfo
(
" 启动入库【"
+
param
.
ToStr
()
+
"】 "
);
runStatus
=
StoreRunStatus
.
Busy
;
...
...
@@ -105,7 +104,7 @@ namespace OnlineStore.DeviceLibrary
InoutAxis
.
AbsMove
(
MoveInfo
,
Config
.
InOutAxis_P1
,
Config
.
InOutAxis_P1_Speed
);
return
true
;
}
protected
override
void
InStoreProcess
()
{
string
outType
=
"入库:"
;
...
...
@@ -125,7 +124,7 @@ namespace OnlineStore.DeviceLibrary
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SI_01_InoutToP1
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_02_AxisBack
);
InOutStoreLog
(
outType
+
" 升降轴到P1,旋转轴到P1,压紧轴到P3
"
);
InOutStoreLog
(
outType
+
" 升降轴到P1["
+
moveP
.
UpDown_P1
+
"],旋转轴到P1["
+
moveP
.
Middle_P1
+
"] ,压紧轴到P3["
+
moveP
.
ComPress_P3
+
"]
"
);
ComAxis
.
AbsMove
(
MoveInfo
,
moveP
.
ComPress_P3
,
Config
.
CompAxis_P3_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
moveP
.
UpDown_P1
,
Config
.
UpDownAxis_P1_Speed
);
MiddleAxis
.
AbsMove
(
MoveInfo
,
moveP
.
Middle_P1
,
Config
.
MiddleAxis_P1_Speed
);
...
...
@@ -133,20 +132,20 @@ namespace OnlineStore.DeviceLibrary
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SI_02_AxisBack
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_03_InoutToP2
);
InOutStoreLog
(
outType
+
"进出轴到P2( 进料口取料点)
"
);
InOutStoreLog
(
outType
+
"进出轴到P2["
+
moveP
.
InOut_P2
+
"]
"
);
InoutAxis
.
AbsMove
(
MoveInfo
,
moveP
.
InOut_P2
,
Config
.
InOutAxis_P2_Speed
);
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SI_03_InoutToP2
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_04_GetReel
);
InOutStoreLog
(
outType
+
"升降轴到P7( 进料口取料缓冲点)压紧轴到P2(压紧点)
"
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_04_GetReel
);
InOutStoreLog
(
outType
+
"升降轴到P7 ["
+
moveP
.
UpDown_P7
+
"],压紧轴到P2 ["
+
moveP
.
ComPress_P2
+
"]
"
);
ComAxis
.
AbsMove
(
MoveInfo
,
moveP
.
ComPress_P2
,
Config
.
CompAxis_P2_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
moveP
.
UpDown_P7
,
Config
.
UpDownAxis_P7_Speed
);
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SI_04_GetReel
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_05_InoutToP1
);
InOutStoreLog
(
outType
+
"进出轴返回P1 "
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_05_InoutToP1
);
InOutStoreLog
(
outType
+
"进出轴返回P1 ["
+
moveP
.
InOut_P1
+
"] "
);
InOutBackToP1
(
moveP
.
InOut_P1
);
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SI_05_InoutToP1
))
...
...
@@ -154,14 +153,15 @@ namespace OnlineStore.DeviceLibrary
if
(
MoveInfo
.
MoveParam
.
TargetPosition
.
Equals
(
0
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_06_ToPos
);
InOutStoreLog
(
outType
+
"移动到库位点,旋转轴到P2( 库位点),升降轴到P3(库位入库前点) "
);
InOutStoreLog
(
outType
+
"移动到库位点,旋转轴到P2( 库位点),升降轴到P3(库位入库前点) "
);
MiddleAxis
.
AbsMove
(
MoveInfo
,
moveP
.
Middle_P2
,
Config
.
MiddleAxis_P2_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
moveP
.
UpDown_P3
,
Config
.
UpDownAxis_P3_Speed
);
}
else
}
else
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_21_ToOutDoor
);
InOutStoreLog
(
outType
+
"移动到出料口,旋转轴到P11,升降轴到P12高点
"
);
MiddleAxis
.
AbsMove
(
MoveInfo
,
Config
.
MiddleAxis_P11
,
Config
.
MiddleAxis_P11_Speed
);
InOutStoreLog
(
outType
+
"移动到出料口,旋转轴到P11["
+
Config
.
MiddleAxis_P11
+
"],升降轴到P12高点["
+
Config
.
UpDownAxis_P12
+
"]
"
);
MiddleAxis
.
AbsMove
(
MoveInfo
,
Config
.
MiddleAxis_P11
,
Config
.
MiddleAxis_P11_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
UpDownAxis_P12
,
Config
.
UpDownAxis_P12_Speed
);
}
}
...
...
@@ -171,33 +171,33 @@ namespace OnlineStore.DeviceLibrary
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SI_06_ToPos
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_07_InoutToP3
);
InOutStoreLog
(
outType
+
"进出轴到P3(库位取放料点) "
);
InoutAxis
.
AbsMove
(
MoveInfo
,
moveP
.
InOut_P3
,
Config
.
InOutAxis_P3_Speed
);
InOutStoreLog
(
outType
+
"进出轴到P3(库位取放料点) "
);
InoutAxis
.
AbsMove
(
MoveInfo
,
moveP
.
InOut_P3
,
Config
.
InOutAxis_P3_Speed
);
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SI_07_InoutToP3
))
{
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_08_PutReel
);
InOutStoreLog
(
outType
+
"升降轴到P4( 库位入料缓冲点)压紧轴到P3( 压紧前点)
"
);
InOutStoreLog
(
outType
+
"升降轴到P4["
+
moveP
.
UpDown_P4
+
"],压紧轴到P3["
+
moveP
.
ComPress_P3
+
"]
"
);
// 5= 入仓位完成(料仓Box把料盘放入对应的库位中,装置还未恢复原始状态)
string
posId
=
MoveInfo
.
MoveParam
.
PosID
;
lastPosId
=
posId
;
lastPosIdStatus
=
StoreStatus
.
InStoreEnd
;
storeStatus
=
StoreStatus
.
InStoreEnd
;
storeStatus
=
StoreStatus
.
InStoreEnd
;
ComAxis
.
AbsMove
(
MoveInfo
,
moveP
.
ComPress_P3
,
Config
.
CompAxis_P3_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
moveP
.
UpDown_P4
,
Config
.
UpDownAxis_P4_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
moveP
.
UpDown_P4
,
Config
.
UpDownAxis_P4_Speed
);
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SI_08_PutReel
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_09_InoutToP1
);
InOutStoreLog
(
outType
+
"进出轴返回P1
"
);
InOutBackToP1
(
moveP
.
InOut_P1
);
OutDoorReelType
=
2
;
InOutStoreLog
(
outType
+
"进出轴返回P1 ["
+
moveP
.
InOut_P1
+
"]
"
);
InOutBackToP1
(
moveP
.
InOut_P1
);
OutDoorReelType
=
2
;
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_09_InoutToP1
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_10_GoBack
);
InOutStoreLog
(
outType
+
"旋转轴,升降轴,压紧轴到待机点P1
"
);
InOutStoreLog
(
outType
+
"升降轴到P1["
+
moveP
.
UpDown_P1
+
"],旋转轴到P1["
+
moveP
.
Middle_P1
+
"] ,压紧轴到P1["
+
moveP
.
ComPress_P1
+
"],
"
);
ComAxis
.
AbsMove
(
MoveInfo
,
moveP
.
ComPress_P1
,
Config
.
CompAxis_P1_Speed
);
MiddleAxis
.
AbsMove
(
MoveInfo
,
moveP
.
Middle_P1
,
Config
.
MiddleAxis_P1_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
moveP
.
UpDown_P1
,
Config
.
UpDownAxis_P1_Speed
);
...
...
@@ -219,35 +219,35 @@ namespace OnlineStore.DeviceLibrary
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SI_21_ToOutDoor
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_22_OpenOutDoor
);
InOutStoreLog
(
outType
+
"打开出料口门 "
);
InOutStoreLog
(
outType
+
"打开出料口门 "
);
CylinderMove
(
MoveInfo
,
IO_Type
.
OutDoor_Down
,
IO_Type
.
OutDoor_Up
);
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SI_22_OpenOutDoor
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_23_InoutToP11
);
InOutStoreLog
(
outType
+
"进出轴到_P11-出料口取放料点
"
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_23_InoutToP11
);
InOutStoreLog
(
outType
+
"进出轴到_P11-出料口取放料点 ["
+
Config
.
InOutAxis_P11
+
"]
"
);
InoutAxis
.
AbsMove
(
MoveInfo
,
Config
.
InOutAxis_P11
,
Config
.
InOutAxis_P11_Speed
);
//关闭舱门
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SI_23_InoutToP11
))
{
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_24_PurReel
);
InOutStoreLog
(
outType
+
"升降轴到_P11-出料口-低点,压紧轴到压紧前点P3
"
);
InOutStoreLog
(
outType
+
"升降轴到_P11-出料口-低点["
+
Config
.
UpDownAxis_P11
+
"],压紧轴到压紧前点P3["
+
moveP
.
ComPress_P3
+
"]
"
);
ComAxis
.
AbsMove
(
MoveInfo
,
moveP
.
ComPress_P3
,
Config
.
CompAxis_P3_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
UpDownAxis_P11
,
Config
.
UpDownAxis_P11_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
UpDownAxis_P11
,
Config
.
UpDownAxis_P11_Speed
);
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SI_24_PurReel
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_25_InoutToP1
);
InOutStoreLog
(
outType
+
"进出轴返回待机点P1
"
);
InOutBackToP1
(
moveP
.
InOut_P1
);
InOutStoreLog
(
outType
+
"进出轴返回P1 ["
+
moveP
.
InOut_P1
+
"]
"
);
InOutBackToP1
(
moveP
.
InOut_P1
);
OutDoorReelType
=
1
;
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_25_InoutToP1
)
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SI_25_InoutToP1
)
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_26_GoBack
);
InOutStoreLog
(
outType
+
"升降轴,旋转轴,压紧轴返回P1
,关闭出料口门"
);
InOutStoreLog
(
outType
+
"升降轴到P1["
+
moveP
.
UpDown_P1
+
"],旋转轴到P1["
+
moveP
.
Middle_P1
+
"] ,压紧轴到P1["
+
moveP
.
ComPress_P1
+
"]
,关闭出料口门"
);
CylinderMove
(
MoveInfo
,
IO_Type
.
OutDoor_Up
,
IO_Type
.
OutDoor_Down
);
ComAxis
.
AbsMove
(
MoveInfo
,
moveP
.
ComPress_P1
,
Config
.
CompAxis_P1_Speed
);
MiddleAxis
.
AbsMove
(
MoveInfo
,
moveP
.
Middle_P1
,
Config
.
MiddleAxis_P1_Speed
);
...
...
@@ -268,21 +268,25 @@ namespace OnlineStore.DeviceLibrary
LogUtil
.
error
(
Name
+
" 入库,MoveInfo.MoveStep="
+
MoveInfo
.
MoveStep
+
",没有对应的处理!"
);
}
}
#
endregion
#
region
出库
private
DateTime
startOutStoreTime
=
DateTime
.
Now
;
private
DateTime
startOutStoreTime
=
DateTime
.
Now
;
private
void
StartExecuctOut
(
InOutParam
param
)
{
bool
result
=
false
;
if
(
StoreManager
.
Store
.
CanOut
())
{
result
=
StartOutStoreMove
(
param
);
}
bool
result
=
StartOutStoreMove
(
param
);
if
(!
result
)
{
LogInfo
(
" 执行出库【"
+
param
.
ToStr
()
+
"】失败,加入等待队列"
);
waitOutStoreList
.
Enqueue
(
param
);
}
}
}
public
override
bool
StartOutStoreMove
(
InOutParam
param
)
{
...
...
@@ -296,13 +300,13 @@ namespace OnlineStore.DeviceLibrary
LogUtil
.
error
(
Name
+
" 启动出库【"
+
param
.
ToStr
()
+
"】失败,忙碌或报警中 ,storeStatus:"
+
runStatus
+
",MoveType:"
+
MoveInfo
.
MoveType
+
",isInSuddenDown:"
+
isInSuddenDown
+
",isNoAirCheck:"
+
isNoAirCheck
);
return
false
;
}
if
(!
StoreManager
.
LoadInoutParam
(
param
,
MoveType
.
OutStore
,
false
,
this
))
if
(!
StoreManager
.
LoadInoutParam
(
param
,
MoveType
.
OutStore
,
false
,
this
))
{
LogUtil
.
error
(
Name
+
" 启动出库【"
+
param
.
ToStr
()
+
"】出错,找不到库位信息"
);
return
false
;
}
param
.
TargetBox
=
ID
;
storeStatus
=
StoreStatus
.
OutStoreExecute
;
runStatus
=
StoreRunStatus
.
Busy
;
param
.
moveType
=
MoveType
.
OutStore
;
...
...
@@ -310,11 +314,11 @@ namespace OnlineStore.DeviceLibrary
LogInfo
(
"启动出库【"
+
param
.
ToStr
()
+
"】 "
);
//出库前shelfPosID需要固定,出库时根据rfid判断是否需要出入料架
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_01_InoutBack
);
InOutStoreLog
(
"出库
"
+
MoveInfo
.
SLog
+
"
:进出轴到P1 开始"
);
InOutStoreLog
(
"出库 :进出轴到P1 开始"
);
InOutBackToP1
(
MoveInfo
.
MoveParam
.
MoveP
.
InOut_P1
);
return
true
;
}
protected
override
void
OutStoreProcess
()
{
string
outType
=
"出库:"
;
...
...
@@ -331,31 +335,31 @@ namespace OnlineStore.DeviceLibrary
{
return
;
}
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_01_InoutBack
)
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SO_01_InoutBack
)
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_02_ToPosition
);
InOutStoreLog
(
outType
+
"压紧轴到压紧前点P3 ,旋转轴到库位点P2,升降轴到P5(库位出库前点)
"
);
InOutStoreLog
(
outType
+
"压紧轴到压紧前点P3["
+
moveP
.
ComPress_P3
+
"] ,旋转轴到库位点P2["
+
moveP
.
Middle_P2
+
"],升降轴到P5 ["
+
moveP
.
UpDown_P5
+
"]
"
);
ComAxis
.
AbsMove
(
MoveInfo
,
moveP
.
ComPress_P3
,
Config
.
CompAxis_P3_Speed
);
MiddleAxis
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
M
oveP
.
Middle_P2
,
Config
.
MiddleAxis_P2_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
M
oveP
.
UpDown_P5
,
Config
.
UpDownAxis_P5_Speed
);
MiddleAxis
.
AbsMove
(
MoveInfo
,
m
oveP
.
Middle_P2
,
Config
.
MiddleAxis_P2_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
m
oveP
.
UpDown_P5
,
Config
.
UpDownAxis_P5_Speed
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_02_ToPosition
)
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SO_02_ToPosition
)
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_03_InoutToP3
);
InOutStoreLog
(
outType
+
" 进出轴至P3(库位取放料点)
["
+
moveP
.
InOut_P3
+
"] "
);
InOutStoreLog
(
outType
+
" 进出轴至P3
["
+
moveP
.
InOut_P3
+
"] "
);
InoutAxis
.
AbsMove
(
MoveInfo
,
moveP
.
InOut_P3
,
Config
.
InOutAxis_P3_Speed
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_03_InoutToP3
)
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SO_03_InoutToP3
)
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_04_GetReel
);
InOutStoreLog
(
outType
+
"升降轴到P6,压紧轴到P2(压紧点)
"
);
InOutStoreLog
(
outType
+
"升降轴到P6["
+
moveP
.
UpDown_P6
+
"],压紧轴到P2["
+
moveP
.
ComPress_P2
+
"]
"
);
ComAxis
.
AbsMove
(
MoveInfo
,
moveP
.
ComPress_P2
,
Config
.
CompAxis_P2_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
moveP
.
UpDown_P6
,
Config
.
UpDownAxis_P6_Speed
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_04_GetReel
)
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SO_04_GetReel
)
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_05_InoutBack
);
InOutStoreLog
(
outType
+
"进出轴返回P1(待机点)
"
);
InOutStoreLog
(
outType
+
"进出轴返回P1["
+
moveP
.
InOut_P1
+
"]
"
);
InOutBackToP1
(
moveP
.
InOut_P1
);
//把库位的物品放到取到叉子上之后是出仓完成
string
posId
=
MoveInfo
.
MoveParam
.
PosID
;
...
...
@@ -364,57 +368,86 @@ namespace OnlineStore.DeviceLibrary
storeStatus
=
StoreStatus
.
OutStoreBoxEnd
;
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_05_InoutBack
)
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SO_05_InoutBack
)
)
{
if
(
MoveInfo
.
MoveParam
.
TargetPosition
.
Equals
(
0
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_06_ToDoor
);
InOutStoreLog
(
outType
+
"旋转轴 至P2( 库位点)升降轴到P3(库位入库前点)
"
);
InOutStoreLog
(
outType
+
"旋转轴 至P2["
+
moveP
.
Middle_P2
+
"],升降轴到P3"
+
moveP
.
UpDown_P3
+
"
"
);
MiddleAxis
.
AbsMove
(
MoveInfo
,
moveP
.
Middle_P2
,
Config
.
MiddleAxis_P2_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
moveP
.
UpDown_P3
,
Config
.
UpDownAxis_P3_Speed
);
}
else
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_21_ToOutDoor
);
InOutStoreLog
(
outType
+
"移动到出料口,旋转轴到P11,升降轴到P12高点
"
);
InOutStoreLog
(
outType
+
"移动到出料口,旋转轴到P11["
+
Config
.
MiddleAxis_P11
+
"],升降轴到P12高点["
+
Config
.
UpDownAxis_P12
+
"]
"
);
MiddleAxis
.
AbsMove
(
MoveInfo
,
Config
.
MiddleAxis_P11
,
Config
.
MiddleAxis_P11_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
UpDownAxis_P12
,
Config
.
UpDownAxis_P12_Speed
);
}
}
#
region
批量出料,到料串
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_06_ToDoor
)
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SO_06_ToDoor
)
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_07_InoutToP2
);
InOutStoreLog
(
outType
+
"进出轴到P2
"
);
InOutStoreLog
(
outType
+
"进出轴到P2 ["
+
moveP
.
InOut_P2
+
"]
"
);
InoutAxis
.
AbsMove
(
MoveInfo
,
moveP
.
InOut_P2
,
Config
.
InOutAxis_P2_Speed
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_07_InoutToP2
)
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SO_07_InoutToP2
)
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_08_PutReel
);
InOutStoreLog
(
outType
+
"放下物品 升降轴至P1,压紧轴到P3
"
);
InOutStoreLog
(
outType
+
"放下物品 升降轴至P1["
+
moveP
.
UpDown_P1
+
"],压紧轴到P3 ["
+
moveP
.
ComPress_P3
+
"]
"
);
ComAxis
.
AbsMove
(
MoveInfo
,
moveP
.
ComPress_P3
,
Config
.
CompAxis_P3_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
moveP
.
UpDown_P1
,
Config
.
UpDownAxis_P1_Speed
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_08_PutReel
)
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SO_08_PutReel
)
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_09_InoutBack
);
InOutStoreLog
(
outType
+
"进出轴返回P1
"
);
InOutStoreLog
(
outType
+
"进出轴返回P1["
+
moveP
.
InOut_P1
+
"]
"
);
InOutBackToP1
(
moveP
.
InOut_P1
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_09_InoutBack
)
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SO_09_InoutBack
)
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_10_GoBack
);
InOutStoreLog
(
outType
+
"升降轴,旋转轴到待机点P1 "
);
InOutStoreLog
(
outType
+
"升降轴到P1["
+
moveP
.
UpDown_P1
+
"],旋转轴到P1["
+
moveP
.
Middle_P1
+
"] ,压紧轴到P1["
+
moveP
.
ComPress_P1
+
"] "
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
1000
));
ComAxis
.
AbsMove
(
MoveInfo
,
moveP
.
ComPress_P1
,
Config
.
CompAxis_P1_Speed
);
MiddleAxis
.
AbsMove
(
MoveInfo
,
moveP
.
Middle_P1
,
Config
.
MiddleAxis_P1_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
moveP
.
UpDown_P1
,
Config
.
UpDownAxis_P1_Speed
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_10_GoBack
)
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SO_10_GoBack
))
{
if
(
StoreManager
.
Store
.
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
OutStore
)
&&
StoreManager
.
Store
.
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
LO_09_WaitOut
))
{
bool
result
=
StoreManager
.
Store
.
StartTrayOut
(
MoveInfo
.
MoveParam
);
if
(
result
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_11_WaitTrayGo
);
InOutStoreLog
(
outType
+
"等待提升机构拿走料盘 "
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
InDoor_Check
,
IO_VALUE
.
LOW
));
ClearTimeoutAlarm
(
"提升机构夹爪开始取料"
);
ClearTimeoutAlarm
(
"提升机构夹爪可以取料"
);
}
else
if
(
MoveInfo
.
IsTimeOut
(
60
))
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveStep
+
"] 等待 提升机构夹爪开始取料 ["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
ID
*
1000
+
30
);
Alarm
(
AlarmType
.
IoSingleTimeOut
);
}
}
else
if
(
MoveInfo
.
IsTimeOut
(
60
))
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveStep
+
"] 等待 提升机构夹爪可以取料 ["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
ID
*
1000
+
30
);
Alarm
(
AlarmType
.
IoSingleTimeOut
);
}
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SO_11_WaitTrayGo
))
{
TimeSpan
span
=
DateTime
.
Now
-
startOutStoreTime
;
string
posId
=
MoveInfo
.
MoveParam
.
PosID
;
string
posId
=
MoveInfo
.
MoveParam
.
PosID
;
LogUtil
.
info
(
Name
+
" 【"
+
posId
+
"】 出库结束,耗时【"
+
FormUtil
.
GetSpanStr
(
span
)
+
"】!"
);
MoveEndP
();
...
...
@@ -428,20 +461,20 @@ namespace OnlineStore.DeviceLibrary
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SO_21_ToOutDoor
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_22_OpenOutDoor
);
InOutStoreLog
(
outType
+
"打开出料口门 "
);
InOutStoreLog
(
outType
+
"打开出料口门 "
);
CylinderMove
(
MoveInfo
,
IO_Type
.
OutDoor_Down
,
IO_Type
.
OutDoor_Up
);
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SO_22_OpenOutDoor
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_23_InoutToP11
);
InOutStoreLog
(
outType
+
"进出轴到_P11-出料口取放料点
"
);
InOutStoreLog
(
outType
+
"进出轴到_P11-出料口取放料点 ["
+
Config
.
InOutAxis_P11
+
"]
"
);
InoutAxis
.
AbsMove
(
MoveInfo
,
Config
.
InOutAxis_P11
,
Config
.
InOutAxis_P11_Speed
);
//关闭舱门
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SO_23_InoutToP11
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_24_PurReel
);
InOutStoreLog
(
outType
+
"升降轴到_P11-出料口-低点,压紧轴到压紧前点P3
"
);
InOutStoreLog
(
outType
+
"升降轴到_P11-出料口-低点["
+
Config
.
UpDownAxis_P11
+
"],压紧轴到压紧前点P3 ["
+
moveP
.
ComPress_P3
+
"]
"
);
ComAxis
.
AbsMove
(
MoveInfo
,
moveP
.
ComPress_P3
,
Config
.
CompAxis_P3_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
UpDownAxis_P11
,
Config
.
UpDownAxis_P11_Speed
);
...
...
@@ -449,13 +482,13 @@ namespace OnlineStore.DeviceLibrary
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SO_24_PurReel
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_25_InoutToP1
);
InOutStoreLog
(
outType
+
"进出轴返回待机点P1
"
);
InOutStoreLog
(
outType
+
"进出轴返回待机点P1 ["
+
moveP
.
InOut_P1
+
"]
"
);
InOutBackToP1
(
moveP
.
InOut_P1
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_25_InoutToP1
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_26_GoBack
);
InOutStoreLog
(
outType
+
"升降轴,旋转轴,压紧轴返回P1
,关闭出料口门"
);
InOutStoreLog
(
outType
+
"升降轴到P1["
+
moveP
.
UpDown_P1
+
"],旋转轴到P1["
+
moveP
.
Middle_P1
+
"],压紧轴到P1["
+
moveP
.
ComPress_P1
+
"]
,关闭出料口门"
);
CylinderMove
(
MoveInfo
,
IO_Type
.
OutDoor_Up
,
IO_Type
.
OutDoor_Down
);
ComAxis
.
AbsMove
(
MoveInfo
,
moveP
.
ComPress_P1
,
Config
.
CompAxis_P1_Speed
);
MiddleAxis
.
AbsMove
(
MoveInfo
,
moveP
.
Middle_P1
,
Config
.
MiddleAxis_P1_Speed
);
...
...
@@ -464,13 +497,13 @@ namespace OnlineStore.DeviceLibrary
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SO_26_GoBack
))
{
TimeSpan
span
=
DateTime
.
Now
-
startInStoreTime
;
string
posId
=
MoveInfo
.
MoveParam
!=
null
?
MoveInfo
.
MoveParam
.
PosID
:
""
;
string
posId
=
MoveInfo
.
MoveParam
!=
null
?
MoveInfo
.
MoveParam
.
PosID
:
""
;
LogUtil
.
info
(
Name
+
" 【"
+
posId
+
"】 单盘出库结束,耗时【"
+
FormUtil
.
GetSpanStr
(
span
)
+
"】!"
);
MoveEndP
();
AutoInout
.
InOutEndProcess
(
this
,
MoveType
.
OutStore
);
}
#
endregion
else
{
...
...
source/DeviceLibrary/duoStore/BoxBean_Shelf.cs
查看文件 @
c1af307
...
...
@@ -210,13 +210,13 @@ namespace OnlineStore.DeviceLibrary
string
[]
plateHArray
=
data
[
ParamDefine
.
plateH
].
Split
(
splitChar
);
bool
urgentReel
=
FormUtil
.
GetBoolData
(
data
,
ParamDefine
.
urgentReel
);
bool
cutReel
=
FormUtil
.
GetBoolData
(
data
,
ParamDefine
.
cutReel
);
bool
smallReel
=
FormUtil
.
GetBoolData
(
data
,
ParamDefine
.
smallReel
);
string
rfid
=
data
.
ContainsKey
(
ParamDefine
.
rfid
)
?
data
[
ParamDefine
.
rfid
]
:
""
;
int
rfidLoc
=
FormUtil
.
GetIntData
(
data
,
ParamDefine
.
rfidLoc
);
string
barcode
=
data
.
ContainsKey
(
ParamDefine
.
barcode
)
?
data
[
ParamDefine
.
barcode
]
:
""
;
string
realRfid
=
data
.
ContainsKey
(
ParamDefine
.
realRfid
)
?
data
[
ParamDefine
.
realRfid
]
:
""
;
int
taskCount
=
FormUtil
.
GetIntData
(
data
,
ParamDefine
.
taskCount
,
0
);
//
bool cutReel = FormUtil.GetBoolData(data, ParamDefine.cutReel);
//
bool smallReel = FormUtil.GetBoolData(data, ParamDefine.smallReel);
//
string rfid = data.ContainsKey(ParamDefine.rfid) ? data[ParamDefine.rfid] : "";
//
int rfidLoc = FormUtil.GetIntData(data, ParamDefine.rfidLoc);
string
barcode
=
data
.
ContainsKey
(
ParamDefine
.
barcode
)
?
data
[
ParamDefine
.
barcode
]
:
""
;
//
string realRfid = data.ContainsKey(ParamDefine.realRfid) ? data[ParamDefine.realRfid] : "";
//
int taskCount = FormUtil.GetIntData(data, ParamDefine.taskCount, 0);
//urgentReel: true 表示紧急料,需要出到料串上
//cutReel: true 表示分盘料,需要出到料串上
...
...
@@ -232,8 +232,8 @@ namespace OnlineStore.DeviceLibrary
{
index
++;
int
plateW
=
Convert
.
ToInt32
(
plateWArray
[
index
]);
int
plateH
=
Convert
.
ToInt32
(
plateHArray
[
index
]);
InOutParam
inoutParam
=
new
InOutParam
(
barcode
,
posId
,
plateW
,
plateH
);
int
plateH
=
Convert
.
ToInt32
(
plateHArray
[
index
]);
InOutParam
inoutParam
=
new
InOutParam
(
MoveType
.
OutStore
,
barcode
,
posId
,
plateW
,
plateH
,
(
urgentReel
?
1
:
0
)
);
//根据发送的posId获取位置列表
ACBoxPosition
position
=
CSVPositionReader
<
ACBoxPosition
>.
GetPositon
(
posId
);
...
...
source/DeviceLibrary/duoStore/DUOStoreBean.cs
查看文件 @
c1af307
...
...
@@ -50,8 +50,8 @@ namespace OnlineStore.DeviceLibrary
this
.
Config
=
lineConfig
;
this
.
ID
=
lineConfig
.
Id
;
MoveInfo
=
new
StoreMoveInfo
(
ID
,
" DUO料仓 "
);
Name
=
(
" DUO料仓_"
+
Config
.
CID
+
" "
).
ToUpper
(
);
Name
=
(
" DUO料仓 "
).
ToUpper
(
);
MoveInfo
=
new
StoreMoveInfo
(
ID
,
Name
);
List
<
string
>
ioList
=
new
List
<
string
>();
AddDeviceName
(
ioList
,
Config
.
IOIPList
);
...
...
@@ -71,7 +71,8 @@ namespace OnlineStore.DeviceLibrary
IOManager
.
Init
();
CodeManager
.
LoadConfig
();
CurrShelfNum
=
ConfigAppSettings
.
GetIntValue
(
Setting_Init
.
CurrShelfNum
);
CurrShelfType
=
ConfigAppSettings
.
GetIntValue
(
Setting_Init
.
CurrShelfType
);
Task
.
Factory
.
StartNew
(
delegate
{
// RFIDManager.RfidReader.Open(rfidList.ToArray());
...
...
@@ -220,10 +221,10 @@ namespace OnlineStore.DeviceLibrary
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
LR_03_BatchAxisHome
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LR_04_BatchToP1
);
LogUtil
.
info
(
Name
+
"复位 "
+
MoveInfo
.
MoveStep
+
" :提升轴到P1点,上下轴到待机点P
1
"
);
LogUtil
.
info
(
Name
+
"复位 "
+
MoveInfo
.
MoveStep
+
" :提升轴到P1点,上下轴到待机点P
2
"
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
1000
));
T1_BatchAxis
.
AbsMove
(
MoveInfo
,
Config
.
BatchAxis_P1
,
Config
.
BatchAxis_P1Speed
);
T3_UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
UpdownAxis_P
1
,
Config
.
UpdownAxis_P1
Speed
);
T3_UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
UpdownAxis_P
2
,
Config
.
UpdownAxis_P2
Speed
);
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
LR_04_BatchToP1
))
...
...
source/DeviceLibrary/duoStore/DUOStoreBean_Partial.cs
查看文件 @
c1af307
...
...
@@ -13,6 +13,9 @@ namespace OnlineStore.DeviceLibrary
partial
class
DUOStoreBean
{
public
bool
InstoreEndSendShelf
=
false
;
public
bool
OutstoreEndSendShelf
=
false
;
public
int
CurrShelfNum
=
0
;
/// <summary>
/// 料架类型,0=空料架,1=入库料架,2=出库料架
...
...
@@ -29,9 +32,13 @@ namespace OnlineStore.DeviceLibrary
CurrShelfType
=
type
;
ConfigAppSettings
.
SaveValue
(
Setting_Init
.
CurrShelfType
,
type
);
ConfigAppSettings
.
SaveValue
(
Setting_Init
.
CurrShelfNum
,
num
);
if
(
type
.
Equals
(
0
)
||
type
.
Equals
(
1
))
{
outStoreCount
=
0
;
}
LogUtil
.
info
(
Name
+
"更新料架信息:【"
+
CurrShelfNum
+
"】【"
+
CurrShelfType
+
"】"
);
}
protected
override
bool
CheckWaitResult
(
StoreMoveInfo
moveInfo
,
WaitResultInfo
wait
)
{
if
(
wait
.
WaitType
.
Equals
(
WaitEnum
.
W008_BatchAxis
))
...
...
@@ -67,16 +74,321 @@ namespace OnlineStore.DeviceLibrary
}
return
false
;
}
#
region
料架出料
public
int
outStoreCount
=
0
;
public
bool
CanOut
()
{
if
(
isInSuddenDown
||
isNoAirCheck
)
{
return
false
;
}
if
(
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
OutStore
))
{
return
true
;
}
else
if
(
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
None
))
{
if
(
IOValue
(
IO_Type
.
Line_WorkCheck
).
Equals
(
IO_VALUE
.
HIGH
)
)
{
if
(
CurrShelfNum
>=
0
&&
(
CurrShelfType
.
Equals
(
0
)
||
CurrShelfType
.
Equals
(
2
)))
{
StartOutStoreMove
(
new
InOutParam
(
MoveType
.
OutStore
));
}
}
}
return
false
;
}
public
override
bool
StartOutStoreMove
(
InOutParam
param
)
{
//判断是哪个工位有料架
if
(
IOValue
(
IO_Type
.
Line_WorkCheck
).
Equals
(
IO_VALUE
.
HIGH
))
{
if
(
CurrShelfNum
>=
0
&&
(
CurrShelfType
.
Equals
(
0
)
||
CurrShelfType
.
Equals
(
2
)))
{
runStatus
=
StoreRunStatus
.
Busy
;
storeStatus
=
StoreStatus
.
OutStoreExecute
;
MoveInfo
.
NewMove
(
MoveType
.
OutStore
,
new
InOutParam
(
MoveType
.
OutStore
));
UpdateShelfNum
(
CurrShelfNum
,
2
);
L_05_WaitTime
(
StoreMoveStep
.
LO_05_WaitTime
);
return
true
;
}
}
return
tru
e
;
return
fals
e
;
}
public
bool
StartTrayOut
(
InOutParam
outParam
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LO_11_BatchAxisDown
);
InOutStoreLog
(
"取料:批量轴下降指定的高度"
);
if
(
outParam
==
null
||
outParam
.
PosID
==
null
||
outParam
.
PosID
.
Equals
(
""
))
{
LogUtil
.
error
(
Name
+
" StartTrayOut 出库失败,参数不完整:"
);
LogUtil
.
error
(
outParam
.
ToStr
());
return
false
;
}
if
(
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
OutStore
)
&&
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
LO_09_WaitOut
))
{
MoveInfo
.
NewMove
(
MoveType
.
OutStore
,
outParam
);
//可以开始出库啦
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LO_11_BatchAxisDown
);
int
height
=
outParam
.
PlateH
+
4
;
int
targetPosition
=
T1_BatchAxis
.
GetAclPosition
()
-
height
*
Config
.
BatchAxis_ChangeValue
;
if
(
targetPosition
<
Config
.
BatchAxis_P1
)
{
targetPosition
=
Config
.
BatchAxis_P1
;
}
InOutStoreLog
(
"出库移栽:"
+
outParam
.
ToStr
()
+
" 提升伺服下降"
+
height
+
"mm,目标:"
+
targetPosition
);
T1_BatchAxis
.
AbsMove
(
MoveInfo
,
targetPosition
,
Config
.
BatchAxis_P2Speed
);
return
true
;
}
else
{
LogUtil
.
error
(
Name
+
"出库"
+
outParam
.
ToStr
()
+
"失败,未准备好料架"
);
return
false
;
}
}
protected
override
void
OutStoreProcess
()
{
if
(
MoveInfo
.
IsInWait
)
{
CheckWait
();
}
if
(
MoveInfo
.
IsInWait
)
{
return
;
}
#
region
料串检测
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
LO_05_WaitTime
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LO_06_TopUp
);
InOutStoreLog
(
"料架出库: 顶升气缸上升"
);
CylinderMove
(
MoveInfo
,
IO_Type
.
TopCylinder_Down
,
IO_Type
.
TopCylinder_Up
);
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
LO_06_TopUp
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LO_07_HoisterForward
);
InOutStoreLog
(
"料架出库:取料提升机构前进"
);
hoisterCylinder
.
StartForward
(
MoveInfo
);
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
LO_07_HoisterForward
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LO_08_AxisUpToP2
);
InOutStoreLog
(
"料架出库:上料轴开始慢速上升到P2点,等待检测到料盘"
);
BatchAxisToP2
(
true
);
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
LO_08_AxisUpToP2
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LO_09_WaitOut
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
5000
));
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
LO_09_WaitOut
))
{
if
(
OutstoreEndSendShelf
&&
outStoreCount
>
0
)
{
InOutStoreLog
(
"料架出库:OutstoreEndSendShelf=true,开始送出料架"
);
LO_31_BatchAxisToP1
();
}
else
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LO_09_WaitOut
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
5000
));
InOutStoreLog
(
" 等待料盘出库"
);
}
}
#
endregion
#
region
取放料处理
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
LO_11_BatchAxisDown
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LO_12_ToBoxDoor
);
if
(
LastPosParam
.
TargetBox
.
Equals
(
1
))
{
InOutStoreLog
(
"取料, BOX "
+
LastPosParam
.
TargetBox
+
" 升降轴到料门口高点["
+
Config
.
UpdownAxis_P4
+
"],旋转轴到料仓门口 ["
+
Config
.
MiddleAxis_P2
+
"]"
);
T3_UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
UpdownAxis_P4
,
Config
.
UpdownAxis_P4Speed
);
T2_MiddleAxis
.
AbsMove
(
MoveInfo
,
Config
.
MiddleAxis_P2
,
Config
.
MiddleAxis_P2Speed
);
}
else
{
InOutStoreLog
(
"取料, BOX "
+
LastPosParam
.
TargetBox
+
" 升降轴到料门口高点["
+
Config
.
UpdownAxis_P6
+
"],旋转轴到料仓门口 ["
+
Config
.
MiddleAxis_P3
+
"]"
);
T3_UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
UpdownAxis_P6
,
Config
.
UpdownAxis_P6Speed
);
T2_MiddleAxis
.
AbsMove
(
MoveInfo
,
Config
.
MiddleAxis_P3
,
Config
.
MiddleAxis_P3Speed
);
}
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
LO_12_ToBoxDoor
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LO_13_UpdownDown
);
if
(
LastPosParam
.
TargetBox
.
Equals
(
1
))
{
InOutStoreLog
(
"取料:升降轴下降到料门口低点["
+
Config
.
UpdownAxis_P3
+
"]"
);
T3_UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
UpdownAxis_P3
,
Config
.
UpdownAxis_P3Speed
);
}
else
{
InOutStoreLog
(
"取料:升降轴下降到料门口低点["
+
Config
.
UpdownAxis_P5
+
"]"
);
T3_UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
UpdownAxis_P5
,
Config
.
UpdownAxis_P5Speed
);
}
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
LO_13_UpdownDown
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LO_14_CylinderTighten
);
InOutStoreLog
(
"取料:夹爪气缸夹紧"
);
CylinderMove
(
MoveInfo
,
IO_Type
.
ClampCylinder_Relax
,
IO_Type
.
ClampCylinder_Clamp
);
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
LO_14_CylinderTighten
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LO_15_UpdownUp
);
if
(
LastPosParam
.
TargetBox
.
Equals
(
1
))
{
InOutStoreLog
(
"取料:升降轴上升到料门口高点["
+
Config
.
UpdownAxis_P4
+
"]"
);
T3_UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
UpdownAxis_P4
,
Config
.
UpdownAxis_P4Speed
);
}
else
{
InOutStoreLog
(
"取料:升降轴上升到料门口高点["
+
Config
.
UpdownAxis_P6
+
"]"
);
T3_UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
UpdownAxis_P6
,
Config
.
UpdownAxis_P6Speed
);
}
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
LO_15_UpdownUp
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LO_16_MiddleToP1
);
InOutStoreLog
(
"取料:旋转轴到料仓位置P1,"
);
T2_MiddleAxis
.
AbsMove
(
MoveInfo
,
Config
.
MiddleAxis_P1
,
Config
.
MiddleAxis_P1Speed
);
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
LO_16_MiddleToP1
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LO_17_UpdownToP2
);
InOutStoreLog
(
"取料:升降轴到料串高点P2"
);
T3_UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
UpdownAxis_P2
,
Config
.
UpdownAxis_P2Speed
);
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
LO_17_UpdownToP2
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LO_18_UpdownDown
);
InOutStoreLog
(
"取料:升降轴到料串放料低点"
);
T3_UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
UpdownAxis_P1
,
Config
.
UpdownAxis_P1Speed
);
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
LO_18_UpdownDown
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LO_19_CylinderRelax
);
InOutStoreLog
(
"料盘移栽: 夹爪气缸放松"
);
CylinderMove
(
MoveInfo
,
IO_Type
.
ClampCylinder_Clamp
,
IO_Type
.
ClampCylinder_Relax
);
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
LO_19_CylinderRelax
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LO_20_UpdownUp
);
T3_UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
UpdownAxis_P2
,
Config
.
UpdownAxis_P2Speed
);
//只有提升轴位置过低时才需要到P3
int
currPosition
=
T1_BatchAxis
.
GetAclPosition
();
if
(
currPosition
<=
(
Config
.
BatchAxis_P1
+
Config
.
BatchAxis_ChangeValue
*
40
))
{
InOutStoreLog
(
"料盘移栽: 升降轴到料串高点["
+
Config
.
UpdownAxis_P2
+
"],提升轴["
+
currPosition
+
"]需要到P2"
);
BatchAxisToP2
();
}
else
{
InOutStoreLog
(
"料盘移栽: 升降轴到料串高点["
+
Config
.
UpdownAxis_P2
+
"],提升轴["
+
currPosition
+
"]不需要到P2"
);
}
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
LO_20_UpdownUp
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LO_21_NeedSendShelf
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
500
));
InOutStoreLog
(
"料盘移栽:判断是否送出料架"
);
int
currPositon
=
T1_BatchAxis
.
GetAclPosition
();
int
tp
=
currPositon
-
Config
.
BatchAxis_ChangeValue
*
40
;
if
(
tp
<=
Config
.
BatchAxis_P1
)
{
LO_31_BatchAxisToP1
(
" 提升轴位置:"
+
currPositon
+
",料架已满,需要送出料架"
);
}
else
if
(
OutstoreEndSendShelf
)
{
LO_31_BatchAxisToP1
(
" 提升轴位置:"
+
currPositon
+
",OutstoreEndSendShelf=true,需要送出料架"
);
}
else
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LO_09_WaitOut
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
5000
));
InOutStoreLog
(
" 等待料盘出库"
);
}
}
#
endregion
#
region
送出料架处理
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
LO_31_BatchAxisToP1
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LO_32_HoisterBack
);
InOutStoreLog
(
"送出料架:升降盘定位气缸后退"
);
hoisterCylinder
.
StartBack
(
MoveInfo
);
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
LO_32_HoisterBack
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LO_33_TopCylinderDown
);
InOutStoreLog
(
"送出料架:顶升气缸下降"
);
CylinderMove
(
MoveInfo
,
IO_Type
.
TopCylinder_Up
,
IO_Type
.
TopCylinder_Up
);
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
LO_33_TopCylinderDown
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LO_34_WorkStopDown
);
InOutStoreLog
(
"送出料架:上料阻挡下降1秒,流水线开始转动"
);
UpdateShelfNum
(-
1
,
-
1
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
1500
));
LineRun
(
MoveInfo
);
IOMove
(
IO_Type
.
Line_Stop2_Work
,
IO_VALUE
.
HIGH
,
false
,
1500
);
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
LO_34_WorkStopDown
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LO_35_WaitShelfGo
);
InOutStoreLog
(
"送出料架:等待上料无料架"
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
1500
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Line_WaitCheck
,
IO_VALUE
.
LOW
));
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
LO_35_WaitShelfGo
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LO_36_LineRun
);
InOutStoreLog
(
"送出料架:流水线再转动3秒"
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
3000
));
LineRun
(
MoveInfo
);
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
LO_36_LineRun
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LO_37_LineStop
);
InOutStoreLog
(
"送出料架:流水线停止转动"
);
LineStop
(
MoveInfo
);
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
LO_37_LineStop
))
{
LineStop
(
MoveInfo
);
MoveEndP
();
}
#
endregion
}
private
void
LO_31_BatchAxisToP1
(
string
msg
=
""
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LO_31_BatchAxisToP1
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
3000
));
InOutStoreLog
(
"出库 :"
+
msg
+
"开始送出料架,提升伺服到P1点 "
);
UpdateShelfNum
(
CurrShelfNum
,
0
);
T1_BatchAxis
.
SuddenStop
();
T1_BatchAxis
.
AbsMove
(
MoveInfo
,
Config
.
BatchAxis_P1
,
Config
.
BatchAxis_P2Speed
);
}
#
endregion
#
region
料架入料
...
...
@@ -87,6 +399,9 @@ namespace OnlineStore.DeviceLibrary
private
int
LastWidth
=
0
;
private
List
<
string
>
LastCodeList
=
new
List
<
string
>();
private
List
<
string
>
YuCodeList
=
new
List
<
string
>();
private
Task
getPosTask
=
null
;
private
string
lastcode
=
""
;
private
InOutParam
LastPosParam
=
null
;
private
bool
InShelfInProcess
=
false
;
private
bool
StartInStoreP
()
...
...
@@ -131,11 +446,11 @@ namespace OnlineStore.DeviceLibrary
});
}
private
void
L
I_05_WaitTime
(
)
private
void
L
_05_WaitTime
(
StoreMoveStep
step
)
{
//定位工位有料架,等待1秒后再次检测
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LI_05_WaitTime
);
InOutStoreLog
(
"上料区检测到料架:
"
+
MoveInfo
.
SLog
+
",
阻挡1上升,阻挡2上升,转动流水线5秒"
);
MoveInfo
.
NextMoveStep
(
step
);
InOutStoreLog
(
"上料区检测到料架:
阻挡1上升,阻挡2上升,转动流水线5秒"
);
IOMove
(
IO_Type
.
Line_Stop1_Wait
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
Line_Stop2_Work
,
IO_VALUE
.
LOW
);
LineRun
(
MoveInfo
);
...
...
@@ -148,12 +463,12 @@ namespace OnlineStore.DeviceLibrary
UpdateShelfNum
(
GetShelfNum
(),
1
);
if
(
IOValue
(
IO_Type
.
Line_WorkCheck
).
Equals
(
IO_VALUE
.
HIGH
))
{
L
I_05_WaitTime
(
);
L
_05_WaitTime
(
StoreMoveStep
.
LI_05_WaitTime
);
}
else
if
(
IOValue
(
IO_Type
.
Line_WaitCheck
).
Equals
(
IO_VALUE
.
HIGH
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LI_04_LineStart
);
InOutStoreLog
(
"入料检测:
"
+
MoveInfo
.
SLog
+
"
上料等待区有料架 ,阻挡1下降500,阻挡2上升,流水线转动 ,等待料架到达上料区"
);
InOutStoreLog
(
"入料检测: 上料等待区有料架 ,阻挡1下降500,阻挡2上升,流水线转动 ,等待料架到达上料区"
);
IOMove
(
IO_Type
.
Line_Stop1_Wait
,
IO_VALUE
.
HIGH
,
false
,
500
);
//进料阻挡下降
IOMove
(
IO_Type
.
Line_Stop2_Work
,
IO_VALUE
.
LOW
);
//缓冲阻挡前进1000
...
...
@@ -185,7 +500,7 @@ namespace OnlineStore.DeviceLibrary
runStatus
=
StoreRunStatus
.
Busy
;
storeStatus
=
StoreStatus
.
InStoreExecute
;
MoveInfo
.
NewMove
(
MoveType
.
InStore
,
new
InOutParam
(
MoveType
.
InStore
));
L
I_05_WaitTime
(
);
L
_05_WaitTime
(
StoreMoveStep
.
LI_05_WaitTime
);
return
true
;
}
else
if
(
IOValue
(
IO_Type
.
Line_WaitCheck
).
Equals
(
IO_VALUE
.
HIGH
))
...
...
@@ -219,8 +534,7 @@ namespace OnlineStore.DeviceLibrary
}
return
false
;
}
protected
override
void
InStoreProcess
()
{
if
(
MoveInfo
.
IsInWait
)
...
...
@@ -231,6 +545,7 @@ namespace OnlineStore.DeviceLibrary
{
return
;
}
#
region
料串检测
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
LI_01_BatchAxisToP1
))
{
...
...
@@ -283,6 +598,9 @@ namespace OnlineStore.DeviceLibrary
T2_MiddleAxis
.
AbsMove
(
MoveInfo
,
Config
.
MiddleAxis_P4
,
Config
.
MiddleAxis_P4Speed
);
}
#
endregion
#
region
取放料处理
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
LI_11_AxisToTray
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LI_12_UpdownAxisToP3
);
...
...
@@ -362,7 +680,8 @@ namespace OnlineStore.DeviceLibrary
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
LI_21_WaitToBox
))
{
int
storeId
=
LastPosParam
.
GetStoreId
();
if
(
IOManager
.
IOValue
(
IO_Type
.
InDoor_Check
,
storeId
).
Equals
(
IO_VALUE
.
LOW
))
BoxBean
box
=
BoxMap
[
storeId
];
if
(
IOManager
.
IOValue
(
IO_Type
.
InDoor_Check
,
storeId
).
Equals
(
IO_VALUE
.
LOW
)
&&
box
.
waitInStoreParam
==
null
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LI_22_ToBoxDoor
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
500
));
...
...
@@ -436,6 +755,7 @@ namespace OnlineStore.DeviceLibrary
{
CheckHasTray
();
}
#
endregion
#
region
送出料架处理
...
...
@@ -455,19 +775,20 @@ namespace OnlineStore.DeviceLibrary
{
//判断是否需要送出料架,如果入口和等待区无料架,暂不送出
if
(
IOValue
(
IO_Type
.
Line_InCheck
).
Equals
(
IO_VALUE
.
LOW
)
&&
IOValue
(
IO_Type
.
Line_WaitCheck
).
Equals
(
IO_VALUE
.
LOW
)
)
if
(
IOValue
(
IO_Type
.
Line_InCheck
).
Equals
(
IO_VALUE
.
HIGH
)
||
IOValue
(
IO_Type
.
Line_WaitCheck
).
Equals
(
IO_VALUE
.
HIGH
)
||
InstoreEndSendShelf
)
{
InOutStoreLog
(
"送出料架:入口和等待区暂无料架,不需要送出料架"
);
MoveEndP
();
}
else
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LI_34_WorkStopDown
);
InOutStoreLog
(
"送出料架:上料阻挡下降1秒,流水线开始转动"
);
InOutStoreLog
(
"送出料架
["
+
InstoreEndSendShelf
+
"]
:上料阻挡下降1秒,流水线开始转动"
);
UpdateShelfNum
(-
1
,
-
1
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
1500
));
LineRun
(
MoveInfo
);
IOMove
(
IO_Type
.
Line_Stop2_Work
,
IO_VALUE
.
HIGH
,
false
,
1500
);
}
else
{
InOutStoreLog
(
"送出料架:入口和等待区暂无料架,不需要送出料架"
);
MoveEndP
();
}
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
LI_34_WorkStopDown
))
...
...
@@ -526,23 +847,7 @@ namespace OnlineStore.DeviceLibrary
}
return
1
;
}
protected
void
ClearTimeoutAlarm
(
string
msg
)
{
if
(
isInSuddenDown
||
isNoAirCheck
)
{
return
;
}
if
(
WarnMsg
.
Contains
(
msg
)
&&
alarmType
.
Equals
(
AlarmType
.
IoSingleTimeOut
))
{
LogUtil
.
info
(
Name
+
"清理信号超时报警【"
+
WarnMsg
+
"】 "
);
alarmType
=
AlarmType
.
None
;
SetWarnMsg
(
""
);
}
}
private
Task
getPosTask
=
null
;
private
string
lastcode
=
""
;
private
InOutParam
LastPosParam
=
null
;
private
void
LI_18_GetPosID
()
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LI_18_GetPosID
);
...
...
@@ -602,6 +907,7 @@ namespace OnlineStore.DeviceLibrary
T3_UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
UpdownAxis_P2
,
Config
.
UpdownAxis_P2Speed
);
T2_MiddleAxis
.
AbsMove
(
MoveInfo
,
Config
.
MiddleAxis_P4
,
Config
.
MiddleAxis_P4Speed
);
}
private
void
LI_09_ScanCode
()
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LI_09_ScanCode
);
...
...
@@ -617,7 +923,7 @@ namespace OnlineStore.DeviceLibrary
}
else
{
InOutStoreLog
(
"料盘移栽
"
+
MoveInfo
.
SLog
+
"
:开始扫码"
);
InOutStoreLog
(
"料盘移栽
:开始扫码"
);
MoveInfo
.
OneWaitCanEndStep
=
true
;
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitScanCode
());
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
7000
));
...
...
@@ -646,7 +952,7 @@ namespace OnlineStore.DeviceLibrary
//TODO 此处需要等待空托盘
if
(
ShelfNoTray
.
Equals
(
false
))
{
InOutStoreLog
(
"料盘移栽
"
+
MoveInfo
.
SLog
+
"
: ,预扫码"
);
InOutStoreLog
(
"料盘移栽
: ,预扫码"
);
//还有料盘,直接扫码
YuCodeList
=
new
List
<
string
>();
List
<
string
>
bijiaoList
=
new
List
<
string
>(
LastCodeList
);
...
...
@@ -715,15 +1021,17 @@ namespace OnlineStore.DeviceLibrary
LI_31_BatchAxisToP1
();
}
}
private
void
LI_31_BatchAxisToP1
()
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
LI_31_BatchAxisToP1
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
3000
));
InOutStoreLog
(
"料盘移栽
"
+
MoveInfo
.
SLog
+
"
:未检测到料盘,提升伺服到P1点 "
);
InOutStoreLog
(
"料盘移栽
:未检测到料盘,提升伺服到P1点 "
);
UpdateShelfNum
(
CurrShelfNum
,
0
);
T1_BatchAxis
.
SuddenStop
();
T1_BatchAxis
.
AbsMove
(
MoveInfo
,
Config
.
BatchAxis_P1
,
Config
.
BatchAxis_P2Speed
);
}
private
void
BatchAxisToP2
(
bool
isFirstMove
=
true
)
{
int
targetP2
=
Config
.
BatchAxis_P2
;
...
...
@@ -800,6 +1108,7 @@ namespace OnlineStore.DeviceLibrary
LogUtil
.
info
(
msg
);
return
LastHeight
;
}
public
int
GetWidth
()
{
return
7
;
...
...
source/DeviceLibrary/duoStore/EquipBase.cs
查看文件 @
c1af307
...
...
@@ -297,5 +297,28 @@ namespace OnlineStore.DeviceLibrary
}
#
endregion
public
string
GetMoveStr
()
{
string
msg
=
""
;
msg
+=
"状态: "
+
runStatus
+
" "
+
storeStatus
+
"\n"
;
// msg += "lineS: " + storeStatus + "\n";
msg
+=
"报警: "
+
alarmType
+
"\n"
;
msg
+=
MoveInfo
.
MoveType
+
" "
+
MoveInfo
.
SLog
+
"\n"
;
return
msg
;
}
protected
void
ClearTimeoutAlarm
(
string
msg
)
{
if
(
isInSuddenDown
||
isNoAirCheck
)
{
return
;
}
if
(
WarnMsg
.
Contains
(
msg
)
&&
alarmType
.
Equals
(
AlarmType
.
IoSingleTimeOut
))
{
LogUtil
.
info
(
Name
+
"清理信号超时报警【"
+
WarnMsg
+
"】 "
);
alarmType
=
AlarmType
.
None
;
SetWarnMsg
(
""
);
}
}
}
}
source/DeviceLibrary/duoStore/StoreManager.cs
查看文件 @
c1af307
...
...
@@ -408,10 +408,10 @@ namespace OnlineStore.DeviceLibrary
LogUtil
.
info
(
deviceName
+
"收到入库命令: "
+
result
.
Param
.
ToStr
()
+
" "
);
if
(!
box
.
StartInStoreMove
(
result
.
Param
))
{
if
(
box
.
waitInStore
List
==
null
)
if
(
box
.
waitInStore
Param
==
null
)
{
result
.
Msg
=
deviceName
+
(
"收到入库命令:"
+
"启动入库失败,缓存到waitInStoreList等待稍后入库: "
+
result
.
Param
.
ToStr
()
+
" "
);
box
.
waitInStore
List
=
result
.
Param
;
box
.
waitInStore
Param
=
result
.
Param
;
}
}
}
...
...
source/DeviceLibrary/store/InOutParam.cs
查看文件 @
c1af307
...
...
@@ -12,6 +12,18 @@ namespace OnlineStore.DeviceLibrary
{
public
class
InOutParam
{
/// <summary>
/// 创建新出入库信息
/// </summary>
/// <param name="type">出入库类型</param>
/// <param name="wareNo">二维码内容</param>
/// <param name="posId">库位号</param>
/// <param name="platew">宽度</param>
/// <param name="plateh">高度</param>
/// <param name="targetP">出入库目标位置, 0=出库表示批量出料,入库表示目标库位 。 1=紧急出料到NG口,入库NG送到NG口</param>
/// <param name="shefNum">料架编号</param>
/// <param name="IsNg">是否是入库NG料</param>
/// <param name="ngMsg">NG消息</param>
public
InOutParam
(
MoveType
type
,
string
wareNo
=
""
,
string
posId
=
""
,
int
platew
=
0
,
int
plateh
=
0
,
int
targetP
=
0
,
int
shefNum
=
0
,
bool
IsNg
=
false
,
string
ngMsg
=
""
)
{
WareCode
=
wareNo
;
...
...
@@ -121,12 +133,19 @@ namespace OnlineStore.DeviceLibrary
else
{
if
(
moveType
.
Equals
(
MoveType
.
InStore
))
{
{
return
" 入库 ["
+
PosID
+
"] ["
+
WareCode
+
"], ["
+
PlateW
+
"x"
+
PlateH
+
"] "
;
}
else
{
return
" 出库 ["
+
PosID
+
"] ["
+
WareCode
+
"], ["
+
PlateW
+
"x"
+
PlateH
+
"] "
;
if
(
TargetPosition
.
Equals
(
1
))
{
return
" 批量出库 ["
+
PosID
+
"] ["
+
WareCode
+
"], ["
+
PlateW
+
"x"
+
PlateH
+
"] "
;
}
else
{
return
" 单盘出库 ["
+
PosID
+
"] ["
+
WareCode
+
"], ["
+
PlateW
+
"x"
+
PlateH
+
"] "
;
}
}
}
}
...
...
source/DeviceLibrary/store/StoreStep.cs
查看文件 @
c1af307
...
...
@@ -257,12 +257,15 @@ namespace OnlineStore.DeviceLibrary
/// 料仓出库: 进出轴到P1
/// </summary>
SO_09_InoutBack
,
/// <summary>
/// 料仓出库:升降轴,旋转轴到待机点P1
/// </summary>
SO_10_GoBack
,
/// <summary>
/// 等待提升机构拿走料盘
/// </summary>
SO_11_WaitTrayGo
,
/// <summary>
...
...
@@ -325,11 +328,12 @@ namespace OnlineStore.DeviceLibrary
#
region
入料装置入料
处理,
2001
开始
#
region
料架入库
处理,
2001
开始
/// <summary>
///入料检测: 提升轴先返回P1
/// </summary>
LI_01_BatchAxisToP1
=
2001
,
/// <summary>
/// 入料检测:取料提升机构后退端
...
...
@@ -347,23 +351,18 @@ namespace OnlineStore.DeviceLibrary
/// 入料检测:流水线上料区检测到料架,流水线再正传五秒
/// </summary>
LI_05_WaitTime
,
/// <summary>
///入料检测: 顶升气缸上升
/// </summary>
LI_06_TopUp
,
/// <summary>
/// 入料检测:取料提升机构前进
/// </summary>
LI_07_HoisterForward
,
/// <summary>
/// 入料检测:上料轴开始慢速上升到P2点,等待检测到料盘
/// </summary>
LI_08_AxisUpToP2
,
/// <summary>
/// 入料检测:扫码
/// </summary>
...
...
@@ -373,12 +372,10 @@ namespace OnlineStore.DeviceLibrary
/// 入料检测:有料盘:升降轴到料串高点P2,旋转轴到料串位置P4
/// </summary>
LI_11_AxisToTray
,
/// <summary>
/// 取料:升降轴到料串低点P1
/// </summary>
LI_12_UpdownAxisToP3
,
/// <summary>
/// 取料:夹爪气缸夹紧
/// </summary>
...
...
@@ -452,11 +449,11 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 送出料架,上料阻挡下降1秒,流水线开始转动
/// </summary>
LI_34_WorkStopDown
=
11034
,
LI_34_WorkStopDown
,
/// <summary>
/// 送出料架,等待上料无料架
/// </summary>
LI_35_WaitShelfGo
=
11035
,
LI_35_WaitShelfGo
,
/// <summary>
///送出料架, 流水线再转动3秒,
/// </summary>
...
...
@@ -470,6 +467,127 @@ namespace OnlineStore.DeviceLibrary
#
region
料架出库处理,
3001
开始
/// <summary>
///料架出库: 提升轴先返回P1
/// </summary>
LO_01_BatchAxisToP1
=
3001
,
/// <summary>
/// 料架出库:取料提升机构后退端
/// </summary>
LO_02_HoisterBack
,
/// <summary>
/// 料架出库:定位气缸下降
/// </summary>
LO_03_LocationDown
,
/// <summary>
/// 料架出库,转动料架,等待条件到达停止
/// </summary>
LO_04_LineStart
,
/// <summary>
/// 料架出库:流水线上料区检测到料架,流水线再正传五秒
/// </summary>
LO_05_WaitTime
,
/// <summary>
///料架出库: 顶升气缸上升
/// </summary>
LO_06_TopUp
,
/// <summary>
/// 料架出库:取料提升机构前进
/// </summary>
LO_07_HoisterForward
,
/// <summary>
/// 料架出库:上料轴开始慢速上升到P2点,等待检测到料盘
/// </summary>
LO_08_AxisUpToP2
,
/// <summary>
/// 料架出库,料串已准备好,等待出库中
/// </summary>
LO_09_WaitOut
,
/// <summary>
/// 取放料:批量轴下降指定的高度
/// </summary>
LO_11_BatchAxisDown
,
/// <summary>
/// 取放料:旋转轴到料仓门口,升降轴到入料低点
/// </summary>
LO_12_ToBoxDoor
,
/// <summary>
/// 取放料:升降轴下降到料门口低点
/// </summary>
LO_13_UpdownDown
,
/// <summary>
/// 取放料:夹爪气缸夹紧
/// </summary>
LO_14_CylinderTighten
,
/// <summary>
/// 取放料:升降轴上升到料门口高点
/// </summary>
LO_15_UpdownUp
,
/// <summary>
/// 取放料:旋转轴到料仓位置P1
/// </summary>
LO_16_MiddleToP1
,
/// <summary>
/// 取放料:升降轴到料串高点P2
/// </summary>
LO_17_UpdownToP2
,
/// <summary>
/// 取放料:升降轴到料串放料低点
/// </summary>
LO_18_UpdownDown
,
/// <summary>
/// 料盘移栽: 夹爪气缸放松
/// </summary>
LO_19_CylinderRelax
,
/// <summary>
/// 料盘移栽: 升降轴到料串高点
/// </summary>
LO_20_UpdownUp
,
/// <summary>
/// 料盘移栽:判断是否送出料架
/// </summary>
LO_21_NeedSendShelf
,
/// <summary>
/// 送出料架,未检测到料盘,提升伺服到P1点
/// </summary>
LO_31_BatchAxisToP1
=
3031
,
/// <summary>
/// 送出料架,升降盘定位气缸后退
/// </summary>
LO_32_HoisterBack
,
/// <summary>
/// 送出料架,顶升气缸下降
/// </summary>
LO_33_TopCylinderDown
,
/// <summary>
/// 送出料架,上料阻挡下降1秒,流水线开始转动
/// </summary>
LO_34_WorkStopDown
,
/// <summary>
/// 送出料架,等待上料无料架
/// </summary>
LO_35_WaitShelfGo
,
/// <summary>
///送出料架, 流水线再转动3秒,
/// </summary>
LO_36_LineRun
,
/// <summary>
///送出料架, 流水线停止转动,
/// </summary>
LO_37_LineStop
,
#
endregion
}
public
enum
AlarmType
...
...
source/DeviceLibrary/store/model/StoreMoveInfo.cs
查看文件 @
c1af307
...
...
@@ -17,7 +17,7 @@ namespace OnlineStore.DeviceLibrary
{
moveType
=
MoveType
.
None
;
MoveParam
=
new
InOutParam
();
MoveParam
=
new
InOutParam
(
MoveType
.
None
);
this
.
storeId
=
storeId
;
this
.
moveStep
=
StoreMoveStep
.
Wait
;
IsInWait
=
false
;
...
...
@@ -85,7 +85,7 @@ namespace OnlineStore.DeviceLibrary
this
.
moveType
=
type
;
if
(
param
==
null
)
{
param
=
new
InOutParam
();
param
=
new
InOutParam
(
type
);
}
this
.
MoveParam
=
param
;
LastSetpTime
=
DateTime
.
Now
;
...
...
source/LoadCVSLibrary/storeConfig/config/Store_Config.cs
查看文件 @
c1af307
...
...
@@ -222,32 +222,32 @@ namespace OnlineStore.LoadCSVLibrary
[
ConfigProAttribute
(
"UpdownAxis_P6"
)]
public
int
UpdownAxis_P6
{
get
;
set
;
}
/// <summary>
/// PRO,0,T2_升降轴P1速度,UpdownAxis_P1Speed,500
/// PRO,0,T2_升降轴P1速度
/慢速度
,UpdownAxis_P1Speed,500
/// </summary>
[
ConfigProAttribute
(
"UpdownAxis_P1Speed"
)]
public
int
UpdownAxis_P1Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,T2_升降轴P2速度,UpdownAxis_P2Speed,501
/// PRO,0,T2_升降轴P2速度
/快速度
,UpdownAxis_P2Speed,501
/// </summary>
[
ConfigProAttribute
(
"UpdownAxis_P2Speed"
)]
public
int
UpdownAxis_P2Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,T2_升降轴P3速度,UpdownAxis_P3Speed,502
/// PRO,0,T2_升降轴P3速度
/慢速度
,UpdownAxis_P3Speed,502
/// </summary>
[
ConfigProAttribute
(
"UpdownAxis_P3Speed"
)]
public
int
UpdownAxis_P3Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,T2_升降轴P4速度,UpdownAxis_P4Speed,503
/// PRO,0,T2_升降轴P4速度
/快速度
,UpdownAxis_P4Speed,503
/// </summary>
[
ConfigProAttribute
(
"UpdownAxis_P4Speed"
)]
public
int
UpdownAxis_P4Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,T2_升降轴P5速度,UpdownAxis_P5Speed,504
/// PRO,0,T2_升降轴P5速度
/慢速度
,UpdownAxis_P5Speed,504
/// </summary>
[
ConfigProAttribute
(
"UpdownAxis_P5Speed"
)]
public
int
UpdownAxis_P5Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,T2_升降轴P6速度,UpdownAxis_P6Speed,505
/// PRO,0,T2_升降轴P6速度
/快速度
,UpdownAxis_P6Speed,505
/// </summary>
[
ConfigProAttribute
(
"UpdownAxis_P6Speed"
)]
public
int
UpdownAxis_P6Speed
{
get
;
set
;
}
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论