检查 MERLIC 状态 (Hilscher)

在使用 MERLIC流程集成 MERLIC 用于集成在制造机器中的机器视觉系统。机器控制器(例如,可编程逻辑控制器 [PLC])必须能够控制集成视觉系统、监控执行情况和查询结果。因此,MERLIC 提供了一个流程集成模式以支持与机器控制器的通讯。 可使用应用程序“MERLIC RTE”在流程集成模式下启动,该应用程序随 MERLIC 安装一起提供。模式 (MERLIC RTE) 时,您可能需要检查 MERLIC 的当前状态,以便在正确的时间触发信号,例如,在 MERLIC 完成单次执行后查询迭代的结果。

连续执行期间,MERLIC 将执行一系列单次执行,并且在各次执行之间不进入“Ready”状态。连续执行停止后,MERLIC 将进入“Ready”状态,并且不会检查上次执的结果是否已到达。

可用的 MERLIC 状态

如果使用 Hilscher 卡与可编程逻辑控制器 (PLC) 通信,则每个内部 MERLIC 状态均可在系统中显示。下图显示了使用 MERLIC RTEMERLIC 的所有内部状态的概览及其转换。

由命令触发的转换带有相应命令名称的标签,例如,通过命令“StartSingleJob”从状态“Ready”到“SingleExecution”的转换。MERLIC 由于内部条件而自动触发的转换以橙色显示,没有任何标签,例如,从状态“SingleExecution”到“Ready”的转换是在单次执行后自动执行的。

每个 MERLIC 状态显示的数字表示该状态的相应 ID。检查 MERLIC 的当前状态时,它们可提供相关信息。

MERLIC 的内部状态通过协议 FromMerlicProtocol 的成员 CurrentState 传输到 PLC。有关更多信息,请参阅数据交换协议

传输关于当前状态的信息的字节编码如下:

位栏位置

数值

MERLIC 状态

描述

0

1

Preoperational

如果该位数设置为 1,则MERLIC处于状态“Preoperational”。

1

2

OperationalAutomaticMode

如果该位数设置为 1,则MERLIC处于状态“OperationalAutomaticMode”。这意味着 MERLIC 的状态为“Initialized”、“Ready”、“SingleExecution”或“StartContinuous”。

1,4

18

Initialized

如果第 1 位数和第 4 位数已设置,则 MERLIC 处于“Initialized”状态。

1,5

34

Ready

如果第 1 位数和第 5 位数已设置,则 MERLIC 处于 “Ready” 状态。

1,6

66

SingleExecution

如果第 1 位数和第 6 位数已设置,则 MERLIC 处于 “SingleExecution” 状态。

1,8

258

ContinuousExecution

如果第 1 位数和第 8 位数已设置,则 MERLIC 处于 “ContinuousExecution” 状态。

2

4

Halted

如果该位数设置为 1,则MERLIC处于状态“Halted”。

3

8

Error

如果该位数设置为 1,则MERLIC处于状态“Error”。

7

128

OperationalFrontendAccessMode

如果此位数设置为 1,则 MERLIC 处于手动模式。这意味着 MERLIC 只能通过 MERLIC Frontend 进行控制。有关手动模式的更多信息,请参阅 Frontend 中的写入权限

查询当前状态

您可以从数据交换协议 FromMerlicProtocol 获取 MERLIC 的当前状态。它包含成员 CurrentState,该成员具有相应的 MERLIC 状态的值。

Member

描述

偏移

字节大小

CurrentState

包含 MERLIC 当前状态的数字。

9

2

尽管 CurrentState 的大小为 2 个字节,但当前仅使用第一个字节传输当前状态。

以下示例节选展示了如何在协议 FromMerlicProtocol 中返回 MERLIC 状态信息:

复制
TYPE
FromMerlicProtocol :
STRUCT
    Preamble : 17;
    ...
    CurrentState : 34;
    ...
END_STRUCT
END_TYPE

CurrentState 的值为 34。这意味着 MERLIC 当前处于“Ready”状态。