通过自定义应用程序使用 RESTful API
REST 插件提供的 REST API 让您能够向视觉系统发送请求,并查询视觉系统中的信息。这是通过 HTTP 端点完成的,这些端点由预定义的(基本)URL 和 HTTP 方法组成。您可以构建一个根据您的用例自定义的应用程序,并向可用的端点发送请求,以查询视觉系统中的信息,并通过触发操作来控制它。
REST API 提供两种不同类型的 HTTP 方法:GET 和 POST。GET 方法用于查询视觉系统中的信息,例如,获取可用配方的列表或获取执行结果。POST 方法用于触发特定操作,例如准备配方或启动执行。
以下部分显示哪些端点由 REST API 提供,以及每个端点可以用于什么目的。总的来说,它们可用于以下目的:
- 获取系统状态并将操作发送到视觉系统。
- 准备和取消准备配方。
- 开始运行工作,即单次或连续执行。
- 获取有关配方、正在运行的工作、事件和错误的信息。
- 获取结果,包括图像结果。
可用端点
下表概述了 REST API 的可用端点,从而概述资源的 API 存储语义。
|
URI |
HTTP 方法 |
描述 |
|---|---|---|
|
/errors |
GET |
返回错误列表。 |
|
/errors/{error_id} |
GET |
返回特定错误 ID 的错误信息。 |
|
/events |
GET |
返回事件列表。 |
|
/events/{event_id} |
GET |
返回有关特定事件的信息。 |
|
/jobs |
GET |
返回所有已知工作的列表。 |
|
/jobs/{job_id} |
GET |
返回有关特定配方的特定工作的信息。 |
|
/jobs/{job_id}/results |
GET |
返回与某个工作相关的结果列表。 |
|
/recipes |
GET |
返回可用配方列表。 |
|
/recipes/actions |
POST |
发送特定配方的操作。 |
|
/recipes/actions/{action_id}/status |
GET |
返回特定配方的特定操作的状态。 |
|
/recipes/{recipe_id}/jobs |
GET |
返回为特定配方启动的所有工作的列表。 |
|
/recipes/{recipe_id}/results |
GET |
返回特定配方的结果列表。 |
|
/results |
GET |
返回结果列表。 |
|
/results/{result_id} |
GET |
返回特定结果 ID 的结果信息。 |
|
/results/{result_id}/data/{data_index}.jpg |
GET |
返回特定结果 ID 结果中特定数据组件的 JPEG 图像数据。 |
|
/results/{result_id}/data/{data_index}.png |
GET |
返回特定结果 ID 结果中特定数据组件的 PNG 图像数据。 |
|
/state_machine |
GET |
返回系统的当前状态。 |
|
/state_machine/actions |
POST |
向视觉系统发送操作。 |
|
/state_machine/actions/{action_id}/status |
GET |
返回指定操作的状态。 |
有关 REST API 和可用端点的更多信息,请参阅 REST API 的说明文档,该文档可在内置 web 应用程序中通过“API Docs”菜单项访问。
配置可用结果的数量
只有当对应的结果数据仍然可用时,查询结果才会成功。否则,将返回一个错误。结果数据是否仍然可用取决于对应结果存储区的大小。当使用 REST 插件时,结果会存储在不同的结果存储区。
REST 插件附带一个具有特定容量的内存数据库来存储结果。除图像数据外,执行的所有结果都将存储在插件的结果存储区中。结果存储区的大小在插件配置中定义。有关更多信息,请参阅配置插件中的In-Memory Database部分。如果结果数量超过定义的缓冲区大小,则最旧的结果将被删除。
相反,图像结果分别存储在视觉系统提供的内存数据库中,并与结果存储区中对应的结果相连接。这一结果存储区的缓冲区大小也是可配置的。但是,一旦结果数量超过定义的缓冲区大小,则最旧的图像将被删除。如果您想延长图像的保留时间,可以使用扩展图像存储区。它可以用来保存将从视觉系统的内存存储区中删除的图像。这样,图像结果仍然可用。但是,一旦超过扩展图像存储区的大小,仍会将最旧的图像从存储区中删除。
您可以在 MERLIC Creator 的 MERLIC 设定中,或在 INI 文件中通过对应的 ini 选项来调整内存存储区的大小以及扩展图像存储区的设置。有关更多信息,请参阅MERLIC 设定和MERLIC INI 文件。