Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
李娜
/
SO664-AssemblyLine
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 5f01dd7d
由
LN
编写于
2020-12-22 16:35:52 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
托盘处理修改
1 个父辈
24693584
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
61 行增加
和
36 行删除
source/DeviceLibrary/assemblyLine/HY/HY_C1Line.cs
source/DeviceLibrary/assemblyLine/HY/HY_C1Line.cs
查看文件 @
5f01dd7
...
@@ -178,7 +178,9 @@ namespace OnlineStore.DeviceLibrary
...
@@ -178,7 +178,9 @@ namespace OnlineStore.DeviceLibrary
private
Stopwatch
trayCheckWait
=
new
Stopwatch
();
//检测到托盘的时间
private
Stopwatch
trayCheckWait
=
new
Stopwatch
();
//检测到托盘的时间
private
Stopwatch
frontTrayCheckWait
=
new
Stopwatch
();
private
Stopwatch
trayCheck2LowWait
=
new
Stopwatch
();
//上一个托盘离开的时间
private
Stopwatch
trayCheck2LowWait
=
new
Stopwatch
();
//上一个托盘离开的时间
private
Stopwatch
olcheckWatch
=
new
Stopwatch
();
private
object
lockObj
=
""
;
private
object
lockObj
=
""
;
private
bool
preTrayIsC1Line
=
false
;
private
bool
preTrayIsC1Line
=
false
;
...
@@ -188,6 +190,33 @@ namespace OnlineStore.DeviceLibrary
...
@@ -188,6 +190,33 @@ namespace OnlineStore.DeviceLibrary
{
{
try
try
{
{
if
(
IOValue
(
IO_Type
.
HY_TrayCheck
).
Equals
(
IO_VALUE
.
HIGH
))
{
trayCheck2LowWait
.
Stop
();
CheckStopWatch
(
trayCheckWait
,
30000
,
false
);
}
else
{
trayCheckWait
.
Stop
();
CheckStopWatch
(
trayCheck2LowWait
,
30000
,
false
);
}
if
(
Config
.
DIList
.
ContainsKey
(
IO_Type
.
HY_FrontStopCheck
)
&&
IOValue
(
IO_Type
.
HY_FrontStopCheck
).
Equals
(
IO_VALUE
.
HIGH
))
{
CheckStopWatch
(
frontTrayCheckWait
,
30000
,
false
);
}
else
{
frontTrayCheckWait
.
Stop
();
}
if
(
Config
.
DIList
.
ContainsKey
(
IO_Type
.
HY_OL_Tray_Check
)
&&
IOValue
(
IO_Type
.
HY_OL_Tray_Check
).
Equals
(
IO_VALUE
.
HIGH
))
{
CheckStopWatch
(
olcheckWatch
,
30000
,
false
);
}
else
{
olcheckWatch
.
Stop
();
}
if
(
MoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
).
Equals
(
false
))
if
(
MoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
).
Equals
(
false
))
{
{
LogUtil
.
error
(
Name
+
" CheckFixture "
+
" 不在空闲中,直接返回 "
);
LogUtil
.
error
(
Name
+
" CheckFixture "
+
" 不在空闲中,直接返回 "
);
...
@@ -197,7 +226,6 @@ namespace OnlineStore.DeviceLibrary
...
@@ -197,7 +226,6 @@ namespace OnlineStore.DeviceLibrary
{
{
if
(
IOValue
(
IO_Type
.
HY_TrayCheck
).
Equals
(
IO_VALUE
.
HIGH
))
if
(
IOValue
(
IO_Type
.
HY_TrayCheck
).
Equals
(
IO_VALUE
.
HIGH
))
{
{
trayCheck2LowWait
.
Stop
();
if
(
CheckStopWatch
(
trayCheckWait
,
TrayWaitTime
,
true
))
if
(
CheckStopWatch
(
trayCheckWait
,
TrayWaitTime
,
true
))
{
{
//托盘在工位阻挡处
//托盘在工位阻挡处
...
@@ -217,44 +245,41 @@ namespace OnlineStore.DeviceLibrary
...
@@ -217,44 +245,41 @@ namespace OnlineStore.DeviceLibrary
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
30000
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
30000
));
}
}
}
}
else
if
(
preTrayIsC1Line
&&
Config
.
IsOutLineOut
&&
IOValue
(
IO_Type
.
HY_OL_Tray_Check
).
Equals
(
IO_VALUE
.
HIGH
))
else
{
//C1线和出料线交替处理
HY71_OL_Wait
();
}
else
if
(
Config
.
DIList
.
ContainsKey
(
IO_Type
.
HY_FrontStopCheck
)
&&
IOValue
(
IO_Type
.
HY_FrontStopCheck
).
Equals
(
IO_VALUE
.
HIGH
))
{
{
bool
check2IsOk
=
CheckStopWatch
(
trayCheck2LowWait
,
TrayWaitTime
,
false
);
bool
check2IsOk
=
CheckStopWatch
(
trayCheck2LowWait
,
TrayWaitTime
,
false
);
if
(
CheckStopWatch
(
trayCheckWait
,
TrayWaitTime
,
false
)
&&
check2IsOk
)
if
(
preTrayIsC1Line
&&
Config
.
IsOutLineOut
&&
IOValue
(
IO_Type
.
HY_OL_Tray_Check
).
Equals
(
IO_VALUE
.
HIGH
)
)
{
{
preTrayIsC1Line
=
true
;
//C1线和出料线交替处理
//托盘在前阻挡处
HY71_OL_Wait
();
trayCheckWait
.
Stop
();
}
trayCheck2LowWait
.
Stop
();
else
if
(
Config
.
DIList
.
ContainsKey
(
IO_Type
.
HY_FrontStopCheck
)
&&
IOValue
(
IO_Type
.
HY_FrontStopCheck
).
Equals
(
IO_VALUE
.
HIGH
))
MoveInfo
.
NewMove
(
LineMoveType
.
Fixture
);
{
runStatus
=
LineRunStatus
.
Busy
;
if
(
CheckStopWatch
(
frontTrayCheckWait
,
TrayWaitTime
,
false
)
&&
check2IsOk
)
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
HY02_FrontStopDown
);
{
CheckLog
(
" 托盘检测:"
+
MoveInfo
.
SLog
+
",检测到前阻挡托盘,前阻挡下降"
);
preTrayIsC1Line
=
true
;
ClearTrayRFID
();
//托盘在前阻挡处
IOMove
(
IO_Type
.
HY_FrontStopDown
,
IO_VALUE
.
HIGH
,
1200
);
frontTrayCheckWait
.
Stop
();
MoveInfo
.
OneWaitCanEndStep
=
true
;
trayCheck2LowWait
.
Stop
();
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
HY_FrontStopCheck
,
IO_VALUE
.
LOW
));
MoveInfo
.
NewMove
(
LineMoveType
.
Fixture
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
HY_TrayCheck
,
IO_VALUE
.
HIGH
));
runStatus
=
LineRunStatus
.
Busy
;
CylinderMove
(
null
,
IO_Type
.
HY_TopCylinder_Up
,
IO_Type
.
HY_TopCylinder_Down
);
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
HY02_FrontStopDown
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
30000
));
CheckLog
(
" 托盘检测:"
+
MoveInfo
.
SLog
+
",检测到前阻挡托盘,前阻挡下降"
);
IOMove
(
IO_Type
.
HY_OL_StopDown
,
IO_VALUE
.
LOW
);
ClearTrayRFID
();
IOMove
(
IO_Type
.
HY_FrontStopDown
,
IO_VALUE
.
HIGH
,
1200
);
MoveInfo
.
OneWaitCanEndStep
=
true
;
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
HY_FrontStopCheck
,
IO_VALUE
.
LOW
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
HY_TrayCheck
,
IO_VALUE
.
HIGH
));
CylinderMove
(
null
,
IO_Type
.
HY_TopCylinder_Up
,
IO_Type
.
HY_TopCylinder_Down
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
30000
));
IOMove
(
IO_Type
.
HY_OL_StopDown
,
IO_VALUE
.
LOW
);
}
}
else
if
(
Config
.
IsOutLineOut
&&
IOValue
(
IO_Type
.
HY_OL_Tray_Check
).
Equals
(
IO_VALUE
.
HIGH
))
{
HY71_OL_Wait
();
}
}
}
}
else
if
(
Config
.
IsOutLineOut
&&
IOValue
(
IO_Type
.
HY_OL_Tray_Check
).
Equals
(
IO_VALUE
.
HIGH
))
{
HY71_OL_Wait
();
}
else
{
bool
check2IsOk
=
CheckStopWatch
(
trayCheck2LowWait
,
TrayWaitTime
,
false
);
trayCheckWait
.
Stop
();
}
}
}
}
}
catch
(
Exception
ex
)
catch
(
Exception
ex
)
...
@@ -274,11 +299,11 @@ namespace OnlineStore.DeviceLibrary
...
@@ -274,11 +299,11 @@ namespace OnlineStore.DeviceLibrary
private
void
HY71_OL_Wait
()
private
void
HY71_OL_Wait
()
{
{
bool
check2IsOk
=
CheckStopWatch
(
trayCheck2LowWait
,
TrayWaitTime
,
false
);
bool
check2IsOk
=
CheckStopWatch
(
trayCheck2LowWait
,
TrayWaitTime
,
false
);
if
(
CheckStopWatch
(
trayCheckWait
,
TrayWaitTime
,
false
)
&&
check2IsOk
)
if
(
CheckStopWatch
(
olcheckWatch
,
TrayWaitTime
,
false
)
&&
check2IsOk
)
{
{
preTrayIsC1Line
=
false
;
preTrayIsC1Line
=
false
;
//托盘在前阻挡处
//托盘在前阻挡处
trayCheckWait
.
Stop
();
olcheckWatch
.
Stop
();
trayCheck2LowWait
.
Stop
();
trayCheck2LowWait
.
Stop
();
MoveInfo
.
NewMove
(
LineMoveType
.
Fixture
);
MoveInfo
.
NewMove
(
LineMoveType
.
Fixture
);
runStatus
=
LineRunStatus
.
Busy
;
runStatus
=
LineRunStatus
.
Busy
;
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论