PackageLine_PkgInShelf.cs
2.0 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
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
{
/// <summary>
/// 料架进入步骤
/// </summary>
private enum IN_SHELF
{
NONE,
/// <summary>
/// 线体转动
/// </summary>
LINE_RUN,
}
StepInfo<IN_SHELF> inStep;
/// <summary>
/// 料架进入处理
/// </summary>
private void ProcessInShelf()
{
//检测左侧入口IO,检测到后线体转60S
bool hasShelfIn = IOValue(IO_Type.Pkg_In_Check).Equals(IO_VALUE.HIGH);
if (hasShelfIn)
{
inStep.Msg = "包装线检测到有料架进入,启动线体1和2";
inStep.ToNextStep(IN_SHELF.LINE_RUN);
int lineRunTime = 60000;
inStep.AddTimeWait(lineRunTime);
inStep.AddIoWait(IO_Type.Pkg_Stop_Check2, IO_VALUE.HIGH);
KeepLineRun(IO_Type.Pkg_Line1_Forward);
KeepLineRun(IO_Type.Pkg_Line2_Forward);
}
if (inStep.IsStep(IN_SHELF.NONE))
{
}
else if (inStep.IsStep(IN_SHELF.LINE_RUN))
{
if (inStep.IsFinished())
{
inStep.Msg = "包装线料架进入后,线体已启动60秒,停止线体";
//10秒已到,停止线体
inStep.ToNextStep(IN_SHELF.NONE);
IOMove(IO_Type.Pkg_Line1_Forward, IO_VALUE.LOW);
IOMove(IO_Type.Pkg_Line2_Forward, IO_VALUE.LOW);
}
else
{
KeepLineRun(IO_Type.Pkg_Line1_Forward);
KeepLineRun(IO_Type.Pkg_Line2_Forward);
}
}
}
}
}