PLC & Serial
Closed loop motion control of Piezo Motion piezomotors is straightforward. Each motor requires an encoder (which is factory-fitted to the motor) and a driver board (PCB) to create necessary excitation of the piezo resonator for motion. Pre-programmed motion control algorithms enable implementation of several operators/commands for specific motion control. The key commands are for defining of speed (“Set Velocity”) and for movement to a defined position (“Destination”). These commands are resident within a library which can be accessed using either of the following options:
- Piezo Motion’s programmable logic control (PLC) software via PC (Windows 10 or later)
- Serial commands via serial (RS-232) port
- Piezo Motion’s Python API library
These control options are discussed in more detail below.
Your questions are important to us.
Contact Piezo Motion by phone or email and a member of our team will reach back to you.
1. Motion Control Using Piezo Motion’s Programmable Logic Control (PLC) Software
The algorithms, which have been optimized based on the specific dynamic characteristics of the motor, analyze encoder feedback signaling and perform real-time noise filtration and temporal processing. This provides the following advantages:
- Increase in the range of speed control range during continuous mode operation.
- Reduction in ultrasonic vibrational noise during speed control.
- Substantial increase in the accuracy of speed control (speed stabilization) with external load changes.
- Dramatic increase in system response time during speed stabilization.
A view of the PLC software window from Piezo Motion’s motion control is shown above
SET VELOCITY COMMAND
Four different algorithms have been designed to control piezo motor speed, a brief description of these is provided here:
Continuous-frequency algorithm – Medium to high speeds are regulated by varying the excitation frequency along the resonance characteristic of the piezo motor within its medium-frequency region during medium to high speed motion.
Hysteresis algorithm – Low speeds are regulated by varying the excitation frequency along the resonance characteristic of the piezo motor within its high-frequency region during lower speed motion.
Modulation algorithm – Slow speeds are regulated by the on formation of train excitation packets with specific fixed repetition rates. The packets are internally frequency modulated during slow speed motion.
Frequency modulation algorithm – Very slow speeds are regulated by the formation of train excitation packets (similar to modulation algorithm) but with a varying repetition rate during very slow speed motion.
An example of the four different speed control algorithms for a linear motor is provided here.
- Medium to high speed: 140 mm/s … 3 mm/s (1 mm/s speed increment)
- Low Speed: 3.0… 1.4 mm/s (0.1 mm/s speed increment);
- Slow Speed: 1.4…0.3 mm/s (0.1 mm/s speed increment);
- Very Slow Speed: 0.3 -0.014 mm/s (0.01 mm/s speed increment).
An example of the four different speed control algorithms for a rotary piezo motor is provided here.
- Medium to high speed: 2 rpm to 100 rpm (1 rpm step size)
- Low Speed: 1-2 rpm (0.1 rpm step size);
- Slow Speed: 0.2-1 rpm (0.1 rpm step size);
- Very Slow Speed: 0.01-0.2 rpm (0.01 rpm step size).
In these examples, control over the entire range of speeds is performed using a root algorithm. The root algorithm is based on the interval principle, where each range of speed uses its own algorithm and its own starting frequency point. Depending on the set speed (which is specified by the “Velocity” command), the program selects the optimum algorithm to ensure stabilization of the required speed.
These algorithms, which were developed by Piezo Motion over several years, differ from traditional PWM algorithms in that they enable the user to significantly extend the range of speed control of the piezo motor, while simultaneously reducing potential acoustic noise and parasitic ultrasonic vibration.
SET DESTINATION COMMAND
The main command responsible for movement and positioning is the "Destination" command. For a linear motor movement using this command is specified in micrometers (µm), where the resolution of the encoder is 2.6 µm. For a rotary motor movement this command is specified in pulses from the encoder; where the resolution of the encoder is 196 µrad (40.5 arc.sec).
The underlying algorithm has been developed to optimize motion control by analyzing the required speed of movement and specific dynamic characteristics of the motor (i.e. the inertia of the rotor/carriage/loan and self-braking torque/force). The algorithm also analyses the braking distance when approaching the desired target coordinate.
Since the value of the external inertia load is initially unknown, the system is initially programmed for a fixed breaking distance and fixed speed of braking based on the follow assumptions:
- For rotary a piezo motor - moment of inertia of the rotor Io = 70 gcm2 and maximum programmed speed ωo = 60 rpm;
- For a rotary piezo motor, taking into account the additional external inertial load I, the maximum programmed speed ω in a given coordinate can be calculated as:
- For linear piezo motor - inertial mass of the movable carriage mo = 20 g and maximum programmed speed Vo = 80 mm/s.
- For a linear motor, taking into account the additional external inertial mass m, the maximum programmed speed V in a given coordinate can be calculated as:
Note: If the programmed speed exceeds the calculated above maximum speeds, the destination position can be overshot.
An example of how the Destination command implements these algorithms for a linear piezo motor is provided here:
- The Destination command analyzes the programmed speed of motion V, which is set using the Set Velocity command. If the speed exceeds the fixed speed of braking, then it algorithm decelerates the motor in the span of certain number of encoder pulses (default value) in order to achieve the fixed speed of braking.
- If the programmed speed V (set by Set Velocity command) is equal to or less than the fixed speed of braking, then positioning is performed at the programmed speed V.
- If the programmed speed V is greater than the fixed speed of braking and the travel range (determined by Destination command) is smaller than the deceleration distance, then the movement is carried out at the fixed speed of braking.
These positioning algorithms can significantly improve the accuracy of positioning and can bring the positioning resolution of movement to within the actual resolution of the encoder.
An additional Command “Braking Distance” can be implemented for custom braking distance (the default value for a linear motor is 1,300 µm or 500 pulses for a rotary motor). In this case, the command needs to be placed before the Destination command. The Destination command will then be based on the new custom value for the braking distance. If the custom value for the braking distance is set at zero (“Braking Distance(0)”) the piezo motor will work without any deceleration when approaching the target coordinate. In this case, the risk for overshooting increases.
Note: The user must choose the correct value for the braking distance in order to achieve a positioning resolution equal to the maximum achievable resolution of the encoder.
2. Motion Control Using Serial Commands via Serial (RS-232) Port
To implement motion control via the serial port, a 3-pin connector is used, which is located on the encoder daughter board of the driver, where:
contact G - common (GND);
contact R - data reception (Receiver or RXD);
contact T - transmission (Transmitter or TXD).
The connection diagram of the control device to the Daughter board of the motor driver is shown below.
To start a transfer of control package to motor driver, the code "5" needs to be sent, which prepares the microprocessor for receiving the package. Each package includes three main fragments:
- number of transmitted bytes;
- code of the operator;
- parameters of the operator.
After executing all commands, the microprocessor sends back the code "5" (which indicates the completion of all commands), as well as the value of the number of counted pulses (4 bytes), when the last command is executed.
In order to stop the execution of the current command, code "10" must be sent. This code stops the implementation of the program.
Additional information on motion control, including PLC and Serial Port Commands is available within the product instruction manual.
3. Motion Control Using Piezo Motion’s Python API library
Piezo Motion has developed an API library of Python commands for motion control for use with Raspberry Pi, Arduino, and other third-party controller. The API and examples are available on Piezo Motion’s GitHub.com account - https://github.com/dti-motors/Public/tree/master/Python%20API
Connect With Us