Keep it simple keep it cheap
21 February 2008
With the launch of Red Drive, Rotalink has driven down the development costs of small-scale dc motor control systems, and significantly simplified motion control programming
Rotalink’s Red Drive dc motor controller - with motor, gearbox and encoder - requires no complex programming to control all the variables associated with rotational or linear movement. Its Windows-based drag-and-drop flowchart style interface uses real world values such as seconds, revolutions, and gearbox output rpm to control speed, acceleration, position, dwell etc.; and to manage digital I/O connections for interaction with limit switches, sensors, LEDs, relays and similar signals.
Red Drive’s flowchart programming approach eliminates much of the complexity typically associated with motion control systems. Dragging readily understandable flowchart blocks for start, accelerate, compare, wait and so on, onto a work area, allows program structure to be established within minutes. With a click and drag, blocks are easily moved, added or deleted. Repetitive sequences are readily identified and grouped into subroutines, and variables are manipulated for calculations and loop control. With no need to resort to Basic or C, programming is simplified, and engineers have a single consistent development environment in which to work.
The cornerstone of any Red Drive program is the motor set-up definition. In a single dialogue box, the programmer specifies motor, encoder and gearbox information directly from the appropriate catalogue pages. Only output shaft load torque, global failsafe requirements, and digital I/O pin assignment - which are inputs, which are outputs - need application-specific settings.
Output shaft load torque is used in conjunction with the speed feedback setting specified in several motion control blocks - move, accelerate, decelerate. Together, they smooth acceleration and deceleration, and ensure actual motor speed is as close as possible to programmed speed. Speed feedback also helps detect if the unit is blocked; protecting the motor from overheating, and hence the system from damage.
Once these parameters are set, the programmer can set a calibrated home position. Movement in Red Drive is specified in absolute values, and a known start point is essential to ensure that the system always starts from the same position. For example, connecting an input pin to a micro-switch at the extreme end of a linear system’s travel, or an optical sensor on the final output stage of a rotary system, allows repeatable zeroing of the system. If relative positioning is required, say in a pumping system, a Reset Home block does exactly what it says on the tin.
Once initial conditions have been specified, implementing a profile is simply a matter of dragging a sequence of move, accelerate and decelerate blocks into the program. Step parameters are set in real world values, such as rpm and seconds. Context sensitive tool-tips help the programmer with parameter selection, whilst comprehensive checks and fail-safes built into the software trap many simple errors.
Movement accuracy is assured by combining soft start/stop with user programmable acceleration sequences, simplifying power management in high-torque applications and eliminating overshoot and jerk. Specifying a final position in acceleration or deceleration blocks eliminates any discrepancy in motor performance created by variations in output load that may be present in a particular application.
Red Drive has 128 variables that can be set, incremented, decremented and checked, opening ways to improve readability and reduce memory usage where repetitive sequences occur. To build a simple loop, the programmer needs only to drag the blocks required to set initial value, increment and check end condition around a sequence to execute it n times. With 64 variables stored in EEPROM, recovery from power failure is simplified, and long-term statistics can be logged - even over the life of the end product.
Repeated sequences that do not lend themselves to loops can be quickly selected and dragged between a subroutine start/stop pair. The result can be called from anywhere within the program. With variables global to the program, simple parameter passing can be emulated, further increasing flexibility.
Contact Details and Archive...