PackageLine_PkgStation.cs
7.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OnlineStore.DeviceLibrary
{
partial class PackageLine
{
// public StepInfo<PKG_STATION_STEP> pkgStationStep = new StepInfo<PKG_STATION_STEP>(PKG_STATION_STEP.NONE);
/// <summary>
/// 包装料架工位
/// </summary>
public enum PKG_STATION_STEP
{
NONE,
/// <summary>
/// 等待料架
/// </summary>
WAIT_SHELF,
/// <summary>
/// 等待料架进入工位
/// </summary>
WAIT_SHELF_TO_STATION,
/// <summary>
/// 等待读取RFID
/// </summary>
READ_RFID,
/// <summary>
/// 等待顶升上升
/// </summary>
WAIT_STATION_UP,
/// <summary>
/// 等待机器人抓取
/// </summary>
WAIT_ROBOT,
/// <summary>
/// 料架已空
/// </summary>
SHELF_EMPTY,
/// <summary>
/// 等待顶升下降
/// </summary>
WAIT_STATION_DOWN,
/// <summary>
/// 去空料架位置(线体右侧)
/// </summary>
TO_EMPTY_STATION,
}
/// <summary>
/// 包装线工位
/// </summary>
//private void ProcessPkgStation()
//{
// if (pkgStationStep.IsStep(PKG_STATION_STEP.NONE))
// {
// bool hasPkgShelf = IOValue(IO_Type.Pkg_Station_Check).Equals(IO_VALUE.HIGH);
// if (hasPkgShelf)
// {
// pkgStationStep.Msg = "包装线已有料架,等待读取RFID";
// pkgStationStep.ToNextStep(PKG_STATION_STEP.READ_RFID);
// }
// else
// {
// pkgStationStep.Msg = "包装线无料架,等待料架进入";
// pkgStationStep.ToNextStep(PKG_STATION_STEP.WAIT_SHELF);
// }
// }
// else if (pkgStationStep.IsStep(PKG_STATION_STEP.WAIT_SHELF))
// {
// bool hasWaitShelf = IOValue(IO_Type.Pkg_Stop_Check2).Equals(IO_VALUE.HIGH);
// //有等待的料架
// if (hasWaitShelf)
// {
// pkgStationStep.Msg = "包装线等待位发现料架, 将其送入工位";
// pkgStationStep.ToNextStep(PKG_STATION_STEP.WAIT_SHELF_TO_STATION);
// pkgStationStep.AddIoWait(IO_Type.Pkg_Station_Check, IO_VALUE.HIGH,3000);
// //IOMove(IO_Type.Pkg_Line1_Forward, IO_VALUE.HIGH);
// IOMove(IO_Type.Pkg_Line2_Forward, IO_VALUE.HIGH);
// IOMove(IO_Type.Pkg_Stop2_Down, IO_VALUE.HIGH, 2000);
// }
// }
// else if (pkgStationStep.IsStep(PKG_STATION_STEP.WAIT_SHELF_TO_STATION))
// {
// if (pkgStationStep.IsFinished())
// {
// pkgStationStep.Msg = "包装线料架到达工位,停止线体1和2,等待读取RFID";
// pkgStationStep.ToNextStep(PKG_STATION_STEP.READ_RFID);
// IOMove(IO_Type.Pkg_Line2_Forward, IO_VALUE.LOW);
// }
// else
// {
// bool line2Stop = IOValue(IO_Type.Pkg_Line2_Forward).Equals(IO_VALUE.LOW);
// if (line2Stop)
// {
// LogUtil.info("包装线线体2已停止,但料架还未到达工位,重新启动");
// IOMove(IO_Type.Pkg_Line2_Forward, IO_VALUE.HIGH);
// }
// }
// }
// else if (pkgStationStep.IsStep(PKG_STATION_STEP.READ_RFID))
// {
// if (pkgStationStep.IsTimeOut(1000))
// {
// //1秒读取1次
// PkgShelfRFID = "";
// string rfid = RFIDManager.ReadRFID(Config.Pkg_Rfid, true).NumStr();
// if (rfid.Contains("A"))
// {
// pkgStationStep.Msg = "包装线读取到RFID[" + rfid + "], 工位顶升";
// pkgStationStep.ToNextStep(PKG_STATION_STEP.WAIT_STATION_UP);
// pkgStationStep.AddIoWait(IO_Type.Pkg_Station_Down, IO_VALUE.LOW);
// pkgStationStep.AddIoWait(IO_Type.Pkg_Station_Up, IO_VALUE.HIGH);
// PkgShelfRFID = rfid;
// //包装线体工位上升
// CylinderMove(null, IO_Type.Pkg_Station_SOL_Down, IO_Type.Pkg_Station_SOL_UP);
// }
// else
// {
// pkgStationStep.Msg = "包装线读取到的RFID数据[" + rfid + "]错误";
// pkgStationStep.ToNextStep(PKG_STATION_STEP.READ_RFID);
// }
// }
// }
// else if (pkgStationStep.IsStep(PKG_STATION_STEP.WAIT_STATION_UP))
// {
// if (pkgStationStep.IsFinished())
// {
// pkgStationStep.Msg = "包装线工位顶升到位,等待机器人抓取[" + PkgShelfRFID + "]";
// pkgStationStep.ToNextStep(PKG_STATION_STEP.WAIT_ROBOT);
// }
// }else if (pkgStationStep.IsStep(PKG_STATION_STEP.SHELF_EMPTY))
// {
// pkgStationStep.Msg = "包装线工位料架[" + PkgShelfRFID + "]已空,下降顶升,准备放行";
// pkgStationStep.ToNextStep(PKG_STATION_STEP.WAIT_STATION_DOWN);
// pkgStationStep.AddIoWait(IO_Type.Pkg_Station_Down, IO_VALUE.HIGH);
// pkgStationStep.AddIoWait(IO_Type.Pkg_Station_Up, IO_VALUE.LOW);
// //包装线体工位下降
// CylinderMove(null, IO_Type.Pkg_Station_SOL_UP, IO_Type.Pkg_Station_SOL_Down);
// }
// else if (pkgStationStep.IsStep(PKG_STATION_STEP.WAIT_STATION_DOWN))
// {
// if (pkgStationStep.IsFinished())
// {
// pkgStationStep.Msg = "包装线工位料架[" + PkgShelfRFID + "]顶升下降到位,开始放行";
// pkgStationStep.ToNextStep(PKG_STATION_STEP.TO_EMPTY_STATION);
// pkgStationStep.AddIoWait(IO_Type.Pkg_Out_Stop_Check, IO_VALUE.HIGH);
// pkgStationStep.AddIoWait(IO_Type.Pkg_Rotot_Forbidden_Check, IO_VALUE.HIGH);
// pkgStationStep.AddTimeWait(20000);
// IOMove(IO_Type.Pkg_Line2_Forward, IO_VALUE.HIGH);
// IOMove(IO_Type.Pkg_Line3_Forward, IO_VALUE.HIGH);
// IOMove(IO_Type.Pkg_Station_Stop_Down, IO_VALUE.HIGH, 3000);
// IOMove(IO_Type.Pkg_Stop2_Down, IO_VALUE.HIGH, 3000);
// }
// }else if (pkgStationStep.IsStep(PKG_STATION_STEP.TO_EMPTY_STATION))
// {
// if (pkgStationStep.IsFinished())
// {
// pkgStationStep.Msg = "包装线工位料架[" + PkgShelfRFID + "放行完成";
// PkgShelfRFID = "";
// //IOMove(IO_Type.Pkg_Line2_Forward, IO_VALUE.LOW);
// //IOMove(IO_Type.Pkg_Line3_Forward, IO_VALUE.LOW);
// pkgStationStep.ToNextStep(PKG_STATION_STEP.NONE);
// agvA4Step.ToNextStep(AGV_LEAVE_A4_STEP.WAIT_TO_EXIT);
// }
// }
//}
}
}