Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
张东亮
/
DoubleLineClient_3D
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 0f2c3e38
由
张东亮
编写于
2022-02-22 10:07:03 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
修复右侧出工单料被送到二层问题
1 个父辈
dd4ffa24
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
30 行增加
和
29 行删除
source/DeviceLibrary/packageLine/LineAGVProcess.cs
source/DeviceLibrary/packageLine/PackageLine_BenQInShelf.cs
source/DeviceLibrary/packageLine/LineAGVProcess.cs
查看文件 @
0f2c3e3
...
...
@@ -312,17 +312,18 @@ namespace OnlineStore.DeviceLibrary
bool
noShelfRight
=
IOValue
(
IO_Type
.
R_RightStopCheck
).
Equals
(
IO_VALUE
.
LOW
);
if
(
isRightUpdownDown
&&
noShelfLeft
&&
noShelfRight
)
{
benQOutStep
.
Msg
=
"AGV已到达出料口, 打开链条,准备送出料架["
+
agvClient_Dbline
.
A6_RFID
+
"]"
;
benQOutStep
.
ToNextStep
(
BenQ_OUT_STEP
.
SHELF_TO_UPDOWN
);
benQOutStep
.
AddIoWait
(
IO_Type
.
R_StopCylinder2
,
IO_VALUE
.
HIGH
);
benQOutStep
.
AddIoWait
(
IO_Type
.
R_RightStopCheck
,
IO_VALUE
.
HIGH
);
agvClient_Dbline
.
MayLeave
(
"A6"
);
KeepLineRun
(
IO_Type
.
R_LineRun
);
IOMove
(
IO_Type
.
R_RightStopCylinder
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
R_LeftStopCylinder
,
IO_VALUE
.
HIGH
);
KeepLineRun
(
IO_Type
.
R_LineRun
);
CheckAndMove
(
IO_Type
.
R_OutLineBackRun
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
R_OutLineRun
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
R_StopCylinder2
,
IO_VALUE
.
HIGH
);
benQOutStep
.
Msg
=
"AGV已到达出料口, 打开链条,准备送出料架["
+
agvClient_Dbline
.
A6_RFID
+
"]"
;
agvClient_Dbline
.
MayLeave
(
"A6"
);
}
else
{
...
...
@@ -348,12 +349,12 @@ namespace OnlineStore.DeviceLibrary
{
benQOutStep
.
ToNextStep
(
BenQ_OUT_STEP
.
SHELT_OUT
);
benQOutStep
.
Msg
=
"料架["
+
agvClient_Dbline
.
A6_RFID
+
"],到达升降机,停止右侧下层线体,继续送出"
;
benQOutStep
.
AddIoWait
(
IO_Type
.
R_RightStopCheck
,
IO_VALUE
.
LOW
,
5000
);
benQOutStep
.
AddIoWait
(
IO_Type
.
R_LeftStopCheck
,
IO_VALUE
.
LOW
,
5000
);
IOMove
(
IO_Type
.
R_StopCylinder2
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
R_LineRun
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
R_LeftStopCylinder
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
R_RightStopCylinder
,
IO_VALUE
.
HIGH
);
benQOutStep
.
AddIoWait
(
IO_Type
.
R_RightStopCheck
,
IO_VALUE
.
LOW
);
benQOutStep
.
AddIoWait
(
IO_Type
.
R_LeftStopCheck
,
IO_VALUE
.
LOW
);
}
else
if
(
benQOutStep
.
IsTimeOut
(
5000
))
{
...
...
@@ -372,7 +373,7 @@ namespace OnlineStore.DeviceLibrary
benQOutStep
.
Msg
=
"料架已经送到AGV, 清理RFID["
+
agvClient_Dbline
.
A6_RFID
+
"],关闭链条"
;
agvClient_Dbline
.
A6_RFID
=
""
;
benQOutStep
.
ToNextStep
(
BenQ_OUT_STEP
.
NONE
);
//benQOutStep.AddTimeWait(50
000);
benQOutStep
.
AddTimeWait
(
5
000
);
agvClient_Dbline
.
FinishLeave
(
"A6"
);
IOMove
(
IO_Type
.
R_OutLineRun
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
R_LeftStopCylinder
,
IO_VALUE
.
LOW
);
...
...
source/DeviceLibrary/packageLine/PackageLine_BenQInShelf.cs
查看文件 @
0f2c3e3
using
OnlineStore.LoadCSVLibrary
;
using
OnlineStore.LoadCSVLibrary
;
namespace
OnlineStore.DeviceLibrary
{
...
...
@@ -81,28 +81,28 @@ namespace OnlineStore.DeviceLibrary
CheckAndMove
(
IO_Type
.
R_LeftStopCylinder
,
IO_VALUE
.
LOW
);
benQInFromOutStep
.
ToNextStep
(
BenQ_IN_FROM_OUT_STEP
.
SHELF_TO_UPDOWN
);
benQInFromOutStep
.
Msg
=
"检测到产线 AGV向右侧提升机送入料架,提升机链条反转"
;
benQInFromOutStep
.
AddIoWait
(
IO_Type
.
R_LeftStopCheck
,
IO_VALUE
.
HIGH
,
5000
);
benQInFromOutStep
.
AddIoWait
(
IO_Type
.
R_RightStopCheck
,
IO_VALUE
.
HIGH
,
5000
);
benQInFromOutStep
.
AddIoWait
(
IO_Type
.
R_LeftStopCheck
,
IO_VALUE
.
HIGH
,
5000
);
benQInFromOutStep
.
AddIoWait
(
IO_Type
.
R_RightStopCheck
,
IO_VALUE
.
HIGH
,
5000
);
IOMove
(
IO_Type
.
R_OutLineBackRun
,
IO_VALUE
.
HIGH
);
}
else
if
(
hasShelfRight
&&
!
noShelfLeft
&&
benQOutStep
.
GetCurStep
()
<
=
BenQ_OUT_STEP
.
WAIT_AGV
&&
chainNoRun
)
//准备送满料,但提升机上有架子
else
if
(
hasShelfRight
&&
!
noShelfLeft
&&
benQOutStep
.
GetCurStep
()
<
BenQ_OUT_STEP
.
WAIT_AGV
&&
chainNoRun
&&
!
agvClient_Dbline
.
A6_InProcess
)
//准备送满料,但提升机上有架子
{
CheckAndMove
(
IO_Type
.
R_RightStopCylinder
,
IO_VALUE
.
HIGH
);
CheckAndMove
(
IO_Type
.
R_LeftStopCylinder
,
IO_VALUE
.
LOW
);
benQInFromOutStep
.
ToNextStep
(
BenQ_IN_FROM_OUT_STEP
.
SHELF_TO_UPDOWN
);
benQInFromOutStep
.
Msg
=
"检测到右侧提升机有料架[准备送满料],提升机上升"
;
benQInFromOutStep
.
AddIoWait
(
IO_Type
.
R_LeftStopCheck
,
IO_VALUE
.
HIGH
,
5000
);
benQInFromOutStep
.
AddIoWait
(
IO_Type
.
R_RightStopCheck
,
IO_VALUE
.
HIGH
,
5000
);
}
else
if
(
hasShelfRight
&&
!
noShelfLeft
&&
chainNoRun
)
{
benQInFromOutStep
.
Msg
=
"检测到右侧提升机有料架,提升机上升"
;
CheckAndMove
(
IO_Type
.
R_RightStopCylinder
,
IO_VALUE
.
HIGH
);
CheckAndMove
(
IO_Type
.
R_LeftStopCylinder
,
IO_VALUE
.
LOW
);
benQInFromOutStep
.
ToNextStep
(
BenQ_IN_FROM_OUT_STEP
.
SHELF_TO_UPDOWN
);
benQInFromOutStep
.
Msg
=
"检测到右侧提升机有料架[无满料出],提升机上升"
;
benQInFromOutStep
.
AddIoWait
(
IO_Type
.
R_LeftStopCheck
,
IO_VALUE
.
HIGH
,
5000
);
benQInFromOutStep
.
AddIoWait
(
IO_Type
.
R_RightStopCheck
,
IO_VALUE
.
HIGH
,
5000
);
benQInFromOutStep
.
AddIoWait
(
IO_Type
.
R_LeftStopCheck
,
IO_VALUE
.
HIGH
,
5000
);
benQInFromOutStep
.
AddIoWait
(
IO_Type
.
R_RightStopCheck
,
IO_VALUE
.
HIGH
,
5000
);
}
//else if (hasShelfRight && !noShelfLeft && chainNoRun)
//{
// benQInFromOutStep.ToNextStep(BenQ_IN_FROM_OUT_STEP.SHELF_TO_UPDOWN);
// benQInFromOutStep.Msg = "检测到右侧提升机有料架[无满料出],提升机上升";
// CheckAndMove(IO_Type.R_RightStopCylinder, IO_VALUE.HIGH);
// CheckAndMove(IO_Type.R_LeftStopCylinder, IO_VALUE.LOW);
// benQInFromOutStep.AddIoWait(IO_Type.R_LeftStopCheck, IO_VALUE.HIGH,5000);
// benQInFromOutStep.AddIoWait(IO_Type.R_RightStopCheck, IO_VALUE.HIGH,5000);
//}
}
else
{
...
...
@@ -165,7 +165,7 @@ namespace OnlineStore.DeviceLibrary
benQInFromOutStep
.
AddTimeWait
(
3000
);
IOMove
(
IO_Type
.
R_OutLineBackRun
,
IO_VALUE
.
LOW
);
benQInFromOutStep
.
Msg
=
"料架到达右侧提升机,提升机上升"
;
benQInFromOutStep
.
AddIoWait
(
IO_Type
.
R_Updown_Up
,
IO_VALUE
.
HIGH
,
2000
);
benQInFromOutStep
.
AddIoWait
(
IO_Type
.
R_Updown_Up
,
IO_VALUE
.
HIGH
,
2000
);
CylinderMove
(
MoveInfo
,
IO_Type
.
R_Updown_Down
,
IO_Type
.
R_Updown_Up
);
}
else
...
...
@@ -191,13 +191,13 @@ namespace OnlineStore.DeviceLibrary
CheckAndMove
(
IO_Type
.
RHigh_LineRun
,
IO_VALUE
.
HIGH
);
//右侧上层链条运行
CheckAndMove
(
IO_Type
.
R_OutLineBackRun
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
R_RightStopCylinder
,
IO_VALUE
.
HIGH
,
5000
);
IOMove
(
IO_Type
.
R_LeftStopCylinder
,
IO_VALUE
.
HIGH
,
5000
);
IOMove
(
IO_Type
.
R_LeftStopCylinder
,
IO_VALUE
.
HIGH
,
5000
);
}
}
else
if
(
benQInFromOutStep
.
IsStep
(
BenQ_IN_FROM_OUT_STEP
.
SHELF_ENTER
))
{
bool
noShelf
=
IOManager
.
IOValue
(
IO_Type
.
R_LeftStopCheck
).
Equals
(
IO_VALUE
.
LOW
)
&&
bool
noShelf
=
IOManager
.
IOValue
(
IO_Type
.
R_LeftStopCheck
).
Equals
(
IO_VALUE
.
LOW
)
&&
IOManager
.
IOValue
(
IO_Type
.
R_RightStopCheck
).
Equals
(
IO_VALUE
.
LOW
);
if
(
noShelf
&&
benQInFromOutStep
.
IsFinished
())
//料盘进入完成
{
...
...
@@ -211,12 +211,12 @@ namespace OnlineStore.DeviceLibrary
CylinderMove
(
MoveInfo
,
IO_Type
.
R_Updown_Up
,
IO_Type
.
R_Updown_Down
);
benQInFromOutStep
.
AddTimeWait
(
5000
);
}
else
if
(
benQInFromOutStep
.
IsTimeOut
(
10000
))
else
if
(
benQInFromOutStep
.
IsTimeOut
(
10000
))
{
KeepLineRun
(
IO_Type
.
RHigh_LineRun
);
CheckAndMove
(
IO_Type
.
R_OutLineBackRun
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
R_RightStopCylinder
,
IO_VALUE
.
HIGH
,
5000
);
IOMove
(
IO_Type
.
R_LeftStopCylinder
,
IO_VALUE
.
HIGH
,
5000
);
IOMove
(
IO_Type
.
R_RightStopCylinder
,
IO_VALUE
.
HIGH
,
5000
);
IOMove
(
IO_Type
.
R_LeftStopCylinder
,
IO_VALUE
.
HIGH
,
5000
);
}
}
else
if
(
benQInFromOutStep
.
IsStep
(
BenQ_IN_FROM_OUT_STEP
.
SHELF_DOWN
))
...
...
@@ -224,7 +224,7 @@ namespace OnlineStore.DeviceLibrary
if
(
benQInFromOutStep
.
IsFinished
())
{
benQInFromOutStep
.
ToNextStep
(
BenQ_IN_FROM_OUT_STEP
.
WAIT_SHELF_TO_READY_POS
);
benQInFromOutStep
.
Msg
=
"产线AGV 在右侧提升机将料架送入上层平台完成"
;
benQInFromOutStep
.
Msg
=
"产线AGV 在右侧提升机将料架送入上层平台完成"
;
benQInFromOutStep
.
AddIoWait
(
IO_Type
.
RHigh_StopCheck1
,
IO_VALUE
.
HIGH
);
benQInFromOutStep
.
AddTimeWait
(
60000
);
}
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论