设备报警发生时整个设备停止工作。

master
lhiven 1 year ago
parent 45cefd5ada
commit 5457349137

@ -78,6 +78,7 @@ namespace Rs.MotionPlat.Commom
}
public static ETipButton ShowDialog(bool pause,ETipButton button, Dictionary<ETipButton, string> buttonText,int msgID, params string[] parameters)
{
Ops.Stop();
AlarmEntity ae = AlarmCollection.Get(msgID).Transform(parameters);
AlarmItem msg = new AlarmItem();
msg.Pause = pause;
@ -92,6 +93,7 @@ namespace Rs.MotionPlat.Commom
public static ETipButton ShowDialog(AlarmEntity alarmEntity,ETipButton button, Dictionary<ETipButton, string> buttonText,bool pause=true)
{
Ops.Stop();
AlarmItem msg = new AlarmItem();
msg.Pause = pause;
msg.NO = alarmEntity.AlarmID;

@ -155,7 +155,8 @@ namespace Rs.MotionPlat.Commom
MonitorSystemButton.Instance.Start();
TestCenter.Instance.Init();
DischargeFlow.Instance.Init();
TurnoverFlow.Instance.Init();
SysConfigParam.Update("EnableVirtuleBarCode", "False");

@ -72,8 +72,9 @@ namespace Rs.MotionPlat.Flow
/// <summary>
/// 排料流程
/// </summary>
public class DischargeFlow : BaseFlow
public class DischargeFlow
{
private Task mainTask;
private DischargeFlow() { }
private static DischargeFlow instance;
@ -137,9 +138,30 @@ namespace Rs.MotionPlat.Flow
/// </summary>
private int undoTaskNum = 0;
int scanNum = 0;
string logInfo = string.Empty;
string alarmInfo = string.Empty;
public override void Run()
private bool stop = true;
private bool run = true;
public void Init()
{
mainTask = new Task(Run);
mainTask.Start();
}
public void Deinit()
{
run = false;
}
private void Run()
{
while (run)
{
if(stop || !GlobalVar.DeviceIsAuto)
{
Thread.Sleep(10);
continue;
}
switch (flowStep)
{
case EDischargeFlowStep.:
@ -732,6 +754,7 @@ namespace Rs.MotionPlat.Flow
//alarmInfo = $"排料吸嘴{curNozzle.NozzleIndex}号取{curNozzle.FromIndex+1}号穴位产品失败,请处理";
alarmEntity = AlarmCollection.Get(AlarmConstID.tray).Transform(curNozzle.NozzleIndex, (curNozzle.FromIndex + 1));
flowStep = EDischargeFlowStep.;
Start();
break;
case ETipButton.No://结束上料
logInfo = GetClassName() + $"选择了结束上料,通知中控结束上料";
@ -1469,7 +1492,8 @@ namespace Rs.MotionPlat.Flow
break;
case ETipButton.Yes:
DischargeModuleGoSafePosFlow.Instance.GoSafePostion();
DischargeModuleGoSafePosFlow.Instance.Wait();
// DischargeModuleGoSafePosFlow.Instance.Wait();
Start();
break;
default:
break;
@ -1743,6 +1767,7 @@ namespace Rs.MotionPlat.Flow
logInfo = GetClassName() + "选择了移动到安全位按钮";
MessageQueue.Instance.Insert(logInfo);
DischargeModuleGoSafePosFlow.Instance.GoSafePostion();
Start();
break;
}
}
@ -1823,7 +1848,8 @@ namespace Rs.MotionPlat.Flow
logInfo = GetClassName() + $"选择了移动到安全位";
MessageQueue.Instance.Insert(logInfo);
DischargeModuleGoSafePosFlow.Instance.GoSafePostion();
DischargeModuleGoSafePosFlow.Instance.Wait();
//DischargeModuleGoSafePosFlow.Instance.Wait();
Start();
break;
default:
break;
@ -1869,6 +1895,7 @@ namespace Rs.MotionPlat.Flow
logInfo = GetClassName() + "选择了移动到安全位按钮";
MessageQueue.Instance.Insert(logInfo);
DischargeModuleGoSafePosFlow.Instance.GoSafePostion();
Start();
break;
}
}
@ -2156,6 +2183,20 @@ namespace Rs.MotionPlat.Flow
}
}
}
public void Start()
{
stop = false;
}
public void Stop()
{
stop = true;
}
private string GetClassName()
{
return "DischargeFlow_";
}
/// <summary>
/// 判断排料轴是否可以干其他的活
/// </summary>
@ -2567,6 +2608,14 @@ namespace Rs.MotionPlat.Flow
LogHelper.Debug(GetClassName() + $"{prefixLog}当前位置:cx:{Ops.GetCurPosition(AxisControl.LoadX)},cy:{Ops.GetCurPosition(AxisControl.LoadY)}");
}
public void VirtualAxisSleep()
{
if (GlobalVar.VirtualAxis)
{
Thread.Sleep(GlobalVar.VirtualAxisMoveTime);
}
}
///// <summary>
///// 检测XY是否在目标位置上
///// </summary>

