Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
顾剑亮
/
AGVControl-Qisda-ProductionLine
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 163e080f
由
张东亮
编写于
2020-09-18 09:12:05 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
看板更新
1 个父辈
5f8512a7
隐藏空白字符变更
内嵌
并排
正在显示
17 个修改的文件
包含
152 行增加
和
118 行删除
.vs/AGVControl-ProductionLine/v16/.suo
AGVControl-ProductionLine/BLL/Common.cs
AGVControl-ProductionLine/BLL/Control.cs
AGVControl-ProductionLine/FrmMain.Designer.cs
AGVControl-ProductionLine/FrmMain.cs
AGVControl-ProductionLine/bean/Agv_Info.cs
AGVControl-ProductionLine/bin/Debug/AGVControl-ProductionLine.exe
AGVControl-ProductionLine/bin/Debug/AGVControl-ProductionLine.pdb
AGVControl-ProductionLine/bin/Debug/Config/LinePlace.txt
AGVControl-ProductionLine/bin/Debug/Config/tempData.ini
AGVControl-ProductionLine/bin/Debug/logs/AgvServer.log
AGVControl-ProductionLine/bin/Debug/logs/AgvServer.log2020-09-11
AGVControl-ProductionLine/bin/Debug/logs/LineWebService.log2020-09-11
AGVControl-ProductionLine/obj/Debug/AGVControl-ProductionLine.csproj.FileListAbsolute.txt
AGVControl-ProductionLine/obj/Debug/AGVControl-ProductionLine.csproj.GenerateResource.cache
AGVControl-ProductionLine/obj/Debug/AGVControl-ProductionLine.exe
AGVControl-ProductionLine/obj/Debug/AGVControl-ProductionLine.pdb
.vs/AGVControl-ProductionLine/v16/.suo
查看文件 @
163e080
此文件类型无法预览
AGVControl-ProductionLine/BLL/Common.cs
查看文件 @
163e080
...
...
@@ -1342,6 +1342,7 @@ namespace AGVControl
return
st
;
return
SettingString
.
Wait
;
}
}
public
static
class
API
...
...
AGVControl-ProductionLine/BLL/Control.cs
查看文件 @
163e080
...
...
@@ -76,7 +76,6 @@ namespace BLL
{
if
(!
Common
.
nodeInfo
[
j
].
Online
)
{
isAlarm
=
true
;
msglist
.
Add
(
new
AlarmMsg
(
Common
.
nodeInfo
[
j
].
AliceName
,
"lineAgv."
+
Common
.
nodeInfo
[
j
].
Name
+
".OffLine"
,
"离线"
));
}
}
...
...
@@ -111,44 +110,42 @@ namespace BLL
rtn
=
Common
.
mir
.
Get_IO_Status
(
Common
.
agvInfo
[
i
],
out
bool
[]
input
,
out
bool
[]
output
);
Common
.
log
.
Debug
(
"获取IO状态"
);
//if (Common.agvInfo[i].StateID.Equals(eAGVState.Docking))
//{
// if (!Common.agvInfo[i].StateID.Equals(preAGVState))
// {
// Common.agvInfo[i].DockingStartTime = DateTime.Now;
// }
// else
// {
// if ((DateTime.Now - Common.agvInfo[i].DockingStartTime).TotalMinutes >= 1)
// {
// isAlarm = true;
// msglist.Add(new AlarmMsg(Common.agvInfo[i].Name, "lineAgv." + Common.agvInfo[i].Name + ".Docking", "停靠超时:" + (DateTime.Now - Common.agvInfo[i].DockingStartTime).TotalSeconds + "秒"));
// }
// }
//}
preAGVState
=
Common
.
agvInfo
[
i
].
StateID
;
if
(
Common
.
agvInfo
[
i
].
StandTimeOut
)
{
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"
)
+
"分钟"
));
}
//if (battery <= 10)
//{
// isAlarm = true;
// msglist.Add(new AlarmMsg(Common.agvInfo[i].Name, "lineAgv." + Common.agvInfo[i].Name + ".battery", "电量 " + battery.ToString() + "%"));
//}
if
(
stateText
.
Equals
(
"Error"
)
||
stateText
.
Equals
(
"EmergencyStop"
)
||
stateText
.
Equals
(
"Pause"
))
{
isAlarm
=
true
;
msglist
.
Add
(
new
AlarmMsg
(
Common
.
agvInfo
[
i
].
Name
,
"lineAgv."
+
Common
.
agvInfo
[
i
].
Name
+
".Error.EmergencyStop"
,
"agv状态:"
+
stateText
+
";"
+
mission_text
));
msglist
.
Add
(
new
AlarmMsg
(
Common
.
agvInfo
[
i
].
Name
,
"lineAgv."
+
Common
.
agvInfo
[
i
].
Name
+
".Error.EmergencyStop"
,
"agv状态:"
+
stateText
+
""
));
}
if
(!
isAlarm
)
{
try
{
if
((
Common
.
agvInfo
[
i
].
Place
.
Contains
(
SettingString
.
AutoCharge
)
||
Common
.
agvInfo
[
i
].
Place
.
Contains
(
SettingString
.
Standby
))
&&
mission_text
.
Contains
(
"正在等待新任务"
))
{
msglist
.
Add
(
new
AlarmMsg
(
Common
.
agvInfo
[
i
].
Name
,
"lineAgv."
+
Common
.
agvInfo
[
i
].
Name
+
".Place"
,
Common
.
agvInfo
[
i
].
Place
,
1
));
}
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
));
}
catch
(
Exception
ex
)
{
Common
.
log
.
Error
(
Common
.
agvInfo
[
i
].
Name
+
"上报小车运行步骤失败"
+
ex
.
Message
+
ex
.
StackTrace
);
}
}
}
catch
(
Exception
ex
)
{
Common
.
log
.
Error
(
"AgvStateTimer_"
+
Common
.
agvInfo
[
i
].
Name
+
ex
.
Message
+
ex
.
StackTrace
);
}
}
if
(
isAlarm
)
BLL
.
AGVManager
.
updateDeviceAlarmMsg
(
msglist
);
BLL
.
AGVManager
.
updateDeviceAlarmMsg
(
msglist
);
AgvStateInProcess
=
false
;
...
...
AGVControl-ProductionLine/FrmMain.Designer.cs
查看文件 @
163e080
...
...
@@ -88,7 +88,6 @@
this
.
btnAddMission
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
cmbBoxLineName
=
new
System
.
Windows
.
Forms
.
ComboBox
();
this
.
groupBox2
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
btnClearC4StandyInfo
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
BtnMissionPause
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
BtnClearError
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
BtnMissionAdd
=
new
System
.
Windows
.
Forms
.
Button
();
...
...
@@ -102,6 +101,7 @@
this
.
label3
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
label2
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
label1
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
btnReSendTask
=
new
System
.
Windows
.
Forms
.
Button
();
((
System
.
ComponentModel
.
ISupportInitialize
)(
this
.
DgvAgv
)).
BeginInit
();
this
.
tableLayoutPanel3
.
SuspendLayout
();
this
.
tabControl1
.
SuspendLayout
();
...
...
@@ -662,11 +662,8 @@
this
.
tabPage3
.
Controls
.
Add
(
this
.
groupBox7
);
this
.
tabPage3
.
Controls
.
Add
(
this
.
groupBox6
);
this
.
tabPage3
.
Controls
.
Add
(
this
.
groupBox2
);
this
.
tabPage3
.
Controls
.
Add
(
this
.
BtnMissionPause
);
this
.
tabPage3
.
Controls
.
Add
(
this
.
BtnClearError
);
this
.
tabPage3
.
Controls
.
Add
(
this
.
BtnMissionAdd
);
this
.
tabPage3
.
Controls
.
Add
(
this
.
LstAgvPlace
);
this
.
tabPage3
.
Controls
.
Add
(
this
.
BtnMissionReady
);
this
.
tabPage3
.
Location
=
new
System
.
Drawing
.
Point
(
4
,
25
);
this
.
tabPage3
.
Margin
=
new
System
.
Windows
.
Forms
.
Padding
(
4
);
this
.
tabPage3
.
Name
=
"tabPage3"
;
...
...
@@ -778,30 +775,22 @@
//
// groupBox2
//
this
.
groupBox2
.
Controls
.
Add
(
this
.
btnClearC4StandyInfo
);
this
.
groupBox2
.
Controls
.
Add
(
this
.
btnReSendTask
);
this
.
groupBox2
.
Controls
.
Add
(
this
.
BtnClearError
);
this
.
groupBox2
.
Controls
.
Add
(
this
.
BtnMissionReady
);
this
.
groupBox2
.
Controls
.
Add
(
this
.
BtnMissionPause
);
this
.
groupBox2
.
Location
=
new
System
.
Drawing
.
Point
(
935
,
30
);
this
.
groupBox2
.
Margin
=
new
System
.
Windows
.
Forms
.
Padding
(
3
,
2
,
3
,
2
);
this
.
groupBox2
.
Name
=
"groupBox2"
;
this
.
groupBox2
.
Padding
=
new
System
.
Windows
.
Forms
.
Padding
(
3
,
2
,
3
,
2
);
this
.
groupBox2
.
Size
=
new
System
.
Drawing
.
Size
(
203
,
15
1
);
this
.
groupBox2
.
Size
=
new
System
.
Drawing
.
Size
(
349
,
22
1
);
this
.
groupBox2
.
TabIndex
=
32
;
this
.
groupBox2
.
TabStop
=
false
;
this
.
groupBox2
.
Text
=
"操作"
;
//
// btnClearC4StandyInfo
//
this
.
btnClearC4StandyInfo
.
Location
=
new
System
.
Drawing
.
Point
(
21
,
24
);
this
.
btnClearC4StandyInfo
.
Margin
=
new
System
.
Windows
.
Forms
.
Padding
(
3
,
2
,
3
,
2
);
this
.
btnClearC4StandyInfo
.
Name
=
"btnClearC4StandyInfo"
;
this
.
btnClearC4StandyInfo
.
Size
=
new
System
.
Drawing
.
Size
(
100
,
65
);
this
.
btnClearC4StandyInfo
.
TabIndex
=
44
;
this
.
btnClearC4StandyInfo
.
Text
=
"清除4C待机位占用"
;
this
.
btnClearC4StandyInfo
.
UseVisualStyleBackColor
=
true
;
this
.
btnClearC4StandyInfo
.
Click
+=
new
System
.
EventHandler
(
this
.
btnClearC4StandyInfo_Click
);
//
// BtnMissionPause
//
this
.
BtnMissionPause
.
Location
=
new
System
.
Drawing
.
Point
(
691
,
201
);
this
.
BtnMissionPause
.
Location
=
new
System
.
Drawing
.
Point
(
202
,
19
);
this
.
BtnMissionPause
.
Margin
=
new
System
.
Windows
.
Forms
.
Padding
(
4
);
this
.
BtnMissionPause
.
Name
=
"BtnMissionPause"
;
this
.
BtnMissionPause
.
Size
=
new
System
.
Drawing
.
Size
(
100
,
65
);
...
...
@@ -812,7 +801,7 @@
//
// BtnClearError
//
this
.
BtnClearError
.
Location
=
new
System
.
Drawing
.
Point
(
539
,
201
);
this
.
BtnClearError
.
Location
=
new
System
.
Drawing
.
Point
(
47
,
128
);
this
.
BtnClearError
.
Margin
=
new
System
.
Windows
.
Forms
.
Padding
(
4
);
this
.
BtnClearError
.
Name
=
"BtnClearError"
;
this
.
BtnClearError
.
Size
=
new
System
.
Drawing
.
Size
(
100
,
65
);
...
...
@@ -846,7 +835,7 @@
//
// BtnMissionReady
//
this
.
BtnMissionReady
.
Location
=
new
System
.
Drawing
.
Point
(
396
,
201
);
this
.
BtnMissionReady
.
Location
=
new
System
.
Drawing
.
Point
(
47
,
24
);
this
.
BtnMissionReady
.
Margin
=
new
System
.
Windows
.
Forms
.
Padding
(
4
);
this
.
BtnMissionReady
.
Name
=
"BtnMissionReady"
;
this
.
BtnMissionReady
.
Size
=
new
System
.
Drawing
.
Size
(
100
,
65
);
...
...
@@ -897,7 +886,7 @@
//
this
.
label6
.
AutoSize
=
true
;
this
.
label6
.
Dock
=
System
.
Windows
.
Forms
.
DockStyle
.
Fill
;
this
.
label6
.
Font
=
new
System
.
Drawing
.
Font
(
"宋体"
,
9
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label6
.
Font
=
new
System
.
Drawing
.
Font
(
"宋体"
,
10.8
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label6
.
Location
=
new
System
.
Drawing
.
Point
(
944
,
119
);
this
.
label6
.
Name
=
"label6"
;
this
.
label6
.
Size
=
new
System
.
Drawing
.
Size
(
461
,
114
);
...
...
@@ -908,7 +897,7 @@
//
this
.
label5
.
AutoSize
=
true
;
this
.
label5
.
Dock
=
System
.
Windows
.
Forms
.
DockStyle
.
Fill
;
this
.
label5
.
Font
=
new
System
.
Drawing
.
Font
(
"宋体"
,
9
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label5
.
Font
=
new
System
.
Drawing
.
Font
(
"宋体"
,
10.8
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label5
.
Location
=
new
System
.
Drawing
.
Point
(
475
,
119
);
this
.
label5
.
Name
=
"label5"
;
this
.
label5
.
Size
=
new
System
.
Drawing
.
Size
(
460
,
114
);
...
...
@@ -919,7 +908,7 @@
//
this
.
label4
.
AutoSize
=
true
;
this
.
label4
.
Dock
=
System
.
Windows
.
Forms
.
DockStyle
.
Fill
;
this
.
label4
.
Font
=
new
System
.
Drawing
.
Font
(
"宋体"
,
9
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label4
.
Font
=
new
System
.
Drawing
.
Font
(
"宋体"
,
10.8
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label4
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
119
);
this
.
label4
.
Name
=
"label4"
;
this
.
label4
.
Size
=
new
System
.
Drawing
.
Size
(
460
,
114
);
...
...
@@ -930,7 +919,7 @@
//
this
.
label3
.
AutoSize
=
true
;
this
.
label3
.
Dock
=
System
.
Windows
.
Forms
.
DockStyle
.
Fill
;
this
.
label3
.
Font
=
new
System
.
Drawing
.
Font
(
"宋体"
,
9
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label3
.
Font
=
new
System
.
Drawing
.
Font
(
"宋体"
,
10.8
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label3
.
Location
=
new
System
.
Drawing
.
Point
(
944
,
3
);
this
.
label3
.
Name
=
"label3"
;
this
.
label3
.
Size
=
new
System
.
Drawing
.
Size
(
461
,
113
);
...
...
@@ -941,7 +930,7 @@
//
this
.
label2
.
AutoSize
=
true
;
this
.
label2
.
Dock
=
System
.
Windows
.
Forms
.
DockStyle
.
Fill
;
this
.
label2
.
Font
=
new
System
.
Drawing
.
Font
(
"宋体"
,
9
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label2
.
Font
=
new
System
.
Drawing
.
Font
(
"宋体"
,
10.8
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label2
.
Location
=
new
System
.
Drawing
.
Point
(
475
,
3
);
this
.
label2
.
Name
=
"label2"
;
this
.
label2
.
Size
=
new
System
.
Drawing
.
Size
(
460
,
113
);
...
...
@@ -952,13 +941,24 @@
//
this
.
label1
.
AutoSize
=
true
;
this
.
label1
.
Dock
=
System
.
Windows
.
Forms
.
DockStyle
.
Fill
;
this
.
label1
.
Font
=
new
System
.
Drawing
.
Font
(
"宋体"
,
9
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label1
.
Font
=
new
System
.
Drawing
.
Font
(
"宋体"
,
10.8
F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label1
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
3
);
this
.
label1
.
Name
=
"label1"
;
this
.
label1
.
Size
=
new
System
.
Drawing
.
Size
(
460
,
113
);
this
.
label1
.
TabIndex
=
0
;
this
.
label1
.
Text
=
"label1"
;
//
// btnReSendTask
//
this
.
btnReSendTask
.
Location
=
new
System
.
Drawing
.
Point
(
202
,
128
);
this
.
btnReSendTask
.
Margin
=
new
System
.
Windows
.
Forms
.
Padding
(
3
,
2
,
3
,
2
);
this
.
btnReSendTask
.
Name
=
"btnReSendTask"
;
this
.
btnReSendTask
.
Size
=
new
System
.
Drawing
.
Size
(
100
,
65
);
this
.
btnReSendTask
.
TabIndex
=
45
;
this
.
btnReSendTask
.
Text
=
"任务重发"
;
this
.
btnReSendTask
.
UseVisualStyleBackColor
=
true
;
this
.
btnReSendTask
.
Click
+=
new
System
.
EventHandler
(
this
.
btnReSendTask_Click
);
//
// FrmMain
//
this
.
AutoScaleDimensions
=
new
System
.
Drawing
.
SizeF
(
8F
,
15F
);
...
...
@@ -1056,7 +1056,6 @@
private
System
.
Windows
.
Forms
.
GroupBox
groupBox8
;
private
System
.
Windows
.
Forms
.
Label
lblCharge4
;
private
System
.
Windows
.
Forms
.
Label
lblCharge3
;
private
System
.
Windows
.
Forms
.
Button
btnClearC4StandyInfo
;
private
System
.
Windows
.
Forms
.
Label
lblStandy2
;
private
System
.
Windows
.
Forms
.
Label
lblStandy1
;
private
System
.
Windows
.
Forms
.
TextBox
txtBoxLineName
;
...
...
@@ -1073,6 +1072,7 @@
private
System
.
Windows
.
Forms
.
DataGridViewTextBoxColumn
Column13
;
private
System
.
Windows
.
Forms
.
DataGridViewTextBoxColumn
Column19
;
private
System
.
Windows
.
Forms
.
DataGridViewButtonColumn
Column11
;
private
System
.
Windows
.
Forms
.
Button
btnReSendTask
;
}
}
AGVControl-ProductionLine/FrmMain.cs
查看文件 @
163e080
...
...
@@ -233,7 +233,7 @@ namespace AGVControl
Common
.
LogInfo
(
string
.
Format
(
"手动开启小车自动模式,并清除上一次的自动模式的运行信息{0} {1}"
,
Common
.
agvInfo
[
e
.
RowIndex
].
Name
,
Common
.
agvInfo
[
e
.
RowIndex
].
RunInfo
()));
Common
.
agvInfo
[
e
.
RowIndex
].
CurJob
=
null
;
Common
.
agvInfo
[
e
.
RowIndex
].
RFID
=
""
;
Common
.
agvInfo
[
e
.
RowIndex
].
Place
=
""
;
//
Common.agvInfo[e.RowIndex].Place = "";
Common
.
agvInfo
[
e
.
RowIndex
].
IsUse
=
true
;
// }
//else
...
...
@@ -313,15 +313,15 @@ namespace AGVControl
if
(
idx
<
0
)
return
;
if
(
Common
.
agvInfo
[
idx
].
IsCon
)
{
if
(
Common
.
agvInfo
[
idx
].
IsUse
)
{
if
(
MessageBox
.
Show
(
"确定在自动模式下对小车手动分配任务?"
,
Common
.
agvInfo
[
idx
].
Name
,
MessageBoxButtons
.
YesNo
)
==
DialogResult
.
No
)
return
;
Common
.
agvInfo
[
idx
].
Resend
();
//Common.agvInfo[idx].TaskSend = LstAgvPlace.Text;
Common
.
LogInfo
(
"手动添加任务:["
+
Common
.
agvInfo
[
idx
].
Name
+
"]["
+
Common
.
agvInfo
[
idx
].
CurTaskName
+
"]"
);
}
else
if
(
!
Common
.
agvInfo
[
idx
].
IsUse
)
//
{
//
if (MessageBox.Show("确定在自动模式下对小车手动分配任务?", Common.agvInfo[idx].Name, MessageBoxButtons.YesNo) == DialogResult.No)
//
return;
//
Common.agvInfo[idx].Resend();
//
//Common.agvInfo[idx].TaskSend = LstAgvPlace.Text;
//
Common.LogInfo("手动添加任务:[" + Common.agvInfo[idx].Name + "][" + Common.agvInfo[idx].CurTaskName + "]");
//
}
//
else
{
bool
rtn
=
Common
.
mir
.
Add_Mission_Fleet
(
Common
.
agvInfo
[
idx
],
Common
.
agvMission
[
Common
.
showNameMissionName
[
LstAgvPlace
.
Text
]]);
if
(!
rtn
)
...
...
@@ -339,7 +339,7 @@ namespace AGVControl
//{
// Common.StandbyStation.C4_Station2 = "";
//}
DgvAgv
.
Rows
[
idx
].
SetValues
(
Common
.
agvInfo
[
idx
].
ToRow
());
}
}
...
...
@@ -365,26 +365,16 @@ namespace AGVControl
Invoke
(
new
Action
(()
=>
{
List
<
AlarmMsg
>
msglist
=
new
List
<
AlarmMsg
>();
//bool change = false;
for
(
int
i
=
0
;
i
<
Common
.
agvInfo
.
Count
;
i
++)
{
try
{
agvRunInfo
[
i
].
Text
=
Common
.
agvInfo
[
i
].
RunInfo
();
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
));
}
catch
(
Exception
ex
)
{
Common
.
log
.
Error
(
"上报小车运行步骤失败"
+
ex
.
Message
+
ex
.
StackTrace
);
{
}
}
//if (change)
BLL
.
AGVManager
.
updateDeviceAlarmMsg
(
msglist
);
if
(!
Common
.
doubleLine_WO
.
Equals
(
""
))
lblWO
.
Text
=
Common
.
doubleLine_WO
;
...
...
@@ -632,5 +622,34 @@ namespace AGVControl
Common
.
StandbyStation
.
C4_Station1
=
""
;
Common
.
StandbyStation
.
C4_Station2
=
""
;
}
private
void
btnReSendTask_Click
(
object
sender
,
EventArgs
e
)
{
if
(
DgvAgv
.
SelectedCells
.
Count
==
0
)
return
;
int
idx
=
DgvAgv
.
SelectedCells
[
0
].
RowIndex
;
if
(
idx
<
0
)
return
;
if
(
Common
.
agvInfo
[
idx
].
IsCon
)
{
if
(
Common
.
agvInfo
[
idx
].
IsUse
)
{
if
(
MessageBox
.
Show
(
"确定在自动模式下对小车重发任务?"
,
Common
.
agvInfo
[
idx
].
Name
,
MessageBoxButtons
.
YesNo
)
==
DialogResult
.
No
)
return
;
Common
.
agvInfo
[
idx
].
Resend
();
Common
.
mir
.
State_Ready
(
Common
.
agvInfo
[
idx
]);
//Common.agvInfo[idx].TaskSend = LstAgvPlace.Text;
Common
.
LogInfo
(
"手动重发任务:["
+
Common
.
agvInfo
[
idx
].
Name
+
"]["
+
Common
.
agvInfo
[
idx
].
CurTaskName
+
"]"
);
}
////清除4c临时待机位的占用
//if (Common.agvInfo[idx].Name.Equals(Common.StandbyStation.C4_Station1))
//{
// Common.StandbyStation.C4_Station1 = "";
//}
//else if (Common.agvInfo[idx].Name.Equals(Common.StandbyStation.C4_Station2))
//{
// Common.StandbyStation.C4_Station2 = "";
//}
DgvAgv
.
Rows
[
idx
].
SetValues
(
Common
.
agvInfo
[
idx
].
ToRow
());
}
}
}
}
AGVControl-ProductionLine/bean/Agv_Info.cs
查看文件 @
163e080
...
...
@@ -183,23 +183,39 @@ namespace AGVControl
}
if
(
RFID
.
StartsWith
(
"C"
))
{
return
string
.
Format
(
"
Name:{1}{0}RFID:{2}{0}CurJob:{3}{0}CurJobTaskInfo:[TaskName={4}][TaskID={5}][TaskState={6}]{0}RunInfo:{7}{0}BoxDestInfo:{8}{0}GetRack:{9}{0}MissionText:{10
}"
,
"\r\n"
,
Name
,
RFID
,
CurJob
.
ToString
(),
curJobTaskName
,
curJobTaskID
,
curJobTaskState
,
Msg
,
BoxDestInfo
,
BLL
.
AGVManager
.
GetRackBy
(
RFID
)
,
MissionText
);
return
string
.
Format
(
"
设备:{1}{0}RFID:{2}{0}任务信息:[任务名称={3}][任务状态:{4}]{0}当前步骤:{5}{0}执行信息:{6
}"
,
"\r\n"
,
Name
,
RFID
,
curJobTaskName
,
curJobTaskState
,
Msg
,
MissionText
);
}
else
if
(
RFID
.
StartsWith
(
"D"
))
{
return
string
.
Format
(
"
Name:{1}{0}RFID:{2}{0}CurJob:{3}{0}CurJobTaskInfo:[TaskName={4}][TaskID={5}][TaskState={6}]{0}RunInfo:{7}{0}BoxDestInfo:{8}{0}MissionText:{9
}"
,
"\r\n"
,
Name
,
RFID
,
CurJob
.
ToString
(),
curJobTaskName
,
curJobTaskID
,
curJobTaskState
,
Msg
,
BoxDestInfo
,
MissionText
);
return
string
.
Format
(
"
设备:{1}{0}RFID:{2}{0}任务信息:[任务名称={3}][任务状态={4}]{0}当前步骤:{5}{0}执行信息:{6
}"
,
"\r\n"
,
Name
,
RFID
,
curJobTaskName
,
curJobTaskState
,
Msg
,
MissionText
);
}
else
return
string
.
Format
(
"Name:{1}{0}RFID:{2}{0}CurJob:{3}{0}CurJobTaskInfo:[TaskName={4}][TaskID={5}][TaskState={6}]{0}RunInfo:{7}{0}MissionText:{8}"
,
"\r\n"
,
Name
,
RFID
,
CurJob
.
ToString
(),
curJobTaskName
,
curJobTaskID
,
curJobTaskState
,
Msg
,
MissionText
);
return
string
.
Format
(
"设备:{1}{0}RFID:{2}{0}任务信息:[任务名称={3}][任务状态={4}]{0}当前步骤:{5}{0}执行信息:{6}"
,
"\r\n"
,
Name
,
RFID
,
curJobTaskName
,
curJobTaskState
,
Msg
,
MissionText
);
//if (RFID.StartsWith("C"))
//{
// return string.Format("Name:{1}{0}RFID:{2}{0}CurJob:{3}{0}CurJobTaskInfo:[TaskName={4}][TaskID={5}][TaskState={6}]{0}RunInfo:{7}{0}BoxDestInfo:{8}{0}GetRack:{9}{0}MissionText:{10}",
// "\r\n", Name, RFID, CurJob.ToString(), curJobTaskName, curJobTaskID, curJobTaskState, Msg, BoxDestInfo, BLL.AGVManager.GetRackBy(RFID), MissionText);
//}
//else if (RFID.StartsWith("D"))
//{
// return string.Format("Name:{1}{0}RFID:{2}{0}CurJob:{3}{0}CurJobTaskInfo:[TaskName={4}][TaskID={5}][TaskState={6}]{0}RunInfo:{7}{0}BoxDestInfo:{8}{0}MissionText:{9}",
// "\r\n", Name, RFID, CurJob.ToString(), curJobTaskName, curJobTaskID, curJobTaskState, Msg, BoxDestInfo, MissionText);
//}
//else
// return string.Format("Name:{1}{0}RFID:{2}{0}CurJob:{3}{0}CurJobTaskInfo:[TaskName={4}][TaskID={5}][TaskState={6}]{0}RunInfo:{7}{0}MissionText:{8}",
// "\r\n", Name, RFID, CurJob.ToString(), curJobTaskName, curJobTaskID, curJobTaskState, Msg, MissionText);
}
else
return
string
.
Format
(
"Name:{1}{0}RFID:{2}{0}CurTaskInfo:[TaskName={3}][TaskID={4}][TaskState={5}]{0}MissionText:{6}"
,
"\r\n"
,
Name
,
RFID
,
curJobTaskName
,
curJobTaskID
,
curJobTaskState
,
MissionText
);
return
string
.
Format
(
"设备:{1}{0}RFID:{2}{0}任务信息:[任务名称={3}][任务状态={4}]{0}执行信息:{5}"
,
"\r\n"
,
Name
,
RFID
,
curJobTaskName
,
curJobTaskState
,
MissionText
);
//return string.Format("Name:{1}{0}RFID:{2}{0}CurTaskInfo:[TaskName={3}][TaskID={4}][TaskState={5}]{0}MissionText:{6}",
// "\r\n", Name, RFID, curJobTaskName, curJobTaskID, curJobTaskState, MissionText);
}
/// <summary>
/// 任务重发
...
...
@@ -241,6 +257,10 @@ namespace AGVControl
}
}
/// <summary>
/// 停在同一处超时
/// </summary>
public
bool
StandTimeOut
{
get
;
set
;
}
=
false
;
public
Agv_Info
(
string
id
,
string
name
,
string
ip
,
string
authorization
,
string
ioID
,
bool
isUse
,
string
rfid
)
{
ID
=
id
;
...
...
@@ -258,6 +278,8 @@ namespace AGVControl
DateTime
IoStartTime
=
DateTime
.
MaxValue
;
int
IoLastTime
=
5000
;
int
StandLastTimeMinute
=
5
;
public
DateTime
StandStartTime
=
DateTime
.
MaxValue
;
public
bool
SetState
(
eAGVState
stateID
,
string
stateText
,
int
battery
,
string
missionText
,
clsPosition
position
)
{
bool
isChange
=
false
;
...
...
@@ -300,10 +322,39 @@ namespace AGVControl
CurTaskState
=
stateText
;
Battery
=
battery
;
MissionText
=
missionText
;
Position
=
position
;
CheckStandTimeOut
(
position
)
;
return
isChange
;
}
/// <summary>
/// 检查小车是否在原地停留超时
/// </summary>
/// <returns></returns>
private
void
CheckStandTimeOut
(
clsPosition
position
)
{
if
(
IsUse
&&
CurJob
!=
null
&&
!(
CurJob
is
ChargeJob
)
&&
!
CurTaskName
.
Contains
(
SettingString
.
AutoCharge
)
&&
!
CurTaskName
.
Contains
(
SettingString
.
Standby
))
{
if
(
Math
.
Abs
(
position
.
x
-
Position
.
x
)
<
1
&&
Math
.
Abs
(
position
.
y
-
Position
.
y
)
<
1
)
{
//满足条件,计算持续时间
if
(
StandStartTime
==
DateTime
.
MaxValue
)
{
StandStartTime
=
DateTime
.
Now
;
}
TimeSpan
lastTimeSpan
=
DateTime
.
Now
-
StandStartTime
;
StandTimeOut
=
(
lastTimeSpan
.
TotalMinutes
>=
StandLastTimeMinute
);
}
else
{
//重新计时
StandStartTime
=
DateTime
.
Now
;
StandTimeOut
=
false
;
}
}
Position
=
position
;
}
//public void GetPlace(int value)
//{
// // Common.log.Debug(Name + " PLC20=" + value);
...
...
AGVControl-ProductionLine/bin/Debug/AGVControl-ProductionLine.exe
查看文件 @
163e080
此文件类型无法预览
AGVControl-ProductionLine/bin/Debug/AGVControl-ProductionLine.pdb
查看文件 @
163e080
此文件类型无法预览
AGVControl-ProductionLine/bin/Debug/Config/LinePlace.txt
查看文件 @
163e080
2020-08-29 21:42:35,E1
2020-08-29 21:42:49,E22
2020-08-29 21:42:55,G5
AGVControl-ProductionLine/bin/Debug/Config/tempData.ini
deleted
100644 → 0
查看文件 @
5f8512a
[MiR_R1763]
RFID
=
IsUse
=
False
[MiR_R1764]
RFID
=
[MiR_R1767]
RFID
=
[MiR_R1768]
RFID
=
[MiR_R1579]
RFID
=
[MiR_R1580]
RFID
=
IsUse
=
True
[E1]
EmptyShelfCnt
=
1
IsUse
=
True
[A5]
IsUse
=
False
[E2]
EmptyShelfCnt
=
0
IsUse
=
False
[E22]
EmptyShelfCnt
=
1
[G5]
EmptyShelfCnt
=
1
[G9]
IsUse
=
False
[A6]
IsUse
=
False
AGVControl-ProductionLine/bin/Debug/logs/AgvServer.log
查看文件 @
163e080
此文件的差异太大,无法显示。
AGVControl-ProductionLine/bin/Debug/logs/AgvServer.log2020-09-11
0 → 100644
查看文件 @
163e080
此文件的差异太大,无法显示。
AGVControl-ProductionLine/bin/Debug/logs/LineWebService.log2020-09-11
0 → 100644
查看文件 @
163e080
文件属性发生变化
AGVControl-ProductionLine/obj/Debug/AGVControl-ProductionLine.csproj.FileListAbsolute.txt
查看文件 @
163e080
...
...
@@ -54,4 +54,3 @@ D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl-Qisda-ProductionLine
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl-Qisda-ProductionLine\AGVControl-ProductionLine\bin\Debug\Newtonsoft.Json.dll
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl-Qisda-ProductionLine\AGVControl-ProductionLine\bin\Debug\AsaPL.AgvClient.pdb
D:\OneDrive - 上海挚锦科技有限公司\SMD\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
AGVControl-ProductionLine/obj/Debug/AGVControl-ProductionLine.csproj.GenerateResource.cache
查看文件 @
163e080
此文件类型无法预览
AGVControl-ProductionLine/obj/Debug/AGVControl-ProductionLine.exe
查看文件 @
163e080
此文件类型无法预览
AGVControl-ProductionLine/obj/Debug/AGVControl-ProductionLine.pdb
查看文件 @
163e080
此文件类型无法预览
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论