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))
{ {
......
...@@ -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!