Get with the program
Motion programming is a complex task for any engineer involved in motion system design. It takes a special combination of art, science, and skill to create a finely tuned device. Here we include expert advice and state-of-the-art tools to make your next p
tegrates Micro PLC programming with support software for setting up networks, operator interface HMI, inverters, and temperature controllers. Users can eliminate programming redundancy and manage entire projects from sequencing and motion control programs to confi guration of fi eld network devices.
What are the critical factors when choosing a motion programming language?
Shah • Galil: Many programmers struggle with this question. From the 1950s through 1980s, Fortran was considered the language for engineers and scientists. Now C/C++ is used much more widely. Engineers are switching to languages that make programming tasks easier, faster, more portable, and easier to maintain. Points to consider are ease of learning the programming environment, language features, multitasking/multi-threading, modes of motion, automated service routines, debugging and support tools, and cross-platform support.
Fritz • NI: One of the top challenges for motion control engineers is motion integration. Some motion control companies try to relieve these issues (and harmonize control functionality across platforms) by complying with international standards. For example, PLCopen Motion Control Library defines reusable components that reduce the hardware dependency of motion applications, increase reusability of software components, and allow engineers to adapt their knowledge when switching between tools of different vendors.
Massoud • Omron: The programming language must be real-time to ensure execution of different motion tasks. Further, in almost all applications with motion of different types involving different axes simultaneously, multitasking allows complete control of parallel tasks to execute safe and desirable motions. The programming language should have a set of well-developed APIs (application program interfaces) or a library of function calls. Engineers can use these to design and implement the application. These should include common functions, such as gearing, camming, homing, registration, absolute and incremental moves, and velocity moves. Programming tools should also facilitate development, debugging, and testing of the code, programs, and motion dynamics.
How does motion programming differ from other programming tasks?
The Kollmorgen Automation Suite from Kollmorgen is a complete machine automation solution that includes intuitive software, a variety of components, and comprehensive services with experienced engineers.
Fritz • NI: Motion control programming requires tools that provide the right level of abstraction. Engineers typically don't want to deal with low-level signaling for motors, and don't want to create algorithms that control the flow of energy within motor coils. Instead, they want to design their system based on functions that perform different move types (like straight line, arc, or contours) and use advanced features to synchronize multiple motors through gearing and camming functions. By combining different functions and defining their sequence, engineers create the motion profile, based on which the system generates the trajectory and performs the exact movement and positioning of coordinated motion axes.
Tasks like supervisory control or spline interpolation for smooth motion must be provided through a higher-level motion engine. While this level of abstraction simplifies the design of standard motion control applications, there are still many applications that require lower-level access to control algorithms or the I/O channels. For applications that require specialty I/O or advanced algorithms like field-oriented control or kinematics, some motion control software provides an interface that allows engineers to customize individual components and solve non-standard cases.
Massoud • Omron: Motion programming is unique and different from safety, PLC, and HMI in many respects. First, motion deals mainly with a dynamic system, which has its own characteristics. It's not like safety or HMI code, in which programming is more about on/off status or data exchange. Motion control, in addition to the I/O and data exchange in real-time, must execute trajectories, paths, control law, and feedback measurement dynamically and during every sample of the servo loop. It is not just commanding a move; it requires coordination, synchronization, and monitoring. Engineers should be knowledgeable about many different areas, including mechanical, control, electrical, and electronics, as motion control is a complex mechatronic system.
Wolfgram • B&R: A programmer needs to be aware of all aspects of a system when programming motion profiles. On a macro level, the mechanics of a system need to be considered. What are the limits of the system? How will system behavior change as components begin to wear? What possibilities and limitations do certain actuator types bring? On a programming level, the engineer needs to be aware of communication latencies, electrical gearing and camming requirements, and code cycle times.
We hear a lot about compatibility with IEC 61131-3. How do these languages impact motion programming?
Want to use this article? Click here for options!
© 2012 Penton Media Inc.
Acceptable Use Policy blog comments powered by Disqus




