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, 바이트 인덱스를 입력해 해당 주소에 값을 쓸 수 있습니다.
  • 바이트 인덱스의 위치에서부터 "데이터 형식"에서 선택된 데이터 크기만큼의 주소영역에 데이터를 읽고 씁니다.


 장치의 아날로그 데이터를 읽거나 쓸 때 입력하는 항목은 다음과 같습니다.


데이터 형식 및 아이템 구분 설정

 


항목

설명

데이터 형식

디바이스의 데이터 맵을 참고하여, 읽어올 데이터의 종류에 맞게 선택해야 합니다.

지원되는 항목은 다음과 같습니다.

  • Int8: 8비트 정수형
  • Int16: 16비트 정수형
  • Int32: 32비트 정수형
  • Int64: 64비트 정수형
  • UInt8: 8비트 부호없는 정수형
  • UInt16: 16비트 부호없는 정수형
  • UInt32: 32비트 부호없는 정수형
  • UInt64: 64비트 부호없는 정수형

※ 데이터 형식을 선택하지 않은 경우 기본 값은 Int16 입니다.

아이템 구분

데이터의 속성에 따라 다음과 같이 선택합니다.

  • Analog Input : 데이터를 읽기 용도로 사용할 때 선택합니다.
  • SetPoint(AO) : 데이터를 읽기/쓰기 용도로 사용할 때 선택합니다.

데이터 주소 설정

 계측/경보 탭을 선택 후 주소 필드에 읽어오거나 설정할 데이터의 주소 필드를 입력합니다.



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)

사용 안 함