User Manual
Table Of Contents
- 1 Features
- 2 First Steps with TMCL
- 3 TMCL and the TMCL-IDE — An Introduction
- 3.1 Binary Command Format
- 3.2 Reply Format
- 3.3 Standalone Applications
- 3.4 The ASCII Interface
- 3.5 TMCL Command Overview
- 3.6 TMCL Commands by Subject
- 3.7 Detailed TMCL Command Descriptions
- 3.7.1 ROR (Rotate Right)
- 3.7.2 ROL (Rotate Left)
- 3.7.3 MST (Motor Stop)
- 3.7.4 MVP (Move to Position)
- 3.7.5 SAP (Set Axis Parameter)
- 3.7.6 GAP (Get Axis Parameter)
- 3.7.7 STAP (Store Axis Parameter)
- 3.7.8 RSAP (Restore Axis Parameter)
- 3.7.9 SGP (Set Global Parameter)
- 3.7.10 GGP (Get Global Parameter)
- 3.7.11 STGP (Store Global Parameter)
- 3.7.12 RSGP (Restore Global Parameter)
- 3.7.13 RFS (Reference Search)
- 3.7.14 SIO (Set Output)
- 3.7.15 GIO (Get Input)
- 3.7.16 CALC (Calculate)
- 3.7.17 COMP (Compare)
- 3.7.18 JC (Jump conditional)
- 3.7.19 JA (Jump always)
- 3.7.20 CSUB (Call Subroutine)
- 3.7.21 RSUB (Return from Subroutine)
- 3.7.22 WAIT (Wait for an Event to occur)
- 3.7.23 STOP (Stop TMCL Program Execution – End of TMCL Program)
- 3.7.24 SCO (Set Coordinate)
- 3.7.25 GCO (Get Coordinate)
- 3.7.26 CCO (Capture Coordinate)
- 3.7.27 ACO (Accu to Coordinate)
- 3.7.28 CALCX (Calculate using the X Register)
- 3.7.29 AAP (Accu to Axis Parameter)
- 3.7.30 AGP (Accu to Global Parameter)
- 3.7.31 CLE (Clear Error Flags)
- 3.7.32 EI (Enable Interrupt)
- 3.7.33 DI (Disable Interrupt)
- 3.7.34 VECT (Define Interrupt Vector)
- 3.7.35 RETI (Return from Interrupt)
- 3.7.36 Customer specific Command Extensions (UF0…UF7 – User Functions)
- 3.7.37 Request Target Position reached Event
- 3.7.38 TMCL Control Commands
- 4 Axis Parameters
- 5 Global Parameters
- 6 Module Specific Hints
- 7 Hints and Tips
- 8 TMCL Programming Techniques and Structure
- 9 Figures Index
- 10 Tables Index
- 11 Supplemental Directives
- 12 Revision History

PD-1160 TMCL
™
Firmware Manual • Firmware Version V1.42 | Document Revision V1.06 • 2018-JAN-09
92 / 113
6.1.3 How to choose Pulse Divisor and Ramp Divisor
The pulse divisor should be choosen in such a way that the range of the velocity internal units (0. . . 2047)
covers the entire velocity range which is needed by the application. Ideally, set the pulse divisor so that the
maximum velocity value of 2047 leads to a velocity that is just little but not much above the maximum
velocity needed by your application. This way it is possible to make optimum use of the internal velocity
resolution. The same is true for the acceleration and the ramp divisor.
The difference between ramp divisor and pulse divisor may limit the usable acceleration range for posi-
tioning ramps (MVP command), but not for velocity mode (ROL/ROR command). These limits are given by
the following equations:
a
lower_limit
= 2
ramp_div−pulse_div−1
a
upper_limit
= 2
ramp_div−pulse_div+12
− 1
If a
upper_limit
should be greater than 2047 then the upper limit is 2047.
6.1.4 Conversion between PPS, RPM and RPS
In order to convert between pps units and units like rounds per second (rps) or rounds per minute (rpm),
one has to know the fullstep resolution of the motor (full steps per round) and the microstep resolution
setting of the module (axis parameter #140, default setting is 256 microsteps per full step).
So to convert from pps to rps, use the following formula:
v
rps
=
v
pps
r
fullstep
· r
microstep
To convert from rps to rpm, use:
v
rpm
= v
rps
· 60
With the following symbols:
• v
rps
: velocity in rounds per second
• v
rpm
: velocity in rounds per minute
• v
pps
: velocity in pulses (microsteps) per second
• r
fullstep
: fullstep resolution of the motor (with most motors 200 (1.8°))
• r
microstep
: microstep setting of the module (default 256)
So, with a 200 fullsteps motor and a microstep setting of 256 (axis parameter #140 = 8), a velocity of
51200pps will result in 1rps (60rpm).
6.2 The sensOstep™ Encoder
The PD-1160 module offers an integrated sensOstep encoder. This built-in encoder has a resolution of
1024 steps per rotation. Please consider the following hints when using the built-in encoder:
•
The encoder counter can be read by software and can be used to monitor the current position of the
motor.
•
To read out or to change the position value of the encoder use axis parameter #209. To read out the
position of the internal encoder use GAP 209, 0. The encoder position register can also be changed
using command SAP 209, 0, <n>, with n = -2147483648 . . . 2147483647.
• Axis parameter #210 is used to change the encoder settings. This also includes the prescaler of the
encoder. The prescaler is used to match motor resolution and encoder resolution.
©2018 TRINAMIC Motion Control GmbH & Co. KG, Hamburg, Germany
Terms of delivery and rights to technical change reserved.
Download newest version at www.trinamic.com