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 <byte> - 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.
Does the SmartMotor have braking capability?
The SM1720, SM23XX, and SM34XX can be ordered with the BRK option. The SmartMotors Power and control the brake built onto the backside of the motor.
Can the SmartMotor do dynamic braking?
The SmartMotor is a full four quadrant servo design: it can brake dynamically up to the momentary torque/speed limitations of the system.
What are the maximum recommended distance between SmartMotor and the computer/controller for communication through RS232, RS485, AniLink, and I/O connector?
This question is difficult to answer because so many factors are involved. In most instances, we quote 30 feet (10 meters) for RS232, 1000 feet for RS485, 10 feet (3 metres) for AniLink, and 3 feet for I/O connector. (The 10PWR105 used for powering AniLink devices allows the addition of multiple motors to the network but does not increase separation.)
I keep getting junk on my screen while polling with the monitor status window, what's wrong?
There could be a print statement in your program. Make sure that ECHO is off. There is a chance that the memory module is corrupt.
What makes the SmartMotor more capable than other products in handling multi-axis, co-ordinated motion?
Since each SmartMotor incorporates its own integrated closed loop controller, the Central Host is released of the task of closing the loop. Instead, the host streams real-time data to each motor and only deals with error checking and I/O control as needed. This results in a faster throughput. Abbreviated command sets and efficient, abbreviated addressing minimizes the data load.
What is the communications rate through the RS232?
The SmartMotor is designed for RS232 communications at the following user select-able baud rates:
38,400 / 19,200 / 9,600 - Default / 4,800 / 2,400
Will the SmartMotor operate with Labview commands?
Labview has the ability to communicate ASCII protocol via RS232 as a driver so the interface is compatible. The User can readily send down code strings in SmartMotor compatible commands.
I have a system based on DEVICENET;
how can the SmartMotor be used with such a system?
Background: DEVICENET is a controller area network (CAN) protocol, high speed communications link for industrial devices developed in the early 1980's by Allen Bradley. Many designers choose DEVICENET for its interchangeability (many vendors and products available), advanced diagnostics, and its compatibility with distributed power networks.
Animatics Corp. provides Devicenet Gateway options for the 23 and 34 frame series SmartMotors.
What host communication relationships will the SmartMotor support?
The following common communications relationships are supported by the SmartMotor:
Host / Slave
Host / Interactive
Host / Independent
In a Host / Slave relationship, the PC host transmits commands over the RS232 one at a time for immediate execution by the SmartMotor. In this relationship, the host assumes all of the timing functions for the application. It is also clear that certain SmartMotor commands don't work in this relationship, for example the WHILE command.
In Host / Interactive relationships, the host program and the SmartMotor program interact. There are two basic sub-categories of this relationship.
In one, the host interacts with a running program through RS232 messaging or I/O level signaling. The SmartMotor may or may not be sending messages back to the host by similar methods.
In another, the host sends preparatory (program configuration) data to the SmartMotor, then issues a RUN command. The SmartMotor executes its independent program, which may or may not include messaging and host signaling. Upon program termination, the SmartMotor simply waits for further host instruction. This special category of host / slave relationships is called Host / Independent relationships: Entire programs are downloaded from the host to the SmartMotor. RUN may be initiated by either the host or by external hardware input. One main feature of this type of relationship is the relative autonomy of the individual motors: here the motors may signal the host at appropriate times, but in general, host intervention is not expected.
Critical product features to the Host / Interactive relationship are:
The priority of host communications over the execution 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 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 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.
What is the 8-N-1 ASCII protocol mentioned in the manual?
The SmartMotor uses an asynchronous serial interface often described as a "three wire implementation of RS232."
Asynchronous communications require a stable environment: if any bit of a transmission is lost, there is a high probability that the remainder of any transmitted message will be misunderstood. It is therefore necessary to carefully define the structure of the transmission. A serial bit is a defined period of time, and the state of the bit can either be a 1 or a 0, depending on the voltage state of the transmit line during the duration of the serial bit.
When the RS232 is in the idle state (waiting to transmit a message) it rests in the high (on) state. When a character is to be transmitted the TxD line is brought low for a carefully defined period of time, the time period of the start bit is a function of the BAUD rate. This low state is called the start bit.
Immediately following the start bit are a number of data bits. The SmartMotor must use 8 data bits, and this is the meaning of the "8" in the string "8-N-1."
Following the data bits in the is an optional parity bit. The parity bit used in some transmission schemes to check the validity of received characters on a byte-by-byte basis. Since this is an optional process which slows down communications, it is not implemented in the SmartMotor. The "N" in "8-N-1" stands for no parity bit. Following the optional parity bit is a bit called the stop bit. On ancient teletypes and other old machinery, a delay was required to ensure that the received character could be handled before the next character arrived. For this reason a stop bit was added at the end of every transmitted character. Depending on the delay needed, either one, one-and-a-half or two stop bits are added. The SmartMotor uses the minimum required period, 1 stop bit (8-N-1).
Following the above description, the SmartMotor uses 10 bit data structure to transmit an eight bit ASCII character. The SmartMotor requires a maximum of one signal change to transmit one bit, and since the baud rate is defined as the number of signal changes per second, this means that the data transmission rate is (BAUDRATE) /10 = characters per second.
||Characters per Second
How do I get encoder outputs A+, A-, B+, and B-?
Use the chip DS26LS31 that converts the encoder A and B signals to differentials. The output signal from the encoder goes through a 74LS04 chip.
What kind of encoder is used with the motor?
The SmartMotor uses an Hewlett Packard HEDS incremental encoder which can read position to an accuracy of 2000 counts per revolution for the SM1720 and SM23XX and 4000 counts per revolution for the SM34XX and above.
What does dual encoder capability mean?
Dual encoder capability means that the SmartMotor can accept and read an A-B signal from an external encoder. This capability allows the user program running on the SmartMotor to follow and react to an independent axis.
Can an external encoder input information to the motor to govern position?
External encoder data can be input through the I/O channels A and B while the SmartMotor is in the following or camming mode. The CTR command keeps track of external encoder position.
In case of a power shut down, can the encoder continue to read position?
Yes, by ordering the motors with the “-DE” (Drive Enable) option, the control power to the CPU can be maintained while the drive power is dropped via E-Stop or Power Loss. Control Power can be from 16 to 48VDC.
Note: The –DE Option is not available on the SM1720 or SM2315 series motors.
What is the encoder index mark?
Our quadrature encoders feature two physical tracks, which generate three signals. One track generates two of the signals, A and B. These signals are phased in quadrature and carry both position and direction information.
The second track generates the third signal; this signal changes state only once per revolution, and defines a unique point in the rotation. The mark on the second track which generates the state change is called the index mark. The index signal is often used to define a home position when used in conjunction with an external switch wired to one of the I/O. See the I and RI commands for details about how the SmartMotor handles its index signal in software.
How much current does the SmartMotor electronics consume?
The electronics consume about 70 to 90 mA. The motor can also supply approximately 150 mA which may be used to drive limit switches and/or user I/O's.
What is a 'skewed rotor' design?
The rotor is the component of the SmartMotor that rotates inside the stator coil. The rotor is surrounded by a permanent magnetic. Electric currents in the stator coil create a changing magnetic field. This magnetic field reacts with the magnet field around the rotor and causes the rotor to turn. The stator contains a number of coils. In a simple design of motor, the rotor will rotate in such a way that its magnet tries to stay in alignment with the field generated in the stator coils. At slower speeds, the rotor turns in small steps or jerks, not with a smooth uniform motion. This effect is known as torque ripple.
By building the rotor with a twist, or making a skewed rotor design, the permanent magnet is twisted around the rotor shaft. This causes a corresponding twisting of the magnetic field. The field of any one rotor-magnet is now spread just beyond one of the stator coils. The result is a much smoother rotation and considerable reduction in torque ripple.
How long does it take to boot up or power up a SmartMotor?
It takes about 40-60ms for the motor to power up from 0 to 5 volts. It takes 100 ms for the hardware to reset.
What is backlash?
Backlash is defined as the amount of freeplay between the motor shaft and the load. It is determined by measuring the amount of angular movement on the shaft which produces no movement on the load across a variety of conditions.
I see there are two limit switch inputs. How are home switches typically implemented? Using one of the limits?
How do you recommend implementing abort/emergency kill switches?
You can use the limit switches to trigger the motor to execute its 'home' subroutine. Similarly, one of the limit switches can be set up as a 'kill' or safety switch. By setting a software command to read the status of this switch, the motor will execute a stop in response to a change of state of the switch. Think that, typically, if the state goes to '0', or ground, you can get a fail-safe kill switch arrangement.
How can I stop the shaft without powering down the controller using a limit switch?
There are two function states controlling the behavior of the SmartMotor during limit switch activation. F=0 allows the shaft to run free upon a limit switch hit. F=1 is equivalent to issuing an X command upon a limit switch hit.
Neither command causes the controller to power down: there is no loss of position data or program execution upon such an event.
I am using normally closed induction proximity switches.
Can I stop the motor when the limit input sees a +5V signal?
Since All I/O at the connector is 5VDC TTL Level, only 5VDC or Dry contact switches should be used.
There are various ways to use limit switch inputs.
They can be set to Active High asserted or Active Low asserted depending on Firmware revision.
Version 4.76 firmware and above default to Active High only.
Note: 24VDC converters are available for the motor I/O connector as well.
Please consult the factory for more detail.
How do your limit switches work?
When a limit switch is asserted (dragged to ground), the limit switch inputs interrupt the SmartMotor processor, causing motion to cease. Depending on the state of the F= command, the SmartMotor will either free the motor shaft, or command the current trajectory to come to rest and servo in place at a position determined by the current acceleration rate (A=).
If my ball screw application runs into a hardstop, what will happen?
If the SmartMotor is operating in position or velocity mode, when the axis run into a hardstop, the current position error will begin to rise. As the PID filter senses a rise in the current position error, and as the error is sustained over time, the PWM command will grow, resulting in more output torque. The output torque will continue to grow until the effective current maximum, set by the AMPS command, is reached. Once this limit is achieved, torque will remain constant until the current position error exceeds the error limit (E=), at which time the motor off flag will be set, and the drive will shut down (sending output torque to zero). The controller will continue to run following a position error event. Error handling routines based on the Bo (motor off) bit can be implemented in the stored user program.
How is the SmartMotor in terms of electrical noise and EMI?
SmartMotors are fully enclosed and are constructed with a minimum of internal inter-connects. There are no internal wires, we use header pins to connect between stacked circuit boards. The result is an electrically quiet motor. We have a CE rating and meet the stringent requirements of the German TUV standard. (We have been tested and passed by TUV, but we are waiting for our certificate before we can officially use their designation.)
Does the SmartMotor have a cleanroom rating?
Animatics has not submitted the SmartMotor for cleanroom compliance testing with any outside testing agency: We therefore cannot make any specific claims about clean room category compliance.
However, since the SmartMotor is based on a brushless DC servo motor and a low-noise emission PWM amplifier, the SmartMotor is generally suitable for clean room service in all categories. In fact, the bulk of our current sales go to OEM companies manufacturing semiconductor handling and processing equipment; the end-use of almost all of our production is in the high-category clean rooms of semiconductor fabs, world-wide.
The cost of machine footprint is extremely important in cleanroom applications; the "all-in-one" integrated construction of the SmartMotor is widely considered a critical advantage by many clean room equipment designers. Several of our customers are manufacturing machines which would not be practical if they had to provide footprint for separate controllers, amplifiers, and feedback devices, not to mention the cabling required to integrate these separate devices. To extend this idea, an article in December '97 edition of Control Engineering cited Animatics as the only manufacturer of such an integrated servo motion control package.
What is the PWM switching frequency in the motor?
Depending on the motor, (SM42XX and SM56XX) 16kHz, (SM1720, SM23XX, and SM34XX Ver. 3.4) 25kHz, and (SM1720, SM23XX, SM34XX Ver. 4.0 and above) 33kHz.
Is the SmartMotor explosion proof?
The current SmartMotor design is not explosion proof. An explosion proof version of the motor is technically possible, consult an Animatics Applications Engineer for details.
What is the maximum number of revolutions that the SmartMotor can count?
The SM23XX can count 1,073,741 revolutions in each direction.
(+/-31 bits or 2,147,483,648 counts / 2000 counts/ revolution = 1,073,741 revolutions)
What is the "AniLink Network"? - As mentioned in the SmartMotor brochure:
The AniLink Network is a network management system for the Smart Motor peripherals. The AniLink network allows the SmartMotor to control up to sixteen daisy-chained external devices (eight of the DIO-family, and eight of the AIO-family). These devices extend the system functionality of the SmartMotor controller. AniLink is only meant for a single motor to talk to its own peripherals. AniLink cannot be used to control a motor or to communicate between two or more motors.
What network protocol are you using for the AniLink network?
At speed does it run?
The Anilink Network does not run on a protocol, the system is specific to Animatics motors and peripherals. The network is designed for transmission over short distances (inches) across circuit boards. The simple system does not require expensive chip sets to communicate between devices. Devices read data byte by byte according to the clock cycles in the processors.
What is the EEPROM?
The EEPROM (electronically erasable programmable read only memory) is used in the SmartMotor to store user programs. A unique feature of an EEPROM is its ability to permanently store data. This allows the memory module on the SM to be removed, and a new program inserted, even with the SmartMotor under power. The EEPROM can store up to 8 KB of program data, programs are stored in ASCII. A 32 KB chip will soon be available.
What are the options for networking SmartMotors?
You can daisy-chain up to 100 SmartMotors using a single RS232 port. Motor addressing is accomplished by command in the initialization segment of the stored user program. Commands are passed from the host to the first motor over the RS232, then are repeated from on motor to the next until they arrive back at the host.
Using the optional RS485 converter, you can build a star configuration network with all motors in parallel. The RS-485 communication protocol is less susceptible to common mode noise than RS232.
In what applications is the I/O connector necessary?
I/O connector is used in almost all applications where the SmartMotor is expected to interact directly with its application or environment.
Common uses for the I/O connector are:
Program Start Button
Program Stop Button
Emergency Stop Button
I/O signaling from application
Encoder following signal transmission
Step-and-Direction signal transmission
Monitoring of SmartMotor position by external device
What is the maximum input voltage for a SmartMotor running off a DC power supply?
The voltage input for the SmartMotor ranges from 20VDC to 48V DC maximum. Any voltage above 48 VDC will reduce the life of the SmartMotor and possibly damage it, especially if the application allows the motor to be back driven.
(In this mode, the load is driving the motor, which acts as a generator, and induces a voltage in the stator windings).
Will one power supply drive three motors?
It is necessary to match the power supply to the combined peak and rms power demand of all three motors. Power supplies are generally sized according to the procedure for sizing multiple motors. Account for IR losses in the supply and saturation.
What is the cable length limit between a power supply and SmartMotor?
The limit is dependent on wire resistance, which limits the current and voltage to the motor. These resistive losses affect both acceleration and steady state velocity. There are minor acceleration issues and cases where the motor will not reach torque or speed. The length depends on the application. For more information, contact the applications engineer.
What kind of power supply do you recommend for the SmartMotor?
Linear Unregulated power supplies are preferred over regulated power supplies for durability in high-demand motion control applications. Regulated Power supplies typically cannot absorb high peak demands as are often demanded by servo motors.
Can multiple SmartMotor operate from a single DC power supply?
Many SmartMotors can operate from a single power supply if the combined power demand (both peak and RMS) of all the motors does not exceed the capacity of the supply. The normal rules for sizing power supplies apply to sizing for multiple motors, be sure to account for line drops and demand saturation. In applications with multiple power supplies, remember that all power supplies must share a common ground configured to avoid ground loops and supporting the communications circuitry.
What do the reliability studies look like for the SmartMotor?
The SmartMotor MTBF has been calculated at over 100,000 hours using MILSPEC 17 methods. Motors are currently under long term test for verification. The SmartMotor is designed and manufactured for industrial environments where reliability and durability are critical. The SmartMotor's reliability is a function of:
1. Total system integration
2. Animatics' 18 years experience in design and mfg of servo motion control products
3. Extraordinary quality of components used
Is the MTBF value a theoretical or real achieved value ?
MTBF can be statistically calculated from the sum of the theoretical component lifetimes of the elements of the SmartMotor, amplifier, controller etc. SEMI E10-96 is an industry standard that defines how to do this, as is the method described in MIL-HDBK-217. However, we have also conducted accelerated aging tests to produce data that confirms our MTBF value.
In situations where high loads, or high temperatures are experienced, we recommend increasing the motor size. This allows the motor to perform at the required level without operating above the temperature range of the electronics. Of course, operating at a temperature comparable to the recommended temperature for the electronics increases the MTBF of the system.
What kind of software do you use to control the SmartMotor?
We supply a host terminal development system for the SmartMotor for Windows or DOS. This program acts as an RS232 translator for host-to-slave interaction, and as an integrated development environment for the writing and testing stored user programs.
What host options are available for the SmartMotor?
Can the SmartMotor receive commands from other software packages or devices other than a PC?
Since the SmartMotor receives commands in ASCII, any host which can transmit the appropriate ASCII strings can communicate with the SmartMotor. A number of customers have used PC programs other than SMI or TERM as a host terminal program. LabView, Think&Do, Wonderware and PROCOMM are commonly used. Each program has unique advantages for particular applications.
Several customers have written their own host terminal programs on a variety of hardware platforms: PC, Mac, Next, Sun (Unix) and SGI (Unix) . The SmartMotor has also been integrated to accept ASCII commands from a variety of PLC's and bar code readers.
Can I download program comments and headers with my SmartMotor program?
Comments can be placed in you user source (.src) file using the (') character to the left of any comment. However, comments and headers represent illegal character strings within the SmartMotor processor, and should not be downloaded to the SmartMotor's memory.
Does the SmartMotor operate on fixed point or floating point math?
The SmartMotor processor is a 32-bit signed integer machine. We can help you produce code allowing your operator to interface in standard decimal units for both input and output.
I have a SmartMotor servo, but I cannot reach anything near the maximum speed, even with no load on the motor?
Check the voltage supply! The motor needs a voltage supply equal to the desired speed multiplied by the voltage constant (rpm x Kv). If the supply voltage is too low, the motor will not attain its maximum theoretical speed. The maximum speed will be (supply voltage/Kv).
What´s the maximum and minimum temperature for the SmartMotor electronics?
The maximum temperature is 70 degrees C. This is a standard industry temperature limit for CMOS components. Although almost half the components in the SmartMotor servo are rated above 70 degrees C (100 to 150 degrees C), microprocessors are very vulnerable to higher temperatures. Temperatures above 70 degrees C may reduce the reliability of circuit components and could corrupt data held in registers or in the processor.
The SmartMotor is limited to 70 degrees C by an electronic thermostat. This can be disabled to allow the system to run at higher temperatures, but system lifetime is reduced.
How fast are the Analog to Digital pins on the SmartMotor read and converted?
The acquisition time is 25 to 30 microseconds and the conversion time is about the same.
The literature mentions "4kHz 32-bit motion".
Does this mean a position update loop of 250usec (1/4kHz)?
Yes, a position update every 1/4000 seconds.
What is the best time resolution that you can get trying to synchronize motors over the network?
Your literature indicates that you can synchronize the motors via hardware (presumably the I/O port). Can you provide me details on how this is done? I am still curious about what performance can be attained over the network, so could you also ask your software people what the latency is when synchronizing motors via the network.
At its most basic, we can synchronize motors by hardware. In this mode, a motor will wait for a signal from a limit switch, another motor or external source before commencing a position change. This is perhaps the slowest method because movements are timed according to 'mechanical' events. Our network options are possible with series (RS232) or parallel (RS485) configurations. In RS232, each motor receives its commands preceded by that motor's unique address. A command for a specific motor must travel through the each motor that lies between the controller and the specific motor before it is 'seen' by the target. Each motor takes approximately 0.25 milliseconds to receive and re-transmit a command. The command for the target motor will be delayed according to the number of motors between it and the controller, and the number of other commands coming down the network. If the network may carry commands to and from other devices and the motor has to wait while this traffic passes before it can receive and read its instructions.
Response rate is a real differentiator of servomotors and an indicator of the capability of the on-board processors. In a worse case scenario long instructions and low baud rate, we take 5ms to read, receive and process an instruction. With typical faster baud rates and command lengths, the time can come down to 1 ms. Using RS485 mode, the motors are connected in parallel to the network and all motors read instructions simultaneously. A motor will ignore an instruction unless it is addressed to that specific motor.
How long does it take until a command is executed?
Depending on the PID tuning values, execution time is around 0.3 milliseconds. The time taken for RS232 commands to pass along a set of SmartMotors in series is as follows:
The time for the SmartMotor controller to process a 14 character command, at 107 micro seconds per character is 1.5 ms.
The process time can be 1 to 6 servo cycles.
The servo rate is 4 kHz, 6 servo cycles in 1.5 ms.
Latency, the time for an incoming signal to be read, processed and retransmitted as an output to the next motor on the RS232 is 2 to 3 ms.
How long does it take to transition out of Mode Follow to Position or Velocity Mode?
Transition time to Position and Velocity Mode is around 5.4 ms and 6.2 ms, respectively.
How long can a SmartMotor supply its peak torque?
The SmartMotor can supply peak torque until the heat generated from the maximum current in the stator winding raises the temperature of the electronics above 70 degrees C. This time will depend on the ambient temperature and way the application allows the motor to disperse heat. If a motor is fan cooled, in cold air, or bolted to a large metal surface (which aids cooling from heat conduction and radiation) the motor will sustain peak torque for longer periods. A general answer is that the motor could supply peak torque for 10 seconds every minute. If it runs longer, more heat is generated which raises the temperature of the microchip and electronics. Then the motor must run at a lower power output, or stop, until it has cooled.
How will the torque-speed curve change with a lower input voltage?
The downward slope of the curve will remain the same, just shifted to the left by the ratio of the input voltage and torque-speed curve voltage.
What do you mean by peak torque and continuous torque in your brochure?
Peak torque was measured using a dynamometer by attaching the SmartMotor face place to a 10" x 10" x _ " Al plate at room temperature. A pulley, attached to the shaft, connected to an adjustable brake and data was collected across a number of velocities.
The continuous ratings were the highest torque/speed SOAC readings found for continuous operation.
The published peak torque values will cause a SmartMotor starting from room temperature to shut down within 30 to 45 seconds. Normal de-rating techniques must be applied when considering any applications temperature and loading requirements. Note that the continuous operation specifications appear lower than those that would be calculated for a standard BLDC servomotor given our motors specifications and thermal capacitance. Thermal loading of system by the drive circuits account for these losses.
Is there a formula to relate torque speed characteristics when a SmartMotor is used with a power supply delivering less than 45V?
There is a complex relationship between the torque-speed curves and the applied voltage. You can predict the peak torque at a given speed by the formula:
Torque = Maximum current x Torque constant
Maximum current = the unit's current limit or max motor coil current, whichever is lower. For the SM17 and 23s, the unit current limit is 12.5A, while that for the SM34 is 40A. The RTC is 3A.
The max coil current is calculated as follows:
max coil current = (bus voltage - back EMF)
(where back EMF = motor voltage constant x RPM)
The continuous torque is a function of heat dissipation. Bus voltage has a negligible effect, as long as it is within the specified operating range.