Commit d9847538 LN

上料机构修改

1 个父辈 f8dca7a7
...@@ -241,12 +241,16 @@ namespace OnlineStore.DeviceLibrary ...@@ -241,12 +241,16 @@ namespace OnlineStore.DeviceLibrary
int p = AxisManager.instance.GetActualtPosition(Config.DeviceName,Config.GetAxisValue()); int p = AxisManager.instance.GetActualtPosition(Config.DeviceName,Config.GetAxisValue());
return p; return p;
} }
public bool IsInPosition(int targetP) public bool IsInPosition(int targetP,int canErrorMax=0)
{ {
if (canErrorMax <= 0)
{
canErrorMax = Config.CanErrorCountMax;
}
int currp = GetAclPosition(); int currp = GetAclPosition();
int chaz = targetP - currp; int chaz = targetP - currp;
if (Math.Abs(chaz) < Config.CanErrorCountMax) if (Math.Abs(chaz) < canErrorMax)
{ {
return true; return true;
} }
......
...@@ -149,6 +149,16 @@ namespace OnlineStore.DeviceLibrary ...@@ -149,6 +149,16 @@ namespace OnlineStore.DeviceLibrary
} }
return configIo; return configIo;
} }
internal static ConfigIO GetIO(string ioType, int subType)
{
ConfigIO configIo = GetDI(ioType,subType);
if (configIo == null)
{
configIo = GetDO(ioType, subType);
}
return configIo;
}
private static ConfigIO GetDO(string ioType, int subType) private static ConfigIO GetDO(string ioType, int subType)
{ {
ConfigIO configIo = null; ConfigIO configIo = null;
......
...@@ -816,9 +816,14 @@ namespace OnlineStore.DeviceLibrary ...@@ -816,9 +816,14 @@ namespace OnlineStore.DeviceLibrary
IB02_BatchAxisToP1, IB02_BatchAxisToP1,
/// <summary> /// <summary>
/// 料串入料:链条开始转动 /// 料串入料:入口有料架,转动到料架到位
/// </summary> /// </summary>
IB04_LineStart, IB03_LineStart,
/// <summary>
/// 料串入料:料架已到位,在转动3秒
/// </summary>
IB04_LineWait,
/// <summary> /// <summary>
/// 料串入料:阻挡气缸上升 /// 料串入料:阻挡气缸上升
......
...@@ -283,7 +283,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -283,7 +283,7 @@ namespace OnlineStore.DeviceLibrary
} }
else if (wait.WaitType.Equals(WaitEnum.W002_IOValue)) else if (wait.WaitType.Equals(WaitEnum.W002_IOValue))
{ {
NotOkMsg = " [" + IOManager.GetDI(wait.IoType, DeviceID).DisplayStr + "=" + wait.IoValue + "]"; NotOkMsg = " [" + IOManager.GetIO(wait.IoType, DeviceID).DisplayStr + "=" + wait.IoValue + "]";
wait.IsEnd = IOValue(wait.IoType).Equals(wait.IoValue); wait.IsEnd = IOValue(wait.IoType).Equals(wait.IoValue);
if (!wait.IsEnd) if (!wait.IsEnd)
......
...@@ -398,7 +398,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -398,7 +398,7 @@ namespace OnlineStore.DeviceLibrary
NotOkMsg = " [" + wait.ToStr() + "] "; NotOkMsg = " [" + wait.ToStr() + "] ";
if (wait.WaitType.Equals(WaitEnum.W002_IOValue)) if (wait.WaitType.Equals(WaitEnum.W002_IOValue))
{ {
NotOkMsg = " [" + IOManager.GetDI(wait.IoType, DeviceID).DisplayStr + "=" + wait.IoValue + "] "; NotOkMsg = " [" + IOManager.GetIO(wait.IoType, DeviceID).DisplayStr + "=" + wait.IoValue + "] ";
wait.IsEnd = IOValue(wait.IoType).Equals(wait.IoValue); wait.IsEnd = IOValue(wait.IoType).Equals(wait.IoValue);
if (!wait.IsEnd) if (!wait.IsEnd)
......
...@@ -57,7 +57,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -57,7 +57,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo = new DeviceMoveInfo(Name); MoveInfo = new DeviceMoveInfo(Name);
} }
internal void TimerProcess() public void TimerProcess()
{ {
if (MoveInfo.MoveType.Equals(MoveType.None)) if (MoveInfo.MoveType.Equals(MoveType.None))
{ {
...@@ -70,6 +70,10 @@ namespace OnlineStore.DeviceLibrary ...@@ -70,6 +70,10 @@ namespace OnlineStore.DeviceLibrary
{ {
StartInstore(new InOutParam()); StartInstore(new InOutParam());
} }
else if (Robot.AutoInput && Robot.IOValue(Config.IO_LineEnd_Check).Equals(IO_VALUE.HIGH))
{
StartInstore(new InOutParam());
}
} }
} }
else if (MoveInfo.MoveType.Equals(MoveType.Reset)) else if (MoveInfo.MoveType.Equals(MoveType.Reset))
...@@ -115,6 +119,15 @@ namespace OnlineStore.DeviceLibrary ...@@ -115,6 +119,15 @@ namespace OnlineStore.DeviceLibrary
{ {
StopMove(); StopMove();
} }
string msg = "";
if (!BatchAxis.Open(true, out msg))
{
BatchAxis.SuddenStop();
BatchAxis.ServoOff();
WarnMsg = Name + "复位失败:批量轴打开失败:"+msg;
return false;
}
WarnMsg = ""; WarnMsg = "";
alarmType = AlarmType.None; alarmType = AlarmType.None;
MoveInfo.NewMove(MoveType.Reset); MoveInfo.NewMove(MoveType.Reset);
...@@ -122,6 +135,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -122,6 +135,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(100)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(100));
WorkLog("开始复位,定位气缸下降"); WorkLog("开始复位,定位气缸下降");
StopDown(MoveInfo); StopDown(MoveInfo);
return true;
} }
else else
{ {
...@@ -149,20 +163,20 @@ namespace OnlineStore.DeviceLibrary ...@@ -149,20 +163,20 @@ namespace OnlineStore.DeviceLibrary
if (MoveInfo.IsStep(StepEnum.IBR01_StopDown)) if (MoveInfo.IsStep(StepEnum.IBR01_StopDown))
{ {
if (Robot.IOValue(Config.IO_LineIn_Check).Equals(Robot.IOValue(Config.IO_LineEnd_Check))) //if (Robot.IOValue(Config.IO_LineIn_Check).Equals(Robot.IOValue(Config.IO_LineEnd_Check)))
{ //{
LineStop(); // LineStop();
MoveInfo.NextMoveStep(StepEnum.IBR04_BatchHome); // MoveInfo.NextMoveStep(StepEnum.IBR04_BatchHome);
WorkLog("复位:批量轴开始回原点"); // WorkLog("复位:批量轴开始回原点");
BatchAxis.HomeMove(MoveInfo); // BatchAxis.HomeMove(MoveInfo);
} //}
else //else
{ //{
MoveInfo.NextMoveStep(StepEnum.IBR02_LineRun); MoveInfo.NextMoveStep(StepEnum.IBR02_LineRun);
WorkLog("复位:链条正转3秒"); WorkLog("复位:链条正转3秒");
LineRun(MoveInfo); LineRun(MoveInfo);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(3000)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(3000));
} //}
} }
else if (MoveInfo.IsStep(StepEnum.IBR02_LineRun)) else if (MoveInfo.IsStep(StepEnum.IBR02_LineRun))
{ {
...@@ -327,6 +341,10 @@ namespace OnlineStore.DeviceLibrary ...@@ -327,6 +341,10 @@ namespace OnlineStore.DeviceLibrary
//当等待超过一分钟时,需要打印提示 //当等待超过一分钟时,需要打印提示
TimeSpan span = DateTime.Now - moveInfo.LastSetpTime; TimeSpan span = DateTime.Now - moveInfo.LastSetpTime;
if (span.TotalMilliseconds < 300)
{
return;
}
string NotOkMsg = ""; string NotOkMsg = "";
bool isOk = !moveInfo.OneWaitCanEndStep; bool isOk = !moveInfo.OneWaitCanEndStep;
foreach (WaitResultInfo wait in list) foreach (WaitResultInfo wait in list)
...@@ -363,7 +381,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -363,7 +381,7 @@ namespace OnlineStore.DeviceLibrary
} }
else if (wait.WaitType.Equals(WaitEnum.W002_IOValue)) else if (wait.WaitType.Equals(WaitEnum.W002_IOValue))
{ {
NotOkMsg = " [" + IOManager.GetDI(wait.IoType, Robot.DeviceID).DisplayStr + "=" + wait.IoValue + "]"; NotOkMsg = " [" + IOManager.GetIO(wait.IoType, Robot.DeviceID).DisplayStr + "=" + wait.IoValue + "]";
wait.IsEnd = Robot.IOValue(wait.IoType).Equals(wait.IoValue); wait.IsEnd = Robot.IOValue(wait.IoType).Equals(wait.IoValue);
if (!wait.IsEnd && (!moveInfo.IsStep(StepEnum.IB23_ShelfOut))) if (!wait.IsEnd && (!moveInfo.IsStep(StepEnum.IB23_ShelfOut)))
......
...@@ -40,19 +40,23 @@ namespace OnlineStore.DeviceLibrary ...@@ -40,19 +40,23 @@ namespace OnlineStore.DeviceLibrary
LogUtil.info(Name + "StartInstore 失败,料串" + CurrShelf.ToStr() + "需要离开,NeedLeave:" + Config.AgvName + "," + CurrShelf.ShelfRfid + ",agvcallresult:" + agvcallresult.ToString()); LogUtil.info(Name + "StartInstore 失败,料串" + CurrShelf.ToStr() + "需要离开,NeedLeave:" + Config.AgvName + "," + CurrShelf.ShelfRfid + ",agvcallresult:" + agvcallresult.ToString());
return false; return false;
} }
if (Robot.IOValue(Config.IO_LineEnd_Check).Equals(IO_VALUE.HIGH) && Robot.IOValue(Config.IO_LineIn_Check).Equals(IO_VALUE.HIGH)) //if (Robot.IOValue(Config.IO_LineEnd_Check).Equals(IO_VALUE.HIGH) && Robot.IOValue(Config.IO_LineIn_Check).Equals(IO_VALUE.HIGH))
//{
// MoveInfo.NewMove(MoveType.InStore);
// MoveInfo.MoveParam = new InOutParam();
// //判断是哪个工位有料串
// IB05_StopUp();
//}
else if (Robot.IOValue(Config.IO_LineIn_Check).Equals(IO_VALUE.HIGH) )
{ {
MoveInfo.NewMove(MoveType.InStore); MoveInfo.NewMove(MoveType.InStore);
MoveInfo.MoveParam = new InOutParam(); IB03_LineStart();
//判断是哪个工位有料串
IB05_StopUp();
} }
else if (Robot.IOValue(Config.IO_LineIn_Check).Equals(IO_VALUE.HIGH)) else if(Robot.IOValue(Config.IO_LineIn_Check).Equals(IO_VALUE.HIGH))
{ {
MoveInfo.NewMove(MoveType.InStore); MoveInfo.NewMove(MoveType.InStore);
MoveInfo.NextMoveStep(StepEnum.IB04_LineStart); IB04_LineWait();
IB02_BatchAxisToP1();
} }
else else
{ {
...@@ -90,6 +94,22 @@ namespace OnlineStore.DeviceLibrary ...@@ -90,6 +94,22 @@ namespace OnlineStore.DeviceLibrary
BatchAxis.AbsMove(MoveInfo, Config.BatchAxisP1, Robot.Config.BatchAxis_P1Speed); BatchAxis.AbsMove(MoveInfo, Config.BatchAxisP1, Robot.Config.BatchAxis_P1Speed);
StopDown(); StopDown();
} }
private void IB03_LineStart()
{
WorkLog("料串入料 :入口有料串,转动料串到位");
MoveInfo.NextMoveStep(StepEnum.IB03_LineStart);
LineRun(MoveInfo);
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(Config.IO_LineIn_Check, IO_VALUE.LOW));
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(Config.IO_LineEnd_Check, IO_VALUE.HIGH));
}
private void IB04_LineWait()
{
WorkLog("料串入料 :料串已到位,在转动3秒");
MoveInfo.NextMoveStep(StepEnum.IB04_LineWait);
LineRun(MoveInfo);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(3000));
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(Config.IO_LineEnd_Check, IO_VALUE.HIGH));
}
private void IB07_AxisUpMove() private void IB07_AxisUpMove()
{ {
MoveInfo.ShelfNoTray = false; MoveInfo.ShelfNoTray = false;
...@@ -119,24 +139,31 @@ namespace OnlineStore.DeviceLibrary ...@@ -119,24 +139,31 @@ namespace OnlineStore.DeviceLibrary
} }
if (MoveInfo.IsStep(StepEnum.IB02_BatchAxisToP1)) if (MoveInfo.IsStep(StepEnum.IB02_BatchAxisToP1))
{ {
MoveInfo.NextMoveStep(StepEnum.IB04_LineStart); //MoveInfo.NextMoveStep(StepEnum.IB03_LineStart);
WorkLog("料串入料 :开始转动链条"); //WorkLog("料串入料 :开始转动链条");
LineRun(MoveInfo); //LineRun(MoveInfo);
//等待指定时间 ////等待指定时间
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(3000)); //MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(3000));
IB03_LineStart();
} }
else if (MoveInfo.IsStep(StepEnum.IB04_LineStart)) else if (MoveInfo.IsStep(StepEnum.IB03_LineStart))
{ {
if (Robot.IOValue(Config.IO_LineIn_Check).Equals(IO_VALUE.HIGH) && Robot.IOValue(Config.IO_LineEnd_Check).Equals(IO_VALUE.HIGH)) //if (Robot.IOValue(Config.IO_LineIn_Check).Equals(IO_VALUE.HIGH) && Robot.IOValue(Config.IO_LineEnd_Check).Equals(IO_VALUE.HIGH))
//{
// IB05_StopUp();
//}
//else
if (Robot.IOValue(Config.IO_LineIn_Check).Equals(IO_VALUE.HIGH))
{ {
IB05_StopUp(); //MoveInfo.NextMoveStep(StepEnum.IB03_LineStart);
//WorkLog(" 入口检测到料串,流水线转动 6000,等待料串完全进入轨道");
//LineRun(MoveInfo);
//MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(6000));
IB03_LineStart();
} }
else if (Robot.IOValue(Config.IO_LineIn_Check).Equals(IO_VALUE.HIGH)) else if (Robot.IOValue(Config.IO_LineIn_Check).Equals(IO_VALUE.HIGH))
{ {
MoveInfo.NextMoveStep(StepEnum.IB04_LineStart); IB04_LineWait();
WorkLog(" 入口检测到料串,流水线转动 6000,等待料串完全进入轨道");
LineRun(MoveInfo);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(6000));
} }
else else
{ {
...@@ -144,6 +171,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -144,6 +171,9 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.EndMove(); MoveInfo.EndMove();
LogUtil.info(" 未检测到料串,入料结束"); LogUtil.info(" 未检测到料串,入料结束");
} }
}else if (MoveInfo.IsStep(StepEnum.IB04_LineWait))
{
IB05_StopUp();
} }
else if (MoveInfo.IsStep(StepEnum.IB06_WaitTime)) else if (MoveInfo.IsStep(StepEnum.IB06_WaitTime))
{ {
......
...@@ -40,8 +40,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -40,8 +40,8 @@ namespace OnlineStore.DeviceLibrary
ledProcessTimer.Elapsed += LedProcess; ledProcessTimer.Elapsed += LedProcess;
IoCheckTimer.Elapsed += IoCheckTimerProcess; IoCheckTimer.Elapsed += IoCheckTimerProcess;
MiddleAxis = new AxisBean(config.TakeAxis_Middle, Name,true); MiddleAxis = new AxisBean(config.TakeAxis_Middle, Name, false);
UpdownAxis = new AxisBean(config.TakeAxis_Updown, Name,true); UpdownAxis = new AxisBean(config.TakeAxis_Updown, Name, false);
BatchAxis_A = new AxisBean(config.BatchAxis_A, Name,true); BatchAxis_A = new AxisBean(config.BatchAxis_A, Name,true);
BatchAxis_B = new AxisBean(config.BatchAxis_B, Name,true); BatchAxis_B = new AxisBean(config.BatchAxis_B, Name,true);
...@@ -78,6 +78,22 @@ namespace OnlineStore.DeviceLibrary ...@@ -78,6 +78,22 @@ namespace OnlineStore.DeviceLibrary
runStatus = RunStatus.HomeMoving; runStatus = RunStatus.HomeMoving;
MoveInfo.NewMove(MoveType.RHome); MoveInfo.NewMove(MoveType.RHome);
if (!BatchMove_A.Reset())
{
runStatus = RunStatus.Wait;
MoveInfo.EndMove();
SetWarnMsg("启动失败:A料口启动失败");
LogUtil.error("复位失败:A料口启动失败");
return false;
}
if (!BatchMove_B.Reset())
{
runStatus = RunStatus.Wait;
MoveInfo.EndMove();
SetWarnMsg("启动失败:A料口启动失败");
LogUtil.error("复位失败:B料口启动失败");
return false;
}
StartReset(); StartReset();
SetAllTimer(true); SetAllTimer(true);
...@@ -98,6 +114,20 @@ namespace OnlineStore.DeviceLibrary ...@@ -98,6 +114,20 @@ namespace OnlineStore.DeviceLibrary
LogInfo("Reset 开始重置 "); LogInfo("Reset 开始重置 ");
runStatus = RunStatus.Reset; runStatus = RunStatus.Reset;
MoveInfo.NewMove(MoveType.Reset); MoveInfo.NewMove(MoveType.Reset);
if (!BatchMove_A.Reset())
{
SetWarnMsg("复位失败:A料口复位失败");
MoveInfo.EndMove();
LogUtil.error("复位失败:A料口复位失败");
return false;
}
if (!BatchMove_B.Reset())
{
SetWarnMsg("复位失败:B料口复位失败");
MoveInfo.EndMove();
LogUtil.error("复位失败:B料口复位失败");
return false;
}
StartReset(); StartReset();
SetAllTimer(true); SetAllTimer(true);
return true; return true;
...@@ -116,8 +146,6 @@ namespace OnlineStore.DeviceLibrary ...@@ -116,8 +146,6 @@ namespace OnlineStore.DeviceLibrary
isNoAirpressure_Check = false; isNoAirpressure_Check = false;
MoveInfo.NextMoveStep(StepEnum.IR01_Wait); MoveInfo.NextMoveStep(StepEnum.IR01_Wait);
BatchMove_A.Reset();
BatchMove_B.Reset();
LogInfo($"复位 {MoveInfo.SLog} :批量轴开始复位"); LogInfo($"复位 {MoveInfo.SLog} :批量轴开始复位");
} }
...@@ -138,69 +166,116 @@ namespace OnlineStore.DeviceLibrary ...@@ -138,69 +166,116 @@ namespace OnlineStore.DeviceLibrary
// 1,处于A,B,NG料口是,可以直接回取料升降轴。 // 1,处于A,B,NG料口是,可以直接回取料升降轴。
// 2,处于A, B两个暂存区时,升降轴先运动到该暂存区的取放料高点,旋转轴再回原点或待机点。 // 2,处于A, B两个暂存区时,升降轴先运动到该暂存区的取放料高点,旋转轴再回原点或待机点。
//验证旋转轴位置 TODO //验证旋转轴位置 TODO
if (MiddleAxis.IsInPosition(Config.Middle_P4_AUpper))
int updownP = UpdownAxis.GetAclPosition();
int middleP = MiddleAxis.GetAclPosition();
// if (UpdownAxis.IsInPosition(Config.Updown_P5_AUpperL))
//{
// MoveInfo.NextMoveStep(StepEnum.IR02_UpdownUpMove);
// LogInfo($"复位 {MoveInfo.SLog}:当前升降轴在 A上暂存区低点 {Config.Updown_P5_AUpperL},升降轴先到P4:{Config.Updown_P4_AUpperH}");
// UpdownAxis.AbsMove(MoveInfo, Config.Updown_P4_AUpperH, Config.Updown_P4_Speed);
//}
//else if (UpdownAxis.IsInPosition(Config.Updown_P7_AUnderL))
//{
// MoveInfo.NextMoveStep(StepEnum.IR02_UpdownUpMove);
// LogInfo($"复位{MoveInfo.SLog}:当前升降轴在 A下暂存区低点 {Config.Updown_P7_AUnderL},升降轴先到P6:{Config.Updown_P6_AUnderH}");
// UpdownAxis.AbsMove(MoveInfo, Config.Updown_P6_AUnderH, Config.Updown_P6_Speed);
//}
//else if (UpdownAxis.IsInPosition(Config.Updown_P11_BUpperL))
//{
// MoveInfo.NextMoveStep(StepEnum.IR02_UpdownUpMove);
// LogInfo($"复位{MoveInfo.SLog}:当前升降轴在 B上暂存区低点{Config.Updown_P11_BUpperL},升降轴先到P10:{Config.Updown_P10_BUpperH}");
// UpdownAxis.AbsMove(MoveInfo, Config.Updown_P10_BUpperH, Config.Updown_P10_Speed);
//}
//else if (UpdownAxis.IsInPosition(Config.Updown_P13_BUnderL))
//{
// MoveInfo.NextMoveStep(StepEnum.IR02_UpdownUpMove);
// LogInfo($"复位{MoveInfo.SLog}:当前升降轴在 B下暂存区低点 {Config.Updown_P13_BUnderL},升降轴先到P12{Config.Updown_P12_BUnderH}");
// UpdownAxis.AbsMove(MoveInfo, Config.Updown_P12_BUnderH, Config.Updown_P12_Speed);
//}
//旋转轴在A暂存区
if (MiddleAxis.IsInPosition(Config.Middle_P4_AUpper) || MiddleAxis.IsInPosition(Config.Middle_P7_AUnder))
{
//如果升降轴<下方高点
if(updownP< Config.Updown_P6_AUnderH+10000)
{ {
MoveInfo.NextMoveStep(StepEnum.IR02_UpdownUpMove); MoveInfo.NextMoveStep(StepEnum.IR02_UpdownUpMove);
LogInfo($"复位 {MoveInfo.SLog}:当前旋转轴在 A上暂存区 {Config.Middle_P4_AUpper},升降轴先到P4:{Config.Updown_P4_AUpperH}"); LogInfo($"复位 {MoveInfo.SLog}:当前旋转轴在 A侧暂存区{middleP},升降轴当前位置{updownP},低于下方高点,升降轴先到P4:{Config.Updown_P6_AUnderH}");
UpdownAxis.AbsMove(MoveInfo, Config.Updown_P4_AUpperH, Config.Updown_P4_Speed); UpdownAxis.AbsMove(MoveInfo, Config.Updown_P6_AUnderH, Config.Updown_P6_Speed);
} }
else if (MiddleAxis.IsInPosition(Config.Middle_P7_AUnder)) else
{ {
MoveInfo.NextMoveStep(StepEnum.IR02_UpdownUpMove); MoveInfo.NextMoveStep(StepEnum.IR02_UpdownUpMove);
LogInfo($"复位{MoveInfo.SLog}:当前旋转轴在 A下暂存区 {Config.Middle_P7_AUnder},升降轴先到P6:{Config.Updown_P6_AUnderH}"); LogInfo($"复位 {MoveInfo.SLog}:当前旋转轴在 A侧暂存区{middleP},升降轴当前位置{updownP},在上方暂存区,升降轴先回待机点:{Config.Updown_P1}");
UpdownAxis.AbsMove(MoveInfo, Config.Updown_P6_AUnderH, Config.Updown_P6_Speed); UpdownAxis.AbsMove(MoveInfo, Config.Updown_P1, Config.Updown_P1_Speed);
}
} }
else if (MiddleAxis.IsInPosition(Config.Middle_P5_BUpper)) else if (MiddleAxis.IsInPosition(Config.Middle_P5_BUpper)|| MiddleAxis.IsInPosition(Config.Middle_P8_BUnder))
{
if (updownP < Config.Updown_P12_BUnderH + 10000)
{ {
MoveInfo.NextMoveStep(StepEnum.IR02_UpdownUpMove); MoveInfo.NextMoveStep(StepEnum.IR02_UpdownUpMove);
LogInfo($"复位{MoveInfo.SLog}:当前旋转轴在 B上暂存区 {Config.Middle_P5_BUpper},升降轴先到P10:{Config.Updown_P10_BUpperH}"); LogInfo($"复位 {MoveInfo.SLog}:当前旋转轴在 B侧暂存区{middleP},升降轴当前位置{updownP},低于下方高点,升降轴先到P4:{Config.Updown_P12_BUnderH}");
UpdownAxis.AbsMove(MoveInfo, Config.Updown_P10_BUpperH, Config.Updown_P10_Speed); UpdownAxis.AbsMove(MoveInfo, Config.Updown_P12_BUnderH, Config.Updown_P12_BUnderH);
} }
else if (MiddleAxis.IsInPosition(Config.Middle_P8_BUnder)) else
{ {
MoveInfo.NextMoveStep(StepEnum.IR02_UpdownUpMove); MoveInfo.NextMoveStep(StepEnum.IR02_UpdownUpMove);
LogInfo($"复位{MoveInfo.SLog}:当前旋转轴在 B下暂存区 {Config.Middle_P8_BUnder},升降轴先到P12{Config.Updown_P12_BUnderH}"); LogInfo($"复位 {MoveInfo.SLog}:当前旋转轴在 B侧暂存区{middleP},升降轴当前位置{updownP},在上方暂存区,升降轴先回待机点:{Config.Updown_P1}");
UpdownAxis.AbsMove(MoveInfo, Config.Updown_P12_BUnderH, Config.Updown_P12_Speed); UpdownAxis.AbsMove(MoveInfo, Config.Updown_P1, Config.Updown_P1_Speed);
}
} }
else else
{ {
if (MiddleAxis.IsNeedHome)
{
MoveInfo.NextMoveStep(StepEnum.IR03_MiddleHome); MoveInfo.NextMoveStep(StepEnum.IR03_MiddleHome);
LogInfo("复位{MoveInfo.SLog}:旋转轴回原点"); LogInfo($"复位{MoveInfo.SLog}:旋转轴回原点");
MiddleAxis.HomeMove(MoveInfo); MiddleAxis.HomeMove(MoveInfo);
} }
else
{
IR04_MiddleToP1();
}
}
} }
else if (MoveInfo.IsStep(StepEnum.IR02_UpdownUpMove)) else if (MoveInfo.IsStep(StepEnum.IR02_UpdownUpMove))
{ {
if (MiddleAxis.IsNeedHome)
{
MoveInfo.NextMoveStep(StepEnum.IR03_MiddleHome); MoveInfo.NextMoveStep(StepEnum.IR03_MiddleHome);
LogInfo($"复位{MoveInfo.SLog}:旋转轴回原点"); LogInfo($"复位{MoveInfo.SLog}:旋转轴回原点");
MiddleAxis.HomeMove(MoveInfo); MiddleAxis.HomeMove(MoveInfo);
} }
else
{
IR04_MiddleToP1();
}
}
else if (MoveInfo.IsStep(StepEnum.IR03_MiddleHome)) else if (MoveInfo.IsStep(StepEnum.IR03_MiddleHome))
{ {
MoveInfo.NextMoveStep(StepEnum.IR04_MiddleToP1); IR04_MiddleToP1();
LogInfo($"复位{MoveInfo.SLog}:旋转轴到待机点:" + Config.Middle_P1);
MiddleAxis.AbsMove(MoveInfo, Config.Middle_P1, Config.Middle_P1_Speed);
} }
else if (MoveInfo.IsStep(StepEnum.IR04_MiddleToP1)) else if (MoveInfo.IsStep(StepEnum.IR04_MiddleToP1))
{ {
if (UpdownAxis.IsNeedHome)
{
MoveInfo.NextMoveStep(StepEnum.IR05_UpdownHome); MoveInfo.NextMoveStep(StepEnum.IR05_UpdownHome);
LogInfo($"复位{MoveInfo.SLog}:升降轴原点返回"); LogInfo($"复位{MoveInfo.SLog}:升降轴原点返回");
UpdownAxis.HomeMove(MoveInfo); UpdownAxis.HomeMove(MoveInfo);
} }
else
{
IR06_UpdownToP1();
}
}
else if (MoveInfo.IsStep(StepEnum.IR05_UpdownHome)) else if (MoveInfo.IsStep(StepEnum.IR05_UpdownHome))
{ {
MoveInfo.NextMoveStep(StepEnum.IR06_UpdownToP1); IR06_UpdownToP1();
LogInfo($"复位{MoveInfo.SLog}:升降轴到P1:" + Config.Updown_P1 + ",夹爪原点返回");
UpdownAxis.AbsMove(MoveInfo, Config.Updown_P1, Config.Updown_P1_Speed);
if (Config.UseClampJaw.Equals(1))
{
ClampJaw.GoHome(MoveInfo);
}
} }
else if (MoveInfo.IsStep(StepEnum.IR06_UpdownToP1)) else if (MoveInfo.IsStep(StepEnum.IR06_UpdownToP1))
{ {
...@@ -242,6 +317,24 @@ namespace OnlineStore.DeviceLibrary ...@@ -242,6 +317,24 @@ namespace OnlineStore.DeviceLibrary
} }
} }
private void IR06_UpdownToP1()
{
MoveInfo.NextMoveStep(StepEnum.IR06_UpdownToP1);
LogInfo($"复位{MoveInfo.SLog}:升降轴到P1:" + Config.Updown_P1 + ",夹爪原点返回");
UpdownAxis.AbsMove(MoveInfo, Config.Updown_P1, Config.Updown_P1_Speed);
if (Config.UseClampJaw.Equals(1))
{
ClampJaw.GoHome(MoveInfo);
}
}
private void IR04_MiddleToP1()
{
MoveInfo.NextMoveStep(StepEnum.IR04_MiddleToP1);
LogInfo($"复位{MoveInfo.SLog}:旋转轴到待机点:" + Config.Middle_P1);
MiddleAxis.AbsMove(MoveInfo, Config.Middle_P1, Config.Middle_P1_Speed);
}
internal override void StopMove() internal override void StopMove()
{ {
//StopMove时设置状态为none //StopMove时设置状态为none
......
...@@ -49,7 +49,7 @@ namespace OnlineStore.XLRStore ...@@ -49,7 +49,7 @@ namespace OnlineStore.XLRStore
} }
else else
{ {
btnReset.Enabled = false; btnReset.Enabled = true;
} }
} }
catch (Exception ex) catch (Exception ex)
...@@ -97,7 +97,7 @@ namespace OnlineStore.XLRStore ...@@ -97,7 +97,7 @@ namespace OnlineStore.XLRStore
private void btnStart_Click(object sender, EventArgs e) private void btnStart_Click(object sender, EventArgs e)
{ {
moveBean.Reset(); moveBean.Reset(true);
LogUtil.info(moveBean.Name + "点击:" + btnReset.Text); LogUtil.info(moveBean.Name + "点击:" + btnReset.Text);
} }
......
...@@ -6,3 +6,12 @@ AA:第3和第4位存储机构A面或B面,AA或者BB ...@@ -6,3 +6,12 @@ AA:第3和第4位存储机构A面或B面,AA或者BB
04:第7和第8位表示抽屉在第几列 04:第7和第8位表示抽屉在第几列
01:第9和第10位表示在抽屉中的第几行 01:第9和第10位表示在抽屉中的第几行
02:第11和第12位表示在抽屉中的第几列 02:第11和第12位表示在抽屉中的第几列
批量轴回原点
如果旋转轴在暂存区,且在下暂存区,升降轴先到高位
旋转轴回待机点P1
升降轴回P1
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!