简单的控制点状态
对于简单的control point(NullProxyExt),只有以下状态标志可以被设置和清除:
• alarm
根据其在报警扩展(alarm extension)中的定义,Point当前处于报警状态。
• unackedAlarm
请看下图中关于简单的control point中的override和alarm status的示例。

图1 简单control point的状态
Propagate Flags状态选项(连接到Math和Logic 对象)
默认情况下,kitControl对象可以保持状态标志不受输入上连接的对象的影响。然而,作为math或logic类型的kitControl对象(kitControl 调色板文件夹“Math”和“Logic”)中的配置选项,您可以指定从输入状态传播的“out”状态。
对象的PropagateFlags属性允许您选择以下状态类型的任意组合进行传播:
• disabled
• fault
• down
• alarm
• overridden
注意:如果math或logic 对象具有多个输入,并且您在propagateFlags属性设置时选择了一个或多个上述状态,那么就会在所有输入中使用简单的“OR(或)”逻辑,从而传播所选的每个状态。
根据使用情况,状态传播可能非常广泛。注意,以上五种状态类型中有三种(除了alarm和overridden以外的所有状态类型)都是“无效状态”,这意味着它们会导致对象的输出(如果已经连接)在其最终目标上被视为无效。
作为状态传播的一个例子,用一些NumericWritable points来创建设置点,并且将它们都连接到后面的Math:Average对象。按顺序,Average对象将会馈送给一个Math:Reset对象。两种math对象在其“propagateFlags”属性当中都启用了“override”。如果用户将会向NumericWritable points发出一个override(动作),来覆盖这个设置点。

图2 连接了writablepoints,kitControl 对象中的状态传播(status propagation)
在override期间,连接的Average对象也将具有一个overriden状态,就像后面的Reset对象一样,等等。然而,注意在本例中连接的writable point(NWcombined)不具有overriden状态 – 因而状态决不会传播到任何其它point。
注意:在一个实际项目中,使用该项功能之前,应当对结果进行测试和评估,以确保达到所需效果。例如,如果Logic或Math对象出现在图形中,并显示overriden,那么用户可能会根据状态颜色指示(不正确地)认为可以通过右键单击命令(执行一项action)这个kitControl对象。
当连接(linking)writablepoint或kitControl对象的input时,只有在input有效时,这个point或对象才会对input接收到的值进行处理(评估)。
注意:有效的input不具有以下任何一种状态标志(status flag):
• down
• fault
• disabled
• null
• stale
如果input中被设置了上述任何一个状态位(status bit),该input值将不会被使用。
• 如果kitControl对象只有一个输入,默认情况下,该对象使用最后一次接收到的有效输入(至少直到输入再次变成有效)。
• 如果一个kitControl对象具有多个输入,只有有效输入才会被考虑处理。
• 如果是一个writable point,那么会继续按优先级对各个输入进行处理。
点击”阅读原文”进入Niagara中文论坛

