Servo Drive, Servo Motor 란 무슨 뜻이고 어떤 의미를 가지는가?
Servo Drive를 사용하는 이유 ? 어떤 프로토콜을 사용하는지 ?
위 그림은 Motor를 제어하는 그림으로 제어보드, Servo Drive Controller, 모터로 구성된다.
제어보드는 중간의 Servo Drive Controller를 제어하고 Servo Drive Controller가 직접 모터를 제어하는 구조이다. 중간의 Servo Drive Controller는 없어도 무방 하지만 여러가지 제어 측면에서 다양한 장점을 가진다. Speed Control (회전속도), Distance Control (거리제어), Torque (회전력) 제어 측면에서 제어보드에서 직접 구현하기 힘든 기능을 제공 해 준다. 또한 모터의 다양한 전압에도 대응이 가능하며 I/O 포트를 활용하여 외부에서 직접 눈으로 확인 가능한 포트를 구비하고 있다.
위 그림은 Servo System에 대한 내용으로 차이점은 Servo Drive Controller와 모터 사이에 Feedback 신호가 있다는 점이다. Feedback 신호의 주 내용은 모터의 회전수와 모터의 상태에 관한 것들이다. 제어보드는 모터의 구동을 위한 목적을 달성하기 위해 프로콜에만 집중을 하고 실제 구동은 Servo Drive Controller에 맡긴다. Servo Drive Controller에서 제공하는 많은 기능을 제어보드에서 구현 한다고 생각해 보면 제어보드의 SW 구조는 모터 구동을 위한 HW 연산도 담당 하므로 SW 구조 또한 복잡해지고 부가적인 HW 또한 늘어 나므로 실제 구동에 필요한 기능은 Servo Drive Controller와 분담하는 것이 유리하다.
Step Motor의 내부 로직에 대한 예로 그림처럼 모터를 구동하기 위한 제어회로와 Encoder가 내장되어 있다. 이 Encoder가 모터의 회전수를 기억하고 있어 Servo Drive Controller는 항상 이 Encoder 값을 확인하는 기능을 가진다.
앞에서 언급한 회전속도, 회전거리, 토그 등 여러가지 동작을 구현하기 위해 Servo Drive Controller 없이 제어보드 하나만 가지고 구현 하기는 많은 무리가 따르므로 중간에 Servo Drive Controller를 많이 사용하다.
제어보드와 Servo Drive Controller 간의 제어 프로토콜은 Modbus RTU 또는 Modbus TCP 등을 이용한다. 통신선로가 Uart 베이스인 RS-422/RS-485 같은 경우는 RTU를 Ethernet 선로의 경우는 TCP 라고 부른다.
Servo Drive Controller는 각각 Node ID 를 가지고 있어 제어보드는 프로토콜에 따라 각각의 Node ID에 필요한 제어 데이터를 전달하고 상태에 대한 응답을 가지는 구조로 되어 있다. 각각의 Node ID는 Servo Driver Controller HW에서 지정이 가능하다.
기회가 되면 ModbusRTU 프로코롤을 정리 해 보자.