Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
张东亮
/
SO1057-XLRStore
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 23cc1681
由
张东亮
编写于
2025-11-14 09:26:45 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
在缓存区放料的这个动作去掉。加启动前加上检查下缓存区有料但没信息的或者有信息无料的情况
1 个父辈
fee4217a
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
111 行增加
和
54 行删除
source/DeviceLibrary/storeBean/boxBean/BoxEquip.cs
source/XLRStoreClient/FrmXLRStore.cs
source/DeviceLibrary/storeBean/boxBean/BoxEquip.cs
查看文件 @
23cc168
...
...
@@ -348,6 +348,55 @@ namespace OnlineStore.DeviceLibrary
return
true
;
return
false
;
}
bool
isFixOrBufferHasReel
(
out
string
msg
)
{
msg
=
""
;
StringBuilder
sb
=
new
StringBuilder
();
if
(
IOValue
(
IO_Type
.
FeedingA_Instore_UpperArea_ReelCheck
).
Equals
(
IO_VALUE
.
HIGH
)
&&
BufferDataManager
.
AInStoreInfo
==
null
)
{
sb
.
AppendLine
(
"A上暂存区检测到有料盘,但无缓存信息"
);
}
else
if
(
IOValue
(
IO_Type
.
FeedingA_Instore_UpperArea_ReelCheck
).
Equals
(
IO_VALUE
.
LOW
)
&&
BufferDataManager
.
AInStoreInfo
!=
null
)
{
sb
.
AppendLine
(
"A上暂存区有缓存信息,但无料"
);
}
if
(
IOValue
(
IO_Type
.
FeedingA_Outstore_UnderArea_ReelCheck
).
Equals
(
IO_VALUE
.
HIGH
)
&&
BufferDataManager
.
AOutStoreInfo
==
null
)
{
sb
.
AppendLine
(
"A下暂存区检测到有料盘,但无缓存信息"
);
}
else
if
(
IOValue
(
IO_Type
.
FeedingA_Outstore_UnderArea_ReelCheck
).
Equals
(
IO_VALUE
.
LOW
)
&&
BufferDataManager
.
AOutStoreInfo
!=
null
)
{
sb
.
AppendLine
(
"A下暂存区有缓存信息,但无料"
);
}
if
(
IOValue
(
IO_Type
.
FeedingB_Instore_UpperArea_ReelCheck
).
Equals
(
IO_VALUE
.
HIGH
)
&&
BufferDataManager
.
BInStoreInfo
==
null
)
{
sb
.
AppendLine
(
"B上暂存区检测到有料盘,但无缓存信息"
);
}
else
if
(
IOValue
(
IO_Type
.
FeedingB_Instore_UpperArea_ReelCheck
).
Equals
(
IO_VALUE
.
LOW
)
&&
BufferDataManager
.
BInStoreInfo
!=
null
)
{
sb
.
AppendLine
(
"B上暂存区有缓存信息,但无料"
);
}
if
(
IOValue
(
IO_Type
.
FeedingB_Outstore_UnderArea_ReelCheck
).
Equals
(
IO_VALUE
.
HIGH
)
&&
BufferDataManager
.
BOutStoreInfo
==
null
)
{
sb
.
AppendLine
(
"B下暂存区检测到有料盘,但无缓存信息"
);
}
else
if
(
IOValue
(
IO_Type
.
FeedingB_Outstore_UnderArea_ReelCheck
).
Equals
(
IO_VALUE
.
LOW
)
&&
BufferDataManager
.
BOutStoreInfo
!=
null
)
{
sb
.
AppendLine
(
"B下暂存区有缓存信息,但无料"
);
}
if
(
IOValue
(
IO_Type
.
ForkA_Tray_Check
).
Equals
(
IO_VALUE
.
HIGH
))
{
sb
.
AppendLine
(
"A面料叉检测到有料盘"
);
}
if
(
IOValue
(
IO_Type
.
ForkB_Tray_Check
).
Equals
(
IO_VALUE
.
HIGH
))
{
sb
.
AppendLine
(
"B面料叉检测到有料盘"
);
}
msg
=
sb
.
ToString
();
return
!
string
.
IsNullOrEmpty
(
msg
);
}
private
void
StartReset
()
{
if
(
HasDrawerInHook
())
...
...
@@ -355,7 +404,15 @@ namespace OnlineStore.DeviceLibrary
System
.
Windows
.
Forms
.
MessageBox
.
Show
(
"检测到拉取机构上的拉钩检测信号亮,不允许复位!"
,
"警告"
);
return
;
}
if
(
isFixOrBufferHasReel
(
out
string
msg1
))
{
System
.
Windows
.
Forms
.
MessageBox
.
Show
(
$
"不允许启动/复位{msg1}"
,
"警告"
,
System
.
Windows
.
Forms
.
MessageBoxButtons
.
OK
);
SetBoxStatus
(
DeviceStatus
.
None
,
RunStatus
.
Wait
);
MoveInfo
.
NewMove
(
MoveType
.
None
);
LogInfo
(
$
"复位 {MoveInfo.SLog} :{msg1}"
);
return
;
}
if
(!
CanReset
())
if
(
System
.
Windows
.
Forms
.
MessageBox
.
Show
(
"检测到可能的撞机风险,请确认进出轴上是否有抽屉!若无抽屉在进出轴上,可继续复位,是否继续?"
,
"警告"
,
System
.
Windows
.
Forms
.
MessageBoxButtons
.
YesNo
).
Equals
(
System
.
Windows
.
Forms
.
DialogResult
.
No
))
...
...
@@ -521,35 +578,35 @@ namespace OnlineStore.DeviceLibrary
}
break
;
case
StepEnum
.
BOX_H0102_MiddleAxisToP2
:
if
(
IOValue
(
IO_Type
.
FeedingA_Instore_UpperArea_ReelCheck
).
Equals
(
IO_VALUE
.
LOW
)
||
IOValue
(
IO_Type
.
FeedingA_Outstore_UnderArea_ReelCheck
).
Equals
(
IO_VALUE
.
LOW
))
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
BOX_H0103_ToAInputHighPos
);
if
(
UpdownAxis
.
GetAclPosition
()
>=
(
MoveInfo
.
MoveParam
.
MoveP
.
Updown_P5
-
axisDiff
)
&&
UpdownAxis
.
GetAclPosition
()
<=
(
MoveInfo
.
MoveParam
.
MoveP
.
Updown_P4
+
axisDiff
)
&&
(
BufferDataManager
.
AOutStoreInfo
==
null
||
IOValue
(
IO_Type
.
FeedingA_Outstore_UnderArea_ReelCheck
).
Equals
(
IO_VALUE
.
LOW
)))
{
LogInfo
(
$
"复位 {MoveInfo.SLog}:移栽升降轴在A下暂存区低点和高点之间,到高点P4,A面移栽X轴去暂存区P2,A面压紧轴到压紧前点P2"
);
ComAxis_A
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
ComAxis_AB_P2
,
Config
.
ComAxis_A_P2_Speed
);
XAxis_A
.
AbsMove
(
MoveInfo
,
Config
.
XAxis_A_P2
,
Config
.
XAxis_A_P2_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
Updown_P4
,
Config
.
Updown_P4_Speed
);
}
else
if
(
UpdownAxis
.
GetAclPosition
()
>=
(
MoveInfo
.
MoveParam
.
MoveP
.
Updown_P3
-
axisDiff
)
&&
UpdownAxis
.
GetAclPosition
()
<=
(
MoveInfo
.
MoveParam
.
MoveP
.
Updown_P2
+
axisDiff
)
&&
(
BufferDataManager
.
AInStoreInfo
==
null
||
IOValue
(
IO_Type
.
FeedingA_Instore_UpperArea_ReelCheck
).
Equals
(
IO_VALUE
.
LOW
)))
{
LogInfo
(
$
"复位 {MoveInfo.SLog}:移栽升降轴在A上暂存区低点和高点之间,到高点P2,A面移栽X轴去暂存区P2,A面压紧轴到压紧前点P2"
);
ComAxis_A
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
ComAxis_AB_P2
,
Config
.
ComAxis_A_P2_Speed
);
XAxis_A
.
AbsMove
(
MoveInfo
,
Config
.
XAxis_A_P2
,
Config
.
XAxis_A_P2_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
Updown_P2
,
Config
.
Updown_P2_Speed
);
}
else
{
LogInfo
(
$
"复位 {MoveInfo.SLog}:移栽升降轴不在A暂存区低点和高点之间,不动作"
);
}
}
else
//
if (IOValue(IO_Type.FeedingA_Instore_UpperArea_ReelCheck).Equals(IO_VALUE.LOW) || IOValue(IO_Type.FeedingA_Outstore_UnderArea_ReelCheck).Equals(IO_VALUE.LOW))
//
{
//
MoveInfo.NextMoveStep(StepEnum.BOX_H0103_ToAInputHighPos);
//
if (UpdownAxis.GetAclPosition() >= (MoveInfo.MoveParam.MoveP.Updown_P5 - axisDiff) && UpdownAxis.GetAclPosition() <= (MoveInfo.MoveParam.MoveP.Updown_P4 + axisDiff)
//
&& (BufferDataManager.AOutStoreInfo == null || IOValue(IO_Type.FeedingA_Outstore_UnderArea_ReelCheck).Equals(IO_VALUE.LOW)))
//
{
//
LogInfo($"复位 {MoveInfo.SLog}:移栽升降轴在A下暂存区低点和高点之间,到高点P4,A面移栽X轴去暂存区P2,A面压紧轴到压紧前点P2");
//
ComAxis_A.AbsMove(MoveInfo, MoveInfo.MoveParam.MoveP.ComAxis_AB_P2, Config.ComAxis_A_P2_Speed);
//
XAxis_A.AbsMove(MoveInfo, Config.XAxis_A_P2, Config.XAxis_A_P2_Speed);
//
UpdownAxis.AbsMove(MoveInfo, MoveInfo.MoveParam.MoveP.Updown_P4, Config.Updown_P4_Speed);
//
}
//
else if (UpdownAxis.GetAclPosition() >= (MoveInfo.MoveParam.MoveP.Updown_P3 - axisDiff) && UpdownAxis.GetAclPosition() <= (MoveInfo.MoveParam.MoveP.Updown_P2 + axisDiff)
//
&& (BufferDataManager.AInStoreInfo == null || IOValue(IO_Type.FeedingA_Instore_UpperArea_ReelCheck).Equals(IO_VALUE.LOW)))
//
{
//
LogInfo($"复位 {MoveInfo.SLog}:移栽升降轴在A上暂存区低点和高点之间,到高点P2,A面移栽X轴去暂存区P2,A面压紧轴到压紧前点P2");
//
ComAxis_A.AbsMove(MoveInfo, MoveInfo.MoveParam.MoveP.ComAxis_AB_P2, Config.ComAxis_A_P2_Speed);
//
XAxis_A.AbsMove(MoveInfo, Config.XAxis_A_P2, Config.XAxis_A_P2_Speed);
//
UpdownAxis.AbsMove(MoveInfo, MoveInfo.MoveParam.MoveP.Updown_P2, Config.Updown_P2_Speed);
//
}
//
else
//
{
//
LogInfo($"复位 {MoveInfo.SLog}:移栽升降轴不在A暂存区低点和高点之间,不动作");
//
}
//
}
//
else
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
BOX_H0105_A_XAxisToP1
);
XAxis_A
.
AbsMove
(
MoveInfo
,
Config
.
XAxis_A_P1
,
Config
.
XAxis_A_P1_Speed
);
LogInfo
(
$
"复位 {MoveInfo.SLog}:A
暂存区有料,A面移栽X轴到待机点P1"
);
LogInfo
(
$
"复位 {MoveInfo.SLog}:A
面移栽X轴到待机点P1"
);
//A暂存区有料,
}
break
;
case
StepEnum
.
BOX_H0103_ToAInputHighPos
:
...
...
@@ -576,36 +633,36 @@ namespace OnlineStore.DeviceLibrary
break
;
case
StepEnum
.
BOX_H0105_A_XAxisToP1
:
if
(
IOValue
(
IO_Type
.
FeedingB_Instore_UpperArea_ReelCheck
).
Equals
(
IO_VALUE
.
LOW
)
||
IOValue
(
IO_Type
.
FeedingB_Outstore_UnderArea_ReelCheck
).
Equals
(
IO_VALUE
.
LOW
))
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
BOX_H0105_ToBInputHighPos
);
if
(
UpdownAxis
.
GetAclPosition
()
>=
(
MoveInfo
.
MoveParam
.
MoveP
.
Updown_P11
-
axisDiff
)
&&
UpdownAxis
.
GetAclPosition
()
<=
(
MoveInfo
.
MoveParam
.
MoveP
.
Updown_P10
+
axisDiff
)
&&
(
BufferDataManager
.
BOutStoreInfo
==
null
||
IOValue
(
IO_Type
.
FeedingB_Outstore_UnderArea_ReelCheck
).
Equals
(
IO_VALUE
.
LOW
)))
{
LogInfo
(
$
"复位 {MoveInfo.SLog}:移栽升降轴在B下暂存区低点和高点之间,到高点P10,B面移栽X轴去暂存区P2,B面压紧轴到压紧前点P2"
);
ComAxis_B
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
ComAxis_AB_P2
,
Config
.
ComAxis_B_P2_Speed
);
XAxis_B
.
AbsMove
(
MoveInfo
,
Config
.
XAxis_B_P2
,
Config
.
XAxis_B_P2_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
Updown_P10
,
Config
.
Updown_P10_Speed
);
}
else
if
(
UpdownAxis
.
GetAclPosition
()
>=
(
MoveInfo
.
MoveParam
.
MoveP
.
Updown_P9
-
axisDiff
)
&&
UpdownAxis
.
GetAclPosition
()
<=
(
MoveInfo
.
MoveParam
.
MoveP
.
Updown_P8
+
axisDiff
)
&&
(
BufferDataManager
.
BInStoreInfo
==
null
||
IOValue
(
IO_Type
.
FeedingB_Instore_UpperArea_ReelCheck
).
Equals
(
IO_VALUE
.
LOW
)))
{
LogInfo
(
$
"复位 {MoveInfo.SLog}:移栽升降轴在B上暂存区低点和高点之间,到高点P8,B面移栽X轴去暂存区P2,B面压紧轴到压紧前点P2"
);
ComAxis_B
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
ComAxis_AB_P2
,
Config
.
ComAxis_B_P2_Speed
);
XAxis_B
.
AbsMove
(
MoveInfo
,
Config
.
XAxis_B_P2
,
Config
.
XAxis_B_P2_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
Updown_P8
,
Config
.
Updown_P8_Speed
);
}
else
{
LogInfo
(
$
"复位 {MoveInfo.SLog}:移栽升降轴不在B暂存区低点和高点之间,不动作"
);
}
}
else
//
if (IOValue(IO_Type.FeedingB_Instore_UpperArea_ReelCheck).Equals(IO_VALUE.LOW) || IOValue(IO_Type.FeedingB_Outstore_UnderArea_ReelCheck).Equals(IO_VALUE.LOW))
//
{
//
MoveInfo.NextMoveStep(StepEnum.BOX_H0105_ToBInputHighPos);
//
if (UpdownAxis.GetAclPosition() >= (MoveInfo.MoveParam.MoveP.Updown_P11 - axisDiff) && UpdownAxis.GetAclPosition() <= (MoveInfo.MoveParam.MoveP.Updown_P10 + axisDiff) &&
//
(BufferDataManager.BOutStoreInfo == null || IOValue(IO_Type.FeedingB_Outstore_UnderArea_ReelCheck).Equals(IO_VALUE.LOW)))
//
{
//
LogInfo($"复位 {MoveInfo.SLog}:移栽升降轴在B下暂存区低点和高点之间,到高点P10,B面移栽X轴去暂存区P2,B面压紧轴到压紧前点P2");
//
ComAxis_B.AbsMove(MoveInfo, MoveInfo.MoveParam.MoveP.ComAxis_AB_P2, Config.ComAxis_B_P2_Speed);
//
XAxis_B.AbsMove(MoveInfo, Config.XAxis_B_P2, Config.XAxis_B_P2_Speed);
//
UpdownAxis.AbsMove(MoveInfo, MoveInfo.MoveParam.MoveP.Updown_P10, Config.Updown_P10_Speed);
//
}
//
else if (UpdownAxis.GetAclPosition() >= (MoveInfo.MoveParam.MoveP.Updown_P9 - axisDiff) && UpdownAxis.GetAclPosition() <= (MoveInfo.MoveParam.MoveP.Updown_P8 + axisDiff) &&
//
(BufferDataManager.BInStoreInfo == null || IOValue(IO_Type.FeedingB_Instore_UpperArea_ReelCheck).Equals(IO_VALUE.LOW)))
//
{
//
LogInfo($"复位 {MoveInfo.SLog}:移栽升降轴在B上暂存区低点和高点之间,到高点P8,B面移栽X轴去暂存区P2,B面压紧轴到压紧前点P2");
//
ComAxis_B.AbsMove(MoveInfo, MoveInfo.MoveParam.MoveP.ComAxis_AB_P2, Config.ComAxis_B_P2_Speed);
//
XAxis_B.AbsMove(MoveInfo, Config.XAxis_B_P2, Config.XAxis_B_P2_Speed);
//
UpdownAxis.AbsMove(MoveInfo, MoveInfo.MoveParam.MoveP.Updown_P8, Config.Updown_P8_Speed);
//
}
//
else
//
{
//
LogInfo($"复位 {MoveInfo.SLog}:移栽升降轴不在B暂存区低点和高点之间,不动作");
//
}
//
}
//
else
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
BOX_H01_CheckCurPullDownPos
);
XAxis_B
.
AbsMove
(
MoveInfo
,
Config
.
XAxis_B_P1
,
Config
.
XAxis_B_P1_Speed
);
MoveAxisToP1
();
LogInfo
(
$
"复位 {MoveInfo.SLog}:B
暂存区有料,B面移栽X轴到待机点P1,行走机构到待机点P1,在暂存区复位结束"
);
LogInfo
(
$
"复位 {MoveInfo.SLog}:B
面移栽X轴到待机点P1,行走机构到待机点P1,在暂存区复位结束"
);
//B暂存区有料,
}
break
;
case
StepEnum
.
BOX_H0105_ToBInputHighPos
:
...
...
source/XLRStoreClient/FrmXLRStore.cs
查看文件 @
23cc168
...
...
@@ -502,7 +502,7 @@ namespace OnlineStore.XLRStore
//}
foreach
(
DeviceBase
device
in
deviceBases
)
{
if
(
device
.
runStatus
>
RunStatus
.
Wait
)
if
(
device
.
runStatus
>
=
RunStatus
.
Wait
)
{
if
(!
device
.
WarnMsg
.
Equals
(
""
))
{
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论