Unique Identifier f...
 
Notifications
Clear all

Unique Identifier for each Motor

3 Posts
1 Users
0 Reactions
7,404 Views
(@wrpedler)
Posts: 1
New Member Guest
Topic starter
 

I am working with a new Class 5 SM23375DT. A co-worker is working with an older Class 4 motor which I cannot get to without tearing apart a test set-up. (And, both he and I am new to Smart Motors.)

Is there a unique ID I can read from the motor. What is the Class 5 command? What is the equivalent Class 4 command?

We are attempting to write software that will determine which sub-routines (command sets, encoder values, hard limits, etc.) to load based on the motor being addressed. It will be easy if we can read the model and serial number of the motor.

We are planning on building more of these test stations, but the sizes may vary.

Thanks,
Bill

 
Posted : 29/01/2014 9:39 am
(@csearcy)
Posts: 316
Reputable Member Guest
 

PRINT("Type GOSUB411 and press ENTER",#13)
END
C411

w=10 'Wait time used to prevent serial buffer overflows

'Printing out motor model number:
PRINT(#13,"Motor Type : ")
WAIT=w
a=32477 EPTR=a VLD(dd,1)
a=32474 EPTR=a VLD(ab[0],3)
y=0
WHILE y<=3 'Print leading Characters such as SM
z=ab[y]
IF (z=48)
PRINT(#ab[y])
WAIT=w
ENDIF
y=y+1
LOOP

'PRINT MOTOR SERIES NUMBER
PRINT(dd) 'Print Number such as 2316
WAIT=w

'PRINT MOTOR EXTENSION SERIES LETTERS such as D-C-AD1-BRK...
a=32481 EPTR=a VLD(ab[0],18)
PRINT(#ab[0])
IF ab[1]!=0
y=1
WHILE y<=17
PRINT(#ab[y])
WAIT=w
y=y+1
LOOP
ENDIF
WAIT=10
PRINT(#13)

'SERIAL NUMBER:
PRINT("Serial Number : ")
WAIT=w
EPTR=32512
al[0]=0
VLD(ab[0],3) 'read 3 bytes.
VLD(ab[4],1) 'read leading character
PRINT(#ab[4],al[0],#13)

'ENCODER RESOLUTION:
PRINT("Encoder Resolution: ",RES," Counts",#13)
WAIT=w

'FIRMWARE REVISION INFO
PRINT("Firmware Revision : ")
al[0]=FW 'Do a forced download if this shows as error
PRINT(ab[3],".",ab[2],".",ab[1],".",ab[0],#13)
WAIT=w
PRINT("Firmware Date : ")
WAIT=w
RSP1
WAIT=w
'Motor Bus Votage Note: UJA is bus voltage in milivolts
v=UJA/1000 'MODULO divide Get volts
m=UJA%1000 'Get millivolts
PRINT("Bus Votage : ", v,".",m," volts",#13)
WAIT=w
'Motor Drive Current Note: UIA is in millAmps
i=UIA/1000 'MODULO divide Get Amps
m=UJA%1000 'Get milliAmps
PRINT("Drive Current : ", i,".",m," Amps",#13)

'System Clock
c=CLK 'Capture Clock
f=c%1000 'Modulo Divide, get remainder (milliseconds)
s=(c/1000)%60 'Divide and Modulo to get seconds
m=(c/1000)/60 'Double Divide to get minutes
PRINT("System Clock : ",m," min : ")
WAIT=w
PRINT(s," sec : ",f," msec's",#13)
WAIT=w

'Mode of Operation
PRINT("Present Mode :")
SWITCH MODE
CASE -3 PRINT(" Step Mode ") BREAK
CASE -2 PRINT(" Gearing Mode ") BREAK
CASE 1 PRINT(" Position Mode ") BREAK
CASE 3 PRINT(" Velocity Mode ") BREAK
CASE 4 PRINT(" Torque Mode ") BREAK
CASE 0 PRINT(" No Mode Assigned Yet ") BREAK
ENDS
WAIT=w
IF Bo PRINT("and Drive is OFF",#13) ENDIF
IF Bt PRINT("and in Active Trajectory",#13) ENDIF
WAIT=w
IF B(6,11) PRINT("Mode Torque Break : MTB is Active",#13)
ELSE PRINT("Mode Torque Break : MTB is Not Active",#13) ENDIF

WAIT=w
IF (Bo==0)&(Bt==0) PRINT(#13) ENDIF
'Commutation Mode
PRINT("Commutation Mode : ")
IF B(6,0) PRINT("Trap",#13) ENDIF
IF B(6,1) PRINT("Enhanced Trap",#13) ENDIF
IF B(6,2) PRINT("Sine",#13) ENDIF
WAIT=w
'Program Name
PRINT("Program Name : ")
a=32548 EPTR=a VLD(ab[0],24)
y=0
WHILE y<=23
PRINT(#ab[y])
WAIT=w
y=y+1
LOOP
WAIT=w
PRINT(#13)
RETURN

 
Posted : 29/01/2014 5:06 pm
(@csearcy)
Posts: 316
Reputable Member Guest
 

The command RSP returns the firmware revision.

 
Posted : 29/01/2014 5:12 pm
Share: