Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
张东亮
/
Qisda-SO1037-AGVDispatch
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 952af3b5
由
张东亮
编写于
2023-03-31 15:57:17 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
关闭停留报警以及在电梯电量低去充电
1 个父辈
7e18084f
隐藏空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
169 行增加
和
46 行删除
AGVDispatch/AGVDispatch.csproj
AGVDispatch/app.manifest
DeviceLibrary/bean/RunStep.cs
DeviceLibrary/bean/agv/Agv_Info.cs
DeviceLibrary/bean/job/LiftToLinesJob.cs
DeviceLibrary/bean/job/LineOneToManyJob.cs
DeviceLibrary/bean/job/LineToLiftJob.cs
DeviceLibrary/bean/job/LineToLineJob.cs
DeviceLibrary/bean/job/SteelLiftToLinesJob.cs
DeviceLibrary/bean/job/SteelLiftToStorageJob.cs
DeviceLibrary/bean/job/SteelLineToLiftJob.cs
AGVDispatch/AGVDispatch.csproj
查看文件 @
952af3b
...
@@ -36,6 +36,9 @@
...
@@ -36,6 +36,9 @@
<PropertyGroup>
<PropertyGroup>
<ApplicationIcon>line.ico</ApplicationIcon>
<ApplicationIcon>line.ico</ApplicationIcon>
</PropertyGroup>
</PropertyGroup>
<PropertyGroup>
<ApplicationManifest>app.manifest</ApplicationManifest>
</PropertyGroup>
<ItemGroup>
<ItemGroup>
<Reference Include="AsaPL.AgvClient">
<Reference Include="AsaPL.AgvClient">
<HintPath>..\AgvClient\bin\Debug\AsaPL.AgvClient.dll</HintPath>
<HintPath>..\AgvClient\bin\Debug\AsaPL.AgvClient.dll</HintPath>
...
@@ -103,6 +106,7 @@
...
@@ -103,6 +106,7 @@
<DependentUpon>Resources.resx</DependentUpon>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
<DesignTime>True</DesignTime>
</Compile>
</Compile>
<None Include="app.manifest" />
<None Include="log4net.config">
<None Include="log4net.config">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</None>
...
...
AGVDispatch/app.manifest
0 → 100644
查看文件 @
952af3b
<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<!-- UAC 清单选项
如果想要更改 Windows 用户帐户控制级别,请使用
以下节点之一替换 requestedExecutionLevel 节点。
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
指定 requestedExecutionLevel 元素将禁用文件和注册表虚拟化。
如果你的应用程序需要此虚拟化来实现向后兼容性,则移除此
元素。
-->
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- 设计此应用程序与其一起工作且已针对此应用程序进行测试的
Windows 版本的列表。取消评论适当的元素,
Windows 将自动选择最兼容的环境。 -->
<!-- Windows Vista -->
<!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
<!-- Windows 7 -->
<!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
<!-- Windows 8 -->
<!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
<!-- Windows 8.1 -->
<!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
<!-- Windows 10 -->
<!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->
</application>
</compatibility>
<!-- 指示该应用程序可感知 DPI 且 Windows 在 DPI 较高时将不会对其进行
自动缩放。Windows Presentation Foundation (WPF)应用程序自动感知 DPI,无需
选择加入。选择加入此设置的 Windows 窗体应用程序(面向 .NET Framework 4.6)还应
在其 app.config 中将 "EnableWindowsFormsHighDpiAutoResizing" 设置设置为 "true"。
将应用程序设为感知长路径。请参阅 https://docs.microsoft.com/windows/win32/fileio/maximum-file-path-limitation -->
<!--
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
</windowsSettings>
</application>
-->
<!-- 启用 Windows 公共控件和对话框的主题(Windows XP 和更高版本) -->
<!--
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
-->
</assembly>
DeviceLibrary/bean/RunStep.cs
查看文件 @
952af3b
...
@@ -620,6 +620,7 @@ namespace DeviceLibrary.bean
...
@@ -620,6 +620,7 @@ namespace DeviceLibrary.bean
CrossDoor_07_CloseAntherDoor
,
CrossDoor_07_CloseAntherDoor
,
CrossDoor_08_Finish
,
CrossDoor_08_Finish
,
#
endregion
#
endregion
/// <summary>
/// <summary>
/// 结束
/// 结束
/// </summary>
/// </summary>
...
...
DeviceLibrary/bean/agv/Agv_Info.cs
查看文件 @
952af3b
...
@@ -447,7 +447,7 @@ namespace DeviceLibrary
...
@@ -447,7 +447,7 @@ namespace DeviceLibrary
}
}
CheckErrorState
();
CheckErrorState
();
CheckOfflineTimeOut
();
CheckOfflineTimeOut
();
CheckStandTimeOut
(
position
);
//
CheckStandTimeOut(position);
UpdateDisplayBoard
();
UpdateDisplayBoard
();
return
isChange
;
return
isChange
;
}
}
...
...
DeviceLibrary/bean/job/LiftToLinesJob.cs
查看文件 @
952af3b
...
@@ -148,7 +148,7 @@ namespace DeviceLibrary
...
@@ -148,7 +148,7 @@ namespace DeviceLibrary
job
=
new
CrossDoorJob
(
JobParam
);
job
=
new
CrossDoorJob
(
JobParam
);
}
}
//是否需要跨门
//是否需要跨门
else
if
(
NodeManager
.
NeedCrossDoor
(
agv
,
JobParam
.
SrcNode
,
JobParam
.
CurTargetNode
,
out
bool
isin
,
out
bool
isair
))
else
if
(
NodeManager
.
NeedCrossDoor
(
agv
,
JobParam
.
SrcNode
,
JobParam
.
CurTargetNode
,
out
bool
isin
,
out
bool
isair
))
{
{
JobParam
.
CrossDoor
.
CurNode
=
JobParam
.
SrcNode
;
JobParam
.
CrossDoor
.
CurNode
=
JobParam
.
SrcNode
;
JobParam
.
CrossDoor
.
NextNode
=
JobParam
.
CurTargetNode
;
JobParam
.
CrossDoor
.
NextNode
=
JobParam
.
CurTargetNode
;
...
@@ -228,10 +228,10 @@ namespace DeviceLibrary
...
@@ -228,10 +228,10 @@ namespace DeviceLibrary
}
}
else
if
(
JobRunStep
.
IsTimeOut
(
WaitTimeOut
,
out
double
timeoutval
))
else
if
(
JobRunStep
.
IsTimeOut
(
WaitTimeOut
,
out
double
timeoutval
))
{
{
//报警,$"等待{JobParam.CurTargetNode.AliceName}的人员确认超时{timeoutval}分"
//
//
报警,$"等待{JobParam.CurTargetNode.AliceName}的人员确认超时{timeoutval}分"
manager
.
UploadManager
.
UploadTransportStatus
(
new
service
.
model
.
TransportStatus
(
agv
.
CurJob
.
JobParam
.
GetMissionInfo
().
missionId
,
//
manager.UploadManager.UploadTransportStatus(new service.model.TransportStatus(agv.CurJob.JobParam.GetMissionInfo().missionId,
service
.
model
.
TransportStatus
.
TypeStr
.
error
,
agv
.
Name
,
JobParam
.
CurTargetNode
.
Name
,
service
.
model
.
TransportStatus
.
ModeStr
.
agvButton
,
//
service.model.TransportStatus.TypeStr.error, agv.Name, JobParam.CurTargetNode.Name, service.model.TransportStatus.ModeStr.agvButton,
$
"等待{JobParam.CurTargetNode.Name}确认超时{timeoutval.ToString("
f2
")}分"
),
true
);
//
$"等待{JobParam.CurTargetNode.Name}确认超时{timeoutval.ToString("f2")}分"),true);
}
}
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
SD_LiftToLine_10_CheckNextLine
))
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
SD_LiftToLine_10_CheckNextLine
))
...
@@ -240,7 +240,7 @@ namespace DeviceLibrary
...
@@ -240,7 +240,7 @@ namespace DeviceLibrary
{
{
JobParam
.
CurTargetNode
=
JobParam
.
TargetNodes
[
0
];
JobParam
.
CurTargetNode
=
JobParam
.
TargetNodes
[
0
];
JobParam
.
TargetNodes
.
RemoveAt
(
0
);
JobParam
.
TargetNodes
.
RemoveAt
(
0
);
if
(
NodeManager
.
NeedCrossDoor
(
agv
,
agv
.
Place
,
JobParam
.
CurTargetNode
,
out
bool
isin
,
out
bool
isair
))
if
(
NodeManager
.
NeedCrossDoor
(
agv
,
agv
.
Place
,
JobParam
.
CurTargetNode
,
out
bool
isin
,
out
bool
isair
))
{
{
JobParam
.
CrossDoor
.
CurNode
=
agv
.
Place
;
JobParam
.
CrossDoor
.
CurNode
=
agv
.
Place
;
JobParam
.
CrossDoor
.
NextNode
=
JobParam
.
CurTargetNode
;
JobParam
.
CrossDoor
.
NextNode
=
JobParam
.
CurTargetNode
;
...
@@ -260,7 +260,7 @@ namespace DeviceLibrary
...
@@ -260,7 +260,7 @@ namespace DeviceLibrary
{
{
if
(
JobParam
.
GetMissionInfo
()
!=
null
&&
JobParam
.
GetMissionInfo
().
needBack
)
if
(
JobParam
.
GetMissionInfo
()
!=
null
&&
JobParam
.
GetMissionInfo
().
needBack
)
{
{
if
(
NodeManager
.
NeedCrossTwoDoor
(
agv
,
agv
.
Place
,
JobParam
.
SrcNode
))
if
(
NodeManager
.
NeedCrossTwoDoor
(
agv
,
agv
.
Place
,
JobParam
.
SrcNode
))
{
{
JobParam
.
CrossDoor
.
CurNode
=
agv
.
Place
;
JobParam
.
CrossDoor
.
CurNode
=
agv
.
Place
;
JobParam
.
CrossDoor
.
NextNode
=
JobParam
.
SrcNode
;
JobParam
.
CrossDoor
.
NextNode
=
JobParam
.
SrcNode
;
...
@@ -269,7 +269,7 @@ namespace DeviceLibrary
...
@@ -269,7 +269,7 @@ namespace DeviceLibrary
GenJobCallBack
(
this
.
GetType
(),
RunStep
.
SD_LiftToLine_11_CrossTwoDoor
,
JobParam
);
GenJobCallBack
(
this
.
GetType
(),
RunStep
.
SD_LiftToLine_11_CrossTwoDoor
,
JobParam
);
job
=
new
CrossDoorJob
(
JobParam
);
job
=
new
CrossDoorJob
(
JobParam
);
}
}
else
if
(
NodeManager
.
NeedCrossDoor
(
agv
,
agv
.
Place
,
JobParam
.
SrcNode
,
out
bool
isin
,
out
bool
isair
))
else
if
(
NodeManager
.
NeedCrossDoor
(
agv
,
agv
.
Place
,
JobParam
.
SrcNode
,
out
bool
isin
,
out
bool
isair
))
{
{
JobParam
.
CrossDoor
.
CurNode
=
agv
.
Place
;
JobParam
.
CrossDoor
.
CurNode
=
agv
.
Place
;
JobParam
.
CrossDoor
.
NextNode
=
JobParam
.
SrcNode
;
JobParam
.
CrossDoor
.
NextNode
=
JobParam
.
SrcNode
;
...
@@ -377,6 +377,7 @@ namespace DeviceLibrary
...
@@ -377,6 +377,7 @@ namespace DeviceLibrary
}
}
else
if
(
lift
.
LiftContext
.
IsDoorOpen
(
JobParam
.
SrcNode
.
Name
,
JobParam
.
GetMissionInfo
().
destinationFloor
,
agv
))
else
if
(
lift
.
LiftContext
.
IsDoorOpen
(
JobParam
.
SrcNode
.
Name
,
JobParam
.
GetMissionInfo
().
destinationFloor
,
agv
))
{
{
ChargePileManager
.
StopCharge
(
agv
);
JobRunStep
.
ToNextStep
(
RunStep
.
SD_LiftToLine_13_CheckLiftStatus
);
JobRunStep
.
ToNextStep
(
RunStep
.
SD_LiftToLine_13_CheckLiftStatus
);
runInfo
=
$
"{JobParam.SrcNode.AliceName}门已开,检查电梯内该层是否有料车"
;
runInfo
=
$
"{JobParam.SrcNode.AliceName}门已开,检查电梯内该层是否有料车"
;
JobRunStep
.
Msg
=
runInfo
;
JobRunStep
.
Msg
=
runInfo
;
...
@@ -385,13 +386,25 @@ namespace DeviceLibrary
...
@@ -385,13 +386,25 @@ namespace DeviceLibrary
}
}
else
if
(
JobRunStep
.
IsTimeOut
(
20
)
&&
!
lift
.
LiftContext
.
CheckIfRequestOk
(
JobParam
.
SrcNode
.
Name
,
JobParam
.
GetMissionInfo
()))
else
if
(
JobRunStep
.
IsTimeOut
(
20
)
&&
!
lift
.
LiftContext
.
CheckIfRequestOk
(
JobParam
.
SrcNode
.
Name
,
JobParam
.
GetMissionInfo
()))
{
{
if
(
agv
?.
Battery
<=
10
&&
!
agv
.
IsInCharge
)
{
if
(
ChargePileManager
.
HasEmpty
(
agv
,
out
ChargePile
charge
))
{
ChargePileManager
.
StartCharge
(
agv
,
charge
.
Name
);
AllocateTask
(
agv
,
charge
);
return
job
;
}
}
JobRunStep
.
ToNextStep
(
RunStep
.
SD_LiftToLine_12_WaitDoorOpen
);
JobRunStep
.
ToNextStep
(
RunStep
.
SD_LiftToLine_12_WaitDoorOpen
);
//请求电梯
//请求电梯
lift
.
LiftContext
.
Request
(
JobParam
.
GetMissionInfo
(),
agv
,
true
);
lift
.
LiftContext
.
Request
(
JobParam
.
GetMissionInfo
(),
agv
,
true
);
//上报运输状态
////上报运输状态
manager
.
UploadManager
.
UploadTransportStatus
(
new
service
.
model
.
TransportStatus
(
agv
.
CurJob
.
JobParam
.
GetMissionInfo
().
missionId
,
//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
,
// service.model.TransportStatus.TypeStr.error, agv.Name, JobParam.SrcNode.Name, service.model.TransportStatus.ModeStr.auto,
$
"等待电梯到达超时"
));
// $"等待电梯到达超时"));
}
}
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
SD_LiftToLine_13_CheckLiftStatus
))
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
SD_LiftToLine_13_CheckLiftStatus
))
...
@@ -538,7 +551,7 @@ namespace DeviceLibrary
...
@@ -538,7 +551,7 @@ namespace DeviceLibrary
}
}
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
SD_LiftToLine_16_CrossTwoDoor
))
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
SD_LiftToLine_16_CrossTwoDoor
))
{
{
JobParam
.
CrossDoor
.
CurNode
=
JobParam
.
CurTargetNode
;
JobParam
.
CrossDoor
.
CurNode
=
JobParam
.
CurTargetNode
;
JobParam
.
CrossDoor
.
NextNode
=
JobParam
.
SrcNode
;
JobParam
.
CrossDoor
.
NextNode
=
JobParam
.
SrcNode
;
...
...
DeviceLibrary/bean/job/LineOneToManyJob.cs
查看文件 @
952af3b
...
@@ -115,9 +115,9 @@ namespace DeviceLibrary.bean.job
...
@@ -115,9 +115,9 @@ namespace DeviceLibrary.bean.job
else
if
(
JobRunStep
.
IsTimeOut
(
WaitTimeOut
,
out
double
timeoutval
))
else
if
(
JobRunStep
.
IsTimeOut
(
WaitTimeOut
,
out
double
timeoutval
))
{
{
//报警,$"等待{JobParam.CurTargetNode.AliceName}的人员确认超时{timeoutval}分"
//报警,$"等待{JobParam.CurTargetNode.AliceName}的人员确认超时{timeoutval}分"
manager
.
UploadManager
.
UploadTransportStatus
(
new
service
.
model
.
TransportStatus
(
agv
.
CurJob
.
JobParam
.
GetMissionInfo
().
missionId
,
//
manager.UploadManager.UploadTransportStatus(new service.model.TransportStatus(agv.CurJob.JobParam.GetMissionInfo().missionId,
service
.
model
.
TransportStatus
.
TypeStr
.
error
,
agv
.
Name
,
agv
.
Place
.
Name
,
service
.
model
.
TransportStatus
.
ModeStr
.
agvButton
,
//
service.model.TransportStatus.TypeStr.error, agv.Name, agv.Place.Name, service.model.TransportStatus.ModeStr.agvButton,
$
"等待{ JobParam.CurTargetNode.Name }确认超时{timeoutval.ToString("
f2
")}分"
),
true
);
//
$"等待{ JobParam.CurTargetNode.Name }确认超时{timeoutval.ToString("f2")}分"),true);
}
}
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
SD_Line_OneToMany_06_CheckNextLine
))
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
SD_Line_OneToMany_06_CheckNextLine
))
...
...
DeviceLibrary/bean/job/LineToLiftJob.cs
查看文件 @
952af3b
...
@@ -162,6 +162,7 @@ namespace DeviceLibrary
...
@@ -162,6 +162,7 @@ namespace DeviceLibrary
{
{
if
(
LiftContext
.
CheckHasEmptyFinished
(
agv
,
JobParam
.
CurTargetNode
.
Name
,
out
JobParam
.
LiftStatus
))
if
(
LiftContext
.
CheckHasEmptyFinished
(
agv
,
JobParam
.
CurTargetNode
.
Name
,
out
JobParam
.
LiftStatus
))
{
{
ChargePileManager
.
StopCharge
(
agv
);
MissionInfo
missionInfo
=
MissionManager
.
GetMission
(
JobParam
.
LiftStatus
?.
missionId
??
""
);
MissionInfo
missionInfo
=
MissionManager
.
GetMission
(
JobParam
.
LiftStatus
?.
missionId
??
""
);
if
(
missionInfo
!=
null
)
if
(
missionInfo
!=
null
)
{
{
...
@@ -182,8 +183,10 @@ namespace DeviceLibrary
...
@@ -182,8 +183,10 @@ namespace DeviceLibrary
}
}
else
if
(
lift
.
LiftContext
.
IsDoorOpen
(
JobParam
.
CurTargetNode
.
Name
,
JobParam
.
GetMissionInfo
().
sourceFloor
,
agv
))
else
if
(
lift
.
LiftContext
.
IsDoorOpen
(
JobParam
.
CurTargetNode
.
Name
,
JobParam
.
GetMissionInfo
().
sourceFloor
,
agv
))
{
{
ChargePileManager
.
StopCharge
(
agv
);
if
(
lift
.
LiftContext
.
HasShelfNeedLeave
(
JobParam
.
CurTargetNode
.
Name
,
agv
.
Client
,
out
JobParam
.
LiftStatus
))
if
(
lift
.
LiftContext
.
HasShelfNeedLeave
(
JobParam
.
CurTargetNode
.
Name
,
agv
.
Client
,
out
JobParam
.
LiftStatus
))
{
{
ChargePileManager
.
StopCharge
(
agv
);
MissionInfo
missionInfo
=
MissionManager
.
GetMission
(
JobParam
.
LiftStatus
?.
missionId
??
""
);
MissionInfo
missionInfo
=
MissionManager
.
GetMission
(
JobParam
.
LiftStatus
?.
missionId
??
""
);
if
(
missionInfo
!=
null
)
if
(
missionInfo
!=
null
)
{
{
...
@@ -212,15 +215,23 @@ namespace DeviceLibrary
...
@@ -212,15 +215,23 @@ namespace DeviceLibrary
}
}
else
if
(
JobRunStep
.
IsTimeOut
(
20
)
&&
!
lift
.
LiftContext
.
CheckIfRequestOk
(
JobParam
.
CurTargetNode
.
Name
,
JobParam
.
GetMissionInfo
()))
else
if
(
JobRunStep
.
IsTimeOut
(
20
)
&&
!
lift
.
LiftContext
.
CheckIfRequestOk
(
JobParam
.
CurTargetNode
.
Name
,
JobParam
.
GetMissionInfo
()))
{
{
if
(
agv
?.
Battery
<=
10
&&
!
agv
.
IsInCharge
)
{
if
(
ChargePileManager
.
HasEmpty
(
agv
,
out
ChargePile
charge
))
{
ChargePileManager
.
StartCharge
(
agv
,
charge
.
Name
);
AllocateTask
(
agv
,
charge
);
return
job
;
}
}
JobRunStep
.
ToNextStep
(
RunStep
.
LineToLift_04_CheckLiftStatus
);
JobRunStep
.
ToNextStep
(
RunStep
.
LineToLift_04_CheckLiftStatus
);
//请求电梯
//请求电梯
lift
.
LiftContext
.
Request
(
JobParam
.
GetMissionInfo
(),
agv
);
lift
.
LiftContext
.
Request
(
JobParam
.
GetMissionInfo
(),
agv
);
//上报运输状态
//
//
上报运输状态
manager
.
UploadManager
.
UploadTransportStatus
(
new
service
.
model
.
TransportStatus
(
agv
.
CurJob
.
JobParam
.
GetMissionInfo
().
missionId
,
//
manager.UploadManager.UploadTransportStatus(new service.model.TransportStatus(agv.CurJob.JobParam.GetMissionInfo().missionId,
service
.
model
.
TransportStatus
.
TypeStr
.
error
,
agv
.
Name
,
JobParam
.
CurTargetNode
.
Name
,
service
.
model
.
TransportStatus
.
ModeStr
.
auto
,
//
service.model.TransportStatus.TypeStr.error, agv.Name, JobParam.CurTargetNode.Name, service.model.TransportStatus.ModeStr.auto,
$
"等待电梯到达超时"
));
//
$"等待电梯到达超时"));
}
}
Thread
.
Sleep
(
2000
);
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
LineToLift_05_01_ToStandby
))
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
LineToLift_05_01_ToStandby
))
{
{
...
...
DeviceLibrary/bean/job/LineToLineJob.cs
查看文件 @
952af3b
...
@@ -109,9 +109,9 @@ namespace DeviceLibrary.bean.job
...
@@ -109,9 +109,9 @@ namespace DeviceLibrary.bean.job
else
if
(
JobRunStep
.
IsTimeOut
(
WaitTimeOut
,
out
double
timeoutval
))
else
if
(
JobRunStep
.
IsTimeOut
(
WaitTimeOut
,
out
double
timeoutval
))
{
{
//报警,$"等待{JobParam.CurTargetNode.AliceName}的人员确认超时{timeoutval}分"
//报警,$"等待{JobParam.CurTargetNode.AliceName}的人员确认超时{timeoutval}分"
manager
.
UploadManager
.
UploadTransportStatus
(
new
service
.
model
.
TransportStatus
(
agv
.
CurJob
.
JobParam
.
GetMissionInfo
().
missionId
,
//
manager.UploadManager.UploadTransportStatus(new service.model.TransportStatus(agv.CurJob.JobParam.GetMissionInfo().missionId,
service
.
model
.
TransportStatus
.
TypeStr
.
error
,
agv
.
Name
,
agv
.
Place
.
Name
,
service
.
model
.
TransportStatus
.
ModeStr
.
agvButton
,
//
service.model.TransportStatus.TypeStr.error, agv.Name, agv.Place.Name, service.model.TransportStatus.ModeStr.agvButton,
$
"等待{ JobParam.CurTargetNode.Name }确认超时{timeoutval.ToString("
f2
")}分"
),
true
);
//
$"等待{ JobParam.CurTargetNode.Name }确认超时{timeoutval.ToString("f2")}分"), true);
}
}
}
}
}
}
...
...
DeviceLibrary/bean/job/SteelLiftToLinesJob.cs
查看文件 @
952af3b
...
@@ -174,9 +174,9 @@ namespace DeviceLibrary.bean.job
...
@@ -174,9 +174,9 @@ namespace DeviceLibrary.bean.job
else
if
(
JobRunStep
.
IsTimeOut
(
WaitTimeOut
,
out
double
timeoutval
))
else
if
(
JobRunStep
.
IsTimeOut
(
WaitTimeOut
,
out
double
timeoutval
))
{
{
//报警,$"等待{JobParam.CurTargetNode.AliceName}的人员确认超时{timeoutval}分"
//报警,$"等待{JobParam.CurTargetNode.AliceName}的人员确认超时{timeoutval}分"
manager
.
UploadManager
.
UploadTransportStatus
(
new
service
.
model
.
TransportStatus
(
agv
.
CurJob
.
JobParam
.
GetMissionInfo
().
missionId
,
//
manager.UploadManager.UploadTransportStatus(new service.model.TransportStatus(agv.CurJob.JobParam.GetMissionInfo().missionId,
service
.
model
.
TransportStatus
.
TypeStr
.
error
,
agv
.
Name
,
JobParam
.
CurTargetNode
.
Name
,
service
.
model
.
TransportStatus
.
ModeStr
.
agvButton
,
//
service.model.TransportStatus.TypeStr.error, agv.Name, JobParam.CurTargetNode.Name, service.model.TransportStatus.ModeStr.agvButton,
$
"等待{JobParam.CurTargetNode.Name}确认超时{timeoutval.ToString("
f2
")}分"
),
true
);
//
$"等待{JobParam.CurTargetNode.Name}确认超时{timeoutval.ToString("f2")}分"), true);
}
}
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
Steel_LiftToLine_10_CheckNextLine
))
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
Steel_LiftToLine_10_CheckNextLine
))
...
...
DeviceLibrary/bean/job/SteelLiftToStorageJob.cs
查看文件 @
952af3b
...
@@ -168,9 +168,9 @@ namespace DeviceLibrary.bean.job
...
@@ -168,9 +168,9 @@ namespace DeviceLibrary.bean.job
else
if
(
JobRunStep
.
IsTimeOut
(
WaitTimeOut
,
out
double
timeoutval
))
else
if
(
JobRunStep
.
IsTimeOut
(
WaitTimeOut
,
out
double
timeoutval
))
{
{
//报警,$"等待{JobParam.CurTargetNode.AliceName}的人员确认超时{timeoutval}分"
//报警,$"等待{JobParam.CurTargetNode.AliceName}的人员确认超时{timeoutval}分"
manager
.
UploadManager
.
UploadTransportStatus
(
new
service
.
model
.
TransportStatus
(
agv
.
CurJob
.
JobParam
.
GetMissionInfo
().
missionId
,
//
manager.UploadManager.UploadTransportStatus(new service.model.TransportStatus(agv.CurJob.JobParam.GetMissionInfo().missionId,
service
.
model
.
TransportStatus
.
TypeStr
.
error
,
agv
.
Name
,
JobParam
.
CurTargetNode
.
Name
,
service
.
model
.
TransportStatus
.
ModeStr
.
agvButton
,
//
service.model.TransportStatus.TypeStr.error, agv.Name, JobParam.CurTargetNode.Name, service.model.TransportStatus.ModeStr.agvButton,
$
"等待{JobParam.CurTargetNode.Name}确认超时{timeoutval.ToString("
f2
")}分"
),
true
);
//
$"等待{JobParam.CurTargetNode.Name}确认超时{timeoutval.ToString("f2")}分"), true);
}
}
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
Steel_LiftToLine_10_CheckNextLine
))
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
Steel_LiftToLine_10_CheckNextLine
))
...
@@ -360,6 +360,7 @@ namespace DeviceLibrary.bean.job
...
@@ -360,6 +360,7 @@ namespace DeviceLibrary.bean.job
{
{
if
(
lift
.
LiftContext
.
IsDoorOpen
(
JobParam
.
SrcNode
.
Name
,
JobParam
.
GetMissionInfo
().
sourceFloor
,
agv
))
if
(
lift
.
LiftContext
.
IsDoorOpen
(
JobParam
.
SrcNode
.
Name
,
JobParam
.
GetMissionInfo
().
sourceFloor
,
agv
))
{
{
ChargePileManager
.
StopCharge
(
agv
);
JobRunStep
.
ToNextStep
(
RunStep
.
Steel_LiftToLine_22_CheckLiftStatus
);
JobRunStep
.
ToNextStep
(
RunStep
.
Steel_LiftToLine_22_CheckLiftStatus
);
runInfo
=
$
"{JobParam.SrcNode.AliceName}门已开,检查电梯内该层是否有料车"
;
runInfo
=
$
"{JobParam.SrcNode.AliceName}门已开,检查电梯内该层是否有料车"
;
JobRunStep
.
Msg
=
runInfo
;
JobRunStep
.
Msg
=
runInfo
;
...
@@ -368,19 +369,29 @@ namespace DeviceLibrary.bean.job
...
@@ -368,19 +369,29 @@ namespace DeviceLibrary.bean.job
}
}
else
if
(
JobRunStep
.
IsTimeOut
(
20
)
&&
!
lift
.
LiftContext
.
CheckIfRequestOk
(
JobParam
.
SrcNode
.
Name
,
JobParam
.
GetMissionInfo
()))
else
if
(
JobRunStep
.
IsTimeOut
(
20
)
&&
!
lift
.
LiftContext
.
CheckIfRequestOk
(
JobParam
.
SrcNode
.
Name
,
JobParam
.
GetMissionInfo
()))
{
{
if
(
agv
?.
Battery
<=
10
&&
!
agv
.
IsInCharge
)
{
if
(
ChargePileManager
.
HasEmpty
(
agv
,
out
ChargePile
charge
))
{
ChargePileManager
.
StartCharge
(
agv
,
charge
.
Name
);
AllocateTask
(
agv
,
charge
);
return
job
;
}
}
JobRunStep
.
ToNextStep
(
RunStep
.
Steel_LiftToLine_21_WaitDoorOpen
);
JobRunStep
.
ToNextStep
(
RunStep
.
Steel_LiftToLine_21_WaitDoorOpen
);
//请求电梯
//请求电梯
lift
.
LiftContext
.
Request
(
JobParam
.
GetMissionInfo
(),
agv
);
lift
.
LiftContext
.
Request
(
JobParam
.
GetMissionInfo
(),
agv
);
//上报运输状态
//上报运输状态
manager
.
UploadManager
.
UploadTransportStatus
(
new
service
.
model
.
TransportStatus
(
agv
.
CurJob
.
JobParam
.
GetMissionInfo
().
missionId
,
//
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
,
//
service.model.TransportStatus.TypeStr.error, agv.Name, JobParam.SrcNode.Name, service.model.TransportStatus.ModeStr.auto,
$
"等待电梯到达超时"
));
//
$"等待电梯到达超时"));
}
}
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
Steel_LiftToLine_22_CheckLiftStatus
))
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
Steel_LiftToLine_22_CheckLiftStatus
))
{
{
if
(
lift
.
LiftContext
.
IsDoorOpen
(
JobParam
.
SrcNode
.
Name
,
JobParam
.
GetMissionInfo
().
sourceFloor
,
agv
))
if
(
lift
.
LiftContext
.
IsDoorOpen
(
JobParam
.
SrcNode
.
Name
,
JobParam
.
GetMissionInfo
().
sourceFloor
,
agv
))
{
{
ChargePileManager
.
StopCharge
(
agv
);
if
(
lift
.
LiftContext
.
HasShelfNeedLeave
(
JobParam
.
SrcNode
.
Name
,
agv
.
Client
,
out
liftStatus
))
if
(
lift
.
LiftContext
.
HasShelfNeedLeave
(
JobParam
.
SrcNode
.
Name
,
agv
.
Client
,
out
liftStatus
))
{
{
MissionInfo
missionInfo
=
MissionManager
.
GetMission
(
JobParam
.
LiftStatus
?.
missionId
??
""
);
MissionInfo
missionInfo
=
MissionManager
.
GetMission
(
JobParam
.
LiftStatus
?.
missionId
??
""
);
...
@@ -399,12 +410,6 @@ namespace DeviceLibrary.bean.job
...
@@ -399,12 +410,6 @@ namespace DeviceLibrary.bean.job
AllocateTask
(
agv
,
$
"{JobParam.SrcNode.Name}_{SettingString.TakeShelfOff}"
);
AllocateTask
(
agv
,
$
"{JobParam.SrcNode.Name}_{SettingString.TakeShelfOff}"
);
}
}
}
}
else
if
(
JobRunStep
.
IsTimeOut
(
20
)
&&
!
lift
.
LiftContext
.
CheckIfRequestOk
(
JobParam
.
SrcNode
.
Name
,
JobParam
.
GetMissionInfo
()))
{
JobRunStep
.
ToNextStep
(
RunStep
.
SD_LiftToLine_12_WaitDoorOpen
);
//请求电梯
lift
.
LiftContext
.
Request
(
JobParam
.
GetMissionInfo
(),
agv
);
}
}
}
#
region
电梯内无料车
#
region
电梯内无料车
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
Steel_LiftToLine_24_01_EnterLift
))
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
Steel_LiftToLine_24_01_EnterLift
))
...
...
DeviceLibrary/bean/job/SteelLineToLiftJob.cs
查看文件 @
952af3b
...
@@ -113,9 +113,9 @@ namespace DeviceLibrary
...
@@ -113,9 +113,9 @@ namespace DeviceLibrary
else
if
(
JobRunStep
.
IsTimeOut
(
WaitTimeOut
,
out
double
timeoutval
))
else
if
(
JobRunStep
.
IsTimeOut
(
WaitTimeOut
,
out
double
timeoutval
))
{
{
//报警,$"等待{JobParam.CurTargetNode.AliceName}的人员确认超时{timeoutval}分"
//报警,$"等待{JobParam.CurTargetNode.AliceName}的人员确认超时{timeoutval}分"
manager
.
UploadManager
.
UploadTransportStatus
(
new
service
.
model
.
TransportStatus
(
agv
.
CurJob
.
JobParam
.
GetMissionInfo
().
missionId
,
//
manager.UploadManager.UploadTransportStatus(new service.model.TransportStatus(agv.CurJob.JobParam.GetMissionInfo().missionId,
service
.
model
.
TransportStatus
.
TypeStr
.
error
,
agv
.
Name
,
agv
.
Place
.
Name
,
service
.
model
.
TransportStatus
.
ModeStr
.
agvButton
,
//
service.model.TransportStatus.TypeStr.error, agv.Name, agv.Place.Name, service.model.TransportStatus.ModeStr.agvButton,
$
"等待{JobParam.SrcNode.Name}确认超时{timeoutval.ToString("
f2
")}分"
),
true
);
//
$"等待{JobParam.SrcNode.Name}确认超时{timeoutval.ToString("f2")}分"),true);
}
}
}
}
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
LineToLift_WaitConfirm
))
else
if
(
JobRunStep
.
IsStep
(
RunStep
.
LineToLift_WaitConfirm
))
...
@@ -170,6 +170,7 @@ namespace DeviceLibrary
...
@@ -170,6 +170,7 @@ namespace DeviceLibrary
{
{
if
(
lift
.
LiftContext
.
IsDoorOpen
(
JobParam
.
CurTargetNode
.
Name
,
JobParam
.
GetMissionInfo
().
sourceFloor
,
agv
))
if
(
lift
.
LiftContext
.
IsDoorOpen
(
JobParam
.
CurTargetNode
.
Name
,
JobParam
.
GetMissionInfo
().
sourceFloor
,
agv
))
{
{
ChargePileManager
.
StopCharge
(
agv
);
if
(
lift
.
LiftContext
.
HasShelfNeedLeave
(
JobParam
.
CurTargetNode
.
Name
,
agv
.
Client
,
out
JobParam
.
LiftStatus
))
if
(
lift
.
LiftContext
.
HasShelfNeedLeave
(
JobParam
.
CurTargetNode
.
Name
,
agv
.
Client
,
out
JobParam
.
LiftStatus
))
{
{
MissionInfo
missionInfo
=
MissionManager
.
GetMission
(
JobParam
.
LiftStatus
?.
missionId
??
""
);
MissionInfo
missionInfo
=
MissionManager
.
GetMission
(
JobParam
.
LiftStatus
?.
missionId
??
""
);
...
@@ -198,13 +199,22 @@ namespace DeviceLibrary
...
@@ -198,13 +199,22 @@ namespace DeviceLibrary
}
}
else
if
(
JobRunStep
.
IsTimeOut
(
20
)
&&
!
lift
.
LiftContext
.
CheckIfRequestOk
(
JobParam
.
CurTargetNode
.
Name
,
JobParam
.
GetMissionInfo
()))
else
if
(
JobRunStep
.
IsTimeOut
(
20
)
&&
!
lift
.
LiftContext
.
CheckIfRequestOk
(
JobParam
.
CurTargetNode
.
Name
,
JobParam
.
GetMissionInfo
()))
{
{
if
(
agv
?.
Battery
<=
10
&&
!
agv
.
IsInCharge
)
{
if
(
ChargePileManager
.
HasEmpty
(
agv
,
out
ChargePile
charge
))
{
ChargePileManager
.
StartCharge
(
agv
,
charge
.
Name
);
AllocateTask
(
agv
,
charge
);
return
job
;
}
}
JobRunStep
.
ToNextStep
(
RunStep
.
LineToLift_04_CheckLiftStatus
);
JobRunStep
.
ToNextStep
(
RunStep
.
LineToLift_04_CheckLiftStatus
);
//请求电梯
//请求电梯
lift
.
LiftContext
.
Request
(
JobParam
.
GetMissionInfo
(),
agv
);
lift
.
LiftContext
.
Request
(
JobParam
.
GetMissionInfo
(),
agv
);
//上报运输状态
//上报运输状态
manager
.
UploadManager
.
UploadTransportStatus
(
new
service
.
model
.
TransportStatus
(
agv
.
CurJob
.
JobParam
.
GetMissionInfo
().
missionId
,
//
manager.UploadManager.UploadTransportStatus(new service.model.TransportStatus(agv.CurJob.JobParam.GetMissionInfo().missionId,
service
.
model
.
TransportStatus
.
TypeStr
.
error
,
agv
.
Name
,
JobParam
.
CurTargetNode
.
Name
,
service
.
model
.
TransportStatus
.
ModeStr
.
auto
,
//
service.model.TransportStatus.TypeStr.error, agv.Name, JobParam.CurTargetNode.Name, service.model.TransportStatus.ModeStr.auto,
$
"等待电梯到达超时"
));
//
$"等待电梯到达超时"));
}
}
}
}
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论