Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
刘韬
/
SO827-AutoScanAndLabel
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 56df514c
由
张东亮
编写于
2022-09-20 21:58:13 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
agv呼叫重置流程时不执行进出料串
1 个父辈
bc933daf
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
72 行增加
和
39 行删除
AutoScanAndLabel/UC/AgvControl.cs
AutoScanAndLabel/UC/AgvControl.cs
查看文件 @
56df514
...
...
@@ -13,6 +13,7 @@ using System.Text;
using
System.Threading
;
using
System.Threading.Tasks
;
using
System.Windows.Forms
;
using
System.Net.NetworkInformation
;
namespace
AutoScanAndLabel.UC
{
...
...
@@ -96,6 +97,10 @@ namespace AutoScanAndLabel.UC
}));
}
public
bool
InCalling
=
false
;
private
bool
canCall
()
{
return
!
InCalling
&&
(
handleAgv
==
null
||
(
handleAgv
!=
null
&&
handleAgv
.
IsCompleted
));
}
private
void
button_rightneedempty_Click
(
object
sender
,
EventArgs
e
)
{
if
(!
RobotManage
.
isRunning
)
...
...
@@ -103,14 +108,15 @@ namespace AutoScanAndLabel.UC
MessageBox
.
Show
(
crc
.
GetString
(
"Res0079"
,
"机器尚未启动不能呼叫Agv"
));
return
;
}
if
(
InCalling
)
if
(
!
canCall
()
)
{
MessageBox
.
Show
(
crc
.
GetString
(
"Res0035"
,
"已呼叫Agv,不能重复呼叫"
));
return
;
}
if
(
RobotManage
.
mainMachine
.
IOValue
(
IO_Type
.
RightEnd_Check
).
Equals
(
IO_VALUE
.
LOW
))
{
Task
.
Run
(()
=>
LogUtil
.
info
(
"开始入口满料串送入流程"
);
handleAgv
=
Task
.
Run
(()
=>
{
InCalling
=
true
;
//请求AGV代码放这里
...
...
@@ -118,19 +124,24 @@ namespace AutoScanAndLabel.UC
//等待agv到位
while
(!
WaitMissionOk
())
{
// Task.Delay(1000).Wait();
Thread
.
Sleep
(
1000
);
if
(!
InCalling
)
return
;
waitTmie
();
}
RobotManage
.
mainMachine
.
RightMoveInfo
.
NewMove
(
MoveStep
.
R40_InShelf
);
//等待agv到位后执行,启动进入
if
(
InCalling
)
RobotManage
.
mainMachine
.
RightMoveInfo
.
NewMove
(
MoveStep
.
R40_InShelf
);
//等待agv到位后执行,启动进入
ShelfOutAgv
();
while
(
RobotManage
.
mainMachine
.
RightMoveInfo
.
MoveStep
>=
MoveStep
.
R40_InShelf
)
{
Task
.
Delay
(
1000
).
Wait
();
if
(!
InCalling
)
return
;
waitTmie
();
}
while
(!
WaitMissionOk
())
{
//Task.Delay(1000).Wait();
Thread
.
Sleep
(
1000
);
if
(!
InCalling
)
return
;
waitTmie
();
}
ToStandby
();
//通知agv上料结束, 也可以把上料结束的代码放到 R40_InShelf的结束步骤里去
...
...
@@ -148,15 +159,15 @@ namespace AutoScanAndLabel.UC
MessageBox
.
Show
(
crc
.
GetString
(
"Res0079"
,
"机器尚未启动不能呼叫Agv"
));
return
;
}
if
(
InCalling
)
if
(
!
canCall
()
)
{
MessageBox
.
Show
(
crc
.
GetString
(
"Res0035"
,
"已呼叫Agv,不能重复呼叫"
));
return
;
}
if
(
RobotManage
.
mainMachine
.
IOValue
(
IO_Type
.
RightEnd_Check
).
Equals
(
IO_VALUE
.
HIGH
))
{
Task
.
Run
(()
=>
LogUtil
.
info
(
"开始入口空料串取出流程"
);
handleAgv
=
Task
.
Run
(()
=>
{
InCalling
=
true
;
//请求AGV代码放这里
...
...
@@ -164,21 +175,25 @@ namespace AutoScanAndLabel.UC
//等待agv到位
while
(!
WaitMissionOk
())
{
//Task.Delay(1000).Wait();
Thread
.
Sleep
(
1000
);
if
(!
InCalling
)
return
;
waitTmie
();
}
RobotManage
.
mainMachine
.
RightMoveInfo
.
NewMove
(
MoveStep
.
R30_OutShelf
);
//等待agv到位后执行,启动料串离开
if
(
InCalling
)
RobotManage
.
mainMachine
.
RightMoveInfo
.
NewMove
(
MoveStep
.
R30_OutShelf
);
//等待agv到位后执行,启动料串离开
ShelfEnterAgv
();
while
(
RobotManage
.
mainMachine
.
RightMoveInfo
.
MoveStep
>=
MoveStep
.
R30_OutShelf
)
{
//Task.Delay(1000).Wait();
Thread
.
Sleep
(
1000
);
if
(!
InCalling
)
return
;
waitTmie
();
}
//通知agv上料结束, 也可以把上料结束的代码放到R30_OutShelf的结束步骤里去
while
(!
WaitMissionOk
())
{
//Task.Delay(1000).Wait();
Thread
.
Sleep
(
1000
);
if
(!
InCalling
)
return
;
waitTmie
();
}
ToStandby
();
InCalling
=
false
;
...
...
@@ -218,18 +233,24 @@ namespace AutoScanAndLabel.UC
}
private
bool
WaitMissionOk
()
{
bool
rtn
=
WaitMissionOk
((
uint
)
AGVManager
.
CurMissionId
);
if
(
rtn
)
bool
rtn
=
WaitMissionOk
((
uint
)
AGVManager
.
CurMissionId
);
if
(
rtn
)
{
LogUtil
.
info
(
"任务编号"
+
AGVManager
.
CurMissionId
+
"执行完成"
);
LogUtil
.
info
(
"任务编号"
+
AGVManager
.
CurMissionId
+
"执行完成"
);
}
return
rtn
;
}
void
autoAddMision
(
int
id
)
{
if
(!
InCalling
)
return
;
AGVManager
.
AddMission
(
id
);
LogUtil
.
info
(
"自动任务:发送任务编号"
+
id
);
}
void
waitTmie
()
{
Thread
.
Sleep
(
300
);
}
private
void
button_Leftleavefull_Click
(
object
sender
,
EventArgs
e
)
{
if
(!
RobotManage
.
isRunning
)
...
...
@@ -237,14 +258,15 @@ namespace AutoScanAndLabel.UC
MessageBox
.
Show
(
crc
.
GetString
(
"Res0079"
,
"机器尚未启动不能呼叫Agv"
));
return
;
}
if
(
InCalling
)
if
(
!
canCall
()
)
{
MessageBox
.
Show
(
crc
.
GetString
(
"Res0035"
,
"已呼叫Agv,不能重复呼叫"
));
return
;
}
if
(
RobotManage
.
mainMachine
.
IOValue
(
IO_Type
.
LeftEnd_Check
).
Equals
(
IO_VALUE
.
HIGH
))
{
Task
.
Run
(()
=>
LogUtil
.
info
(
"开始出口AGV满料串取出流程"
);
handleAgv
=
Task
.
Run
(()
=>
{
InCalling
=
true
;
//请求AGV代码放这里
...
...
@@ -252,22 +274,26 @@ namespace AutoScanAndLabel.UC
//等待agv到位
while
(!
WaitMissionOk
())
{
//Task.Delay(1000).Wait();
Thread
.
Sleep
(
1000
);
if
(!
InCalling
)
return
;
waitTmie
();
}
RobotManage
.
mainMachine
.
LeftMoveInfo
.
NewMove
(
MoveStep
.
L50_OutShelf
);
//等待agv到位后执行,启动料串离开
if
(
InCalling
)
RobotManage
.
mainMachine
.
LeftMoveInfo
.
NewMove
(
MoveStep
.
L50_OutShelf
);
//等待agv到位后执行,启动料串离开
ShelfEnterAgv
();
while
(
RobotManage
.
mainMachine
.
LeftMoveInfo
.
MoveStep
>=
MoveStep
.
L50_OutShelf
)
{
//Task.Delay(1000).Wait();
Thread
.
Sleep
(
1000
);
if
(!
InCalling
)
return
;
waitTmie
();
}
//通知agv上料结束, 也可以把上料结束的代码放到L50_OutShelf的结束步骤里去
//等待agv到位
while
(!
WaitMissionOk
())
{
//Task.Delay(1000).Wait();
Thread
.
Sleep
(
1000
);
if
(!
InCalling
)
return
;
waitTmie
();
}
ToStandby
();
InCalling
=
false
;
...
...
@@ -276,6 +302,7 @@ namespace AutoScanAndLabel.UC
else
MessageBox
.
Show
(
crc
.
GetString
(
"Res0081"
,
"当前没有料串不能请求取料串"
));
}
Task
handleAgv
=
null
;
private
void
button_leftneedempty_Click
(
object
sender
,
EventArgs
e
)
{
...
...
@@ -284,14 +311,15 @@ namespace AutoScanAndLabel.UC
MessageBox
.
Show
(
crc
.
GetString
(
"Res0079"
,
"机器尚未启动不能呼叫Agv"
));
return
;
}
if
(
InCalling
)
if
(
!
canCall
()
)
{
MessageBox
.
Show
(
crc
.
GetString
(
"Res0035"
,
"已呼叫Agv,不能重复呼叫"
));
return
;
}
if
(
RobotManage
.
mainMachine
.
IOValue
(
IO_Type
.
LeftEnd_Check
).
Equals
(
IO_VALUE
.
LOW
))
{
Task
.
Run
(()
=>
LogUtil
.
info
(
"开始出口空料串送入流程"
);
handleAgv
=
Task
.
Run
(()
=>
{
InCalling
=
true
;
//请求AGV代码放这里
...
...
@@ -299,21 +327,25 @@ namespace AutoScanAndLabel.UC
//等待agv到位
while
(!
WaitMissionOk
())
{
//Task.Delay(1000).Wait();
Thread
.
Sleep
(
1000
);
if
(!
InCalling
)
return
;
waitTmie
();
}
RobotManage
.
mainMachine
.
LeftMoveInfo
.
NewMove
(
MoveStep
.
L60_InShelf
);
//等待agv到位后执行,启动进入
if
(
InCalling
)
RobotManage
.
mainMachine
.
LeftMoveInfo
.
NewMove
(
MoveStep
.
L60_InShelf
);
//等待agv到位后执行,启动进入
ShelfOutAgv
();
while
(
RobotManage
.
mainMachine
.
LeftMoveInfo
.
MoveStep
>=
MoveStep
.
L60_InShelf
)
{
//Task.Delay(1000).Wait();
Thread
.
Sleep
(
1000
);
if
(!
InCalling
)
return
;
waitTmie
();
}
//通知agv上料结束, 也可以把上料结束的代码放到 L60_InShelf的结束步骤里去
while
(!
WaitMissionOk
())
{
//Task.Delay(1000).Wait();
Thread
.
Sleep
(
1000
);
if
(!
InCalling
)
return
;
waitTmie
();
}
ToStandby
();
InCalling
=
false
;
...
...
@@ -341,6 +373,7 @@ namespace AutoScanAndLabel.UC
private
void
button2_Click
(
object
sender
,
EventArgs
e
)
{
InCalling
=
false
;
LogUtil
.
info
(
"重置呼叫"
);
}
}
}
\ No newline at end of file
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论