SMC Commands

T. Ingerson
21 December, 1994: 630p

Each SMC is identified by a unique name, such as pfccd, cf60, argus, etc... Smart Motor Controllers are always listening for ASCII commands over their Command Channel, parsing out strings separated by blanks. When one of these strings corresponds to the SMCs name, it interprets all subsequent commands and acts on them.

The general SMC command syntax is:

[target] [mechanism] [action] [argument(s)]

Thus, a command like "pfccd filwheel1 move 5" tells filter wheel #1 of the pfccd to move to position 5. If it is already at position 5, it will inform the sender, and if there is an error, this will be reported. If position 5 is a valid position and the filter wheel is not at this position, the controller will start to move it, send the word "moving" to the host computer and then disconnect. If desired, the host can send "pfccd filwheel1 position" to the controller any time to see if it is finished. It will receive "active", until the motion is finished and the position (5 in this case) after it is done. In the event of error, a code "errN" will be received. Error codes are normally followed by text giving further information about the error. A Motor Controller can be assumed to have done its job and does not ever have to be polled unless desired. Because of the shared nature of RS-485, the host computer must wait for a response from a controller before interrogating another one on the same line. An SMC is required to send a response to any command and disconnect within less than one second. Thus, if the host sends any command to an SMC and receives no answer within one second, it can assume the SMC is not on line.