You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

161 lines
4.6 KiB
C#

using Rs.AutoDischarge.V3.Flow;
using Rs.MotionPlat.Commom;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Rs.MotionPlat.Flow
{
public enum EStockType
{
Empty1=1,
Input,
Ok,
Ng,
Multi,
Empty2
}
public class StockManager
{
private static StockManager instance;
public static StockManager Instance
{
get
{
if(instance == null)
instance = new StockManager();
return instance;
}
}
TrayTest Empty1 = new TrayTest(1);
TrayTest Input = new TrayTest(2);
TrayTest Ok = new TrayTest(3);
TrayTest Ng = new TrayTest(4);
TrayTest Multi = new TrayTest(5);
TrayTest Empty2 = new TrayTest(6);
public void Start()
{
Empty1.Start();
Input.Start();
Ok.Start();
Ng.Start();
Multi.Start();
Empty2.Start();
}
public bool HasTray(EStockType stockType)
{
if (Ops.IsOff($"{(int)stockType}号料仓料盘到位光电检测"))
return false;
return true;
}
public List<EStockType> GetHasNotTrayStock()
{
List<EStockType> stockList = new List<EStockType>();
if (Ops.IsOff($"{(int)EStockType.Input}号料仓料盘到位光电检测"))
stockList.Add(EStockType.Input);
if (Ops.IsOff($"{(int)EStockType.Ok}号料仓料盘到位光电检测"))
stockList.Add(EStockType.Ok);
if (Ops.IsOff($"{(int)EStockType.Ng}号料仓料盘到位光电检测"))
stockList.Add(EStockType.Ng);
if (Ops.IsOff($"{(int)EStockType.Multi}号料仓料盘到位光电检测"))
stockList.Add(EStockType.Multi);
return stockList;
}
public bool IsReady()
{
return ((Input.Status == ETrayStatus.Loaded)
&& (Ok.Status == ETrayStatus.Loaded)
&& (Ng.Status == ETrayStatus.Loaded)
&& (Multi.Status == ETrayStatus.Loaded));
}
public void Stop()
{
Empty1.Stop();
Input.Stop();
Ok.Stop();
Ng.Stop();
Multi.Stop();
Empty2.Stop();
}
public void Load(EStockType stockType,bool bWholeLoad=true)
{
switch (stockType)
{
case EStockType.Empty1:
Empty1.Load(bWholeLoad);
break;
case EStockType.Input:
Input.Load(bWholeLoad);
break;
case EStockType.Ok:
Ok.Load(bWholeLoad);
break;
case EStockType.Ng:
Ng.Load(bWholeLoad);
break;
case EStockType.Multi:
Multi.Load(bWholeLoad);
break;
case EStockType.Empty2:
Empty2.Load(bWholeLoad);
break;
}
}
public void UnLoad(EStockType stockType)
{
switch (stockType)
{
case EStockType.Empty1:
Empty1.Unload();
break;
case EStockType.Input:
Input.Unload();
break;
case EStockType.Ok:
Ok.Unload();
break;
case EStockType.Ng:
Ng.Unload();
break;
case EStockType.Multi:
Multi.Unload();
break;
case EStockType.Empty2:
Empty2.Unload();
break;
}
}
public ETrayStatus GetStockStatus(EStockType stockType)
{
switch (stockType)
{
case EStockType.Empty1:
return Empty1.Status;
case EStockType.Input:
return Input.Status;
case EStockType.Ok:
return Ok.Status;
case EStockType.Ng:
return Ng.Status;
case EStockType.Multi:
return Multi.Status;
case EStockType.Empty2:
return Empty2.Status;
}
return ETrayStatus.UnKnown;
}
}
}