更改 MERLIC 配方 (Hilscher)
MERLIC RTE 还允许 PLC 加载不同的配方文件 MERLIC 配方文件是 MERLIC 流程集成的关键部分。它是个单独文件(文件后缀为 .mrcp),定义了为流程集成加载哪个 MERLIC Vision App。它包含了一组预定义的输入值用于选定的工具参数,因此它还定义了参数化 MVApp 的方式。 您可以使用单个输入值集为同一个 MVApp 创建多个配方文件。这让您可以通过不同的参数设置将 MVApp 重复用于各种应用场景。您还可以使用配方文件加载 MVApp用于完全不同的图像处理任务。以供进一步处理。配方更改可通过命令“PrepareRecipe”触发(即相应命令代码 4)。
如果未准备配方,Frontend 将显示相应的文本消息。
前提条件
仅当 MERLIC 处于“Initialized”或“Ready”状态时,才能调用“PrepareRecipe”命令。因此,在更改配方前,必须确保 MERLIC 处于这些状态之一。此外,必须在协议 FromPLCProtocol 的成员“Selector”中定义要加载的配方。
更改配方
在协议 FromPLCProtocol 中设置以下成员以加载配方。
|
Member |
值 |
描述 |
|---|---|---|
|
CommandCode |
4 |
为命令 “PrepareRecipe” 定义代码值 4。 |
|
Selector |
ID |
定义应加载的配方的 ID。ID 表示在 MERLIC RTE Setup 的“配方”中为配方分配的 ID,例如,要加载 ID 为 1 的配方,则必须将“Selector”的值设置为 1。如果不存在对应此 ID 的配方,则 MERLIC 将变更为 “Error” 状态。 |
可根据如下示例定义从 PLC 发送到 MERLIC 的协议 FromPLCProtocol:
TYPE
FromPLCProtocol :
STRUCT
Preamble : 17;
CommandCode : 4;
Selector : 5;
END_STRUCT
END_TYPE
在以上示例中,成员 CommandCode 的值设置为 4。因此 MERLIC 识别命令 “PrepareRecipe”。应加载的配方文件在成员 Selector 中定义。在我们的示例中,应准备 ID 为 5 的配方并加载到 MERLIC。
同步
下图通过对命令 “PrepareRecipe” 的示例展示了所述的handshaking过程。PLC 通过将协议 FromPLCProtocol 中的 CommandCode 设置为 4 来触发配方更改。在触发配方更改的命令之前,应确保设置要为成员 Selector 加载的配方的 ID。
当 MERLIC 识别该命令后,协议 FromMerlicProtocol 中的成员 CommandCode 也将设置为 4,作为 PLC 的确认,并且 MERLIC 开始使用指定的配方 ID 加载配方文件,同时也加载配方中引用的 MVApp。PLC 从 MERLIC 收到命令已被识别的确认后,FromPLCProtocol 中的成员 CommandCode 会设置为 0,以完成握手流程。配方加载后,MERLIC 检查 PLC 发来了哪个 CommandCode 并相应地进行处理。