Contents Introduction – Salient Features ......................... 3 Technical specifications and Pin description ....................4 Drive and motor connections ..........................4 Modes of operation & Slave ID Addressing ....................6 Basics of servo drive ............................8 How to use the drive ............................9 Using PC Software .............................
Introduction – Salient Features Rhino Motion Controls RMCS-2303 with UART ASCII is a high performance dc servo drive (10–30 V DC) designed for optimized operation of any DC Servo motors with quad encoder feedback. This is an amazing cost effective solution to provide closed loop servo control for various applications.
Technical specifications and Pin description Supply Voltage and Current Specification Units Comments Supply Voltage Volts DC Between +Ve and GND Phase Current Amps Peak 5 Amps per phase Pin description of the drive is as per below image: Pin No. Description Pin No.
Page 5
Drive & Motor Connection Motor Pin outs Drive Pin outs Motor Wire Color Pin No. Description Black VCC(5 V DC ) Brown +5VDC ENC_B(Encoder B) ENC_B/Hall W ENC_A(Encoder A) Orange ENC_A/Hall U M-( Motor-) Yellow Hall U M+( Motor+) Green Motor- / V Motor+ / U Power Supply Pin outs...
Modes of Operation The drive can be configured in the following three modes 1. Mode 0 Analog speed control mode : In this mode the speed of the Rhino DC Servo motor can be controlled by an externally connected Potentiometer. Speed can be increased or decreased manually based on requirement using potentiometer.
Page 7
Slave ID Addressing Multiple drives with different slave addresses can be used with a single controller on single UART bus. For this all drives should have a unique Slave Address. Using the GUI software or Modbus commands, the slave ID can be set from 1 to 247.
Basics of a servo drive This is a servo drive to work with quad incremental encoder and dc motor. When the drive starts up the encoder position is set as 0. With reference to the start position drive will always have a 32 bit number keeping track of movement.
How to use the drive: The drive needs to be configured to run in any one of the three modes described in the above section to make a closed loop control system. The drive can be configured using a PC with GUI software / Modbus controller / Arduino Board.
Software Installation Software is available here https://robokits.co.in/downloads/Rhino%20DC%20Servo%202303%20Config%20Setup.exe Download and run the setup executable. Click Next button • Verify installation destination and click Next • 10 | P a g e...
Page 11
Click Finish when Installation Successful message shows up. • Now, Software is ready to use. find the shortcut on desktop and open the software. Once the Software is installed connect USB-UART as per shown in below figure. 11 | P a g e...
COM port Selection Select COM Port for USB-UART , then click on "Connect" button. You may look in 'Devices and Printers' or 'Device Manager' for specific serial port of your device. The software supports serial ports up to COM32 only. If your device's port number is higher you can change it in - Device Manager >...
Selection Of Modbus Slave Address There are two ways to select Modbus Slave address. 1. If Slave address is already known, it can be directly selected from drop box. 2. If slave address is not known or multiple drives with multiple addresses are connected on serial bus, click search button.
Parameters READ PARAMETERS "Read Parameters" is used to read current parameters of drive. SET A PARAMETER Pressing 'Enter' on text box will change the parameter in drive but it will not be saved permanently. • 'Write Parameters' button must be clicked to save all parameters permanently. Set Position Proportional gain, Velocity Feed Forward gain and Position Integral Gain as per •...
Page 15
RESET PARAMETERS To reset the drive to default configuration click 'Reset Parameters' button. This will set all parameters to default values. When button is clicked software will ask for confirmation. Click on "Yes" to reset the drive. After Clicking on 'Yes' if reset is successful confirmation message will be shown.
Control Modes Motor can be run in 3 different modes - 0 : Analog Mode, 1 : Digital Speed Mode, 2 : Position Mode Mode 0 - Analog Control Mode In this mode drive can be controlled using an external potentiometer or analog voltage input. As this is a close loop drive, high torque (up to the maximum torque motor can provide) is available even at low speed.
Page 17
Drive to PC/Analog Connection CP2102 Pin outs Drive Pin outs Description Pin No. Voltage Divider Pin outs 3.3V Signal Potentiometer Pin outs 5 V DC Output Signal 3.3 V DC Set drive to Analog Control Of Motor in Software: By default the drive is in Analog mode. However if the mode is changed to some other then it can be set •...
DIGITAL SPEED CONTROL MODE In this mode the drive works in speed mode. It tries to reach and maintain the speed as per set parameter. • The speed can vary depending upon load and gains set. • Make sure that the set speed is always less than the motor can actually reach, otherwise the drive can give •...
Page 19
b) In this mode speed of motor(rpm) can be controlled by changing value from 0-65535. 1. Speed can be increased and decreased using "+" and "-" respectively. 2. Enable Motor : Once speed is set click on "Enable Motor" to run motor on set speed. 3.
POSITION CONTROL MODE The position control mode allows to go to absolute position with reference to 0 as start position. Current position can be set to 0 at any point of time. The drive also manages the speed and acceleration/deceleration as per set parameter while responding to any change in set position.
Page 21
However as the motor is geared motor, the ratio of the gear box determines the rotation of the output shaft of the motor for each rotation of the base motor. output shaft(rpm) = base motor(rpm) / gear ratio counts per rotation = counts per rotation X gear ratio for output shaft of base motor For example, A motor of 200 RPM with base motor of 18000 rpm, the gear ratio is 90.
Page 22
count, giving -4000 would move the motor in other direction to achieve -4000 count. Feedback section shows the actual current position and speed of motor. RELATIVE POSITION Relative position is a software function, the software takes current position as reference and moves motor to the count typed in textbox with reference to current position.
Modbus Registers Register Function Range / Default Details Command in value in HEX HEX (Decimal) (Decimal) E-stop 0700 (1792) Stops motion and stops giving power to motor Stop 0701 (1793) Stops motion, motor maintains the position Set Home Position 0800 (2048) Set current encoder count to 0 Restart Drive 0900 (2304)
Speed Command for base 0000 - FFFF 0800 (2048) If gearbox is attached output Motor in RPM (0 - 65535) RPM will be different. LSB of Position Command 0000 - FFFF 0000 (0) Send Position Command, motion (0 - 65535) is affected only when register 18 MSB of Position Command 0000 - FFFF...
Page 25
Register 2,3: Control and Mode byte (Read - Write) Register 3 is allocated for mode. as described earlier there are three different mode: Analog control(00), Digital Speed Control(01) and Position Control(02). Register 2 is control byte which is allocated for kind of motion. For example, to stop motor in Digital control mode while it is running in reverse direction 0x09 is to be set to register 2.
Page 26
Example 1. Desired position is 250000 then convert 250000 in hex and which is 0x3D090. These registers are 16 bit so send LSB of Hex value(0xD090) in register 16 and MSB of Hex value(0x0003) in register 18. Example.2. Desired position is -1000 then calculate counts as described below: Position = 4294967296 -1000 = 4294966296 Then convert count value in Hex which is 0xFFFFFC18.
Control Through Arduino Microcontroller RMCS2303 drive can be controlled by any microcontroller, PLC or PC software capable of communicating on ASCII Modbus protocol. Following section shows how to use provided library for Arduino microcontroller. Hardware Connection: DRIVE-ARDUINO MEGA CONNECTION DRIVE ARDUINO TXn (n=1,2,3 for Arduino mega2560) RXn (n=1,2,3 for Arduino mega2560)
Library Installation: Download RMCS-2303 Arduino library from http://robokits.co.in/downloads/RMCS2303drive_Arduino_Library.zip In Arduino IDE got to menu - Sketch > Include Library > Add .ZIP Library Choose the downloaded zip file. You can see confirmation if library import is successful Open examples from Menu File > Examples > RMCS-2303_DC_Servo Set parameters, make sure you choose parameters, serial port, slave id properly before uploading the code to Arduino board.
Functions for position control mode rmcs.Absolute_position(slave_id,-10000); //Move to absolute position -10000 long int b=rmcs.Position_Feedback(slave_id);//Take position feedback from drive Serial.println(b); Special Functions rmcs.SAVE(slave_id); //Save all parameters rmcs.RESET(slave_id); //Reset drive to default parameters, rmcs.ESTOP(slave_id); //E-stop the drive rmcs.STOP(slave_id); //Stop motion rmcs.SET_HOME(slave_id); //Set current position to 0 rmcs.Restart(slave_id);...
Page 30
rmcs.begin(&Serial3,9600); //uncomment if using hardware serial port for mega2560:Serial1,Serial2,Serial3 and set baudrate This function passes the pointer of serial port to be used. It's used to initialize serial port and set baudrate. Serial1 : rmcs.begin(&Serial1,9600); Serial2 : rmcs.begin(&Serial2,9600); Serial3 : rmcs.begin(&Serial3,9600); rmcs.begin(&myserial,9600);...
Page 31
rmcs.Enable_Digital_Mode(slave_id,1); Enable motor in digital mode with forward or reverse direction. 0 is forward (encoder count +) and 1 is reverse (encoder count -). Forward : rmcs.Enable_Digital_Mode(slave_id,0); Reverse: rmcs.Enable_Digital_Mode(slave_id,1); rmcs.Speed_Feedback(slave_id); This function returns the current speed of motor in long integer. Speed less than 0 is received when motor is moving in reverse direction.
Page 32
Special Functions: rmcs.SAVE(slave_id); This function will save all written parameters in drive. rmcs.RESET(slave_id); This function will reset all the parameters and set all parameters at default value. rmcs.ESTOP(slave_id); This function will stop motor and cut off power from drive to motor. rmcs.STOP(slave_id);...
Need help?
Do you have a question about the RMCS - 2303 and is the answer not in the manual?
Questions and answers