Sic.Framework-Nanjing-Baishi/MECF.Framework.Common/Aitex/Core/RT/IOCore/IInterlockLimit.cs

72 lines
2.0 KiB
C#
Raw Normal View History

namespace Aitex.Core.RT.IOCore;
/// <summary>
/// 互锁限制条件对象接口。
/// </summary>
public interface IInterlockLimit
{
/// <summary>
/// 返回互锁限制条件的唯一识别码。
/// <remarks>
/// 该唯一识别码用于创建字典时作为字典的Key值使用。
/// <br/>
/// 该值由Name+LimitValue组成。
/// </remarks>
/// </summary>
string UniqueId { get; }
/// <summary>
/// 返回互锁限制条件名称。
/// </summary>
string Name { get; }
/// <summary>
/// 返回互锁限制条件触发原因。
/// </summary>
string LimitReason { get; }
/// <summary>
/// 返回当前互锁条件提示信息。
/// </summary>
string Tip { get; }
/// <summary>
/// 判断两个互锁限制条件是否相等。
/// </summary>
/// <param name="interlockLimit">待比较的互锁限制条件。</param>
/// <returns>
/// <para>True: 相同False不同。</para>
/// </returns>
public bool IsSame(object interlockLimit);
/// <summary>
/// 返回互锁限制监测的信号当前值和期望值不相等的条件是否触发。
/// <remarks>
/// 捕获当前值和期望值不相等信号的上升沿当上升沿到达时触发输出Q。
/// </remarks>
/// </summary>
/// <returns></returns>
public bool IsTriggered();
/// <summary>
/// 根据互锁条件判断是否允许DO输出。
/// </summary>
/// <param name="reason">如果禁止DO输出返回互锁原因。</param>
/// <returns></returns>
public bool CanDo(out string reason);
/// <summary>
/// 获取指定互锁限制条件中限制条件的内容。
/// </summary>
/// <returns></returns>
public string GetLimitValue();
/// <summary>
/// 获取指定互锁限制条件中当前IO状态。
/// </summary>
/// <returns></returns>
public string GetCurrentValue();
}