Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
张东亮
/
SO1057-XLRStore
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit ea96d462
由
张东亮
编写于
2023-01-10 16:06:07 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
动作优化
1 个父辈
7a64b7f6
显示空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
182 行增加
和
13 行删除
source/DeviceLibrary/DeviceLibrary.csproj
source/DeviceLibrary/manager/model/DeviceStep.cs
source/DeviceLibrary/storeBean/boxBean/BoxEquip_InExecute.cs
source/DeviceLibrary/storeBean/boxBean/BoxEquip_InExecute_Partial.cs
source/DeviceLibrary/storeBean/boxBean/BoxEquip_OutExecute.cs
source/DeviceLibrary/storeBean/boxBean/BoxEquip_OutExecute_Partial.cs
source/DeviceLibrary/storeBean/boxBean/BoxEquip_Partial.cs
source/DeviceLibrary/storeBean/inputBean/InputEquip.cs
source/DeviceLibrary/DeviceLibrary.csproj
查看文件 @
ea96d46
...
@@ -87,6 +87,7 @@
...
@@ -87,6 +87,7 @@
<Compile Include="storeBean\boxBean\AutoInoutInfo.cs" />
<Compile Include="storeBean\boxBean\AutoInoutInfo.cs" />
<Compile Include="storeBean\boxBean\BoxEquip_InExecute.cs" />
<Compile Include="storeBean\boxBean\BoxEquip_InExecute.cs" />
<Compile Include="storeBean\boxBean\BoxEquip_InExecute_Partial.cs" />
<Compile Include="storeBean\boxBean\BoxEquip_InExecute_Partial.cs" />
<Compile Include="storeBean\boxBean\BoxEquip_OutExecute_Partial.cs" />
<Compile Include="storeBean\boxBean\BoxEquip_OutExecute.cs" />
<Compile Include="storeBean\boxBean\BoxEquip_OutExecute.cs" />
<Compile Include="storeBean\boxBean\BoxEquip_PosDebug.cs" />
<Compile Include="storeBean\boxBean\BoxEquip_PosDebug.cs" />
<Compile Include="storeBean\boxBean\Humiture\HumitureBean.cs" />
<Compile Include="storeBean\boxBean\Humiture\HumitureBean.cs" />
...
...
source/DeviceLibrary/manager/model/DeviceStep.cs
查看文件 @
ea96d46
...
@@ -337,8 +337,47 @@ namespace OnlineStore.DeviceLibrary
...
@@ -337,8 +337,47 @@ namespace OnlineStore.DeviceLibrary
/// </summary>
/// </summary>
SO_20_Finish
,
SO_20_Finish
,
#
region
两侧同时放料
/// <summary>
/// 料仓出库:取料完成,准备去出料口
/// </summary>
SOB_14_GetReels_Ready
,
/// <summary>
/// 料仓出库:到料盘暂存区
/// 1. 移栽升降轴到A/B下暂存区放料高点
/// 2. 行走机构到P2(进出料机构取放点)
/// 3. A面移栽旋转轴到P2(进出料暂存区取放料水平点),同时检测X02=1
/// 或者 B面移栽旋转轴到P2(进出料暂存区取放料水平点),同时检测X03=1
/// </summary>
SOB_15_ToBufferArea
,
/// <summary>
/// 料仓出库:确保暂存区无料盘
/// 如果有料盘则报警,该区域无料时才会出库
/// </summary>
SOB_16_VerifyBufferState
,
/// <summary>
/// 料仓出库:A/B面移栽X轴到P2(A/B进出料暂存区取放点)
/// </summary>
SOB_17_InOutToBuff
,
/// <summary>
/// 料仓出库:放松料盘
/// 2. A/B面移栽压紧轴到P2压紧前点
/// </summary>
SOB_18_ReleaseReel
,
/// <summary>
/// 料仓出库:把料盘放下
/// 1. 移栽升降轴到A/B下暂存区放料低点
/// </summary>
SOB_18_PutReel
,
/// <summary>
/// 料仓出库:A/B面移栽X轴到P1(待机点)
/// </summary>
SOB_19_InOutBackFromBuff
,
/// <summary>
/// 料仓出库:A/B面移栽旋转轴到P1(待机点)
/// </summary>
SOB_20_Finish
,
#
endregion
#
endregion
#
endregion
#
region
入库步骤,
300
开始
#
region
入库步骤,
300
开始
...
...
source/DeviceLibrary/storeBean/boxBean/BoxEquip_InExecute.cs
查看文件 @
ea96d46
...
@@ -214,6 +214,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -214,6 +214,7 @@ namespace OnlineStore.DeviceLibrary
MiddleAxis_To_P2
();
MiddleAxis_To_P2
();
//XAxis_To_P1();
//XAxis_To_P1();
BothXAxis_To_P1
();
BothXAxis_To_P1
();
BuffAreaInstoreDoor
(
true
);
break
;
break
;
case
StepEnum
.
SI_01_MoveAxis_Ready
:
case
StepEnum
.
SI_01_MoveAxis_Ready
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_02_ToBufferArea
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_02_ToBufferArea
);
...
...
source/DeviceLibrary/storeBean/boxBean/BoxEquip_InExecute_Partial.cs
查看文件 @
ea96d46
...
@@ -148,6 +148,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -148,6 +148,7 @@ namespace OnlineStore.DeviceLibrary
BothComAxis_To_P2
();
BothComAxis_To_P2
();
BothMiddleAxis_To_P2
();
BothMiddleAxis_To_P2
();
BothXAxis_To_P1
();
BothXAxis_To_P1
();
BuffAreaInstoreDoor
(
true
);
break
;
break
;
case
StepEnum
.
SIB_01_MoveAxis_Ready
:
case
StepEnum
.
SIB_01_MoveAxis_Ready
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SIB_02_ToBufferArea
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
SIB_02_ToBufferArea
);
...
...
source/DeviceLibrary/storeBean/boxBean/BoxEquip_OutExecute.cs
查看文件 @
ea96d46
...
@@ -211,11 +211,26 @@ namespace OnlineStore.DeviceLibrary
...
@@ -211,11 +211,26 @@ namespace OnlineStore.DeviceLibrary
}
}
}
}
}
}
else
//两夹爪都有料
{
if
(
MoveInfo
.
MoveParam
.
PosInfoBack
.
PlateW
==
MoveInfo
.
MoveParam
.
PosInfo
.
PlateW
&&
MoveInfo
.
MoveParam
.
PosInfoBack
.
PlateH
==
MoveInfo
.
MoveParam
.
PosInfo
.
PlateH
)
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
SOB_14_GetReels_Ready
);
LogInfo
(
$
"出库 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.barcode}]取料完成,准备送往出料口。行走机构到待机点P1,料屉升降轴到P1点,移栽升降轴到下暂存区出库放料高点P4/P10"
);
MoveAxisToP1
();
PullAxis_UpdownToP1
();
UpdownAxisTo_P4_P10
();
BuffAreaOutstoreDoor
(
true
);
return
;
}
}
//直接出库,执行该步骤的情况:1.另一个料叉有料;2.另一面有出库任务但出料口有料;3.另一面没有出库任务;
//直接出库,执行该步骤的情况:1.另一个料叉有料;2.另一面有出库任务但出料口有料;3.另一面没有出库任务;
MoveInfo
.
NextMoveStep
(
StepEnum
.
SO_14_GetReels_Ready
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
SO_14_GetReels_Ready
);
MoveAxisToP1
();
MoveAxisToP1
();
PullAxis_UpdownToP1
();
PullAxis_UpdownToP1
();
UpdownAxisTo_P4_P10
();
UpdownAxisTo_P4_P10
();
BuffAreaOutstoreDoor
(
true
);
if
(
MoveInfo
.
MoveParam
.
PosInfoBack
==
null
)
if
(
MoveInfo
.
MoveParam
.
PosInfoBack
==
null
)
LogInfo
(
$
"出库 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.barcode}]取料完成,准备送往出料口。行走机构到待机点P1,料屉升降轴到P1点,移栽升降轴到下暂存区出库放料高点P4/P10"
);
LogInfo
(
$
"出库 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.barcode}]取料完成,准备送往出料口。行走机构到待机点P1,料屉升降轴到P1点,移栽升降轴到下暂存区出库放料高点P4/P10"
);
else
else
...
...
source/DeviceLibrary/storeBean/boxBean/BoxEquip_OutExecute_Partial.cs
0 → 100644
查看文件 @
ea96d46
using
CodeLibrary
;
using
OnlineStore.Common
;
using
OnlineStore.LoadCSVLibrary
;
using
System
;
using
System.Collections.Generic
;
using
System.Diagnostics
;
using
System.Drawing
;
using
System.Linq
;
using
System.Text
;
using
System.Threading
;
using
System.Threading.Tasks
;
using
System.Windows.Forms.VisualStyles
;
namespace
OnlineStore.DeviceLibrary
{
partial
class
BoxEquip
{
#
region
出库
private
void
OutstoreExecute_BothSide
()
{
switch
(
MoveInfo
.
MoveStep
)
{
case
StepEnum
.
SOB_14_GetReels_Ready
:
//两侧已有同尺寸的料
MoveInfo
.
NextMoveStep
(
StepEnum
.
SOB_15_ToBufferArea
);
break
;
case
StepEnum
.
SOB_15_ToBufferArea
:
if
(!
BothOutDoorCheck
(
MoveInfo
.
MoveParam
))
{
SetWarnMsg
(
$
"出库 {MoveInfo.SLog}:出料口有其他料盘,无法放置料盘[barcode={MoveInfo.MoveParam.PosInfo.barcode}][barcode={MoveInfo.MoveParam.PosInfoBack.barcode}]"
);
}
else
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
SOB_16_VerifyBufferState
);
BuffAreaOutstoreDoor
(
true
);
LogInfo
(
$
"出库 {MoveInfo.SLog}:出料口无料盘确认,打开出料防护门,准备放料[barcode={MoveInfo.MoveParam.PosInfo.barcode}][barcode={MoveInfo.MoveParam.PosInfoBack.barcode}]"
);
}
break
;
case
StepEnum
.
SOB_16_VerifyBufferState
:
if
(!
CheckInputMiddleAxisInBuff
())
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
SOB_17_InOutToBuff
);
SetBoxStatus
(
DeviceStatus
.
OutStoreBoxEnd
,
RunStatus
.
Busy
,
MoveInfo
.
MoveParam
.
PosInfo
.
PosId
,
MoveInfo
.
MoveParam
.
PosInfo
.
barcode
);
LogInfo
(
$
"出库 {MoveInfo.SLog}:移栽X轴到进出料暂存区取放点P2,行走机构到进出料机构取放点P2"
);
BothXAxis_To_P2
();
MoveAxisToP2
();
}
else
if
(
MoveInfo
.
IsTimeOut
())
{
SetWarnMsg
(
$
"等待上料机构旋转轴离开{MoveInfo.MoveParam.PosInfo.GetPosSide()}面暂存区超时"
);
}
break
;
case
StepEnum
.
SOB_17_InOutToBuff
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SOB_18_ReleaseReel
);
LogInfo
(
$
"出库 {MoveInfo.SLog}:松开料盘,移栽压紧轴到压紧前点P2"
);
BothComAxis_To_P2
();
break
;
case
StepEnum
.
SOB_18_ReleaseReel
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SOB_18_PutReel
);
LogInfo
(
$
"出库 {MoveInfo.SLog}:放料盘,移栽升降轴到下暂存区放料低点P5/P11"
);
executeTime
=
(
DateTime
.
Now
-
startTime
).
TotalSeconds
.
ToString
(
"f2"
);
SetBoxStatus
(
DeviceStatus
.
OutStoreBoxEnd
,
RunStatus
.
Busy
,
MoveInfo
.
MoveParam
.
PosInfoBack
.
PosId
,
MoveInfo
.
MoveParam
.
PosInfoBack
.
barcode
);
UpdownAxisTo_P5_P11
();
break
;
case
StepEnum
.
SOB_18_PutReel
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SOB_19_InOutBackFromBuff
);
LogInfo
(
$
"出库 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.ToStr()}]出库完成[耗时:{(DateTime.Now - startTime).TotalSeconds.ToString("
f2
")}秒],移栽X轴到待机点P1,行走机构到待机点P1"
);
BothXAxis_To_P1
();
MoveAxisToP1
();
break
;
case
StepEnum
.
SOB_19_InOutBackFromBuff
:
//出库料盘放置成功,将料盘信息写入对应出料口
if
(
CheckASide
())
{
BufferDataManager
.
AOutStoreInfo
=
MoveInfo
.
MoveParam
.
PosInfo
.
ToCopy
();
BufferDataManager
.
BOutStoreInfo
=
MoveInfo
.
MoveParam
.
PosInfoBack
.
ToCopy
();
}
else
{
BufferDataManager
.
BOutStoreInfo
=
MoveInfo
.
MoveParam
.
PosInfo
.
ToCopy
();
BufferDataManager
.
AOutStoreInfo
=
MoveInfo
.
MoveParam
.
PosInfoBack
.
ToCopy
();
}
MoveInfo
.
NextMoveStep
(
StepEnum
.
SOB_20_Finish
);
BuffAreaOutstoreDoor
(
false
);
LogInfo
(
$
"出库 {MoveInfo.SLog}:关闭出料防护门,出库结束"
);
break
;
case
StepEnum
.
SOB_20_Finish
:
SetBoxStatus
(
DeviceStatus
.
StoreOnline
,
RunStatus
.
Runing
);
MoveInfo
.
EndMove
();
//停止记录
StopRecord
();
AutoInout
.
InOutEndProcess
(
this
,
MoveType
.
OutStore
);
break
;
}
}
#
endregion
}
}
source/DeviceLibrary/storeBean/boxBean/BoxEquip_Partial.cs
查看文件 @
ea96d46
...
@@ -207,7 +207,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -207,7 +207,7 @@ namespace OnlineStore.DeviceLibrary
/// <param name="open">true:开启</param>
/// <param name="open">true:开启</param>
private
void
BuffAreaInstoreDoor
(
bool
open
)
private
void
BuffAreaInstoreDoor
(
bool
open
)
{
{
if
(
open
)
//开门-上升
if
(
open
)
//开门-上升
{
{
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
UpperArea_InstoreDoor_Up
,
IO_VALUE
.
HIGH
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
UpperArea_InstoreDoor_Up
,
IO_VALUE
.
HIGH
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
UpperArea_InstoreDoor_UpCheck
,
IO_VALUE
.
HIGH
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
UpperArea_InstoreDoor_UpCheck
,
IO_VALUE
.
HIGH
));
...
@@ -519,7 +519,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -519,7 +519,7 @@ namespace OnlineStore.DeviceLibrary
return
;
//暂时屏蔽
return
;
//暂时屏蔽
if
(
CheckASide
())
if
(
CheckASide
())
{
{
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Hook_A_Check
,
hasTray
?
IO_VALUE
.
HIGH
:
IO_VALUE
.
LOW
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Hook_A_Check
,
hasTray
?
IO_VALUE
.
HIGH
:
IO_VALUE
.
LOW
));
}
}
else
else
{
{
...
@@ -733,7 +733,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -733,7 +733,7 @@ namespace OnlineStore.DeviceLibrary
col
=
i
;
col
=
i
;
}
}
}
}
row
=
GetRowByPosition
(
side
);
row
=
GetRowByPosition
(
side
);
PosId
=
$
"{CID}{side}{row.ToString().PadLeft(2, '0')}{col.ToString().PadLeft(2, '0')}0101"
;
PosId
=
$
"{CID}{side}{row.ToString().PadLeft(2, '0')}{col.ToString().PadLeft(2, '0')}0101"
;
MoveInfo
.
MoveParam
=
new
InOutParam
(
new
InOutPosInfo
(
"Reset"
,
PosId
));
MoveInfo
.
MoveParam
=
new
InOutParam
(
new
InOutPosInfo
(
"Reset"
,
PosId
));
MoveInfo
.
MoveParam
.
MoveP
=
new
LineMoveP
(
Config
,
MoveInfo
.
MoveParam
.
PosInfo
.
PosId
);
MoveInfo
.
MoveParam
.
MoveP
=
new
LineMoveP
(
Config
,
MoveInfo
.
MoveParam
.
PosInfo
.
PosId
);
...
@@ -761,8 +761,8 @@ namespace OnlineStore.DeviceLibrary
...
@@ -761,8 +761,8 @@ namespace OnlineStore.DeviceLibrary
BoxPosition
boxPosition
=
CSVPositionReader
<
BoxPosition
>.
GetPositon
(
currow
);
BoxPosition
boxPosition
=
CSVPositionReader
<
BoxPosition
>.
GetPositon
(
currow
);
if
(
boxPosition
!=
null
)
if
(
boxPosition
!=
null
)
{
{
if
((
pullUpdwn
>=
boxPosition
.
PullAxis_Updown_P4
-
errPullUpdwn
)
&&
if
((
pullUpdwn
>=
boxPosition
.
PullAxis_Updown_P4
-
errPullUpdwn
)
&&
(
pullUpdwn
<=
boxPosition
.
PullAxis_Updown_P3
+
errPullUpdwn
))
(
pullUpdwn
<=
boxPosition
.
PullAxis_Updown_P3
+
errPullUpdwn
))
{
{
LogInfo
(
$
"料斗升降轴当前【{pullUpdwn}】在第{i}层的提取高点P3【{boxPosition.PullAxis_Updown_P3}】和提取低点P4【{boxPosition.PullAxis_Updown_P4}】之间"
);
LogInfo
(
$
"料斗升降轴当前【{pullUpdwn}】在第{i}层的提取高点P3【{boxPosition.PullAxis_Updown_P3}】和提取低点P4【{boxPosition.PullAxis_Updown_P4}】之间"
);
return
i
;
return
i
;
...
@@ -1103,6 +1103,19 @@ namespace OnlineStore.DeviceLibrary
...
@@ -1103,6 +1103,19 @@ namespace OnlineStore.DeviceLibrary
return
false
;
return
false
;
}
}
private
bool
BothOutDoorCheck
(
InOutParam
param
)
{
if
(
param
.
PosInfo
==
null
||
param
.
PosInfoBack
==
null
)
return
false
;
if
(
CheckAOutDoor
()
&&
CheckBOutDoor
())
{
return
true
;
}
return
false
;
}
/// <summary>
/// <summary>
/// 检查A出料口状态
/// 检查A出料口状态
/// </summary>
/// </summary>
...
@@ -1217,6 +1230,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -1217,6 +1230,7 @@ namespace OnlineStore.DeviceLibrary
return
;
return
;
}
}
OutstoreExecute
();
OutstoreExecute
();
OutstoreExecute_BothSide
();
}
}
#
endregion
#
endregion
}
}
...
...
source/DeviceLibrary/storeBean/inputBean/InputEquip.cs
查看文件 @
ea96d46
...
@@ -464,19 +464,17 @@ namespace OnlineStore.DeviceLibrary
...
@@ -464,19 +464,17 @@ namespace OnlineStore.DeviceLibrary
if
(
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
None
)
&&
NoErrorAlarm
())
if
(
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
None
)
&&
NoErrorAlarm
())
{
{
if
(
CheckStartOutPos
(
"A下暂存区"
,
BufferDataManager
.
AOutStoreInfo
,
IO_Type
.
FeedingA_Outstore_UnderArea_ReelCheck
,
BatchMoveList
))
if
(
StoreManager
.
XLRStore
.
boxEquip
.
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
OutStore
))
{
{
CheckStartOutPos
(
"存储机构"
,
StoreManager
.
XLRStore
.
boxEquip
.
MoveInfo
.
MoveParam
.
PosInfo
,
IO_VALUE
.
HIGH
,
BatchMoveList
);
}
}
else
if
(
CheckStartOutPos
(
"
A下暂存区"
,
BufferDataManager
.
AOutStoreInfo
,
IO_Type
.
FeedingA
_Outstore_UnderArea_ReelCheck
,
BatchMoveList
))
else
if
(
CheckStartOutPos
(
"
B下暂存区"
,
BufferDataManager
.
BOutStoreInfo
,
IO_Type
.
FeedingB
_Outstore_UnderArea_ReelCheck
,
BatchMoveList
))
{
{
}
}
else
if
(
CheckStartOutPos
(
"B下暂存区"
,
BufferDataManager
.
BOutStoreInfo
,
IO_Type
.
FeedingB_Outstore_UnderArea_ReelCheck
,
BatchMoveList
))
else
if
(
StoreManager
.
XLRStore
.
boxEquip
.
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
OutStore
))
{
{
CheckStartOutPos
(
"存储机构"
,
StoreManager
.
XLRStore
.
boxEquip
.
MoveInfo
.
MoveParam
.
PosInfo
,
IO_VALUE
.
HIGH
,
BatchMoveList
);
}
}
else
else
{
{
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论