Difficulties in designing motion control system software architecture:
1. The customer's requirements are constantly increasing according to actual needs.
Due to the needs of industrial production, the demand is constantly raised, and the domestic motion control system software started late, is still in constant exploration, in more cases, the development is based on the foreign motion control software, because the software development is passive in the whole motion control system development (compared with mechanical and electrical systems, software systems are the easiest to modify and their cost is also the cheapest). Based on the above factors, the flexibility (easy to modify) and maintainability of the framework must be considered in the design of the software system architecture, the importance of this point is more important than ensuring real-time performance. The reason is that if we fully guarantee real-time performance and ignore flexibility and maintainability, our software may have to be rewritten for only one year or less, the current market competition is fierce. Our development cycle often determines the economic benefits in the eyes of the boss. What's worse is that the software we 've worked so hard to make will soon be eliminated, haha, this kind of pain is worse than not giving a bonus. After all, a sense of accomplishment is also our spiritual pillar.
In actual design, based on personal exploration, the framework is better to achieve horizontal and vertical segmentation. This is really easy to say, but it is not the case in practice, in the future, I will share my experiences with you.
2. unreasonable or unsatisfactory design of mechanical or electrical systems
There are still some gaps in mechanical design or machining in China, while the programming methods of electrical systems are often not flexible, and more logic processing is often considered, in this way, many things require the cooperation of the upper-level software, so do not feel helpless. This is also a challenge to the framework.
In addition to functions and processes, the software we do usually consider these problems. Therefore, the Framework Design of the motion control system may never have a perfect and absolute assumption premise (because there are too many actual situations that you cannot predict, including customers who want to save a switch or add a switch). In actual design, the method I adopted is that there is no absolute condition, so a function must be an independent entity, try to make it independent so that later modification will not damage the whole. If it cannot be independent, use the middleware design mode to separate it from other coupled modules, maybe I have used the best middleware mode so far, but if there is no need, do not abuse it. Otherwise, the man who is engaged in maintenance will always greet you and your family, it is also possible to think of you as an animal that you absolutely do not want to do in your life. Of course, what he said may also be your previous life. Although you cannot hear it, you must have a good sense of responsibility to have more opportunities.
Another reason is the change in the mechanical or electrical system. The most fundamental reason is that the process flow has changed. If your framework cannot cope with this change, the results will often be disastrous, it is very likely that you have to say to the customer that you want to rewrite your system. Customers are tired of yourself. I have come up with a very useful trick in the actual design, that is, the process algorithm should be designed using the strategy pattern as much as possible, generally, the process of a system is gradient or different products are produced by the same device, but the process is different, however, the input and output of the mathematical model describing the system will not change in general, so that the new and old technologies can coexist in a system through the policy model, so that we can calmly deal with it. In addition, I realized that using process algorithms as the intermediate layer of the system is the most appropriate way to separate the interface functions while dealing with the communication layer.
Iii. Most motion control systems require MS-levelOr lower
Needless to say, the software of a control system may not exceed 0.1 million lines of code, but it needs to be collected within 1 s, the number of processes may be several hundred or even hundreds of thousands of times (of course, the amount of code executed is long or short). At this time, the memory control, the calculation amount control, and your framework design are absolutely related, what's even worse is that at the 1 ms level, you must consider memory fragmentation during the framework design phase. Otherwise, your program may become a machine within 24 hours, at this time, it is reasonable for others to doubt your level. The method I used is better to encapsulate the management of the entire mathematical model in the Observer mode and interact with other modules through interfaces. Although this reduces the efficiency at a certain level, but it should be okay to overcome the memory fragmentation caused by the Framework Design. Programmers will also feel that your framework is quite comfortable to develop. Generally, the mathematical model should be relational. If there are a lot of non-relational data in your system, it is very likely that you have insufficient understanding of the system or your mathematical model is still unreasonable. In addition, if you feel it is really necessary, there is a design pattern in the design pattern that specifically handles small objects. Sorry, I have never used it.
4. The software must be stable
The stable requirement is to work continuously for several months or a year without restarting, so as to respond to the customer's operations normally, after the restart, you can quickly restore the operating status before the start and the parameters before the restart of each control device.
The stability of the software has nothing to do with the framework designer. Haha I think this sentence is wrong. I have already made it clear for the reason in the first paragraph.
5. Large computing volume and complicated algorithms of the Motion Control System
Well, what I want to say is that if there is a formula under control, it may not be able to solve the problem. Don't expect to find answers to your questions on the book or on the Internet, maybe you can find reference answers, do not take advantage of the Framework Design of the motion control system without excellent professional knowledge, or give the opportunity to others.