The priority of host communications over the execution of the stored program code:
This allows the SmartMotor to stop execution of stored code in an orderly manner, and begin execution of incoming serial code as soon as the one byte serial buffer is filled. Execution of the stored program resumes as soon one of the two following conditions is met:
1. A valid command is executed
2. An incoming command is determined to be invalid and is dumped.
The non-interrupt-ability of the busy/search (code scan) state of the SmartMotor:
A busy/searching state occurs whenever the SmartMotor is searching for an address in memory at which it can resume code execution. This address search occurs during the negative evaluation of an IF statement. It also occurs during a WHILE statement during a period after the last executable command of the LOOP block and the execution of the WHILE's argument expression. The relative freedom of action is provided by the SmartMotor's change-on-the-fly capability. Operational modes and trajectories can be changed on the fly.
While it is possible for a supervisory host to interrupt the execution of a well-structured stored program, taking direct command of the application during critical periods, the relative independence of each SmartMotor relieves the host of the direct processing burden of each axes control, and reduces the required band-width of the serial communications channel.
In stand alone applications, the SmartMotor relies entirely on its EEPROM memory for user program storage. The SmartMotor can handle I/O from an outside source if desired, can communicate through RS232 or other mechanisms. RS232 communications retain their execution priority regardless of system design. Multi-axis stand alone applications which use one SmartMotor as a host platform have been implemented and are currently operating in the field.