You may ask why we built our own stepper motor driver instead of using existing one? This is very good question.
Long story short. We have evaluated many different stepper motor controllers available on the market and each of them have at least one of the following major issues:
- too slow
- not accurate enough
- cannot handle big loads
- cannot handle situation when external force is applied to motor shaft
- lose control on rapid movements caused by external forces
- do not work in closed loop
- very expensive
We have not found a product that is free from all above issues. On one hand, there are solutions that are great from technical point of view but there are just too expensive. On other hand, products that have reasonable price are not so great if we consider their features.
We needed something that is dedicated for motion platforms but universal enough to be used also in other applications. We needed fast and accurate stepper motor controller which offers PLC functionality. We needed device that works in closed loop mode and does not required "ticks" applied from external control. We needed something that has reasonable price. The answer was PS-SMC100.
PS-SMC100 is a very accurate, high performance motor driver that can handle 4 coils stepper motors and high demanding DC motors.
It supports automatic control resuming. When huge external force is applied on motor's shaft, desired position will not be reached. However PS-SMC100 automatically detects when the force is gone and resumes motor control routine as soon as possible - no resets or other external input signals are required in that situation.
The controller works in close loop mode - it measures current on coils and it uses encoder (or potentiometer) to verify motor position.
It have ticks/direction interface via digital inputs but it works best with high speed RS-485 in half duplex mode with simple but powerful protocol or CAN. Full SDK with protocol specification and examples is delivered together with the controller.
PS-SMC100 can be put into stack and managed by external unit (or embedded PLC) which makes it compatible with our standard motion software but also adds support for USB and Ethernet.
- Automatic control resuming - after losing control to due external force applied to motor's shaft, the controller automatically resumes control routine when the external force is gone
- Dynamic microstepping (up to 256) - it gives smooth start, stops and low speed movement but also really fast movement at highest speed
- Torque ripple compensation for 2 phase stepper motors
- Additional I/O ports (3 configurable digital inputs, 2 configurable analog inputs and 2 digital outputs)
- Soft starts and stops
- RS-485 and CAN as main control interfaces
- Motor strength can be changed at runtime
- Dedicated input port for 3 limit switches that can also be used as generic 6 digital input ports
- Support for 5V and 24V encoders with different configuration of ticks per rotation
- Support for 10V potentiometers
- Support for external motor brake
- Emergency stop does not shut down logical section of the controller - it allows to monitor what is going on with the motor
- Stackable - up to 16 units can be connected together
- LCD displays status and errors
Supported motor types
- 4 coils stepper motor up to 8A
- DC motors up to 8A
- DC motors paired up to 16A - the motor is connected to both A and B PS-SMC100 outputs
- Half duplex RS-485
- Optional USB and Ethernet
- RS-485 or CAN frames specified required position, required speed, required strength and start/stop ramps - the controller does the rest
- Optional ticks and direction signals given on digital inputs
- Optional required speed as voltage on analog input
- Optional required strength (current) as voltage on analog input
With extension card from PS-SMCE0x family installed, the PS-SMC100 becomes fully programmable logical controller. However instead of Java, Javascirpt or quasi script language, full power of C/C++ is used here.
Our PLC solution uses 2 connected micro-controllers, one is used to control motor at runtime and another one is used only for PLC. This means that PLC micro-controller is fully programmable, there are no limitation. It does not mean that everything has to be written from scratch because as part of SDK we provide easy in use API that includes IPC and I/O libraries. This means that the controller can be programmed by beginners but also by experienced developers.
- Full hardware separation - communication between PS-SMC100 and PS-SMCE0x is done via IPC API
- Fully programmable STM32F1xx or STM32F4xx micro-controler
- Micro-controller clock speed - from 72MHz to 168MHz
- Flash can be written by main micro-controller so no external hardware is required
- Optional additional I/O ports dedicated for PLC
- Optional USB port dedicated for PLC
- Optional Ethernet dedicated port for PLC
- Optional RS-485 dedicated port for PLC
Coming soon. Check out our Facebook or News to receive latest news.