@ -113,8 +113,10 @@ namespace Rs.MotionPlat.Flow
/// <summary>
/// 周转流程
/// </summary>
public class TurnoverFlow : BaseFlow
public class TurnoverFlow
{
private Task mainTask;
/// <summary>
/// 周转盘取料是否完成
/// </summary>
@ -170,7 +172,22 @@ namespace Rs.MotionPlat.Flow
double targetTurnoverY = 0.0;
double targetTurnoverZ = 0.0;
double targetPressZ = 0.0;
string logInfo = string.Empty;
string alarmInfo = string.Empty;
Stopwatch timeStatistics = new Stopwatch();
bool stop = true;
bool run = true;
public void Init()
{
mainTask = new Task(Run);
mainTask.Start();
}
public void Deinit()
{
run = false;
}
/// <summary>
/// 可以下料到周转盘
/// </summary>
@ -189,8 +206,15 @@ namespace Rs.MotionPlat.Flow
/// 获取未执行的任务
/// </summary>
private List<TurnoverInfo> undealTasks = new List<TurnoverInfo>();
public override void Run()
public void Run()
{
while (run)
{
if(stop || !GlobalVar.DeviceIsAuto)
{
Thread.Sleep(10);
continue;
}
switch (Step)
{
case ETurnoverFlowStep.:
@ -284,6 +308,7 @@ namespace Rs.MotionPlat.Flow
logInfo = GetClassName() + "选择了移动到安全位";
MessageQueue.Instance.Insert(logInfo);
DischargeModuleGoSafePosFlow.Instance.GoSafePostion();
Start();
break;
default:
break;
@ -468,6 +493,7 @@ namespace Rs.MotionPlat.Flow
logInfo = $"选择了移动到安全位";
MessageQueue.Instance.Insert(logInfo);
TransitModuleSafePosFlow.Instance.GoSafePostion(EExceptionSafePos.TurnoverTray);
Start();
break;
default:
break;
@ -889,6 +915,7 @@ namespace Rs.MotionPlat.Flow
logInfo = GetClassName() + $"点击了移动到安全位按钮";
MessageQueue.Instance.Insert(logInfo);
TransitModuleSafePosFlow.Instance.GoSafePostion(EExceptionSafePos.TransitNozzle);
Start();
break;
default:
break;
@ -1202,6 +1229,7 @@ namespace Rs.MotionPlat.Flow
case ETipButton.Yes:
MessageQueue.Instance.Insert(GetClassName() + $"点击了移动到安全位按钮");
TransitModuleSafePosFlow.Instance.GoSafePostion(EExceptionSafePos.TransitNozzle);
Start();
break;
default:
break;
@ -1279,6 +1307,7 @@ namespace Rs.MotionPlat.Flow
LogHelper.Debug($"治具穴位{nozzle.NozzleIndex}光钎异常");
TransitModuleSafePosFlow.Instance.GoSafePostion(EExceptionSafePos.SocketFrom9ToSixteen);
}
Start();
break;
}
}
@ -1309,6 +1338,7 @@ namespace Rs.MotionPlat.Flow
LogHelper.Debug($"治具穴位{nozzle.NozzleIndex}光钎异常");
TransitModuleSafePosFlow.Instance.GoSafePostion(EExceptionSafePos.SocketFrom9ToSixteen);
}
Start();
break;
}
}
@ -1373,6 +1403,7 @@ namespace Rs.MotionPlat.Flow
LogHelper.Debug($"治具穴位{nozzle.NozzleIndex}真空异常");
TransitModuleSafePosFlow.Instance.GoSafePostion(EExceptionSafePos.SocketFrom9ToSixteen);
}
Start();
break;
}
}
@ -1402,6 +1433,7 @@ namespace Rs.MotionPlat.Flow
LogHelper.Debug($"治具穴位{nozzle.NozzleIndex}真空异常");
TransitModuleSafePosFlow.Instance.GoSafePostion(EExceptionSafePos.SocketFrom9ToSixteen);
}
Start();
break;
}
}
@ -1796,6 +1828,7 @@ namespace Rs.MotionPlat.Flow
{
TransitModuleSafePosFlow.Instance.GoSafePostion(EExceptionSafePos.SocketFrom9ToSixteen);
}
Start();
break;
}
}
@ -1825,6 +1858,7 @@ namespace Rs.MotionPlat.Flow
{
TransitModuleSafePosFlow.Instance.GoSafePostion(EExceptionSafePos.SocketFrom9ToSixteen);
}
Start();
break;
}
}
@ -1869,6 +1903,7 @@ namespace Rs.MotionPlat.Flow
case ETipButton.Yes://移动到安全位
VacManager.TestTrayVacSuction(EVacOperator.Close, true, slot.Index);
TransitModuleSafePosFlow.Instance.GoSafePostion(EExceptionSafePos.Socket);
Start();
break;
}
}
@ -1890,6 +1925,7 @@ namespace Rs.MotionPlat.Flow
case ETipButton.Yes://移动到安全位
VacManager.TestTrayVacSuction(EVacOperator.Close, true, slot.Index);
TransitModuleSafePosFlow.Instance.GoSafePostion(EExceptionSafePos.Socket);
Start();
break;
}
}
@ -2087,6 +2123,7 @@ namespace Rs.MotionPlat.Flow
logInfo = GetClassName() + $"选择了移动到安全位按钮";
MessageQueue.Instance.Insert(logInfo);
TransitModuleSafePosFlow.Instance.GoSafePostion(EExceptionSafePos.SocketTakeFail);
Start();
//if (testedSlots.Select(ts => (ts.Index >= 9 && ts.Index <= 16)).Count() > 0)
//{
// TransitModuleSafePosFlow.Instance.GoSafePostion(EExceptionSafePos.SocketFrom9ToSixteen);
@ -2146,6 +2183,7 @@ namespace Rs.MotionPlat.Flow
{
TransitModuleSafePosFlow.Instance.GoSafePostion(EExceptionSafePos.Socket);
}
Start();
break;
default:
break;
@ -2555,6 +2593,7 @@ namespace Rs.MotionPlat.Flow
logInfo = GetClassName() + $"点击了移动到安全位按钮";
MessageQueue.Instance.Insert(logInfo);
TransitModuleSafePosFlow.Instance.GoSafePostion(EExceptionSafePos.TransitNozzle);
Start();
break;
default:
break;
@ -2865,6 +2904,7 @@ namespace Rs.MotionPlat.Flow
logInfo = GetClassName() + "点击了移动到安全位按钮";
MessageQueue.Instance.Insert(logInfo);
TransitModuleSafePosFlow.Instance.GoSafePostion(EExceptionSafePos.TransitNozzle);
Start();
break;
default:
break;
@ -2967,6 +3007,7 @@ namespace Rs.MotionPlat.Flow
logInfo = GetClassName() + "选择了移动到安全位";
MessageQueue.Instance.Insert(logInfo);
DischargeModuleGoSafePosFlow.Instance.GoSafePostion();
Start();
break;
default:
break;
@ -3127,6 +3168,20 @@ namespace Rs.MotionPlat.Flow
}
}
}
public void Start()
{
stop = false;
}
public void Stop()
{
stop = true;
}
public string GetClassName()
{
return "TurnoverFlow_";
}
public bool LoadFinished()
{
return loadOk;

@ -60,11 +60,11 @@ namespace Rs.MotionPlat.Flow.SafePosFlow
step = EDischargeModuleGoSafePosFlowStep.;
while (true && !finished)
{
if (MachineManage.Instance.MachineStatus == EMachineStatus.Stop)
{
Thread.Sleep(10);
continue;
}
//if (MachineManage.Instance.MachineStatus == EMachineStatus.Stop)
//{
// Thread.Sleep(10);
// continue;
//}
switch (step)
{
case EDischargeModuleGoSafePosFlowStep.:

@ -78,11 +78,11 @@ namespace Rs.MotionPlat.Flow.SafePosFlow
}
while (!finished)
{
if (MachineManage.Instance.MachineStatus == EMachineStatus.Stop)
{
Thread.Sleep(10);
continue;
}
//if (MachineManage.Instance.MachineStatus == EMachineStatus.Stop)
//{
// Thread.Sleep(10);
// continue;
//}
switch (step)
{
case ETransitModuleSafePosFlowStep.Z:

@ -31,6 +31,6 @@ using System.Runtime.InteropServices;
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
[assembly: AssemblyVersion("3.20.24.13")]
[assembly: AssemblyVersion("3.20.24.14")]
//[assembly: AssemblyVersion("1.0.0.0")]
//[assembly: AssemblyFileVersion("1.0.0.0")]

Loading…
Cancel
Save