Motor Control Platform (MCP) Firmware
Number chains of zeros and ones are the flow of information through the circuits of microcomputers. There they are acquired, computed and output as data. Microcomputers (processors) are also included in every BG motor with integrated electronics. They receive information from a variety of sensors and interfaces and use it to calculate the status of the motor. In addition to the current position and the speed, this also includes information such as: "Will the motor soon overheat at the current load?", "Has the last adjusted current already resulted in a necessary speed change?" or "Which digital inputs are currently set?".
Customers of Dunkermotoren do not want to deal with these questions, nor with any number chains. They want the motor to rotate and deliver power when required by the machine in which the motor is installed. For this to succeed, the microcomputers must be programmed accordingly. The lower the effort for the customer, the more time-consuming the programming is. Dunkermotoren is committed to keeping the customer's effort as low as possible. The effort invested in the development of the software is correspondingly high.
The software program that allows the motor to rotate, monitors permanently its status and compensates for faults or delivers messages, is called firmware. Nothing works in the motor without this software. It is the core, so to speak, the holy grail of motor control. Its programming is correspondingly complex. Nothing should go wrong here. Many man-years of work have gone into a professional motor firmware. Currently about 650 different motor parameters can be read out and/or adjusted with the Dunkermotoren firmware. These are e.g. maximum currents, homing method, settings for absolute encoders, PID tuning parameters, just to name a few. And these are only the parameters of interest to the customer. Internally, significantly more values are reliably processed. This illustrates how sophisticated and complex an effectively working firmware must be.
So far, depending on the motor processor used, a dedicated firmware has been developed. Due to the different processors, in the past the same work had to be done multiple times, namely for several hardware versions. This is no longer necessary, because with Dunkermotoren’s new Motor Control Platform (MCP), there is only one software core left that runs on all motors. Is an added feature, all motors will equally benefit from it.
The challenges in developing this software were that the features of all previous motors, also had to be available in the MCP, that the firmware had to be extremely robust and at the same time, so flexible that new features could be easily implemented.
To this end, a programming method was implemented that follows the strict MISRA-C programming guidelines. These guidelines are used i.e. for programming in aircraft construction, medical technology and rail transport. In addition, methods such as static code analysis, code review, module and system tests are implemented in the development process. This appears in a firmware that meets the highest quality standards. This firmware is modular and object-oriented and has precisely defined interfaces. This makes it easy to perform extensions without having to change the core of the software. Thanks to 20 years of experience in motor software development and even significantly longer experience with customer applications, previous requirements could be combined and effectively implemented on an MCP basis. To be future-proof, the programming code was implemented in a way that it can also be transferred to future generations of processors. For customers, it remains the same: BG motors from Dunkermotoren run all the time. Customers can use digital or analog inputs or the bus interface to decide when the motor shall rotate and deliver power, namely when the machine requires it in which the motor is installed. Good to know that the software used inside the motor, diligently and constantly does its complex work, and you know as a customer: Dunkermotoren’s motors: running!
Drive Assistant 5 (DA5)
BG motors with integrated electronics are called “intelligent” because they react autonomously to commands, they autonomously recognize fault conditions and provide information about their status. But this intelligence must be controlled, so that the motor does exactly what it is supposed to do. And if it does not do that, you must find out why. For both control and fault analysis, smart motors have a computer interface. Of course, a computer program that communicates with the motor is needed for these commissioning and service functions.
For this purpose, Dunkermotoren provides the "Drive Assistant" and "SI Configurator" programs. SI motors can be adjusted easily and intuitively with the "SI Configurator", e.g. fixed speeds or acceleration ramps. So far, several versions of the Drive Assistant are available: when using the Drive Assistant 2.7, CANopen (CI) motors can be conveniently set and analyzed. With Drive Assistant 3.3, PI motors are set so that they can be positioned, speed-controlled or operated via current control without a higher-level controller. In addition, for BG 95 dPro CO motors there is a Drive Assistant, with tuning, analysis and Python script function.
All programs are working properly and are highly valued by customers. But why can’t a single program set and analyze all types of motors? It depends, among other things, on the different electronics of today's motors. The Motor Control Platform (MCP) eliminates this problem. The processors used in the different motors and the new firmware, basically work in exactly the same way. Therefore, in the future, only a single tool will be needed for commissioning and service.
A completely updated version of the Drive Assistant has been developed for all MCP motors: Drive Assistant 5. This version can be used for all new motors, whether the simple dMove or the dPro, which was developed for demanding tasks. Customers can use it to comfortably set up bus motors (e.g. CANopen, PROFINET, ...) as well as stand-alone motors (like today's SI, PI and MI motors). In stand-alone mode, these are set up once and then react independently to digital and analog input signals and output information about operation and malfunctions via digital outputs.
Drive Assistant 5 has been completely redeveloped and is therefore "all of a piece". This also affects the installation time, which has been greatly reduced. In addition, the duration of data transmission for the parameterization is significantly shorter. This is mainly because positioning, speed and current modules are already integrated in the MCP motor (Quickstart Plus). Thus, only a small amount of information has to be transmitted.
Even the design of the drive assistant has been redesigned. Where appropriate, a graphical view has been added and windows can be faded in and out as needed, to show only the information that is required. For the succeed of the operation and without having to constantly consult the documentation, additional information are displayed in the corresponding boxes.
Like the MCP firmware itself, the Drive Assistant 5 software has been designed in a modular way, so that extensions can be made at any time. In the future, functions such as predictive maintenance, data analysis or auto-tuning will be easily integrated into the Drive Assistant.
Infobox Drive Assistant:
Drive Assistant Today
Drive Assistant 5
Several different versions
A single version for all motors
Communication only via CANopen
Communication via CANopen, RS 485, Ethernet
Uploading the parameterization takes several seconds
Uploading the parameterization takes approx. 1 second
Fixed assignment of digital inputs and outputs
Flexible assignment of digital inputs and outputs
Rather number-oriented design
Rather graphically oriented design
Flexibility is becoming more and more important for customers. The keyword "Mass customization" is on everyone's lips. The term is a mixture of "mass production" and "customization". Production must become increasingly flexible, because the products are also becoming more and more individual. There is an increasing need for drives, not only to perform a single function throughout the entire product life, but also to be able to flexibly perform different motion sequences when manufacturing different products.
Accordingly, the software must also be flexible. Even in the early days of intelligent motors, they had an interface to a higher-level computer. This enabled the motor to execute a wide range of commands received from a central intelligence, e.g. a machine controller. The central intelligence was flexible and could bring about the most diverse motion sequences.
In the meantime, motors have their own intelligence and a higher-level control system can be completely dispensed with. This intelligence, and thus the flexibility, come from the software inside the motor. During the changeover to MCP, Dunkermotoren attached particular importance to flexibility. It is possible that motors can be programmed in a complete different way and adapted to new requirements at any time. A nice side effect for the customers is that they have lower storage costs. Service technicians must keep less material available because the respective motors do not have a fixed function assignment but are not assigned to a function until commissioning. A motor can be adjusted for a wide range of applications. But what makes the motors so flexible?
On the one hand, the flexibility is based on the modular firmware, which allows extensions without any problems. On the other hand, two new features were introduced: Quickstart Plus and free programming of MotionApps. This allows to implement simple parameter adjustments or completely autonomous programs with PLC functions.
Isn't it super convenient to switch on a switch and the motor runs, regulated, at a constant speed? Another fixed speed is set with another switch. If required, the speed can also be adjusted via an analog voltage. One of the most successful products of Dunkermotoren, the SI Motor, already works in this way today. Many hundreds of thousands of these motors are already driving customer applications.
Of course, Dunkermotoren also serves wishes that deviate from the standard. These are, for example, more than two fixed speeds, digital outputs that switch when events are combined, or the customer specific assignment of digital inputs to certain functions. So far, either firmware adjustments were necessary, or motors were used with more powerful processors, such as PI or MI motors.
With the MCP, was introduced the Quickstart Plus feature, which allows customers to make adjustments themselves. Digital inputs can be freely assigned functions. Thus, a fixed speed can be assigned to a combination of digital inputs, to the next combination a position and to a further combination a maximum current, thus limiting the torque of the motor. Thus, with a simple and very cost-effective motor, standard functions are possible now, which were previously reserved only for programmable motors of Dunkermotoren.
Example: To lift castings in a foundry, a BG motor is started via digital inputs in speed mode. A cable winch driven by it unwinds a steel cable with a hook, until the hook can be attached to the casting. When the hook is attached, the rope is tightened in the current control mode with a certain force, which is set so that the casting is still on the ground, but the rope is taut. Now it is possible to check whether the hook is really tight without lifting the casting. Thereafter, with a further digital input combination, a relative positioning can be triggered, which lifts the casting to a defined height.
This complex function would have been possible in the past only with a specially programmed motor. When using Quickstart Plus, this can be done by the simplest regulated BG motor by default. The parameters and the assignment are set by means of the Drive Assistant 5 commissioning and service software.
Not only the inputs can be freely configured, but also the outputs. There are a variety of deviations from normal operation, e.g. "peak current exceeded", "contouring error", "overtemperature", "undervoltage". Not all of these states need to be displayed in each application. If, for example, the supply voltage of a motor is intentionally switched off, the detected under voltage should not be interpreted as an error. With Quickstart Plus, one of its standard function in the new generation of motors, you can freely choose which states are interpreted as faults and which ones are tolerated. The error message can then be assigned to any digital outputs.
Quickstart Plus makes even the simplest motors very flexible. If even more flexibility is required, or if the motor has to carry out complete tasks autonomously, MotionApps offer the right conditions for doing this.
MotionApps are tools for motor programmers like stonemason's hammers and chisels are tools for stonemasons. MotionApps allows the functions of motors to be completely customized. Shall the motor rotate 4.5 turns counter clockwise every full hour? Shall it calculate a braking profile based on the weight, length and speed of an object that comes to rest exactly in the middle of a driven belt? Shall it control a complete packing station including some sensors, belts and other auxiliary motors? This is all possible with MotionApps.
MotionApps are sequential programs for motors that a programmer writes for specific customer applications. He can rely on a huge stock of motor parameters, calculating functions and logical links. He can program sequence loops that are interrupted under certain conditions, define tables that specify which action has to be performed under which conditions or send commands to other devices and receive feedback from these devices.
With so much freedom in programming, mistakes can sometimes happen. It can happen that the motor stops or suddenly changes its speed when the programmer would just not have expected it. A so-called "bug", i.e. an error has crept into the sequential program. Therefore, the development environment in which the MotionApps are written provides the so-called "debugging" tool. This means that the sequential program can be stopped at any time and the parameters read out. In this way, errors can be detected and corrected comfortably and very quickly.
Even if many BG motors with integrated electronics look almost identical after more than 20 years, their interior can no longer be recognized. In addition to completely new electronics with a powerful processor, the motors feature software functions that would have been unimaginable 20 years ago.