How is motor addres...
 
Notifications
Clear all

How is motor addressing handled on the SmartMotor™

4 Posts
1 Users
0 Likes
33.8 K Views
(@animatics)
Posts: 15
Active Member Guest
Topic starter
 

How is motor addressing handled on the SmartMotor™?
How can a command be sent to a specific motor or group of motors?

Every motor has an address register: upon power up or reset, the value of this register is zero. The value stored in this register can be changed by a SADDR# command arriving from the host or from a command executed from within a stored user program. Valid addresses range from 0 to 100.

The SmartMotor scans incoming RS232 communications for high order ASCII bytes (values between 100 - 128). When such a byte is received, the SmartMotor evaluates - 128 to get the address number. If the address number is 0 or equal to the value of the motor address register, subsequent commands are accepted. If neither condition is true, all commands are ignored until an appropriate high order ASCII byte is received.

Also available are motor unique states of SLEEP and WAKE. In the SLEEP state, all commands are ignored until a properly addressed WAKE command arrives. This allows global addressing techniques to be directed at specific sub-sets of motors in an application.

 
Posted : 11/03/2009 7:32 pm
(@Chris Dancer)
Posts: 12
Active Member Guest
 

The value stored in this register can be changed by a SADDR# command arriving from the host...

What I don't understand is if every motor in the chain starts with address = 0, how do you set the address register in each particular motor individually? You can only address the motors using address 0, so all motors are going to accept the command to change the address, so when you say SADDR1, why don't all the motors become motor No. 1?

Chris

 
Posted : 09/08/2011 7:15 am
(@csearcy)
Posts: 316
Reputable Member Guest
 

You have to put motors to Sleep after you address them.

From the Terminal Window... you can type the following.
Note: 0 is 128, 1 is 129 etc.

0SADDR1
1ECHO
1SLEEP
0SADDR2
2ECHO
2SLEEP
0SADDR3
3ECHO
0WAKE

 
Posted : 09/08/2011 5:49 pm
(@Chris Dancer)
Posts: 12
Active Member Guest
 

Ah, got it. The key to it is the ECHO command. Motors don't echo characters by default so when you first send out a command you are only talking to the first motor in the chain. So you set the address of that motor then tell it to echo so you can talk to the second one... etc.

I found the relevent section in the user guide:
"The ECHO and ECHO_OFF commands toggle the echoing of data input.
Because the motors do not echo character input by default, consecutive
commands can be presented, configuring them with unique addresses, one
at a time."

 
Posted : 10/08/2011 12:34 am
Share: