LabelMachine.Tmove.cs
7.5 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
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using CodeLibrary;
using Newtonsoft.Json;
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
namespace DeviceLibrary
{
using static System.Windows.Forms.VisualStyles.VisualStyleElement.ProgressBar;
using crc = OnlineStore.CodeResourceControl;
public partial class LabelMachine
{
/// <summary>
/// 等待响应料盘移栽
/// </summary>
public bool NextNeedWaitTransplanting=false;
public bool CanNextWaitTransplanting(RemoteLoad remoteLoad, out string msg)
{
msg = "";
if (!RobotManage.isRunning || runStatus != RunStatus.Running)
{
msg = "主设备不在运行,不能放料";
return false;
}
if (IOValue(IO_Label_Type.Tray_Check, IO_VALUE.HIGH))
{
msg = "等待1号机物料流走";
return false;
}
if (TransMoveInfo.MoveStep != MoveStep.Wait)
{
msg = "正在处理移栽物料,不能放料";
return false;
}
NextNeedWaitTransplanting=true;
TransMoveInfo.NextMoveStep(MoveStep.Trans_WaitReady);
TransMoveInfo.ReelParam = remoteLoad.RequestLoadInfo.LoadParam.clone();
TransMoveInfo.log($"等待2号机放置料盘:"+ TransMoveInfo.ReelParam.ToDetailStr());
return true;
}
public bool PutReelFinish(RemoteLoad remoteLoad, out string msg)
{
msg = "";
NextNeedWaitTransplanting=false;
TransMoveInfo.NextMoveStep(MoveStep.Trans_01);
TransMoveInfo.ReelParam = remoteLoad.RequestLoadInfo.LoadParam.clone();
TransMoveInfo.log("收到料盘:"+ TransMoveInfo.ReelParam.ToDetailStr());
return true;
}
string GroupName = "XRAY02";
void TransProcess()
{
if (CheckWait(TransMoveInfo))
return;
switch (TransMoveInfo.MoveStep)
{
case MoveStep.Wait:
break;
case MoveStep.Trans_WaitReady:
var xrstep = (RobotManage.xrayMachine.MoveInfo.MoveStep == MoveStep.XRay_11_GetCoutResult
|| RobotManage.xrayMachine.MoveInfo.MoveStep <= MoveStep.XRay_09_SentToLabelStop);
var lbstep = (MoveInfo.MoveStep == MoveStep.Lbl_01_Wait_ATray || MoveInfo.MoveStep >= MoveStep.Lbl_03_StopDown_and_wait);
if (xrstep && lbstep
&& IOValue(IO_Label_Type.Line1_Run).Equals(IO_VALUE.LOW)
&& secPreReelParam == null
)
{
Msg.add($"等待2号机放置料盘", MsgLevel.info);
RemoteLoad remoteLoad1 = new RemoteLoad();
remoteLoad1.Seq = Snowflake.Instance().GetId();
remoteLoad1.Action = "StartPutReel";
remoteLoad1.RequestLoadInfo = new RequestLoadInfo();
var remoteresult = RemoteService.SendAndWait(GroupName, remoteLoad1);
if (remoteresult == RemoteResult.True)
{
TransMoveInfo.log($"{GroupName} 等待物料到位");
TransMoveInfo.NextMoveStep(MoveStep.Trans_WaitReel);
ConfigHelper.Config.Set($"Runtime_{GroupName}_MoveParamJson", JsonConvert.SerializeObject(TransMoveInfo.ReelParam));
return;
}
else if (remoteresult == RemoteResult.False)
{
TransMoveInfo.NextMoveStep(MoveStep.Wait);
TransMoveInfo.log($"{GroupName} 没有准备好放料盘");
}
else
{
Msg.add($"{GroupName} 通讯超时", MsgLevel.warning);
}
}
else {
Msg.add($"等待二号机放料位置空闲,D:{secPreReelParam == null},XR:{xrstep},LB:{lbstep},LR:{IOValue(IO_Label_Type.Line1_Run).Equals(IO_VALUE.LOW)}", MsgLevel.info);
}
break;
case MoveStep.Trans_WaitReel:
TransMoveInfo.log($"{GroupName} 等待料盘放下");
break;
case MoveStep.Trans_01:
TransMoveInfo.NextMoveStep(MoveStep.Trans_02);
//RobotManage.Line1.LineRun("trans", 999, "Trans_01");
//TransMoveInfo.StopwatchLog(false, "开始送出");
break;
case MoveStep.Trans_02:
if (RobotManage.labelMachine.IOValue(IO_Label_Type.Line_HasTray_Check).Equals(IO_VALUE.HIGH))
{
if (!RobotManage.offlinemode && !TransMoveInfo.ReelParam.IsNg)
{
var cl = ServerConn.inputCounterDataByXRayMachine(TransMoveInfo.ReelParam.WareCode, TransMoveInfo.ReelParam.QTY);
if (cl == null)
{
TransMoveInfo.ReelParam.IsNg = true;
TransMoveInfo.ReelParam.NgMsg = "点料数量上传失败";
TransMoveInfo.ReelParam.logresult();
}
}
TransMoveInfo.NextMoveStep(MoveStep.Trans_03);
RobotManage.labelMachine.secPreReelParam = TransMoveInfo.ReelParam;
TransMoveInfo.log("料盘到达贴标线入口");
}
else if (MoveInfo.IsTimeOut(10))
{
Msg.add("等待二号机料盘放到皮带线", MsgLevel.warning);
TransMoveInfo.log("等待二号机料盘放到皮带线");
}
break;
case MoveStep.Trans_03:
TransMoveInfo.NextMoveStep(MoveStep.Trans_04);
TransMoveInfo.log("二号料盘已准备好,等待贴标机1");
break;
case MoveStep.Trans_04:
TransMoveInfo.NextMoveStep(MoveStep.Trans_05);
TransMoveInfo.log("二号料盘已准备好,等待贴标机2");
break;
case MoveStep.Trans_05:
if (RobotManage.labelMachine.IOValue(IO_Label_Type.Line_HasTray_Check).Equals(IO_VALUE.LOW))
{
TransMoveInfo.NextMoveStep(MoveStep.Trans_06);
TransMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1500));
TransMoveInfo.log("料盘已离开");
}
else if (TransMoveInfo.IsTimeOut(15))
{
Msg.add("等待贴标机处理二号机料盘", MsgLevel.warning);
TransMoveInfo.log("等待贴标机处理二号机料盘");
}
break;
case MoveStep.Trans_06:
TransMoveInfo.log("完成");
TransMoveInfo.EndMove();
break;
}
}
}
}