BoxEquip_OutExecute_Partial.cs
5.3 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
using CodeLibrary;
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms.VisualStyles;
namespace OnlineStore.DeviceLibrary
{
partial class BoxEquip
{
#region 出库
private void OutstoreExecute_BothSide()
{
switch (MoveInfo.MoveStep)
{
case StepEnum.SOB_14_GetReels_Ready:
//两侧已有同尺寸的料
MoveInfo.NextMoveStep(StepEnum.SOB_15_ToBufferArea);
LogInfo($"出库 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.barcode}]取料完成,准备送往出料口。行走机构到待机点P1,料屉升降轴到P1点,移栽升降轴到下暂存区出库放料高点P4/P10");
MoveAxisToP1();
PullAxis_UpdownToP1();
UpdownAxisTo_P4_P10();
BuffAreaOutstoreDoor(true);
break;
case StepEnum.SOB_15_ToBufferArea:
if (!BothOutDoorCheck(MoveInfo.MoveParam))
{
SetWarnMsg($"出库 {MoveInfo.SLog}:出料口有其他料盘,无法放置料盘[barcode={MoveInfo.MoveParam.PosInfo.barcode}][barcode={MoveInfo.MoveParam.PosInfoBack.barcode}]");
}
else
{
MoveInfo.NextMoveStep(StepEnum.SOB_16_VerifyBufferState);
BuffAreaOutstoreDoor(true);
LogInfo($"出库 {MoveInfo.SLog}:出料口无料盘确认,打开出料防护门,准备放料[barcode={MoveInfo.MoveParam.PosInfo.barcode}][barcode={MoveInfo.MoveParam.PosInfoBack.barcode}]");
}
break;
case StepEnum.SOB_16_VerifyBufferState:
if (!CheckInputMiddleAxisInBuff())
{
MoveInfo.NextMoveStep(StepEnum.SOB_17_InOutToBuff);
SetBoxStatus(DeviceStatus.OutStoreBoxEnd, RunStatus.Busy, MoveInfo.MoveParam.PosInfo.PosId, MoveInfo.MoveParam.PosInfo.barcode);
LogInfo($"出库 {MoveInfo.SLog}:移栽X轴到进出料暂存区取放点P2,行走机构到进出料机构取放点P2");
BothXAxis_To_P2();
MoveAxisToP2();
}
else if (MoveInfo.IsTimeOut())
{
SetWarnMsg($"等待上料机构旋转轴离开{MoveInfo.MoveParam.PosInfo.GetPosSide()}面暂存区超时");
}
break;
case StepEnum.SOB_17_InOutToBuff:
MoveInfo.NextMoveStep(StepEnum.SOB_18_ReleaseReel);
LogInfo($"出库 {MoveInfo.SLog}:松开料盘,移栽压紧轴到压紧前点P2");
BothComAxis_To_P2();
break;
case StepEnum.SOB_18_ReleaseReel:
MoveInfo.NextMoveStep(StepEnum.SOB_18_PutReel);
LogInfo($"出库 {MoveInfo.SLog}:放料盘,移栽升降轴到下暂存区放料低点P5/P11");
executeTime = (DateTime.Now - startTime).TotalSeconds.ToString("f2");
SetBoxStatus(DeviceStatus.OutStoreBoxEnd, RunStatus.Busy, MoveInfo.MoveParam.PosInfoBack.PosId, MoveInfo.MoveParam.PosInfoBack.barcode);
UpdownAxisTo_P5_P11();
break;
case StepEnum.SOB_18_PutReel:
MoveInfo.NextMoveStep(StepEnum.SOB_19_InOutBackFromBuff);
LogInfo($"出库 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.ToStr()}]出库完成[耗时:{(DateTime.Now - startTime).TotalSeconds.ToString("f2")}秒],移栽X轴到待机点P1,行走机构到待机点P1");
BothXAxis_To_P1();
MoveAxisToP1();
break;
case StepEnum.SOB_19_InOutBackFromBuff:
//出库料盘放置成功,将料盘信息写入对应出料口
if (CheckASide())
{
BufferDataManager.AOutStoreInfo = MoveInfo.MoveParam.PosInfo.ToCopy();
BufferDataManager.BOutStoreInfo = MoveInfo.MoveParam.PosInfoBack.ToCopy();
}
else
{
BufferDataManager.BOutStoreInfo = MoveInfo.MoveParam.PosInfo.ToCopy();
BufferDataManager.AOutStoreInfo = MoveInfo.MoveParam.PosInfoBack.ToCopy();
}
MoveInfo.NextMoveStep(StepEnum.SOB_20_Finish);
BuffAreaOutstoreDoor(false);
LogInfo($"出库 {MoveInfo.SLog}:关闭出料防护门,出库结束");
break;
case StepEnum.SOB_20_Finish:
SetBoxStatus(DeviceStatus.StoreOnline, RunStatus.Runing);
MoveInfo.EndMove();
//停止记录
StopRecord();
AutoInout.InOutEndProcess(this, MoveType.OutStore);
break;
}
}
#endregion
}
}