Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
张东亮
/
AGV_3D_SMD
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 9155c4b4
由
张东亮
编写于
2021-12-09 17:22:45 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
小车收到finishenter信号后小车转向
1 个父辈
34b0a313
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
64 行增加
和
50 行删除
AGV_3D_SMD/Manual.cs
DeviceLibrary/AgvServer.cs
DeviceLibrary/CommonVar.cs
DeviceLibrary/bean/job/GetShelfJob.cs
DeviceLibrary/bean/job/SendShelfJob.cs
DeviceLibrary/bean/jobType/ReelStringJobType.cs
AGV_3D_SMD/Manual.cs
查看文件 @
9155c4b
...
...
@@ -62,7 +62,7 @@ namespace AGVControl
// LogUtil.error(string.Format("{0} 车上有负载,无法开启自动模式,请先清空小车负载!", Agv.Name));
// return;
//}
if
(
MessageBox
.
Show
(
this
,
"是否继续上一次的任务?\r\n"
+
Agv
.
Msg
,
"提示"
,
MessageBoxButtons
.
YesNo
).
Equals
(
DialogResult
.
No
))
//
if (MessageBox.Show(this, "是否继续上一次的任务?\r\n" + Agv.Msg, "提示", MessageBoxButtons.YesNo).Equals(DialogResult.No))
{
if
(
Agv
.
IsExistShelf
)
{
...
...
@@ -81,14 +81,14 @@ namespace AGVControl
}
Agv
.
RFID
=
""
;
}
else
{
if
(
Agv
.
IsCon
)
{
Agv
.
Resend
();
}
//
else
//
{
//
if (Agv.IsCon)
//
{
//
Agv.Resend();
//
}
}
//
}
}
Agv
.
IsUse
=
chkBxAuto
.
Checked
;
...
...
DeviceLibrary/AgvServer.cs
查看文件 @
9155c4b
...
...
@@ -465,7 +465,7 @@ namespace DeviceLibrary
int
idx
=
NodeManager
.
FindNode
(
node
.
Name
);
if
(
idx
==
-
1
)
{
log
.
Error
(
node
.
Name
+
" 不存在"
);
log
.
Error
(
node
.
Name
+
" 不存在
/调用关闭
"
);
return
;
}
...
...
DeviceLibrary/CommonVar.cs
查看文件 @
9155c4b
...
...
@@ -228,6 +228,7 @@ namespace DeviceLibrary
/// AGV编号
/// </summary>
public
string
AGVNum
{
get
;
set
;
}
=
""
;
public
string
DeviceName
{
get
;
set
;
}
=
""
;
/// <summary>
/// 任务名称
/// </summary>
...
...
@@ -305,6 +306,7 @@ namespace DeviceLibrary
agvname
=
value
.
PadLeft
(
4
,
'0'
);
}
}
public
string
DeviceName
{
get
;
set
;
}
=
""
;
private
string
agvname
=
""
;
/// <summary>
/// 开始时间
...
...
DeviceLibrary/bean/job/GetShelfJob.cs
查看文件 @
9155c4b
...
...
@@ -177,7 +177,7 @@ namespace DeviceLibrary
}
else
if
(
curJobStep
.
IsStep
(
EXECUTE_STEP
.
P4_WAIT_LINE_RESPONSE
))
{
int
i
=
NodeManager
.
nodeInfo
.
FindIndex
(
s
=>
s
.
Name
.
Equals
(
TargetPlace
)
);
//&& s.StateEquals(eNodeStatus.MayLeave)
int
i
=
NodeManager
.
nodeInfo
.
FindIndex
(
s
=>
s
.
Name
.
Equals
(
TargetPlace
)
&&
s
.
StateEquals
(
eNodeStatus
.
MayLeave
));
//
if
(
i
>
-
1
)
{
curJobStep
.
ToNextStep
(
EXECUTE_STEP
.
P5_WAIT_SHELF_IN_AGV
);
...
...
@@ -191,24 +191,24 @@ namespace DeviceLibrary
rtn
=
agv
.
AssignTask
(
Common
.
SettingString
.
Enter
);
UpdateJobTaskInfo
(
agv
);
}
if
(
curJobStep
.
IsTimeOut
(
15
000
,
out
TimeSpan
timeSpan
))
else
if
(
curJobStep
.
IsTimeOut
(
30
000
,
out
TimeSpan
timeSpan
))
{
if
(
TargetPlace
.
Equals
(
SettingString
.
D3
)
||
TargetPlace
.
Equals
(
SettingString
.
D4
))
{
runInfo
=
string
.
Format
(
"线体[{0}]允许出料信号[{1}]超时{2}秒,该处料串可能被手动干预,回待机位"
,
TargetPlace
,
eNodeStatus
.
MayLeave
,
timeSpan
.
TotalMinutes
.
ToString
(
"f2"
));
msg
+=
string
.
Format
(
"线体[{0}]允许出料信号[{1}]超时15S,该处料串可能被手动干预,回待机位"
,
TargetPlace
,
eNodeStatus
.
MayLeave
);
curJobStep
.
Msg
=
msg
;
RecordRunLog
(
agv
,
curJobStep
.
CurStep
(),
runInfo
,
TargetPlace
);
return
new
ChargeJob
(
TargetPlace
);
}
//else
//if (TargetPlace.Equals(SettingString.D3) || TargetPlace.Equals(SettingString.D4))
//{
// curJobStep.ToNextStep(EXECUTE_STEP.P2_WAIT_REACH_SHELF_PLACE);
// runInfo = string.Format("线体[{0}]允许出料信号[{1}]超时{2}秒,重发出料请求", TargetPlace, eNodeStatus.MayLeave, timeOutTime.ToString("f2"));
// msg += string.Format("线体[{0}]允许出料信号[{1}]超时15S,重发出料请求", TargetPlace, eNodeStatus.MayLeave);
// runInfo = string.Format("线体[{0}]允许出料信号[{1}]超时{2}秒,该处料串可能被手动干预,回待机位", TargetPlace, eNodeStatus.MayLeave, timeSpan.TotalSeconds.ToString("f2"));
// msg += string.Format("线体[{0}]允许出料信号[{1}]超时15S,该处料串可能被手动干预,回待机位", TargetPlace, eNodeStatus.MayLeave);
// curJobStep.Msg = msg;
// //去待机位
// RecordRunLog(agv, curJobStep.CurStep(), runInfo, TargetPlace);
// return new ChargeJob(TargetPlace);
//}
//else
{
curJobStep
.
ToNextStep
(
EXECUTE_STEP
.
P2_WAIT_REACH_SHELF_PLACE
);
runInfo
=
string
.
Format
(
"线体[{0}]允许出料信号[{1}]超时{2}秒,重发出料请求"
,
TargetPlace
,
eNodeStatus
.
MayLeave
,
timeSpan
.
TotalSeconds
.
ToString
(
"f2"
));
msg
+=
string
.
Format
(
"线体[{0}]允许出料信号[{1}]超时20S,重发出料请求"
,
TargetPlace
,
eNodeStatus
.
MayLeave
);
curJobStep
.
Msg
=
msg
;
//去待机位
}
}
}
else
if
(
curJobStep
.
IsStep
(
EXECUTE_STEP
.
P5_WAIT_SHELF_IN_AGV
))
...
...
@@ -434,6 +434,11 @@ namespace DeviceLibrary
tarPlace
=
SettingString
.
D4
;
return
true
;
}
if
(
ReelStringJobType
.
FindNeedEnterMission
(
currentAgv
,
SettingString
.
D23_In
))
{
tarPlace
=
SettingString
.
D23_In
;
return
true
;
}
}
}
else
//空料串
...
...
@@ -480,6 +485,11 @@ namespace DeviceLibrary
tarPlace
=
SettingString
.
D23_In
;
return
true
;
}
if
(
ReelStringJobType
.
FindNeedEnterMission
(
currentAgv
,
SettingString
.
A8
))
{
tarPlace
=
SettingString
.
A8
;
return
true
;
}
}
}
...
...
DeviceLibrary/bean/job/SendShelfJob.cs
查看文件 @
9155c4b
...
...
@@ -97,7 +97,7 @@ namespace DeviceLibrary
msg
+=
runInfo
;
curJobStep
.
Msg
=
msg
;
CommonVar
.
DoorMission
(
agv
,
SettingString
.
DoorDToC
);
UpdateJobTaskInfo
(
agv
);
UpdateJobTaskInfo
(
agv
);
}
else
if
(
agvPlace
.
StartsWith
(
SettingString
.
C4_Name_Prefix
)
&&
!
TargetPlace
.
StartsWith
(
SettingString
.
C4_Name_Prefix
))
//C D
{
...
...
@@ -106,7 +106,7 @@ namespace DeviceLibrary
msg
+=
runInfo
;
curJobStep
.
Msg
=
msg
;
CommonVar
.
DoorMission
(
agv
,
SettingString
.
DoorCToD
);
UpdateJobTaskInfo
(
agv
);
UpdateJobTaskInfo
(
agv
);
}
else
//DD CC
{
...
...
@@ -115,7 +115,7 @@ namespace DeviceLibrary
msg
+=
runInfo
;
curJobStep
.
Msg
=
msg
;
CommonVar
.
MoveToNode
(
agv
,
TargetPlace
);
UpdateJobTaskInfo
(
agv
);
UpdateJobTaskInfo
(
agv
);
}
}
...
...
@@ -142,7 +142,7 @@ namespace DeviceLibrary
curJobStep
.
Msg
=
msg
;
CommonVar
.
MoveToNode
(
agv
,
TargetPlace
);
UpdateJobTaskInfo
(
agv
);
UpdateJobTaskInfo
(
agv
);
}
}
else
if
(
curJobStep
.
IsStep
(
EXECUTE_STEP
.
P3_WAIT_REACH_4C_DOOR
))
...
...
@@ -156,35 +156,34 @@ namespace DeviceLibrary
curJobStep
.
Msg
=
msg
;
CommonVar
.
MoveToNode
(
agv
,
TargetPlace
);
UpdateJobTaskInfo
(
agv
);
UpdateJobTaskInfo
(
agv
);
}
}
else
if
(
curJobStep
.
IsStep
(
EXECUTE_STEP
.
P4_WAIT_STATION_RESPONSE
))
{
int
i
=
NodeManager
.
nodeInfo
.
FindIndex
(
s
=>
s
.
Name
.
Equals
(
TargetPlace
)
);
//&& s.StateEquals(eNodeStatus.MayEnter)
int
i
=
NodeManager
.
nodeInfo
.
FindIndex
(
s
=>
s
.
Name
.
Equals
(
TargetPlace
)
&&
s
.
StateEquals
(
eNodeStatus
.
MayEnter
));
if
(
i
>
-
1
)
{
//
curJobStep.ToNextStep(EXECUTE_STEP.P5_WAIT_SHELF_IN_STATION);
curJobStep
.
ToNextStep
(
EXECUTE_STEP
.
P6_TURN_DIRECTION
);
curJobStep
.
ToNextStep
(
EXECUTE_STEP
.
P5_WAIT_SHELF_IN_STATION
);
//
curJobStep.ToNextStep(EXECUTE_STEP.P6_TURN_DIRECTION);
runInfo
=
"收到线体允许进料信号,链条运行"
;
msg
+=
runInfo
;
curJobStep
.
Msg
=
msg
;
rtn
=
agv
.
AssignTask
(
SettingString
.
Leave
);
UpdateJobTaskInfo
(
agv
);
UpdateJobTaskInfo
(
agv
);
}
else
if
(
curJobStep
.
IsTimeOut
(
20000
,
out
TimeSpan
timeOutTime
))
{
curJobStep
.
ToNextStep
(
EXECUTE_STEP
.
P2_WAIT_REACH_STATION
);
runInfo
=
string
.
Format
(
"线体[{0}]允许进料信号[{1}]超时{2}秒,重发进料请求"
,
TargetPlace
,
eNodeStatus
.
MayEnter
,
timeOutTime
.
TotalSeconds
.
ToString
(
"f2"
));
msg
+=
string
.
Format
(
"线体[{0}]允许进料信号[{1}]超时15S,重发进料请求"
,
TargetPlace
,
eNodeStatus
.
MayEnter
);
curJobStep
.
Msg
=
msg
;
}
// if (curJobStep.IsTimeOut(15000, out double timeOutTime))
//{
// curJobStep.ToNextStep(EXECUTE_STEP.P2_WAIT_REACH_STATION);
// runInfo = string.Format("线体[{0}]允许进料信号[{1}]超时{2}秒,重发进料请求", TargetPlace, eNodeStatus.MayEnter, timeOutTime.ToString("f2"));
// msg += string.Format("线体[{0}]允许进料信号[{1}]超时15S,重发进料请求", TargetPlace, eNodeStatus.MayEnter);
// curJobStep.Msg = msg;
//}
}
else
if
(
curJobStep
.
IsStep
(
EXECUTE_STEP
.
P5_WAIT_SHELF_IN_STATION
))
{
int
idx
=
NodeManager
.
nodeInfo
.
FindIndex
(
s
=>
s
.
Name
.
Equals
(
TargetPlace
)
&&
s
.
StateEquals
(
eNodeStatus
.
FinishEnter
));
if
(
idx
>-
1
)
int
idx
=
NodeManager
.
nodeInfo
.
FindIndex
(
s
=>
s
.
Name
.
Equals
(
TargetPlace
)
&&
s
.
StateEquals
(
eNodeStatus
.
FinishEnter
));
if
(
idx
>
-
1
)
{
RecordRunLog
(
agv
,
curJobStep
.
CurStep
(),
runInfo
,
TargetPlace
);
curJobStep
.
ToNextStep
(
EXECUTE_STEP
.
P6_TURN_DIRECTION
);
...
...
@@ -193,7 +192,7 @@ namespace DeviceLibrary
msg
+=
runInfo
;
curJobStep
.
Msg
=
msg
;
}
else
if
(
curJobStep
.
IsTimeOut
(
6
0000
,
out
TimeSpan
timeSpan
))
else
if
(
curJobStep
.
IsTimeOut
(
12
0000
,
out
TimeSpan
timeSpan
))
{
runInfo
=
string
.
Format
(
"等待线体[{0}]进料完成信号[FinishEnter]超时"
,
TargetPlace
);
msg
+=
runInfo
;
...
...
@@ -201,6 +200,9 @@ namespace DeviceLibrary
agv
.
HasError
=
true
;
agv
.
SetErrorMsg
(
$
"等待线体[{TargetPlace}]进料完成信号[FinishEnter]超时"
,
timeSpan
.
TotalMinutes
.
ToString
(
"f2"
));
}
if
(
CommonVar
.
CheckEnterOrLeaveFinished
(
agv
,
SettingString
.
Leave
,
CurTaskState
))
CommonVar
.
server
.
CloseDoor
(
TargetPlace
);
}
else
if
(
curJobStep
.
IsStep
(
EXECUTE_STEP
.
P6_TURN_DIRECTION
))
{
...
...
@@ -213,10 +215,10 @@ namespace DeviceLibrary
msg
+=
runInfo
;
curJobStep
.
Msg
=
msg
;
CommonVar
.
server
.
CloseDoor
(
TargetPlace
);
//
rtn = agv.AssignTask(SettingString.Turn);
//
UpdateJobTaskInfo(agv);
rtn
=
agv
.
AssignTask
(
SettingString
.
Turn
);
UpdateJobTaskInfo
(
agv
);
}
else
if
(
curJobStep
.
IsTimeOut
(
6
0000
,
out
TimeSpan
timeSpan
))
else
if
(
curJobStep
.
IsTimeOut
(
12
0000
,
out
TimeSpan
timeSpan
))
{
runInfo
=
string
.
Format
(
"线体[{0}]出料超时,请检查料架情况"
,
TargetPlace
);
msg
+=
runInfo
;
...
...
@@ -227,7 +229,7 @@ namespace DeviceLibrary
}
else
if
(
curJobStep
.
IsStep
(
EXECUTE_STEP
.
P7_END
))
{
//
if (CommonVar.CheckEnterOrLeaveFinished(agv, SettingString.Turn, CurTaskState))
if
(
CommonVar
.
CheckEnterOrLeaveFinished
(
agv
,
SettingString
.
Turn
,
CurTaskState
))
{
if
(
IsPlace
(
SettingString
.
D23_In
)
&&
FindReturnShelf
(
agv
))
{
...
...
@@ -259,7 +261,7 @@ namespace DeviceLibrary
runInfo
=
"AGV在"
+
TargetPlace
+
"转向完成"
;
msg
+=
runInfo
;
curJobStep
.
Msg
=
msg
;
RecordRunLog
(
agv
,
curJobStep
.
CurStep
(),
runInfo
,
TargetPlace
);
RecordRunLog
(
agv
,
curJobStep
.
CurStep
(),
runInfo
,
TargetPlace
);
return
null
;
}
}
...
...
DeviceLibrary/bean/jobType/ReelStringJobType.cs
查看文件 @
9155c4b
...
...
@@ -62,7 +62,7 @@ namespace DeviceLibrary
}
}
//检查紧急出料入口需要空料串
if
(
FindNeedEnterMission
(
currentAgv
,
SettingString
.
T4_1
,
ClientLevel
.
Middle
,
false
))
//FindNeedEnterMission(currentAgv, SettingString.T4_1,ClientLevel.Middle,false) ||
if
(
FindNeedEnterMission
(
currentAgv
,
SettingString
.
T4_1
,
ClientLevel
.
Middle
,
false
)
||
FindNeedEnterMission
(
currentAgv
,
SettingString
.
T4_1
,
ClientLevel
.
High
,
false
)
)
//FindNeedEnterMission(currentAgv, SettingString.T4_1,ClientLevel.Middle,false) ||
//FindNeedEnterMission(currentAgv, SettingString.T4_1, ClientLevel.High, false)
{
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论