Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
张东亮
/
3D-DISTLineClient
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 56936893
由
张东亮
编写于
2021-06-25 08:54:29 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
空料串出口会流出两个料串问题优化
1 个父辈
e85583ea
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
45 行增加
和
22 行删除
source/DeviceLibrary/acDISTLine/DISTLineBean.cs
source/DeviceLibrary/agvClient/AgvClient.cs
source/DeviceLibrary/bean/runStep/_system~.ini
source/DeviceLibrary/bean/runStep/steps/_system~.ini
source/DeviceLibrary/acDISTLine/DISTLineBean.cs
查看文件 @
5693689
...
@@ -265,7 +265,8 @@ namespace OnlineStore.DeviceLibrary
...
@@ -265,7 +265,8 @@ namespace OnlineStore.DeviceLibrary
LineAgvTimerProcess
();
LineAgvTimerProcess
();
OutLineTimerProcess
();
OutLineTimerProcess
();
EmptyOutLineTimerProcess
();
InLineTimerProcess
();
IOTimeOutProcess
();
IOTimeOutProcess
();
SleepTimerProcess
();
SleepTimerProcess
();
...
@@ -288,6 +289,8 @@ namespace OnlineStore.DeviceLibrary
...
@@ -288,6 +289,8 @@ namespace OnlineStore.DeviceLibrary
private
Stopwatch
ol_noshelfWatch1
=
new
Stopwatch
();
private
Stopwatch
ol_noshelfWatch1
=
new
Stopwatch
();
private
Stopwatch
ol_noshelfWatch2
=
new
Stopwatch
();
private
Stopwatch
ol_noshelfWatch2
=
new
Stopwatch
();
private
DateTime
ol_lastSendShelfTime
=
DateTime
.
Now
;
private
DateTime
ol_lastSendShelfTime
=
DateTime
.
Now
;
private
DateTime
ol_lastSendShelfTime1
=
DateTime
.
Now
;
private
DateTime
ol_lastSendShelfTime2
=
DateTime
.
Now
;
private
int
StopDownMS
=
1500
;
private
int
StopDownMS
=
1500
;
/// <summary>
/// <summary>
/// 出料线体定时处理
/// 出料线体定时处理
...
@@ -296,9 +299,6 @@ namespace OnlineStore.DeviceLibrary
...
@@ -296,9 +299,6 @@ namespace OnlineStore.DeviceLibrary
{
{
TimeSpan
span
=
DateTime
.
Now
-
ol_lastSendShelfTime
;
TimeSpan
span
=
DateTime
.
Now
-
ol_lastSendShelfTime
;
bool
manualSig
=
IOManager
.
IOValue
(
IO_Type
.
L1_ManualRecSig
).
Equals
(
IO_VALUE
.
HIGH
);
bool
l1_up_sig
=
IOManager
.
IOValue
(
IO_Type
.
L1_UpDown_Up_Sig
).
Equals
(
IO_VALUE
.
HIGH
);
bool
l2_up_sig
=
IOManager
.
IOValue
(
IO_Type
.
L2_UpDown_Up_Sig
).
Equals
(
IO_VALUE
.
HIGH
);
//如果出口无料架,持续1000以上,放开阻挡放出一个料架
//如果出口无料架,持续1000以上,放开阻挡放出一个料架
//每次放料架时间间隔3秒
//每次放料架时间间隔3秒
if
(
IOManager
.
IOValue
(
IO_Type
.
L2_StopCheck
).
Equals
(
IO_VALUE
.
HIGH
)
&&
if
(
IOManager
.
IOValue
(
IO_Type
.
L2_StopCheck
).
Equals
(
IO_VALUE
.
HIGH
)
&&
...
@@ -312,38 +312,62 @@ namespace OnlineStore.DeviceLibrary
...
@@ -312,38 +312,62 @@ namespace OnlineStore.DeviceLibrary
ol_lastSendShelfTime
=
DateTime
.
Now
;
ol_lastSendShelfTime
=
DateTime
.
Now
;
StopIOMove
(
IO_Type
.
L2_StopDown
,
StopDownMS
);
StopIOMove
(
IO_Type
.
L2_StopDown
,
StopDownMS
);
}
}
}
else
if
(
span
.
TotalMilliseconds
>
StopDownMS
)
{
ol_noshelfWatch
.
Stop
();
IOManager
.
CIOMove
(
IO_Type
.
L2_StopDown
,
IO_VALUE
.
LOW
);
}
}
else
if
(
IOManager
.
IOValue
(
IO_Type
.
L1_StopCheck
).
Equals
(
IO_VALUE
.
HIGH
)
&&
}
IOManager
.
IOValue
(
IO_Type
.
L1_OutCheck
).
Equals
(
IO_VALUE
.
LOW
)
&&
!
manualSig
&&
!
l1_up_sig
&&
span
.
TotalSeconds
>
3
)
private
void
EmptyOutLineTimerProcess
()
{
TimeSpan
span
=
DateTime
.
Now
-
ol_lastSendShelfTime1
;
//如果出口无料架,持续1000以上,放开阻挡放出一个料架
//每次放料架时间间隔3秒
if
(
IOManager
.
IOValue
(
IO_Type
.
L3_StopCheck
).
Equals
(
IO_VALUE
.
HIGH
)
&&
IOManager
.
IOValue
(
IO_Type
.
L3_OutCheck
).
Equals
(
IO_VALUE
.
LOW
)
&&
span
.
TotalSeconds
>
3
)
{
{
//如果出料线体出口无料架,放一个料架到出口
//如果出料线体出口无料架,放一个料架到出口
if
(
LineManager
.
checkWatch
(
ol_noshelfWatch1
,
1000
))
if
(
LineManager
.
checkWatch
(
ol_noshelfWatch1
,
1000
))
{
{
IOManager
.
CIOMove
(
IO_Type
.
L1_OutStopDown
,
IO_VALUE
.
LOW
);
IOManager
.
CIOMove
(
IO_Type
.
L1_OutStopDown
,
IO_VALUE
.
LOW
);
LogUtil
.
info
(
" 进料线体出口无料架,下降 ["
+
IO_Type
.
L1_StopDown
+
"] ["
+
StopDownMS
+
"] 秒"
);
LogUtil
.
info
(
" 空料串线体出口无料架,下降 ["
+
IO_Type
.
L3_StopDown
+
"] ["
+
StopDownMS
+
"] 秒"
);
ol_lastSendShelfTime
=
DateTime
.
Now
;
ol_lastSendShelfTime1
=
DateTime
.
Now
;
StopIOMove
(
IO_Type
.
L1_OutStopDown
,
StopDownMS
);
StopIOMove
(
IO_Type
.
L3_StopDown
,
StopDownMS
);
StopIOMove
(
IO_Type
.
L1_StopDown
,
StopDownMS
);
}
}
}
}
else
if
(
IOManager
.
IOValue
(
IO_Type
.
L3_StopCheck
).
Equals
(
IO_VALUE
.
HIGH
)
&&
else
if
(
span
.
TotalMilliseconds
>
StopDownMS
)
IOManager
.
IOValue
(
IO_Type
.
L3_OutCheck
).
Equals
(
IO_VALUE
.
LOW
)
&&
span
.
TotalSeconds
>
3
)
{
ol_noshelfWatch1
.
Stop
();
IOManager
.
CIOMove
(
IO_Type
.
L3_StopDown
,
IO_VALUE
.
LOW
);
}
}
private
void
InLineTimerProcess
()
{
TimeSpan
span
=
DateTime
.
Now
-
ol_lastSendShelfTime2
;
bool
manualSig
=
IOManager
.
IOValue
(
IO_Type
.
L1_ManualRecSig
).
Equals
(
IO_VALUE
.
HIGH
);
bool
l1_up_sig
=
IOManager
.
IOValue
(
IO_Type
.
L1_UpDown_Up_Sig
).
Equals
(
IO_VALUE
.
HIGH
);
bool
l2_up_sig
=
IOManager
.
IOValue
(
IO_Type
.
L2_UpDown_Up_Sig
).
Equals
(
IO_VALUE
.
HIGH
);
//如果出口无料架,持续1000以上,放开阻挡放出一个料架
//每次放料架时间间隔3秒
if
(
IOManager
.
IOValue
(
IO_Type
.
L1_StopCheck
).
Equals
(
IO_VALUE
.
HIGH
)
&&
IOManager
.
IOValue
(
IO_Type
.
L1_OutCheck
).
Equals
(
IO_VALUE
.
LOW
)
&&
!
manualSig
&&
!
l1_up_sig
&&
span
.
TotalSeconds
>
3
)
{
{
//如果出料线体出口无料架,放一个料架到出口
//如果出料线体出口无料架,放一个料架到出口
if
(
LineManager
.
checkWatch
(
ol_noshelfWatch
1
,
1000
))
if
(
LineManager
.
checkWatch
(
ol_noshelfWatch
2
,
1000
))
{
{
IOManager
.
CIOMove
(
IO_Type
.
L1_OutStopDown
,
IO_VALUE
.
LOW
);
IOManager
.
CIOMove
(
IO_Type
.
L1_OutStopDown
,
IO_VALUE
.
LOW
);
LogUtil
.
info
(
"
空料串线体出口无料架,下降 ["
+
IO_Type
.
L3
_StopDown
+
"] ["
+
StopDownMS
+
"] 秒"
);
LogUtil
.
info
(
"
进料线体出口无料架,下降 ["
+
IO_Type
.
L1
_StopDown
+
"] ["
+
StopDownMS
+
"] 秒"
);
ol_lastSendShelfTime
=
DateTime
.
Now
;
ol_lastSendShelfTime
2
=
DateTime
.
Now
;
StopIOMove
(
IO_Type
.
L
3
_OutStopDown
,
StopDownMS
);
StopIOMove
(
IO_Type
.
L
1
_OutStopDown
,
StopDownMS
);
StopIOMove
(
IO_Type
.
L
3
_StopDown
,
StopDownMS
);
StopIOMove
(
IO_Type
.
L
1
_StopDown
,
StopDownMS
);
}
}
}
}
else
if
(
span
.
TotalMilliseconds
>
StopDownMS
)
else
if
(
span
.
TotalMilliseconds
>
StopDownMS
)
{
{
ol_noshelfWatch
.
Stop
();
ol_noshelfWatch2
.
Stop
();
ol_noshelfWatch1
.
Stop
();
IOManager
.
CIOMove
(
IO_Type
.
L2_StopDown
,
IO_VALUE
.
LOW
);
IOManager
.
CIOMove
(
IO_Type
.
L1_StopDown
,
IO_VALUE
.
LOW
);
IOManager
.
CIOMove
(
IO_Type
.
L1_StopDown
,
IO_VALUE
.
LOW
);
}
}
...
...
source/DeviceLibrary/agvClient/AgvClient.cs
查看文件 @
5693689
...
@@ -131,11 +131,10 @@ namespace OnlineStore.DeviceLibrary
...
@@ -131,11 +131,10 @@ namespace OnlineStore.DeviceLibrary
if
(
IOManager
.
IOValue
(
IO_Type
.
L2_OutCheck
).
Equals
(
IO_VALUE
.
HIGH
))
if
(
IOManager
.
IOValue
(
IO_Type
.
L2_OutCheck
).
Equals
(
IO_VALUE
.
HIGH
))
{
{
LineManager
.
DISTLine
.
UpdateSleep
(
false
);
LineManager
.
DISTLine
.
UpdateSleep
(
false
);
LineManager
.
DISTLine
.
StopIOMove
(
IO_Type
.
L2_OutStopDown
,
1500
);
//agvClient.MayLeave(id);
//agvClient.MayLeave(id);
SetStatus
(
id
,
shefId
,
ClientAction
.
MayLeave
);
SetStatus
(
id
,
shefId
,
ClientAction
.
MayLeave
);
LineManager
.
DISTLine
.
StopIOMove
(
IO_Type
.
L2_OutStopDown
,
2000
);
LogUtil
.
info
(
logName
+
"下降 L2_OutStopDown , "
+
shefId
);
LogUtil
.
info
(
logName
+
"下降 L2_OutStopDown , "
+
shefId
);
Task
.
Factory
.
StartNew
(
delegate
Task
.
Factory
.
StartNew
(
delegate
{
{
//两秒后改为离开状态
//两秒后改为离开状态
...
...
source/DeviceLibrary/bean/runStep/_system~.ini
0 → 100644
查看文件 @
5693689
文件属性发生变化
source/DeviceLibrary/bean/runStep/steps/_system~.ini
0 → 100644
查看文件 @
5693689
文件属性发生变化
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论