CAN 통신 드라이버
CAN 통신 드라이버는 범용 통신 드라이버로서 CAN 프로토콜을 사용하는 디바이스와 연결할 때 사용합니다. 설정 방법은 다음과 같습니다.
통신채널 설정
① 통신 채널 항목을 선택 후 추가합니다.
② 프로토콜 항목에서 윈도우의 경우 "PEAK CAN", 임베디드(리눅스)의 경우 "SOCKET_CAN"를 선택합니다.
③ 통신 탭을 선택해 연결 정보를 입력합니다.
항목 이름 |
설명 |
통신 종류 |
'CAN BUS' 를 선택합니다. |
장치 이름 |
컴퓨터가 인식한 CAN 장비 이름을 입력합니다. |
CAN 통신 속도 |
CAN 통신 속도를 선택합니다. |
디바이스 설정
① 디바이스 항목을 선택 후 추가합니다.
② 일반 탭의 통신 채널 항목에서 통신 채널 설정에서 입력했던 통신 채널을 선택합니다.
③ 계측 탭에서 계측 주기를 선택합니다.
계측 탭에 대한 항목 설명은 다음과 같습니다.
항목 이름 |
설명 |
전체 계측주기 |
설정한 주기에 따라 상태 포인트와 아날로그 포인트에 설정된 주소의 데이터를 읽어 옵니다. |
상태 계측주기 |
사용하지 않습니다. |
아날로그 계측 주기 |
사용하지 않습니다. |
시각 동기 주기 |
사용하지 않습니다. |
제한 시간 |
데이터 요청 후 데이터 응답 대기 시간입니다. |
④ 프로토콜 탭을 선택해 항목을 입력합니다.
프로토콜 탭의 입력 항목은 다음과 같습니다.
항목 이름 |
설명 |
장치 통신 주소 |
장비의 통신 주소를 입력합니다. |
주소 테이블
CAN 통신 드라이버는 CAN 노드 ID와 데이터 필드(8 Bytes)의 정보를 입력하여 상태/아날로그 포인트에 데이터를 읽고 쓸수 있습니다. 입력 정보에 대한 설명은 다음과 같습니다.
항목 |
설명 |
노드 ID |
CAN 데이터 메시지의 식별자(ID)입니다. |
바이트 인덱스 |
데이터 필드의 바이트 인덱스입니다. (0~7) |
비트 번호 |
비트 번호입니다. (0~7) |
상태 포인트 주소 설정
상태포인트에 디바이스의 데이터 주소를 입력하여 다음과 같은 작업을 할 수 있습니다.
- 입력주소에 CAN 노드 ID, 바이트 인덱스, 비트 번호를 입력해 해당 주소의 값을 읽어 올 수 있습니다.
- 출력주소에 CAN 노드 ID, 바이트 인덱스, 비트 번호를 입력해 해당 주소에 값을 쓸 수 있습니다.
- 상태 포인트 입력 시 "데이터 구분" 항목은 입력하지 않습니다.
데이터 주소 설정 방법은 다음과 같습니다.
입력 주소 설정 (M: 필수, O: 선택)
주소 필드 |
설명 |
A(M) |
CAN 노드 ID : 데이터의 노드 ID 를 입력 |
B(M) |
바이트 인덱스 : 데이터의 바이트 인덱스를 입력 (0~7) |
C(M) |
비트 번호 : 데이터의 비트 번호를 입력 (0~7) 예) A: 0x14010003, B: 7, C: 0 -> 노드ID가 0x14010003 인 데이터 필드(8 Byte)내의 7번째 바이트의 0번째 비트 |
D(O) |
사용 안 함 |
출력 주소 설정 (M: 필수, O: 선택)
주소 필드 |
설명 |
A(M) |
CAN 노드 ID : 데이터의 노드 ID 를 입력 |
B(M) |
바이트 인덱스 : 데이터의 바이트 인덱스를 입력 (0~7) |
C(M) |
비트 번호 : 데이터의 비트 번호를 입력 (0~7) 예) A: 0x14010003, B: 7, C: 0 -> 노드ID가 0x14010003 인 데이터 필드(8 Byte)내의 7번째 바이트의 0번째 비트 |
D(O) |
사용 안 함 |
아날로그 포인트 주소 설정
아날로그 포인트에 디바이스의 주소를 설정해 다음과 같은 작업을 할 수 있습니다.
- 입력주소에 CAN 노드 ID, 바이트 인덱스를 입력해 해당 주소의 값을 읽어 올 수 있습니다.
- 출력주소에 CAN 노드 ID, 바이트 인덱스를 입력해 해당 주소에 값을 쓸 수 있습니다.
- 바이트 인덱스의 위치에서부터 "데이터 형식"에서 선택된 데이터 크기만큼의 주소영역에 데이터를 읽고 씁니다.
장치의 아날로그 데이터를 읽거나 쓸 때 입력하는 항목은 다음과 같습니다.
데이터 형식 및 아이템 구분 설정
항목 |
설명 |
데이터 형식 |
디바이스의 데이터 맵을 참고하여, 읽어올 데이터의 종류에 맞게 선택해야 합니다. 지원되는 항목은 다음과 같습니다.
※ 데이터 형식을 선택하지 않은 경우 기본 값은 Int16 입니다. |
아이템 구분 |
데이터의 속성에 따라 다음과 같이 선택합니다.
|
데이터 주소 설정
계측/경보 탭을 선택 후 주소 필드에 읽어오거나 설정할 데이터의 주소 필드를 입력합니다.
Analog Input 인 경우
주소 필드 |
설명 |
A(M) |
CAN 노드 ID : 데이터의 노드 ID 를 입력 |
B(M) |
바이트 인덱스 (0~7) : 읽어올 데이터의 시작 바이트 인덱스를 입력합니다. (바이트 인덱스에서부터 데이터 형식에 선택한 크기만큼 데이터를 읽습니다.) 예) A: 0x14010001, B: 1 (데이터 형식: Int16) -> 노드ID가 0x14010001 인 데이터 필드(8 Byte)내의 1번째 바이트 인덱스에서부터 2 Byte(16 Bit)만큼의 주소영역 데이터를 읽습니다. 0x00 00 00 00 00 00 00 00 예) A: 0x14010001, B: 3 (데이터 형식: Int8) -> 노드ID가 0x14010001 인 데이터 필드(8 Byte)내의 3번째 바이트 인덱스에서부터 1 Byte(8 Bit)만큼의 주소영역 데이터를 읽습니다. 0x00 00 00 00 00 00 00 00 |
C(O) |
사용 안 함 |
D(O) |
사용 안 함 |
SetPoint(AO) 인 경우
주소 필드 |
설명 |
A(M) |
CAN 노드 ID : 데이터의 노드 ID 를 입력 |
B(M) |
바이트 인덱스 (0~7) : 값을 쓸 데이터의 시작 바이트 인덱스를 입력합니다. (바이트 인덱스에서부터 데이터 형식에 선택한 크기만큼의 영역에 값을 씁니다.) 예) A: 0x01000000, B: 0 (데이터 형식: Int16) -> 노드ID가 0x01000000 인 데이터 필드(8 Byte)내의 0번째 바이트 인덱스에서부터 2 Byte(16 Bit)만큼의 주소영역에 값을 씁니다. 0x00 00 00 00 00 00 00 00 |
C(O) |
사용 안 함 |
D(O) |
사용 안 함 |