结果模式
MODICON®* 插件提供两种不同类型的结果模式:“Free-running”和“Dequeue from buffer”。您必须在类别“Result Handling Behavior”下的插件配置中设置所需的模式。
无论选择何种结果模式,“GMV_LASTRESULTID”字段始终指示是否有新结果可用。它包含最新结果的 ID,并在有新结果可用时更新。因此,除非视觉系统间歇性地重新启动,否则 ID 将总是单调增加。它最初设置为 0,表示还没有结果可用。第一个结果记录的 ID 将是 1,因为结果 ID 为严格为正。
根据所选择的模式,将以下述不同方式提供结果。
可用的结果模式
“Free-running”模式
如果选择此模式,一旦有新结果可用,就会将其写入相应的结果字段。这种模式对于某些结合了连续执行的监控应用程序来说很方便,特别是如果执行周期是独立同步的,例如,通过硬件触发,或者如果应用程序的时序足够非关键。
通常,在自由运行模式下,可能无法保证给定结果记录的一致性。这是因为无论 PLC 是否处理完此记录,新结果都会立即覆盖当前结果。因此,可能会丢失一些结果。
“Dequeue from buffer”模式
在这种模式下,使用 MODICON®* 插件的内部 FIFO 队列来保存传入的结果。缓冲区位于 MODICON®* 插件内部。其容量由插件配置中的“Result buffer capacity”参数定义。切勿将此参数与 MERLIC INI 文件中的“ResultBufferSize”混淆,后者指的是 MERLIC 内部的结果缓冲区。
一旦有新的结果可用,则首先将其排入相应的缓冲区。此时,PLC 可以使用“DequeueResult”命令请求将最旧的结果记录写入相应的字段。然后,请求的结果记录会立即从队列中删除。如果 PLC 没有足够快地将结果移出队列,并且超出了结果缓冲区容量,则缓冲区中最旧的结果将被丢弃。这意味着当缓冲区溢出时,下一个要出列的结果将丢失。在这种情况下,每丢弃一个结果“GMV_DROPPEDRESULTCOUNT”字段将递增,从其初始值 0 开始。因此,它包含使用“Dequeue from buffer”结果模式时丢弃的结果数量。
常规命令握手提供了确保结果记录一致性所需的同步。有关更多信息,请参阅插件与 PLC 之间的通讯。
结果记录
结果记录在执行后返回且包括 PLC 内存中的以下字段。它们代表当前显示的结果,并分别在有新结果可用(在“Free-running”模式下)后或结果从缓冲区移出队列(在“Dequeue from buffer”模式下)时集体更新。
|
字段 |
描述 |
|---|---|
|
GMV_RESULTID |
当前显示的结果的 ID。 |
|
GMV_RESULTRECIPEID |
产生所显示结果的配方的 ID。 |
|
GMV_RESULTJOBID |
产生显示结果的工作的 ID。 |
|
GMV_RESULTSTATE |
所显示结果的状态:
|
|
GMV_RESULTUSEARRAY_<TYPE>_W0... |
指示是否可以查询相应数据类型的任何结果。它包含一个数组,其中每个位都被指定为此数据类型的特定结果的指示符。数组大小取决于插件的配置,即取决于 Writing Data to PLC Memory 类别中相应结果数据类型的设置。 例如,如果插件参数“INT (signed 16-bit integer) result allocation”设置为 2,则“GMV_RESULTUSEARRAY_INT_W0”字段将添加到 PLC 内存中。如果“GMV_RESULTUSEARRAY_INT_W0”的前两位为 |
|
GMV_RESULT_<TYPE>_<INDEX> |
相应数据类型的实际结果值。每个结果将被写入其自身的字段中。 只有相应地设置了插件的配置,这些类型的字段才会添加到 PLC 内存中。例如,如果插件参数“INT (signed 16-bit integer) result allocation”设置为 2,则将有两个结果值字段添加到 PLC 内存中:“GMV_RESULT_INT_0”和“GMV_RESULT_INT_1”。执行后,“GMV_RESULTUSEARRAY_INT_W0”的前两位将指示这些 INT 结果是否可用。 |
* Modicon® is a registered trademark of Schneider Electric USA, Inc.