Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
张东亮
/
SO1037-LiftController
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit bf803b1b
由
张东亮
编写于
2022-03-07 14:18:58 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
检查AGV离开信号亮了以后3秒再关闭
1 个父辈
29fc87a5
全部展开
显示空白字符变更
内嵌
并排
正在显示
13 个修改的文件
包含
219 行增加
和
334 行删除
LiftController/FrmIO.Designer.cs
LiftController/FrmMain.Designer.cs
LiftController/FrmMain.cs
source/DeviceLibrary/Config/LineConfig.csv
source/DeviceLibrary/Config/agvinfos.xml
source/DeviceLibrary/Config/chargeinfos.xml
source/DeviceLibrary/Config/nodeinfos.xml
source/DeviceLibrary/Config/taskinfos.xml
source/DeviceLibrary/DeviceLibrary.csproj
source/DeviceLibrary/Models/LiftInfo.cs
source/DeviceLibrary/Service/Services.cs
source/LoadCVSLibrary/Config/bean/Config.cs
source/LoadCVSLibrary/Config/bean/IO_Type.cs
LiftController/FrmIO.Designer.cs
查看文件 @
bf803b1
此文件的差异被折叠,
点击展开。
LiftController/FrmMain.Designer.cs
查看文件 @
bf803b1
...
...
@@ -33,10 +33,10 @@ namespace LogisticsIntelligence
System
.
ComponentModel
.
ComponentResourceManager
resources
=
new
System
.
ComponentModel
.
ComponentResourceManager
(
typeof
(
FrmMain
));
this
.
tableLayoutPanel1
=
new
System
.
Windows
.
Forms
.
TableLayoutPanel
();
this
.
tabControl1
=
new
System
.
Windows
.
Forms
.
TabControl
();
this
.
timer1
=
new
System
.
Windows
.
Forms
.
Timer
(
this
.
components
);
this
.
backgroundWorker1
=
new
System
.
ComponentModel
.
BackgroundWorker
();
this
.
groupBox1
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
label1
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
timer1
=
new
System
.
Windows
.
Forms
.
Timer
(
this
.
components
);
this
.
backgroundWorker1
=
new
System
.
ComponentModel
.
BackgroundWorker
();
this
.
tableLayoutPanel1
.
SuspendLayout
();
this
.
groupBox1
.
SuspendLayout
();
this
.
SuspendLayout
();
...
...
@@ -51,27 +51,22 @@ namespace LogisticsIntelligence
this
.
tableLayoutPanel1
.
Location
=
new
System
.
Drawing
.
Point
(
0
,
0
);
this
.
tableLayoutPanel1
.
Name
=
"tableLayoutPanel1"
;
this
.
tableLayoutPanel1
.
RowCount
=
2
;
this
.
tableLayoutPanel1
.
RowStyles
.
Add
(
new
System
.
Windows
.
Forms
.
RowStyle
(
System
.
Windows
.
Forms
.
SizeType
.
Percent
,
44.22222
F
));
this
.
tableLayoutPanel1
.
RowStyles
.
Add
(
new
System
.
Windows
.
Forms
.
RowStyle
(
System
.
Windows
.
Forms
.
SizeType
.
Percent
,
55.77778
F
));
this
.
tableLayoutPanel1
.
RowStyles
.
Add
(
new
System
.
Windows
.
Forms
.
RowStyle
(
System
.
Windows
.
Forms
.
SizeType
.
Percent
,
39.32806
F
));
this
.
tableLayoutPanel1
.
RowStyles
.
Add
(
new
System
.
Windows
.
Forms
.
RowStyle
(
System
.
Windows
.
Forms
.
SizeType
.
Percent
,
60.67194
F
));
this
.
tableLayoutPanel1
.
RowStyles
.
Add
(
new
System
.
Windows
.
Forms
.
RowStyle
(
System
.
Windows
.
Forms
.
SizeType
.
Absolute
,
20F
));
this
.
tableLayoutPanel1
.
Size
=
new
System
.
Drawing
.
Size
(
1216
,
62
0
);
this
.
tableLayoutPanel1
.
Size
=
new
System
.
Drawing
.
Size
(
1216
,
47
0
);
this
.
tableLayoutPanel1
.
TabIndex
=
1
;
//
// tabControl1
//
this
.
tabControl1
.
Dock
=
System
.
Windows
.
Forms
.
DockStyle
.
Fill
;
this
.
tabControl1
.
Font
=
new
System
.
Drawing
.
Font
(
"宋体"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
tabControl1
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
27
7
);
this
.
tabControl1
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
18
7
);
this
.
tabControl1
.
Name
=
"tabControl1"
;
this
.
tabControl1
.
SelectedIndex
=
0
;
this
.
tabControl1
.
Size
=
new
System
.
Drawing
.
Size
(
1210
,
34
0
);
this
.
tabControl1
.
Size
=
new
System
.
Drawing
.
Size
(
1210
,
28
0
);
this
.
tabControl1
.
TabIndex
=
0
;
//
// timer1
//
this
.
timer1
.
Interval
=
1000
;
this
.
timer1
.
Tick
+=
new
System
.
EventHandler
(
this
.
timer1_Tick
);
//
// groupBox1
//
this
.
groupBox1
.
Controls
.
Add
(
this
.
label1
);
...
...
@@ -79,7 +74,7 @@ namespace LogisticsIntelligence
this
.
groupBox1
.
Font
=
new
System
.
Drawing
.
Font
(
"宋体"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
groupBox1
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
3
);
this
.
groupBox1
.
Name
=
"groupBox1"
;
this
.
groupBox1
.
Size
=
new
System
.
Drawing
.
Size
(
1210
,
26
8
);
this
.
groupBox1
.
Size
=
new
System
.
Drawing
.
Size
(
1210
,
17
8
);
this
.
groupBox1
.
TabIndex
=
1
;
this
.
groupBox1
.
TabStop
=
false
;
this
.
groupBox1
.
Text
=
"电梯状态"
;
...
...
@@ -90,15 +85,20 @@ namespace LogisticsIntelligence
this
.
label1
.
Font
=
new
System
.
Drawing
.
Font
(
"宋体"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label1
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
19
);
this
.
label1
.
Name
=
"label1"
;
this
.
label1
.
Size
=
new
System
.
Drawing
.
Size
(
1204
,
24
6
);
this
.
label1
.
Size
=
new
System
.
Drawing
.
Size
(
1204
,
15
6
);
this
.
label1
.
TabIndex
=
2
;
this
.
label1
.
Text
=
"label1"
;
//
// timer1
//
this
.
timer1
.
Interval
=
1000
;
this
.
timer1
.
Tick
+=
new
System
.
EventHandler
(
this
.
timer1_Tick
);
//
// FrmMain
//
this
.
AutoScaleDimensions
=
new
System
.
Drawing
.
SizeF
(
6F
,
12F
);
this
.
AutoScaleMode
=
System
.
Windows
.
Forms
.
AutoScaleMode
.
Font
;
this
.
ClientSize
=
new
System
.
Drawing
.
Size
(
1216
,
62
0
);
this
.
ClientSize
=
new
System
.
Drawing
.
Size
(
1216
,
47
0
);
this
.
Controls
.
Add
(
this
.
tableLayoutPanel1
);
this
.
Icon
=
((
System
.
Drawing
.
Icon
)(
resources
.
GetObject
(
"$this.Icon"
)));
this
.
MaximizeBox
=
false
;
...
...
LiftController/FrmMain.cs
查看文件 @
bf803b1
...
...
@@ -67,8 +67,9 @@ namespace LogisticsIntelligence
form
.
TopLevel
=
false
;
linePan
.
Controls
.
Add
(
form
);
form
.
Dock
=
DockStyle
.
Fill
;
linePan
.
Anchor
=
((
AnchorStyles
)((
AnchorStyles
.
Top
|
AnchorStyles
.
Right
|
AnchorStyles
.
Bottom
|
AnchorStyles
.
Left
)));
form
.
Anchor
=
((
AnchorStyles
)((
AnchorStyles
.
Top
|
AnchorStyles
.
Right
|
AnchorStyles
.
Bottom
|
AnchorStyles
.
Left
)));
form
.
AutoScroll
=
true
;
// linePan.Anchor = ((AnchorStyles)((AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom | AnchorStyles.Left)));
// form.Anchor = ((AnchorStyles)((AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom | AnchorStyles.Left)));
form
.
Show
();
// tabPageList.Add(lineTabPage);
tabControl1
.
Controls
.
Add
(
lineTabPage
);
...
...
source/DeviceLibrary/Config/LineConfig.csv
查看文件 @
bf803b1
...
...
@@ -18,5 +18,22 @@ DO,D2-AGV呼叫3F,LIFT_D2_ThirdCall,3,PRO_AOI_IP_1,0,D2-AGV呼叫3F,Y24,Y24,0
DO,D2-AGV呼叫4F,LIFT_D2_FourthCall,4,PRO_AOI_IP_1,0,D2-AGV呼叫4F,Y25,Y25,0
DO,D2-送料信号1F,LIFT_D2_RunToFirst,5,PRO_AOI_IP_1,0,D2-送料信号1F,Y26,Y26,0
DO,D2-送料信号3F,LIFT_D2_RunToThird,6,PRO_AOI_IP_1,0,D2-送料信号3F,Y27,Y27,0
DO,D2-送料信号4F,LIFT_D2_RunToFourth,7,PRO_AOI_IP_1,0,D2-送料信号4F,Y27,Y27,0
DO,D2-送料信号4F,LIFT_D2_RunToFourth,7,PRO_AOI_IP_1,0,D2-送料信号4F,Y28,Y28,0
,,,,,,,,,
DI,C1-任务应答,LIFT_C1_Response,0,PRO_AOI_IP_2,0,C1-任务应答,X31,X31,0
DI,C1-到达1F,LIFT_C1_AtFirst,1,PRO_AOI_IP_2,0,C1-到达1F,X32,X32,0
DI,C1-到达3F,LIFT_C1_AtThird,2,PRO_AOI_IP_2,0,C1-到达3F,X33,X33,0
DI,C1-到达4F,LIFT_C1_AtFourth,3,PRO_AOI_IP_2,0,C1-到达4F,X34,X34,0
DI,C1-门已开,LIFT_C1_DoorOpen,4,PRO_AOI_IP_2,0,C1-门已开,X35,X35,0
DI,C1-故障中,LIFT_C1_InFault,5,PRO_AOI_IP_2,0,C1-故障中,X36,X36,0
DI,C1-运行中,LIFT_C1_InRun,6,PRO_AOI_IP_2,0,C1-运行中,X37,X37,0
,,,,,,,,,
DO,C1-AGV请求,LIFT_C1_AGVRequest,0,PRO_AOI_IP_2,0,C1-AGV请求,Y31,Y31,0
DO,C1-AGV离开,LIFT_C1_AGVLeave,1,PRO_AOI_IP_2,0,C1-AGV离开,Y32,Y32,0
DO,C1-AGV呼叫1F,LIFT_C1_FirstCall,2,PRO_AOI_IP_2,0,C1-AGV呼叫1F,Y33,Y33,0
DO,C1-AGV呼叫3F,LIFT_C1_ThirdCall,3,PRO_AOI_IP_2,0,C1-AGV呼叫3F,Y34,Y34,0
DO,C1-AGV呼叫4F,LIFT_C1_FourthCall,4,PRO_AOI_IP_2,0,C1-AGV呼叫4F,Y35,Y35,0
DO,C1-送料信号1F,LIFT_C1_RunToFirst,5,PRO_AOI_IP_2,0,C1-送料信号1F,Y36,Y36,0
DO,C1-送料信号3F,LIFT_C1_RunToThird,6,PRO_AOI_IP_2,0,C1-送料信号3F,Y37,Y37,0
DO,C1-送料信号4F,LIFT_C1_RunToFourth,7,PRO_AOI_IP_2,0,C1-送料信号4F,Y38,Y38,0
,,,,,,,,,
\ No newline at end of file
source/DeviceLibrary/Config/agvinfos.xml
deleted
100644 → 0
查看文件 @
29fc87a
<?xml version="1.0" encoding="utf-8"?>
<agvs>
<agv
id=
"49"
ip=
"10.85.199.81"
>
<name>
10号车
</name>
<!--负责区域:D,C,Air_C-->
<ResponsAreas>
<Area>
D
</Area>
</ResponsAreas>
<!--是否调用-->
<IsUse>
False
</IsUse>
<UseFleet>
true
</UseFleet>
<Authorization>
Basic ZGlzdHJpYnV0b3I6NjJmMmYwZjFlZmYxMGQzMTUyYzk1ZjZmMDU5NjU3NmU0ODJiYjhlNDQ4MDY0MzNmNGNmOTI5NzkyODM0YjAxNA==
</Authorization>
<IO_GUIDs>
<IO_GUID
index=
"0"
>
6ad07e3a-e0e9-11eb-a184-0001299981d4
</IO_GUID>
<IO_GUID
index=
"1"
>
3b5c0497-e2f2-11eb-95df-000129922ca6
</IO_GUID>
<IO_GUID
index=
"2"
>
4e49e4c8-e2f2-11eb-95df-000129922ca6
</IO_GUID>
</IO_GUIDs>
</agv>
</agvs>
\ No newline at end of file
source/DeviceLibrary/Config/chargeinfos.xml
deleted
100644 → 0
查看文件 @
29fc87a
<?xml version="1.0" encoding="utf-8" ?>
<root>
<!--最小充电电量,小于该电量将不会执行任务-->
<min>
20
</min>
<!--空闲车辆需要充电的电量-->
<mid>
50
</mid>
<!--充电完成电量-->
<max>
90
</max>
<piles>
<pile
id =
"0"
>
<!--名称-->
<name>
AutoCharge1
</name>
<!--别名-->
<alicename>
充电位1
</alicename>
<!--固定充电桩-->
<fixed>
true
</fixed>
<!--固定充电桩为true,取第一个;false则判断所有agv.填写AGV编号-->
<agvs>
<agv>
49
</agv>
</agvs>
</pile>
</piles>
</root>
source/DeviceLibrary/Config/nodeinfos.xml
deleted
100644 → 0
查看文件 @
29fc87a
此文件的差异被折叠,
点击展开。
source/DeviceLibrary/Config/taskinfos.xml
deleted
100644 → 0
查看文件 @
29fc87a
<?xml version="1.0" encoding="utf-8" ?>
<tasks>
<task
id =
"0"
>
<name>
Init
</name>
<alicename>
初始化
</alicename>
<guid>
2bcd29b8-e2f2-11eb-8a99-94c691a7387d
</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>
None
</type>
</task>
<task
id =
"1"
>
<name>
Standby
</name>
<alicename>
待机位
</alicename>
<guid>
501522b3-e2f2-11eb-8a99-94c691a7387d
</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>
None
</type>
</task>
<task
id =
"2"
>
<name>
AutoCharge
</name>
<alicename>
充电位
</alicename>
<guid>
40c17cb4-e2f2-11eb-8a99-94c691a7387d
</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>
None
</type>
</task>
<task
id =
"3"
>
<name>
Enter
</name>
<alicename>
进料
</alicename>
<guid>
31a3a69e-e310-11eb-8a99-94c691a7387d
</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>
InOut
</type>
</task>
<task
id =
"4"
>
<name>
Leave
</name>
<alicename>
出料
</alicename>
<guid>
ba68ea32-e310-11eb-8a99-94c691a7387d
</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>
InOut
</type>
</task>
<task
id =
"5"
>
<name>
CheckShelf
</name>
<alicename>
负载检查
</alicename>
<guid>
7f6edf46-e316-11eb-8a99-94c691a7387d
</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>
None
</type>
</task>
<task
id =
"6"
>
<name>
D1
</name>
<alicename>
移动到D1线
</alicename>
<guid>
03925a62-e2fa-11eb-8a99-94c691a7387d
</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>
Move
</type>
</task>
<task
id =
"7"
>
<name>
D2
</name>
<alicename>
移动到D2线
</alicename>
<guid>
17419a7e-e2fa-11eb-8a99-94c691a7387d
</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>
Move
</type>
</task>
<task
id =
"8"
>
<name>
D3
</name>
<alicename>
移动到D3线
</alicename>
<guid>
39052eb5-e2fa-11eb-8a99-94c691a7387d
</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>
Move
</type>
</task>
<task
id =
"9"
>
<name>
D4
</name>
<alicename>
移动到D4线
</alicename>
<guid>
4cbec837-e2fa-11eb-8a99-94c691a7387d
</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>
Move
</type>
</task>
<task
id =
"10"
>
<name>
D5
</name>
<alicename>
移动到D5线
</alicename>
<guid>
63241a92-e2fa-11eb-8a99-94c691a7387d
</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>
Move
</type>
</task>
<task
id =
"11"
>
<name>
D6
</name>
<alicename>
移动到D6线
</alicename>
<guid>
d264a9c2-e2fb-11eb-8a99-94c691a7387d
</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>
Move
</type>
</task>
<task
id =
"12"
>
<name>
D7
</name>
<alicename>
移动到D7线
</alicename>
<guid>
e2d00611-e2fb-11eb-8a99-94c691a7387d
</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>
Move
</type>
</task>
<task
id =
"13"
>
<name>
D8
</name>
<alicename>
移动到D8线
</alicename>
<guid>
f636e5a8-e2fb-11eb-8a99-94c691a7387d
</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>
Move
</type>
</task>
<task
id =
"14"
>
<name>
D9
</name>
<alicename>
移动到D9线
</alicename>
<guid>
164a436d-e2fc-11eb-8a99-94c691a7387d
</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>
Move
</type>
</task>
<task
id =
"15"
>
<name>
D10
</name>
<alicename>
移动到D10线
</alicename>
<guid>
663d8278-e2fc-11eb-8a99-94c691a7387d
</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>
Move
</type>
</task>
<task
id =
"16"
>
<name>
D11
</name>
<alicename>
移动到D11线
</alicename>
<guid>
7e0996dd-e2fc-11eb-8a99-94c691a7387d
</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>
Move
</type>
</task>
<task
id =
"17"
>
<name>
D12
</name>
<alicename>
移动到D12线
</alicename>
<guid>
93bc0500-e2fc-11eb-8a99-94c691a7387d
</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>
Move
</type>
</task>
<task
id =
"18"
>
<name>
D13
</name>
<alicename>
移动到D13线
</alicename>
<guid>
b2e5d20e-e2fc-11eb-8a99-94c691a7387d
</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>
Move
</type>
</task>
<task
id =
"19"
>
<name>
D14
</name>
<alicename>
移动到D14线
</alicename>
<guid>
dd1da0b8-e2fc-11eb-8a99-94c691a7387d
</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>
Move
</type>
</task>
<task
id =
"20"
>
<name>
D15
</name>
<alicename>
移动到D15线
</alicename>
<guid>
f1109e49-e2fc-11eb-8a99-94c691a7387d
</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>
Move
</type>
</task>
<task
id =
"21"
>
<name>
D16
</name>
<alicename>
移动到D16线
</alicename>
<guid>
6e984dd1-e30a-11eb-8a99-94c691a7387d
</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>
Move
</type>
</task>
<task
id =
"22"
>
<name>
T01
</name>
<alicename>
移动到T1线
</alicename>
<guid>
532c7cda-e2f4-11eb-8a99-94c691a7387d
</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>
Move
</type>
</task>
<task
id =
"23"
>
<name>
T02
</name>
<alicename>
移动到T2线
</alicename>
<guid>
27dc2449-e2f9-11eb-8a99-94c691a7387d
</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>
Move
</type>
</task>
<task
id =
"24"
>
<name>
T03
</name>
<alicename>
移动到T3线
</alicename>
<guid>
576a579b-e2f9-11eb-8a99-94c691a7387d
</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>
Move
</type>
</task>
<task
id =
"25"
>
<name>
T04
</name>
<alicename>
移动到T4线
</alicename>
<guid>
7c474d94-e2f9-11eb-8a99-94c691a7387d
</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>
Move
</type>
</task>
<task
id =
"26"
>
<name>
T05
</name>
<alicename>
移动到T5线
</alicename>
<guid>
9779e5bb-e2f9-11eb-8a99-94c691a7387d
</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>
Move
</type>
</task>
<task
id =
"27"
>
<name>
T06
</name>
<alicename>
移动到T6线
</alicename>
<guid>
a6a092a2-e2f9-11eb-8a99-94c691a7387d
</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>
Move
</type>
</task>
<task
id =
"28"
>
<name>
T07
</name>
<alicename>
移动到T7线
</alicename>
<guid>
ba68467a-e2f9-11eb-8a99-94c691a7387d
</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>
Move
</type>
</task>
<task
id =
"29"
>
<name>
T08
</name>
<alicename>
移动到T8线
</alicename>
<guid>
d4e59d24-e2f9-11eb-8a99-94c691a7387d
</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>
Move
</type>
</task>
<task
id =
"30"
>
<name>
T09
</name>
<alicename>
移动到T9线
</alicename>
<guid>
ed9b0352-e2f9-11eb-8a99-94c691a7387d
</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>
Move
</type>
</task>
<task
id =
"31"
>
<name>
Adjust
</name>
<alicename>
调宽
</alicename>
<guid>
45f417f6-e316-11eb-8a99-94c691a7387d
</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>
None
</type>
</task>
<task
id =
"32"
>
<name>
治具智能仓储
</name>
<alicename>
治具智能仓储
</alicename>
<guid>
111486eb-e3b4-11eb-8a99-94c691a7387d
</guid>
<!--任务类型:None,Move,Dock,InOut-->
<type>
None
</type>
</task>
</tasks>
\ No newline at end of file
source/DeviceLibrary/DeviceLibrary.csproj
查看文件 @
bf803b1
...
...
@@ -91,20 +91,6 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Content Include="Config\agvinfos.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Config\chargeinfos.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Config\nodeinfos.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Config\taskinfos.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<None Include="Config\LineConfig.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
...
...
source/DeviceLibrary/Models/LiftInfo.cs
查看文件 @
bf803b1
...
...
@@ -72,7 +72,7 @@ namespace DeviceLibrary.Models
/// <returns></returns>
public
bool
IsIdle
(
out
string
msg
)
{
msg
=
""
;
msg
=
"
ok
"
;
if
(
Monitor
.
TryEnter
(
locObj
,
500
))
{
...
...
@@ -192,8 +192,6 @@ namespace DeviceLibrary.Models
}
else
{
OpenAGVRequest
(
true
);
Thread
.
Sleep
(
2000
);
if
(
IOManager
.
IOValue
(
$
"{liftId}{SettingString._Response}"
).
Equals
(
IO_VALUE
.
HIGH
))
{
if
(
IOManager
.
IOValue
(
$
"{liftId}{SettingString._DoorOpen}"
).
Equals
(
IO_VALUE
.
HIGH
))
...
...
@@ -202,15 +200,16 @@ namespace DeviceLibrary.Models
LogUtil
.
info
(
$
"{lift} 上一次异常退出,发送AGV离开清除异常状态!"
);
return
false
;
}
}
SetState
(
LiftState
.
Busy
);
Status
.
Set
(
lift
);
OpenAGVRequest
(
true
);
Thread
.
Sleep
(
2000
);
msg
=
"ok"
;
return
true
;
}
msg
=
"电梯未任务应答"
;
LogUtil
.
error
(
$
"{lift} 失败:{msg}"
);
}
}
msg
=
"电梯被占用"
;
return
false
;
}
...
...
@@ -226,7 +225,7 @@ namespace DeviceLibrary.Models
if
(
IsDesClient
(
doorInfo
))
{
//关闭送料信号
CloseSendFloor
();
CloseSendFloor
(
doorInfo
);
//AGV离开信号,使得门关
CloseDoor
();
Status
.
Clear
();
...
...
@@ -239,12 +238,12 @@ namespace DeviceLibrary.Models
if
(
IsSrcClient
(
doorInfo
))
{
//关闭呼叫信号
CloseCallFloor
();
CloseCallFloor
(
doorInfo
);
//AGV离开信号,使得门关
CloseDoor
();
if
(!
Status
.
destinationFloor
.
Equals
(-
1
))
{
RunToFloor
(
Status
.
destinationFloor
);
RunToFloor
(
Status
.
destinationFloor
,
doorInfo
);
LogUtil
.
info
(
$
"AGV离开,{doorInfo.sourceFloor}[{doorInfo.sourceFloor}]将产品送入电梯[{liftId}]"
);
}
}
...
...
@@ -256,9 +255,10 @@ namespace DeviceLibrary.Models
/// 运行到指定楼层(送料信号)
/// </summary>
/// <param name="floor"></param>
private
void
RunToFloor
(
int
floor
)
private
void
RunToFloor
(
int
floor
,
DoorInfo
door
)
{
Task
.
Factory
.
StartNew
(()
=>
{
Task
.
Factory
.
StartNew
(()
=>
{
switch
(
floor
)
{
//case -1:
...
...
@@ -291,7 +291,7 @@ namespace DeviceLibrary.Models
Thread
.
Sleep
(
1000
);
}
LogUtil
.
info
(
$
"送料信号:运行到{floor}层"
);
CloseSendFloor
();
CloseSendFloor
(
door
);
});
}
...
...
@@ -390,12 +390,12 @@ namespace DeviceLibrary.Models
clientInfo
.
SetInfo
(
clientStatus
.
sourceClient
,
clientStatus
.
hasIdleAgv
);
}
}
private
void
CloseSendFloor
()
private
void
CloseSendFloor
(
DoorInfo
doorInfo
)
{
IOManager
.
CIOMove
(
$
"{liftId}{SettingString._RunToFirst}"
,
IO_VALUE
.
LOW
);
IOManager
.
CIOMove
(
$
"{liftId}{SettingString._RunToThird}"
,
IO_VALUE
.
LOW
);
IOManager
.
CIOMove
(
$
"{liftId}{SettingString._RunToFourth}"
,
IO_VALUE
.
LOW
);
LogUtil
.
info
(
"
关闭所有送料信号"
);
LogUtil
.
info
(
$
"{doorInfo}:
关闭所有送料信号"
);
}
/// <summary>
/// 等待运行信号亮或者关信号
...
...
@@ -409,6 +409,10 @@ namespace DeviceLibrary.Models
{
return
IOManager
.
IOValue
(
$
"{liftId}{SettingString._DoorOpen}"
).
Equals
(
IO_VALUE
.
HIGH
);
}
private
bool
CheckAgvLeave
()
{
return
IOManager
.
IOValue
(
$
"{liftId}{SettingString._AGVLeave}"
).
Equals
(
IO_VALUE
.
HIGH
);
}
private
bool
CheckIsInRun
()
{
return
IOManager
.
IOValue
(
$
"{liftId}{SettingString._InRun}"
).
Equals
(
IO_VALUE
.
HIGH
);
...
...
@@ -422,39 +426,44 @@ namespace DeviceLibrary.Models
if
(
open
)
{
IOManager
.
CIOMove
(
$
"{liftId}{SettingString._AGVLeave}"
,
IO_VALUE
.
HIGH
);
LogUtil
.
info
(
"
打开AGV离开信号"
);
LogUtil
.
info
(
$
"{liftId}
打开AGV离开信号"
);
}
else
{
IOManager
.
CIOMove
(
$
"{liftId}{SettingString._AGVLeave}"
,
IO_VALUE
.
LOW
);
LogUtil
.
info
(
"
关闭AGV离开信号"
);
LogUtil
.
info
(
$
"{liftId}
关闭AGV离开信号"
);
}
}
private
void
OpenAGVLeave
(
int
second
)
{
Task
.
Factory
.
StartNew
(()
=>
{
Task
.
Factory
.
StartNew
(()
=>
{
OpenAGVLeave
(
true
);
Task
.
Delay
(
second
*
1000
);
Task
.
Delay
(
second
*
1000
);
OpenAGVLeave
(
false
);
});
}
private
void
CloseDoor
()
{
Task
.
Factory
.
StartNew
(()
=>
Task
task
=
Task
.
Factory
.
StartNew
(()
=>
{
OpenAGVLeave
(
true
);
Thread
.
Sleep
(
3000
);
DateTime
dateTime
=
DateTime
.
Now
;
//门关信号
while
(
CheckDoorOpen
()
&&
(
DateTime
.
Now
-
dateTime
).
TotalMinutes
<
1
)
while
(
(
CheckDoorOpen
()
||
!
CheckAgvLeave
())
&&
(
DateTime
.
Now
-
dateTime
).
TotalMinutes
<
1
)
{
if
((
DateTime
.
Now
-
dateTime
).
TotalSeconds
>
5
)
if
((
DateTime
.
Now
-
dateTime
).
TotalSeconds
>
3
)
{
IOManager
.
CIOMove
(
$
"{liftId}{SettingString._AGVLeave}"
,
IO_VALUE
.
HIGH
);
dateTime
=
DateTime
.
Now
;
}
Thread
.
Sleep
(
300
);
Thread
.
Sleep
(
300
0
);
}
Thread
.
Sleep
(
3000
);
OpenAGVLeave
(
false
);
});
task
.
Wait
(
20000
);
}
private
void
OpenAGVRequest
(
bool
open
)
{
...
...
@@ -469,12 +478,18 @@ namespace DeviceLibrary.Models
LogUtil
.
info
(
"关闭AGV请求信号"
);
}
}
private
void
CloseCallFloor
(
DoorInfo
doorInfo
)
{
IOManager
.
CIOMove
(
$
"{liftId}{SettingString._FirstCall}"
,
IO_VALUE
.
LOW
);
IOManager
.
CIOMove
(
$
"{liftId}{SettingString._ThirdCall}"
,
IO_VALUE
.
LOW
);
IOManager
.
CIOMove
(
$
"{liftId}{SettingString._FourthCall}"
,
IO_VALUE
.
LOW
);
LogUtil
.
info
(
$
"{doorInfo}:关闭所有呼叫信号"
);
}
private
void
CloseCallFloor
()
{
IOManager
.
CIOMove
(
$
"{liftId}{SettingString._FirstCall}"
,
IO_VALUE
.
LOW
);
IOManager
.
CIOMove
(
$
"{liftId}{SettingString._ThirdCall}"
,
IO_VALUE
.
LOW
);
IOManager
.
CIOMove
(
$
"{liftId}{SettingString._FourthCall}"
,
IO_VALUE
.
LOW
);
LogUtil
.
info
(
"关闭所有呼叫信号"
);
}
}
/// <summary>
...
...
source/DeviceLibrary/Service/Services.cs
查看文件 @
bf803b1
...
...
@@ -29,8 +29,8 @@ namespace DeviceLibrary.Service
}
else
{
Log
.
Info
(
$
"AGVLeave接口被调用:{doorInfo}"
);
Context
.
LiftContext
.
AGVLeave
(
doorInfo
,
out
string
msg
);
Log
.
Info
(
$
"AGVLeave接口被调用:{doorInfo},rtn_msg={msg}"
);
result
.
msg
=
msg
;
}
return
result
;
...
...
@@ -50,8 +50,8 @@ namespace DeviceLibrary.Service
}
else
{
Log
.
Info
(
$
"AGVCall接口被调用:{doorInfo}"
);
Context
.
LiftContext
.
AGVCall
(
doorInfo
,
out
string
msg
);
Log
.
Info
(
$
"AGVCall接口被调用:{doorInfo},rtn_msg={msg}"
);
result
.
msg
=
msg
;
}
return
result
;
...
...
@@ -71,8 +71,8 @@ namespace DeviceLibrary.Service
}
else
{
Log
.
Info
(
$
"请求接口被调用:{sendInInfo}"
);
bool
idle
=
Context
.
LiftContext
.
RequestSendIn
(
sendInInfo
,
out
string
msg
);
Log
.
Info
(
$
"请求接口被调用:{sendInInfo},[{msg}]"
);
result
.
msg
=
msg
;
}
return
result
;
...
...
source/LoadCVSLibrary/Config/bean/Config.cs
查看文件 @
bf803b1
...
...
@@ -106,7 +106,83 @@ namespace LoadCSVLibrary
[
ConfigProAttribute
(
"LIFT_D2_RunToFourth"
,
false
)]
public
string
LIFT_D2_RunToFourth
{
get
;
set
;
}
/// <summary>
/// DI,C1-任务应答,LIFT_C1_Response,0,PRO_AOI_IP_2,0,C1-任务应答,X31,X31,0
/// </summary>
[
ConfigProAttribute
(
"LIFT_C1_Response"
,
false
)]
public
string
LIFT_C1_Response
{
get
;
set
;
}
/// <summary>
/// DI,C1-到达1F,LIFT_C1_AtFirst,1,PRO_AOI_IP_2,0,C1-到达1F,X32,X32,0
/// </summary>
[
ConfigProAttribute
(
"LIFT_C1_AtFirst"
,
false
)]
public
string
LIFT_C1_AtFirst
{
get
;
set
;
}
/// <summary>
/// DI,C1-到达3F,C1_AtThird,2,PRO_AOI_IP_2,0,C1-到达3F,X33,X33,0
/// </summary>
[
ConfigProAttribute
(
"LIFT_C1_AtThird"
,
false
)]
public
string
LIFT_C1_AtThird
{
get
;
set
;
}
/// <summary>
/// DI,C1-到达4F,C1_AtFourth,3,PRO_AOI_IP_2,0,C1-到达4F,X34,X34,0
/// </summary>
[
ConfigProAttribute
(
"LIFT_C1_AtFourth"
,
false
)]
public
string
LIFT_C1_AtFourth
{
get
;
set
;
}
/// <summary>
/// DI,C1-门已开,C1_DoorOpen,4,PRO_AOI_IP_2,0,C1-门已开,X35,X35,0
/// </summary>
[
ConfigProAttribute
(
"LIFT_C1_DoorOpen"
,
false
)]
public
string
LIFT_C1_DoorOpen
{
get
;
set
;
}
/// <summary>
/// DI,C1-故障中,C1_InFault,5,PRO_AOI_IP_2,0,C1-故障中,X36,X36,0
/// </summary>
[
ConfigProAttribute
(
"LIFT_C1_Fault"
,
false
)]
public
string
LIFT_C1_Fault
{
get
;
set
;
}
/// <summary>
/// DI,C1-运行中,C1_InRun,6,PRO_AOI_IP_2,0,C1-运行中,X37,X37,0
/// </summary>
[
ConfigProAttribute
(
"LIFT_C1_InRun"
,
false
)]
public
string
LIFT_C1_InRun
{
get
;
set
;
}
/// <summary>
/// DO,C1-AGV请求,C1_AGVRequest,0,PRO_AOI_IP_2,0,C1-AGV请求,Y31,Y31,0
/// </summary>
[
ConfigProAttribute
(
"LIFT_C1_AGVRequest"
,
false
)]
public
string
LIFT_C1_AGVRequest
{
get
;
set
;
}
/// <summary>
/// DO,C1-AGV离开,C1_AGVLeave,1,PRO_AOI_IP_2,0,C1-AGV离开,Y32,Y32,0
/// </summary>
[
ConfigProAttribute
(
"LIFT_C1_AGVLeave"
,
false
)]
public
string
LIFT_C1_AGVLeave
{
get
;
set
;
}
/// <summary>
/// DO,C1-AGV呼叫1F,C1_FirstCall,2,PRO_AOI_IP_2,0,C1-AGV呼叫1F,Y33,Y33,0
/// </summary>
[
ConfigProAttribute
(
"LIFT_C1_FirstCall"
,
false
)]
public
string
LIFT_C1_FirstCall
{
get
;
set
;
}
/// <summary>
/// DO,C1-AGV呼叫3F,C1_ThirdCall,3,PRO_AOI_IP_2,0,C1-AGV呼叫3F,Y34,Y34,0
/// </summary>
[
ConfigProAttribute
(
"LIFT_C1_ThirdCall"
,
false
)]
public
string
LIFT_C1_ThirdCall
{
get
;
set
;
}
/// <summary>
/// DO,C1-AGV呼叫4F,C1_FourthCall,4,PRO_AOI_IP_2,0,C1-AGV呼叫4F,Y35,Y35,0
/// </summary>
[
ConfigProAttribute
(
"LIFT_C1_FourthCall"
,
false
)]
public
string
LIFT_C1_FourthCall
{
get
;
set
;
}
/// <summary>
/// DO,C1-送料信号1F,C1_RunToFirst,5,PRO_AOI_IP_2,0,C1-送料信号1F,Y36,Y36,0
/// </summary>
[
ConfigProAttribute
(
"LIFT_C1_RunToFirst"
,
false
)]
public
string
LIFT_C1_RunToFirst
{
get
;
set
;
}
/// <summary>
/// DO,C1-送料信号3F,C1_RunToThird,6,PRO_AOI_IP_2,0,C1-送料信号3F,Y37,Y37,0
/// </summary>
[
ConfigProAttribute
(
"LIFT_C1_RunToThird"
,
false
)]
public
string
LIFT_C1_RunToThird
{
get
;
set
;
}
/// <summary>
/// DO,C1-送料信号4F,C1_RunToFourth,7,PRO_AOI_IP_2,0,C1-送料信号4F,Y38,Y38,0
/// </summary>
[
ConfigProAttribute
(
"LIFT_C1_RunToFourth"
,
false
)]
public
string
LIFT_C1_RunToFourth
{
get
;
set
;
}
protected
override
void
initMustHavePro
()
{
MustHaveDIList
=
new
List
<
string
>();
...
...
source/LoadCVSLibrary/Config/bean/IO_Type.cs
查看文件 @
bf803b1
...
...
@@ -90,6 +90,72 @@ namespace LoadCSVLibrary
/// </summary>
public
static
string
LIFT_D2_RunToFourth
=
"LIFT_D2_RunToFourth"
;
#
endregion
#
region
C1
电梯
/// <summary>
/// DI,C1-任务应答,C1_Response,0,PRO_AOI_IP_2,0,C1-任务应答,X31,X31,0
/// </summary>
public
static
string
LIFT_C1_Response
=
"LIFT_C1_Response"
;
/// <summary>
/// DI,C1-到达1F,C1_AtFirst,1,PRO_AOI_IP_2,0,C1-到达1F,X32,X32,0
/// </summary>
public
static
string
LIFT_C1_AtFirst
=
"LIFT_C1_AtFirst"
;
/// <summary>
/// DI,C1-到达3F,C1_AtThird,2,PRO_AOI_IP_2,0,C1-到达3F,X33,X33,0
/// </summary>
public
static
string
LIFT_C1_AtThird
=
"LIFT_C1_AtThird"
;
/// <summary>
/// DI,C1-到达4F,C1_AtFourth,3,PRO_AOI_IP_2,0,C1-到达4F,X34,X34,0
/// </summary>
public
static
string
LIFT_C1_AtFourth
=
"LIFT_C1_AtFourth"
;
/// <summary>
/// DI,C1-门已开,C1_DoorOpen,4,PRO_AOI_IP_2,0,C1-门已开,X35,X35,0
/// </summary>
public
static
string
LIFT_C1_DoorOpen
=
"LIFT_C1_DoorOpen"
;
/// <summary>
/// DI,C1-故障中,C1_InFault,5,PRO_AOI_IP_2,0,C1-故障中,X36,X36,0
/// </summary>
public
static
string
LIFT_C1_InFault
=
"LIFT_C1_InFault"
;
/// <summary>
/// DI,C1-运行中,C1_InRun,6,PRO_AOI_IP_2,0,C1-运行中,X37,X37,0
/// </summary>
public
static
string
LIFT_C1_InRun
=
"LIFT_C1_InRun"
;
/// <summary>
/// DO,C1-AGV请求,C1_AGVRequest,0,PRO_AOI_IP_2,0,C1-AGV请求,Y31,Y31,0
/// </summary>
public
static
string
LIFT_C1_AGVRequest
=
"LIFT_C1_AGVRequest"
;
/// <summary>
/// DO,C1-AGV离开,C1_AGVLeave,1,PRO_AOI_IP_2,0,C1-AGV离开,Y32,Y32,0
/// </summary>
public
static
string
LIFT_C1_AGVLeave
=
"LIFT_C1_AGVLeave"
;
/// <summary>
///DO,C1-AGV呼叫1F,C1_FirstCall,2,PRO_AOI_IP_2,0,C1-AGV呼叫1F,Y33,Y33,0
/// </summary>
public
static
string
LIFT_C1_FirstCall
=
"LIFT_C1_FirstCall"
;
/// <summary>
/// DO,C1-AGV呼叫3F,C1_ThirdCall,3,PRO_AOI_IP_2,0,C1-AGV呼叫3F,Y34,Y34,0
/// </summary>
public
static
string
LIFT_C1_ThirdCall
=
"LIFT_C1_ThirdCall"
;
/// <summary>
/// DO,C1-AGV呼叫4F,C1_FourthCall,4,PRO_AOI_IP_2,0,C1-AGV呼叫4F,Y35,Y35,0
/// </summary>
public
static
string
LIFT_C1_FourthCall
=
"LIFT_C1_FourthCall"
;
/// <summary>
/// DO,C1-送料信号1F,C1_RunToFirst,5,PRO_AOI_IP_2,0,C1-送料信号1F,Y36,Y36,0
/// </summary>
public
static
string
LIFT_C1_RunToFirst
=
"LIFT_C1_RunToFirst"
;
/// <summary>
/// DO,C1-送料信号3F,C1_RunToThird,6,PRO_AOI_IP_2,0,C1-送料信号3F,Y37,Y37,0
/// </summary>
public
static
string
LIFT_C1_RunToThird
=
"LIFT_C1_RunToThird"
;
/// <summary>
///DO,C1-送料信号4F,C1_RunToFourth,7,PRO_AOI_IP_2,0,C1-送料信号4F,Y38,Y38,0
/// </summary>
public
static
string
LIFT_C1_RunToFourth
=
"LIFT_C1_RunToFourth"
;
#
endregion
}
public
enum
IO_VALUE
{
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论