diff --git a/Rs.DeweyTester/Entitys/AlarmEntity.cs b/Rs.DeweyTester/Entitys/AlarmEntity.cs
index f10ceea..f448f38 100644
--- a/Rs.DeweyTester/Entitys/AlarmEntity.cs
+++ b/Rs.DeweyTester/Entitys/AlarmEntity.cs
@@ -24,6 +24,7 @@ namespace Rs.MotionPlat.Entitys
public static void Load()
{
alarmDic.Clear();
+ names2id2.Clear();
XSSFWorkbook book;
FileStream fs = File.Open("报警文本.xlsx", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
book = new XSSFWorkbook(fs);
@@ -144,6 +145,25 @@ namespace Rs.MotionPlat.Entitys
Msg.ShowError("Alarm file cann't find 系统异常报警 item");
}
}
+
+ public static void ShowMsg(int alarmID,Action act)
+ {
+ while (true)
+ {
+ AlarmEntity alarmEntity = AlarmCollection.Get(alarmID);
+ if (alarmEntity != null)
+ {
+ Msgbox.ShowDialog(alarmEntity, EButtonType.Retry, true);
+ act.Invoke();
+ break;
+ }
+ else
+ {
+ Msg.ShowError($"The alarmID = {alarmID} was not found in the translation file.");
+ AlarmCollection.Load();
+ }
+ }
+ }
}
public class AlarmEntity
{
diff --git a/Rs.DeweyTester/Flow/NormalFlow/StockFlowBase.cs b/Rs.DeweyTester/Flow/NormalFlow/StockFlowBase.cs
index bf54cf0..902608b 100644
--- a/Rs.DeweyTester/Flow/NormalFlow/StockFlowBase.cs
+++ b/Rs.DeweyTester/Flow/NormalFlow/StockFlowBase.cs
@@ -110,11 +110,11 @@ namespace Rs.MotionPlat.Flow.NormalFlow
}
else if (stopwatch.ElapsedMilliseconds > 5000)
{
- Msgbox.ShowTipDialog(EButtonType.Retry, "抽屉锁原位异常,请处理后点击重试","error",true);
+ Msgbox.ShowTipDialog(EButtonType.Retry, "抽屉锁原位异常,请处理后点击重试", "error", true);
}
break;
case EOutStockFlowStep.到出仓位:
- if(StockIndex==1)
+ if (StockIndex == 1)
{
targetPosition.StockZ = GlobalVar.StockZ1OutStock;
}
@@ -185,7 +185,7 @@ namespace Rs.MotionPlat.Flow.NormalFlow
///
/// 进仓
///
- public void InStock(bool gotoStartPos=true)
+ public void InStock(bool gotoStartPos = true)
{
if (inStockFinished)
{
@@ -211,7 +211,7 @@ namespace Rs.MotionPlat.Flow.NormalFlow
}
else if (stopwatch.ElapsedMilliseconds > 20000)
{
- Msgbox.ShowTipDialog(EButtonType.Retry, "抽屉锁原位异常,请处理后点击重试","error",true);
+ Msgbox.ShowTipDialog(EButtonType.Retry, "抽屉锁原位异常,请处理后点击重试", "error", true);
}
break;
case EInStockFlowStep.等待进仓信号:
@@ -234,7 +234,7 @@ namespace Rs.MotionPlat.Flow.NormalFlow
else if (stopwatch.ElapsedMilliseconds > 10000)
{
AlarmEntity alarmEntity = AlarmCollection.Get(AlarmConstID.抽屉拉伸气缸原位异常).Transform(StockIndex);
- Msgbox.ShowDialog(alarmEntity, EButtonType.Recheck);
+ Msgbox.ShowDialog(alarmEntity, EButtonType.Recheck, true);
inStockStep = EInStockFlowStep.进仓;
}
@@ -248,7 +248,7 @@ namespace Rs.MotionPlat.Flow.NormalFlow
if (Ops.IsOn($"抽屉锁{StockIndex}动位"))
{
ResetLayer();
- if(gotoStartPos)
+ if (gotoStartPos)
{
inStockStep = EInStockFlowStep.到起始位;
}
@@ -285,13 +285,13 @@ namespace Rs.MotionPlat.Flow.NormalFlow
public void Up()
{
- if(CurrentLayer==1)
+ if (CurrentLayer == 0)
{
- logInfo = $"{GetClassName()} 料仓{StockIndex}已处于第一层,不能再上升";
+ logInfo = $"{GetClassName()} 料仓{StockIndex}已处于第{CurrentLayer}层,不能再上升";
MessageQueue.Instance.Warn(logInfo);
return;
}
- if(Ops.IsOn($"料仓夹磁气缸{StockIndex}动位"))
+ if (Ops.IsOn($"料仓夹磁气缸{StockIndex}动位"))
{
ReleaseTray();
}
@@ -311,11 +311,11 @@ namespace Rs.MotionPlat.Flow.NormalFlow
Thread.Sleep(500);
logInfo = $"{GetClassName()} 料仓{StockIndex}已运动到{CurrentLayer}层,cz:{Ops.GetCurPosition($"StockZ{StockIndex}")}";
MessageQueue.Instance.Insert(logInfo);
- if (HasTray())
- {
- ClampTray();
- Thread.Sleep(GlobalVar.StepMotorMoveDelayTime);
- }
+ //if (HasTray())
+ //{
+ // ClampTray();
+ // Thread.Sleep(GlobalVar.StepMotorMoveDelayTime);
+ //}
break;
}
else if (stopwatch.ElapsedMilliseconds > 5000)
@@ -329,7 +329,7 @@ namespace Rs.MotionPlat.Flow.NormalFlow
public void Down()
{
- if(CurrentLayer==20)
+ if (CurrentLayer == 20)
{
return;
}
@@ -362,21 +362,21 @@ namespace Rs.MotionPlat.Flow.NormalFlow
///
public void ReleaseTray()
{
- StockModule.ClampTrayCylinder(EIoOperate.Open, StockIndex,GetClassName());
+ StockModule.ClampTrayCylinder(EIoOperate.Open, StockIndex, GetClassName());
stopwatch.Restart();
while (true)
{
- if(Ops.IsOn($"料仓夹磁气缸{StockIndex}原位"))
+ if (Ops.IsOn($"料仓夹磁气缸{StockIndex}原位"))
{
Thread.Sleep(1000);
break;
}
- else if(stopwatch.ElapsedMilliseconds>30000)
+ else if (stopwatch.ElapsedMilliseconds > 30000)
{
AlarmEntity alarmEntity = AlarmCollection.Get($"料仓{StockIndex}夹磁气缸原位异常");
- if(alarmEntity != null )
+ if (alarmEntity != null)
{
- Msgbox.ShowDialog(alarmEntity, EButtonType.Retry);
+ Msgbox.ShowDialog(alarmEntity, EButtonType.Retry, true);
StockModule.ClampTrayCylinder(EIoOperate.Open, StockIndex, GetClassName());
stopwatch.Restart();
}
@@ -384,7 +384,7 @@ namespace Rs.MotionPlat.Flow.NormalFlow
{
Msg.ShowError($"翻译文件中未找到 料仓{StockIndex}夹磁气缸原位异常");
}
-
+
}
}
}
@@ -408,9 +408,9 @@ namespace Rs.MotionPlat.Flow.NormalFlow
else if (stopwatch.ElapsedMilliseconds > 30000)
{
AlarmEntity alarmEntity = AlarmCollection.Get($"料仓{StockIndex}夹磁气缸动位异常");
- if(alarmEntity != null )
+ if (alarmEntity != null)
{
- Msgbox.ShowDialog(alarmEntity, EButtonType.Retry);
+ Msgbox.ShowDialog(alarmEntity, EButtonType.Retry, true);
StockModule.ClampTrayCylinder(EIoOperate.Close, StockIndex, GetClassName());
stopwatch.Restart();
}
@@ -453,7 +453,7 @@ namespace Rs.MotionPlat.Flow.NormalFlow
///
private double GetStockZPosByLayer(int layer)
{
- return (GetFirstLayerPos()- ((CurrentLayer - 1) * TrayHeight));
+ return (GetFirstLayerPos() - ((CurrentLayer - 1) * TrayHeight));
}
///
diff --git a/Rs.DeweyTester/Flow/NormalFlow/TakeTrayFlow.cs b/Rs.DeweyTester/Flow/NormalFlow/TakeTrayFlow.cs
index ab65d4b..4511118 100644
--- a/Rs.DeweyTester/Flow/NormalFlow/TakeTrayFlow.cs
+++ b/Rs.DeweyTester/Flow/NormalFlow/TakeTrayFlow.cs
@@ -25,6 +25,7 @@ namespace Rs.MotionPlat.Flow
到取料盘上方,
等待到取料盘上方,
等待料盘准备就绪,
+ 到下方取料位,
等待运动到取料位下方,
//等待夹磁气缸松开,
取料盘完成抬起,
@@ -76,7 +77,7 @@ namespace Rs.MotionPlat.Flow
{
get
{
- if(intance == null)
+ if (intance == null)
intance = new TakeTrayFlow();
return intance;
}
@@ -98,7 +99,7 @@ namespace Rs.MotionPlat.Flow
///
///
/// 放料盘拍照
- public void Take(ETrayType fromTray, ETrayType toTray,bool isNeedGoDown=true,bool placeTrayGrab=false)
+ public void Take(ETrayType fromTray, ETrayType toTray, bool isNeedGoDown = true, bool placeTrayGrab = false)
{
switch (fromTray)
{
@@ -144,175 +145,252 @@ namespace Rs.MotionPlat.Flow
switch (step)
{
case ETakeTrayFlowStep.到取料盘上方:
- if(fromTray== ETrayType.Empty)
+ try
{
- targetPosition.TakeTrayX = GlobalVar.EmptyStockGrabPos + GlobalVar.ClampCenter2CameraCenterDist;
- }
- else if(fromTray== ETrayType.Input)
- {
- targetPosition.TakeTrayX = GlobalVar.InputStockGrabPos + GlobalVar.ClampCenter2CameraCenterDist;
+ if (fromTray == ETrayType.Empty)
+ {
+ targetPosition.TakeTrayX = GlobalVar.EmptyStockGrabPos + GlobalVar.ClampCenter2CameraCenterDist;
+ }
+ else if (fromTray == ETrayType.Input)
+ {
+ targetPosition.TakeTrayX = GlobalVar.InputStockGrabPos + GlobalVar.ClampCenter2CameraCenterDist;
+ }
+ else
+ {
+ Msg.ShowError($"cann't from take tray from {fromTray}");
+ return;
+ }
+ if (GroupAxisMove.TakeXMove(GetClassName(), targetPosition.TakeTrayX, GlobalVar.WholeSpeed))
+ {
+ if (GlobalVar.VirtualAxis)
+ {
+ Thread.Sleep(GlobalVar.VirtualAxisMoveTime);
+ }
+ AxisPosPrint.PrintTakeTrayXTargetPos($"准备运动到料仓{m_fromTray}取料盘位上方", targetPosition, GetClassName());
+ step = ETakeTrayFlowStep.等待到取料盘上方;
+ }
}
- else
+ catch (Exception ex)
{
- Msg.ShowError($"cann't from take tray from {fromTray}");
- return ;
+ AlarmCollection.SystemExceptionAlarm(ex);
}
- if(GroupAxisMove.TakeXMove(GetClassName(), targetPosition.TakeTrayX, GlobalVar.WholeSpeed))
+
+ break;
+ case ETakeTrayFlowStep.等待到取料盘上方:
+ try
{
- if (GlobalVar.VirtualAxis)
+ if (Ops.IsStop("TakeTrayX") || GlobalVar.VirtualAxis)
{
- Thread.Sleep(GlobalVar.VirtualAxisMoveTime);
+ if (fromTray == ETrayType.Empty)
+ {
+ StockManager.CloseTray(fromStockIndex);
+ }
+ AxisPosPrint.PrintTakeTrayXCurrentPos($"已运动到料仓{m_fromTray}取料盘位上方", GetClassName());
+ //松开夹爪
+ StockManager.OpenTray(fromStockIndex);
+ step = ETakeTrayFlowStep.等待料盘准备就绪;
}
- AxisPosPrint.PrintTakeTrayXTargetPos($"准备运动到料仓{m_fromTray}取料盘位上方", targetPosition, GetClassName());
- step = ETakeTrayFlowStep.等待到取料盘上方;
}
+ catch (Exception ex)
+ {
+ AlarmCollection.SystemExceptionAlarm(ex);
+ }
+
break;
- case ETakeTrayFlowStep.等待到取料盘上方:
- if (Ops.IsStop("TakeTrayX") || GlobalVar.VirtualAxis)
+
+ case ETakeTrayFlowStep.等待料盘准备就绪:
+ try
{
- if(fromTray== ETrayType.Empty)
+ if (Ops.IsOn($"满料{fromStockIndex}对射光电"))
{
- StockManager.CloseTray(fromStockIndex);
+ logInfo = GetClassName() + $"料仓{m_fromTray}料盘准备就绪";
+ MessageQueue.Instance.Insert(logInfo);
+
+ step = ETakeTrayFlowStep.上升一层;
+ //step = ETakeTrayFlowStep.等待运动到取料位下方;
+ }
+ else
+ {
+ alarmEntity = AlarmCollection.Get(AlarmConstID.料仓无料盘报警).Transform(fromTray);
+ Msgbox.ShowDialog(alarmEntity, EButtonType.Retry, true);
}
- AxisPosPrint.PrintTakeTrayXCurrentPos($"已运动到料仓{m_fromTray}取料盘位上方", GetClassName());
- step = ETakeTrayFlowStep.等待料盘准备就绪;
}
+ catch (Exception ex)
+ {
+ AlarmCollection.SystemExceptionAlarm(ex);
+ }
+
break;
- case ETakeTrayFlowStep.等待料盘准备就绪:
- if (Ops.IsOn($"满料{fromStockIndex}对射光电"))
+ case ETakeTrayFlowStep.上升一层:
+ try
{
- logInfo = GetClassName() + $"料仓{m_fromTray}料盘准备就绪";
+ StockManager.Up(fromStockIndex);
+ logInfo = GetClassName() + $"料仓{fromTray}上升一层";
MessageQueue.Instance.Insert(logInfo);
- TakeTrayModule.CylinderGoDown(GetClassName());
- stopwatch.Restart();
- step = ETakeTrayFlowStep.等待运动到取料位下方;
+ step = ETakeTrayFlowStep.到下方取料位;
}
- else
+ catch (Exception ex)
{
- alarmEntity = AlarmCollection.Get(AlarmConstID.料仓无料盘报警).Transform(fromTray);
- Msgbox.ShowDialog(alarmEntity, EButtonType.Retry);
+ AlarmCollection.SystemExceptionAlarm(ex);
}
+
break;
- case ETakeTrayFlowStep.等待运动到取料位下方:
- if (Ops.IsOn("料盘搬运气缸动位"))
+ case ETakeTrayFlowStep.到下方取料位:
{
- logInfo = GetClassName() + $"料盘搬运气缸动位 OK";
- MessageQueue.Instance.Insert(logInfo);
- stopwatch.Stop();
- //打开真空
- TakeTrayModule.VacOperation(EIoOperate.Open,GetClassName());
- //松开夹爪
- //StockModule.ClampTrayCylinder(EIoOperate.Open, fromStockIndex,GetClassName());
- StockManager.OpenTray(fromStockIndex);
+ TakeTrayModule.CylinderGoDown(GetClassName());
stopwatch.Restart();
- step = ETakeTrayFlowStep.取料盘完成抬起;
+ step = ETakeTrayFlowStep.等待运动到取料位下方;
}
- else if (stopwatch.ElapsedMilliseconds > 5000)
+ break;
+ case ETakeTrayFlowStep.等待运动到取料位下方:
+ try
{
- alarmEntity = AlarmCollection.Get(AlarmConstID.料盘搬运气缸动位异常);
- if (alarmEntity != null)
+ if (Ops.IsOn("料盘搬运气缸动位"))
{
- Msgbox.ShowDialog (alarmEntity, EButtonType.Retry);
- step = ETakeTrayFlowStep.等待运动到取料位下方;
+ logInfo = GetClassName() + $"料盘搬运气缸动位 OK";
+ MessageQueue.Instance.Insert(logInfo);
+ stopwatch.Stop();
+ //打开真空
+ TakeTrayModule.VacOperation(EIoOperate.Open, GetClassName());
+ StockManager.CloseTray(fromStockIndex);
+ //stopwatch.Restart();
+ step = ETakeTrayFlowStep.取料盘完成抬起;
}
- else
+ else if (stopwatch.ElapsedMilliseconds > 5000)
{
- Msg.ShowError("翻译文件中未找到料盘搬运气缸动位异常");
+ AlarmCollection.ShowMsg(AlarmConstID.料盘搬运气缸动位异常, () => { step = ETakeTrayFlowStep.等待运动到取料位下方; });
+ //alarmEntity = AlarmCollection.Get(AlarmConstID.料盘搬运气缸动位异常);
+ //if (alarmEntity != null)
+ //{
+ // Msgbox.ShowDialog(alarmEntity, EButtonType.Retry, true);
+ // step = ETakeTrayFlowStep.等待运动到取料位下方;
+ //}
+ //else
+ //{
+ // Msg.ShowError("翻译文件中未找到料盘搬运气缸动位异常");
+ //}
+ //stopwatch.Restart();
}
- stopwatch.Restart();
+ }
+ catch (Exception ex)
+ {
+ AlarmCollection.SystemExceptionAlarm(ex);
}
break;
- //case ETakeTrayFlowStep.等待夹磁气缸松开:
- // if(Ops.IsOn($"料仓夹磁气缸{fromStockIndex}原位"))
- // {
- // step = ETakeTrayFlowStep.取料盘完成抬起;
- // }
- // else if(stopwatch.ElapsedMilliseconds>5000)
- // {
- // alarmEntity = AlarmCollection.Get($"料仓{fromStockIndex}夹磁气缸原位异常");
- // if (alarmEntity != null)
- // {
- // Msgbox.ShowDialog(alarmEntity, EButtonType.Retry);
- // step = ETakeTrayFlowStep.等待夹磁气缸松开;
- // }
- // else
- // {
- // Msg.ShowError($"料仓{fromStockIndex}夹磁气缸原位异常");
- // }
- // stopwatch.Restart();
- // }
- // break;
case ETakeTrayFlowStep.取料盘完成抬起:
- TakeTrayModule.CylinderGoUp(GetClassName());
- stopwatch.Restart();
- step = ETakeTrayFlowStep.等待取料盘完成抬起;
- break;
- case ETakeTrayFlowStep.等待取料盘完成抬起:
- if ((Ops.IsOn("料盘搬运气缸原位")))
- {
- logInfo = GetClassName()+$"检测到上下气缸原位 OK";
- MessageQueue.Instance.Insert(logInfo);
- stopwatch.Stop();
- step = ETakeTrayFlowStep.料盘是否抓起检测;
- }
- else if(stopwatch.ElapsedMilliseconds > 5000)
{
- alarmEntity = AlarmCollection.Get(AlarmConstID.料盘搬运气缸原位异常);
- if (alarmEntity != null)
+ try
{
- MessageQueue.Instance.Warn(GetClassName() + alarmEntity.CN);
- Msgbox.ShowDialog(alarmEntity, EButtonType.Retry);
+ TakeTrayModule.CylinderGoUp(GetClassName());
+ stopwatch.Restart();
+ step = ETakeTrayFlowStep.等待取料盘完成抬起;
}
- else
+ catch (Exception ex)
{
- Msg.ShowError("翻译文件中未找到料盘搬运气缸原位异常");
+ AlarmCollection.SystemExceptionAlarm(ex);
}
- stopwatch.Restart();
}
break;
- case ETakeTrayFlowStep.料盘是否抓起检测:
- if (TakeTrayModule.HasTray())
+ case ETakeTrayFlowStep.等待取料盘完成抬起:
+ try
{
- logInfo = GetClassName() + $"料盘已被抓起 OK";
- MessageQueue.Instance.Insert(logInfo);
- if ( StockManager.GetCurrentLayer(fromStockIndex) == 1)
+ if ((Ops.IsOn("料盘搬运气缸原位")))
{
- step = ETakeTrayFlowStep.到放料盘上方;
+ logInfo = GetClassName() + $"检测到上下气缸原位 OK";
+ MessageQueue.Instance.Insert(logInfo);
+ stopwatch.Stop();
+ step = ETakeTrayFlowStep.料盘是否抓起检测;
}
- else
+ else if (stopwatch.ElapsedMilliseconds > 5000)
{
- step = ETakeTrayFlowStep.上升一层;
+ alarmEntity = AlarmCollection.Get(AlarmConstID.料盘搬运气缸原位异常);
+ if (alarmEntity != null)
+ {
+ MessageQueue.Instance.Warn(GetClassName() + alarmEntity.CN);
+ Msgbox.ShowDialog(alarmEntity, EButtonType.Retry, true);
+ }
+ else
+ {
+ Msg.ShowError("翻译文件中未找到料盘搬运气缸原位异常");
+ }
+ stopwatch.Restart();
}
}
- else
+ catch (Exception ex)
+ {
+ AlarmCollection.SystemExceptionAlarm(ex);
+ }
+
+ break;
+ case ETakeTrayFlowStep.料盘是否抓起检测:
+ try
{
- alarmEntity = AlarmCollection.Get(AlarmConstID.料盘未抓起报警).Transform(fromTray.ToString());
- if (alarmEntity != null)
+ if (TakeTrayModule.HasTray())
{
- Msgbox.ShowDialog(alarmEntity, EButtonType.Retry);
- step = ETakeTrayFlowStep.到取料盘上方;
+ logInfo = GetClassName() + $"料盘已被抓起 OK";
+ MessageQueue.Instance.Insert(logInfo);
+ if (fromTray == ETrayType.Input)
+ {
+ step = ETakeTrayFlowStep.上料仓拍照处理;
+ }
+ else
+ {
+ if (placeTrayGrab && GlobalVar.EnableBeforePlaceTrayToOkGrab)
+ {
+ step = ETakeTrayFlowStep.放料盘前拍照;
+ }
+ else
+ {
+ step = ETakeTrayFlowStep.到放料盘上方;
+ }
+ }
+ //if (StockManager.GetCurrentLayer(fromStockIndex) == 1)
+ //{
+ // step = ETakeTrayFlowStep.到放料盘上方;
+ //}
+ //else
+ //{
+ // step = ETakeTrayFlowStep.上升一层;
+ //}
}
else
{
- Msg.ShowError("翻译文件中未找到抓料盘未抓起");
+ alarmEntity = AlarmCollection.Get(AlarmConstID.料盘未抓起报警).Transform(fromTray.ToString());
+ if (alarmEntity != null)
+ {
+ Msgbox.ShowDialog(alarmEntity, EButtonType.Retry, true);
+ step = ETakeTrayFlowStep.到下方取料位;
+ }
+ else
+ {
+ Msg.ShowError("翻译文件中未找到抓料盘未抓起");
+ }
}
}
- break;
- case ETakeTrayFlowStep.上升一层:
- StockManager.Up(fromStockIndex);
- logInfo = GetClassName() + $"料仓{fromTray}上升一层";
- MessageQueue.Instance.Insert(logInfo);
- step = ETakeTrayFlowStep.等待上升一层完成;
- break;
- case ETakeTrayFlowStep.等待上升一层完成:
- if(fromTray== ETrayType.Input)
+ catch (Exception ex)
{
- step = ETakeTrayFlowStep.上料仓拍照处理;
+ AlarmCollection.SystemExceptionAlarm(ex);
}
- else
+
+ break;
+
+ //case ETakeTrayFlowStep.等待上升一层完成:
+ // try
+ // {
+
+ // }
+ // catch (Exception ex)
+ // {
+ // AlarmCollection.SystemExceptionAlarm(ex);
+ // }
+
+ // break;
+ case ETakeTrayFlowStep.上料仓拍照处理:
+ try
{
- if (placeTrayGrab && GlobalVar.EnableBeforePlaceTrayToOkGrab)
+ StockGrabFlow.Instance.Grab(fromTray);
+ if (placeTrayGrab)
{
step = ETakeTrayFlowStep.放料盘前拍照;
}
@@ -321,43 +399,45 @@ namespace Rs.MotionPlat.Flow
step = ETakeTrayFlowStep.到放料盘上方;
}
}
- break;
- case ETakeTrayFlowStep.上料仓拍照处理:
- StockGrabFlow.Instance.Grab(fromTray);
- if(placeTrayGrab)
+ catch (Exception ex)
{
- step = ETakeTrayFlowStep.放料盘前拍照;
+ AlarmCollection.SystemExceptionAlarm(ex);
}
- else
+
+ break;
+ case ETakeTrayFlowStep.放料盘前拍照:
+ try
{
+ StockGrabFlow.Instance.Grab(toTray);
step = ETakeTrayFlowStep.到放料盘上方;
}
- break;
- case ETakeTrayFlowStep.放料盘前拍照:
- StockGrabFlow.Instance.Grab(toTray);
- step = ETakeTrayFlowStep.到放料盘上方;
+ catch (Exception ex)
+ {
+ AlarmCollection.SystemExceptionAlarm(ex);
+ }
+
break;
case ETakeTrayFlowStep.到放料盘上方:
- //if (DischargeFlow.Instance.XYCanGoLocalArea())
+ try
{
- if(fromTray!= ETrayType.Input && toTray== ETrayType.Ok && GlobalVar.EnableOkTrayCheckFull)
+ if (fromTray != ETrayType.Input && toTray == ETrayType.Ok && GlobalVar.EnableOkTrayCheckFull)
{
Msgbox.ShowTipDialog(EButtonType.Ok, "please check product in tray has placed ok?", "Tip", true);
}
- if(toTray== ETrayType.Ok)
+ if (toTray == ETrayType.Ok)
{
targetPosition.TakeTrayX = GlobalVar.OkStockGrabPos + GlobalVar.ClampCenter2CameraCenterDist;
}
- else if(toTray== ETrayType.Input)
+ else if (toTray == ETrayType.Input)
{
targetPosition.TakeTrayX = GlobalVar.InputStockGrabPos + GlobalVar.ClampCenter2CameraCenterDist;
}
- else if(toTray== ETrayType.Empty)
+ else if (toTray == ETrayType.Empty)
{
targetPosition.TakeTrayX = GlobalVar.EmptyStockGrabPos + GlobalVar.ClampCenter2CameraCenterDist;
}
//takeTrayFinishedEvent?.Invoke();
- if(GroupAxisMove.TakeXMove(GetClassName(),targetPosition.TakeTrayX,GlobalVar.WholeSpeed))
+ if (GroupAxisMove.TakeXMove(GetClassName(), targetPosition.TakeTrayX, GlobalVar.WholeSpeed))
{
if (GlobalVar.VirtualAxis)
{
@@ -368,156 +448,216 @@ namespace Rs.MotionPlat.Flow
step = ETakeTrayFlowStep.等待到放料盘上方;
}
}
- //else
- //{
- // //alarmEntity = AlarmCollection.Get(AlarmConstID.运动不安全).Transform("LoadY", "TurnvoerY");
- // //AlarmMessageBox.ShowDialog(alarmEntity, ETipButton.Ok, null);
- //}
+ catch (Exception ex)
+ {
+ AlarmCollection.SystemExceptionAlarm(ex);
+ }
break;
case ETakeTrayFlowStep.等待到放料盘上方:
- if (Ops.IsStop("TakeTrayX") || GlobalVar.VirtualAxis)
- {
- //if(toTray== ETrayType.Empty)
- //{
- // if(StockManager.HasTray(3))
- // {
- // StockManager.Down(3);
- // }
- //}
- //StockManager.OpenTray(toStockIndex);
- logInfo = GetClassName() + $"已运动到{toTray}料仓放料盘上方";
- MessageQueue.Instance.Insert(logInfo);
- //arrivedDumpPosEvent?.Invoke();
- step = ETakeTrayFlowStep.到放料盘位下方;
+ try
+ {
+ if (Ops.IsStop("TakeTrayX") || GlobalVar.VirtualAxis)
+ {
+ //if(toTray== ETrayType.Empty)
+ //{
+ // if(StockManager.HasTray(3))
+ // {
+ // StockManager.Down(3);
+ // }
+ //}
+ //StockManager.OpenTray(toStockIndex);
+ logInfo = GetClassName() + $"已运动到{toTray}料仓放料盘上方";
+ MessageQueue.Instance.Insert(logInfo);
+ //arrivedDumpPosEvent?.Invoke();
+ step = ETakeTrayFlowStep.到放料盘位下方;
+ }
+ }
+ catch (Exception ex)
+ {
+ AlarmCollection.SystemExceptionAlarm(ex);
}
+
break;
case ETakeTrayFlowStep.到放料盘位下方:
//if ((StockManager.Instance.GetStock(m_toTray).Status == EStockTrayStatus.Unloaded || StockManager.Instance.GetStock(m_toTray).Status == EStockTrayStatus.Empty) || GlobalVar.VirtualAxis)
+ try
{
StockManager.OpenTray(toStockIndex);
TakeTrayModule.CylinderGoDown(GetClassName());
step = ETakeTrayFlowStep.等待运动到放料位下方;
stopwatch.Restart();
}
+ catch (Exception ex)
+ {
+ AlarmCollection.SystemExceptionAlarm(ex);
+ }
break;
case ETakeTrayFlowStep.等待运动到放料位下方:
- if (Ops.IsOn("料盘搬运气缸动位"))
+ try
{
- logInfo = GetClassName() + "检测到料盘搬运气缸动位 OK";
- MessageQueue.Instance.Insert(logInfo);
- stopwatch.Stop();
- //if(toTray!= ETrayType.Empty)
- //{
- // //夹住料盘
- // Ops.On($"料仓夹磁气缸{toStockIndex}夹");
- // Ops.Off($"料仓夹磁气缸{toStockIndex}开");
- // Thread.Sleep(100);
- //}
+ if (Ops.IsOn("料盘搬运气缸动位"))
+ {
+ logInfo = GetClassName() + "检测到料盘搬运气缸动位 OK";
+ MessageQueue.Instance.Insert(logInfo);
+ stopwatch.Stop();
+ //if(toTray!= ETrayType.Empty)
+ //{
+ // //夹住料盘
+ // Ops.On($"料仓夹磁气缸{toStockIndex}夹");
+ // Ops.Off($"料仓夹磁气缸{toStockIndex}开");
+ // Thread.Sleep(100);
+ //}
- ////关闭真空吸
- //Ops.On("料盘真空关");
- //Ops.Off("料盘真空开");
- //logInfo = GetClassName() + $"料盘真空关 on";
- //MessageQueue.Instance.Insert(logInfo);
- //Thread.Sleep(100);
- if(isNeedGoDown)
+ ////关闭真空吸
+ //Ops.On("料盘真空关");
+ //Ops.Off("料盘真空开");
+ //logInfo = GetClassName() + $"料盘真空关 on";
+ //MessageQueue.Instance.Insert(logInfo);
+ //Thread.Sleep(100);
+ //关闭真空吸
+ TakeTrayModule.VacOperation(EIoOperate.Close, GetClassName());
+ if (isNeedGoDown)
+ {
+ StockManager.Down(toStockIndex);
+ }
+ StockManager.CloseTray(toStockIndex);
+
+ step = ETakeTrayFlowStep.放料盘完成后抬起;
+ }
+ else if (stopwatch.ElapsedMilliseconds > 5000)
{
- StockManager.Down(toStockIndex);
+ alarmEntity = AlarmCollection.Get(AlarmConstID.上下气缸动位异常);
+ if (alarmEntity != null)
+ {
+ LogHelper.Debug(GetClassName() + alarmEntity.CN);
+ Msg.ShowError(alarmEntity.CN);
+ //AlarmMessageBox.ShowDialog(alarmEntity, ETipButton.Ok, null);
+ }
+ else
+ {
+ Msg.ShowError("翻译文件中未找到上下气缸动位");
+ }
+ stopwatch.Stop();
+ stopwatch.Restart();
}
- StockManager.CloseTray(toStockIndex);
- //关闭真空吸
- TakeTrayModule.VacOperation(EIoOperate.Close,GetClassName());
- step = ETakeTrayFlowStep.放料盘完成后抬起;
}
- else if(stopwatch.ElapsedMilliseconds>5000)
+ catch (Exception ex)
{
- alarmEntity = AlarmCollection.Get(AlarmConstID.上下气缸动位异常);
- if (alarmEntity != null)
- {
- LogHelper.Debug(GetClassName() + alarmEntity.CN);
- Msg.ShowError(alarmEntity.CN);
- //AlarmMessageBox.ShowDialog(alarmEntity, ETipButton.Ok, null);
- }
- else
- {
- Msg.ShowError("翻译文件中未找到上下气缸动位");
- }
- stopwatch.Stop();
- stopwatch.Restart();
+ AlarmCollection.SystemExceptionAlarm(ex);
}
+
break;
case ETakeTrayFlowStep.放料盘完成后抬起:
- TakeTrayModule.CylinderGoUp(GetClassName());
- step = ETakeTrayFlowStep.等待放料完成抬起;
- stopwatch.Restart();
- break;
- case ETakeTrayFlowStep.等待放料完成抬起:
- if (Ops.IsOn("料盘搬运气缸原位"))
+ try
{
- logInfo = GetClassName() + "料盘搬运气缸原位 OK";
- MessageQueue.Instance.Insert(logInfo);
- step = ETakeTrayFlowStep.放料完成后真空检测;
+ TakeTrayModule.CylinderGoUp(GetClassName());
+ step = ETakeTrayFlowStep.等待放料完成抬起;
+ stopwatch.Restart();
+ }
+ catch (Exception ex)
+ {
+ AlarmCollection.SystemExceptionAlarm(ex);
}
- else if(stopwatch.ElapsedMilliseconds>5000)
+
+ break;
+ case ETakeTrayFlowStep.等待放料完成抬起:
+ try
{
- alarmEntity = AlarmCollection.Get(AlarmConstID.上下气缸原位异常);
- if (alarmEntity != null)
+ if (Ops.IsOn("料盘搬运气缸原位"))
{
- LogHelper.Debug(GetClassName() + alarmEntity.CN);
- Msg.ShowError(alarmEntity.CN);
- //AlarmMessageBox.ShowDialog(alarmEntity, ETipButton.Ok, null);
+ logInfo = GetClassName() + "料盘搬运气缸原位 OK";
+ MessageQueue.Instance.Insert(logInfo);
+ step = ETakeTrayFlowStep.放料完成后真空检测;
}
- else
+ else if (stopwatch.ElapsedMilliseconds > 5000)
{
- Msg.ShowError("翻译文件中未找到上下气缸动位");
+ alarmEntity = AlarmCollection.Get(AlarmConstID.上下气缸原位异常);
+ if (alarmEntity != null)
+ {
+ LogHelper.Debug(GetClassName() + alarmEntity.CN);
+ Msg.ShowError(alarmEntity.CN);
+ //AlarmMessageBox.ShowDialog(alarmEntity, ETipButton.Ok, null);
+ }
+ else
+ {
+ Msg.ShowError("翻译文件中未找到上下气缸动位");
+ }
+ stopwatch.Stop();
+ stopwatch.Restart();
}
- stopwatch.Stop();
- stopwatch.Restart();
}
+ catch (Exception ex)
+ {
+ AlarmCollection.SystemExceptionAlarm(ex);
+ }
+
break;
case ETakeTrayFlowStep.放料完成后真空检测:
- if (!TakeTrayModule.HasTray())
+ try
{
- logInfo = GetClassName() + $"放料盘完成";
- MessageQueue.Instance.Insert(logInfo);
- step = ETakeTrayFlowStep.到待机位;
- if(toTray== ETrayType.Empty)
+ if (!TakeTrayModule.HasTray())
{
- StockManager.CloseTray(toStockIndex);
- StockManager.OpenTray(toStockIndex);
+ logInfo = GetClassName() + $"放料盘完成";
+ MessageQueue.Instance.Insert(logInfo);
+ step = ETakeTrayFlowStep.到待机位;
+ if (toTray == ETrayType.Empty)
+ {
+ StockManager.CloseTray(toStockIndex);
+ StockManager.OpenTray(toStockIndex);
+ }
+ //if (mLoadUnloadType == ELoadUnloadType.Load)
+ //{
+ // StockManager.Instance.Load(m_toTray, EStockTrayLoadMode.AfterTakeTray);
+ //}
+ }
+ else
+ {
+ step = ETakeTrayFlowStep.到放料盘上方;
+ //粘料盘
+ //logInfo = "检测到料盘未放下,请处理后点击确定重放";
+ //MessageQueue.Instance.Warn(GetClassName() + logInfo);
+ //TestCenterMessageBox.Show(AlarmConstID.UpDownCylinderExceptionAlarm, logInfo, ETipButton.Ok);
+ //TestCenterMessageBox.WaitResult(AlarmConstID.UpDownCylinderExceptionAlarm);
+ //step = ETakeTrayFlowStep.到放料盘上方;
}
- //if (mLoadUnloadType == ELoadUnloadType.Load)
- //{
- // StockManager.Instance.Load(m_toTray, EStockTrayLoadMode.AfterTakeTray);
- //}
}
- else
+ catch (Exception ex)
{
- step = ETakeTrayFlowStep.到放料盘上方;
- //粘料盘
- //logInfo = "检测到料盘未放下,请处理后点击确定重放";
- //MessageQueue.Instance.Warn(GetClassName() + logInfo);
- //TestCenterMessageBox.Show(AlarmConstID.UpDownCylinderExceptionAlarm, logInfo, ETipButton.Ok);
- //TestCenterMessageBox.WaitResult(AlarmConstID.UpDownCylinderExceptionAlarm);
- //step = ETakeTrayFlowStep.到放料盘上方;
+ AlarmCollection.SystemExceptionAlarm(ex);
}
+
break;
case ETakeTrayFlowStep.到待机位:
- if(GroupAxisMove.TakeXMove(GetClassName(), GlobalVar.TakeTrayXWaitPos, GlobalVar.WholeSpeed))
+ try
{
- logInfo = GetClassName() + $"到待机位";
- MessageQueue.Instance.Insert(logInfo);
- step = ETakeTrayFlowStep.等待运动到待机位;
+ if (GroupAxisMove.TakeXMove(GetClassName(), GlobalVar.TakeTrayXWaitPos, GlobalVar.WholeSpeed))
+ {
+ logInfo = GetClassName() + $"到待机位";
+ MessageQueue.Instance.Insert(logInfo);
+ step = ETakeTrayFlowStep.等待运动到待机位;
+ }
+ }
+ catch (Exception ex)
+ {
+ AlarmCollection.SystemExceptionAlarm(ex);
}
+
break;
case ETakeTrayFlowStep.等待运动到待机位:
- if(Ops.IsStop("TakeTrayX"))
+ try
{
- logInfo = GetClassName() + $"从{fromTray}搬运到{toTray}完成";
- MessageQueue.Instance.Insert(logInfo);
- TakeStatus = ETakeStatus.TakeOK;
- //dumpTrayFinishedEvent?.Invoke();
- finisehd = true;
+ if (Ops.IsStop("TakeTrayX"))
+ {
+ logInfo = GetClassName() + $"从{fromTray}搬运到{toTray}完成";
+ MessageQueue.Instance.Insert(logInfo);
+ TakeStatus = ETakeStatus.TakeOK;
+ //dumpTrayFinishedEvent?.Invoke();
+ finisehd = true;
+ }
+ }
+ catch (Exception ex)
+ {
+ AlarmCollection.SystemExceptionAlarm(ex);
}
break;
}