Skip to content
John Holt edited this page Jan 8, 2018 · 10 revisions

The SM300 is a controller which moves to the position of motors simultaneously. So you set the position for each axis and then tell it to move to those positions.

The controller is hardwired to set certain parameters to given values, e.g. the upper limit. The motor record provides these field but setting them will not do anything. The exception is the motor resolution which is used within the motor record to convert steps into mm; this must be set to the same as the controller see macros below. The parameters are set in the SM300Controller::writeInt32 when the controller's RESET field is set.

Macros

MSTPX: Number of steps per mm. The can be calculated from data format (PXA parameter), gear factor numerator (PXB parameter), gear factor denominator (PXC parameter) 10^ * /

DHLM1: Upper position in mm. This can be calculated from the

Known Issues

  1. The driver will do go to X and Y at the same time because of the motor record. Once a position is set on X both motors will start to move to their positions but motor Y will not actually move. If a position is then set on motor Y it is already in a moving state so the motor record will not issue a new move command (I think because it dose not have a direction yet). If you change the direction of the X then the Y motor will get the new direction and both motors will now move simulateously. (At least in the simulator I will try on the device and confirm). This seems too hard to fix and because of the retry it will get to the right position in the end.

Clone this wiki locally