Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
顾剑亮
/
AGVControl-Qisda-ProductionLine
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit be356711
由
张东亮
编写于
2020-12-15 17:45:41 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
料架清除缓存,产线信息上报
1 个父辈
f7197e65
隐藏空白字符变更
内嵌
并排
正在显示
18 个修改的文件
包含
185 行增加
和
127 行删除
.vs/AGVControl-ProductionLine/v16/.suo
AGVControl-ProductionLine/BLL/AGVManager.cs
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/bean/UnlockedShelf.cs
AGVControl-ProductionLine/bean/job/GoEmptyShelfLineJob.cs
AGVControl-ProductionLine/bean/job/GoFullShelfStationJob.cs
AGVControl-ProductionLine/bean/job/SendFullShelfToLineJob.cs
AGVControl-ProductionLine/bean/node/ClientNode.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.csproj.GenerateResource.cache
AGVControl-ProductionLine/obj/Debug/AGVControl-ProductionLine.exe
AGVControl-ProductionLine/obj/Debug/AGVControl-ProductionLine.pdb
.vs/AGVControl-ProductionLine/v16/.suo
查看文件 @
be35671
此文件类型无法预览
AGVControl-ProductionLine/BLL/AGVManager.cs
查看文件 @
be35671
...
...
@@ -43,7 +43,7 @@ namespace AGVControl
}
else
{
if
(
workOrder
.
data
.
line
!=
null
)
if
(
workOrder
.
data
.
line
!=
null
)
{
string
tempLocation
=
workOrder
.
data
.
line
;
if
(
workOrder
.
data
.
line
.
Equals
(
"Feeder"
))
...
...
@@ -58,9 +58,9 @@ namespace AGVControl
woData
=
workOrder
.
data
;
return
true
;
}
}
}
}
...
...
@@ -91,7 +91,7 @@ namespace AGVControl
public
string
ToTxt
(
string
nodeName
)
{
return
string
.
Format
(
"[hSerial={0},line={1}[{3}],so={2}]"
,
hSerial
,
line
,
so
,
nodeName
);
return
string
.
Format
(
"[hSerial={0},line={1}[{3}],so={2}]"
,
hSerial
,
line
,
so
,
nodeName
);
}
}
public
static
string
A6_Target
=
""
;
...
...
@@ -168,7 +168,7 @@ namespace AGVControl
#
endregion
res
[
0
].
location
=
loc
;
dest
=
res
[
0
];
Common
.
GetLineNameByNodeName
(
loc
,
out
string
line
);
Common
.
GetLineNameByNodeName
(
loc
,
out
string
line
);
A6_Target
=
res
[
0
].
ShowInfo
(
line
);
Common
.
log
.
Debug
(
"查找满料架任务[RFID="
+
rfid
+
"]:目的地为 "
+
loc
+
" [产线名 "
+
line
+
"]"
);
return
true
;
...
...
@@ -204,7 +204,7 @@ namespace AGVControl
public
string
ShowInfo
(
string
loc
)
{
return
string
.
Format
(
"RFID={0},SO={1},location={2}[{3}]"
,
id
,
SO
,
loc
,
location
);
return
string
.
Format
(
"RFID={0},SO={1},location={2}[{3}]"
,
id
,
SO
,
loc
,
location
);
}
}
...
...
@@ -438,9 +438,9 @@ namespace AGVControl
if
(
lineName
.
StartsWith
(
SettingString
.
D4_Name_Prefix
))
{
addr
=
string
.
Format
(
"http://{0}/LineGetRFID?line={1}"
,
ConfigAppSettings
.
GetValue
(
SettingString
.
IP_4D_Light
),
lineName
);
addr
=
string
.
Format
(
"http://{0}/LineGetRFID?line={1}"
,
ConfigAppSettings
.
GetValue
(
SettingString
.
IP_4D_Light
),
lineName
);
}
else
if
(
lineName
.
StartsWith
(
SettingString
.
C4_Name_Prefix
))
else
if
(
lineName
.
StartsWith
(
SettingString
.
C4_Name_Prefix
))
{
addr
=
string
.
Format
(
"http://{0}/LineGetRFID?line={1}"
,
ConfigAppSettings
.
GetValue
(
SettingString
.
IP_4C_Light
),
lineName
);
}
...
...
@@ -454,7 +454,7 @@ namespace AGVControl
return
",,,"
;
else
{
Common
.
log
.
Debug
(
string
.
Format
(
"{0}接驳台状态:{1}"
,
lineName
,
msgs
.
Msg
));
Common
.
log
.
Debug
(
string
.
Format
(
"{0}接驳台状态:{1}"
,
lineName
,
msgs
.
Msg
));
return
msgs
.
Msg
;
}
...
...
@@ -499,7 +499,7 @@ namespace AGVControl
string
rfid
=
""
;
foreach
(
string
item
in
msgs
.
Msg
.
Split
(
','
))
{
if
(!
item
.
Equals
(
""
))
if
(!
item
.
Equals
(
""
))
{
rfid
=
item
;
}
...
...
@@ -522,17 +522,17 @@ namespace AGVControl
/// <param name="lineName"></param>
/// <param name="rfid"></param>
/// <returns></returns>
public
static
bool
ClearRFID
(
string
lineName
,
string
rfid
)
public
static
bool
ClearRFID
(
string
lineName
,
string
rfid
)
{
string
addr
=
""
;
if
(
lineName
.
StartsWith
(
SettingString
.
D4_Name_Prefix
))
{
addr
=
string
.
Format
(
"http://{0}/LineClearRFID?line={1}&rfid={2}"
,
ConfigAppSettings
.
GetValue
(
SettingString
.
IP_4D_Light
),
lineName
,
rfid
);
addr
=
string
.
Format
(
"http://{0}/LineClearRFID?line={1}&rfid={2}"
,
ConfigAppSettings
.
GetValue
(
SettingString
.
IP_4D_Light
),
lineName
,
rfid
);
}
else
if
(
lineName
.
StartsWith
(
SettingString
.
C4_Name_Prefix
))
{
addr
=
string
.
Format
(
"http://{0}/LineClearRFID?line={1}&rfid={2}"
,
ConfigAppSettings
.
GetValue
(
SettingString
.
IP_4C_Light
),
lineName
,
rfid
);
addr
=
string
.
Format
(
"http://{0}/LineClearRFID?line={1}&rfid={2}"
,
ConfigAppSettings
.
GetValue
(
SettingString
.
IP_4C_Light
),
lineName
,
rfid
);
}
try
{
...
...
@@ -544,7 +544,7 @@ namespace AGVControl
return
false
;
else
{
Common
.
log
.
Info
(
string
.
Format
(
"删除{0}接驳台料架{1}:{2}"
,
lineName
,
rfid
,
msgs
.
Msg
));
Common
.
log
.
Info
(
string
.
Format
(
"删除{0}接驳台料架{1}:{2}"
,
lineName
,
rfid
,
msgs
.
Msg
));
return
true
;
}
...
...
@@ -557,6 +557,47 @@ namespace AGVControl
}
return
false
;
}
private
static
string
Addr_agvRemoveRfid
=
"/rest/api/qisda/device/agvRemoveRfid"
;
/// <summary>
/// 根据RFID清理料架的缓存信息
/// </summary>
/// <param name="rfid"></param>
/// <returns></returns>
public
static
bool
AgvRemoveRfid
(
string
rfid
)
{
try
{
Dictionary
<
string
,
string
>
paramMap
=
new
Dictionary
<
string
,
string
>();
paramMap
.
Add
(
"rfid"
,
rfid
.
ToUpper
());
string
server
=
GetAddr
(
Addr_agvRemoveRfid
,
paramMap
);
DateTime
startTime
=
DateTime
.
Now
;
string
resultStr
=
HttpHelper
.
Get
(
server
);
Common
.
log
.
Debug
(
"清理料架的缓存信息【"
+
server
+
"】【"
+
resultStr
+
"】"
);
RfidData
rfidData
=
JsonHelper
.
DeserializeJsonToObject
<
RfidData
>(
resultStr
);
if
(
rfidData
==
null
)
{
return
false
;
}
else
{
if
(
rfidData
.
code
.
Equals
(
0
))
{
return
true
;
}
}
}
catch
(
Exception
ex
)
{
Common
.
log
.
Error
(
ex
);
return
false
;
}
return
false
;
}
}
public
class
ShelfLockInfo
{
...
...
@@ -651,7 +692,7 @@ namespace AGVControl
/// <param name="name">异常位置名称</param>
/// <param name="key">异常信息唯一标识</param>
/// <param name="value">异常信息</param>
public
AlarmMsg
(
string
name
,
string
key
,
string
value
,
int
type
=
0
)
public
AlarmMsg
(
string
name
,
string
key
,
string
value
,
int
type
=
0
)
{
this
.
name
=
name
;
this
.
msgKey
=
key
;
...
...
AGVControl-ProductionLine/BLL/Common.cs
查看文件 @
be35671
...
...
@@ -498,50 +498,31 @@ namespace AGVControl
}
else
if
(
shelfType
.
Equals
(
eShelfType
.
BigShelf
))
{
//
int tarIdx = Common.nodeInfo.FindIndex(s => s.Name == SettingString.A5
//
&& (s.StateEquals(eNodeStatus.NeedC) || s.StateEquals(eNodeStatus.NeedEnter)) && s.IsUse);
//
if (tarIdx == -1)
//
{
//
Common.log.Debug(string.Format("{0} {1}不需要大料架", agv.Name, SettingString.A5));
//
}
//
else
//
{
//
nodeName = SettingString.A5;
//
Common.log.Debug(string.Format("{0} {1}需要大料架", agv.Name, SettingString.A5));
//
return true;
//
}
int
tarIdx
=
Common
.
nodeInfo
.
FindIndex
(
s
=>
s
.
Name
==
SettingString
.
A5
&&
(
s
.
StateEquals
(
eNodeStatus
.
NeedC
)
||
s
.
StateEquals
(
eNodeStatus
.
NeedEnter
))
&&
s
.
IsUse
);
if
(
tarIdx
==
-
1
)
{
Common
.
log
.
Debug
(
string
.
Format
(
"{0} {1}不需要大料架"
,
agv
.
Name
,
SettingString
.
A5
));
}
else
{
nodeName
=
SettingString
.
A5
;
Common
.
log
.
Debug
(
string
.
Format
(
"{0} {1}需要大料架"
,
agv
.
Name
,
SettingString
.
A5
));
return
true
;
}
int
tarIdx
=
Common
.
nodeInfo
.
FindIndex
(
s
=>
s
.
Name
==
SettingString
.
A6
&&
tarIdx
=
Common
.
nodeInfo
.
FindIndex
(
s
=>
s
.
Name
==
SettingString
.
A6
&&
(
s
.
StateEquals
(
eNodeStatus
.
NeedEnter
)
||
s
.
StateEquals
(
eNodeStatus
.
NeedEnterLeave
))
&&
s
.
IsUse
);
if
(
tarIdx
==
-
1
)
{
Common
.
log
.
Debug
(
string
.
Format
(
"{0} {1}不需要大料架"
,
agv
.
Name
,
SettingString
.
A6
));
//rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission[SettingString.MoveStandby]);
//if (rtn)
//{
// agv.NextPlace = "";
// agv.TaskSend = rtn ? SettingString.MoveStandby : "";
// agv.Msg = string.Format("{0} 在{1}已装载大料架,送往{2}", agv.Name, place, SettingString.MoveStandby);
// Common.LogInfo(string.Format("{0} 在{1}已装载大料架,送往{2}", agv.Name, place, SettingString.MoveStandby));
//}
Common
.
log
.
Debug
(
string
.
Format
(
"{0} {1}不需要料架"
,
agv
.
Name
,
SettingString
.
A6
));
}
else
{
nodeName
=
SettingString
.
A6
;
Common
.
log
.
Debug
(
string
.
Format
(
"{0} {1}需要
大
料架"
,
agv
.
Name
,
SettingString
.
A6
));
Common
.
log
.
Debug
(
string
.
Format
(
"{0} {1}需要料架"
,
agv
.
Name
,
SettingString
.
A6
));
return
true
;
//rtn = Common.mir.Add_Mission_Fleet(agv, Common.agvMission[SettingString.Move + SettingString.A6]);
//if (rtn)
//{
// agv.NextPlace = "";
// tarNodeName = SettingString.A6;
// Common.nodeInfo[tarIdx].AgvName = agv.Name;
// agv.TaskSend = rtn ? SettingString.Move + SettingString.A6 : "";
// agv.Msg = string.Format("{0} 在{1}已装载大料架,送往{2}", agv.Name, place, SettingString.A6);
// Common.LogInfo(string.Format("{0} 在{1}已装载大料架,送往{2}", agv.Name, place, SettingString.A6));
// return true;
//}
}
}
...
...
@@ -549,6 +530,7 @@ namespace AGVControl
return
false
;
}
/// <summary>
/// 检查AGV是否有负载
/// </summary>
...
...
@@ -750,7 +732,7 @@ namespace AGVControl
}
}
else
if
(
CheckA6State
(
agv
,
eShelfType
.
Small
Shelf
,
out
string
lineNodeName1
))
else
if
(
CheckA6State
(
agv
,
eShelfType
.
Big
Shelf
,
out
string
lineNodeName1
))
{
//4C车间备料区寻找
if
(
SettingString
.
C4_AGV_IPs
.
Contains
(
agv
.
IP
))
...
...
@@ -875,13 +857,13 @@ namespace AGVControl
if
(
clientNode
.
Name
.
Equals
(
SettingString
.
C4FeederOut
)
||
clientNode
.
Name
.
Equals
(
SettingString
.
D4FeederOut
))
{
warnMsg
=
string
.
Format
(
"[{1}]最外侧是料架[{0}],但没有解绑信息,请检查接驳台"
,
clientNode
.
RFID
,
clientNode
.
Name
);
Common
.
LogInfo
(
warnMsg
);
Common
.
log
.
Debug
(
warnMsg
);
}
else
{
string
res
=
AGVManager
.
GetRFIDs
(
clientNode
.
Name
);
warnMsg
=
string
.
Format
(
"[{1}]最外侧是料架[{0}],但没有解绑信息,请检查接驳台:料架由里到外顺序:{2}"
,
clientNode
.
RFID
,
clientNode
.
Name
,
res
);
Common
.
LogInfo
(
warnMsg
);
Common
.
log
.
Debug
(
warnMsg
);
}
return
false
;
}
...
...
@@ -889,6 +871,32 @@ namespace AGVControl
warnMsg
=
""
;
return
true
;
}
/// <summary>
/// 上报接驳台状态
/// </summary>
/// <param name="clientNode"></param>
/// <returns>true:表示正常</returns>
public
static
bool
UpdateStationState
(
ClientNode
clientNode
)
{
if
(!
Common
.
missionManager
.
GetUnlockRfids
(
clientNode
.
Name
).
Contains
(
clientNode
.
RFID
))
{
if
(
clientNode
.
Name
.
Equals
(
SettingString
.
C4FeederOut
)
||
clientNode
.
Name
.
Equals
(
SettingString
.
D4FeederOut
))
{
clientNode
.
WarnMsg
=
string
.
Format
(
"接驳台最外侧料架[{0}]没有解绑信息,请检查接驳台状况"
,
clientNode
.
RFID
);
return
false
;
}
else
{
string
res
=
AGVManager
.
GetRFIDs
(
clientNode
.
Name
);
clientNode
.
WarnMsg
=
string
.
Format
(
"接驳台最外侧料架[{0}]没有解绑信息,当前料架由里到外顺序:{1}"
,
clientNode
.
RFID
,
res
);
return
false
;
}
}
clientNode
.
WarnMsg
=
""
;
return
true
;
}
/// <summary>
/// 出料前检查接驳台状态
/// </summary>
...
...
AGVControl-ProductionLine/BLL/Control.cs
查看文件 @
be35671
...
...
@@ -83,7 +83,13 @@ namespace AGVControl.BLL
String
tmp
=
""
;
for
(
int
j
=
0
;
j
<
Common
.
nodeInfo
.
Count
;
j
++)
{
if
(!
Common
.
nodeInfo
[
j
].
Online
)
bool
isAlarm
=
false
;
if
(!
Common
.
UpdateStationState
(
Common
.
nodeInfo
[
j
]))
{
isAlarm
=
true
;
msglist
.
Add
(
new
AlarmMsg
(
Common
.
nodeInfo
[
j
].
AliceName
,
"lineAgv."
+
Common
.
nodeInfo
[
j
].
Name
+
".WarnMsg"
,
Common
.
nodeInfo
[
j
].
WarnMsg
));
}
if
(!
isAlarm
&&
!
Common
.
nodeInfo
[
j
].
Online
)
{
msglist
.
Add
(
new
AlarmMsg
(
Common
.
nodeInfo
[
j
].
AliceName
,
"lineAgv."
+
Common
.
nodeInfo
[
j
].
Name
+
".OffLine"
,
"离线"
));
}
...
...
@@ -155,22 +161,18 @@ namespace AGVControl.BLL
}
Thread
.
Sleep
(
50
);
//rtn = Common.mir.Get_IO_Status(Common.agvInfo[i], out bool[] input, out bool[] output);
//Common.log.Debug("获取IO状态");
//preAGVState = Common.agvInfo[i].StateID;
if
(
Common
.
agvInfo
[
i
].
StandTimeOut
)
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
+
".
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
+
".
Error.EmergencyStop"
,
"agv状态:"
+
stateText
+
"
"
));
}
if
(
stateText
.
Equals
(
"Error"
)
||
stateText
.
Equals
(
"EmergencyStop"
)
||
stateText
.
Equals
(
"Pause"
)
)
if
(
!
isAlarm
&&
Common
.
agvInfo
[
i
].
StandTimeOut
)
{
isAlarm
=
true
;
msglist
.
Add
(
new
AlarmMsg
(
Common
.
agvInfo
[
i
].
Name
,
"lineAgv."
+
Common
.
agvInfo
[
i
].
Name
+
".
Error.EmergencyStop"
,
"agv状态:"
+
stateText
+
"
"
));
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
(!
isAlarm
)
{
try
...
...
AGVControl-ProductionLine/FrmMain.Designer.cs
查看文件 @
be35671
...
...
@@ -107,6 +107,8 @@
this
.
label2
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
label1
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
backgroundWorker1
=
new
System
.
ComponentModel
.
BackgroundWorker
();
this
.
agvRemoveRfid
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
label12
=
new
System
.
Windows
.
Forms
.
Label
();
((
System
.
ComponentModel
.
ISupportInitialize
)(
this
.
DgvAgv
)).
BeginInit
();
this
.
tableLayoutPanel3
.
SuspendLayout
();
this
.
tabControl1
.
SuspendLayout
();
...
...
@@ -682,6 +684,7 @@
//
// tabPage3
//
this
.
tabPage3
.
Controls
.
Add
(
this
.
label12
);
this
.
tabPage3
.
Controls
.
Add
(
this
.
groupBox4
);
this
.
tabPage3
.
Controls
.
Add
(
this
.
groupBox6
);
this
.
tabPage3
.
Controls
.
Add
(
this
.
groupBox2
);
...
...
@@ -697,6 +700,8 @@
//
// groupBox4
//
this
.
groupBox4
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
224
)))),
((
int
)(((
byte
)(
224
)))),
((
int
)(((
byte
)(
224
)))));
this
.
groupBox4
.
Controls
.
Add
(
this
.
agvRemoveRfid
);
this
.
groupBox4
.
Controls
.
Add
(
this
.
btnClearStationRFID
);
this
.
groupBox4
.
Controls
.
Add
(
this
.
label11
);
this
.
groupBox4
.
Controls
.
Add
(
this
.
txtBoxLineName
);
...
...
@@ -707,14 +712,14 @@
this
.
groupBox4
.
Controls
.
Add
(
this
.
txtBoxRFID
);
this
.
groupBox4
.
Location
=
new
System
.
Drawing
.
Point
(
800
,
24
);
this
.
groupBox4
.
Name
=
"groupBox4"
;
this
.
groupBox4
.
Size
=
new
System
.
Drawing
.
Size
(
291
,
185
);
this
.
groupBox4
.
Size
=
new
System
.
Drawing
.
Size
(
291
,
262
);
this
.
groupBox4
.
TabIndex
=
38
;
this
.
groupBox4
.
TabStop
=
false
;
this
.
groupBox4
.
Text
=
"操作"
;
//
// btnClearStationRFID
//
this
.
btnClearStationRFID
.
Location
=
new
System
.
Drawing
.
Point
(
151
,
91
);
this
.
btnClearStationRFID
.
Location
=
new
System
.
Drawing
.
Point
(
8
,
142
);
this
.
btnClearStationRFID
.
Margin
=
new
System
.
Windows
.
Forms
.
Padding
(
2
);
this
.
btnClearStationRFID
.
Name
=
"btnClearStationRFID"
;
this
.
btnClearStationRFID
.
Size
=
new
System
.
Drawing
.
Size
(
125
,
35
);
...
...
@@ -726,22 +731,23 @@
// label11
//
this
.
label11
.
AutoSize
=
true
;
this
.
label11
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
155
);
this
.
label11
.
Location
=
new
System
.
Drawing
.
Point
(
4
,
200
);
this
.
label11
.
Name
=
"label11"
;
this
.
label11
.
Size
=
new
System
.
Drawing
.
Size
(
0
,
12
);
this
.
label11
.
Size
=
new
System
.
Drawing
.
Size
(
29
,
12
);
this
.
label11
.
TabIndex
=
45
;
this
.
label11
.
Text
=
"null"
;
//
// txtBoxLineName
//
this
.
txtBoxLineName
.
Location
=
new
System
.
Drawing
.
Point
(
55
,
57
);
this
.
txtBoxLineName
.
Location
=
new
System
.
Drawing
.
Point
(
111
,
54
);
this
.
txtBoxLineName
.
Margin
=
new
System
.
Windows
.
Forms
.
Padding
(
2
);
this
.
txtBoxLineName
.
Name
=
"txtBoxLineName"
;
this
.
txtBoxLineName
.
Size
=
new
System
.
Drawing
.
Size
(
77
,
21
);
this
.
txtBoxLineName
.
Size
=
new
System
.
Drawing
.
Size
(
111
,
21
);
this
.
txtBoxLineName
.
TabIndex
=
44
;
//
// btnUpdateStatus
//
this
.
btnUpdateStatus
.
Location
=
new
System
.
Drawing
.
Point
(
1
51
,
23
);
this
.
btnUpdateStatus
.
Location
=
new
System
.
Drawing
.
Point
(
1
47
,
91
);
this
.
btnUpdateStatus
.
Margin
=
new
System
.
Windows
.
Forms
.
Padding
(
2
);
this
.
btnUpdateStatus
.
Name
=
"btnUpdateStatus"
;
this
.
btnUpdateStatus
.
Size
=
new
System
.
Drawing
.
Size
(
125
,
35
);
...
...
@@ -764,7 +770,7 @@
// label8
//
this
.
label8
.
AutoSize
=
true
;
this
.
label8
.
Location
=
new
System
.
Drawing
.
Point
(
4
,
66
);
this
.
label8
.
Location
=
new
System
.
Drawing
.
Point
(
60
,
63
);
this
.
label8
.
Margin
=
new
System
.
Windows
.
Forms
.
Padding
(
2
,
0
,
2
,
0
);
this
.
label8
.
Name
=
"label8"
;
this
.
label8
.
Size
=
new
System
.
Drawing
.
Size
(
47
,
12
);
...
...
@@ -774,7 +780,7 @@
// label7
//
this
.
label7
.
AutoSize
=
true
;
this
.
label7
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
34
);
this
.
label7
.
Location
=
new
System
.
Drawing
.
Point
(
6
2
,
31
);
this
.
label7
.
Margin
=
new
System
.
Windows
.
Forms
.
Padding
(
2
,
0
,
2
,
0
);
this
.
label7
.
Name
=
"label7"
;
this
.
label7
.
Size
=
new
System
.
Drawing
.
Size
(
35
,
12
);
...
...
@@ -783,14 +789,15 @@
//
// txtBoxRFID
//
this
.
txtBoxRFID
.
Location
=
new
System
.
Drawing
.
Point
(
55
,
26
);
this
.
txtBoxRFID
.
Location
=
new
System
.
Drawing
.
Point
(
111
,
23
);
this
.
txtBoxRFID
.
Margin
=
new
System
.
Windows
.
Forms
.
Padding
(
2
);
this
.
txtBoxRFID
.
Name
=
"txtBoxRFID"
;
this
.
txtBoxRFID
.
Size
=
new
System
.
Drawing
.
Size
(
77
,
21
);
this
.
txtBoxRFID
.
Size
=
new
System
.
Drawing
.
Size
(
111
,
21
);
this
.
txtBoxRFID
.
TabIndex
=
0
;
//
// groupBox6
//
this
.
groupBox6
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
192
)))),
((
int
)(((
byte
)(
255
)))),
((
int
)(((
byte
)(
192
)))));
this
.
groupBox6
.
Controls
.
Add
(
this
.
label10
);
this
.
groupBox6
.
Controls
.
Add
(
this
.
label9
);
this
.
groupBox6
.
Controls
.
Add
(
this
.
txtRfid
);
...
...
@@ -865,6 +872,7 @@
//
// groupBox2
//
this
.
groupBox2
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
128
)))),
((
int
)(((
byte
)(
255
)))),
((
int
)(((
byte
)(
255
)))));
this
.
groupBox2
.
Controls
.
Add
(
this
.
btnReSendTask
);
this
.
groupBox2
.
Controls
.
Add
(
this
.
BtnClearError
);
this
.
groupBox2
.
Controls
.
Add
(
this
.
BtnMissionReady
);
...
...
@@ -1051,6 +1059,28 @@
this
.
label1
.
TabIndex
=
0
;
this
.
label1
.
Text
=
"label1"
;
//
// agvRemoveRfid
//
this
.
agvRemoveRfid
.
Location
=
new
System
.
Drawing
.
Point
(
147
,
142
);
this
.
agvRemoveRfid
.
Margin
=
new
System
.
Windows
.
Forms
.
Padding
(
2
);
this
.
agvRemoveRfid
.
Name
=
"agvRemoveRfid"
;
this
.
agvRemoveRfid
.
Size
=
new
System
.
Drawing
.
Size
(
125
,
35
);
this
.
agvRemoveRfid
.
TabIndex
=
47
;
this
.
agvRemoveRfid
.
Text
=
"清理料架的缓存信息"
;
this
.
agvRemoveRfid
.
UseVisualStyleBackColor
=
true
;
this
.
agvRemoveRfid
.
Click
+=
new
System
.
EventHandler
(
this
.
agvRemoveRfid_Click
);
//
// label12
//
this
.
label12
.
AutoSize
=
true
;
this
.
label12
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
255
)))),
((
int
)(((
byte
)(
224
)))),
((
int
)(((
byte
)(
192
)))));
this
.
label12
.
Location
=
new
System
.
Drawing
.
Point
(
302
,
224
);
this
.
label12
.
Name
=
"label12"
;
this
.
label12
.
Size
=
new
System
.
Drawing
.
Size
(
407
,
60
);
this
.
label12
.
TabIndex
=
46
;
this
.
label12
.
Text
=
"说明:\r\n1、获取接驳台RFID:获取指定产线上的料架RFID信息\r\n2、物料状态上报:上报料车的产线信息\r\n3、清除接驳台RFID:清理指定产线的RFID信息\r"
+
"\n4、清理料架的缓存信息:输入RFID,清除RFID的缓存信息,使料架可以复用\r\n"
;
//
// FrmMain
//
this
.
AutoScaleDimensions
=
new
System
.
Drawing
.
SizeF
(
6F
,
12F
);
...
...
@@ -1085,6 +1115,7 @@
this
.
groupBox8
.
ResumeLayout
(
false
);
this
.
groupBox8
.
PerformLayout
();
this
.
tabPage3
.
ResumeLayout
(
false
);
this
.
tabPage3
.
PerformLayout
();
this
.
groupBox4
.
ResumeLayout
(
false
);
this
.
groupBox4
.
PerformLayout
();
this
.
groupBox6
.
ResumeLayout
(
false
);
...
...
@@ -1176,6 +1207,8 @@
private
System
.
ComponentModel
.
BackgroundWorker
backgroundWorker1
;
private
System
.
Windows
.
Forms
.
Label
label11
;
private
System
.
Windows
.
Forms
.
Button
btnClearStationRFID
;
private
System
.
Windows
.
Forms
.
Button
agvRemoveRfid
;
private
System
.
Windows
.
Forms
.
Label
label12
;
}
}
AGVControl-ProductionLine/FrmMain.cs
查看文件 @
be35671
...
...
@@ -714,5 +714,27 @@ namespace AGVControl
}));
}
private
void
agvRemoveRfid_Click
(
object
sender
,
EventArgs
e
)
{
try
{
Task
.
Factory
.
StartNew
(()
=>
{
if
(
txtBoxRFID
.
Text
.
StartsWith
(
"C"
)
||
txtBoxRFID
.
Text
.
StartsWith
(
"D"
))
{
bool
rtn
=
AGVManager
.
AgvRemoveRfid
(
txtBoxRFID
.
Text
.
ToUpper
());
this
.
Invoke
(
new
Action
(()
=>
{
label11
.
Text
=
rtn
?
"清理料架的缓存信息成功"
:
"清理料架的缓存信息失败"
;
}));
Common
.
LogInfo
(
string
.
Format
(
"手动清理料架的缓存信息成功[{0}]"
,
txtBoxRFID
.
Text
.
ToUpper
()));
}
txtBoxLineName
.
Text
=
""
;
txtBoxRFID
.
Text
=
""
;
});
}
catch
(
Exception
ex
)
{
}
}
}
}
AGVControl-ProductionLine/bean/Agv_Info.cs
查看文件 @
be35671
...
...
@@ -348,39 +348,6 @@ namespace AGVControl
}
Position
=
position
;
}
//public void GetPlace(int value)
//{
// // Common.log.Debug(Name + " PLC20=" + value);
// if (value == 0)
// {
// Place = "";
// PlaceState = ePlaceState.None;
// }
// else if (value > 0 && value < 1000)
// {
// //Place = "";
// //PlaceState = PlaceState.None;
// //TaskSend = "";
// }
// else if (value >= 1000)
// {
// int a = value / 1000;
// int b = (value - a * 1000) / 10;
// int c = value - a * 1000 - b * 10;
// //if (c.Equals(1) || c.Equals(3) || c.Equals(5))//Move,Enter,Leave
// // TaskSend = "";
// Place = (char)(64 + a) + b.ToString();
// if (Common.nodeInfo != null && Common.nodeInfo.Count != 0)
// {
// ClientNode node = Common.nodeInfo.Find(s => s.Name == Place);
// if (node != null)
// PlaceAliceName = node.AliceName;
// else
// PlaceAliceName = Place;
// }
// PlaceState = (ePlaceState)c;
// }
//}
public
string
[]
ToRow
()
{
...
...
AGVControl-ProductionLine/bean/UnlockedShelf.cs
查看文件 @
be35671
...
...
@@ -71,11 +71,12 @@ namespace AGVControl
int
tmp
=
EmptyCnt
;
System
.
Threading
.
Interlocked
.
Decrement
(
ref
tmp
);
EmptyCnt
=
tmp
;
if
(
EmptyCnt
.
Equals
(
0
)
&&
Rfids
.
Count
>
0
)
if
(
EmptyCnt
.
Equals
(
0
)
&&
Rfids
.
Count
>
0
)
{
Rfids
.
Clear
();
}
//Rfids.Remove(rfid);
if
(
rfid
.
Equals
(
SettingString
.
C4FeederOut
)
||
rfid
.
Equals
(
SettingString
.
D4FeederOut
))
Rfids
.
Remove
(
rfid
);
return
true
;
}
}
...
...
AGVControl-ProductionLine/bean/job/GoEmptyShelfLineJob.cs
查看文件 @
be35671
...
...
@@ -390,9 +390,6 @@ namespace AGVControl
else
if
(
TakeEmptyStep
.
IsTimeOut
(
15000
,
out
double
timeOutValue
))
{
TakeEmptyStep
.
ToNextStep
(
TAKE_EMPTY_STEP
.
WAIT_REACH_PLACE
);
//runInfo = "AGV到达 " + EmptyShelfPlace + ",15秒后重新向产线发送出料架请求[ReadyLeave]";
//msg += runInfo;
//TakeEmptyStep.Msg = msg;
}
}
else
if
(
TakeEmptyStep
.
IsStep
(
TAKE_EMPTY_STEP
.
WAIT_TAKE_EMPTY_SHELF
))
...
...
@@ -408,15 +405,6 @@ namespace AGVControl
runInfo
=
"空料架在["
+
EmptyShelfPlace
+
"]进入小车完成"
+
"[RFID="
+
RFID
+
"]"
;
msg
+=
runInfo
;
TakeEmptyStep
.
Msg
=
msg
;
//4DfeederOut默认大料架
//if (agv.Place.Equals(SettingString.D4FeederOut))
//{
// return new EmptyShelfBackJob(EmptyShelfPlace, eShelfType.BigShelf);
//}
//else if(agv.Place.Equals(SettingString.C4FeederOut))
//{
// return new EmptyShelfBackJob(EmptyShelfPlace, eShelfType.BigShelf);
//}
if
(
agv
.
RFID
.
StartsWith
(
"D"
))
{
return
new
EmptyShelfBackJob
(
EmptyShelfPlace
,
eShelfType
.
SmallShelf
);
...
...
AGVControl-ProductionLine/bean/job/GoFullShelfStationJob.cs
查看文件 @
be35671
...
...
@@ -301,11 +301,6 @@ namespace AGVControl
runInfo
=
FullShelfStationPlace
+
"满料架进入小车完成"
;
msg
+=
runInfo
;
GoFullShelfStationStep
.
Msg
=
msg
;
//if (FullShelfDestInfo.location.StartsWith("G"))
//{
// return new SendFullShelfToLineJob(FullShelfDestInfo, true);
//}
//else
return
new
SendFullShelfToLineJob
(
FullShelfDestInfo
);
}
else
if
(
GoFullShelfStationStep
.
IsTimeOut
(
60000
,
out
double
timeOutValue
))
...
...
AGVControl-ProductionLine/bean/job/SendFullShelfToLineJob.cs
查看文件 @
be35671
...
...
@@ -66,7 +66,7 @@ namespace AGVControl
// CurTaskState = st;
if
(
SendFullShelfStep
.
IsStep
(
SEND_FULL_SHELF_STEP
.
NONE
))
{
AGVManager
.
AgvRemoveRfid
(
RFID
);
if
(
FullShelfPlace
.
StartsWith
(
SettingString
.
C4_Name_Prefix
))
{
SendFullShelfStep
.
ToNextStep
(
SEND_FULL_SHELF_STEP
.
WAIT_AGV_REACH_DOOR
);
...
...
AGVControl-ProductionLine/bean/node/ClientNode.cs
查看文件 @
be35671
...
...
@@ -81,7 +81,7 @@ namespace AGVControl
this
.
Pos_guid
=
pos_guid
;
LineName
=
lineName
;
}
public
string
WarnMsg
{
get
;
set
;
}
=
""
;
/// <summary>
/// 客户端节点
/// </summary>
...
...
AGVControl-ProductionLine/bin/Debug/AGVControl-ProductionLine.exe
查看文件 @
be35671
此文件类型无法预览
AGVControl-ProductionLine/bin/Debug/AGVControl-ProductionLine.pdb
查看文件 @
be35671
此文件类型无法预览
AGVControl-ProductionLine/obj/Debug/AGVControl-ProductionLine.csproj.FileListAbsolute.txt
查看文件 @
be35671
...
...
@@ -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.pdb
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.csproj.GenerateResource.cache
查看文件 @
be35671
此文件类型无法预览
AGVControl-ProductionLine/obj/Debug/AGVControl-ProductionLine.exe
查看文件 @
be35671
此文件类型无法预览
AGVControl-ProductionLine/obj/Debug/AGVControl-ProductionLine.pdb
查看文件 @
be35671
此文件类型无法预览
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论