일상에 꼭 필요한 정보, 늘 함께하는 나침반 일상에 꼭 필요한 정보, 늘 함께하는 나침반

CANopen이란? CAN 기반 산업통신 원리

읽는 시간 약 6분

CANopen이란 CAN Bus를 기반으로 Controller·Servo Drive·Sensor 등 산업장비가 데이터를 교환하는 통신 프로토콜입니다. CANopen의 Node 구조와 PDO·SDO, Object Dictionary, NMT 및 산업자동화 통신 원리를 알아봅니다.

CANopen이란 무엇이며 CAN Bus와 어떤 관계일까?

CANopen은 CAN(Controller Area Network)을 기반으로 산업자동화 장치들이 일정한 규칙에 따라 데이터를 교환할 수 있도록 정의한 상위 계층 통신 프로토콜입니다. CAN은 원래 자동차 전자제어 시스템을 위해 개발되었지만 높은 신뢰성과 효율적인 메시지 전송 특성으로 산업장비와 이동기계, 의료장비 등 다양한 분야로 확대되었습니다. CAN 자체는 메시지를 어떤 방식으로 전송하고 오류를 검출하며 여러 장치가 하나의 Bus를 공유할 때 통신 우선순위를 어떻게 결정하는지 등을 정의하지만 각 데이터가 무엇을 의미하는지까지 모두 표준화하지는 않습니다. CANopen은 이러한 CAN 위에 장치모델, 통신객체와 데이터 접근방법 등을 추가하여 서로 다른 장비를 체계적으로 연결할 수 있도록 합니다. 산업현장에서는 Servo Drive, Motor Controller, Encoder, Sensor, I/O Module 등의 통신에 사용할 수 있습니다. 따라서 CAN을 지원한다는 것과 CANopen을 지원한다는 것은 동일한 의미가 아니며 두 장치가 CANopen으로 통신하려면 필요한 CANopen 기능과 Device Profile 등이 서로 호환되어야 합니다.

Object Dictionary는 장치 데이터를 어떻게 관리할까?

CANopen의 핵심 개념 중 하나는 Object Dictionary입니다. Object Dictionary는 장치가 가지고 있는 Parameter, 상태값, 설정값과 통신정보 등을 Index와 Sub-index를 이용하여 체계적으로 관리하는 데이터 구조입니다. 예를 들어 장치의 제어명령, 상태정보, 속도값이나 통신설정 등이 각각 특정 Object에 할당될 수 있습니다. CANopen에서 Index는 일반적으로 16bit 값으로 표현되며 하나의 Index 아래에 여러 Sub-index를 구성할 수 있습니다. 사용자는 장치 제조사가 제공하는 매뉴얼이나 EDS(Electronic Data Sheet)를 통해 어떤 Object가 어떤 기능을 담당하는지 확인할 수 있습니다. 이러한 구조 덕분에 Controller는 장치 내부의 실제 메모리 주소를 직접 알지 못해도 정의된 Object를 통해 데이터를 읽거나 설정할 수 있습니다. 또한 CiA(CAN in Automation)에서 정의한 Device Profile을 지원하는 장치들은 공통적인 Object와 동작방식을 사용할 수 있습니다. 대표적으로 Drive와 Motion Control 장치에는 CiA 402 Profile이 널리 사용됩니다. 다만 제조사 고유 Object도 존재하므로 실제 시스템 구성에서는 해당 장치의 Object Dictionary를 확인해야 합니다.

PDO와 SDO는 데이터를 주고받는 방식이 어떻게 다를까?

CANopen에서는 데이터의 용도에 따라 PDO(Process Data Object)와 SDO(Service Data Object)가 대표적으로 사용됩니다. PDO는 모터 속도, 위치, Digital I/O 상태처럼 운전 중 빠르게 교환해야 하는 Process Data를 전달하는 데 사용됩니다. PDO에는 통신효율을 높이기 위해 별도의 Index와 Sub-index 정보가 매번 포함되지 않으며 미리 설정된 Mapping에 따라 필요한 데이터를 CAN Frame에 배치합니다. 송신용은 TPDO(Transmit PDO), 수신용은 RPDO(Receive PDO)라고 부릅니다. 반면 SDO는 Object Dictionary의 Parameter를 읽거나 기록하기 위한 Client·Server 방식의 통신에 사용됩니다. 장치 설정이나 진단처럼 실시간성이 상대적으로 낮은 데이터 접근에 적합합니다. 쉽게 말하면 PDO는 운전 중 반복적으로 필요한 데이터를 효율적으로 교환하는 통로이고 SDO는 장치 내부의 설정값과 Parameter를 조회하거나 변경하는 통로라고 이해할 수 있습니다. 다만 PDO의 전송주기는 Sync, Event, Timer 등 설정방식에 따라 달라질 수 있으므로 모든 PDO가 동일한 주기로 전송되는 것은 아닙니다.

NMT와 Node ID는 CANopen 네트워크에서 어떤 역할을 할까?

CANopen 네트워크에서는 여러 장치를 Node로 구성하며 각 장치는 일반적으로 고유한 Node ID를 사용합니다. CANopen의 많은 CAN Identifier는 이 Node ID와 통신기능을 조합하여 결정되므로 같은 네트워크에서 Node ID가 중복되지 않도록 관리해야 합니다. NMT(Network Management)는 각 Node의 통신상태를 관리하는 기능으로 Initialisation, Pre-operational, Operational, Stopped 등의 상태를 이용합니다. 장치가 Operational 상태가 되면 설정에 따라 PDO를 이용한 정상적인 Process Data 교환이 가능해집니다. 또한 Heartbeat 기능을 이용하면 Controller가 각 Node의 상태를 감시하여 장치가 정상적으로 동작하고 있는지 확인할 수 있습니다. CAN 기반 물리 네트워크에서는 Bus 양 끝의 적절한 Termination과 케이블 구성도 중요하며 전송속도가 높아질수록 허용 가능한 네트워크 길이가 제한되는 특성이 있습니다. 결국 CANopen을 안정적으로 사용하려면 CAN 배선만 이해하는 것이 아니라 Node ID, Object Dictionary, PDO·SDO, NMT와 Device Profile이 어떻게 함께 동작하는지를 이해해야 합니다.

jssj2627

함께 보면 좋은 글

댓글 0

첫 댓글을 남겨보세요.

error: Content is protected !!

광고 차단 알림

광고 클릭 제한을 초과하여 광고가 차단되었습니다.

단시간에 반복적인 광고 클릭은 시스템에 의해 감지되며, IP가 수집되어 사이트 관리자가 확인 가능합니다.