Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
顾剑亮
/
AGVControl-Qisda-ProductionLine
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 80f750cd
由
张东亮
编写于
2020-12-25 10:15:01 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
1225
1 个父辈
16264432
隐藏空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
65 行增加
和
38 行删除
.vs/AGVControl-ProductionLine/v16/.suo
AGVControl-ProductionLine/BLL/AGVManager.cs
AGVControl-ProductionLine/BLL/Common.cs
AGVControl-ProductionLine/BLL/Control.cs
AGVControl-ProductionLine/bin/Debug/AGVControl-ProductionLine.exe
AGVControl-ProductionLine/bin/Debug/AGVControl-ProductionLine.pdb
AGVControl-ProductionLine/obj/Debug/AGVControl-ProductionLine.csproj.FileListAbsolute.txt
AGVControl-ProductionLine/obj/Debug/AGVControl-ProductionLine.exe
AGVControl-ProductionLine/obj/Debug/AGVControl-ProductionLine.pdb
.vs/AGVControl-ProductionLine/v16/.suo
查看文件 @
80f750c
此文件类型无法预览
AGVControl-ProductionLine/BLL/AGVManager.cs
查看文件 @
80f750c
...
@@ -574,8 +574,8 @@ namespace AGVControl
...
@@ -574,8 +574,8 @@ namespace AGVControl
DateTime
startTime
=
DateTime
.
Now
;
DateTime
startTime
=
DateTime
.
Now
;
string
resultStr
=
HttpHelper
.
Get
(
server
);
string
resultStr
=
HttpHelper
.
Get
(
server
);
Common
.
log
.
Info
(
"清理料架的缓存信息【"
+
server
+
"】【"
+
resultStr
+
"】"
);
Common
.
log
.
Info
(
"清理料架的缓存信息【"
+
server
+
"】【"
+
resultStr
+
"】"
);
//清理料架的缓存信息【http://10.85.199.25/myproject/rest/api/qisda/device/agvRemoveRfid?rfid=C2】【{"code":0,"msg":"ok","data":"料架放上AGV时,清理[C2]的缓存信息成功"}】
RfidData
rfidData
=
JsonHelper
.
DeserializeJsonToObject
<
RfidData
>(
resultStr
);
RfidData
1
rfidData
=
JsonHelper
.
DeserializeJsonToObject
<
RfidData1
>(
resultStr
);
if
(
rfidData
==
null
)
if
(
rfidData
==
null
)
{
{
...
@@ -709,7 +709,15 @@ namespace AGVControl
...
@@ -709,7 +709,15 @@ namespace AGVControl
public
Dictionary
<
string
,
string
>
data
{
get
;
set
;
}
public
Dictionary
<
string
,
string
>
data
{
get
;
set
;
}
}
}
public
class
RfidData1
{
//{"code":0,"msg":"ok","data":"7"}
public
int
code
{
get
;
set
;
}
public
string
msg
{
get
;
set
;
}
public
string
data
{
get
;
set
;
}
}
/// <summary>
/// <summary>
/// Mir位置
/// Mir位置
/// </summary>
/// </summary>
...
...
AGVControl-ProductionLine/BLL/Common.cs
查看文件 @
80f750c
...
@@ -907,8 +907,8 @@ namespace AGVControl
...
@@ -907,8 +907,8 @@ namespace AGVControl
{
{
// if (warnMsg.Equals(""))
// if (warnMsg.Equals(""))
{
{
warnMsg
=
string
.
Format
(
"接驳台[{1}]有空料架未回收完,无法出满料
,请检查接驳台RFID读取情况
"
,
clientNode
.
RFID
,
clientNode
.
Name
);
warnMsg
=
string
.
Format
(
"接驳台[{1}]有空料架未回收完,无法出满料"
,
clientNode
.
RFID
,
clientNode
.
Name
);
Common
.
LogInfo
(
warnMsg
);
//
Common.LogInfo(warnMsg);
}
}
return
false
;
return
false
;
}
}
...
...
AGVControl-ProductionLine/BLL/Control.cs
查看文件 @
80f750c
...
@@ -19,6 +19,7 @@ namespace AGVControl.BLL
...
@@ -19,6 +19,7 @@ namespace AGVControl.BLL
private
System
.
Timers
.
Timer
AgvCallTimer
;
private
System
.
Timers
.
Timer
AgvCallTimer
;
private
System
.
Timers
.
Timer
AgvStateTimer
;
private
System
.
Timers
.
Timer
AgvStateTimer
;
private
System
.
Timers
.
Timer
NodeStateTimer
;
private
System
.
Timers
.
Timer
NodeStateTimer
;
private
System
.
Timers
.
Timer
StateUpdateTimer
;
//public List<string> Marks;
//public List<string> Marks;
private
const
int
REG_STATUS
=
20
;
private
const
int
REG_STATUS
=
20
;
//private List<string> shelfLockedNodeNames;
//private List<string> shelfLockedNodeNames;
...
@@ -50,17 +51,25 @@ namespace AGVControl.BLL
...
@@ -50,17 +51,25 @@ namespace AGVControl.BLL
Enabled
=
false
Enabled
=
false
};
};
NodeStateTimer
.
Elapsed
+=
NodeStateTimer_Elapsed
;
NodeStateTimer
.
Elapsed
+=
NodeStateTimer_Elapsed
;
StateUpdateTimer
=
new
System
.
Timers
.
Timer
{
Interval
=
3000
,
AutoReset
=
true
,
Enabled
=
false
};
StateUpdateTimer
.
Elapsed
+=
StateUpdateTimer_Elapsed
;
}
}
public
void
Start
()
public
void
Start
()
{
{
AgvCallTimer
.
Enabled
=
true
;
AgvCallTimer
.
Enabled
=
true
;
AgvStateTimer
.
Enabled
=
true
;
AgvStateTimer
.
Enabled
=
true
;
NodeStateTimer
.
Enabled
=
true
;
NodeStateTimer
.
Enabled
=
true
;
StateUpdateTimer
.
Enabled
=
true
;
AgvCallTimer
.
Start
();
AgvCallTimer
.
Start
();
AgvStateTimer
.
Start
();
AgvStateTimer
.
Start
();
NodeStateTimer
.
Start
();
NodeStateTimer
.
Start
();
StateUpdateTimer
.
Start
();
}
}
public
void
Stop
()
public
void
Stop
()
...
@@ -68,9 +77,11 @@ namespace AGVControl.BLL
...
@@ -68,9 +77,11 @@ namespace AGVControl.BLL
AgvCallTimer
.
Enabled
=
false
;
AgvCallTimer
.
Enabled
=
false
;
AgvStateTimer
.
Enabled
=
false
;
AgvStateTimer
.
Enabled
=
false
;
NodeStateTimer
.
Enabled
=
false
;
NodeStateTimer
.
Enabled
=
false
;
StateUpdateTimer
.
Enabled
=
false
;
AgvCallTimer
.
Stop
();
AgvCallTimer
.
Stop
();
AgvStateTimer
.
Stop
();
AgvStateTimer
.
Stop
();
NodeStateTimer
.
Stop
();
NodeStateTimer
.
Stop
();
StateUpdateTimer
.
Stop
();
}
}
private
bool
NodeStateInProcess
=
false
;
private
bool
NodeStateInProcess
=
false
;
private
void
NodeStateTimer_Elapsed
(
object
sender
,
System
.
Timers
.
ElapsedEventArgs
e
)
private
void
NodeStateTimer_Elapsed
(
object
sender
,
System
.
Timers
.
ElapsedEventArgs
e
)
...
@@ -87,11 +98,11 @@ namespace AGVControl.BLL
...
@@ -87,11 +98,11 @@ namespace AGVControl.BLL
if
(!
Common
.
UpdateStationState
(
Common
.
nodeInfo
[
j
]))
if
(!
Common
.
UpdateStationState
(
Common
.
nodeInfo
[
j
]))
{
{
isAlarm
=
true
;
isAlarm
=
true
;
msglist
.
Add
(
new
AlarmMsg
(
Common
.
nodeInfo
[
j
].
AliceName
,
"lineAgv."
+
Common
.
nodeInfo
[
j
].
Name
+
".
Warn
Msg"
,
Common
.
nodeInfo
[
j
].
WarnMsg
));
msglist
.
Add
(
new
AlarmMsg
(
Common
.
nodeInfo
[
j
].
AliceName
,
"lineAgv."
+
Common
.
nodeInfo
[
j
].
Name
+
".Msg"
,
Common
.
nodeInfo
[
j
].
WarnMsg
));
}
}
if
(!
isAlarm
&&
!
Common
.
nodeInfo
[
j
].
Online
)
if
(!
isAlarm
&&
!
Common
.
nodeInfo
[
j
].
Online
)
{
{
msglist
.
Add
(
new
AlarmMsg
(
Common
.
nodeInfo
[
j
].
AliceName
,
"lineAgv."
+
Common
.
nodeInfo
[
j
].
Name
+
".
OffLine
"
,
"离线"
));
msglist
.
Add
(
new
AlarmMsg
(
Common
.
nodeInfo
[
j
].
AliceName
,
"lineAgv."
+
Common
.
nodeInfo
[
j
].
Name
+
".
Msg
"
,
"离线"
));
}
}
if
(
Common
.
nodeInfo
[
j
].
Name
.
StartsWith
(
SettingString
.
D4_Name_Prefix
)
||
Common
.
nodeInfo
[
j
].
Name
.
StartsWith
(
SettingString
.
C4_Name_Prefix
))
if
(
Common
.
nodeInfo
[
j
].
Name
.
StartsWith
(
SettingString
.
D4_Name_Prefix
)
||
Common
.
nodeInfo
[
j
].
Name
.
StartsWith
(
SettingString
.
C4_Name_Prefix
))
{
{
...
@@ -124,7 +135,7 @@ namespace AGVControl.BLL
...
@@ -124,7 +135,7 @@ namespace AGVControl.BLL
}
}
AGVManager
.
updateDeviceAlarmMsg
(
msglist
);
AGVManager
.
updateDeviceAlarmMsg
(
msglist
);
}
}
catch
(
Exception
ex
)
catch
(
Exception
ex
)
{
{
Common
.
log
.
Error
(
"NodeStateTimer "
+
ex
.
Message
+
ex
.
StackTrace
);
Common
.
log
.
Error
(
"NodeStateTimer "
+
ex
.
Message
+
ex
.
StackTrace
);
}
}
...
@@ -137,13 +148,8 @@ namespace AGVControl.BLL
...
@@ -137,13 +148,8 @@ namespace AGVControl.BLL
bool
rtn
;
bool
rtn
;
if
(
AgvStateInProcess
)
return
;
if
(
AgvStateInProcess
)
return
;
AgvStateInProcess
=
true
;
AgvStateInProcess
=
true
;
List
<
AlarmMsg
>
msglist
=
new
List
<
AlarmMsg
>();
for
(
int
i
=
0
;
i
<
Common
.
agvInfo
.
Count
;
i
++)
for
(
int
i
=
0
;
i
<
Common
.
agvInfo
.
Count
;
i
++)
{
{
//上报异常
bool
isAlarm
=
false
;
//if (msglist.Count > 0)
// msglist.Clear();
try
try
{
{
if
(!
CheckOnline
(
i
))
continue
;
if
(!
CheckOnline
(
i
))
continue
;
...
@@ -155,57 +161,69 @@ namespace AGVControl.BLL
...
@@ -155,57 +161,69 @@ namespace AGVControl.BLL
Thread
.
Sleep
(
50
);
Thread
.
Sleep
(
50
);
if
(
rtn
)
change
=
Common
.
agvInfo
[
i
].
SetState
(
stateID
,
stateStr
,
battery
,
mission_text
,
position
);
if
(
rtn
)
change
=
Common
.
agvInfo
[
i
].
SetState
(
stateID
,
stateStr
,
battery
,
mission_text
,
position
);
// if (change)
// if (change)
{
{
AgvChanged
?.
Invoke
(
i
);
AgvChanged
?.
Invoke
(
i
);
}
}
}
catch
(
Exception
ex
)
{
Common
.
log
.
Error
(
"AgvStateTimer_"
+
Common
.
agvInfo
[
i
].
Name
+
ex
.
Message
+
ex
.
StackTrace
);
}
}
Thread
.
Sleep
(
50
);
AgvStateInProcess
=
false
;
if
(
stateText
.
Equals
(
"Error"
)
||
stateText
.
Equals
(
"EmergencyStop"
)
||
stateText
.
Equals
(
"Pause"
))
}
private
bool
AgvStateUpdateProcess
=
false
;
private
void
StateUpdateTimer_Elapsed
(
object
sender
,
System
.
Timers
.
ElapsedEventArgs
e
)
{
if
(
AgvStateUpdateProcess
)
return
;
AgvStateUpdateProcess
=
true
;
List
<
AlarmMsg
>
msglist
=
new
List
<
AlarmMsg
>();
for
(
int
i
=
0
;
i
<
Common
.
agvInfo
.
Count
;
i
++)
{
//上报异常
bool
isAlarm
=
false
;
try
{
if
(!
Common
.
agvInfo
[
i
].
IsCon
)
{
{
isAlarm
=
true
;
msglist
.
Add
(
new
AlarmMsg
(
Common
.
agvInfo
[
i
].
Name
,
"lineAgv."
+
Common
.
agvInfo
[
i
].
Name
+
".Msg"
,
"离线"
));
msglist
.
Add
(
new
AlarmMsg
(
Common
.
agvInfo
[
i
].
Name
,
"lineAgv."
+
Common
.
agvInfo
[
i
].
Name
+
".Error.EmergencyStop"
,
"agv状态:"
+
stateText
+
""
));
}
}
if
(!
isAlarm
&&
!
Common
.
agvInfo
[
i
].
IsCon
)
if
(!
isAlarm
&&
(
Common
.
agvInfo
[
i
].
StateID
.
Equals
(
eAGVState
.
Error
)
||
Common
.
agvInfo
[
i
].
StateID
.
Equals
(
eAGVState
.
EmergencyStop
)
||
Common
.
agvInfo
[
i
].
StateID
.
Equals
(
eAGVState
.
Pause
))
)
{
{
msglist
.
Add
(
new
AlarmMsg
(
Common
.
agvInfo
[
i
].
Name
,
"lineAgv."
+
Common
.
agvInfo
[
i
].
Name
+
".OffLine"
,
"离线"
));
isAlarm
=
true
;
msglist
.
Add
(
new
AlarmMsg
(
Common
.
agvInfo
[
i
].
Name
,
"lineAgv."
+
Common
.
agvInfo
[
i
].
Name
+
".Msg"
,
Common
.
agvInfo
[
i
].
StateID
.
ToString
()));
}
}
if
(!
isAlarm
&&
Common
.
agvInfo
[
i
].
StandTimeOut
)
if
(!
isAlarm
&&
Common
.
agvInfo
[
i
].
StandTimeOut
)
{
{
isAlarm
=
true
;
isAlarm
=
true
;
msglist
.
Add
(
new
AlarmMsg
(
Common
.
agvInfo
[
i
].
Name
,
"lineAgv."
+
Common
.
agvInfo
[
i
].
Name
+
".
StandTimeOut
"
,
"在"
+
Common
.
agvInfo
[
i
].
PlaceAliceName
+
"停留超时"
+
(
DateTime
.
Now
-
Common
.
agvInfo
[
i
].
StandStartTime
).
TotalMinutes
.
ToString
(
"f2"
)
+
"分钟"
));
msglist
.
Add
(
new
AlarmMsg
(
Common
.
agvInfo
[
i
].
Name
,
"lineAgv."
+
Common
.
agvInfo
[
i
].
Name
+
".
Msg
"
,
"在"
+
Common
.
agvInfo
[
i
].
PlaceAliceName
+
"停留超时"
+
(
DateTime
.
Now
-
Common
.
agvInfo
[
i
].
StandStartTime
).
TotalMinutes
.
ToString
(
"f2"
)
+
"分钟"
));
}
}
if
(!
isAlarm
)
if
(!
isAlarm
)
{
{
try
if
(!
Common
.
agvInfo
[
i
].
Msg
.
Equals
(
""
))
msglist
.
Add
(
new
AlarmMsg
(
Common
.
agvInfo
[
i
].
Name
,
"lineAgv."
+
Common
.
agvInfo
[
i
].
Name
+
".Msg"
,
Common
.
agvInfo
[
i
].
Msg
,
1
));
else
{
{
if
(!
Common
.
agvInfo
[
i
].
Msg
.
Equals
(
""
))
if
((
Common
.
agvInfo
[
i
].
Place
.
Contains
(
SettingString
.
AutoCharge
)
||
Common
.
agvInfo
[
i
].
Place
.
Contains
(
SettingString
.
Standby
)))
msglist
.
Add
(
new
AlarmMsg
(
Common
.
agvInfo
[
i
].
Name
,
"lineAgv."
+
Common
.
agvInfo
[
i
].
Name
+
".Msg"
,
Common
.
agvInfo
[
i
].
Msg
,
1
));
else
{
{
if
((
Common
.
agvInfo
[
i
].
Place
.
Contains
(
SettingString
.
AutoCharge
)
||
Common
.
agvInfo
[
i
].
Place
.
Contains
(
SettingString
.
Standby
)))
msglist
.
Add
(
new
AlarmMsg
(
Common
.
agvInfo
[
i
].
Name
,
"lineAgv."
+
Common
.
agvInfo
[
i
].
Name
+
".Place"
,
Common
.
agvInfo
[
i
].
Place
,
1
));
{
msglist
.
Add
(
new
AlarmMsg
(
Common
.
agvInfo
[
i
].
Name
,
"lineAgv."
+
Common
.
agvInfo
[
i
].
Name
+
".Place"
,
Common
.
agvInfo
[
i
].
Place
,
1
));
}
}
}
}
}
catch
(
Exception
ex
)
{
Common
.
log
.
Error
(
Common
.
agvInfo
[
i
].
Name
+
"上报小车运行步骤失败"
+
ex
.
Message
+
ex
.
StackTrace
);
}
}
}
AGVManager
.
updateDeviceAlarmMsg
(
msglist
);
}
}
catch
(
Exception
ex
)
catch
(
Exception
ex
)
{
{
Common
.
log
.
Error
(
"AgvStateTimer_"
+
Common
.
agvInfo
[
i
].
Name
+
ex
.
Message
+
ex
.
StackTrace
);
Common
.
log
.
Error
(
Common
.
agvInfo
[
i
].
Name
+
"上报小车状态失败"
+
ex
.
Message
+
ex
.
StackTrace
);
}
}
AGVManager
.
updateDeviceAlarmMsg
(
msglist
);
}
}
AgvStateUpdateProcess
=
false
;
AgvStateInProcess
=
false
;
}
}
/// <summary>
/// <summary>
/// 从节点获取任务
/// 从节点获取任务
/// </summary>
/// </summary>
...
...
AGVControl-ProductionLine/bin/Debug/AGVControl-ProductionLine.exe
查看文件 @
80f750c
此文件类型无法预览
AGVControl-ProductionLine/bin/Debug/AGVControl-ProductionLine.pdb
查看文件 @
80f750c
此文件类型无法预览
AGVControl-ProductionLine/obj/Debug/AGVControl-ProductionLine.csproj.FileListAbsolute.txt
查看文件 @
80f750c
...
@@ -71,3 +71,4 @@ E:\Neotel\Projects\Gitee\AGVControl-Qisda-ProductionLine\AGVControl-ProductionLi
...
@@ -71,3 +71,4 @@ E:\Neotel\Projects\Gitee\AGVControl-Qisda-ProductionLine\AGVControl-ProductionLi
E:\Neotel\Projects\Gitee\AGVControl-Qisda-ProductionLine\AGVControl-ProductionLine\obj\Debug\AGVControl-ProductionLine.exe
E:\Neotel\Projects\Gitee\AGVControl-Qisda-ProductionLine\AGVControl-ProductionLine\obj\Debug\AGVControl-ProductionLine.exe
E:\Neotel\Projects\Gitee\AGVControl-Qisda-ProductionLine\AGVControl-ProductionLine\obj\Debug\AGVControl-ProductionLine.pdb
E:\Neotel\Projects\Gitee\AGVControl-Qisda-ProductionLine\AGVControl-ProductionLine\obj\Debug\AGVControl-ProductionLine.pdb
C:\myproject\Gitee\AGVControl-Qisda-ProductionLine\AGVControl-ProductionLine\obj\Debug\AGVControl-ProductionLine.csprojAssemblyReference.cache
C:\myproject\Gitee\AGVControl-Qisda-ProductionLine\AGVControl-ProductionLine\obj\Debug\AGVControl-ProductionLine.csprojAssemblyReference.cache
E:\Neotel\Projects\Gitee\AGVControl-Qisda-ProductionLine\AGVControl-ProductionLine\obj\Debug\AGVControl-ProductionLine.csprojAssemblyReference.cache
AGVControl-ProductionLine/obj/Debug/AGVControl-ProductionLine.exe
查看文件 @
80f750c
此文件类型无法预览
AGVControl-ProductionLine/obj/Debug/AGVControl-ProductionLine.pdb
查看文件 @
80f750c
此文件类型无法预览
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论