SicMultiplate/Modules/Mainframe/PMs/PMModuleInterlock.cs

40 lines
975 B
C#

using Aitex.Core.RT.OperationCenter;
using MECF.Framework.Common.OperationCenter;
namespace SicModules.PMs
{
public partial class PMModule
{
private void InitInterlock()
{
OP.AddCheck($"{Module}.{Name}.Disconnect", new CheckPlcConnect(this));
//OP.AddCheck($"{Module}.{Name}.Pump", new CheckPump(this));
}
private class CheckPlcConnect : IInterlockChecker
{
private PMModule _pm;
public CheckPlcConnect(PMModule pm)
{
_pm = pm;
}
public bool CanDo(out string reason, object[] args)
{
if (_pm.IsBusy)
{
reason = $"{_pm.Module} is in {_pm.StringFsmStatus} status, can not disconnect, should be idle";
return false;
}
reason = string.Empty;
return true;
}
}
}
}