# 视觉对象服务

## 公共服务

视觉对象提供以下公共服务：

服务代码 | 服务名称 | 服务说明
--- | --- | ---
05 Hex | 重置 | 重置视觉对象。
0E Hex | Get_Attribute_Single | 返回指定属性的内容。
10 Hex | Set_Attribute_Single | 修改指定属性的值。

### 重置服务

重置服务会重置并禁用视觉对象中的采集触发系统。重置服务还会禁用和清除视觉对象中的检查结果缓冲系统。

## 对象特定服务

视觉对象提供以下对象特定服务：

服务代码 | 服务名称 | 服务说明
--- | --- | ---
32 Hex | 采集 | 触发单次采集。
33 Hex | 保留 | 已弃用。
34 Hex | SendNativeCmd | 向 In-Sight 视觉系统发送本机模式命令。
35 Hex | GetInspectionResults | 获取 InspectionResults 属性。
36 Hex | 传输用户数据 | 将数据传输到用户数据保持缓冲区的一部分。
37 Hex | 设置用户数据 | 提示视觉系统将用户数据保持缓冲区锁存到“用户数据”字段中，让In-Sight 视觉系统 能够访问用户数据。

### 采集服务

如果采集系统准备好采集图像，则视觉对象的采集服务会触发采集。如果无法触发采集，则会设置 AcqStatusRegister 的 Missed Acquisition 位，直到下次成功采集。

如果命令失败，采集服务将返回供应商特定错误代码 1F。

### SendNativeCmd 服务

SendNativeCmd (0x34) 服务将记录的任何本机模式命令字符串发送到 In-Sight 视觉系统。SendNativeCmd 的请求数据必须包括要发送到视觉系统的本机模式命令字符串。响应数据包含本机模式命令的字符串结果。有关详细信息，请参阅本机模式命令。

### SendNativeCmd 请求数据格式

名称 | 类型 | 说明
--- | --- | ---
命令 | 字符串 | 要处理的本机模式命令。

### SendNativeCmd 响应数据格式

名称 | 类型 | 说明
--- | --- | ---
结果 | 字符串 | 本机模式命令的字符串结果。

如果命令失败，该服务将返回以下供应商特定错误代码之一：

错误代码 | 说明 | 本机模式返回代码
--- | --- | ---
1 | 错误的命令 | -
4 | 无回复 - 系统太忙 | -
100 | 命令失败 | 0
101 | 命令无法执行 | -1
102 | -2
103 | -3
104 | -4
105 | -5
106 | -6

### GetInspectionResults 服务

GetInspectionResults 服务（代码 0x35）从视觉对象的 InspectionResults 属性中读取数据。

### GetInspectionResults 请求数据格式

名称 | 类型 | 说明
--- | --- | ---
大小 | UINT | 要读取的 InspectionResults 属性的字节数。
偏移 | UINT | 指定要读取的 InspectionResults 属性的第一个字节。

### GetInspectionResults 响应数据格式

名称 | 类型 | 说明
--- | --- | ---
InspectionResults | STRUCT of | 最后一次检查结果。
InspectionID | UINT | 检查计数器。
InspectionResultCode | UINT | 在 WriteResultsBuffer 函数中设置的检查结果代码。
InspectionResults | 字节数组 | 最后一次检查的结果。

### 传输用户数据命令

此命令用于将数据传输到用户数据保持缓冲区的一部分。当发出 Set User Data 命令时，用户数据保持缓冲区被锁存到“用户数据”字段。

### 传输用户数据命令请求格式

名称 | 类型 | 说明
--- | --- | ---
大小 | UINT | 要写入的“用户数据”字段的字节数。
偏移 | UINT | 指定要写入的“用户数据”字段的第一个字节。
数据 | 字节数组 | 要写入“用户数据”字段的用户数据。

### 设置用户数据命令

PLC 使用此命令提示视觉系统将用户数据保持缓冲区锁存到“用户数据字段”中，让视觉系统能够访问用户数据。

如果不需要这个额外的用户数据握手，且通信行为与程序集 I/O 相同，则可以使用以下过程绕过设置用户数据命令：

1. 打开 In-Sight Spreadsheet，然后选择您的视觉系统。

2. 打开工业以太网实用程序。

3. 在“选择协议”下拉列表中，选择 EtherNet/IP。

4. 选中启用用户数据绕过复选框。

5. 单击重启关闭“工业以太网配置”对话框并重新启动您的视觉系统。

### 以太网/IP 函数

以下电子表格函数可以在 In-Sight Spreadsheet 和 EtherNet/IP 堆栈之间发送或接收数据：

- ReadUserDataBuffer

- WriteResultsBuffer

- GetBufferData