Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
张东亮
/
Qisda-SO1037-AGVDispatch
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit dd8af787
由
张东亮
编写于
2023-09-20 09:14:48 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
1
1 个父辈
0a52a015
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
50 行增加
和
19 行删除
AGVDispatch/Manual.cs
DeviceLibrary/bean/job/ChargeJob.cs
DeviceLibrary/bean/job/Job.cs
DeviceLibrary/bean/job/SteelLiftToStorageJob.cs
AGVDispatch/Manual.cs
查看文件 @
dd8af78
...
...
@@ -125,12 +125,12 @@ namespace AGVControl
Agv
.
Place
=
new
Node
();
Agv
?.
TaskRunState
?.
ResetInfo
();
Agv
.
JobContext
=
new
DeviceLibrary
.
bean
.
agv
.
JobContext
();
LogUtil
.
info
(
$
"切换到手动"
);
LogUtil
.
info
(
$
"
{Agv.Name}
切换到手动"
);
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
$
"切换到手动异常"
,
ex
);
LogUtil
.
error
(
$
"
{Agv.Name}
切换到手动异常"
,
ex
);
}
manualTime
=
DateTime
.
Now
;
//添加Init任务
...
...
DeviceLibrary/bean/job/ChargeJob.cs
查看文件 @
dd8af78
...
...
@@ -33,16 +33,23 @@ namespace DeviceLibrary
if
(
JobRunStep
.
IsStep
(
RunStep
.
NONE
))
{
ClearLiftNodeOccupied
(
agv
);
if
(
NodeManager
.
linesInAirShower
[
agv
.
Scope
.
Workshop
].
Contains
(
JobParam
.
SrcNode
.
Name
))
{
JobParam
.
CrossDoor
.
CurNode
=
JobParam
.
SrcNode
;
JobParam
.
CrossDoor
.
NextNode
=
JobParam
.
CurTargetNode
;
JobParam
.
CrossDoor
.
IsIn
=
false
;
JobParam
.
CrossDoor
.
IsAir
=
true
;
GenJobCallBack
(
this
.
GetType
(),
RunStep
.
CHARGE_OUTAIR
,
JobParam
);
return
new
CrossDoorJob
(
JobParam
);
}
else
//if (NodeManager.linesInAirShower.ContainsKey(agv.Scope.Workshop))
//{
// if (NodeManager.linesInAirShower[agv.Scope.Workshop].Contains(JobParam.SrcNode.Name))
// {
// JobParam.CrossDoor.CurNode = JobParam.SrcNode;
// JobParam.CrossDoor.NextNode = JobParam.CurTargetNode;
// JobParam.CrossDoor.IsIn = false;
// JobParam.CrossDoor.IsAir = true;
// GenJobCallBack(this.GetType(), RunStep.CHARGE_OUTAIR, JobParam);
// return new CrossDoorJob(JobParam);
// }
// else
// {
// JobRunStep.ToNextStep(RunStep.CHARGE_OUTAIR);
// }
//}
//else
{
JobRunStep
.
ToNextStep
(
RunStep
.
CHARGE_OUTAIR
);
}
...
...
DeviceLibrary/bean/job/Job.cs
查看文件 @
dd8af78
...
...
@@ -706,7 +706,14 @@ namespace DeviceLibrary
{
if
(
missionInfo
==
null
)
return
false
;
if
(
missionInfo
.
state
>=
MissionState
.
返回到达电梯内
&&
missionInfo
.
state
<=
MissionState
.
返回电梯运行
)
{
if
(
missionInfo
.
projectType
==
ProjectType
.
钢网入库
||
missionInfo
.
projectType
==
ProjectType
.
钢网领用
)
{
return
false
;
}
return
true
;
}
if
(
missionInfo
.
state
==
MissionState
.
等待成品回收
)
return
true
;
return
false
;
...
...
DeviceLibrary/bean/job/SteelLiftToStorageJob.cs
查看文件 @
dd8af78
...
...
@@ -369,7 +369,15 @@ namespace DeviceLibrary.bean.job
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
Steel_LiftToLine_21_WaitDoorOpen
))
{
if
(
lift
.
LiftContext
.
IsDoorOpen
(
JobParam
.
SrcNode
.
Name
,
JobParam
.
GetMissionInfo
().
sourceFloor
,
agv
))
MissionInfo
missionInfo
=
MissionManager
.
GetMission
(
JobParam
.
GetMissionInfo
().
missionId
);
if
(
missionInfo
==
null
)
{
runInfo
=
$
"到达{JobParam.SrcNode.AliceName},未找到任务信息{JobParam.GetMissionInfo().missionId},无法请求使用电梯"
;
JobRunStep
.
Msg
=
runInfo
;
return
job
;
}
if
(
lift
.
LiftContext
.
IsDoorOpen
(
JobParam
.
SrcNode
.
Name
,
missionInfo
.
sourceFloor
,
agv
))
{
ChargePileManager
.
StopCharge
(
agv
);
JobRunStep
.
ToNextStep
(
RunStep
.
Steel_LiftToLine_22_CheckLiftStatus
);
...
...
@@ -378,7 +386,7 @@ namespace DeviceLibrary.bean.job
//上报位置
System
.
Threading
.
Thread
.
Sleep
(
1000
);
}
else
if
(
JobRunStep
.
IsTimeOut
(
20
)
&&
!
lift
.
LiftContext
.
CheckIfRequestOk
(
JobParam
.
SrcNode
.
Name
,
JobParam
.
GetMissionInfo
()
))
else
if
(
JobRunStep
.
IsTimeOut
(
20
)
&&
!
lift
.
LiftContext
.
CheckIfRequestOk
(
JobParam
.
SrcNode
.
Name
,
missionInfo
))
{
if
(
agv
?.
Battery
<=
10
&&
!
agv
.
IsInCharge
)
{
...
...
@@ -396,7 +404,8 @@ namespace DeviceLibrary.bean.job
}
JobRunStep
.
ToNextStep
(
RunStep
.
Steel_LiftToLine_21_WaitDoorOpen
);
//请求电梯
lift
.
LiftContext
.
Request
(
JobParam
.
GetMissionInfo
(),
agv
);
lift
.
LiftContext
.
Request
(
missionInfo
,
agv
);
System
.
Threading
.
Thread
.
Sleep
(
1000
);
//上报运输状态
//manager.UploadManager.UploadTransportStatus(new service.model.TransportStatus(agv.CurJob.JobParam.GetMissionInfo().missionId,
// service.model.TransportStatus.TypeStr.error, agv.Name, JobParam.SrcNode.Name, service.model.TransportStatus.ModeStr.auto,
...
...
@@ -405,15 +414,23 @@ namespace DeviceLibrary.bean.job
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
Steel_LiftToLine_22_CheckLiftStatus
))
{
if
(
lift
.
LiftContext
.
IsDoorOpen
(
JobParam
.
SrcNode
.
Name
,
JobParam
.
GetMissionInfo
().
sourceFloor
,
agv
))
MissionInfo
missionInfo
=
MissionManager
.
GetMission
(
JobParam
.
GetMissionInfo
().
missionId
);
if
(
missionInfo
==
null
)
{
runInfo
=
$
"到达{JobParam.SrcNode.AliceName},未找到任务信息{JobParam.GetMissionInfo().missionId},无法请求使用电梯"
;
JobRunStep
.
Msg
=
runInfo
;
return
job
;
}
if
(
lift
.
LiftContext
.
IsDoorOpen
(
JobParam
.
SrcNode
.
Name
,
missionInfo
.
sourceFloor
,
agv
))
{
ChargePileManager
.
StopCharge
(
agv
);
if
(
lift
.
LiftContext
.
HasShelfNeedLeave
(
JobParam
.
SrcNode
.
Name
,
agv
.
Client
,
out
JobParam
.
LiftStatus
))
{
MissionInfo
missionInfo
=
MissionManager
.
GetMission
(
JobParam
.
LiftStatus
?.
missionId
??
""
);
if
(
missionInfo
!=
null
)
MissionInfo
missionInfo
1
=
MissionManager
.
GetMission
(
JobParam
.
LiftStatus
?.
missionId
??
""
);
if
(
missionInfo
1
!=
null
)
{
MissionManager
.
SetMissionOccupied
(
missionInfo
,
agv
);
MissionManager
.
SetMissionOccupied
(
missionInfo1
,
agv
);
JobParam
.
SetMissionInfo
(
missionInfo
);
JobParam
.
CurTargetNode
=
JobParam
.
SrcNode
;
job
=
new
SwitchShelfJob
(
JobParam
);
}
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论