There are many functions encompassed in a modern bespoke automation system. These functions vary greatly and also vary from application to application. In a robot control application the computer provides the following functions:
- Run the motors (usually 5 or more)
- Read all the encoders
- Set the PWM amplifier gain for all motors
- Monitor the input lines
- Set the output lines
- Receive all communications from one or more ports
- Send information to other machines needing information
- Monitor the control panel of the robot
- Update the CRT on the controller
- Perform all the calculations needed for proper operation
- Parse the instructions in the program
- Detect errors in the program lines
As you can imagine a very powerful computer would be required to carry out all of the above functions. Most robot controllers have at least one 32 bit processor for running them. The usual configuration will have at least two microprocessors with one in charge of the motors and other in charge of all of the functions. With the advent of cheaper and specialised microprocessors additional processing units are being used to control various functions in the machine. For example, in a modern robot, the following functions are handled by separate micro-processors.
This means that the main processor tells each of the subordinate processors what they need to do in a special language they both need to understand and then go on to the next one. If the sub-ordinate processors need attention they interrupt the main processor and tell it what they need when they are asked to. Doing it this way makes it much easier to create a fast and responsive system. A modern industrial robot may have as many as 16 32 bit processors. A robot is a state machine and although there are a large number of states, it can assume only a finite number. There in lays the problem with most computer systems.