# 비전 개체 서비스

## 공통 서비스

비전 개체는 다음과 같은 공통 서비스를 제공합니다.

서비스 코드 | 서비스 이름 | 서비스 설명
--- | --- | ---
05 16진수 | 재설정 | 비전 개체를 재설정합니다.
0E 16진수 | Get_Attribute_Single | 지정된 속성의 내용을 반환합니다.
10 16진수 | Set_Attribute_Single | 지정된 속성의 값을 수정합니다.

### 재설정 서비스

재설정 서비스는 비전 개체의 촬상 트리거 시스템을 재설정하고 비활성화합니다. 또한 재설정 서비스는 비전 개체의 검사 결과 버퍼링 시스템을 비활성화하고 지웁니다.

## 개체 특정 서비스

비전 개체는 다음과 같은 개체 특정 서비스를 제공합니다.

서비스 코드 | 서비스 이름 | 서비스 설명
--- | --- | ---
32 16진수 | 촬상 | 단일 촬상을 트리거합니다.
33 16진수 | 예약됨 | Deprecated.
34 16진수 | SendNativeCmd | In-Sight 비전 시스템으로 기본 모드 명령을 보냅니다.
35 16진수 | GetInspectionResults | InspectionResults 속성을 가져옵니다.
36 16진수 | 사용자 데이터 전송 | 데이터를 사용자 데이터 유지 버퍼의 일부로 전송합니다.
37 16진수 | 사용자 데이터 설정 | 비전 시스템이 사용자 데이터 홀딩 버퍼를 사용자 데이터 필드에 래치하도록 하여 In-Sight 비전 시스템이 사용자 데이터에 대한 액세스할 수 있도록 합니다.

### 촬상 서비스

촬상 시스템이 이미지를 촬상할 준비가 되면 비전 개체의 촬상 서비스로 인해 촬상이 트리거됩니다. 촬상을 트리거할 수 없으면 다음 촬상이 성공할 때까지 AcqStatusRegister의 촬상 누락 비트가 설정됩니다.

명령이 실패하면 촬상 서비스는 공급업체별 오류 코드 1F를 반환합니다.

### SendNativeCmd 서비스

SendNativeCmd(0x34) 서비스는 문서화된 기본 모드 명령 문자열을 In-Sight 비전 시스템으로 보냅니다. SendNativeCmd의 요청 데이터에는비전 시스템에 보낼 기본 모드 명령 문자열이 포함되어야 합니다. 응답 데이터에는 기본 모드 명령의 문자열 결과가 포함됩니다. 자세한 내용은 기본 모드 명령을 참조하십시오.

### SendNativeCmd 요청 데이터 형식

이름 | 유형 | 설명
--- | --- | ---
Command | 문자열 | 처리할 기본 모드 명령.

### SendNativeCmd 응답 데이터 형식

이름 | 유형 | 설명
--- | --- | ---
결과 | 문자열 | 기본 모드 명령의 문자열 결과.

명령이 실패하면 서비스는 다음 공급업체별 오류 코드 중 하나를 반환합니다.

오류 코드 | 설명 | 기본 모드 반환 코드
--- | --- | ---
1 | 불량 명령. | -
4 | 응답 없음 - 시스템 작업량이 너무 많습니다. | -
100 | 명령 실패 | 0
101 | 명령을 실행할 수 없음 | -1
102 | -2
103 | -3
104 | -4
105 | -5
106 | -6

### GetInspectionResults 서비스

GetInspectionResults 서비스(코드 0x35)는 비전 개체의 InspectionResults 속성에서 데이터를 읽습니다.

### GetInspectionResults 요청 데이터 형식

이름 | 유형 | 설명
--- | --- | ---
크기 | 단위 | 읽을 InspectionResults 속성의 바이트 수.
오프셋 | 단위 | 읽을 InspectionResults 속성의 첫 번째 바이트를 지정합니다.

### GetInspectionResults 응답 데이터 형식

이름 | 유형 | 설명
--- | --- | ---
InspectionResults | 구조 | 마지막 검사 결과.
InspectionID | 단위 | 검사 카운터.
InspectionResultCode | 단위 | WriteResultsBuffer 함수에 설정된 검사 결과 코드.
InspectionResults | 바이트의 배열 | 마지막 검사의 결과.

### 사용자 데이터 전송 명령

이 명령은 사용자 데이터 유지 버퍼의 일부로 데이터를 전송하는 데 사용됩니다. 사용자 데이터 설정 명령이 내려지면 사용자 데이터 홀딩 버퍼는 사용자 데이터 필드에 래치됩니다.

### 사용자 데이터 전송 명령 요청 형식

이름 | 유형 | 설명
--- | --- | ---
크기 | 단위 | 쓸 사용자 데이터 필드의 바이트 수.
오프셋 | 단위 | 쓸 사용자 데이터 필드의 첫 번째 바이트를 지정합니다.
데이터 | 바이트의 배열 | 사용자 데이터 필드에 쓸 사용자 데이터.

### 사용자 데이터 설정 명령

PLC는 이 명령을 사용하여비전 시스템이 사용자 데이터 홀딩 버퍼를 사용자 데이터 필드에 래치하도록 하여 비전 시스템이 사용자 데이터에 대해 액세스할 수 있게 합니다.

이 추가 사용자 데이터 핸드셰이크가 필요하지 않고 통신 동작이 어셈블리 I/O의 경우와 동일하면 다음 절차에 따라 사용자 데이터 설정 명령을 무시할 수 있습니다.

1. In-Sight Spreadsheet를 열고 비전 시스템을 선택합니다.

2. 산업용 이더넷 유틸리티를 엽니다.

3. 프로토콜 선택 드롭다운에서 EtherNet/IP를 선택합니다.

4. 사용자 데이터 우회 활성화 확인란을 체크합니다.

5. 재시작을 클릭해 산업용 이더넷 구성 대화 상자를 닫고 비전 시스템을 재부팅합니다.

### EtherNet/IP 함수

다음 스프레드시트 함수는 In-Sight Spreadsheet와 EtherNet/IP 스택 간에 데이터를 전송하거나 수신할 수 있습니다.

- ReadUserDataBuffer

- WriteResultsBuffer

- GetBufferData