Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
张东亮
/
DoubleLineClient_3D
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit dd4ffa24
由
张东亮
编写于
2022-01-18 11:22:16 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
右侧提升机有时不放行料架修复
1 个父辈
13775642
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
58 行增加
和
43 行删除
source/DeviceLibrary/doubleLine/DoubleLineBean_lineShelf.cs
source/DeviceLibrary/packageLine/LineAGVProcess.cs
source/DeviceLibrary/packageLine/PackageLine.cs
source/DeviceLibrary/packageLine/PackageLine_BenQInShelf.cs
source/DeviceLibrary/packageLine/PackageLine_S2Station.cs
source/DeviceLibrary/doubleLine/DoubleLineBean_lineShelf.cs
查看文件 @
dd4ffa2
...
...
@@ -7,6 +7,7 @@ using System.Linq;
using
System.Text
;
using
System.Threading
;
using
System.Threading.Tasks
;
using
static
OnlineStore
.
DeviceLibrary
.
PackageLine
;
namespace
OnlineStore.DeviceLibrary
{
...
...
@@ -50,7 +51,7 @@ namespace OnlineStore.DeviceLibrary
LogUtil
.
info
(
"左侧双层线_"
+
"左上层放料架到阻挡2"
);
IOMove
(
IO_Type
.
LHigh_LineRun
,
IO_VALUE
.
HIGH
,
30000
);
IOMove
(
IO_Type
.
LHigh_StopCylinder1
,
IO_VALUE
.
HIGH
,
3000
);
if
(
WaitIo
(
IO_Type
.
LHigh_StopCheck2
,
IO_VALUE
.
HIGH
,
30000
,
"左侧_上层放料架到阻挡2"
))
if
(
WaitIo
(
IO_Type
.
LHigh_StopCheck2
,
IO_VALUE
.
HIGH
,
30000
,
"左侧_上层放料架到阻挡2"
))
{
IOMove
(
IO_Type
.
LHigh_LineRun
,
IO_VALUE
.
LOW
);
}
...
...
@@ -78,7 +79,7 @@ namespace OnlineStore.DeviceLibrary
{
RHighProcess
=
true
;
LogUtil
.
info
(
"右侧双层线_"
+
"右上层放料架到阻挡2"
);
IOMove
(
IO_Type
.
RHigh_LineRun
,
IO_VALUE
.
HIGH
,
30000
);
IOMove
(
IO_Type
.
RHigh_LineRun
,
IO_VALUE
.
HIGH
,
30000
);
IOMove
(
IO_Type
.
RHigh_StopCylinder1
,
IO_VALUE
.
HIGH
,
3000
);
if
(
WaitIo
(
IO_Type
.
RHigh_StopCheck2
,
IO_VALUE
.
HIGH
,
30000
,
"右侧_上层放料架到阻挡2"
))
{
...
...
@@ -96,7 +97,7 @@ namespace OnlineStore.DeviceLibrary
if
(
IOValue
(
IO_Type
.
LLow_StopCheck2
).
Equals
(
IO_VALUE
.
LOW
)
&&
IOValue
(
IO_Type
.
LLow_StopCheck1
).
Equals
(
IO_VALUE
.
HIGH
)
&&
IOValue
(
IO_Type
.
LLow_StopCylinder2
).
Equals
(
IO_VALUE
.
LOW
)
&&
IOValue
(
IO_Type
.
LLown_LineRun
).
Equals
(
IO_VALUE
.
LOW
)
&&
LowProcess
.
Equals
(
false
))
IOValue
(
IO_Type
.
LLown_LineRun
).
Equals
(
IO_VALUE
.
LOW
)
&&
LowProcess
.
Equals
(
false
))
{
bool
isUseLowShelf
=
(
SOneMoveInfo
.
MoveStep
>=
MoveStep
.
S1_C02_MDown
&&
SOneMoveInfo
.
MoveStep
<=
MoveStep
.
S1_C05_CheckS1
);
if
(!
isUseLowShelf
&&
LineManager
.
checkWatch
(
lowWatch
,
3000
))
...
...
@@ -125,8 +126,8 @@ namespace OnlineStore.DeviceLibrary
if
(
IOValue
(
IO_Type
.
Line_InCheck
).
Equals
(
IO_VALUE
.
HIGH
))
{
if
(
IOValue
(
IO_Type
.
Line_StopCheck
).
Equals
(
IO_VALUE
.
HIGH
))
{
if
(
MoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
)
&&
LineManager
.
checkWatch
(
inLineWatch
,
3000
,
true
))
{
if
(
MoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
)
&&
LineManager
.
checkWatch
(
inLineWatch
,
3000
,
true
))
{
LeftUpdownRFID
=
RFIDManager
.
ReadRFID
(
Config
.
L_Updown_Rfid
,
false
).
NumStr
();
bool
needProces
=
false
;
...
...
@@ -148,7 +149,7 @@ namespace OnlineStore.DeviceLibrary
//MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Line_StopCheck, IO_VALUE.HIGH));
}
else
{
{
IOMove
(
IO_Type
.
L_InLineRun
,
IO_VALUE
.
LOW
);
}
}
...
...
@@ -174,14 +175,15 @@ namespace OnlineStore.DeviceLibrary
}
}
else
{
{
inLineWatch
.
Stop
();
}
//右侧出口
if
(
IOValue
(
IO_Type
.
R_StopCheck1
).
Equals
(
IO_VALUE
.
HIGH
)&&
ROutProcess
.
Equals
(
false
))
if
(
IOValue
(
IO_Type
.
R_StopCheck1
).
Equals
(
IO_VALUE
.
HIGH
)
&&
ROutProcess
.
Equals
(
false
))
{
if
(
IOValue
(
IO_Type
.
R_StopCheck2
).
Equals
(
IO_VALUE
.
LOW
)
&&
LineManager
.
checkWatch
(
outLineWatch
,
5000
,
true
))
if
(
IOValue
(
IO_Type
.
R_StopCheck2
).
Equals
(
IO_VALUE
.
LOW
)
&&
LineManager
.
checkWatch
(
outLineWatch
,
5000
,
true
)
&&
LineManager
.
packageLine
.
benQOutStep
.
GetCurStep
()
<
BenQ_OUT_STEP
.
SHELF_TO_UPDOWN
)
{
outLineWatch
.
Stop
();
Task
.
Factory
.
StartNew
(
delegate
...
...
@@ -189,7 +191,7 @@ namespace OnlineStore.DeviceLibrary
ROutProcess
=
true
;
LogUtil
.
info
(
"右侧双层线_"
+
"出口无料架,放一个料架"
);
IOMove
(
IO_Type
.
R_StopCylinder2
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
R_StopCylinder1
,
IO_VALUE
.
HIGH
,
15
00
);
IOMove
(
IO_Type
.
R_StopCylinder1
,
IO_VALUE
.
HIGH
,
20
00
);
IOMove
(
IO_Type
.
R_LineRun
,
IO_VALUE
.
HIGH
,
20000
);
if
(
WaitIo
(
IO_Type
.
R_StopCheck2
,
IO_VALUE
.
HIGH
,
20000
,
"料架到达出口"
))
{
...
...
@@ -198,7 +200,7 @@ namespace OnlineStore.DeviceLibrary
}
ROutProcess
=
false
;
});
}
}
}
else
{
...
...
@@ -221,7 +223,7 @@ namespace OnlineStore.DeviceLibrary
if
(
MoveInfo
.
MoveStep
.
Equals
(
MoveStep
.
SI01_ShelfInLeft
))
{
MoveInfo
.
NextMoveStep
(
MoveStep
.
SI02_ReadRFID
);
LeftUpdownRFID
=
RFIDManager
.
ReadRFID
(
Config
.
L_Updown_Rfid
,
true
).
NumStr
();
LeftUpdownRFID
=
RFIDManager
.
ReadRFID
(
Config
.
L_Updown_Rfid
,
true
).
NumStr
();
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
1000
));
//等待可放料架
...
...
@@ -272,7 +274,7 @@ namespace OnlineStore.DeviceLibrary
IOMove
(
IO_Type
.
Line_StopCylinder
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
L_InLineRun
,
IO_VALUE
.
HIGH
);
LeftLineMove
(
IO_VALUE
.
HIGH
,
MoveInfo
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
L_InLineRun
,
IO_VALUE
.
HIGH
,
true
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
L_InLineRun
,
IO_VALUE
.
HIGH
,
true
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Line_InCheck
,
IO_VALUE
.
LOW
));
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
MoveStep
.
SI04_InStopDown
))
...
...
@@ -298,8 +300,8 @@ namespace OnlineStore.DeviceLibrary
{
IsCanStart
=
true
;
}
else
if
(
LeftUpdownRFID
.
StartsWith
(
Static_String
.
BigShelf_RFID_Prefix
)
&&
IOValue
(
IO_Type
.
Line_StopCheck
).
Equals
(
IO_VALUE
.
HIGH
)
&&
IOValue
(
IO_Type
.
Line_InCheck
).
Equals
(
IO_VALUE
.
HIGH
)
)
{
else
if
(
LeftUpdownRFID
.
StartsWith
(
Static_String
.
BigShelf_RFID_Prefix
)
&&
IOValue
(
IO_Type
.
Line_StopCheck
).
Equals
(
IO_VALUE
.
HIGH
)
&&
IOValue
(
IO_Type
.
Line_InCheck
).
Equals
(
IO_VALUE
.
HIGH
)
)
{
IsCanStart
=
true
;
}
if
(
IsCanStart
)
...
...
@@ -330,7 +332,7 @@ namespace OnlineStore.DeviceLibrary
LeftLineMove
(
IO_VALUE
.
HIGH
,
MoveInfo
);
}
}
else
if
(
MoveInfo
.
IsTimeOut
(
120
))
else
if
(
MoveInfo
.
IsTimeOut
(
120
))
{
WarnMsg
=
MoveInfo
.
MoveStep
+
"等待料架离开左侧升降机 超时:"
+
FormUtil
.
GetShowStr
(
MoveInfo
.
StepSpan
().
TotalSeconds
)
+
"秒"
;
Alarm
(
AlarmType
.
IoSingleTimeOut
);
...
...
@@ -400,21 +402,21 @@ namespace OnlineStore.DeviceLibrary
}
}
private
void
LeftLineMove
(
IO_VALUE
value
,
LineMoveInfo
moveInfo
=
null
)
private
void
LeftLineMove
(
IO_VALUE
value
,
LineMoveInfo
moveInfo
=
null
)
{
if
(
LeftUpdownRFID
.
StartsWith
(
Static_String
.
SmallShelf_RFID_Prefix
))
{
if
(
moveInfo
!=
null
)
{
moveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
LHigh_LineRun
,
value
,
true
));
moveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
LHigh_LineRun
,
value
,
true
));
}
CheckAndMove
(
IO_Type
.
LHigh_LineRun
,
value
);
CheckAndMove
(
IO_Type
.
LHigh_LineRun
,
value
);
}
else
if
(
LeftUpdownRFID
.
StartsWith
(
Static_String
.
BigShelf_RFID_Prefix
))
{
if
(
moveInfo
!=
null
)
{
moveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
LLown_LineRun
,
value
,
true
));
moveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
LLown_LineRun
,
value
,
true
));
}
CheckAndMove
(
IO_Type
.
LLown_LineRun
,
value
);
}
...
...
@@ -558,7 +560,7 @@ namespace OnlineStore.DeviceLibrary
public
void
Led_timer_Tick
(
object
sender
,
EventArgs
e
)
{
if
(
isInProcess
)
{
{
TimeSpan
span
=
DateTime
.
Now
-
LastProTime
;
if
(
span
.
TotalSeconds
<
30
)
{
...
...
source/DeviceLibrary/packageLine/LineAGVProcess.cs
查看文件 @
dd4ffa2
...
...
@@ -184,7 +184,9 @@ namespace OnlineStore.DeviceLibrary
bool
isRightUpdownDown
=
CylinderIsOk
(
IO_Type
.
R_Updown_Up
,
IO_Type
.
R_Updown_Down
);
//上层料满
bool
topFull
=
IOValue
(
IO_Type
.
RHigh_FullCheck
).
Equals
(
IO_VALUE
.
HIGH
);
if
(
isChainRun
||
!
isRightUpdownDown
||
topFull
)
//料盘无法送入
//提升机上有料
bool
hasInUpdown
=
IOValue
(
IO_Type
.
R_LeftStopCheck
).
Equals
(
IO_VALUE
.
HIGH
)
||
IOValue
(
IO_Type
.
R_RightStopCheck
).
Equals
(
IO_VALUE
.
HIGH
);
if
(
isChainRun
||
!
isRightUpdownDown
||
topFull
||
hasInUpdown
)
//料盘无法送入
{
string
msg
=
"A6 "
;
if
(
isChainRun
)
...
...
@@ -199,6 +201,10 @@ namespace OnlineStore.DeviceLibrary
{
msg
=
msg
+
"上层料满,"
;
}
if
(
hasInUpdown
)
{
msg
=
msg
+
"提升机有料,"
;
}
//有料架或线上无空间
benQInStepRight
.
Msg
=
msg
+
"送料AGV 不允许进入,"
;
benQInStepRight
.
ToNextStep
(
BenQ_IN_STEP
.
NONE
);
...
...
@@ -308,15 +314,15 @@ namespace OnlineStore.DeviceLibrary
{
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"
);
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
,
3000
);
IOMove
(
IO_Type
.
R_StopCylinder2
,
IO_VALUE
.
HIGH
);
}
else
{
...
...
@@ -340,17 +346,19 @@ namespace OnlineStore.DeviceLibrary
}
if
(
benQOutStep
.
IsFinished
())
{
benQOutStep
.
ToNextStep
(
BenQ_OUT_STEP
.
SHELT_OUT
);
benQOutStep
.
Msg
=
"料架["
+
agvClient_Dbline
.
A6_RFID
+
"],到达升降机,停止右侧下层线体,继续送出"
;
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
.
ToNextStep
(
BenQ_OUT_STEP
.
SHELT_OUT
);
benQOutStep
.
AddIoWait
(
IO_Type
.
R_
RightStopCheck
,
IO_VALUE
.
LOW
,
5000
);
benQOutStep
.
AddIoWait
(
IO_Type
.
R_RightStopCheck
,
IO_VALUE
.
LOW
);
benQOutStep
.
AddIoWait
(
IO_Type
.
R_
LeftStopCheck
,
IO_VALUE
.
LOW
);
}
else
else
if
(
benQOutStep
.
IsTimeOut
(
5000
))
{
//料架未到达,检查链条
// IOMove(IO_Type.R_StopCylinder2, IO_VALUE.HIGH);
KeepLineRun
(
IO_Type
.
R_LineRun
);
CheckAndMove
(
IO_Type
.
R_OutLineBackRun
,
IO_VALUE
.
LOW
);
KeepLineRun
(
IO_Type
.
R_OutLineRun
);
...
...
@@ -368,7 +376,12 @@ namespace OnlineStore.DeviceLibrary
agvClient_Dbline
.
FinishLeave
(
"A6"
);
IOMove
(
IO_Type
.
R_OutLineRun
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
R_LeftStopCylinder
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
R_RightStopCylinder
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
R_RightStopCylinder
,
IO_VALUE
.
HIGH
);
}
else
if
(
benQOutStep
.
IsTimeOut
(
10000
))
{
IOMove
(
IO_Type
.
R_LeftStopCylinder
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
R_RightStopCylinder
,
IO_VALUE
.
HIGH
);
}
}
}
...
...
source/DeviceLibrary/packageLine/PackageLine.cs
查看文件 @
dd4ffa2
...
...
@@ -94,7 +94,7 @@ namespace OnlineStore.DeviceLibrary
// IOMove(IO_Type.S2_StopCylinder2, IO_VALUE.LOW);
//双层线出料口
IOMove
(
IO_Type
.
R_StopCylinder1
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
R_StopCylinder1
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
R_LeftStopCylinder
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
R_StopCylinder2
,
IO_VALUE
.
LOW
);
...
...
@@ -174,7 +174,7 @@ namespace OnlineStore.DeviceLibrary
//IOMove(IO_Type.S2_StopCylinder2, IO_VALUE.LOW);
//双层线出料口
IOMove
(
IO_Type
.
R_StopCylinder1
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
R_StopCylinder1
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
R_LeftStopCylinder
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
R_StopCylinder2
,
IO_VALUE
.
LOW
);
//右侧上层阻挡
...
...
source/DeviceLibrary/packageLine/PackageLine_BenQInShelf.cs
查看文件 @
dd4ffa2
...
...
@@ -80,7 +80,7 @@ namespace OnlineStore.DeviceLibrary
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
=
"检测到
BenQ
AGV向右侧提升机送入料架,提升机链条反转"
;
benQInFromOutStep
.
Msg
=
"检测到
产线
AGV向右侧提升机送入料架,提升机链条反转"
;
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
);
...
...
@@ -148,7 +148,7 @@ namespace OnlineStore.DeviceLibrary
bool
noShelfLeft
=
IOValue
(
IO_Type
.
R_LeftStopCheck
).
Equals
(
IO_VALUE
.
LOW
);
if
(
noShelfRight
&&
noShelfLeft
)
//员工手动从出口出料架,重置出口处的入料流程
{
benQInFromOutStep
.
Msg
=
"从右侧出口出料架,重置
BenQ
AGV 出口入料流程"
;
benQInFromOutStep
.
Msg
=
"从右侧出口出料架,重置
产线
AGV 出口入料流程"
;
IOMove
(
IO_Type
.
R_OutLineBackRun
,
IO_VALUE
.
LOW
);
CheckAndMove
(
IO_Type
.
R_RightStopCylinder
,
IO_VALUE
.
LOW
);
CheckAndMove
(
IO_Type
.
R_LeftStopCylinder
,
IO_VALUE
.
LOW
);
...
...
@@ -224,7 +224,7 @@ namespace OnlineStore.DeviceLibrary
if
(
benQInFromOutStep
.
IsFinished
())
{
benQInFromOutStep
.
ToNextStep
(
BenQ_IN_FROM_OUT_STEP
.
WAIT_SHELF_TO_READY_POS
);
benQInFromOutStep
.
Msg
=
"
BenQ
AGV 在右侧提升机将料架送入上层平台完成"
;
benQInFromOutStep
.
Msg
=
"
产线
AGV 在右侧提升机将料架送入上层平台完成"
;
benQInFromOutStep
.
AddIoWait
(
IO_Type
.
RHigh_StopCheck1
,
IO_VALUE
.
HIGH
);
benQInFromOutStep
.
AddTimeWait
(
60000
);
}
...
...
source/DeviceLibrary/packageLine/PackageLine_S2Station.cs
查看文件 @
dd4ffa2
...
...
@@ -361,21 +361,21 @@ namespace OnlineStore.DeviceLibrary
if
(
outShelfStep
.
IsStep
(
SHELF_TO_LEAVE_STATION
.
SHELF_OUT_S1
)){
bool
hasShelfToLeave
=
IOValue
(
IO_Type
.
R_StopCheck2
).
Equals
(
IO_VALUE
.
HIGH
);
KeepLineRun
(
IO_Type
.
R_LineRun
);
if
(
hasShelfToLeave
)
//
if (hasShelfToLeave)
{
outShelfStep
.
ToNextStep
(
SHELF_TO_LEAVE_STATION
.
WAIT_LINE_RUN_TIME
);
//出料口已有料架,转动60秒
outShelfStep
.
Msg
=
"料架流出工位1
时,出口已有料架,下层线体转动60秒"
;
outShelfStep
.
Msg
=
"料架流出工位1
,下层线体转动60秒"
;
//时,出口已有料架,
outShelfStep
.
AddTimeWait
(
60000
);
}
else
{
//出料口无料架,等待出料口信号持续3秒
outShelfStep
.
ToNextStep
(
SHELF_TO_LEAVE_STATION
.
WAIT_OUT_IO
);
outShelfStep
.
Msg
=
"料架流出工位1时,出口无料架,下层线体转动到料架到达出口"
;
outShelfStep
.
AddIoWait
(
IO_Type
.
R_StopCheck2
,
IO_VALUE
.
HIGH
,
3000
);
IOMove
(
IO_Type
.
R_StopCylinder1
,
IO_VALUE
.
HIGH
,
1500
);
}
//
else
//
{
//
//出料口无料架,等待出料口信号持续3秒
//
outShelfStep.ToNextStep(SHELF_TO_LEAVE_STATION.WAIT_OUT_IO);
//
outShelfStep.Msg = "料架流出工位1时,出口无料架,下层线体转动到料架到达出口";
//
outShelfStep.AddIoWait(IO_Type.R_StopCheck2, IO_VALUE.HIGH, 3000);
//
IOMove(IO_Type.R_StopCylinder1, IO_VALUE.HIGH,1500);
//
}
}
else
if
(
outShelfStep
.
IsStep
(
SHELF_TO_LEAVE_STATION
.
WAIT_LINE_RUN_TIME
)
||
outShelfStep
.
IsStep
(
SHELF_TO_LEAVE_STATION
.
WAIT_OUT_IO
))
{
if
(
outShelfStep
.
IsFinished
())
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论