Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
张东亮
/
Qisda-SO1037-AGVDispatch
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit c3d83b63
由
张东亮
编写于
2023-03-07 09:49:55 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
切换完料架后无占用agv问题
1 个父辈
9d3930d7
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
3 行增加
和
164 行删除
DeviceLibrary/bean/job/F1LiftD2ToLiftC1Job.cs
DeviceLibrary/bean/job/SwitchShelfJob.cs
DeviceLibrary/bean/job/F1LiftD2ToLiftC1Job.cs
查看文件 @
c3d83b6
...
...
@@ -205,29 +205,6 @@ namespace DeviceLibrary.bean.job
{
MissionManager
.
SetMissionOccupied
(
JobParam
.
GetMissionInfo
().
missionId
,
agv
);
job
=
new
SwitchShelfJob
(
JobParam
);
//service.model.MissionInfo missionInfo = manager.MissionManager.GetMission(liftStatus.missionId);
//if (IsBackShelf(missionInfo))
//{
// JobRunStep.ToNextStep(RunStep.S1F_LiftD2ToLiftC1_12_ToTemp1);
// SetLiftOccupied(JobParam.CurTargetNode.Name, agv);
// runInfo = $"{JobParam.CurTargetNode.AliceName}已开门。电梯内有料车,去临时点1的卸料点,准备卸下车上料车";//
// AllocateTask(agv, $"{JobParam.CurTargetNode.Name}_{SettingString.Temp1}_{SettingString.TakeShelfOff}");
// if (missionInfo != null)
// {
// //任务状态变更
// MissionManager.SetMissionState(missionInfo.missionId, service.model.MissionState.返回电梯到达, out string msg);
// }
// JobRunStep.Msg = runInfo;
//}
//else
//{
// JobRunStep.ToNextStep(RunStep.S1F_LiftD2ToLiftC1_12_ToStandby);
// // SetLiftOccupied(JobParam.CurTargetNode.Name, agv);
// runInfo = $"{JobParam.CurTargetNode.AliceName}已开门。电梯内有送料的料车,去待机点等待电梯空闲";//
// AllocateStandbyTask(agv);
// JobRunStep.Msg = runInfo;
//}
}
else
//if (!TargetIsOccupied(agv, JobParam.CurTargetNode.Name))
{
...
...
@@ -313,14 +290,6 @@ namespace DeviceLibrary.bean.job
runInfo
=
$
"到达{JobParam.CurTargetNode.AliceName}的临时点1,将车上料车卸下"
;
JobRunStep
.
Msg
=
runInfo
;
AllocateTask
(
agv
,
$
"{SettingString.TakeShelfOff}"
);
//JobRunStep.ToNextStep(RunStep.S1F_LiftD2ToLiftC1_08_CheckC1Status);
////上报状态
//runInfo = $"在{JobParam.CurTargetNode.AliceName}临时点请求电梯并等待开门";
//JobRunStep.Msg = runInfo;
////开始请求电梯
//lift.LiftContext.Request(JobParam.GetMissionInfo(), agv, true, true);
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
S1F_LiftD2ToLiftC1_13_TakeShelfOffAtTemp1
))
...
...
@@ -351,7 +320,6 @@ namespace DeviceLibrary.bean.job
runInfo
=
$
"到达{JobParam.CurTargetNode.AliceName}的取料点,准备拾取料车"
;
JobRunStep
.
Msg
=
runInfo
;
PutLiftShelfOn
(
agv
,
JobParam
.
CurTargetNode
.
Name
);
//AllocateTask(agv, $"{SettingString.PutShelfOn}_{JobParam.CurTargetNode.Name}");
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
S1F_LiftD2ToLiftC1_16_PutShelfOn
))
...
...
@@ -368,7 +336,7 @@ namespace DeviceLibrary.bean.job
{
if
(
agv
.
TaskRunState
.
CheckTaskFinished
(
agv
))
{
if
(
service
.
model
.
MissionInfo
.
IsFinishedProdcut
(
MissionManager
.
GetMission
(
JobParam
.
LiftStatus
.
missionId
)))
//电梯里的是成品入库料
//电梯里的是成品入库料
{
JobRunStep
.
ToNextStep
(
RunStep
.
S1F_LiftD2ToLiftC1_20_01_ToTemp2
);
runInfo
=
$
"离开{JobParam.CurTargetNode.AliceName}完成,去临时点2的放料点"
;
...
...
@@ -381,140 +349,9 @@ namespace DeviceLibrary.bean.job
AllocateTask
(
agv
,
$
"{JobParam.CurTargetNode.Name}_{SettingString.Temp2}_{SettingString.TakeShelfOff}"
);
JobRunStep
.
Msg
=
runInfo
;
}
else
{
JobRunStep
.
ToNextStep
(
RunStep
.
S1F_LiftD2ToLiftC1_18_CloseDoor
);
ClearLiftNodeOccupied
(
agv
);
//AGV离开
bool
rtn
=
lift
.
LiftContext
.
AGVLeave
(
JobParam
.
CurTargetNode
.
Name
,
agv
,
false
);
runInfo
=
$
"离开{JobParam.CurTargetNode.AliceName}完成,发送离开信号:{rtn}"
;
service
.
model
.
MissionInfo
missionInfo
=
manager
.
MissionManager
.
GetMission
(
JobParam
.
LiftStatus
.
missionId
);
if
(
missionInfo
!=
null
)
{
//任务状态变更
MissionManager
.
SetMissionState
(
missionInfo
.
missionId
,
service
.
model
.
MissionState
.
返回离开电梯
,
out
string
msg
);
}
JobRunStep
.
Msg
=
runInfo
;
}
}
}
#
region
送往库房的料车
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
S1F_LiftD2ToLiftC1_18_CloseDoor
))
{
if
(
lift
.
LiftContext
.
CheckAgvLeaveSig
(
JobParam
.
CurTargetNode
.
Name
))
{
JobRunStep
.
ToNextStep
(
RunStep
.
S1F_LiftD2ToLiftC1_19_01_ToStore
);
runInfo
=
$
"{JobParam.CurTargetNode.AliceName}关门完成,将料车送到{JobParam.LiftStatus.destinationPoint}的放料点"
;
service
.
model
.
MissionInfo
missionInfo
=
manager
.
MissionManager
.
GetMission
(
JobParam
.
LiftStatus
.
missionId
);
if
(
missionInfo
!=
null
)
{
//任务状态变更
MissionManager
.
SetMissionState
(
missionInfo
.
missionId
,
service
.
model
.
MissionState
.
返回起始地
,
out
string
msg
);
}
JobRunStep
.
Msg
=
runInfo
;
AllocateTask
(
agv
,
$
"{JobParam.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
);
}
}
#
region
库房的料车
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
S1F_LiftD2ToLiftC1_19_01_ToStore
))
{
if
(
agv
.
TaskRunState
.
CheckTaskFinished
(
agv
))
{
JobRunStep
.
ToNextStep
(
RunStep
.
S1F_LiftD2ToLiftC1_19_02_TakeShelfOff
);
runInfo
=
$
"到达{JobParam.LiftStatus.destinationPoint}的放料点,准备卸下"
;
JobRunStep
.
Msg
=
runInfo
;
AllocateTask
(
agv
,
$
"{SettingString.TakeShelfOff}"
);
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
S1F_LiftD2ToLiftC1_19_02_TakeShelfOff
))
{
if
(
agv
.
TaskRunState
.
CheckTaskFinished
(
agv
))
{
JobRunStep
.
ToNextStep
(
RunStep
.
S1F_LiftD2ToLiftC1_19_03_ToTemp1
);
runInfo
=
$
"料车在{JobParam.LiftStatus.destinationPoint}卸下完成, 返回{JobParam.CurTargetNode.AliceName}的临时点1的取料点"
;
service
.
model
.
MissionInfo
missionInfo
=
manager
.
MissionManager
.
GetMission
(
JobParam
.
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
.
S1F_LiftD2ToLiftC1_19_03_ToTemp1
))
{
if
(
agv
.
TaskRunState
.
CheckTaskFinished
(
agv
))
{
JobRunStep
.
ToNextStep
(
RunStep
.
S1F_LiftD2ToLiftC1_19_04_PutTemp1ShelfOn
);
runInfo
=
$
"到达{JobParam.CurTargetNode.AliceName}的临时点1的取料点,准备拾取料架"
;
JobRunStep
.
Msg
=
runInfo
;
//AllocateTask(agv, $"{SettingString.PutShelfOn}");
PutShelfOn
(
agv
);
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
S1F_LiftD2ToLiftC1_19_04_PutTemp1ShelfOn
))
{
if
(
agv
.
TaskRunState
.
CheckTaskFinished
(
agv
))
{
if
(
TargetIsOccupied
(
agv
,
JobParam
.
CurTargetNode
.
Name
))
{
JobRunStep
.
ToNextStep
(
RunStep
.
S1F_LiftD2ToLiftC1_19_05_ToStandby
);
runInfo
=
$
"在{JobParam.CurTargetNode.AliceName}有小车,去待机点"
;
JobRunStep
.
Msg
=
runInfo
;
MoveToNode
(
agv
,
$
"{SettingString.Standby}"
);
}
else
{
JobRunStep
.
ToNextStep
(
RunStep
.
S1F_LiftD2ToLiftC1_19_05_ToLift
);
runInfo
=
$
"拾取料架完成,去{JobParam.CurTargetNode.AliceName}"
;
JobRunStep
.
Msg
=
runInfo
;
ToLift
(
agv
,
$
"{JobParam.CurTargetNode.Name}"
);
}
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
S1F_LiftD2ToLiftC1_19_05_ToStandby
))
{
if
(
TargetIsOccupied
(
agv
,
JobParam
.
CurTargetNode
.
Name
))
{
}
else
{
JobRunStep
.
ToNextStep
(
RunStep
.
S1F_LiftD2ToLiftC1_19_05_ToLift
);
runInfo
=
$
"拾取料架完成,去{JobParam.CurTargetNode.AliceName}"
;
JobRunStep
.
Msg
=
runInfo
;
ToLift
(
agv
,
$
"{JobParam.CurTargetNode.Name}"
);
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
S1F_LiftD2ToLiftC1_19_05_ToLift
))
{
if
(
agv
.
TaskRunState
.
CheckTaskFinished
(
agv
))
{
JobRunStep
.
ToNextStep
(
RunStep
.
S1F_LiftD2ToLiftC1_08_CheckC1Status
);
runInfo
=
$
"到达{JobParam.CurTargetNode.AliceName},请求电梯"
;
JobRunStep
.
Msg
=
runInfo
;
//请求电梯
lift
.
LiftContext
.
Request
(
JobParam
.
GetMissionInfo
(),
agv
,
true
,
true
);
System
.
Threading
.
Thread
.
Sleep
(
2000
);
}
}
#
endregion
#
endregion
#
region
成品入库的料车
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
S1F_LiftD2ToLiftC1_20_01_ToTemp2
))
...
...
DeviceLibrary/bean/job/SwitchShelfJob.cs
查看文件 @
c3d83b6
...
...
@@ -350,6 +350,7 @@ namespace DeviceLibrary
{
if
(
missionInfo
.
projectType
.
Equals
(
ProjectType
.
钢网入库
)
||
missionInfo
.
projectType
.
Equals
(
ProjectType
.
钢网领用
))
{
MissionManager
.
SetMissionOccupied
(
missionInfo
,
agv
);
Node
src
=
manager
.
NodeManager
.
GetNode
(
missionInfo
.
liftName
,
NodeType
.
Lift
);
Node
dest
=
manager
.
NodeManager
.
GetNode
(
missionInfo
.
destinationPoint
,
NodeType
.
Node
);
JobParam
jobParam
=
new
JobParam
(
src
,
dest
,
null
,
missionInfo
);
...
...
@@ -379,6 +380,7 @@ namespace DeviceLibrary
}
}
MissionManager
.
SetMissionOccupied
(
missionInfo
,
agv
);
job
=
new
LiftToLinesJob
(
jobParam
);
job
.
JobRunStep
.
ToNextStep
(
RunStep
.
SD_LiftToLine_06_CloseLiftDoor
);
job
.
JobRunStep
.
Msg
=
$
"从{JobParam.CurTargetNode.AliceName}取料完成,继续执行任务:{JsonHelper.SerializeObject(missionInfo)}"
;
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论