MoonWalker Series Motor Controllers User’s Manual 03. 통신 포트 연결
MoonWalker Series
Motor Controllers
User’s Manual
MW-MDC24D100S / MW-MDC24D100D
MW-MDC24D200S / MW-MDC24D200D
MW-MDC24D500S / MW-MDC24D500D
※ 사용자 매뉴얼에 포함된 정보는 정확하고 신뢰성이 있는 내용입니다. 그러나 출판 당시 발견되지 않은 오류가 있을 수 있으니 사용자는 자신의 제품 검증을 수행하시기 바라며, 전적으로 사용자 매뉴얼에 포함된 정보에 의존하지 마시기 바랍니다.
3. 통신 포트 연결
이 장에서는 PC(Personal Computer)나 마이크로컨트롤러(Microcontroller)를 제어기의 통신 포트에 연결하는 방법에 대해 설명합니다. 제어기는 모델에 따라 시리얼과 CAN 통신을 사용할 수 있습니다. 여기서 시리얼 통신은 USB(VCP; Virtual COM Port)와 RS-232를 말합니다. 제어기 모델에 따라 지원되는 통신 포트와 통신선 결선 정보는 데이터시트를 참조하기 바랍니다.
통신 포트와 관련 있는 제어기의 구성 파라미터(Configuration Parameter) 오브젝트는 다음과 같습니다:
· device_id – Device ID
· can_br – CAN Bitrate
· serial_bps – Serial Baudrate
· serial_witchdog – Serial Watchdog
제어기의 구성 파라미터 오브젝트에 대해서는 “오브젝트 오브젝트”를 참고하기 바랍니다.
3.1 USB(VCP) 연결
사용자가 PC를 사용하여 제어기의 구성(Configuration)을 설정하고 운용 하는 가장 간단한 방법은 제어기와 PC 간에 USB 연결을 구성하고 PC에서 Motor Control UI 유틸리티를 사용하는 것입니다.
제어기의 Mini-USB (B type) 단자에 USB 케이블을 연결합니다. 그러면 PC는 새로운 하드웨어를 감지하고 USB 장치 드라이버를 설치합니다. 그리고 PC에 가상 시리얼 포트(VCP)가 자동으로 설치됩니다. 정상적으로 설치가 끝나면 PC에서 Motor Control UI 유틸리티를 실행하여 제어기를 설정하고 운용 할 수 있습니다.
그림 3. 제어기와 USB(VCP) 연결 |
USB의 VCP는 PC의 장치관리자에서 다른 시리얼 COM 포트와 동일하게 표시됩니다. VCP를 통해 시리얼 통신을 기반으로 하는 다양한 응용프로그램(예, HyperTerminal)을 사용할 수 있습니다. 또한 VCP는 사용자가 응용 소프트웨어를 쉽게 작성할 수 있도록 합니다. COM 포트를 열고 시리얼 데이터를 주고받는 것은 여러 프로그래밍 언어에서 잘 문서화 되어있으며, 전통적으로 제어기와 통신하기 위한 가장 기본적인 방법입니다.
제어기가 USB를 통해 PC에 처음으로 연결되면 Window는 무작위로 COM 포트 번호를 할당하게 됩니다. 하지만 Motor Control UI 유틸리티에서 장치를 검색하는 기능을 사용하면, 열려있는 모든 COM 포트를 검색하고 제어기를 감지해서 자동으로 연결해줍니다. 사용자가 제어기와 통신하는 소프트웨어를 직접 작성하는 경우, COM 포트 할당 번호가 바뀔 수 있다는 것을 고려해야 합니다.
3.1.1 시리얼 포트 설정
시리얼 포트 설정은 USB(VCP)와 RS-232에 공통으로 해당됩니다. 제어기의 기본 시리얼 포트 설정은 다음과 같습니다:
· 115200 bps (제품 초기 설정 값)
· 8-bit data
· 1 start bit
· 1 stop bit
· No parity
· No flow control
제어기의 USB(VCP)와 RS-232 통신 속도는 제품 초기 설정 값(Factory Default Value)으로 115200 bps로 설정되어 있습니다. 사용자는 ‘Serial Baudrate’ 파라미터 설정을 통해, 통신 속도를 각각 다른 속도로 변경할 수 있습니다. 하지만 통신 속도를 제외한 다른 통신 관련 설정(data bits, start bit, stop bit, parity, flow control)은 변경이 불가능합니다. 사용자는 시리얼 통신을 사용하는 PC 또는 마이크로컨트롤러의 통신 파라미터를 제어기와 일치하도록 설정해야 합니다.
시리얼(USB, RS-232) 통신은 흐름 제어 없이 수행되는데, 이는 제어기가 항상 데이터를 수신할 준비가 되어있고 언제든지 데이터를 전송할 수 있다는 것을 의미합니다.
3.2 RS-232 연결
제어기는 RS-232 시리얼 통신을 통해서 PC에 접속할 수 있습니다. 이 연결은 제어기에 명령을 전송하고 제어기에서 다양한 상태 정보를 읽어오는데 사용됩니다. USB 연결에 비해 노이즈에 강하고 선의 길이 제한이나 통신 오류 발생시 복구 가능성이 높기 때문에, 제어기가 실제 현장에 배치되는 경우 RS-232 연결을 권장합니다.
그림 3 RS-232 연결 |
제어기는 Rx, Tx, GND 핀을 통해서 RS-232 통신을 하게 됩니다. 제어기의 Rx 포트를 PC의 COM 포트 Tx)에, Tx 포트를 Rx에 연결한 후 RS-232 통신을 사용하면 됩니다.
제어기 모델에 따라 커넥터가 D-Sub 또는 SMH200 커넥터로 구성되어 있습니다. 자세한 내용은 제품의 데이터시트를 참조하기 바랍니다.
※주의※
전기적인 외란(electrical disturbance)이 발생하였을 때 USB 프로토콜은 RS-232보다 복구될 가능성이 적습니다. 따라서 제어기 구성 설정 및 모니터링에는 USB를 사용하고, 현장 배치에서는 RS-232를 사용하는 것이 좋습니다.
3.2.1 RS-232 케이블 연결
RS-232 연결 케이블은 일부 제어기의 액세서리로 판매가 되고 있습니다. 케이블이 액세서리로 제공되지 않는 제어기 모델의 경우 또는 다른 이유로 케이블을 직접 제작하여 사용하여야 할 경우, DB9 암 커넥터와 3선 케이블을 사용하여 쉽게 제작할 수 있습니다.
PC의 RS-232 포트는 보통 DB9 수(male) 커넥터로 구성됩니다. 그래서 제어기로부터 연결되는 신호 선들은 DB9 암(female) 커넥터에 결선 됩니다. 다음 그림을 참조하여 제어기의 Rx, Tx, GND 핀을 DB9 암 커넥터의 핀으로 연결합니다.
그림 3 제어기와 DB9 Female 커넥터 연결 |
여기서 커넥터의 핀 번호를 혼동하지 않아야 합니다. 상기 그림의 핀 번호는 전면에서 커넥터를 보는 것을 기준으로 합니다. 대부분의 커넥터 브랜드는 플라스틱 성형 부분에 핀 번호가 적혀 있습니다.
3.2.2 RS-232 케이블 확장
RS-232 연장 케이블은 대부분의 전자부품 취급점에서 구할 수 있습니다. 하지만, 쉽게 DB9 수 커넥터와 DB9 암 커넥터, 3선 케이블을 사용하여 제작할 수 있습니다. 제어기의 25핀 핀 배치와 일치하지 않는 상용 9-PIN TO 25-PIN 컨버터를 사용하지 마십시오.
이러한 구성 요소는 전자부품 취급점에서 구할 수 있습니다. CAT5 네트워크 케이블이 권장되고, 케이블 길이는 30m까지 연장할 수 있습니다.
RS-232 케이블을 확장할 때는 다음 두 케이블을 구분하여야 합니다:
연장 케이블 – 케이블 양단이 DB9 수 커넥터와 DB9 암 커넥터로 구성
크로스 케이블 – 케이블 양단이 DB9 암 커넥터와 DB9 암 커넥터로 구성
연장 케이블의 한쪽 끝은 PC에 연결하고 다른 한쪽 끝에는 제어기로부터의 RS-232 케이블 커넥터에 연결하게 됩니다. 그러므로 연장 케이블은 PC의 커넥터와 동일한 모양의 커넥터를 제공하기 때문에 PC에 연결하는 것과 동일하게 연결하면 됩니다.
하지만 크로스 케이블은 PC와 PC를 직접 연결하는데 사용되기 때문에 케이블 내부에서 Rx핀과 Tx핀이 교차 연결되어 있습니다. 이러한 케이블의 양쪽 끝은 동일한 DB9 암 커넥터로 구성됩니다. 다음 그림을 참고하여 DB9 수 커넥터와 DB9 암 커넥터의 연결을 혼동하지 마시기 바랍니다.
그림 3. 제어기와 DB9 Male 커넥터 연결 |
3.3 CAN 연결
CAN(Control Area Network)은 차량용 네트워크 시스템으로 개발된 통신입니다. 주로 마이크로컨트롤러 간의 통신을 위해 설계된 시리얼 네트워크 통신 방식입니다. CAN은 1:1 통신뿐 아니라 멀티 마스터/슬레이브 통신이 가능합니다. 특히 장거리 통신이 가능하며 하나의 마스터 PC를 통해 여러 개의 슬레이브 제어기들을 제어할 수 있습니다. 단일 CAN 버스에서 최대 127개의 제어기를 최대 1Mbit/s의 속도로 함께 사용할 수 있습니다.
그림 3 CAN 통신을 위한 연결 |
CAN 통신은 2가닥의 CAN H(CAN Bus High)와 CAN L(CAN Bus Low) 권선으로 이루어진 버스 형태로 되어 있고 이 버스를 통해서 통신합니다. 상기 그림 3 와 같이 제어기의 CAN H는 버스의 CAN H에 제어기의 CAN L은 버스의 CAN L에 연결합니다.
이때 CAN 버스의 종단에 120Ω 저항을 연결해야 합니다. 이유는 CAN H와 CAN L 사이의 전압을 2V로 유지해 줌으로써 버스라인 종단에서 데이터가 중첩될 가능성이 있는 메아리 현상을 제거해줍니다.
3.3.1 CAN 통신속도 설정
CAN 버스를 공유하는 모든 제어기(장치)의 통신 속도는 동일하게 설정되어야 합니다. 제어기는 제품 초기 설정 값(Factory Default Value)으로 CAN 통신 속도(Bitrate)가 1Mbps로 설정되어 있습니다. 사용자는 ‘CAN Bitrate’ 파라미터 설정을 통해 제어기의 통신 속도를 변경할 수 있습니다. 파라미터 설정 작업을 쉽게 하기 위해 Motor Control UI 유틸리티를 사용하십시오.
만일 CAN 연결을 사용하고자 할 때, 먼저 제어기에 USB 연결을 통해 UI 유틸리티로 CAN 통신 속도를 서로 동일하게 변경해야 합니다.
3.3.2CAN 장치 ID 설정
CAN 버스에는 하나 이상의 제어기 및 다른 장치가 연결될 수 있습니다. 연결된 장치들은 자신의 ID를 메시지에 담아 네트워크에 전송합니다. 만일 둘 이상의 장치가 동일한 ID를 사용한다면 메시지를 수신하는 장치는 메시지의 발신자를 구분할 수 없게 되어, 장치간 메시지의 교환에 혼선을 초래합니다.
제어기의 장치 ID(Device ID)는 공장 출하시 모두 1로 설정되어 있습니다. 사용자는 ‘Device ID’ 파라미터 설정을 통해 제어기의 장치 ID를 변경할 수 있습니다.
CAN 연결을 하고자 할 때, 먼저 제어기에 USB 연결을 통해 Motor Control UI 유틸리티로 장치 ID를 서로 중복되지 않게 변경해야 합니다. Motor Control UI 유틸리티는 CAN 통신으로도 제어기에 연결이 가능합니다. CAN 네트워크에 장치 ID를 변경하고자 하는 제어기를 하나만 연결한 상태에서 UI 유틸리티로 장치 ID를 변경합니다.
3.4 통신 포트의 기능
PC를 제어기에 통신으로 연결하는 것은 제어기를 용도에 맞게 구성하고 운용하기 위함입니다. USB, RS-232, CAN 연결은 제어기 오브젝트들의 모든 기능을 엑세스 할 수 있도록 합니다.
사용자가 제어기를 설정하고 제어기를 간단하게 운용 및 모니터링 하기 위해 PC에서 제어기로 USB 연결을 하고 Motor Control UI 유틸리티를 실행합니다. PC 유틸리티로 다음과 같은 일들을 쉽게 할 수 있습니다:
· 제어기의 모델과 하드웨어/소프트웨어 버전 읽기
· 모터에 구동 명령을 전송
· 모터의 상태(공급 전압, 소비 전류 등) 읽기
· 모터제어기의 구성 파라미터를 설정
· 제어기의 I/O 입력을 읽고 출력을 쓰기
그리고 제어기의 RS-232, CAN 연결을 통해 제어기를 운용하는 마스터 PC나 PLC, 마이크로컨트롤러가 연결될 수 있습니다.
3.4.1 명령의 충돌
제어기의 USB, RS-232, CAN 통신 포트로 여러 장치와 연결하여 동시에 메시지를 주고받는 것이 가능합니다. 통신 포트로 수신되는 메시지는 동일한 우선순위를 가지며 먼저 도착한 메시지를 먼저 처리하게 됩니다.
다중 통신의 예로 다음과 같은 상황을 고려해 볼 수 있습니다: USB 포트로는 PC가 연결되어 사용자가 Motor Control UI 유틸리티를 통해 제어기를 설정하고 간단한 구동 명령을 내리면서 모니터링하고 있습니다. 그리고 RS-232나 CAN 포트로는 마스터 PLC가 연결되어 제어기에 구동 명령을 내리고 상태를 모니터링하고 있습니다.
이때, 서로 다른 통신 포트들로부터 수신되는 명령이 충돌하지 않도록 주의해야 합니다. 상수나 상태, 구성 파라미터를 읽는 메시지는 서로 충돌하지 않습니다.
만일 서로 다른 통신 포트들로부터 수신되는 명령이 서로 다른 모터 채널에 대한 명령일 때는 문제가 없습니다. 예를 들자면, RS-232 포트에서는 채널 1의 모터를 구동하는 명령이 수신되고 CAN 포트에서는 채널 2의 모터를 구동하는 명령이 수신되는 경우입니다.
※ 만일 명령이 충돌하는 경우, 명령 아비터(arbiter)에 의해 명령이 중재 됩니다. 하지만 사용자가 의도치 않은 동작이 발생할 수 있기 때문에, 하나의 모터 채널에 두 마스터가 동시에 명령을 내리는 상황이 발생하지 않도록 주의하여야 합니다.
3.4.2 명령 와치독 타이머
명령 와치독 타이머는 제어기에 명령을 내리는 마스터 PC나 마이크로컨트롤러가 의도치 않게 명령을 중단하거나 연결이 끊어져 제어기가 더 이상 명령을 수신할 수 없는 상황을 감지하기 위해 사용합니다.
사용자가 명령 와치독 타이머인 ‘Serial Watchdog’ 파라미터에 0보다 큰 값을 설정한 경우, USB 또는 RS-232, CAN 통신을 통해 타임아웃 기간 내에 모터 구동 명령이 도착하면 명령 활성 상태로 간주합니다. 타이머가 타임아웃 되면 비활성으로 간주하며 제어기에 연결된 모든 모터에 대해 정지 명령이 내려집니다. 이때 스크립트나 아날로그 입력, 펄스 입력 포트로 계속 명령이 수신되고 있는 상태라면 모터에 대한 정지 명령은 해제되고 가장 최근에 수신된 명령을 수행하게 됩니다.
USB 또는 RS-232, CAN 통신으로 수신되는 상수, 상태, 구성 파라미터 읽기/쓰기 메시지는 명령 와치독 타이머에 영향을 주지 않습니다. 또한, 스크립트에 의한 명령과 디지털 입력, 아날로그 입력, 펄스 입력 포트에 의한 명령도 명령 와치독 타이머에 영향을 주지 않습니다.