BoxEquip_MoveAxisDebug.cs
3.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
using OnlineStore.Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OnlineStore.DeviceLibrary
{
public partial class BoxEquip
{
int moveAxisRunCnt = 0;
public bool MoveAxisDebug = true;
public delegate void MoveAxisRunCntEventHandler(int cnt);
public event MoveAxisRunCntEventHandler MoveAxisDebugEvent;
public void StartMoveAixsDebug(string posId)
{
if (isInSuddenDown || isNoAirpressure_Check ||
(!runStatus.Equals(RunStatus.Runing))
|| (!MoveInfo.MoveType.Equals(MoveType.None)))
{
LogUtil.error(Name + " 启动行走机构调试出错,忙碌或报警中 ,storeStatus=" + runStatus + ",MoveType=" + MoveInfo.MoveType + ",isInSuddenDown=" + isInSuddenDown + ",isNoAirpressure_Check=" + isNoAirpressure_Check);
return;
}
moveAxisRunCnt = 0;
MoveAxisDebug=true;
InOutParam param = new InOutParam(new InOutPosInfo("moveaxisdebug", posId));
LogInfo(" 启动行走机构调试【" + param.PosInfo.ToStr() + "】 ");
param.MoveP = new LineMoveP(Config, param.PosInfo.PosId);
MoveInfo.NewMove(MoveType.Working, param);
SetBoxStatus(DeviceStatus.Debugging, RunStatus.Busy);
MoveInfo.NextMoveStep(StepEnum.Store_0_Start);
PullAxis_Inout_To_P1();
}
public void StopMoveAxisDebug()
{
MoveAxisDebug = false;
}
public void MoveAxisDebugProcess()
{
if (MoveInfo.IsInWait)
{
CheckWait(MoveInfo);
}
if (MoveInfo.IsInWait)
{
return;
}
switch (MoveInfo.MoveStep)
{
case StepEnum.Store_0_Start:
MoveInfo.NextMoveStep(StepEnum.Store_1_ToTarget);
LogInfo($"行走机构调试{MoveInfo.SLog}: 开始调试,去目标位置");
MoveAxis.AbsMove(MoveInfo, MoveInfo.MoveParam.MoveP.MoveAxis_P3, Config.MoveAxis_P3_Speed);
break;
case StepEnum.Store_1_ToTarget:
MoveInfo.NextMoveStep(StepEnum.Store_2_BackSource);
LogInfo($"行走机构调试 {MoveInfo.SLog}:到达目标位置,开始返回起始点");
MoveAxis.AbsMove(MoveInfo, MoveInfo.MoveParam.MoveP.MoveAxis_P1, Config.MoveAxis_P1_Speed);
break;
case StepEnum.Store_2_BackSource:
moveAxisRunCnt++;
if(MoveAxisDebug)
{
MoveInfo.NextMoveStep(StepEnum.Store_1_ToTarget);
LogInfo($"行走机构调试 {MoveInfo.SLog}:到达起始点,去目标位置。当前来回次数:{moveAxisRunCnt}");
MoveAxisDebugEvent(moveAxisRunCnt);
MoveAxis.AbsMove(MoveInfo, MoveInfo.MoveParam.MoveP.MoveAxis_P3, Config.MoveAxis_P3_Speed);
}
else
{
MoveInfo.NextMoveStep(StepEnum.Store_3_Finish);
LogInfo($"行走机构调试 {MoveInfo.SLog}:运行结束,当前来回次数:{moveAxisRunCnt}");
MoveAxisDebugEvent(moveAxisRunCnt);
}
break;
case StepEnum.Store_3_Finish:
SetBoxStatus(DeviceStatus.Debugging, RunStatus.Runing);
MoveInfo.EndMove();
break;
}
}
}
}