USB-CAN 컨버터의 CANopen 마스터 시뮬레이터 기능을 살펴보겠습니다.
왼쪽의 "슬레이브 스테이션 찾기"를 클릭하여 CAN 버스에 있는 모든 CANopen 슬레이브 노드를 스캔할 수 있습니다. CANopen 슬레이브 스테이션을 수동으로 추가할 수도 있습니다. 이미 추가된 스테이션은 아래와 같이 표시됩니다. 사용자는 지정된 노드 번호를 더블 클릭하여 슬레이브 스테이션과 통신하기 위한 인터페이스를 활성화할 수 있습니다.
CANopen 마스터 스테이션 기능은 USBCAN 디바이스를 CANopen 마스터 카드로 전환하고 CANopen 네트워크에 액세스합니다. ECANTools에는 일반적으로 사용되는 다양한 CANopen 마스터 스테이션 기능이 있습니다. 예를 들어, NMT(네트워크 관리), SYNC(동기 프로토콜), EMERGENCY(긴급 메시지), PDO(프로세스 데이터 객체), SDO(서비스 데이터 객체), NODE GUARDING(노드 보호) 등이 있습니다.
다음 표에는 CANopen 공통 프레임 유형에 해당하는 기능 코드와 프레임 ID 범위가 나와 있습니다.
메시지 유형 | 기능 코드 | COB-ID 범위(16진수) |
NMT | 0000 | 000h |
동기화 | 0001 | 080h |
긴급 상황 | 0001 | 081h-0FFh |
시간 | 0010 | 100h |
PDO1(전송) | 0011 | 181h-1FFh |
PDO1(수신) | 0100 | 201h-27Fh |
PDO2(전송) | 0101 | 281h-2FFh |
PDO2(수신) | 0110 | 301h-37Fh |
PDO3(전송) | 0111 | 381h-3FFh |
PDO3(수신) | 1000 | 401h-47Fh |
PDO4(전송) | 1001 | 481h-4FFh |
PDO4(수신) | 1010 | 501h-57Fh |
SDO(전송) | 1011 | 581h-5FFh |
SDO(수신) | 1100 | 601h-67Fh |
NMT 오류 제어 | 1110 | 701h-77Fh |
1 NMT 명령
NMT 명령은 네트워크 관리(초기화, 노드 시작 및 중지, 장애 노드 감지 등)를 제공합니다.
사용자는 NMT 명령을 사용하여 슬레이브 노드의 실행 상태를 변경할 수 있습니다.
원격 노드 시작 - 노드를 작동 상태로 설정합니다.
원격 노드 중지 - 노드를 중지 상태로 설정합니다.
작동 전 상태로 전환 - 노드를 작동 전 상태로 설정합니다.
노드 재설정 - 노드 재설정을 설정합니다.
통신 재설정 - 노드 재설정 통신을 설정합니다.
2 동기화 메시지
SYNC는 마스터 스테이션이 보내는 동기화 메시지입니다. PDO가 동기화된 모든 스테이션은 SYNC 메시지를 기반으로 마스터 스테이션과 통신합니다.
사용자는 ECANTools를 통해 주기적으로 동기화 메시지를 보낼 수 있습니다.
3 긴급 메시지
ECANTools는 슬레이브 스테이션 노드로부터 비상 메시지를 수신할 수 있습니다. 이 메시지는 비상 상태의 슬레이브 노드에서 전송됩니다. ECANTools의 CANopen 마스터 기능은 이 비상 메시지를 수신하고 처리할 수 있습니다.
4 PDO(프로세스 데이터 개체)
CANopen 노드는 주로 실시간 데이터 전송에 사용되는 PDO를 사용하여 데이터를 전송합니다.
전체 이름은 프로세스 데이터 객체이며, 단방향 전송이 가능한 프로세스 데이터에 속합니다. 수신 노드의 경우 확인된 CAN 메시지에 응답할 필요가 없습니다.
ECANTools에는 TPDO/RPDO의 4쌍의 송수신 PDO가 있습니다.
5 SDO(서비스 데이터 개체)
CANopen 마스터 모듈의 SDO 기능은 송신과 수신으로 나뉩니다. ECANTools의 SDO 기능을 통해 사용자는 인덱스와 서브 인덱스를 편집하여 슬레이브 스테이션과 통신할 수 있습니다.
6 노드 가드
ECANTools에서 노드 가드 기능을 구현하는 방법은 두 가지가 있습니다. 마스터 스테이션이 자동으로 명령을 전송하여 슬레이브 노드의 상태를 조회하고(노드 가드), 슬레이브 노드는 주기적으로 하트비트로 상태를 전송하는(하트비트) 방식입니다.
ECANTools는 사용자 지정 메시지를 편집하여 CANopen 데이터를 수동으로 시뮬레이션할 수도 있습니다.
사용자는 쓰기 기능을 통해 CANopen 슬레이브 스테이션에 직접 데이터를 전송할 수 있습니다.
코드, 슬레이브 스테이션 노드 ID 및 데이터.
해당 기능에 해당하는 기능 코드는 다음 표에 나와 있습니다:
--PDO 0x1800+n 구성 방법
--COB-ID는 0x387
--PDO는 항상 전송을 트리거합니다.
--데이터를 포함해야 합니다: 데이터 X(2바이트), 데이터 Y(4바이트)
다음 순서대로
-덱스 0x6000, 하위 인덱스 03에 정의된 데이터 X
-덱스 0x2010, 하위 인덱스 21에 정의된 데이터 Y
1- 인덱스 1800+n, 하위 인덱스 01: COBID 쓰기(4바이트)
2 인덱스 1800+N, 서브 인덱스 02: 전송 바이트 "T"(1바이트) 쓰기
t=1 ~ 0xF0: "t" 배수의 SYNC를 수신하면 PDO가 전송됩니다.
t=FD: PDO 요청을 받은 후 전송(rtr=1)
t=FF: 이벤트에 따라 노드가 자동으로 PDO를 전송합니다.
3- 인덱스 1A00+n: 처음 n개의 데이터를 정의하는 매핑입니다.
하위 인덱스 0: PDO에 기록되는 데이터 수(1바이트). 이 경우 "2"를 씁니다.
하위 인덱스 1: 첫 번째 데이터를 찾을 위치와 기록할 크기(8바이트)를 정의합니다.
형식은 인덱스(2바이트) - 하위 인덱스(1바이트) - 비트 단위 크기(1바이트)입니다.
이 경우 "60000310"를 작성합니다.
하위 인덱스 2: 두 번째 데이터를 찾을 위치 및 쓰기 크기(8바이트)를 정의합니다.
이 경우"20102120"를 작성합니다.
각 3 개의 동기화 전송의 구성 노드 5 PDO 1802에서 전송하는 SDO는 다음과 같아야 합니다.
605 23 02 18 01 00 00 8703
605 2F 02 18 02 03 00 00 00
605 2F 02 1A 00 02 00 00 00 00 00
605 23 02 1A 01 10 03 00 60
605 23 02 1A 02 20 21 10 20