40 lines
975 B
C#
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;
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|