Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
张东亮
/
DoubleLineClient_3D
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 73972f25
由
张东亮
编写于
2021-01-15 16:05:50 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
料架尾号为00出现不放料
1 个父辈
a46982e8
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
77 行增加
和
79 行删除
source/DeviceLibrary/bean/LineMoveInfo.cs
source/DeviceLibrary/doubleLine/DoubleLineBean_S1Shelf.cs
source/DeviceLibrary/doubleLine/RobotMoveBean.cs
source/DeviceLibrary/packageLine/LineAGVProcess.cs
source/DeviceLibrary/packageLine/PackageLine_BenQInShelf.cs
source/DoubleLineClient_3D/App.config
source/DeviceLibrary/bean/LineMoveInfo.cs
查看文件 @
73972f2
...
@@ -10,7 +10,7 @@ using System.Text;
...
@@ -10,7 +10,7 @@ using System.Text;
namespace
OnlineStore.DeviceLibrary
namespace
OnlineStore.DeviceLibrary
{
{
/// <summary>
/// <summary>
///
双层流水线当前运动信息类(出入库
状态,步骤记录)
///
当前运动信息类(
状态,步骤记录)
/// </summary>
/// </summary>
public
class
LineMoveInfo
public
class
LineMoveInfo
{
{
...
...
source/DeviceLibrary/doubleLine/DoubleLineBean_S1Shelf.cs
查看文件 @
73972f2
...
@@ -18,9 +18,17 @@ namespace OnlineStore.DeviceLibrary
...
@@ -18,9 +18,17 @@ namespace OnlineStore.DeviceLibrary
/// 工位S2是否可以放行左侧的料架
/// 工位S2是否可以放行左侧的料架
/// </summary>
/// </summary>
internal
bool
S2CanGetShelf
=
true
;
internal
bool
S2CanGetShelf
=
true
;
/// <summary>
/// 上料工位当前料架信息
/// </summary>
internal
string
S1_CurrShelfId
=
""
;
internal
string
S1_CurrShelfId
=
""
;
/// <summary>
/// 上料工位左侧料架信息
/// </summary>
internal
string
S1_LeftShelfId
=
""
;
internal
string
S1_LeftShelfId
=
""
;
/// <summary>
/// 上料工位右侧料架信息
/// </summary>
internal
string
S1_RightShelfId
=
""
;
internal
string
S1_RightShelfId
=
""
;
private
string
S1SName
private
string
S1SName
...
@@ -35,10 +43,18 @@ namespace OnlineStore.DeviceLibrary
...
@@ -35,10 +43,18 @@ namespace OnlineStore.DeviceLibrary
{
{
get
{
return
"【R_"
+
S1_RightShelfId
+
"_"
+
GetXNrfid
(
S1_RightShelfId
)
+
"】"
;
}
get
{
return
"【R_"
+
S1_RightShelfId
+
"_"
+
GetXNrfid
(
S1_RightShelfId
)
+
"】"
;
}
}
}
/// <summary>
/// 所有任务信息
/// </summary>
public
AllTaskInfo
AllTaskInfo
=
new
AllTaskInfo
();
public
AllTaskInfo
AllTaskInfo
=
new
AllTaskInfo
();
/// <summary>
/// 上料工位任务信息
/// </summary>
internal
ShelfTaskInfo
S1_ShelfTask
=
new
ShelfTaskInfo
();
internal
ShelfTaskInfo
S1_ShelfTask
=
new
ShelfTaskInfo
();
//S1工位如果启动时有料架,左侧位置默认为00D,
/// <summary>
/// 上料工位检查,S1工位如果启动时有料架,左侧位置默认为00D,
/// </summary>
internal
void
S1_ShelfCheck
()
internal
void
S1_ShelfCheck
()
{
{
//未准备料架,判断工位是否有料架
//未准备料架,判断工位是否有料架
...
@@ -76,6 +92,11 @@ namespace OnlineStore.DeviceLibrary
...
@@ -76,6 +92,11 @@ namespace OnlineStore.DeviceLibrary
}
}
}
}
private
Stopwatch
pkgHasShelfWatch
=
new
Stopwatch
();
private
Stopwatch
pkgHasShelfWatch
=
new
Stopwatch
();
/// <summary>
/// 检查上料工位任务
/// </summary>
/// <param name="log"></param>
/// <returns></returns>
private
bool
CheckS1Task
(
string
log
=
""
)
private
bool
CheckS1Task
(
string
log
=
""
)
{
{
//判断是否还有任务
//判断是否还有任务
...
@@ -96,51 +117,18 @@ namespace OnlineStore.DeviceLibrary
...
@@ -96,51 +117,18 @@ namespace OnlineStore.DeviceLibrary
S1Log
(
log
+
" 剩余任务:"
+
AllTaskInfo
.
ToStr
()
+
",需要一个新C料架"
);
S1Log
(
log
+
" 剩余任务:"
+
AllTaskInfo
.
ToStr
()
+
",需要一个新C料架"
);
return
true
;
return
true
;
}
}
//else if (AllTaskInfo.packageTask > 0)
//{
// //需要等待S2工位无料架,才能送料架过去
// if (NoWrokShelf())
// {
// //等待3秒都无料架
// if (LineManager.checkWatch(pkgHasShelfWatch, 10000))
// {
// needNewShelf = Static_String.BigShelf_RFID_Prefix;
// SOneMoveInfo.NewMove(LineMoveType.S1Shelf, MoveStep.S1_NewShelf);
// S1Log(log + " 剩余任务:" + AllTaskInfo.ToStr() + ",需要一个新C料架_包装料");
// return true;
// }
// }
// else
// {
// pkgHasShelfWatch.Stop();
// }
//}
else
else
{
{
pkgHasShelfWatch
.
Stop
();
pkgHasShelfWatch
.
Stop
();
}
}
return
false
;
return
false
;
}
}
//private bool NoWrokShelf()
/// <summary>
//{
/// 上料工位阻挡移动
// if (
/// </summary>
// String.IsNullOrEmpty(S1_CurrShelfId) &&
/// <param name="moveInfo"></param>
// String.IsNullOrEmpty(S1_LeftShelfId) &&
/// <param name="iovalue"></param>
// String.IsNullOrEmpty(S1_RightShelfId) &&
/// <param name="stop2Move"></param>
// IOValue(IO_Type.M_LeftStopCheck).Equals(IO_VALUE.LOW) &&
// IOValue(IO_Type.M_RightStopCheck).Equals(IO_VALUE.LOW) &&
// IOValue(IO_Type.S1_StopCheck1).Equals(IO_VALUE.LOW) &&
// IOValue(IO_Type.S1_StopCheck2).Equals(IO_VALUE.LOW) &&
// IOValue(IO_Type.S1_StopCheck4).Equals(IO_VALUE.LOW) &&
// CylinderIsOk(IO_Type.S1_TopCylinderUp1, IO_Type.S1_TopCylinderDown1) &&
// CylinderIsOk(IO_Type.S1_TopCylinderUp2, IO_Type.S1_TopCylinderDown2) &&
// IOValue(IO_Type.S1_StopCheck5).Equals(IO_VALUE.LOW)
// )
// {
// return true;
// }
// return false;
//}
public
void
S1_StopMove
(
LineMoveInfo
moveInfo
,
IO_VALUE
iovalue
,
bool
stop2Move
=
false
)
public
void
S1_StopMove
(
LineMoveInfo
moveInfo
,
IO_VALUE
iovalue
,
bool
stop2Move
=
false
)
{
{
if
(
moveInfo
!=
null
)
if
(
moveInfo
!=
null
)
...
@@ -193,7 +181,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -193,7 +181,7 @@ namespace OnlineStore.DeviceLibrary
}
}
IsUseRightHigh
=
false
;
IsUseRightHigh
=
false
;
if
(!
rfid
.
Equals
(
""
))
if
(!
rfid
.
Equals
(
""
)
&&
!
rfid
.
Equals
(
"000"
)
)
{
{
if
((
needNewShelf
.
EndsWith
(
Static_String
.
SmallShelf_RFID_Prefix
)
||
needNewShelf
.
StartsWith
(
Static_String
.
SmallShelf_RFID_Prefix
))
&&
rfid
.
StartsWith
(
Static_String
.
SmallShelf_RFID_Prefix
))
if
((
needNewShelf
.
EndsWith
(
Static_String
.
SmallShelf_RFID_Prefix
)
||
needNewShelf
.
StartsWith
(
Static_String
.
SmallShelf_RFID_Prefix
))
&&
rfid
.
StartsWith
(
Static_String
.
SmallShelf_RFID_Prefix
))
{
{
...
@@ -717,7 +705,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -717,7 +705,7 @@ namespace OnlineStore.DeviceLibrary
}
}
private
string
needNewShelf
=
""
;
private
string
needNewShelf
=
""
;
private
string
ReadyLock
=
""
;
private
object
ReadyLock
=
new
object
()
;
private
void
S1_24_Ready
()
private
void
S1_24_Ready
()
{
{
if
(
Monitor
.
TryEnter
(
ReadyLock
,
1
))
if
(
Monitor
.
TryEnter
(
ReadyLock
,
1
))
...
@@ -816,14 +804,14 @@ namespace OnlineStore.DeviceLibrary
...
@@ -816,14 +804,14 @@ namespace OnlineStore.DeviceLibrary
}
}
catch
(
Exception
ex
)
catch
(
Exception
ex
)
{
{
LogUtil
.
error
(
"S1_2
2
_Ready 出错:"
+
ex
.
ToString
());
LogUtil
.
error
(
"S1_2
4
_Ready 出错:"
+
ex
.
ToString
());
}
}
finally
{
Monitor
.
Exit
(
ReadyLock
);
}
finally
{
Monitor
.
Exit
(
ReadyLock
);
}
}
}
else
else
{
{
LogUtil
.
error
(
"S1_2
2
_Ready 未得到锁 "
,
15
);
LogUtil
.
error
(
"S1_2
4
_Ready 未得到锁 "
,
15
);
}
}
}
}
...
...
source/DeviceLibrary/doubleLine/RobotMoveBean.cs
查看文件 @
73972f2
...
@@ -55,7 +55,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -55,7 +55,7 @@ namespace OnlineStore.DeviceLibrary
CurrTray
=
new
TrayInfo
();
CurrTray
=
new
TrayInfo
();
}
}
public
bool
CanChange
(
string
currShelf
)
public
bool
CanChange
(
string
currShelf
)
{
{
if
(
CurrTray
!=
null
)
if
(
CurrTray
!=
null
)
{
{
...
@@ -63,14 +63,17 @@ namespace OnlineStore.DeviceLibrary
...
@@ -63,14 +63,17 @@ namespace OnlineStore.DeviceLibrary
if
(
span
.
TotalSeconds
>
5
)
if
(
span
.
TotalSeconds
>
5
)
{
{
return
true
;
return
true
;
}
else
if
(!
CurrTray
.
realRFID
.
Equals
(
currShelf
))
}
else
if
(!
CurrTray
.
realRFID
.
Equals
(
currShelf
))
{
{
return
true
;
return
true
;
}
else
if
(
span
.
TotalSeconds
>
2
&&
IOManager
.
IOValue
(
DI_TrayCheck
).
Equals
(
IO_VALUE
.
LOW
))
}
else
if
(
span
.
TotalSeconds
>
2
&&
IOManager
.
IOValue
(
DI_TrayCheck
).
Equals
(
IO_VALUE
.
LOW
))
{
{
return
true
;
return
true
;
}
}
}
else
if
(
IOManager
.
IOValue
(
DI_TrayCheck
).
Equals
(
IO_VALUE
.
LOW
))
}
else
if
(
IOManager
.
IOValue
(
DI_TrayCheck
).
Equals
(
IO_VALUE
.
LOW
))
{
{
return
true
;
return
true
;
}
}
...
@@ -97,9 +100,9 @@ namespace OnlineStore.DeviceLibrary
...
@@ -97,9 +100,9 @@ namespace OnlineStore.DeviceLibrary
NeedShelf
=
""
;
NeedShelf
=
""
;
MoveInfo
.
EndMove
();
MoveInfo
.
EndMove
();
}
}
// private Stopwatch DiStop = new Stopwatch();
// private Stopwatch DiStop = new Stopwatch();
private
Stopwatch
abbWatch
=
new
Stopwatch
();
private
Stopwatch
abbWatch
=
new
Stopwatch
();
private
string
lockTimer
=
""
;
private
object
lockTimer
=
new
object
()
;
internal
void
TimerProcess
()
internal
void
TimerProcess
()
{
{
if
(
Monitor
.
TryEnter
(
lockTimer
,
1
))
if
(
Monitor
.
TryEnter
(
lockTimer
,
1
))
...
@@ -130,8 +133,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -130,8 +133,7 @@ namespace OnlineStore.DeviceLibrary
// DiStop.Stop();
// DiStop.Stop();
return
;
return
;
}
}
// else if (LineManager.checkWatch(DiStop, 500, false))
// {
else
if
(
LineManager
.
Line
.
S1IsReady
())
else
if
(
LineManager
.
Line
.
S1IsReady
())
{
{
string
outMsg
=
""
;
string
outMsg
=
""
;
...
@@ -165,7 +167,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -165,7 +167,7 @@ namespace OnlineStore.DeviceLibrary
//获取成功,开始放料
//获取成功,开始放料
MoveInfo
.
NewMove
(
LineMoveType
.
PutTray
,
MoveStep
.
T01_GetTray
);
MoveInfo
.
NewMove
(
LineMoveType
.
PutTray
,
MoveStep
.
T01_GetTray
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
100
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
100
));
LogUtil
.
info
(
Name
+
MoveInfo
.
SLog
+
"开始
放
料【"
+
CurrPoint
+
"】"
+
CurrTray
.
ToStr
()
+
""
);
LogUtil
.
info
(
Name
+
MoveInfo
.
SLog
+
"开始
取
料【"
+
CurrPoint
+
"】"
+
CurrTray
.
ToStr
()
+
""
);
ABBControl
.
SendCmd
(
RobotIp
,
ABBControl
.
Cmd_moveget
,
CurrTray
.
getP
,
"L"
,
ABBControl
.
DefaultSpeed
);
ABBControl
.
SendCmd
(
RobotIp
,
ABBControl
.
Cmd_moveget
,
CurrTray
.
getP
,
"L"
,
ABBControl
.
DefaultSpeed
);
}
}
...
@@ -244,7 +246,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -244,7 +246,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo
.
NextMoveStep
(
MoveStep
.
T04_WaitEnd
);
MoveInfo
.
NextMoveStep
(
MoveStep
.
T04_WaitEnd
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
10000
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
10000
));
LineManager
.
Line
.
S1_ShelfTask
=
HttpServer
.
ShelfFinish
(
CurrTray
.
realRFID
,
CurrTray
.
barcode
,
CurrTray
.
shelfP
.
ToString
(),
robotNum
.
ToString
());
LineManager
.
Line
.
S1_ShelfTask
=
HttpServer
.
ShelfFinish
(
CurrTray
.
realRFID
,
CurrTray
.
barcode
,
CurrTray
.
shelfP
.
ToString
(),
robotNum
.
ToString
());
EndMove
();
EndMove
();
}
}
else
if
(
MoveInfo
.
IsTimeOut
(
180
))
else
if
(
MoveInfo
.
IsTimeOut
(
180
))
{
{
...
@@ -266,7 +268,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -266,7 +268,7 @@ namespace OnlineStore.DeviceLibrary
{
{
EndMove
();
EndMove
();
}
}
}
}
private
void
EndMove
()
private
void
EndMove
()
{
{
LogUtil
.
info
(
Name
+
MoveInfo
.
SLog
+
"【"
+
CurrPoint
+
"】结束放料 "
+
DateTime
.
Now
.
ToLongTimeString
()
+
""
);
LogUtil
.
info
(
Name
+
MoveInfo
.
SLog
+
"【"
+
CurrPoint
+
"】结束放料 "
+
DateTime
.
Now
.
ToLongTimeString
()
+
""
);
...
@@ -296,8 +298,8 @@ namespace OnlineStore.DeviceLibrary
...
@@ -296,8 +298,8 @@ namespace OnlineStore.DeviceLibrary
{
{
NeedRfid
=
CurrTray
.
rfid
;
NeedRfid
=
CurrTray
.
rfid
;
//料架号=00,不放料
//料架号=00
0
,不放料
if
(
currRfid
.
EndsWith
(
"00
"
))
if
(
!
currRfid
.
StartsWith
(
"D"
)&&
!
currRfid
.
StartsWith
(
"C
"
))
{
{
return
false
;
return
false
;
}
}
...
@@ -320,7 +322,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -320,7 +322,7 @@ namespace OnlineStore.DeviceLibrary
}
}
}
}
//当前是第一盘料,使用虚拟料架号
//当前是第一盘料,使用虚拟料架号
string
needType
=
CurrTray
.
rfid
.
Substring
(
CurrTray
.
rfid
.
Length
-
1
,
1
);
string
needType
=
CurrTray
.
rfid
.
Substring
(
CurrTray
.
rfid
.
Length
-
1
,
1
);
string
currType
=
currRfid
.
Substring
(
0
,
1
);
string
currType
=
currRfid
.
Substring
(
0
,
1
);
...
@@ -357,7 +359,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -357,7 +359,7 @@ namespace OnlineStore.DeviceLibrary
if
(
String
.
IsNullOrEmpty
(
CurrTray
.
getP
).
Equals
(
false
))
if
(
String
.
IsNullOrEmpty
(
CurrTray
.
getP
).
Equals
(
false
))
{
{
info
+=
", "
+
CurrTray
.
ToStr
()
+
" "
;
info
+=
", "
+
CurrTray
.
ToStr
()
+
" "
;
}
}
return
info
;
return
info
;
}
}
}
}
...
...
source/DeviceLibrary/packageLine/LineAGVProcess.cs
查看文件 @
73972f2
...
@@ -30,6 +30,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -30,6 +30,7 @@ namespace OnlineStore.DeviceLibrary
{
{
NONE
,
NONE
,
READ_RFID
,
READ_RFID
,
WAIT_AGV
,
/// <summary>
/// <summary>
/// 等待到达提升机
/// 等待到达提升机
/// </summary>
/// </summary>
...
@@ -38,7 +39,6 @@ namespace OnlineStore.DeviceLibrary
...
@@ -38,7 +39,6 @@ namespace OnlineStore.DeviceLibrary
/// 料架流出
/// 料架流出
/// </summary>
/// </summary>
SHELT_OUT
,
SHELT_OUT
,
WAIT_AGV
,
}
}
public
StepInfo
<
BenQ_IN_STEP
>
benQInStepLeft
=
new
StepInfo
<
BenQ_IN_STEP
>(
BenQ_IN_STEP
.
NONE
);
public
StepInfo
<
BenQ_IN_STEP
>
benQInStepLeft
=
new
StepInfo
<
BenQ_IN_STEP
>(
BenQ_IN_STEP
.
NONE
);
...
...
source/DeviceLibrary/packageLine/PackageLine_BenQInShelf.cs
查看文件 @
73972f2
...
@@ -84,14 +84,22 @@ namespace OnlineStore.DeviceLibrary
...
@@ -84,14 +84,22 @@ namespace OnlineStore.DeviceLibrary
benQInFromOutStep
.
AddIoWait
(
IO_Type
.
R_RightStopCheck
,
IO_VALUE
.
HIGH
);
benQInFromOutStep
.
AddIoWait
(
IO_Type
.
R_RightStopCheck
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
R_OutLineBackRun
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
R_OutLineBackRun
,
IO_VALUE
.
HIGH
);
}
}
//else if(hasShelfRight && !noShelfLeft && chainNoRun)//提升机上有料架,送入处理
else
if
(
hasShelfRight
&&
!
noShelfLeft
&&
benQOutStep
.
GetCurStep
()
<=
BenQ_OUT_STEP
.
WAIT_AGV
&&
chainNoRun
)
//准备送满料,但提升机上有架子
//{
{
// CheckAndMove(IO_Type.R_LeftStopCylinder, IO_VALUE.LOW);
CheckAndMove
(
IO_Type
.
R_LeftStopCylinder
,
IO_VALUE
.
LOW
);
// benQInFromOutStep.ToNextStep(BenQ_IN_FROM_OUT_STEP.SHELF_TO_UPDOWN);
benQInFromOutStep
.
ToNextStep
(
BenQ_IN_FROM_OUT_STEP
.
SHELF_TO_UPDOWN
);
// benQInFromOutStep.Msg = "检测到右侧提升机有料架,提升机上升";
benQInFromOutStep
.
Msg
=
"检测到右侧提升机有料架[准备送满料],提升机上升"
;
// benQInFromOutStep.AddIoWait(IO_Type.R_LeftStopCheck, IO_VALUE.HIGH);
benQInFromOutStep
.
AddIoWait
(
IO_Type
.
R_LeftStopCheck
,
IO_VALUE
.
HIGH
);
// benQInFromOutStep.AddIoWait(IO_Type.R_RightStopCheck, IO_VALUE.HIGH);
benQInFromOutStep
.
AddIoWait
(
IO_Type
.
R_RightStopCheck
,
IO_VALUE
.
HIGH
);
//}
}
else
if
(
hasShelfRight
&&
!
noShelfLeft
&&
chainNoRun
)
{
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
);
benQInFromOutStep
.
AddIoWait
(
IO_Type
.
R_RightStopCheck
,
IO_VALUE
.
HIGH
);
}
}
}
else
else
{
{
...
@@ -168,14 +176,13 @@ namespace OnlineStore.DeviceLibrary
...
@@ -168,14 +176,13 @@ namespace OnlineStore.DeviceLibrary
bool
shelfUp
=
IOValue
(
IO_Type
.
R_Updown_Up
).
Equals
(
IO_VALUE
.
HIGH
);
bool
shelfUp
=
IOValue
(
IO_Type
.
R_Updown_Up
).
Equals
(
IO_VALUE
.
HIGH
);
if
(!
shelfUp
)
if
(!
shelfUp
)
return
;
return
;
if
(!
rHBuffTransStep
.
IsStep
(
RBUFF_TRANVERSE_STEP
.
NONE
))
return
;
if
(
benQInFromOutStep
.
IsFinished
())
//提升机到达上层
if
(
benQInFromOutStep
.
IsFinished
())
//提升机到达上层
{
{
benQInFromOutStep
.
ToNextStep
(
BenQ_IN_FROM_OUT_STEP
.
SHELF_ENTER
);
benQInFromOutStep
.
ToNextStep
(
BenQ_IN_FROM_OUT_STEP
.
SHELF_ENTER
);
benQInFromOutStep
.
Msg
=
"料架到达右侧提升机上层,准备送出料架"
;
benQInFromOutStep
.
Msg
=
"料架到达右侧提升机上层,准备送出料架"
;
benQInFromOutStep
.
AddIoWait
(
IO_Type
.
R_LeftStopCheck
,
IO_VALUE
.
LOW
,
5000
);
benQInFromOutStep
.
AddIoWait
(
IO_Type
.
R_LeftStopCheck
,
IO_VALUE
.
LOW
,
5000
);
benQInFromOutStep
.
AddIoWait
(
IO_Type
.
R_RightStopCheck
,
IO_VALUE
.
LOW
,
5000
);
benQInFromOutStep
.
AddIoWait
(
IO_Type
.
R_RightStopCheck
,
IO_VALUE
.
LOW
,
5000
);
benQInFromOutStep
.
AddIoWait
(
IO_Type
.
RHigh_FullCheck
,
IO_VALUE
.
HIGH
,
5000
);
CheckAndMove
(
IO_Type
.
RHigh_LineRun
,
IO_VALUE
.
HIGH
);
//右侧上层链条运行
CheckAndMove
(
IO_Type
.
RHigh_LineRun
,
IO_VALUE
.
HIGH
);
//右侧上层链条运行
CheckAndMove
(
IO_Type
.
R_OutLineBackRun
,
IO_VALUE
.
HIGH
);
CheckAndMove
(
IO_Type
.
R_OutLineBackRun
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
R_RightStopCylinder
,
IO_VALUE
.
HIGH
,
5000
);
IOMove
(
IO_Type
.
R_RightStopCylinder
,
IO_VALUE
.
HIGH
,
5000
);
...
@@ -185,7 +192,8 @@ namespace OnlineStore.DeviceLibrary
...
@@ -185,7 +192,8 @@ namespace OnlineStore.DeviceLibrary
}
}
else
if
(
benQInFromOutStep
.
IsStep
(
BenQ_IN_FROM_OUT_STEP
.
SHELF_ENTER
))
else
if
(
benQInFromOutStep
.
IsStep
(
BenQ_IN_FROM_OUT_STEP
.
SHELF_ENTER
))
{
{
bool
noShelf
=
IOManager
.
IOValue
(
IO_Type
.
R_LeftStopCheck
).
Equals
(
IO_VALUE
.
LOW
)
&&
IOManager
.
IOValue
(
IO_Type
.
R_RightStopCheck
).
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
)
&&
IOManager
.
IOValue
(
IO_Type
.
RHigh_FullCheck
).
Equals
(
IO_VALUE
.
HIGH
);
if
(
noShelf
&&
benQInFromOutStep
.
IsFinished
())
//料盘进入完成
if
(
noShelf
&&
benQInFromOutStep
.
IsFinished
())
//料盘进入完成
{
{
IOMove
(
IO_Type
.
R_RightStopCylinder
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
R_RightStopCylinder
,
IO_VALUE
.
LOW
);
...
@@ -200,6 +208,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -200,6 +208,7 @@ namespace OnlineStore.DeviceLibrary
}
}
else
else
{
{
KeepLineRun
(
IO_Type
.
RHigh_LineRun
);
CheckAndMove
(
IO_Type
.
R_RightStopCylinder
,
IO_VALUE
.
HIGH
);
CheckAndMove
(
IO_Type
.
R_RightStopCylinder
,
IO_VALUE
.
HIGH
);
CheckAndMove
(
IO_Type
.
R_LeftStopCylinder
,
IO_VALUE
.
HIGH
);
CheckAndMove
(
IO_Type
.
R_LeftStopCylinder
,
IO_VALUE
.
HIGH
);
}
}
...
@@ -210,8 +219,8 @@ namespace OnlineStore.DeviceLibrary
...
@@ -210,8 +219,8 @@ namespace OnlineStore.DeviceLibrary
{
{
benQInFromOutStep
.
ToNextStep
(
BenQ_IN_FROM_OUT_STEP
.
WAIT_SHELF_TO_READY_POS
);
benQInFromOutStep
.
ToNextStep
(
BenQ_IN_FROM_OUT_STEP
.
WAIT_SHELF_TO_READY_POS
);
benQInFromOutStep
.
Msg
=
"BenQ AGV 在右侧提升机将料架送入上层平台完成"
;
benQInFromOutStep
.
Msg
=
"BenQ AGV 在右侧提升机将料架送入上层平台完成"
;
benQInFromOutStep
.
AddIoWait
(
IO_Type
.
RHigh_StopCheck1
,
IO_VALUE
.
HIGH
);
benQInFromOutStep
.
AddIoWait
(
IO_Type
.
RHigh_StopCheck1
,
IO_VALUE
.
HIGH
);
benQInFromOutStep
.
AddTimeWait
(
1
0000
);
benQInFromOutStep
.
AddTimeWait
(
6
0000
);
}
}
}
}
else
if
(
benQInFromOutStep
.
IsStep
(
BenQ_IN_FROM_OUT_STEP
.
WAIT_SHELF_TO_READY_POS
))
else
if
(
benQInFromOutStep
.
IsStep
(
BenQ_IN_FROM_OUT_STEP
.
WAIT_SHELF_TO_READY_POS
))
...
...
source/DoubleLineClient_3D/App.config
查看文件 @
73972f2
...
@@ -51,7 +51,6 @@
...
@@ -51,7 +51,6 @@
<
conversionPattern
value
=
"[%date][%t]%-5p %m%n"
/>
<
conversionPattern
value
=
"[%date][%t]%-5p %m%n"
/>
</
layout
>
</
layout
>
</
appender
>
</
appender
>
<
logger
name
=
"RollingLogFileAppender"
>
<
logger
name
=
"RollingLogFileAppender"
>
<
level
value
=
"Info"
/>
<
level
value
=
"Info"
/>
<
appender
-
ref
ref
=
"RollingLogFileAppender"
/>
<
appender
-
ref
ref
=
"RollingLogFileAppender"
/>
...
@@ -60,10 +59,10 @@
...
@@ -60,10 +59,10 @@
<
level
value
=
"Error"
/>
<
level
value
=
"Error"
/>
<
appender
-
ref
ref
=
"TheRFID"
/>
<
appender
-
ref
ref
=
"TheRFID"
/>
</
logger
>
</
logger
>
<
!--<
root
>
<
root
name
=
"RollingLogFileAppender"
>
<
level
value
=
"Info"
/>
<
level
value
=
"Info"
/>
<
appender
-
ref
ref
=
"RollingLogFileAppender"
/>
<
appender
-
ref
ref
=
"RollingLogFileAppender"
/>
</
root
>
-->
</
root
>
</
log4net
>
</
log4net
>
<
startup
>
<
startup
>
<
supportedRuntime
version
=
"v4.0"
sku
=
".NETFramework,Version=v4.6.1"
/>
<
supportedRuntime
version
=
"v4.0"
sku
=
".NETFramework,Version=v4.6.1"
/>
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论