Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
张东亮
/
Qisda-SO1037-AGVDispatch
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 5fad85aa
由
张东亮
编写于
2022-12-15 16:58:49 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
启用空台车项目
1 个父辈
ab1c3da7
显示空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
74 行增加
和
178 行删除
DeviceLibrary/bean/job/LineOneToManyJob.cs
DeviceLibrary/bean/job/SteelLiftToLinesJob.cs
DeviceLibrary/bean/job/SteelLineToLiftJob.cs
DeviceLibrary/bean/job/SwitchShelfJob.cs
DeviceLibrary/manager/MissionManager.cs
DeviceLibrary/bean/job/LineOneToManyJob.cs
查看文件 @
5fad85a
...
...
@@ -27,7 +27,7 @@ namespace DeviceLibrary.bean.job
runInfo
=
$
"任务开始,去{JobParam.SrcNode.AliceName}的取料点"
;
//任务状态变更
MissionManager
.
SetMissionState
(
JobParam
.
GetMissionInfo
().
missionId
,
service
.
model
.
MissionState
.
已分配
,
out
string
msg
);
AllocateTask
(
agv
,
$
"{JobParam.SrcNode.Name}_{SettingString.PutShelfOn
}"
);
ToPutShelfOn
(
agv
,
$
"{JobParam.SrcNode.Name
}"
);
JobRunStep
.
Msg
=
runInfo
;
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
SD_Line_OneToMany_01_ToPickUpPosition
))
...
...
@@ -59,7 +59,7 @@ namespace DeviceLibrary.bean.job
runInfo
=
$
"在{JobParam.SrcNode.AliceName}拾取料车完成,去{JobParam.CurTargetNode.AliceName}的放料点"
;
//任务状态变更
MissionManager
.
SetMissionState
(
JobParam
.
GetMissionInfo
().
missionId
,
service
.
model
.
MissionState
.
送料
,
out
string
msg
);
AllocateTask
(
agv
,
$
"{JobParam.CurTargetNode.Name}_{SettingString.TakeShelfOff
}"
);
ToTakeShelfOff
(
agv
,
$
"{JobParam.CurTargetNode.Name
}"
);
JobRunStep
.
Msg
=
runInfo
;
}
}
...
...
@@ -132,7 +132,7 @@ namespace DeviceLibrary.bean.job
System
.
Threading
.
Thread
.
Sleep
(
1000
);
runInfo
=
$
"去下一线体{JobParam.CurTargetNode.AliceName}的放料点"
;
JobRunStep
.
Msg
=
runInfo
;
AllocateTask
(
agv
,
$
"{JobParam.CurTargetNode.Name}_{SettingString.TakeShelfOff
}"
);
ToTakeShelfOff
(
agv
,
$
"{JobParam.CurTargetNode.Name
}"
);
}
else
{
...
...
@@ -142,7 +142,7 @@ namespace DeviceLibrary.bean.job
runInfo
=
$
"{JobParam.CurTargetNode.AliceName}是最后一个线体,分发结束,需要返回{JobParam.SrcNode.Name}的放料点"
;
//任务状态变更
MissionManager
.
SetMissionState
(
JobParam
.
GetMissionInfo
().
missionId
,
service
.
model
.
MissionState
.
返回起始地
,
out
string
msg
);
AllocateTask
(
agv
,
$
"{JobParam.SrcNode.Name}_{SettingString.TakeShelfOff
}"
);
ToTakeShelfOff
(
agv
,
$
"{JobParam.SrcNode.Name
}"
);
JobRunStep
.
Msg
=
runInfo
;
}
else
if
(
JobParam
.
GetMissionInfo
()
!=
null
&&
!
JobParam
.
GetMissionInfo
().
needBack
)
...
...
@@ -150,7 +150,7 @@ namespace DeviceLibrary.bean.job
JobRunStep
.
ToNextStep
(
RunStep
.
SD_Line_OnToMany_08_TakeShelfOff
);
runInfo
=
$
"{JobParam.CurTargetNode.AliceName}是最后一个线体,分发结束,无需返回,直接卸下"
;
JobRunStep
.
Msg
=
runInfo
;
AllocateTask
(
agv
,
$
"{SettingString.TakeShelfOff}"
);
TakeShelfOff
(
agv
);
}
else
{
...
...
@@ -171,7 +171,7 @@ namespace DeviceLibrary.bean.job
$
"到达{ JobParam.SrcNode.Name }"
));
runInfo
=
$
"到达{JobParam.SrcNode.AliceName}的放料点,准备卸下料车"
;
JobRunStep
.
Msg
=
runInfo
;
AllocateTask
(
agv
,
SettingString
.
TakeShelfOff
);
TakeShelfOff
(
agv
);
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
SD_Line_OnToMany_08_TakeShelfOff
))
...
...
DeviceLibrary/bean/job/SteelLiftToLinesJob.cs
查看文件 @
5fad85a
...
...
@@ -20,7 +20,6 @@ namespace DeviceLibrary.bean.job
{
}
lift
.
LiftStatus
liftStatus
;
public
override
Job
Run
(
AgvInfo
agv
)
{
agv
.
SetJobContext
(
new
bean
.
agv
.
JobContext
()
...
...
@@ -37,7 +36,7 @@ namespace DeviceLibrary.bean.job
JobRunStep
.
ToNextStep
(
RunStep
.
Steel_LiftToLine_01_ToLift
);
runInfo
=
$
"任务开始:去{JobParam.SrcNode.AliceName}"
;
JobRunStep
.
Msg
=
runInfo
;
AllocateTask
(
agv
,
JobParam
.
SrcNode
.
Name
);
ToLift
(
agv
,
JobParam
.
SrcNode
.
Name
);
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
Steel_LiftToLine_01_ToLift
))
{
...
...
@@ -60,7 +59,7 @@ namespace DeviceLibrary.bean.job
JobRunStep
.
ToNextStep
(
RunStep
.
Steel_LiftToLine_03_EnterLift
);
SetLiftOccupied
(
JobParam
.
SrcNode
.
Name
,
agv
);
runInfo
=
$
"{JobParam.SrcNode.AliceName}门已开启,进电梯取料点"
;
AllocateTask
(
agv
,
$
"{JobParam.SrcNode.Name}_{SettingString.PutShelfOn}"
);
ToPutShelfOn
(
agv
,
JobParam
.
SrcNode
.
Name
);
//任务状态变更
MissionManager
.
SetMissionState
(
JobParam
.
GetMissionInfo
().
missionId
,
service
.
model
.
MissionState
.
电梯到达
,
out
string
msg
);
JobRunStep
.
Msg
=
runInfo
;
...
...
@@ -74,7 +73,6 @@ namespace DeviceLibrary.bean.job
runInfo
=
$
"到达{JobParam.SrcNode.AliceName}取料点,准备拾取料车"
;
JobRunStep
.
Msg
=
runInfo
;
PutLiftShelfOn
(
agv
,
JobParam
.
SrcNode
.
Name
);
//AllocateTask(agv, $"{SettingString.PutShelfOn}_{JobParam.SrcNode.Name}");
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
Steel_LiftToLine_04_PutShelfOn
))
...
...
@@ -89,7 +87,7 @@ namespace DeviceLibrary.bean.job
runInfo
=
$
"在{JobParam.SrcNode.AliceName}拾取料车完成,准备离开"
;
JobRunStep
.
Msg
=
runInfo
;
AllocateTask
(
agv
,
$
"{SettingString.Leave}_
{JobParam.SrcNode.Name}"
);
LeaveLift
(
agv
,
$
"
{JobParam.SrcNode.Name}"
);
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
Steel_LiftToLine_05_LeaveLift
))
...
...
@@ -103,6 +101,7 @@ namespace DeviceLibrary.bean.job
//任务状态变更
MissionManager
.
SetMissionState
(
JobParam
.
GetMissionInfo
().
missionId
,
service
.
model
.
MissionState
.
离开电梯
,
out
string
msg
);
JobRunStep
.
Msg
=
runInfo
;
ClearLiftNodeOccupied
(
agv
);
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
Steel_LiftToLine_06_CloseLiftDoor
))
...
...
DeviceLibrary/bean/job/SteelLineToLiftJob.cs
查看文件 @
5fad85a
using
Common
;
using
DeviceLibrary.bean
;
using
DeviceLibrary.lift
;
using
DeviceLibrary.manager
;
using
DeviceLibrary.service.model
;
using
System
;
namespace
DeviceLibrary
{
/// <summary>
/// 3D钢网
入库
到电梯
/// 3D钢网
任务 线体
到电梯
/// </summary>
public
class
SteelLineToLiftJob
:
Job
{
/// <summary>
///
1F满架运送任务
///
3D钢网任务 线体到电梯
/// </summary>
public
SteelLineToLiftJob
(
JobParam
jobParam
)
:
base
(
jobParam
)
{
...
...
@@ -20,9 +22,9 @@ namespace DeviceLibrary
{
}
lift
.
LiftStatus
liftStatus
;
public
override
Job
Run
(
AgvInfo
agv
)
{
Job
job
=
this
;
agv
.
SetJobContext
(
new
bean
.
agv
.
JobContext
()
{
MissionId
=
JobParam
.
GetMissionInfo
().
missionId
,
...
...
@@ -61,6 +63,8 @@ namespace DeviceLibrary
{
if
(
agv
.
TaskRunState
.
CheckTaskFinished
(
agv
.
Name
))
{
if
(
JobParam
.
GetMissionInfo
().
projectType
.
Equals
(
ProjectType
.
钢网入库
))
{
JobRunStep
.
ToNextStep
(
RunStep
.
LineToLift_ToSteelSrc
);
//上报状态
manager
.
UploadManager
.
UploadTransportStatus
(
new
service
.
model
.
TransportStatus
(
agv
.
CurJob
.
JobParam
.
GetMissionInfo
().
missionId
,
...
...
@@ -70,6 +74,13 @@ namespace DeviceLibrary
ToTakeShelfOff
(
agv
,
JobParam
.
SrcNode
.
Name
);
JobRunStep
.
Msg
=
runInfo
;
}
else
{
JobRunStep
.
ToNextStep
(
RunStep
.
LineToLift_WaitConfirm
);
runInfo
=
$
"钢网领用任务,直接去电梯口"
;
JobRunStep
.
Msg
=
runInfo
;
}
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
LineToLift_ToSteelSrc
))
{
...
...
@@ -109,13 +120,36 @@ namespace DeviceLibrary
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
LineToLift_WaitConfirm
))
{
if
(
TargetIsOccupied
(
agv
,
JobParam
.
CurTargetNode
.
Name
))
{
JobRunStep
.
ToNextStep
(
RunStep
.
LineToLift_ToStandby
);
runInfo
=
$
"{JobParam.CurTargetNode.AliceName}有小车,去待机点"
;
ToStandby
(
agv
);
}
else
{
JobRunStep
.
ToNextStep
(
RunStep
.
LineToLift_03_ToLift
);
runInfo
=
$
"在{JobParam.SrcNode.AliceName}确认完成,去{JobParam.CurTargetNode.AliceName}"
;
//任务状态变更
MissionManager
.
SetMissionState
(
JobParam
.
GetMissionInfo
().
missionId
,
service
.
model
.
MissionState
.
前往电梯
,
out
string
msg
);
ToLift
(
agv
,
JobParam
.
CurTargetNode
.
Name
);
JobRunStep
.
Msg
=
runInfo
;
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
LineToLift_ToStandby
))
{
if
(
TargetIsOccupied
(
agv
,
JobParam
.
CurTargetNode
.
Name
))
{
}
else
{
JobRunStep
.
ToNextStep
(
RunStep
.
LineToLift_03_ToLift
);
runInfo
=
$
"{JobParam.CurTargetNode.AliceName}已空闲"
;
//任务状态变更
MissionManager
.
SetMissionState
(
JobParam
.
GetMissionInfo
().
missionId
,
service
.
model
.
MissionState
.
前往电梯
,
out
string
msg
);
ToLift
(
agv
,
JobParam
.
CurTargetNode
.
Name
);
JobRunStep
.
Msg
=
runInfo
;
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
LineToLift_03_ToLift
))
{
...
...
@@ -138,20 +172,24 @@ namespace DeviceLibrary
{
if
(
lift
.
LiftContext
.
IsDoorOpen
(
JobParam
.
CurTargetNode
.
Name
,
JobParam
.
GetMissionInfo
().
sourceFloor
))
{
if
(
lift
.
LiftContext
.
HasShelfNeedLeave
(
JobParam
.
CurTargetNode
.
Name
,
agv
.
Client
,
out
l
iftStatus
))
if
(
lift
.
LiftContext
.
HasShelfNeedLeave
(
JobParam
.
CurTargetNode
.
Name
,
agv
.
Client
,
out
JobParam
.
L
iftStatus
))
{
JobRunStep
.
ToNextStep
(
RunStep
.
LineToLift_05_01_ToTemp1
);
SetLiftOccupied
(
JobParam
.
CurTargetNode
.
Name
,
agv
);
runInfo
=
$
"{JobParam.CurTargetNode.AliceName}已开门。电梯内有料车,去临时点1的卸料点,准备卸下车上料车"
;
ToTmp1TakeOff
(
agv
,
JobParam
.
CurTargetNode
.
Name
);
service
.
model
.
MissionInfo
missionInfo
=
manager
.
MissionManager
.
GetMission
(
liftStatus
.
missionId
);
MissionInfo
missionInfo
=
MissionManager
.
GetMission
(
JobParam
.
LiftStatus
?.
missionId
??
""
);
if
(
missionInfo
!=
null
)
{
//任务状态变更
MissionManager
.
SetMissionState
(
missionInfo
.
missionId
,
service
.
model
.
MissionState
.
返回电梯到达
,
out
string
msg
);
MissionManager
.
SetMissionOccupied
(
missionInfo
,
agv
);
job
=
new
SwitchShelfJob
(
JobParam
);
}
else
{
JobRunStep
.
ToNextStep
(
RunStep
.
LineToLift_05_01_ToStandby
);
//设置电梯占用
//SetLiftOccupied(JobParam.CurTargetNode.Name, agv);
runInfo
=
$
"{JobParam.CurTargetNode.AliceName}已开门。电梯内有送料的料车但无工单信息,去待机点,需要手动清空电梯缓存并关闭电梯门"
;
//
ToStandby
(
agv
);
JobRunStep
.
Msg
=
runInfo
;
}
}
else
{
JobRunStep
.
ToNextStep
(
RunStep
.
LineToLift_06_01_EnterLift
);
...
...
@@ -172,161 +210,16 @@ namespace DeviceLibrary
}
}
#
region
电梯内有料车
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
LineToLift_05_01_ToTemp1
))
{
if
(
agv
.
TaskRunState
.
CheckTaskFinished
(
agv
.
Name
))
{
JobRunStep
.
ToNextStep
(
RunStep
.
LineToLift_05_02_TakeShelfOffAtTemp1
);
runInfo
=
$
"到达{JobParam.CurTargetNode.AliceName}的临时点1,将车上料车卸下"
;
JobRunStep
.
Msg
=
runInfo
;
AllocateTask
(
agv
,
$
"{SettingString.TakeShelfOff}"
);
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
LineToLift_05_02_TakeShelfOffAtTemp1
))
{
if
(
agv
.
TaskRunState
.
CheckTaskFinished
(
agv
.
Name
))
{
JobRunStep
.
ToNextStep
(
RunStep
.
LineToLift_05_03_ToLift
);
runInfo
=
$
"在{JobParam.CurTargetNode.AliceName}将车上料车卸在临时点1完成,去电梯口"
;
JobRunStep
.
Msg
=
runInfo
;
AllocateTask
(
agv
,
$
"{JobParam.CurTargetNode.Name}"
);
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
LineToLift_05_03_ToLift
))
{
if
(
agv
.
TaskRunState
.
CheckTaskFinished
(
agv
.
Name
))
{
JobRunStep
.
ToNextStep
(
RunStep
.
LineToLift_05_04_EnterLift
);
runInfo
=
$
"到达{JobParam.CurTargetNode.AliceName},去取料点"
;
JobRunStep
.
Msg
=
runInfo
;
AllocateTask
(
agv
,
$
"{JobParam.CurTargetNode.Name}_{SettingString.PutShelfOn}"
);
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
LineToLift_05_04_EnterLift
))
{
if
(
agv
.
TaskRunState
.
CheckTaskFinished
(
agv
.
Name
))
{
JobRunStep
.
ToNextStep
(
RunStep
.
LineToLift_05_05_PutShelfOn
);
runInfo
=
$
"到达{JobParam.CurTargetNode.AliceName}的取料点,准备拾取料车"
;
JobRunStep
.
Msg
=
runInfo
;
PutLiftShelfOn
(
agv
,
JobParam
.
CurTargetNode
.
Name
);
//AllocateTask(agv, $"{SettingString.PutShelfOn}_{JobParam.CurTargetNode.Name}");
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
LineToLift_05_05_PutShelfOn
))
{
if
(
agv
.
TaskRunState
.
CheckTaskFinished
(
agv
.
Name
))
{
JobRunStep
.
ToNextStep
(
RunStep
.
LineToLift_05_06_LeaveLift
);
runInfo
=
$
"拾取{JobParam.CurTargetNode.AliceName}的料车完成,准备离开电梯"
;
JobRunStep
.
Msg
=
runInfo
;
AllocateTask
(
agv
,
$
"{SettingString.Leave}_{JobParam.CurTargetNode.Name}"
);
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
LineToLift_05_06_LeaveLift
))
{
if
(
agv
.
TaskRunState
.
CheckTaskFinished
(
agv
.
Name
))
{
JobRunStep
.
ToNextStep
(
RunStep
.
LineToLift_05_15_CloseDoor
);
//AGV离开
bool
rtn
=
lift
.
LiftContext
.
AGVLeave
(
JobParam
.
CurTargetNode
.
Name
,
agv
,
false
);
runInfo
=
$
"离开{JobParam.CurTargetNode.AliceName}完成,发送离开信号:{rtn}"
;
service
.
model
.
MissionInfo
missionInfo
=
manager
.
MissionManager
.
GetMission
(
liftStatus
.
missionId
);
if
(
missionInfo
!=
null
)
{
//任务状态变更
MissionManager
.
SetMissionState
(
missionInfo
.
missionId
,
service
.
model
.
MissionState
.
返回离开电梯
,
out
string
msg
);
}
JobRunStep
.
Msg
=
runInfo
;
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
LineToLift_05_15_CloseDoor
))
{
if
(
lift
.
LiftContext
.
CheckAgvLeaveSig
(
JobParam
.
CurTargetNode
.
Name
))
{
JobRunStep
.
ToNextStep
(
RunStep
.
LineToLift_05_18_ToStore
);
runInfo
=
$
"{JobParam.CurTargetNode.AliceName}关门完成,将料车送到{liftStatus.destinationPoint}的放料点"
;
service
.
model
.
MissionInfo
missionInfo
=
manager
.
MissionManager
.
GetMission
(
liftStatus
.
missionId
);
if
(
missionInfo
!=
null
)
{
//任务状态变更
MissionManager
.
SetMissionState
(
missionInfo
.
missionId
,
service
.
model
.
MissionState
.
返回起始地
,
out
string
msg
);
}
JobRunStep
.
Msg
=
runInfo
;
AllocateTask
(
agv
,
$
"{liftStatus.destinationPoint}_{SettingString.TakeShelfOff}"
);
}
else
if
(
JobRunStep
.
IsTimeOut
(
0.5
,
out
double
val
))
{
//AGV离开
lift
.
LiftContext
.
AGVLeave
(
JobParam
.
CurTargetNode
.
Name
,
agv
,
false
);
runInfo
=
$
"{JobParam.CurTargetNode.AliceName}离开信号超时重发"
;
JobRunStep
.
Msg
=
runInfo
;
System
.
Threading
.
Thread
.
Sleep
(
3000
);
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
LineToLift_05_18_ToStore
))
{
if
(
agv
.
TaskRunState
.
CheckTaskFinished
(
agv
.
Name
))
{
JobRunStep
.
ToNextStep
(
RunStep
.
LineToLift_05_19_TakeShelfOff
);
runInfo
=
$
"到达{liftStatus.destinationPoint}的放料点,准备卸下"
;
JobRunStep
.
Msg
=
runInfo
;
AllocateTask
(
agv
,
$
"{SettingString.TakeShelfOff}"
);
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
LineToLift_05_19_TakeShelfOff
))
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
LineToLift_05_01_ToStandby
))
{
if
(
agv
.
TaskRunState
.
CheckTaskFinished
(
agv
.
Name
))
if
(
!
TargetIsOccupied
(
agv
,
JobParam
.
CurTargetNode
.
Name
)
&&
!
LiftContext
.
IsDoorOpen
(
JobParam
.
CurTargetNode
.
Name
))
{
JobRunStep
.
ToNextStep
(
RunStep
.
LineToLift_05_10_ToTemp1
);
runInfo
=
$
"料车在{liftStatus.destinationPoint}卸下完成, 返回{JobParam.CurTargetNode.AliceName}的临时点1的取料点"
;
service
.
model
.
MissionInfo
missionInfo
=
manager
.
MissionManager
.
GetMission
(
liftStatus
.
missionId
);
if
(
missionInfo
!=
null
)
{
//任务状态变更
MissionManager
.
SetMissionState
(
missionInfo
.
missionId
,
service
.
model
.
MissionState
.
完成
,
out
string
msg
);
}
JobRunStep
.
Msg
=
runInfo
;
AllocateTask
(
agv
,
$
"{JobParam.CurTargetNode.Name}_{SettingString.Temp1}_{SettingString.PutShelfOn}"
);
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
LineToLift_05_10_ToTemp1
))
{
if
(
agv
.
TaskRunState
.
CheckTaskFinished
(
agv
.
Name
))
{
JobRunStep
.
ToNextStep
(
RunStep
.
LineToLift_05_11_PutTemp1ShelfOn
);
runInfo
=
$
"到达{JobParam.CurTargetNode.AliceName}的临时点1的取料点,准备拾取料架"
;
JobRunStep
.
Msg
=
runInfo
;
//AllocateTask(agv, $"{SettingString.PutShelfOn}");
PutShelfOn
(
agv
);
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
LineToLift_05_11_PutTemp1ShelfOn
))
{
if
(
agv
.
TaskRunState
.
CheckTaskFinished
(
agv
.
Name
))
{
JobRunStep
.
ToNextStep
(
RunStep
.
LineToLift_05_12_ToLift
);
runInfo
=
$
"拾取料架完成,去{JobParam.CurTargetNode.AliceName}"
;
JobRunStep
.
Msg
=
runInfo
;
AllocateTask
(
agv
,
$
"{JobParam.CurTargetNode.Name}"
);
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
LineToLift_05_12_ToLift
))
{
if
(
agv
.
TaskRunState
.
CheckTaskFinished
(
agv
.
Name
))
{
JobRunStep
.
ToNextStep
(
RunStep
.
LineToLift_04_CheckLiftStatus
);
runInfo
=
$
"到达{JobParam.CurTargetNode.AliceName},请求电梯"
;
JobRunStep
.
ToNextStep
(
RunStep
.
LineToLift_03_ToLift
);
runInfo
=
$
"{JobParam.CurTargetNode.AliceName}已空闲"
;
ToLift
(
agv
,
JobParam
.
CurTargetNode
.
Name
);
JobRunStep
.
Msg
=
runInfo
;
//请求电梯
lift
.
LiftContext
.
Request
(
JobParam
.
GetMissionInfo
(),
agv
);
System
.
Threading
.
Thread
.
Sleep
(
2000
);
}
}
#
endregion
#
region
电梯内无料车
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
LineToLift_06_01_EnterLift
))
{
...
...
@@ -388,7 +281,7 @@ namespace DeviceLibrary
JobRunStep
.
EndJob
();
return
null
;
}
return
this
;
return
job
;
}
}
...
...
DeviceLibrary/bean/job/SwitchShelfJob.cs
查看文件 @
5fad85a
...
...
@@ -90,8 +90,8 @@ namespace DeviceLibrary
if
(
AGVTaskIsFinished
(
agv
))
{
JobRunStep
.
ToNextStep
(
RunStep
.
Switch_03_ToLift
);
runInfo
=
$
"去{JobParam.CurTargetNode.AliceName},
,
{missionInfo()}"
;
MoveToNode
(
agv
,
JobParam
.
CurTargetNode
.
Name
);
runInfo
=
$
"去{JobParam.CurTargetNode.AliceName},{missionInfo()}"
;
//
MoveToNode(agv, JobParam.CurTargetNode.Name);
JobRunStep
.
Msg
=
runInfo
;
}
}
...
...
@@ -181,7 +181,7 @@ namespace DeviceLibrary
{
JobRunStep
.
ToNextStep
(
RunStep
.
Switch_11_ToLift
);
runInfo
=
$
"去{JobParam.CurTargetNode.AliceName},{missionInfo()}"
;
MoveToNode
(
agv
,
JobParam
.
CurTargetNode
.
Name
);
//
MoveToNode(agv, JobParam.CurTargetNode.Name);
JobRunStep
.
Msg
=
runInfo
;
}
}
...
...
DeviceLibrary/manager/MissionManager.cs
查看文件 @
5fad85a
...
...
@@ -456,7 +456,11 @@ namespace DeviceLibrary.manager
missionInfo
=
missions
.
Where
(
s
=>
s
.
destinationWorkshop
.
Equals
(
agv
.
Scope
.
Workshop
)
&&
s
.
sourceWorkshop
.
Equals
(
agv
.
Scope
.
Workshop
)
&&
((
s
.
projectType
.
Equals
(
ProjectType
.
半成品领用
))
||
(
s
.
sourceWorkshop
.
Equals
(
s
.
destinationWorkshop
)))
&&
((
s
.
projectType
.
Equals
(
ProjectType
.
半成品领用
)||
s
.
projectType
.
Equals
(
ProjectType
.
空台车领用
)||
s
.
projectType
.
Equals
(
ProjectType
.
空台车归还
))
||
(
s
.
sourceWorkshop
.
Equals
(
s
.
destinationWorkshop
)))
&&
(
s
.
state
==
MissionState
.
创建
)
&&
agv
.
Scope
.
Tasks
.
Contains
(
s
.
projectType
.
ToString
())).
FirstOrDefault
();
if
(
missionInfo
!=
null
&&
AgvCanGetMission
(
missionInfo
))
{
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论