Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
李娜
/
RC1271-DUOStore
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 140cc20a
由
LN
编写于
2020-07-10 11:32:58 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
1
1 个父辈
0968b141
隐藏空白字符变更
内嵌
并排
正在显示
12 个修改的文件
包含
411 行增加
和
468 行删除
source/DUOStore/FrmBox.cs
source/DUOStore/FrmStore.cs
source/DeviceLibrary/StoreConfig/linePositions_2.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/StoreManager.cs
source/DeviceLibrary/store/KTK_Store.cs
source/DeviceLibrary/store/LineMoveP.cs
source/DeviceLibrary/store/StoreStep.cs
source/DeviceLibrary/store/model/StoreMoveInfo.cs
source/DUOStore/FrmBox.cs
查看文件 @
140cc20
...
...
@@ -255,19 +255,7 @@ namespace OnlineStore.DUOStore
ktk
.
UpDown_P3
=
FormUtil
.
GetIntValue
(
txtUpDownP3
);
ktk
.
UpDown_P4
=
FormUtil
.
GetIntValue
(
txtUpDownP4
);
ktk
.
UpDown_P5
=
FormUtil
.
GetIntValue
(
txtUpDownP5
);
ktk
.
UpDown_P6
=
FormUtil
.
GetIntValue
(
txtUpDownP6
);
//ktk.UpDown_P7 = FormUtil.GetIntValue(txtUpDownP7);
//ktk.UpDown_P8 = FormUtil.GetIntValue(txtUpDownP8);
//ktk.InOut_P101 = FormUtil.GetIntValue(txtInoutP101);
//ktk.UpDown_LP101 = FormUtil.GetIntValue(txtUpdownP101);
//ktk.UpDown_HP102 = FormUtil.GetIntValue(txtUpdownP102);
//ktk.Middle_P101 = FormUtil.GetIntValue(txtMP101);
ktk
.
InOut_P11
=
FormUtil
.
GetIntValue
(
txtInoutP11
);
ktk
.
UpDown_P11
=
FormUtil
.
GetIntValue
(
txtUpdownP11
);
ktk
.
UpDown_P12
=
FormUtil
.
GetIntValue
(
txtUpdownP12
);
ktk
.
Middle_P11
=
FormUtil
.
GetIntValue
(
txtMiddleP11
);
ktk
.
UpDown_P6
=
FormUtil
.
GetIntValue
(
txtUpDownP6
);
return
ktk
;
}
...
...
@@ -307,9 +295,9 @@ namespace OnlineStore.DUOStore
if
(
acPosition
!=
null
)
{
acPosition
.
MiddleAxis_P2
=
FormUtil
.
GetIntValue
(
txtMiddleP2
);
acPosition
.
InoutAxis_P3
=
FormUtil
.
GetIntValue
(
txtInOutP3
);
acPosition
.
UpdownAxis_IH_P3
=
FormUtil
.
GetIntValue
(
txtUpDownP3
);
acPosition
.
UpdownAxis_IL_P4
=
FormUtil
.
GetIntValue
(
txtUpDownP4
);
acPosition
.
InoutAxis_P3
=
FormUtil
.
GetIntValue
(
txtInOutP3
);
acPosition
.
UpdownAxis_OH_P5
=
FormUtil
.
GetIntValue
(
txtUpDownP5
);
acPosition
.
UpdownAxis_OL_P6
=
FormUtil
.
GetIntValue
(
txtUpDownP6
);
}
...
...
source/DUOStore/FrmStore.cs
查看文件 @
140cc20
...
...
@@ -96,6 +96,7 @@ namespace OnlineStore.DUOStore
/// </summary>
private
void
HideForm
()
{
DebugOpen
(
false
);
this
.
Opacity
=
0
;
this
.
ShowInTaskbar
=
false
;
this
.
notifyIcon1
.
Visible
=
true
;
...
...
@@ -214,6 +215,7 @@ namespace OnlineStore.DUOStore
private
void
ShowStatus
()
{
formLineStatus
(
true
);
DebugOpen
(
false
);
}
private
void
formLineStatus
(
bool
isStart
)
...
...
source/DeviceLibrary/StoreConfig/linePositions_2.csv
查看文件 @
140cc20
位置,优先级,高度,宽度,料仓ID,旋转轴库位点P2,升降轴库位出料前点P5,升降轴库位出料缓冲点P6,升降轴库位入料前点P3,升降轴库位入料缓冲点P4,进出轴库位点取料点P3
2#AC2_1_1_4,259,32,15,
1
,306200,1290614,1299614,1299614,1290614,1408002#AC2
2#AC2_1_1_5,258,32,15,
1
,306200,1334970,1343970,1343970,1334970,140800
2#AC2_1_1_6,257,32,15,
1
,306200,1381622,1392122,1392122,1381622,140800
2#AC2_1_1_7,256,32,15,
1
,306200,1424390,1433390,1433390,1424390,140800
2#AC2_1_1_8,255,32,15,
1
,306200,1471088,1481488,1481488,1471088,140800
2#AC2_1_1_9,254,32,15,
1
,306200,1514627,1525627,1525627,1514627,140800
2#AC2_1_1_10,253,32,15,
1
,306200,1561503,1570503,1570503,1561503,140800
2#AC2_1_1_11,252,32,15,
1
,306200,1603404,1612404,1612404,1603404,140800
2#AC2_1_1_12,251,32,15,
1
,306200,1650000,1660593,1660593,1650000,140800
2#AC2_1_1_13,250,32,15,
1
,306200,1693078,1702078,1702078,1693078,140800
2#AC2_1_1_14,249,32,15,
1
,306200,1738576,1747576,1747576,1738576,140800
2#AC2_1_1_15,248,32,15,
1
,306200,1785295,1794295,1794295,1785295,140800
2#AC2_1_1_16,247,12,15,
1
,436077,9671,20171,20171,9671,140800
2#AC2_1_1_17,246,12,15,
1
,436077,39893,50393,50393,39893,140800
2#AC2_1_1_18,245,12,15,
1
,436077,70661,81161,81161,70661,140800
2#AC2_1_1_19,244,12,15,
1
,436077,98713,109213,109213,98713,140800
2#AC2_1_1_20,243,12,15,
1
,436077,128728,139228,139228,128728,140800
2#AC2_1_1_21,242,12,15,
1
,436077,159195,169695,169695,159195,140800
2#AC2_1_2_4,241,12,15,
1
,436077,189134,199634,199634,189134,140800
2#AC2_1_2_5,240,12,15,
1
,436077,219845,230345,230345,219845,140800
2#AC2_1_2_6,239,12,15,
1
,436077,252000,262500,262500,252000,140800
2#AC2_1_2_7,238,12,15,
1
,436077,280421,290921,290921,280421,140800
2#AC2_1_2_8,237,12,15,
1
,436077,312224,322724,322724,312224,140800
2#AC2_1_2_9,236,12,15,
1
,436077,342256,352756,352756,342256,140800
2#AC2_1_2_10,235,12,15,
1
,436077,369382,379882,379882,369382,140800
2#AC2_1_2_11,234,12,15,
1
,436077,399751,410251,410251,399751,140800
2#AC2_1_2_12,233,12,15,
1
,436200,430923,441423,441423,430923,140800
2#AC2_1_2_13,232,12,15,
1
,436157,459859,470359,470359,459859,140800
2#AC2_1_2_14,231,12,15,
1
,436214,489685,500185,500185,489685,140800
2#AC2_1_2_15,230,12,15,
1
,436271,522581,533081,533081,522581,140800
2#AC2_1_2_16,229,12,15,
1
,435628,550105,560605,560605,550105,140800
2#AC2_1_2_17,228,12,15,
1
,435585,583474,593974,593974,583474,140800
2#AC2_1_2_18,227,12,15,
1
,435542,612943,623443,623443,612943,140800
2#AC2_1_2_19,226,12,15,
1
,435499,642389,652889,652889,642389,140800
2#AC2_1_2_20,225,12,15,
1
,435456,670221,680721,680721,670221,140800
2#AC2_1_2_21,224,12,15,
1
,435413,700236,713736,713736,700236,140800
2#AC2_1_1_4,259,32,15,
2
,306200,1290614,1299614,1299614,1290614,1408002#AC2
2#AC2_1_1_5,258,32,15,
2
,306200,1334970,1343970,1343970,1334970,140800
2#AC2_1_1_6,257,32,15,
2
,306200,1381622,1392122,1392122,1381622,140800
2#AC2_1_1_7,256,32,15,
2
,306200,1424390,1433390,1433390,1424390,140800
2#AC2_1_1_8,255,32,15,
2
,306200,1471088,1481488,1481488,1471088,140800
2#AC2_1_1_9,254,32,15,
2
,306200,1514627,1525627,1525627,1514627,140800
2#AC2_1_1_10,253,32,15,
2
,306200,1561503,1570503,1570503,1561503,140800
2#AC2_1_1_11,252,32,15,
2
,306200,1603404,1612404,1612404,1603404,140800
2#AC2_1_1_12,251,32,15,
2
,306200,1650000,1660593,1660593,1650000,140800
2#AC2_1_1_13,250,32,15,
2
,306200,1693078,1702078,1702078,1693078,140800
2#AC2_1_1_14,249,32,15,
2
,306200,1738576,1747576,1747576,1738576,140800
2#AC2_1_1_15,248,32,15,
2
,306200,1785295,1794295,1794295,1785295,140800
2#AC2_1_1_16,247,12,15,
2
,436077,9671,20171,20171,9671,140800
2#AC2_1_1_17,246,12,15,
2
,436077,39893,50393,50393,39893,140800
2#AC2_1_1_18,245,12,15,
2
,436077,70661,81161,81161,70661,140800
2#AC2_1_1_19,244,12,15,
2
,436077,98713,109213,109213,98713,140800
2#AC2_1_1_20,243,12,15,
2
,436077,128728,139228,139228,128728,140800
2#AC2_1_1_21,242,12,15,
2
,436077,159195,169695,169695,159195,140800
2#AC2_1_2_4,241,12,15,
2
,436077,189134,199634,199634,189134,140800
2#AC2_1_2_5,240,12,15,
2
,436077,219845,230345,230345,219845,140800
2#AC2_1_2_6,239,12,15,
2
,436077,252000,262500,262500,252000,140800
2#AC2_1_2_7,238,12,15,
2
,436077,280421,290921,290921,280421,140800
2#AC2_1_2_8,237,12,15,
2
,436077,312224,322724,322724,312224,140800
2#AC2_1_2_9,236,12,15,
2
,436077,342256,352756,352756,342256,140800
2#AC2_1_2_10,235,12,15,
2
,436077,369382,379882,379882,369382,140800
2#AC2_1_2_11,234,12,15,
2
,436077,399751,410251,410251,399751,140800
2#AC2_1_2_12,233,12,15,
2
,436200,430923,441423,441423,430923,140800
2#AC2_1_2_13,232,12,15,
2
,436157,459859,470359,470359,459859,140800
2#AC2_1_2_14,231,12,15,
2
,436214,489685,500185,500185,489685,140800
2#AC2_1_2_15,230,12,15,
2
,436271,522581,533081,533081,522581,140800
2#AC2_1_2_16,229,12,15,
2
,435628,550105,560605,560605,550105,140800
2#AC2_1_2_17,228,12,15,
2
,435585,583474,593974,593974,583474,140800
2#AC2_1_2_18,227,12,15,
2
,435542,612943,623443,623443,612943,140800
2#AC2_1_2_19,226,12,15,
2
,435499,642389,652889,652889,642389,140800
2#AC2_1_2_20,225,12,15,
2
,435456,670221,680721,680721,670221,140800
2#AC2_1_2_21,224,12,15,
2
,435413,700236,713736,713736,700236,140800
source/DeviceLibrary/duoStore/BoxBean.cs
查看文件 @
140cc20
...
...
@@ -58,6 +58,7 @@ namespace OnlineStore.DeviceLibrary
//添加调试
IsDebug
=
config
.
IsInDebug
.
Equals
(
1
);
Name
=
(
" BOX_"
+
config
.
Id
+
" "
).
ToUpper
();
MoveInfo
=
new
StoreMoveInfo
(
ID
,
Name
);
this
.
ID
=
config
.
Id
;
;
this
.
Config
=
config
;
//温湿度
...
...
source/DeviceLibrary/duoStore/BoxBean_Partial.cs
查看文件 @
140cc20
...
...
@@ -16,6 +16,7 @@ namespace OnlineStore.DeviceLibrary
{
public
ConcurrentQueue
<
InOutParam
>
waitOutStoreList
=
new
ConcurrentQueue
<
InOutParam
>();
#
region
出入库结果验证
private
void
CheckWait
()
{
...
...
@@ -148,9 +149,7 @@ namespace OnlineStore.DeviceLibrary
InoutAxis
.
AbsMove
(
MoveInfo
,
InOut_P1
,
Config
.
InOutAxis_P1_Speed
);
}
}
#
endregion
#
endregion
#
region
入库
...
...
@@ -173,18 +172,18 @@ namespace OnlineStore.DeviceLibrary
LogUtil
.
error
(
Name
+
" 启动入库【"
+
param
.
ToStr
()
+
"】出错,找不到库位信息"
);
return
;
}
LogInfo
(
" 启动入库【"
+
param
.
ToStr
()
+
"】
,压紧点P2【"
+
param
.
MoveP
.
ComPress_P2
+
"】压紧前点P3【"
+
param
.
MoveP
.
ComPress_P3
+
"】
"
);
LogInfo
(
" 启动入库【"
+
param
.
ToStr
()
+
"】
"
);
storeRunStatus
=
StoreRunStatus
.
Busy
;
storeStatus
=
StoreStatus
.
InStoreExecute
;
MoveInfo
.
NewMove
(
MoveType
.
InStore
,
param
);
//新的料架库位
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
BI_1
1_InoutToP1
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_0
1_InoutToP1
);
MoveInfo
.
SingleInstore
=
true
;
InOutStoreLog
(
"料架取料:"
+
MoveInfo
.
SLog
+
"
叉子后退到待机点P1, 重置盘信息
"
);
InOutStoreLog
(
"料架取料:"
+
MoveInfo
.
SLog
+
"
进出轴返回P1
"
);
InoutAxis
.
AbsMove
(
MoveInfo
,
Config
.
InOutAxis_P1
,
Config
.
InOutAxis_P1_Speed
);
}
protected
override
void
InStoreProcess
()
{
LineMoveP
moveP
=
MoveInfo
.
MoveParam
.
MoveP
;
...
...
@@ -196,20 +195,101 @@ namespace OnlineStore.DeviceLibrary
{
return
;
}
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SI_01_InoutToP1
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_02_AxisBack
);
InOutStoreLog
(
"入库: 升降轴,旋转轴到P1,压紧轴到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
);
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SI_02_AxisBack
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_03_InoutToP2
);
InOutStoreLog
(
"入库:进出轴到P2( 进料口取料点) "
);
InoutAxis
.
AbsMove
(
MoveInfo
,
moveP
.
InOut_P2
,
Config
.
InOutAxis_P2_Speed
);
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SI_03_InoutToP2
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_04_GetWare
);
InOutStoreLog
(
"入库:升降轴到P7( 进料口取料缓冲点)压紧轴到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_GetWare
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_05_InoutToP1
);
InOutStoreLog
(
"入库:进出轴返回P1 "
);
InOutBackToP1
(
moveP
.
InOut_P1
);
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SI_05_InoutToP1
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_06_ToBag
);
InOutStoreLog
(
"入库:移动到库位点,旋转轴到P2( 库位点),升降轴到P3(库位入库前点) "
);
MiddleAxis
.
AbsMove
(
MoveInfo
,
moveP
.
Middle_P2
,
Config
.
MiddleAxis_P2_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
moveP
.
UpDown_P3
,
Config
.
UpDownAxis_P3_Speed
);
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SI_06_ToBag
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_07_InoutToP3
);
InOutStoreLog
(
"入库:进出轴到P3(库位取放料点) "
);
InoutAxis
.
AbsMove
(
MoveInfo
,
moveP
.
InOut_P3
,
Config
.
InOutAxis_P3_Speed
);
//关闭舱门
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SI_07_InoutToP3
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_08_PutWare
);
InOutStoreLog
(
"入库:升降轴到P4( 库位入料缓冲点)压紧轴到P3( 压紧前点) "
);
// 5= 入仓位完成(料仓Box把料盘放入对应的库位中,装置还未恢复原始状态)
string
posId
=
MoveInfo
.
MoveParam
.
PosID
;
lastPosId
=
posId
;
lastPosIdStatus
=
StoreStatus
.
InStoreEnd
;
storeStatus
=
StoreStatus
.
InStoreEnd
;
//手动发给服务器状态,防止没有手动
//SendLineStatus(StoreID, posId, StoreStatus.InStoreEnd);
InoutAxis
.
AbsMove
(
MoveInfo
,
moveP
.
InOut_P3
,
Config
.
InOutAxis_P3_Speed
);
ComAxis
.
AbsMove
(
MoveInfo
,
moveP
.
ComPress_P3
,
Config
.
CompAxis_P3_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
moveP
.
UpDown_P4
,
Config
.
UpDownAxis_P4_Speed
);
}
else
if
(
MoveInfo
.
IsStep
(
StoreMoveStep
.
SI_08_PutWare
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_09_InoutToP1
);
InOutStoreLog
(
"入库:进出轴返回P1 "
);
InOutBackToP1
(
moveP
.
InOut_P1
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_09_InoutToP1
)
{
InOutStoreLog
(
"入库:旋转轴,升降轴,压紧轴到待机点P1"
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_10_GoBack
);
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
.
IsStep
(
StoreMoveStep
.
SI_10_GoBack
))
{
TimeSpan
span
=
DateTime
.
Now
-
startInStoreTime
;
string
posId
=
MoveInfo
.
MoveParam
!=
null
?
MoveInfo
.
MoveParam
.
PosID
:
""
;
LogUtil
.
info
(
Name
+
" 【"
+
posId
+
"】入库结束,耗时【"
+
FormUtil
.
GetSpanStr
(
span
)
+
"】"
);
MoveInfo
.
EndMove
();
storeRunStatus
=
StoreRunStatus
.
Runing
;
//设备连接,入库后,BOX恢复原始状态
storeStatus
=
StoreStatus
.
StoreOnline
;
AutoInout
.
InOutEndProcess
(
this
,
MoveType
.
InStore
);
}
else
{
Log
Info
(
" 入库,MoveInfo.MoveStep="
+
MoveInfo
.
MoveStep
+
",没有对应的处理!"
);
Log
Util
.
error
(
Name
+
" 入库,MoveInfo.MoveStep="
+
MoveInfo
.
MoveStep
+
",没有对应的处理!"
);
}
}
#
endregion
#
region
出库
private
DateTime
startOutStoreTime
=
DateTime
.
Now
;
public
bool
IsIgnoreComSig
=
false
;
//忽略料叉压紧信号
private
DateTime
startOutStoreTime
=
DateTime
.
Now
;
private
void
StartExecuctOut
(
InOutParam
param
)
{
...
...
@@ -220,6 +300,7 @@ namespace OnlineStore.DeviceLibrary
waitOutStoreList
.
Enqueue
(
param
);
}
}
public
override
bool
StartOutStoreMove
(
InOutParam
param
)
{
startOutStoreTime
=
DateTime
.
Now
;
...
...
@@ -249,15 +330,7 @@ namespace OnlineStore.DeviceLibrary
InOutBackToP1
(
MoveInfo
.
MoveParam
.
MoveP
.
InOut_P1
);
return
true
;
}
private
void
SO_03_ToBagPosition
()
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_03_ToPosition
);
InOutStoreLog
(
"出库 "
+
MoveInfo
.
SLog
+
":走到库位,压紧轴至P3(压紧前点) ,旋转轴至P2(库位点),升降轴至P5(库位出库前点) ,顶升上升"
);
ComAxis
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
ComPress_P3
,
Config
.
CompAxis_P3_Speed
);
MiddleAxis
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
Middle_P2
,
Config
.
MiddleAxis_P2_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
UpDown_P5
,
Config
.
UpDownAxis_P5_Speed
);
CylinderMove
(
MoveInfo
,
IO_Type
.
TopCylinder_Down
,
IO_Type
.
TopCylinder_Up
);
}
protected
override
void
OutStoreProcess
()
{
LineMoveP
moveP
=
MoveInfo
.
MoveParam
.
MoveP
;
...
...
@@ -268,21 +341,95 @@ namespace OnlineStore.DeviceLibrary
if
(
MoveInfo
.
IsInWait
)
{
return
;
}
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_01_InoutBack
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_02_ToPosition
);
InOutStoreLog
(
"出库:压紧轴到压紧前点P3 ,旋转轴到库位点P2,轴2(上下) 至P5(库位出库前点) "
);
ComAxis
.
AbsMove
(
MoveInfo
,
moveP
.
ComPress_P3
,
Config
.
CompAxis_P3_Speed
);
MiddleAxis
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
Middle_P2
,
Config
.
MiddleAxis_P2_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
UpDown_P5
,
Config
.
UpDownAxis_P5_Speed
);
}
else
if
(
MoveInfo
.
MoveStep
<=
StoreMoveStep
.
SO_01_InoutBack
)
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_02_ToPosition
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_03_InoutToP3
);
InOutStoreLog
(
"出库: 进出轴至P3(库位取放料点) ["
+
moveP
.
InOut_P3
+
"] "
);
InoutAxis
.
AbsMove
(
MoveInfo
,
moveP
.
InOut_P3
,
Config
.
InOutAxis_P3_Speed
);
}
else
if
(
MoveInfo
.
MoveStep
>=
StoreMoveStep
.
BS_01_TopDown
)
{
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_03_InoutToP3
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_04_GetReel
);
InOutStoreLog
(
"出库:升降轴到P6,轴4( 压紧) 至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
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_05_InoutBack
);
InOutStoreLog
(
"出库:进出轴返回P1(待机点) "
);
InOutBackToP1
(
moveP
.
InOut_P1
);
//把库位的物品放到取到叉子上之后是出仓完成
string
posId
=
MoveInfo
.
MoveParam
.
PosID
;
lastPosId
=
posId
;
lastPosIdStatus
=
StoreStatus
.
OutStoreBoxEnd
;
storeStatus
=
StoreStatus
.
OutStoreBoxEnd
;
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_05_InoutBack
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_06_ToDoor
);
InOutStoreLog
(
"出库:旋转轴 至P2( 库位点)升降轴到P3(库位入库前点) "
);
MiddleAxis
.
AbsMove
(
MoveInfo
,
moveP
.
Middle_P2
,
Config
.
MiddleAxis_P2_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
moveP
.
UpDown_P3
,
Config
.
UpDownAxis_P3_Speed
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_06_ToDoor
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_07_InoutToP2
);
InOutStoreLog
(
"出库:进出轴到P2 "
);
InoutAxis
.
AbsMove
(
MoveInfo
,
moveP
.
InOut_P2
,
Config
.
InOutAxis_P2_Speed
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_07_InoutToP2
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_08_PutReel
);
InOutStoreLog
(
"出库:放下物品 升降轴至P1,压紧轴到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
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_09_InoutBack
);
InOutStoreLog
(
"出库:进出轴返回P1"
);
InOutBackToP1
(
moveP
.
InOut_P1
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_09_InoutBack
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_10_GoBack
);
InOutStoreLog
(
"出库:升降轴,旋转轴到待机点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
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_10_GoBack
)
{
TimeSpan
span
=
DateTime
.
Now
-
startOutStoreTime
;
string
posId
=
MoveInfo
.
MoveParam
.
PosID
;
storeStatus
=
StoreStatus
.
StoreOnline
;
LogUtil
.
info
(
Name
+
" 【"
+
posId
+
"】 整个出库流程结束,耗时【"
+
FormUtil
.
GetSpanStr
(
span
)
+
"】!"
);
MoveInfo
.
EndMove
();
storeRunStatus
=
StoreRunStatus
.
Runing
;
AutoInout
.
InOutEndProcess
(
this
,
MoveType
.
OutStore
);
}
else
{
LogUtil
.
error
(
Name
+
" 出库处理,
MoveInfo.MoveStep
="
+
MoveInfo
.
MoveStep
+
",没有对应的处理!"
);
LogUtil
.
error
(
Name
+
" 出库处理,
moveStatus
="
+
MoveInfo
.
MoveStep
+
",没有对应的处理!"
);
}
}
}
#
endregion
...
...
source/DeviceLibrary/duoStore/BoxBean_Shelf.cs
查看文件 @
140cc20
...
...
@@ -258,87 +258,87 @@ namespace OnlineStore.DeviceLibrary
/// <param name="message"></param>
private
bool
GetPosIdByCode
()
{
try
{
//
try
//
{
//string message = StoreManager.ProcessCode(LastWidth, LastHeight, LastScanCodes);
string
message
=
MoveInfo
.
shelfLockDatas
[
MoveInfo
.
currShelfIndex
].
barcode
;
if
(
message
.
Equals
(
""
)
||
string
.
IsNullOrEmpty
(
message
))
{
CodeMsg
=
"未扫到二维码"
;
LogInfo
(
"未扫到二维码"
);
return
false
;
}
if
(
storeRunStatus
.
Equals
(
StoreRunStatus
.
Wait
))
{
LogInfo
(
"二维码【 "
+
message
+
"】,设备未启动,不需要发送服务器"
);
return
false
;
}
// CodeMsg = "收到二维码【 " + message + "】,发送给服务器获取入库PosID";
LogUtil
.
info
(
Name
+
"二维码【 "
+
message
+
"】,发送给服务器获取入库PosID"
);
//发送扫码内容到服务器进行入库操作
Operation
operation
=
getLineBoxStatus
();
operation
.
op
=
1
;
// operation.data = new Dictionary<string, string>() { { "code", message }, { "boxId", 1.ToString() }, { ParamDefine.rfid, CurrShelfID }};
string
server
=
ConfigAppSettings
.
GetValue
(
Setting_Init
.
http_server
);
Operation
resultOperation
=
HttpHelper
.
Post
(
StoreManager
.
GetPostApi
(
server
),
operation
,
false
);
if
(
resultOperation
==
null
)
{
CodeMsg
=
"二维码【"
+
message
+
"】没有收到服务器反馈"
;
LogInfo
(
"二维码【 "
+
message
+
"】没有收到服务器反馈!"
);
return
false
;
}
else
if
(!
string
.
IsNullOrEmpty
(
resultOperation
.
msg
))
{
//如果有提示消息,直接显示提示
LogInfo
(
"二维码【 "
+
message
+
"】 :"
+
resultOperation
.
msg
);
return
false
;
}
if
(
resultOperation
.
op
.
Equals
(
1
))
{
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
];
int
storeId
=
InOutParam
.
GetPosStoreId
(
posId
);
//根据发送的posId获取位置列表
ACBoxPosition
position
=
CSVPositionReader
<
ACBoxPosition
>.
GetPositon
(
posId
);
if
(
position
==
null
)
{
//出入库没有找到服务器发送的库位,需要打印日志方便查询原因
WarnMsg
=
"入库未找到库位:二维码【"
+
message
+
"】库位【"
+
posId
+
"】 "
;
LogUtil
.
error
(
Name
+
"收到服务器入库命令:入库未找到库位:二维码【"
+
message
+
"】库位【"
+
posId
+
"】"
);
return
false
;
}
LogInfo
(
" 收到服务器入库命令:库位号【"
+
posId
+
"】二维码【"
+
message
+
"】设置入库参数 , 开始入库!"
);
int
p3
=
Config
.
CompAxis_P3
;
// MoveInfo.MoveParam.UpdatePosId(message, posId, plateW, plateH, ComTargetPosition, p3);
return
true
;
}
}
else
if
(
resultOperation
.
op
.
Equals
(
2
))
{
ReviceOutStoreProcess
(
resultOperation
);
}
else
if
(
resultOperation
.
op
.
Equals
(
5
))
{
humBean
.
ProcessHumidityCMD
(
resultOperation
);
}
else
{
LogUtil
.
error
(
"收到服务器命令:op="
+
resultOperation
.
op
+
",未找到对应处理"
);
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
Name
+
"GetPosIdByCode"
+
ex
.
StackTrace
);
}
//
//string message = StoreManager.ProcessCode(LastWidth, LastHeight, LastScanCodes);
//
string message = MoveInfo.shelfLockDatas[MoveInfo.currShelfIndex].barcode;
//
if (message.Equals("") || string.IsNullOrEmpty(message))
//
{
//
CodeMsg = "未扫到二维码";
//
LogInfo("未扫到二维码");
//
return false;
//
}
//
if (storeRunStatus.Equals(StoreRunStatus.Wait))
//
{
//
LogInfo("二维码【 " + message + "】,设备未启动,不需要发送服务器");
//
return false;
//
}
//
// CodeMsg = "收到二维码【 " + message + "】,发送给服务器获取入库PosID";
//
LogUtil.info(Name + "二维码【 " + message + "】,发送给服务器获取入库PosID");
//
//发送扫码内容到服务器进行入库操作
//
Operation operation = getLineBoxStatus();
//
operation.op = 1;
//
//
operation.data = new Dictionary<string, string>() { { "code", message }, { "boxId", 1.ToString() }, { ParamDefine.rfid, CurrShelfID }};
//
string server = ConfigAppSettings.GetValue(Setting_Init.http_server);
//
Operation resultOperation = HttpHelper.Post(StoreManager.GetPostApi(server), operation, false);
//
if (resultOperation == null)
//
{
//
CodeMsg = "二维码【" + message + "】没有收到服务器反馈";
//
LogInfo("二维码【 " + message + "】没有收到服务器反馈!");
//
return false;
//
}
//
else if (!string.IsNullOrEmpty(resultOperation.msg))
//
{
//
//如果有提示消息,直接显示提示
//
LogInfo("二维码【 " + message + "】 :" + resultOperation.msg);
//
return false;
//
}
//
if (resultOperation.op.Equals(1))
//
{
//
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];
//
int storeId = InOutParam.GetPosStoreId(posId);
//
//根据发送的posId获取位置列表
//
ACBoxPosition position = CSVPositionReader<ACBoxPosition>.GetPositon(posId);
//
if (position == null)
//
{ //出入库没有找到服务器发送的库位,需要打印日志方便查询原因
//
WarnMsg = "入库未找到库位:二维码【" + message + "】库位【" + posId + "】 ";
//
LogUtil.error(Name + "收到服务器入库命令:入库未找到库位:二维码【" + message + "】库位【" + posId + "】");
//
return false;
//
}
//
LogInfo(" 收到服务器入库命令:库位号【" + posId + "】二维码【" + message + "】设置入库参数 , 开始入库!");
//
int p3 = Config.CompAxis_P3;
//
// MoveInfo.MoveParam.UpdatePosId(message, posId, plateW, plateH, ComTargetPosition, p3);
//
return true;
//
}
//
}
//
else if (resultOperation.op.Equals(2))
//
{
//
ReviceOutStoreProcess(resultOperation);
//
}
//
else if (resultOperation.op.Equals(5))
//
{
//
humBean.ProcessHumidityCMD(resultOperation);
//
}
//
else
//
{
//
LogUtil.error("收到服务器命令:op=" + resultOperation.op + ",未找到对应处理");
//
}
//
}
//
catch (Exception ex)
//
{
//
LogUtil.error(Name + "GetPosIdByCode" + ex.StackTrace);
//
}
return
false
;
}
...
...
source/DeviceLibrary/duoStore/DUOStoreBean.cs
查看文件 @
140cc20
...
...
@@ -45,7 +45,7 @@ namespace OnlineStore.DeviceLibrary
this
.
Config
=
lineConfig
;
this
.
ID
=
lineConfig
.
Id
;
MoveInfo
=
new
StoreMoveInfo
(
ID
);
MoveInfo
=
new
StoreMoveInfo
(
ID
,
" DUO料仓 "
);
Name
=
(
" DUO料仓_"
+
Config
.
CID
+
" "
).
ToUpper
();
List
<
string
>
ioList
=
new
List
<
string
>();
AddDeviceName
(
ioList
,
Config
.
IOIPList
);
...
...
source/DeviceLibrary/duoStore/StoreManager.cs
查看文件 @
140cc20
...
...
@@ -211,14 +211,14 @@ namespace OnlineStore.DeviceLibrary
p
.
InOut_P2
=
box
.
Config
.
InOutAxis_P2
;
p
.
UpDown_P1
=
box
.
Config
.
UpDownAxis_P1
;
//
p.UpDown_P8 = box.Config.UpDownAxis_DoorIBPosition_P8;
// p.UpDown_P8 = box.Config.UpDownAxis_DoorIBPosition_P8;
p
.
UpDown_P2
=
box
.
Config
.
UpDownAxis_P2
;
//
p.UpDown_P7 = box.Config.UpDownAxis_DoorOBPosition_P7;
//
p.UpDown_P7 = box.Config.UpDownAxis_DoorOBPosition_P7;
p
.
InOut_P11
=
box
.
Config
.
InOutAxis_P11
;
p
.
Middle_P11
=
box
.
Config
.
MiddleAxis_P11
;
p
.
UpDown_P11
=
box
.
Config
.
UpDownAxis_P11
;
p
.
UpDown_P12
=
box
.
Config
.
UpDownAxis_P12
;
//
p.InOut_P11 = box.Config.InOutAxis_P11 ;
//
p.Middle_P11 = box.Config.MiddleAxis_P11;
//
p.UpDown_P11 = box.Config.UpDownAxis_P11;
//
p.UpDown_P12 = box.Config.UpDownAxis_P12;
p
.
ComPress_P2
=
box
.
Config
.
GetComP2
(
position
.
BagHigh
);
p
.
ComPress_P3
=
box
.
Config
.
CompAxis_P3
;
...
...
source/DeviceLibrary/store/KTK_Store.cs
查看文件 @
140cc20
...
...
@@ -231,7 +231,6 @@ namespace OnlineStore.DeviceLibrary
{
if
(!
isInit
)
{
MoveInfo
=
new
StoreMoveInfo
(
ID
);
mainTimer
=
new
System
.
Timers
.
Timer
();
mainTimer
.
Enabled
=
false
;
...
...
source/DeviceLibrary/store/LineMoveP.cs
查看文件 @
140cc20
...
...
@@ -16,115 +16,71 @@ namespace OnlineStore.DeviceLibrary
public
LineMoveP
()
{
}
public
LineMoveP
(
BOX_Config
Config
)
{
this
.
ComPress_P1
=
Config
.
CompAxis_P1
;
this
.
InOut_P1
=
Config
.
InOutAxis_P1
;
this
.
Middle_P1
=
Config
.
MiddleAxis_P1
;
this
.
UpDown_P1
=
Config
.
UpDownAxis_P1
;
this
.
UpDown_P2
=
Config
.
UpDownAxis_P2
;
this
.
UpDown_P12
=
Config
.
UpDownAxis_P12
;
this
.
UpDown_P11
=
Config
.
UpDownAxis_P11
;
this
.
Middle_P11
=
Config
.
MiddleAxis_P11
;
this
.
InOut_P11
=
Config
.
InOutAxis_P11
;
this
.
InOut_P2
=
Config
.
InOutAxis_P2
;
}
}
/// <summary>
/// 轴2( 升降轴)
扫码放料低点
P1
/// 轴2( 升降轴)
进料口取料点
P1
/// </summary>
public
int
UpDown_P1
=
0
;
public
int
UpDown_P1
{
get
;
set
;
}
/// <summary>
/// 轴2( 升降轴)
扫码放料高点
P2
/// 轴2( 升降轴)
进料口出料前点
P2
/// </summary>
public
int
UpDown_P2
=
0
;
public
int
UpDown_P2
{
get
;
set
;
}
/// <summary>
/// 轴2( 升降轴) 库位入料前点P3
/// </summary>
public
int
UpDown_P3
=
0
;
public
int
UpDown_P3
{
get
;
set
;
}
/// <summary>
/// 轴2( 升降轴) 库位入料缓冲点P4
/// </summary>
public
int
UpDown_P4
=
0
;
public
int
UpDown_P4
{
get
;
set
;
}
/// <summary>
/// 轴2( 升降轴) 库位出料前点P5
/// </summary>
public
int
UpDown_P5
=
0
;
public
int
UpDown_P5
{
get
;
set
;
}
/// <summary>
/// 轴2( 升降轴) 库位出料缓冲点P6
/// </summary>
public
int
UpDown_P6
=
0
;
public
int
UpDown_P6
{
get
;
set
;
}
/// <summary>
/// 轴2( 升降轴)
NG放料低点P11
/// 轴2( 升降轴)
进料口取料缓冲点P7
/// </summary>
public
int
UpDown_P
11
=
0
;
public
int
UpDown_P
7
{
get
;
set
;
}
/// <summary>
/// 轴2( 升降轴)
NG放料高点缓冲点P12
/// 轴2( 升降轴)
进料口出料缓冲点P8
/// </summary>
public
int
UpDown_P12
=
0
;
public
int
UpDown_P8
{
get
;
set
;
}
/// <summary>
/// 轴1旋转轴 待机原位点
/扫码点
P1
/// 轴1旋转轴 待机原位点 P1
/// </summary>
public
int
Middle_P1
=
0
;
public
int
Middle_P1
{
get
;
set
;
}
/// <summary>
/// 轴1旋转轴 库位点 P2
/// </summary>
public
int
Middle_P2
=
0
;
/// <summary>
/// 轴1旋转轴 NG放料点P11 P2
/// </summary>
public
int
Middle_P11
=
0
;
public
int
Middle_P2
{
get
;
set
;
}
/// <summary>
/// 轴3进出轴 待机原位点P1
/// </summary>
public
int
InOut_P1
=
0
;
public
int
InOut_P1
{
get
;
set
;
}
/// <summary>
/// 轴3进出轴
扫码放料点
/// 轴3进出轴
进料口取料点P2
/// </summary>
public
int
InOut_P2
=
0
;
public
int
InOut_P2
{
get
;
set
;
}
/// <summary>
/// 轴3进出轴 库位点取料点P3
/// </summary>
public
int
InOut_P3
=
0
;
/// <summary>
/// 轴3进出轴 NG口放料点
/// </summary>
public
int
InOut_P11
=
0
;
public
int
InOut_P3
{
get
;
set
;
}
/// <summary>
/// 轴4( 压紧轴)待机原位点P1
/// </summary>
public
int
ComPress_P1
=
0
;
public
int
ComPress_P1
{
get
;
set
;
}
/// <summary>
/// 轴4( 压紧轴)压紧点 P2
/// </summary>
public
int
ComPress_P2
=
0
;
public
int
ComPress_P2
{
get
;
set
;
}
/// <summary>
/// 轴4( 压紧轴) 压紧前点P3
/// </summary>
public
int
ComPress_P3
=
0
;
/// <summary>
/// 料架进出轴取料点
/// </summary>
public
int
InOut_P101
=
0
;
/// <summary>
/// 料架旋转轴位置
/// </summary>
public
int
Middle_P101
=
0
;
/// <summary>
/// 料架升降轴低点P101
/// </summary>
public
int
UpDown_LP101
=
0
;
/// <summary>
/// 料架升降轴高点P102
/// </summary>
public
int
UpDown_HP102
=
0
;
public
int
ComPress_P3
{
get
;
set
;
}
}
}
source/DeviceLibrary/store/StoreStep.cs
查看文件 @
140cc20
...
...
@@ -185,79 +185,6 @@ namespace OnlineStore.DeviceLibrary
#
endregion
#
region
出库步骤
2000
开始
/// <summary>
///料仓出库:叉子先运动到P1
/// </summary>
SO_01_InoutBack
=
2002
,
/// <summary>
///料仓出库,,顶升气缸下降,先检测料架
/// </summary>
SO_02_TopDown
=
2001
,
/// <summary>
/// 料仓出库,,所有轴运行到库位,压紧轴到压紧前点P3 ,旋转轴到库位点P2,轴2(上下) 至P5(库位出库前点)
/// </summary>
SO_03_ToPosition
=
2003
,
/// <summary>
/// 料仓出库,,叉子进入库位中, 进出轴到库位P3
/// </summary>
SO_04_ToPos
=
2004
,
/// <summary>
///料仓出库,, 库位的物品放入叉子上,轴2( 上下) 至P6( 库位出料缓冲点),轴4( 压紧) 至P2(压紧点)
/// </summary>
SO_05_GetReel
=
2005
,
/// <summary>
///料仓出库,,叉子从 库位返回,轴3( 叉子) 至P1( 待机点)
/// </summary>
SO_06_InoutBack
=
2006
,
/// <summary>
/// 料仓出库,等待压紧信号确认
/// </summary>
SO_07_CheckComSig
=
2007
,
/// <summary>
/// 料仓出库,走到料架位置,旋转轴至P20,升降轴至P102,
/// </summary>
SO_08_ToShelfPosition
=
2008
,
/// <summary>
/// 料仓出库,定位气缸退回(有压紧轴的不需要此步骤),,定位气缸退回(Y104-1/PCI5O1-84) (Y104-2/PCI5O1-91) (Y104-2/PCI5O1-96) 退回到位
/// </summary>
SO_09_LocationDown
=
2009
,
/// <summary>
/// 等待门口无料盘
/// </summary>
SO_10_WaitNoTray
=
2010
,
/// <summary>
/// 料仓出库,叉子到料架,进出轴至P20
/// /// </summary>
SO_11_ToShelf
=
2011
,
/// <summary>
/// 料仓出库,,把物品放下,压紧轴到P1,升降轴至P20
/// </summary>
SO_12_PutReel
=
2012
,
/// <summary>
/// 料仓出库,,叉子从出料口返回,,进出轴到P1
/// </summary>
SO_13_InoutBack
=
2013
,
/// <summary>
/// 料仓出库,,升降轴返回,, 轴2至P1( 待机点),顶升气缸下降
/// </summary>
SO_14_GoBack
=
2044
,
#
endregion
#
region
料架入库步骤,
3000
开始
/// <summary>
...
...
@@ -519,73 +446,104 @@ namespace OnlineStore.DeviceLibrary
#
endregion
#
region
料仓内部入库步骤
#
region
料仓内部入库步骤
200
开始
/// <summary>
/// 入库
检测
/// 入库
,。进出轴返回P1
/// </summary>
SI_0
0_TrayCheck
=
200
,
SI_0
1_InoutToP1
=
201
,
/// <summary>
/// 入库
,。定位气缸下降
/// 入库
。 升降轴,旋转轴到P1,压紧轴到P3
/// </summary>
SI_01_LocationCylinderDown
=
201
,
SI_02_AxisBack
,
/// <summary>
/// 入库。
。进出轴(叉子)先返回P1
/// 入库。
进出轴到P2( 进料口取料点)
/// </summary>
SI_0
2_InOutAxisHome
=
202
,
SI_0
3_InoutToP2
,
/// <summary>
/// 入库。
。所有轴先回到待机点,轴2、轴1 动作到P1,,轴4动作至P3
/// 入库。
升降轴到P7( 进料口取料缓冲点)压紧轴到P2(压紧点)
/// </summary>
SI_03_ReturnHome
=
203
,
SI_04_GetWare
,
/// <summary>
/// 入库。
。压紧物品(有压紧轴的才需要此步骤),轴4( 压紧) 至P3(压紧前点)
/// 入库。
进出轴返回P1
/// </summary>
SI_04_CompressWare
=
204
,
SI_05_InoutToP1
,
/// <summary>
/// 入库。。
叉子进入入料口,轴3( 叉子) 至P2( 进料口取料
点)
/// 入库。。
移动到库位点,旋转轴到P2( 库位点),升降轴到P3(库位入库前
点)
/// </summary>
SI_0
5_DeviceToDoor
=
205
,
SI_0
6_ToBag
,
/// <summary>
/// 入库。。
把物品放入叉子上,轴2( 上下) 至P7( 进料口取料缓冲点),压紧物品(有压紧轴的才需要此步骤),轴4( 压紧) 至P2(压紧点)
/// 入库。。
进出轴到P3(库位取放料点)
/// </summary>
SI_06_DoorWarToDevice
=
206
,
SI_07_InoutToP3
,
/// <summary>
/// 入库。升降轴到P4( 库位入料缓冲点)压紧轴到P3( 压紧前点)
/// </summary>
SI_08_PutWare
,
/// <summary>
/// 入库。进出轴返回P1
/// </summary>
SI_09_InoutToP1
,
/// <summary>
/// 入库。
。叉子 从入料口抽出,轴3( 叉子) 至P1( 待机点)
/// 入库。
旋转轴,升降轴,压紧轴到待机点P1
/// </summary>
SI_07_DeviceBackFromDoor
=
207
,
SI_10_GoBack
,
#
endregion
#
region
料仓内部出库
500
开始
/// <summary>
/// 入库。。,验证是否检测到料盘信号
/// </summary>
SI_08_CheckTray
=
208
,
///料仓出库:进出轴到P1
/// </summary>
SO_01_InoutBack
=
501
,
/// <summary>
///
入库。。移动到库位点,轴1( 转盘) 至P2( 库位点)轴2(上下) 至P3(库位入库前点)
///
料仓出库:压紧轴到压紧前点P3 ,旋转轴到库位点P2,轴2(上下) 至P5(库位出库前点)
/// </summary>
S
I_09_MoveToBag
=
209
,
S
O_02_ToPosition
,
/// <summary>
///
入库。。定位气缸退回 (有压紧轴的不需要此步骤)
///
料仓出库:进出轴到库位P3
/// </summary>
SI_10_LocationCylinder_Down
=
210
,
SO_03_InoutToP3
,
/// <summary>
///
入库。。叉子进入库位中,轴3( 叉子) 至P3(库位取放料点)
///
料仓出库:升降轴到P6,轴4( 压紧) 至P2(压紧点)
/// </summary>
SI_11_DeviceToBag
=
211
,
SO_04_GetReel
,
/// <summary>
///
入库。。放下物品,轴2( 上下) 至P4( 库位入料缓冲点)轴4( 压紧) 至P3( 压紧前点)
///
料仓出库:进出轴返回P1
/// </summary>
SI_12_PutWareToBag
=
212
,
SO_05_InoutBack
,
/// <summary>
///
入库。。叉子从库位中返回,轴3( 叉子) 动作至P1( 待机点)
///
料仓出库:旋转轴至P1,升降轴至P2
/// </summary>
S
I_13_DeviceBackFromBag
=
213
,
S
O_06_ToDoor
,
/// <summary>
/// 入库。。检测叉子是否还有物料
/// 料仓出库:进出轴到P2
/// /// </summary>
SO_07_InoutToP2
,
/// <summary>
/// 料仓出库: 放下物品 升降轴至P1,压紧轴到P3
/// </summary>
S
I_14_CheckTray
=
214
,
S
O_08_PutReel
,
/// <summary>
///
入库。。返回待机点,轴2/轴1/轴4动作至P1( 待机点))开始
///
料仓出库: 进出轴到P1
/// </summary>
S
I_15_GoBack
=
215
,
S
O_09_InoutBack
,
/// <summary>
/// 料仓出库:升降轴,旋转轴到待机点P1
/// </summary>
SO_10_GoBack
,
#
endregion
}
...
...
source/DeviceLibrary/store/model/StoreMoveInfo.cs
查看文件 @
140cc20
...
...
@@ -9,17 +9,11 @@ using System.Text;
namespace
OnlineStore.DeviceLibrary
{
/// <summary>
/// 料仓当前运动信息类(出入库状态,步骤记录)
/// </summary>
{
public
class
StoreMoveInfo
{
/// <summary>
/// 超时时间
/// </summary>
{
public
int
TimeOutSeconds
=
60
;
public
StoreMoveInfo
(
int
storeId
)
public
StoreMoveInfo
(
int
storeId
,
string
name
)
{
moveType
=
MoveType
.
None
;
...
...
@@ -27,58 +21,39 @@ namespace OnlineStore.DeviceLibrary
this
.
storeId
=
storeId
;
this
.
moveStep
=
StoreMoveStep
.
Wait
;
IsInWait
=
false
;
// MoveNum = 0
;
this
.
Name
=
name
;
}
public
string
Name
{
get
;
set
;
}
public
DateTime
LastSetpTime
{
get
;
set
;
}
/// <summary>
/// =true表示满足一个等待条件,就可以完成此步骤的等待
/// </summary>
public
bool
OneWaitCanEndStep
=
false
;
public
string
SLog
{
get
{
return
" "
+
MoveStep
+
" "
;
}
}
/// <summary>
/// 操作类型
/// </summary>
private
MoveType
moveType
=
MoveType
.
None
;
public
MoveType
MoveType
{
get
{
return
moveType
;
}
}
/// <summary>
///出入库参数
/// </summary>
public
InOutParam
MoveParam
{
get
;
set
;
}
/// <summary>
/// 当前运动是哪个料仓
/// </summary>
public
int
storeId
{
get
;
set
;
}
/// <summary>
/// 是否再当前步骤等待中
/// </summary>
public
bool
IsInWait
{
get
;
set
;
}
/// <summary>
/// 当前执行到的步骤
/// </summary>
private
StoreMoveStep
moveStep
;
/// <summary>
/// 可以循环运动的次数(轴卡运动才需要)
/// </summary>
public
int
CanWhileCount
=
0
;
/// <summary>
/// 料仓运动步骤记录
/// </summary>
public
StoreMoveStep
MoveStep
{
get
{
return
moveStep
;
}
...
...
@@ -105,16 +80,7 @@ namespace OnlineStore.DeviceLibrary
{
IsInWait
=
false
;
WaitList
=
new
List
<
WaitResultInfo
>();
}
//public void NewMove(StoreMoveType type )
//{
// moveStep = StoreMoveStep.Wait;
// this.moveType = type;
// LastSetpTime = DateTime.Now;
// WaitList = new List<WaitResultInfo>();
// // MoveNum++;
// currShelfIndex = -1;
//}
}
public
void
NewMove
(
MoveType
type
,
InOutParam
param
=
null
)
{
moveStep
=
StoreMoveStep
.
Wait
;
...
...
@@ -125,8 +91,7 @@ namespace OnlineStore.DeviceLibrary
}
this
.
MoveParam
=
param
;
LastSetpTime
=
DateTime
.
Now
;
WaitList
=
new
List
<
WaitResultInfo
>();
currShelfIndex
=
-
1
;
WaitList
=
new
List
<
WaitResultInfo
>();
SingleInstore
=
false
;
}
public
void
EndMove
()
...
...
@@ -145,54 +110,12 @@ namespace OnlineStore.DeviceLibrary
}
public
List
<
WaitResultInfo
>
WaitList
=
new
List
<
WaitResultInfo
>();
/// <summary>
/// 入库时,需要循环料架的料盘取出
/// </summary>
public
List
<
string
>
ShelfPositionList
=
new
List
<
string
>();
private
string
currShelfPosId
=
""
;
public
int
currShelfIndex
=
-
1
;
public
bool
NextShelfPos
()
{
currShelfIndex
++;
if
(
currShelfIndex
>=
ShelfPositionList
.
Count
)
{
return
false
;
}
currShelfPosId
=
ShelfPositionList
[
currShelfIndex
];
//设置取料位置
// MoveParam.UpdateShelfPosId(currShelfPosId);
return
true
;
}
/// <summary>
/// 入库时,料架已锁定库位的位置,无需扫码
/// </summary>
public
bool
IsShelfLocked
=
false
;
//料架是否锁定
/// <summary>
/// 料架锁定位置的料
/// </summary>
public
List
<
ShelfLockData
>
shelfLockDatas
=
null
;
public
bool
NextLockedShelfPos
()
internal
bool
IsStep
(
StoreMoveStep
step
)
{
currShelfIndex
++;
if
(
currShelfIndex
>=
shelfLockDatas
.
Count
)
{
shelfLockDatas
=
null
;
return
false
;
}
currShelfPosId
=
ShelfPositionList
[
shelfLockDatas
[
currShelfIndex
].
rfidLoc
];
//设置取料位置
MoveParam
.
UpdatePosIdAndShelfId
(
shelfLockDatas
[
currShelfIndex
].
barcode
,
shelfLockDatas
[
currShelfIndex
].
rfid
,
shelfLockDatas
[
currShelfIndex
].
lockPos
);
return
true
;
return
moveStep
.
Equals
(
step
);
}
}
public
class
WaitResultInfo
...
...
@@ -229,38 +152,7 @@ namespace OnlineStore.DeviceLibrary
wait
.
IsHomeMove
=
true
;
return
wait
;
}
//public static WaitResultInfo WaitStell(byte slvAddr, int targetPosition, int speed)
//{
// WaitResultInfo wait = new WaitResultInfo();
// wait.CanWhileMoveCount =10;
// wait.WaitType = WaitEnum.W004_StellMove;
// wait.SlvAddr = slvAddr;
// wait.IsHomeMove = false;
// wait.TargetPosition = targetPosition;
// wait.TargetSpeed = speed;
// return wait;
//}
// public static WaitResultInfo WaitStellHome(byte slvAddr, int targetPosition, int speed)
//{
// WaitResultInfo wait = new WaitResultInfo();
// wait.CanWhileMoveCount = 10;
// wait.WaitType = WaitEnum.W004_StellMove;
// wait.SlvAddr = slvAddr;
// wait.IsHomeMove = true;
// wait.TargetPosition = 0;
// wait.TargetSpeed = speed;
// return wait;
//}
//public static WaitResultInfo WaitShuoKe(int slvAddr, int targetPosition, bool isHome)
//{
// WaitResultInfo wait = new WaitResultInfo();
// wait.CanWhileMoveCount = 0;
// wait.WaitType = WaitEnum.W005_ShuoKe;
// wait.SlvAddr =(byte) slvAddr;
// wait.TargetPosition = targetPosition;
// wait.IsHomeMove = isHome;
// return wait;
//}
public
static
WaitResultInfo
WaitTime
(
int
MScends
)
{
WaitResultInfo
wait
=
new
WaitResultInfo
();
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论