Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
张东亮
/
AGV_3D_Line
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 0b847111
由
张东亮
编写于
2023-04-06 13:37:03 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
1
1 个父辈
429e0b20
全部展开
显示空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
84 行增加
和
85 行删除
Common/SettingString.cs
DeviceLibrary/Config/AgvMission.csv
DeviceLibrary/Control.cs
DeviceLibrary/bean/job/EmptyAGVBackJob.cs
DeviceLibrary/bean/job/EmptyShelfBackJob.cs
DeviceLibrary/bean/job/GoEmptyShelfLineJob.cs
DeviceLibrary/bean/job/GoFullShelfStationJob.cs
DeviceLibrary/bean/job/SendFullShelfToLineJob.cs
DeviceLibrary/bean/job/jobType/JobForRoomD.cs
DeviceLibrary/manager/AGVManager.cs
DeviceLibrary/manager/HttpManager.cs
Common/SettingString.cs
查看文件 @
0b84711
...
@@ -55,7 +55,7 @@ namespace Common
...
@@ -55,7 +55,7 @@ namespace Common
public
const
string
A5
=
"A5"
;
public
const
string
A5
=
"A5"
;
public
const
string
Line_Name_Prefix
=
"S"
;
public
const
string
Line_Name_Prefix
=
"S"
;
public
const
string
Room
D
_Name_Prefix
=
"S"
;
public
const
string
Room
S
_Name_Prefix
=
"S"
;
public
const
string
RoomC_Name_Prefix
=
"C"
;
public
const
string
RoomC_Name_Prefix
=
"C"
;
public
const
string
BigShelf_Prefix
=
"C"
;
public
const
string
BigShelf_Prefix
=
"C"
;
public
const
string
SmallShelf_Prefix
=
"D"
;
public
const
string
SmallShelf_Prefix
=
"D"
;
...
@@ -64,7 +64,7 @@ namespace Common
...
@@ -64,7 +64,7 @@ namespace Common
public
const
string
IP_3D_Light
=
"IP_3D_Light"
;
public
const
string
IP_3D_Light
=
"IP_3D_Light"
;
public
const
string
IP_3C_Light
=
"IP_3C_Light"
;
public
const
string
IP_3C_Light
=
"IP_3C_Light"
;
public
static
List
<
string
>
Lines_In_Air_Door
=
new
List
<
string
>()
{
"
C100
"
};
public
static
List
<
string
>
Lines_In_Air_Door
=
new
List
<
string
>()
{
"
S1"
,
"S2
"
};
public
static
List
<
string
>
RoomC_AGV_IPs
=
new
List
<
string
>()
{
"10.85.199.666"
};
public
static
List
<
string
>
RoomC_AGV_IPs
=
new
List
<
string
>()
{
"10.85.199.666"
};
public
static
List
<
string
>
FixedCharge_AGV_IPs
=
new
List
<
string
>()
{
"10.85.199.666"
};
public
static
List
<
string
>
FixedCharge_AGV_IPs
=
new
List
<
string
>()
{
"10.85.199.666"
};
#
region
配置名
#
region
配置名
...
...
DeviceLibrary/Config/AgvMission.csv
查看文件 @
0b84711
...
@@ -22,3 +22,11 @@ D22,备料区出口,fe89c587-75bf-11eb-a7fe-0001297a1dca
...
@@ -22,3 +22,11 @@ D22,备料区出口,fe89c587-75bf-11eb-a7fe-0001297a1dca
CheckShelf,检查负载情况,cc5f1d78-75a2-11eb-8565-0001297a1dca
CheckShelf,检查负载情况,cc5f1d78-75a2-11eb-8565-0001297a1dca
Leave,出料,28a2ab7b-75ac-11eb-8565-0001297a1dca
Leave,出料,28a2ab7b-75ac-11eb-8565-0001297a1dca
Enter,进料,4bf5d4c5-75a4-11eb-8565-0001297a1dca
Enter,进料,4bf5d4c5-75a4-11eb-8565-0001297a1dca
S1,S1线,4bf5d4c5-75a4-11eb-8565-0001297a1dca
S2,S2线,4bf5d4c5-75a4-11eb-8565-0001297a1dca
DoorAirIn-1,进风淋门-停留点,4bf5d4c5-75a4-11eb-8565-0001297a1dca
DoorAirIn-2,进风淋门-进入,4bf5d4c5-75a4-11eb-8565-0001297a1dca
DoorAirIn-3,进风淋门-出去,4bf5d4c5-75a4-11eb-8565-0001297a1dca
DoorAirOut-1,出风淋门-停留点,4bf5d4c5-75a4-11eb-8565-0001297a1dca
DoorAirOut-2,出风淋门-进入,4bf5d4c5-75a4-11eb-8565-0001297a1dca
DoorAirOut-3,出风淋门-出去,4bf5d4c5-75a4-11eb-8565-0001297a1dca
\ No newline at end of file
\ No newline at end of file
DeviceLibrary/Control.cs
查看文件 @
0b84711
...
@@ -93,7 +93,7 @@ namespace DeviceLibrary
...
@@ -93,7 +93,7 @@ namespace DeviceLibrary
{
{
msglist
.
Add
(
new
AlarmMsg
(
AGVManager
.
nodeInfo
[
j
].
AliceName
,
"lineAgv."
+
AGVManager
.
nodeInfo
[
j
].
Name
+
".OffLine"
,
"离线"
));
msglist
.
Add
(
new
AlarmMsg
(
AGVManager
.
nodeInfo
[
j
].
AliceName
,
"lineAgv."
+
AGVManager
.
nodeInfo
[
j
].
Name
+
".OffLine"
,
"离线"
));
}
}
if
(
AGVManager
.
nodeInfo
[
j
].
Name
.
StartsWith
(
SettingString
.
Room
D
_Name_Prefix
)
||
AGVManager
.
nodeInfo
[
j
].
Name
.
StartsWith
(
SettingString
.
RoomC_Name_Prefix
))
if
(
AGVManager
.
nodeInfo
[
j
].
Name
.
StartsWith
(
SettingString
.
Room
S
_Name_Prefix
)
||
AGVManager
.
nodeInfo
[
j
].
Name
.
StartsWith
(
SettingString
.
RoomC_Name_Prefix
))
{
{
if
(!
AGVManager
.
nodeInfo
[
j
].
Name
.
Equals
(
SettingString
.
RoomCFeederIn
)
&&
!
AGVManager
.
nodeInfo
[
j
].
Name
.
Equals
(
SettingString
.
RoomCFeederOut
)
&&
if
(!
AGVManager
.
nodeInfo
[
j
].
Name
.
Equals
(
SettingString
.
RoomCFeederIn
)
&&
!
AGVManager
.
nodeInfo
[
j
].
Name
.
Equals
(
SettingString
.
RoomCFeederOut
)
&&
!
AGVManager
.
nodeInfo
[
j
].
Name
.
Equals
(
SettingString
.
RoomDFeederIn
)
&&
!
AGVManager
.
nodeInfo
[
j
].
Name
.
Equals
(
SettingString
.
RoomDFeederOut
))
!
AGVManager
.
nodeInfo
[
j
].
Name
.
Equals
(
SettingString
.
RoomDFeederIn
)
&&
!
AGVManager
.
nodeInfo
[
j
].
Name
.
Equals
(
SettingString
.
RoomDFeederOut
))
...
...
DeviceLibrary/bean/job/EmptyAGVBackJob.cs
查看文件 @
0b84711
此文件的差异被折叠,
点击展开。
DeviceLibrary/bean/job/EmptyShelfBackJob.cs
查看文件 @
0b84711
...
@@ -61,22 +61,13 @@ namespace DeviceLibrary
...
@@ -61,22 +61,13 @@ namespace DeviceLibrary
StartJobTime
=
curJobStep
.
startTime
;
StartJobTime
=
curJobStep
.
startTime
;
if
(
curJobStep
.
IsStep
(
EMPTY_SHELF_BACK_STEP
.
NONE
))
if
(
curJobStep
.
IsStep
(
EMPTY_SHELF_BACK_STEP
.
NONE
))
{
{
if
(
AGVManager
.
CheckIsInAirDoor
(
EmptyShelfPlace
))
//
C
车间风淋门
if
(
AGVManager
.
CheckIsInAirDoor
(
EmptyShelfPlace
))
//车间风淋门
{
{
curJobStep
.
ToNextStep
(
EMPTY_SHELF_BACK_STEP
.
WAIT_AGV_REACH_AIR_DOOR
);
curJobStep
.
ToNextStep
(
EMPTY_SHELF_BACK_STEP
.
OUT_AIR_DOOR_1
);
runInfo
=
string
.
Format
(
"从产线{0}过{1}风淋门"
,
EmptyShelfPlace
,
SettingString
.
RoomC_Name
)
;
runInfo
=
$
"从产线{EmptyShelfPlace}去{SettingString.RoomD_Name}风淋门停留点"
;
msg
+=
string
.
Format
(
"[{0}] {1}"
,
curJobStep
.
CurStep
(),
runInfo
);
msg
+=
string
.
Format
(
"[{0}] {1}"
,
curJobStep
.
CurStep
(),
runInfo
);
curJobStep
.
Msg
=
msg
;
curJobStep
.
Msg
=
msg
;
MissionSys
.
AssignMission
(
agv
,
SettingString
.
DoorAirOut
);
MissionSys
.
AssignMission
(
agv
,
$
"{SettingString.DoorAirOut}-1"
);
UpdateJobTaskInfo
(
agv
);
}
else
if
(
EmptyShelfPlace
.
StartsWith
(
SettingString
.
RoomC_Name_Prefix
))
//C车间
{
curJobStep
.
ToNextStep
(
EMPTY_SHELF_BACK_STEP
.
WAIT_AGV_REACH_DOOR
);
runInfo
=
string
.
Format
(
"从产线{0}前往{1}门"
,
EmptyShelfPlace
,
SettingString
.
RoomD_Name
);
msg
+=
string
.
Format
(
"[{0}] {1}"
,
curJobStep
.
CurStep
(),
runInfo
);
curJobStep
.
Msg
=
msg
;
MissionSys
.
AssignMission
(
agv
,
SettingString
.
DoorCToD
);
UpdateJobTaskInfo
(
agv
);
UpdateJobTaskInfo
(
agv
);
}
}
else
else
...
@@ -106,32 +97,46 @@ namespace DeviceLibrary
...
@@ -106,32 +97,46 @@ namespace DeviceLibrary
}
}
}
}
}
}
else
if
(
curJobStep
.
IsStep
(
EMPTY_SHELF_BACK_STEP
.
WAIT_AGV_REACH_AIR_DOOR
))
else
if
(
curJobStep
.
IsStep
(
EMPTY_SHELF_BACK_STEP
.
OUT_AIR_DOOR_1
))
{
{
CurTaskState
=
MissionSys
.
GetTakJobState
(
agv
);
CurTaskState
=
MissionSys
.
GetTakJobState
(
agv
);
if
(
MissionSys
.
CheckTaskFinished
(
agv
,
SettingString
.
DoorAirOut
,
CurTaskState
))
if
(
MissionSys
.
CheckTaskFinished
(
agv
,
$
"{SettingString.DoorAirOut}-1"
,
CurTaskState
))
{
{
RecordRunLog
(
agv
,
curJobStep
.
CurStep
(),
runInfo
,
agv
.
Place
);
RecordRunLog
(
agv
,
curJobStep
.
CurStep
(),
runInfo
,
agv
.
Place
);
curJobStep
.
ToNextStep
(
EMPTY_SHELF_BACK_STEP
.
WAIT_AGV_REACH_DOOR
);
curJobStep
.
ToNextStep
(
EMPTY_SHELF_BACK_STEP
.
OUT_AIR_DOOR_2
);
runInfo
=
string
.
Format
(
"出风淋门,前往{0}门"
,
SettingString
.
RoomD_Name
);
runInfo
=
string
.
Format
(
"{0}到达风淋门停留点,进入{1}风淋门"
,
agv
.
Place
,
SettingString
.
RoomD_Name
);
msg
+=
string
.
Format
(
"[{0}] {1}"
,
curJobStep
.
CurStep
(),
runInfo
);
msg
+=
string
.
Format
(
"[{0}] {1}"
,
curJobStep
.
CurStep
(),
runInfo
);
curJobStep
.
Msg
=
msg
;
MissionSys
.
AssignMission
(
agv
,
$
"{SettingString.DoorAirOut}-2"
);
UpdateJobTaskInfo
(
agv
);
}
}
else
if
(
curJobStep
.
IsStep
(
EMPTY_SHELF_BACK_STEP
.
OUT_AIR_DOOR_2
))
{
CurTaskState
=
MissionSys
.
GetTakJobState
(
agv
);
if
(
MissionSys
.
CheckTaskFinished
(
agv
,
$
"{SettingString.DoorAirOut}-2"
,
CurTaskState
))
{
RecordRunLog
(
agv
,
curJobStep
.
CurStep
(),
runInfo
,
agv
.
Place
);
curJobStep
.
ToNextStep
(
EMPTY_SHELF_BACK_STEP
.
OUT_AIR_DOOR_3
);
runInfo
=
string
.
Format
(
"{0}进入风淋门,准备出{1}风淋门"
,
agv
.
Place
,
SettingString
.
RoomD_Name
);
msg
+=
string
.
Format
(
"[{0}] {1}"
,
curJobStep
.
CurStep
(),
runInfo
);
curJobStep
.
Msg
=
msg
;
curJobStep
.
Msg
=
msg
;
MissionSys
.
AssignMission
(
agv
,
SettingString
.
DoorCToD
);
MissionSys
.
AssignMission
(
agv
,
$
"{SettingString.DoorAirOut}-3"
);
UpdateJobTaskInfo
(
agv
);
UpdateJobTaskInfo
(
agv
);
}
}
}
}
else
if
(
curJobStep
.
IsStep
(
EMPTY_SHELF_BACK_STEP
.
WAIT_AGV_REACH_DOOR
))
else
if
(
curJobStep
.
IsStep
(
EMPTY_SHELF_BACK_STEP
.
OUT_AIR_DOOR_3
))
{
{
CurTaskState
=
MissionSys
.
GetTakJobState
(
agv
);
CurTaskState
=
MissionSys
.
GetTakJobState
(
agv
);
if
(
MissionSys
.
CheckTaskFinished
(
agv
,
SettingString
.
DoorCToD
,
CurTaskState
))
if
(
MissionSys
.
CheckTaskFinished
(
agv
,
$
"{SettingString.DoorAirOut}-3"
,
CurTaskState
))
{
{
RecordRunLog
(
agv
,
curJobStep
.
CurStep
(),
runInfo
,
agv
.
Place
);
RecordRunLog
(
agv
,
curJobStep
.
CurStep
(),
runInfo
,
agv
.
Place
);
if
(
AGVManager
.
CheckA5A6State
(
agv
,
shelfType
,
out
string
nodeName
))
if
(
AGVManager
.
CheckA5A6State
(
agv
,
shelfType
,
out
string
nodeName
))
{
{
EmptyShelfTargetPlace
=
nodeName
;
EmptyShelfTargetPlace
=
nodeName
;
curJobStep
.
ToNextStep
(
EMPTY_SHELF_BACK_STEP
.
WAIT_AGV_REACH_A5A6
);
curJobStep
.
ToNextStep
(
EMPTY_SHELF_BACK_STEP
.
WAIT_AGV_REACH_A5A6
);
runInfo
=
string
.
Format
(
"
进{0}门,送往双层线{1}"
,
SettingString
.
RoomD_Name
,
EmptyShelfTargetPlace
);
runInfo
=
string
.
Format
(
"
送往双层线{1}"
,
SettingString
.
RoomD_Name
,
EmptyShelfTargetPlace
);
msg
+=
string
.
Format
(
"[{0}] {1}"
,
curJobStep
.
CurStep
(),
runInfo
);
msg
+=
string
.
Format
(
"[{0}] {1}"
,
curJobStep
.
CurStep
(),
runInfo
);
curJobStep
.
Msg
=
msg
;
curJobStep
.
Msg
=
msg
;
MissionSys
.
AssignMission
(
agv
,
EmptyShelfTargetPlace
);
MissionSys
.
AssignMission
(
agv
,
EmptyShelfTargetPlace
);
UpdateJobTaskInfo
(
agv
);
UpdateJobTaskInfo
(
agv
);
...
@@ -139,9 +144,9 @@ namespace DeviceLibrary
...
@@ -139,9 +144,9 @@ namespace DeviceLibrary
else
else
{
{
curJobStep
.
ToNextStep
(
EMPTY_SHELF_BACK_STEP
.
WAIT_AGV_REACH_STANDBY
);
curJobStep
.
ToNextStep
(
EMPTY_SHELF_BACK_STEP
.
WAIT_AGV_REACH_STANDBY
);
runInfo
=
string
.
Format
(
"
进{0}门,
双层线暂不需要空料架,到待机位"
,
SettingString
.
RoomD_Name
);
runInfo
=
string
.
Format
(
"双层线暂不需要空料架,到待机位"
,
SettingString
.
RoomD_Name
);
runInfo
=
"
进4D门,
双层线暂不需要空料架,到待机位"
;
runInfo
=
"双层线暂不需要空料架,到待机位"
;
msg
+=
string
.
Format
(
"[{0}] {1}"
,
curJobStep
.
CurStep
(),
runInfo
);
msg
+=
string
.
Format
(
"[{0}] {1}"
,
curJobStep
.
CurStep
(),
runInfo
);
curJobStep
.
Msg
=
msg
;
curJobStep
.
Msg
=
msg
;
MissionSys
.
AssignMission
(
agv
,
SettingString
.
Standby
);
MissionSys
.
AssignMission
(
agv
,
SettingString
.
Standby
);
UpdateJobTaskInfo
(
agv
);
UpdateJobTaskInfo
(
agv
);
...
@@ -260,13 +265,17 @@ namespace DeviceLibrary
...
@@ -260,13 +265,17 @@ namespace DeviceLibrary
/// </summary>
/// </summary>
NONE
,
NONE
,
/// <summary>
/// <summary>
/// 等待到达4C风淋门
/// 去出3D风淋门等待位
/// </summary>
OUT_AIR_DOOR_1
,
/// <summary>
/// 进风淋门
/// </summary>
/// </summary>
WAIT_AGV_REACH_AIR_DOOR
,
OUT_AIR_DOOR_2
,
/// <summary>
/// <summary>
///
等待AGV到达
门
///
出风淋
门
/// </summary>
/// </summary>
WAIT_AGV_REACH_DOOR
,
OUT_AIR_DOOR_3
,
/// <summary>
/// <summary>
/// 等待小车到达A5,A6
/// 等待小车到达A5,A6
/// </summary>
/// </summary>
...
...
DeviceLibrary/bean/job/GoEmptyShelfLineJob.cs
查看文件 @
0b84711
此文件的差异被折叠,
点击展开。
DeviceLibrary/bean/job/GoFullShelfStationJob.cs
查看文件 @
0b84711
...
@@ -88,20 +88,11 @@ namespace DeviceLibrary
...
@@ -88,20 +88,11 @@ namespace DeviceLibrary
}
}
else
if
(
AGVManager
.
CheckIsInAirDoor
(
agvPlace
))
else
if
(
AGVManager
.
CheckIsInAirDoor
(
agvPlace
))
{
{
curJobStep
.
ToNextStep
(
GO_FULL_SHELF_STATION_STEP
.
WAIT_AGV_REACH_AIR_DOOR
);
curJobStep
.
ToNextStep
(
GO_FULL_SHELF_STATION_STEP
.
OUT_AIR_DOOR_1
);
runInfo
=
"
在风淋门内,先过风淋门
"
;
runInfo
=
"
去风淋门停留点
"
;
msg
+=
string
.
Format
(
"[{0}] {1}"
,
curJobStep
.
CurStep
(),
runInfo
);
msg
+=
string
.
Format
(
"[{0}] {1}"
,
curJobStep
.
CurStep
(),
runInfo
);
curJobStep
.
Msg
=
msg
;
curJobStep
.
Msg
=
msg
;
MissionSys
.
AssignMission
(
agv
,
SettingString
.
DoorAirOut
);
MissionSys
.
AssignMission
(
agv
,
$
"{SettingString.DoorAirOut}-1"
);
UpdateJobTaskInfo
(
agv
);
}
else
if
(
agvPlace
.
StartsWith
(
SettingString
.
RoomC_Name_Prefix
))
//4C车间
{
curJobStep
.
ToNextStep
(
GO_FULL_SHELF_STATION_STEP
.
WAIT_AGV_REACH_DOOR
);
runInfo
=
string
.
Format
(
"在{0}车间,向{1}门运行,再到双层线入料口"
,
SettingString
.
RoomC_Name
,
SettingString
.
RoomD_Name
);
msg
+=
string
.
Format
(
"[{0}] {1}"
,
curJobStep
.
CurStep
(),
runInfo
);
curJobStep
.
Msg
=
msg
;
MissionSys
.
AssignMission
(
agv
,
SettingString
.
DoorCToD
);
UpdateJobTaskInfo
(
agv
);
UpdateJobTaskInfo
(
agv
);
}
}
else
else
...
@@ -118,25 +109,24 @@ namespace DeviceLibrary
...
@@ -118,25 +109,24 @@ namespace DeviceLibrary
}
}
}
}
else
if
(
curJobStep
.
IsStep
(
GO_FULL_SHELF_STATION_STEP
.
WAIT_AGV_REACH_AIR_DOOR
))
else
if
(
curJobStep
.
IsStep
(
GO_FULL_SHELF_STATION_STEP
.
OUT_AIR_DOOR_2
))
{
{
CurTaskState
=
MissionSys
.
GetTakJobState
(
agv
);
CurTaskState
=
MissionSys
.
GetTakJobState
(
agv
);
if
(
MissionSys
.
CheckTaskFinished
(
agv
,
SettingString
.
DoorAirOut
,
CurTaskState
))
if
(
MissionSys
.
CheckTaskFinished
(
agv
,
$
"{SettingString.DoorAirOut}-2"
,
CurTaskState
))
{
{
RecordRunLog
(
agv
,
curJobStep
.
CurStep
(),
runInfo
,
agv
.
Place
);
RecordRunLog
(
agv
,
curJobStep
.
CurStep
(),
runInfo
,
agv
.
Place
);
curJobStep
.
ToNextStep
(
GO_FULL_SHELF_STATION_STEP
.
WAIT_AGV_REACH_DOOR
);
curJobStep
.
ToNextStep
(
GO_FULL_SHELF_STATION_STEP
.
OUT_AIR_DOOR_3
);
runInfo
=
string
.
Format
(
"
过风淋门,向{0}门运行,再到双层线入料口{1}"
,
SettingString
.
RoomD_Name
,
FullShelfStationPlac
e
);
runInfo
=
string
.
Format
(
"
{0}进入风淋门,准备出{1}风淋门"
,
agv
.
Place
,
SettingString
.
RoomD_Nam
e
);
msg
+=
string
.
Format
(
"[{0}] {1}"
,
curJobStep
.
CurStep
(),
runInfo
);
msg
+=
string
.
Format
(
"[{0}] {1}"
,
curJobStep
.
CurStep
(),
runInfo
);
curJobStep
.
Msg
=
msg
;
curJobStep
.
Msg
=
msg
;
MissionSys
.
AssignMission
(
agv
,
SettingString
.
DoorCToD
);
MissionSys
.
AssignMission
(
agv
,
$
"{SettingString.DoorAirOut}-3"
);
UpdateJobTaskInfo
(
agv
);
UpdateJobTaskInfo
(
agv
);
}
}
}
}
else
if
(
curJobStep
.
IsStep
(
GO_FULL_SHELF_STATION_STEP
.
WAIT_AGV_REACH_DOOR
))
else
if
(
curJobStep
.
IsStep
(
GO_FULL_SHELF_STATION_STEP
.
OUT_AIR_DOOR_3
))
{
{
CurTaskState
=
MissionSys
.
GetTakJobState
(
agv
);
CurTaskState
=
MissionSys
.
GetTakJobState
(
agv
);
if
(
MissionSys
.
CheckTaskFinished
(
agv
,
SettingString
.
DoorCToD
,
CurTaskState
))
if
(
MissionSys
.
CheckTaskFinished
(
agv
,
$
"{SettingString.DoorAirOut}-3"
,
CurTaskState
))
{
{
RecordRunLog
(
agv
,
curJobStep
.
CurStep
(),
runInfo
,
agv
.
Place
);
RecordRunLog
(
agv
,
curJobStep
.
CurStep
(),
runInfo
,
agv
.
Place
);
curJobStep
.
ToNextStep
(
GO_FULL_SHELF_STATION_STEP
.
WAIT_AGV_REACH_A6
);
curJobStep
.
ToNextStep
(
GO_FULL_SHELF_STATION_STEP
.
WAIT_AGV_REACH_A6
);
...
@@ -146,7 +136,6 @@ namespace DeviceLibrary
...
@@ -146,7 +136,6 @@ namespace DeviceLibrary
MissionSys
.
AssignMission
(
agv
,
FullShelfStationPlace
);
MissionSys
.
AssignMission
(
agv
,
FullShelfStationPlace
);
UpdateJobTaskInfo
(
agv
);
UpdateJobTaskInfo
(
agv
);
}
}
}
}
else
if
(
curJobStep
.
IsStep
(
GO_FULL_SHELF_STATION_STEP
.
WAIT_AGV_REACH_A6
))
else
if
(
curJobStep
.
IsStep
(
GO_FULL_SHELF_STATION_STEP
.
WAIT_AGV_REACH_A6
))
{
{
...
@@ -286,13 +275,17 @@ namespace DeviceLibrary
...
@@ -286,13 +275,17 @@ namespace DeviceLibrary
/// </summary>
/// </summary>
WAIT_CHECK_RESULT
,
WAIT_CHECK_RESULT
,
/// <summary>
/// <summary>
/// 等待到达4C风淋门
/// 去出3D风淋门等待位
/// </summary>
OUT_AIR_DOOR_1
,
/// <summary>
/// 进风淋门
/// </summary>
/// </summary>
WAIT_AGV_REACH_AIR_DOOR
,
OUT_AIR_DOOR_2
,
/// <summary>
/// <summary>
///
等待AGV到达
门
///
出风淋
门
/// </summary>
/// </summary>
WAIT_AGV_REACH_DOOR
,
OUT_AIR_DOOR_3
,
/// <summary>
/// <summary>
/// 等待到达A6
/// 等待到达A6
/// </summary>
/// </summary>
...
...
DeviceLibrary/bean/job/SendFullShelfToLineJob.cs
查看文件 @
0b84711
此文件的差异被折叠,
点击展开。
DeviceLibrary/bean/job/jobType/JobForRoomD.cs
查看文件 @
0b84711
...
@@ -41,7 +41,7 @@ namespace DeviceLibrary
...
@@ -41,7 +41,7 @@ namespace DeviceLibrary
//出工单料的目的地是否有空料架
//出工单料的目的地是否有空料架
if
(
AGVManager
.
FindEmptyShelfBeforeSendFullShelf
(
out
string
nodeName
))
if
(
AGVManager
.
FindEmptyShelfBeforeSendFullShelf
(
out
string
nodeName
))
{
{
if
(
nodeName
.
StartsWith
(
SettingString
.
Room
D
_Name_Prefix
)
&&
!
SettingString
.
RoomC_AGV_IPs
.
Contains
(
currentAgv
.
IP
))
if
(
nodeName
.
StartsWith
(
SettingString
.
Room
S
_Name_Prefix
)
&&
!
SettingString
.
RoomC_AGV_IPs
.
Contains
(
currentAgv
.
IP
))
{
{
ClientNode
clientNode
=
AGVManager
.
nodeInfo
.
Find
(
s
=>
s
.
Name
.
Equals
(
nodeName
));
ClientNode
clientNode
=
AGVManager
.
nodeInfo
.
Find
(
s
=>
s
.
Name
.
Equals
(
nodeName
));
int
cnt
=
0
;
int
cnt
=
0
;
...
...
DeviceLibrary/manager/AGVManager.cs
查看文件 @
0b84711
...
@@ -403,7 +403,7 @@ namespace DeviceLibrary
...
@@ -403,7 +403,7 @@ namespace DeviceLibrary
log
.
Debug
(
"A6出满料架的产线有空料架,优先处理 "
+
FullShelfDestInfo
.
ShowInfo
(
line
));
log
.
Debug
(
"A6出满料架的产线有空料架,优先处理 "
+
FullShelfDestInfo
.
ShowInfo
(
line
));
return
true
;
return
true
;
}
}
else
if
(
FullShelfDestInfo
.
location
.
StartsWith
(
SettingString
.
Room
D
_Name_Prefix
)
&&
!
SettingString
.
RoomC_AGV_IPs
.
Contains
(
agv
.
IP
))
else
if
(
FullShelfDestInfo
.
location
.
StartsWith
(
SettingString
.
Room
S
_Name_Prefix
)
&&
!
SettingString
.
RoomC_AGV_IPs
.
Contains
(
agv
.
IP
))
{
{
nodeName
=
FullShelfDestInfo
.
location
;
nodeName
=
FullShelfDestInfo
.
location
;
GetLineNameByNodeName
(
nodeName
,
out
string
line
);
GetLineNameByNodeName
(
nodeName
,
out
string
line
);
...
@@ -441,7 +441,7 @@ namespace DeviceLibrary
...
@@ -441,7 +441,7 @@ namespace DeviceLibrary
//Common.LogInfo("双层线正在出的工单目标产线有空料架,优先处4C-" + loc);
//Common.LogInfo("双层线正在出的工单目标产线有空料架,优先处4C-" + loc);
return
true
;
return
true
;
}
}
else
if
(
loc
.
StartsWith
(
SettingString
.
Room
D
_Name_Prefix
)
&&
!
SettingString
.
RoomC_AGV_IPs
.
Contains
(
agv
.
IP
))
else
if
(
loc
.
StartsWith
(
SettingString
.
Room
S
_Name_Prefix
)
&&
!
SettingString
.
RoomC_AGV_IPs
.
Contains
(
agv
.
IP
))
{
{
nodeName
=
loc
;
nodeName
=
loc
;
log
.
Debug
(
"双层线正在出的工单目标产线有空料架,优先处理4D-"
+
loc
);
log
.
Debug
(
"双层线正在出的工单目标产线有空料架,优先处理4D-"
+
loc
);
...
@@ -475,7 +475,7 @@ namespace DeviceLibrary
...
@@ -475,7 +475,7 @@ namespace DeviceLibrary
//4D车间寻找
//4D车间寻找
if
(!
SettingString
.
RoomC_AGV_IPs
.
Contains
(
agv
.
IP
))
if
(!
SettingString
.
RoomC_AGV_IPs
.
Contains
(
agv
.
IP
))
{
{
string
nearNodeName
=
CalculateNearNode
(
agv
,
SettingString
.
Room
D
_Name_Prefix
);
string
nearNodeName
=
CalculateNearNode
(
agv
,
SettingString
.
Room
S
_Name_Prefix
);
if
(
nearNodeName
.
Equals
(
""
))
if
(
nearNodeName
.
Equals
(
""
))
{
{
return
false
;
return
false
;
...
@@ -532,7 +532,7 @@ namespace DeviceLibrary
...
@@ -532,7 +532,7 @@ namespace DeviceLibrary
//4D车间寻找
//4D车间寻找
if
(!
SettingString
.
RoomC_AGV_IPs
.
Contains
(
agv
.
IP
))
if
(!
SettingString
.
RoomC_AGV_IPs
.
Contains
(
agv
.
IP
))
{
{
string
nearNodeName
=
CalculateNearNode
(
agv
,
SettingString
.
Room
D
_Name_Prefix
);
string
nearNodeName
=
CalculateNearNode
(
agv
,
SettingString
.
Room
S
_Name_Prefix
);
if
(!
nearNodeName
.
Equals
(
""
))
if
(!
nearNodeName
.
Equals
(
""
))
{
{
nodeName
=
nearNodeName
;
nodeName
=
nearNodeName
;
...
@@ -569,28 +569,12 @@ namespace DeviceLibrary
...
@@ -569,28 +569,12 @@ namespace DeviceLibrary
}
}
}
}
if
(
CheckA6State
(
agv
,
eShelfType
.
BigShelf
))
if
(
CheckA6State
(
agv
,
eShelfType
.
BigShelf
)
||
CheckA6State
(
agv
,
eShelfType
.
SmallShelf
)
)
{
{
//4C车间备料区寻找
//D车间备料区寻找
if
(
SettingString
.
RoomC_AGV_IPs
.
Contains
(
agv
.
IP
))
{
idx
=
nodeInfo
.
FindIndex
(
s
=>
s
.
EmptyShelfCnt
>
0
&&
s
.
Name
.
Equals
(
SettingString
.
RoomCFeederOut
)
&&
!
s
.
RFID
.
StartsWith
(
"0"
)
&&
s
.
IsUse
);
if
(
idx
>
-
1
)
{
int
idx1
=
agvInfo
.
FindIndex
(
s
=>
s
.
CurJob
is
EnterLeaveShelfJob
&&
((
EnterLeaveShelfJob
)
s
.
CurJob
).
LineName
.
Equals
(
SettingString
.
RoomCFeederOut
));
if
(
idx1
==
-
1
)
{
nodeName
=
nodeInfo
[
idx
].
Name
;
log
.
Debug
(
agv
.
Name
+
" 双层线右侧需要料架,准备去4C-"
+
nodeName
);
return
true
;
}
}
}
//4D车间备料区寻找
if
(!
SettingString
.
RoomC_AGV_IPs
.
Contains
(
agv
.
IP
))
if
(!
SettingString
.
RoomC_AGV_IPs
.
Contains
(
agv
.
IP
))
{
{
idx
=
nodeInfo
.
FindIndex
(
s
=>
s
.
EmptyShelfCnt
>
0
&&
s
.
Name
.
Equals
(
SettingString
.
RoomDFeederOut
)
&&
s
.
RFID
.
StartsWith
(
"D
"
)
&&
s
.
IsUse
);
idx
=
nodeInfo
.
FindIndex
(
s
=>
s
.
EmptyShelfCnt
>
0
&&
s
.
Name
.
Equals
(
SettingString
.
RoomDFeederOut
)
&&
!
s
.
RFID
.
StartsWith
(
"0
"
)
&&
s
.
IsUse
);
if
(
idx
>
-
1
)
if
(
idx
>
-
1
)
{
{
nodeName
=
nodeInfo
[
idx
].
Name
;
nodeName
=
nodeInfo
[
idx
].
Name
;
...
@@ -626,7 +610,8 @@ namespace DeviceLibrary
...
@@ -626,7 +610,8 @@ namespace DeviceLibrary
return
true
;
return
true
;
}
}
else
if
(
FullShelfDestInfo
.
location
.
StartsWith
(
SettingString
.
RoomD_Name_Prefix
)
&&
!
SettingString
.
RoomC_AGV_IPs
.
Contains
(
agv
.
IP
))
else
if
((
FullShelfDestInfo
.
location
.
StartsWith
(
SettingString
.
RoomS_Name_Prefix
)||
FullShelfDestInfo
.
location
.
StartsWith
(
SettingString
.
SmallShelf_Prefix
))
&&
!
SettingString
.
RoomC_AGV_IPs
.
Contains
(
agv
.
IP
))
{
{
int
i
=
agvInfo
.
FindIndex
(
s
=>
s
.
CurJob
is
SendFullShelfToLineJob
&&
!
s
.
IP
.
Equals
(
agv
.
IP
)
int
i
=
agvInfo
.
FindIndex
(
s
=>
s
.
CurJob
is
SendFullShelfToLineJob
&&
!
s
.
IP
.
Equals
(
agv
.
IP
)
&&
((
SendFullShelfToLineJob
)
s
.
CurJob
).
FullShelfPlace
.
Equals
(
FullShelfDestInfo
.
location
));
&&
((
SendFullShelfToLineJob
)
s
.
CurJob
).
FullShelfPlace
.
Equals
(
FullShelfDestInfo
.
location
));
...
...
DeviceLibrary/manager/HttpManager.cs
查看文件 @
0b84711
...
@@ -134,7 +134,11 @@ namespace DeviceLibrary
...
@@ -134,7 +134,11 @@ namespace DeviceLibrary
{
{
tempLocation
=
"3CFeederIn"
;
tempLocation
=
"3CFeederIn"
;
}
}
else
if
(
res
[
0
].
location
.
StartsWith
(
"D"
)||
res
[
0
].
location
.
StartsWith
(
"C"
)
||
res
[
0
].
location
.
Equals
(
"Feeder"
)
||
res
[
0
].
location
.
Equals
(
"4DFeeder"
)
||
res
[
0
].
location
.
Equals
(
"4CFeeder"
))
{
tempLocation
=
"D0"
;
}
if
(
AGVManager
.
GetNodeNameByLineName
(
tempLocation
,
out
string
loc
))
if
(
AGVManager
.
GetNodeNameByLineName
(
tempLocation
,
out
string
loc
))
{
{
int
i
=
AGVManager
.
FindNode
(
loc
);
int
i
=
AGVManager
.
FindNode
(
loc
);
...
@@ -525,7 +529,7 @@ namespace DeviceLibrary
...
@@ -525,7 +529,7 @@ namespace DeviceLibrary
{
{
string
addr
=
""
;
string
addr
=
""
;
string
lineName
=
""
;
string
lineName
=
""
;
if
(
nodeName
.
StartsWith
(
SettingString
.
Room
D
_Name_Prefix
)
&&
AGVManager
.
GetLineNameByNodeName
(
nodeName
,
out
lineName
))
if
(
nodeName
.
StartsWith
(
SettingString
.
Room
S
_Name_Prefix
)
&&
AGVManager
.
GetLineNameByNodeName
(
nodeName
,
out
lineName
))
{
{
addr
=
string
.
Format
(
"http://{0}/LineClearRFID?line={1}&rfid={2}"
,
AppConfigHelper
.
GetValue
(
SettingString
.
IP_3D_Light
),
lineName
,
rfid
);
addr
=
string
.
Format
(
"http://{0}/LineClearRFID?line={1}&rfid={2}"
,
AppConfigHelper
.
GetValue
(
SettingString
.
IP_3D_Light
),
lineName
,
rfid
);
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论