The information in this manual is subject to change without notice.
WARNING
THIS UNIT AND ITS ASSOCIATED EQUIPMENT MUST BE INSTALLED,
ADJUSTED AND MAINTAINED BY QUALIFIED PERSONNEL WHO ARE
FAMILIAR WITH THE CONSTRUCTION AND OPERATION OF ALL
EQUIPMENT IN THE SYSTEM AND THE POTENTIAL HAZARDS INVOLVED.
FAILURE TO OBSERVE THESE PRECAUTIONS COULD RESULT IN BODILY
INJURY
WARNING
INSERTING OR REMOVING THIS MODULE OR ITS CONNECTING CABLES
MAY RESULT IN UNEXPECTED MACHINE MOTION. POWER TO THE
MACHINE SHOULD BE TURNED OFF BEFORE INSERTING OR REMOVING
THE MODULE OR ITS CONNECTING CABLES. FAILURE TO OBSERVE THESE
PRECAUTIONS COULD RESULT IN BODILY INJURY.
CAUTION
THIS MODULE CONTAINS STATIC-SENSITIVE COMPONENTS. CARELESS
HANDLING CAN CAUSE SEVERE DAMAGE.
DO NOT TOUCH THE CONNECTORS ON THE BACK OF THE MODULE. WHEN
NOT IN USE, THE MODULE SHOULD BE STORED IN AN ANTI-STATIC BAG.
THE PLASTIC COVER SHOULD NOT BE REMOVED. FAILURE TO OBSERVE
THIS PRECAUTION COULD RESULT IN DAMAGE TO OR DESTRUCTION OF
THE MATERIAL.
WARNING
RELIANCE STRONGLY RECOMMENDS THE USE OF AN EXTERNAL,
HARDWIRED EMERGENCY STOP CIRCUIT THAT WILL DISABLE THE
SYSTEM IN CASE OF IMPROPER OPERATION. UNCONTROLLED MACHINE
OPERATION MAY RESULT IF THIS PROCEDURE IS NOT FOLLOWED.
FAILURE TO OBSERVE THIS PRECAUTION COULD RESULT IN BODILY
INJURY OR DAMAGE TO EQUIPMENT
Rellance® and AutoMax@ are trademarks of Reliance Electric Company or its
subsidiaries.
Rellance™ is a registered trademark of Reliance Electric Company or its subsidiaries.
Note: Register descriptions for equivalent X and Y axis
registers are exactly the same. Although sections of
Chapter 4 are titled by X axis register number, the
equivalent Y register is given in the figure that
accompanies each register description.
I
4.23 Registers 29, 30: Sync Position ............................ 4-16
4.24 Register 31: Maximum Voltage Reference ........... 4-17
4.49.4 Sample Application Task with Interrupt ..... 4-48
Note: Register descriptions for equivalent X and Y axis
registers are exactly the same. Although sections of
Chapter 4 are titled by X axis register number, the
equivalent Y register is given in the figure that
accompanies each register description.
Note: Register descriptions for equivalent X and Y axis
registers are exactly the same. Although sections of
Chapter 4 are titled by X axis register number, the
equivalent Y register is given in the figure that
accompanies each register description.
Figure 4.56 - Cam Loop Back Register........................................ 4-57
Figure 4.57 - Time Cam Data Registers....................................... 4-58
Figure 4.58 - Position Cam Data Registers.................................. 4-58
VI
CHAPTER 1
INTRODUCTION
The 2-Axis Servo Module, in conjunction with external motor
drive systems and electronic encoders, provides two axes of
closed loop point-to-point position, velocity, and acceleration
control. In addition, electronic gearing and electronic cam
allow the module to replace mechanical gear trains and
cams electronically for improved performance with no wear,
no backlash, and faster setup times. Two or more modules
can be connected together to provide synchronized control of
multiple axes.
Typically, this module is used for velocity control,
point-to-point positioning control, electronic line shaft
applications, and electronic cams requiring position
synchronization. See Appendix I for a software block
diagram of the module.
This manual describes the functions and specifications of the
module. It also includes a detailed overview of installation
and servicing procedures, as well as examples of
programming methods. See Appendix F for a list of
enhancements to the current version of the module.
Related publications that may be of interest:
•J-3675 AutoMax ENHANCED BASIC LANGUAGE
•J-3676 AutoMax CONTROL BLOCK LANGUAGE
•J-3677 AutoMax LADDER LOGIC LANGUAGE
•J-36 84 RESO URCE AutoMa x PROGRAMMIN G
•J-3675 AutoMax PROGRAMMING EXECUTIVE
INTRODUCTION
INSTRUCTION MANUAL
INSTRUCTION MANUAL
INSTRUCTION MANUAL
EXECUTIVE INSTRUCTION MANUAL VERSION 2.0
INSTRUCTION MANUAL VERSION 3.0
1-1
•IEEE-518 GUIDE FOR THE INSTALLATION OF
ELECTRICAL EQUIPMENT TO MINIMIZE
ELECTRICAL NOISE INPUTS TO CONTROLLERS
FROM EXTERNAL SOURCES
1-2
2-Axis Servo Module M/N 57C422B
CHAPTER 2
MECHANICAL /
ELECTRICAL
DESCRIPTION
The following is a description of the faceplate LEDs, field
termination connectors and electrical characteristics of the
field connections.
2.1Mechanical Description
The 2-Axis Servo module is a printed circuit board assembly
that plugs into the backplane of the DCS 5000/AutoMax rack.
It consists of the printed circuit board, a faceplate, and a
protective enclosure. The faceplate contains tabs at the top
and bottom to simplify removing the card from the rack.
Assembly dimensions are listed in Appendix A.
The faceplate of the module contains a 37-pin D-shell
connector socket and eight LED status indicators for each
axis. It also contains three LEDs that can be controlled from
the application software. Refer to figure 2.1.
MECHANICAL / ELECTRICA L DESCRIPTION
2-1
Figure 2.1 – Module Faceplate
2-2
2-Axis Servo Module M/N 57C422B
Signals are brought into the module via a multi-conductor
cable (M/N 57C377). One end of this cable attaches to the
faceplate connector, while the other end of the cable
attaches to a terminal board for easy wiring.
On the back of the module are two edge connectors that
attach to the system backplane.
2.2Electrical Description
The module contains an 80186 microprocessor, local RAM,
and EPROM for the axis software. It also contains a dual port
memory organized as 4k x 16 for transferring data to/from
the module and the application software. Refer to the block
diagram in Appendix B.
This module also contains a watchdog timer that is used to
detect a processor failure. The processor is required to keep
resetting the watchdog before it expires. If the watchdog
expires, the processor will be halted, the green LED on the
faceplate of the module will be turned off, and dual port
memory will be locked so that the module can no longer be
accessed by application software.
M/N 57C422A and later versions of the module support
level-sensitive hardware interrupts. Interrupts are used to
trigger execution of some part of an application task and are
implemented using BASIC language hardware EVENT
statements. See Section 4.49 for more information.
Each of the two axes contain the necessary circuitry for two
encoders. One encoder is used to provide feedback to the
axis. The other encoder can be used when gearing or cam
mode is selected to provide a reference for that same axis.
Each encoder input channel has the necessary circuitry for
an “A” channel, "B" channel, and "Z" channel. The encoder
input circuit is designed for 5 volt differential signals. A single
external power supply is required to power all of the
encoders connected to the module. Refer to figure 2.2 for a
typical encoder input circuit.
MECHANICAL / ELECTRICA L DESCRIPTION
2-3
Figure 2.2 – Encoder Input Circuit
Each axis contains two registration inputs which are
connected to faceplate LEDs. One input is used with the
feedback encoder; the other is used with the gearing
reference. These registration inputs are typically used to
strobe the feedback and/or the reference position into a
group of registers for use by application software which can
synchronize the axis to an external event. The input may be
15-24 VDC only and there is a transport delay of
approximately 25 microseconds from the time that a
registration input is asserted until the isolated signal changes
state. Refer to figure 2.3 for a typical input circuit. In critical
applications, hard-wire your overtravel L/S into the
emergency stop circuit so that the drive will be disabled
regardless of the state of the control.
2-4
2-Axis Servo Module M/N 57C422B
Figure 2.3 – Typical Registration Input Circuit
Each axis on the module contains digital inputs for the home
L/S, drive fault, positive overtravel L/S, and negative
overtravel L/S. These inputs are connected to faceplate
LEDs. Each of the inputs has a 30 Hz filter and may be 24
volts A-C or D-C. Refer to figure 2.4 for a typical input circuit.
Figure 2.4 – Typical Digital Input Circuit
Each axis contains a watchdog output which can be used by
the module to disable the drive if the module falls. The
watchdog output is a normally open relay contact. See figure
3-7.
MECHANICAL / ELECTRICA L DESCRIPTION
2-5
In order to provide a current or velocity reference to the servo
drive panel, each axis on the module contains a voltage
output. The voltage output has a range of +
requires an externally mounted +
12 or +15 volt power
10 Volts and
supply. The voltage output is separately isolated for each
channel. Refer to figure 3.6 for a typical output circuit and
isolated power supply connections
2-6
2-Axis Servo Module M/N 57C422B
CHAPTER 3
INSTALLATION
This section describes how to install and remove the module
and its cable assembly.
WARNING
THE MACHINERY BUILDER AND/OR USER ARE
RESPONSIBLE FOR INSURING THAT ALL DRIVE TRAIN
MECHANISMS, THE DRIVEN MACHINE, AND PROCESS
MATERIAL ARE CAPABLE OF SAFE OPERATION AT THE
MAXIMUM SPEED AT WHICH THE MACHINE WILL OPERATE.
FAILURE TO OBSERVE THESE PRECAUTIONS COULD
RESULT IN BODILY INJURY
3.1Wiring
DANGER
THE USER IS RESPONSIBLE FOR CONFORMING WITH THE
NATIONAL ELECTRICAL CODE AND ALL OTHER
APPLICABLE LOCAL CODES. WIRING PRACTICES,
GROUNDING, DISCONNECTS, AND OVERCURRENT
PROTECTION ARE OF PARTICULAR IMPORTANCE. FAILURE
TO OBSERVE THESE PRECAUTIONS COULD RESULT IN
SEVERE BODILY INJURY OR LOSS OF LIFE.
To reduce the possibility of electrical noise interfering with
the proper operation of the control system, exercise care
when installing the wiring from the system to the external
devices. For detailed recommendations refer to IEEE 518.
3.2Initial Installation
Use the following procedure to install the module:
Step 1.Turn off power to the system. All power to the rack
as well as all power to the wiring leading to the
module, servo, and encoders must be off.
INSTALLATION
3-1
DANGER
EQUIPMENT IS AT LINE VOLTAGE WHEN A-C POWER IS
CONNECTED TO THE DRIVE. ALL UNGROUNDED
CONDUCTORS OF THE A-C POWER LINE MUST BE
DISCONNECTED BEFORE IT IS SAFE TO TOUCH ANY
INTERNAL PARTS OF THIS EQUIPMENT. FAILURE TO
OBSERVE THESE PRECAUTIONS COULD RESULT IN
SEVERE BODILY INJURY OR LOSS OF LIFE.
Step 2.Take the module out of its shipping container.
Take the module out of the anti-static bag it came
in, being careful not to touch the connectors on
the back of the module.
Step 3.Insert the module into the desired slot in the rack.
Refer to figure 3.1.
Figure 3.1 – Rack Slot Numbers
Step 4.Mount the terminal strips (M/N 57C377) on a
panel. The terminal strips should be mounted to
permit easy access to the screw terminals. Make
certain that the terminal strips are close enough to
the rack so that the cable will reach between the
terminal strips and the module.
Step 5.Verify that the feedback encoder has been
mounted on the back of the servo motor. Make
certain that the mechanical coupling between the
motor and encoder is securely fastened. If the
encoder is not mounted directly on the motor,
satisfactory performance may not be achievable.
3-2
2-Axis Servo Module M/N 57C422B
Fasten the field wires from the encoder to the
terminal strip. Typical field connections are shown
in figure 3.2. If you are not using the marker pulse
in your application, you can leave the "Z" and "Z
inputs disconnected.
Figure 3.2 – Typical Encoder Connections
Use twisted pair cabling, connected as shown in
figure 3.2, for the cabling between the encode r
and the terminal strip. If you use cabling with less
than 2 twists/inch, it should be shielded. Note that
the shield should only be connected at one end.
"
Step 6.Mount the external 5 volt power supply for the
INSTALLATION
If a feedback encoder is connected to the gearing
reference of another axis, jumper the connections
on the terminal strip.
encoders. The current rating must be sufficient for
all of the encoders that will be powered from the
supply as well, as the module. Check the
specifications of the encoder you will be using.
Fasten the field wires from the power supply to the
terminal strip. Typical field connections are shown
in figure 3.3
3-3
.
Figure 3.3 – Typical Encoder Power Supply Connection
Use twisted pair cabling, connected as shown in
figure 3.3, for the cabling between the power
supply and the terminal strip. If you use cabling
with less than 2 twists/inch, it should be shielded.
Note that the shield should only be connected at
one end.
For best results, the power supply voltage should
be adjusted to provide 5 volts at the furthest
encoder.
Step 7.If your application requires them, mount the home
L/S, positive overtravel L/S, and negative
overtravel L/S on your machine. Overtravel L/S
should be normally closed devices. Fasten the
field wires from the limit switches to the terminal
strip. Typical field connections are shown in figure
3.4.
3-4
2-Axis Servo Module M/N 57C422B
Figure 3.4 – Typical Limit Switch Connections
Step 8.Mount the registration sensors on your machine if
your application requires them. Fasten the field
wires from the sensors to the terminal strip. Use
extra care in routing these wires because these
signals are not filtered on the module. Typical field
connections are shown in figure 3.5.
Step 9.Install the servo amplifier according to the
manufacturer’s instructions. Select the proper
mode of operation for the servo amplifier (current
or velocity). Select current mode for most
applications because all tuning can then be done
INSTALLATION
3-5
in the software. If your application has unusually
high bandwidth requirements or your servo
amplifier functions as a velocity regulator only, use
the velocity mode.
Step 10. Fasten the field wires from the drive reference and
power supply to the terminal strip. Typical field
connections are shown in figure 3.6 and 3.7.
Step 11. Connect the watchdog outputs on the terminal
strip into the drive enable circuit. This signal is
used to disable the servo if a problem develops in
the module. It must be installed in combination
with a hardwired E-stop circuit as well as a pair of
contacts that are controlled from a digital output
from DCS or AutoMax software. Typical field
connections are shown in figure 3.7.
3-6
2-Axis Servo Module M/N 57C422B
Figure 3.7 – Typical E-stop Circuit with Watchdog Output
The hardwired E-STOP ensures that you can
disconnect the drive under all conditions. The
contacts controlled by a DCS or AutoMax digital
output allow you to disable the drive in the event
of a processor failure or when faults are detected
by the application software.
WARNING
RELIANCE STRONGLY RECOMMENDS THE USE OF AN
EXTERNAL, HARDWIRED EMERGENCY STOP CIRCUIT THAT
WILL DISABLE THE SYSTEM IN CASE OF IMPROPER
OPERATION. UNCONTROLLED MACHINE OPERATION MAY
RESULT IF THIS PROCEDURE IS NOT FOLLOWED. FAILURE
TO OBSERVE THIS PRECAUTION COULD RESULT IN BODILY
INJURY OR DAMAGE TO EQUIPMENT.
Step 12. Fasten the field wires from the drive fault inputs to
the terminal strip. This signal is used to notify the
module that a problem has developed in the
servo. It must be connected if available. Typical
field connections are shown in figure 3.8. Be sure
to use the proper connections for your servo
amplifier.
INSTALLATION
3-7
Figure 3.8 – Typical Drive Fault Connections
DANGER
ADJUSTMENTS ARE MADE WITH THE POWER ON.
EXERCISE EXTREME CAUTION AS HAZARDOUS VOLTAGE
EXISTS. FAILURE TO OBSERVE THIS PRECAUTION COULD
RESULT IN SEVERE BODILY INJURY OR LOSS OF LIFE.
Step 13. Verify power supply connections by performing
the following operations:
a. Make certain that all connectors from the
module and the encoders are disconnected.
b. Turn on power to the system.
c. Verify that you can read 5 volts on the proper
terminal strip and encoder connectors
(terminals 1 and 2).
d. Verify that you can read ±12 volts or ±15 volts
on the proper terminal strip connectors
(terminals 21, 22, 23).
e. Turn off power and reattach the connectors to
the module.
Step 14. Verify power supply connections at the encoder by
performing the following operations:
a. Make certain that all connectors at the
encoders are disconnected.
b. Turn on power to the system.
3-8
2-Axis Servo Module M/N 57C422B
c. Verify that you can read 5 volts on the proper
pins of the encoder connector (at the encoder).
d. Turn off power and attach the connectors to
the encoders.
Step 15. Verify wiring connections by performing the
following operations:
a. Turn on power to the system.
b. Toggle all of the following digital inputs that you
are using in your application: the home L/S,
positive overtravel L/S, negative overtravel
L/S, drive fault, feedback registration, and
gearing registration. The appropriate LED on
the faceplate of the module should change
state as the input is toggled. Because the
signal may be very brief, it may be necessary
to use an oscilloscope to verity that it is
present.
Step 16. Verify the installation by connecting the
programming terminal to the system and running
the Programming Executive Software. Note that if
you are using a version 3.0 Programming
Executive and working with the sample application
program disk shipped with the Programming
Executive software, you will need to do a rack
import operation for the files in the 57C422
subdirectory first. See J-3684 for more information
and disregard steps a and b below.
INSTALLATION
a. Load the application disk that came with your
ReSource software.
b. Compile the BASIC tasks SETUPCNF.CNF
AXISSETUP.BAS, AXISSUB.BAS, and
AXISINIT.BAS.
c. Load the configuration and BASIC tasks onto
the CPU.
d. Use the RUN ALL command to start all four
tasks.
3-9
e. Move the cable from the programming port on
the processor to the port labeled "LOCAL
COMM".
f. Select the menu option labeled
"COMMUNICATIONS INTERFACE".
g. Type C <CR> <CR>.
h. The screen on the programming terminal
should now display the test and setup menu for
the module. You should progress sequentially
through the menu from item 1 through item 8
before attempting to use the module.
Note that when you have finished configuring and tuning
your drives, you may save all of the data to a DOS disk file.
By adding this file to AXISINIT.BAS, you can eliminate the
need to re-configure your drive each time you use the test
and setup software.
3-10
2-Axis Servo Module M/N 57C422B
3.3Module Replacement
WARNING
THE MACHINERY BUILDER AND/OR USER ARE
RESPONSIBLE FOR INSURING THAT ALL DRIVE TRAIN
MECHANISMS, THE DRIVEN MACHINE, AND PROCESS
MATERIAL ARE CAPABLE OF SAFE OPERATION AT THE
MAXIMUM SPEED AT WHICH THE MACHINE WILL OPERATE.
FAILURE TO OBSERVE THESE PRECAUTIONS COULD
RESULT IN BODILY INJURY.
Use the following procedure to replace a module:
Step 1.Turn off power to the rack and all connections.
Step 2.Remove the connectors from the module.
Step 3.Loosen the screws that hold the module in the
rack. Remove the module from the slot in the rack.
Step 4.Place the module in the anti-static bag IT came in,
being careful not to touch the connectors on the
back of the module. Place the module in the
cardboard shipping container.
Step 5.Take the new module out of its anti-static bag,
Step 6.Insert the module into the desired slot in the rack.
Step 7.Attach the field terminal connectors (M/N 57C377)
Step 8.Turn on power to the rack.
INSTALLATION
being careful not to touch the connectors on the
back of the module.
Use a screwdriver to secure the module into the
slot.
to the mating halves on the module. Make certain
that the connectors are the proper ones for the
module and for the specific axes.
3-11
3-12
2-Axis Servo Module M/N 57C422B
CHAPTER 4
PROGRAMMING
This section describes how the data is organized in the
module and provides examples of how the module is
accessed by the application software. For more detailed
information on programming, refer to J-3675, J-3676, and
J-3677.
The module contains a total of 4096 16-bit registers, one set
of 2047 registers for each servo axis. The X axis uses
registers 0-2046. The Y axis uses registers 2048-4094.
Note that there are 2 exceptions to this basic register
organization scheme: registers 64 and 4095 (interrupt
control) are used for both axes. In other words, the use
of an interrupt on either axis will require you to perform
some function In these two registers. See section 4.49
for more information on interrupts.
The following register reference conventions are used
throughout this instruction manual. All register descriptions in
the following sections are based on the X axis and are
organized in numerical order, except for interrupt and cam
registers, which are described in sections 4.49 and 4.50. The
equivalent Y axis registers are given in parentheses in the
figure that accompanies each register description. Appendix
E is a numerical register summary with page number
references.
Register numbers listed together separated by a comma
(e.g., 11, 12) signify a double precision (32-bit) value.
Register numbers listed together separated by a slash (e.g.,
104/105) indicate that both registers have a similar function
and should be considered together. This notation does not
indicate a double precision value.
For ease of locating descriptions for individual bits within
registers, bit names are underlined in the sections where the
bits are described. Bit names are placed between quotation
marks when they are only referred to. In some cases,
PROGRAMMING
4-1
registers with individual bit descriptions are shown with the
bits broken up into groups of four for ease of interpretation in
monitoring the registers in hexadecimal format.
At times register and bit references will be in the form of
"RA,bB," where "A” is the register number and "B" is the bit
number.
4.1Configuration
Before an application program can be written, it is necessary
to configure the definitions of variables that must be
accessible to all tasks in the rack. This section describes how
to configure the module.
If you are using V3.0 or later of the Programming Executive
software, you can configure the module using a special
software "form" that allows you to fill in the names of the
registers and bits. See the Programming Executive
instruction manual for more information on configuration
forms.
If you are using an earlier version of the programming
executive, you will need to create a configuration task to
configure the registers/bits on the module. See Appendix H,
for more information on creating a configuration task.
4-2
2-Axis Servo Module M/N 57C422B
4.2Register 0: Encoder Setup
Register 0 is used to configure the gearing reference and
feedback encoder inputs for the axis. Refer to figure 4.1.
Figure 4.1 – Encoder Configuration Register
The feedback encoder mode
channels from the encoder will be interpreted by the module.
If the step/direction mode is selected, a high to low transition
of Channel A causes a count. If Channel B was low, the
count is incremented. If Channel B was high, the count is
decremented.
If the step +
Channel A results in the count being incremented. A high to
low transition of Channel B results in the count being
decremented.
If the *1 quardrature is selected, only one edge of channel A
is counted. (Note that *1 quadrature is available only on B/M
57422-2C and later versions of the module.) If the *2
quadrature mode is selected, both the rising and trailing
edges of Channel A are counted. The direction is determined
from the state of Channel B.
PROGRAMMING
bits specify how the A and B
mode is selected, a high to low transition of
4-3
If the *4 quadrature mode is selected, both edges of
Channels A and B result in counts. The direction is
determined by the channel changing state and the state of
the opposite channel. All subsequent references to counts
include the quadrature calculation.
Note: Any references to counts within this instruction
manual take into account the quadrature multiplier
selected in this register.
You can use the feedback encoder polarity
rotation of the encoder as seen by the application software.
This is analogous to swapping the encoder leads to alter the
electrical direction of rotation.
Specifying the axis as "rotary" using the feedback linear/
rotary bit causes the module to subtract or add one
revolution of counts from the command position and the
actual position whenever the encoder crosses the revolution
boundary. This allows infinite range for rotary axis. If the axis
is specified as linear, the feedback will simply increment or
decrement as the axis is moved forward or in reverse.
4.3Register 1: Drive Setup
Register 1 is used to configure the servo drive. Refer to
figure 4. 2.
bit to change the
Figure 4.2 – Control Loop Configuration Register
The analog output
from the module should be configured to
work with the control loop on the drive (either current or
velocity).
4-4
2-Axis Servo Module M/N 57C422B
The output polarity bit is used to alter the sign of the drive
reference for a given error. This is analogous to swapping
the wires for the drive reference.
4.4Register 2: Switch Setup
Register 2 is used to configure the home and overtravel limit
switches. Refer to figure 4.3.
Figure 4.3 – Home and Overtravel Configuration Register
If you have a home limit switch on your machine, you should
use the enable home L/S.
of the limit switch as either normally open or normally closed.
The home direction
drive will move during the initial phase of the homing
sequence.
PROGRAMMING
Y ou can define the asserted sense
bit is used to define the direction that the
4-5
If you intend to use the feedback marker during the home
sequence, you should enable the feedback encoder marker
. Refer to section 4.35 for more information on the
pulse
“home axis” command in register 66.
To prevent your machine from moving beyond specified
physical limits, use the enable overtravel L/S
bit. You can
define the condition to be true when the limit switch is closed
(normally open) or open (normally closed). If an overtravel
limit switch is tripped during operation, the control will be
turned off and, if programmed, the drive will coast to a stop.
The machine will then have to be moved off the overtravel
limit switch before the control can be re-enabled. In critical
applications, hardwire the overtravel L/S into the emergency
stop circuit so that the drive will be disabled regardless of the
state of the control.
The drive fault input
is a simple means of shutting off the axis
control. This input can be either a fault signal from the drive
or an E-STOP push-button. You can define the asserted
sense of the input as either normally open or normally
closed. If the drive fault input is tripped, the axis control will
be disabled and, if programmed, the drive will coast to a
stop.
WARNING
RELIANCE STRONGLY RECOMMENDS THE USE OF AN
EXTERNAL, HARDWIRED EMERGENCY STOP CIRCUIT THAT
WILL DISABLE THE SYSTEM IN CASE OF IMPROPER
OPERATION. UNCONTROLLED MACHINE OPERATION MAY
RESULT IF THIS PROCEDURE IS NOT FOLLOWED. FAILURE
TO OBSERVE THIS PRECAUTION COULD RESULT IN BODILY
INJURY.
The software overtravel
bit is a programmable way of limiting
machine travel. You can define the action that occurs when
the software overtravel limit is exceeded as either a decel to
stop or a coast to stop. If you have specified a decel to stop,
the drive will decelerate at the specified rate to zero speed
and regulate about that position. If you have specified a
coast stop, the drive control will be disabled and the drive will
coast to rest. When the drive has exceeded a software
overtravel limit, and if you have specified a "decel to stop,"
the drive can be commanded to move away from the
overtravel conditio n.
4-6
2-Axis Servo Module M/N 57C422B
You should enable the gearing marker pulse if you intend to
use it to initialize the home position of the gearing encoder.
Refer to section 4.35 for the "set gearing position" command
in register 66 for more information .
4.5Register 3: Propo rtional Gain
Register 3 contains the proportional gain for the module. This
value is read by the module whenever the “change default
setups” command in register 66 is issued. See Section 5.2
for more information on turning.
Figure 4.4 – Proportional Gain Register
4.6Register 4: Integral Gain
Register 4 contains the integral gain for the module. This
value is read by the module whenever the "change default
setups" command in register 66 is issued. See Section 5.2
for more information on tuning.
Figure 4.5 – Integral Gain Register
4.7Register 5: Velocity Gain
Register 5 contains the velocity gain for the module. This
value is read by the module whenever the "change default
setups" command in register 66 is issued. See Section 5.2
for more information on tuning.
PROGRAMMING
4-7
Figure 4.6 – Velocity Gain Register
4.8Register 6: Feedforward Gain
Register 6 contains the feedforward gain for the module. This
value is read by the module whenever the “change default
setups” command in register 66 is issued. See section 5.2 for
more information on tuning.
Figure 4.7 – Feedforward Gain Register
4.9Register 7: Deadband Compensation
Register 7 contains the deadband compensation for the
module. This value is read by the module whenever the
"change default setups" command in register 66 is issued.
See Section 5.2 for more information on tuning.
Figure 4.8 – Deadband Compensation Register
4-8
2-Axis Servo Module M/N 57C422B
4.10 Register 8: Maximum Position Error
Register 8 contains the maximum allowable position error
that is used to determine faults. Position error is defined as
the difference between commanded and actual position. The
value depends on the system configuration and performance
required. If this limit is exceeded, the feedback will be
disabled and the appropriate fault bits will be set in the fault
register (R73). Note that register 8 will be examined by the
module even when it is in velocity mode. The module may
respond to excessive position error while running in velocity
mode.
Figure 4.9 – Maximum Position Error
4.11 Register 9: Maximum Velocity Error
Register 9 contains the maximum allowable velocity error.
Velocity error is the difference between the commanded and
the actual velocity. Excessive velocity error usually indicates
excessive acceleration, excessive deceleration, or a
disconnected encoder. The maximum velocity error is
determined using the following equation.
Maximum
Velocity Error=(max acceptable ve locity error in eng.
The result of the equation is in counts/scan. If this limit is
exceeded, the feedback will be disabled and the appropriate
fault bits will be set in the fault register (R73).
PROGRAMMING
units/sec*encoder cou nt s/ en g uni t s) (.00125)
Figure 4.10 – Maximum Velocity Error Register
4-9
4.12 Register 10: In-Position Tolerance
Register 10 defines the tolerance within which the axis is
considered to be in-position. This value is read by the
module whenever the "enable feedback" (register 65) or
"change default setups" (register 66) command is issued.
The axis is considered to be in-position if the absolute value
of the difference between where the axis should be and
where it actually is, is less than this tolerance. This condition
is available as "axis locked" status in register 72. The
in-position tolerance is in units of encoder counts. Refer to
figure 4.11.
Figure 4.11 – In-Position Tolerance Register
4.13 Registers 11, 12: Positive Overtravel
Limit
Registers 11, 12 define the positive overtravel limit. This
value is read by the module whenever the “enable feedback”
(register 65) or “change default setups” (register 66)
command is issued. This limit applies only if the axis is in the
linear mode (register 0, bit 4=0) and “software ove rtrav el ”
was enabled in register 2. The negative overtravel limit must
be algebraically less than the positive overtravel limit or a
motion fault will occur. The software overtravel limits are in
units of encoder counts.
Registers 11 -12 are also used to provide a maximum travel
for the "tune dynamics" (register 66) or "tune
limit
4-10
2-Axis Servo Module M/N 57C422B
feedforward" (register 66) commands.
Figure 4.12 –
Positive Overtravel Limit Registers
4.14 Registers 13,14: Negative Overtravel
Limit
Registers 13,14 define the negative overtravel limit. This
value is read by the module whenever the "enable feedback"
(R65) or change default setups" (R66) command is issued.
This limit applies only if the axis is in the linear mode.
(RO,b4=0) and "software overtravel" in R2 has been
enabled. The negative overtravel limit must be algebraically
less than the positive overtravel limit (R11, 12) or a motion
fault will occur. The negative overtravel limit is in units of
encoder counts.
Figure 4.13 –
Negative Overtravel Limit Registers
4.15 Registers 15,16: Low Speed Homing
Reference
Registers 15, 16 contain the low speed reference used
during the homing sequence. This value is read by the
module whenever the "home axis" (register 66) command is
issued. The low speed reference is used by the module
whenever it is attempting to locate the feedback marker
pulse. Refer to figure 4.14. The reference units are:
PROGRAMMING
4-11
(encoder counts/sec) * 65.536
Figure 4.14 –
Low Speed Homing Reference Register
4.16 Registers 17,18: Command Position
Registers 17, 18 contain numeric parameters used in
various commands. All of the commands do not require the
use of all of the parameters in registers 17-24. Refer to figure
4.15.
Figure 4.15 – Command Position Registers
Registers 17,18 contain the command position.
read by the module whenever any of the following
commands are issued in register 66: "index/move," "define
fdbk position," "home axis," "tune gains," "define gearing
position," "set gearing position when marker occurs" and
"define sync position." The units are encoder counts.
This value is
The value is also read when any of the following commands
are issued in register 67: "enable passive homing on
feedback encoder marker pulse," "enable passive homing on
gearing encoder marker pulse,". "enable relative change in
feedback position," and "enable relative change in gearing
position."
4-12
2-Axis Servo Module M/N 57C422B
4.17 Registers 19, 20: Command Velocity
Registers 19, 20 contain the command velocity. This value is
read by the module whenever the following commands are
issued: "index/move", "home axis", "tune dynamics", "tune
feedforward", or "change velocity" in R66; or "velocity
control" in R65. The command velocity units are:
(encoder counts/sec)*65.536
The maximum speed that can be programmed is 65,536,000
counts/sec.
Figure 4.16 – Command Velocity Registers
4.18 Registers 21, 22: Command
Acceleration
Registers 21, 22 contain the command acceleration. This
value is read by the module whenever the following
commands are issued: “index/move", "home axis", "tune
dynamics", or "tune feedforward" in R66; or "velocity control"
in R65. The command acceleration is calculated as follows:
The maximum programmed value is 3.28 x 1010 encoder
counts/sec/sec. The acceleration rate and deceleration rate
(R23, 24) do not need to be equal. However, the deceleration
rate must not be less than one-fifth the acceleration rate.
PROGRAMMING
4-13
Figure 4.17 – Command Acceleration Registers
4.19 Registers 23, 24: Command
Deceleration
Registers 23, 24 contains the command deceleration. This
value is read by the module whenever the following
commands are issued: "index/move", "home axis", "tune
dynamics", or "tune feedforward" in R66; or "velocity control"
in R65. The command deceleration is calculated using the
same formula used for calculating "command acceleration"
in R21, 22. In addition, the same maximum value applies to
both command acceleration and deceleration. See section
4.18 for more information.
Note that the ratio between the deceleration rate and the
acceleration rate must be between .2 to 1 and 5 to 1. The
"stop motion" command in register 66 will use the value in
23, 24, depending on the state of the "stop action" bit in
register 65. See sections 4.34 and 4.35 for more information.
Figure 4.18 – Command Deceleration Registers
4-14
2-Axis Servo Module M/N 57C422B
4.20 Registers 25, 26: Gear Ratio
Registers 25,26 contain the gear ratio between the feedback
and gearing reference axes. This value is read by the module
whenever the "enable gearing" (register 65) or "change gear
ratio" (register 67) command is issued. Refer to figure 4.19.
The gear ratio calculation method depends on the value of
"gear ratio format" (R38, b2). If this bit is equal to 0, the value
can be calculated with the following equation:
Gear Ratio = (feedback axis travel) * 16777216
gearing reference axis travel)
If R38, b2 is set, the gear ratio is the ratio of two 16-bit
numbers in registers 25 and 26. Register 25 is the
numerator. Register 26 is the denominator. The denominator
cannot be a negative number or 0.
If the result of the calculation is a repeating fraction, e.g., 1/3,
the module will keep track of all remainders for internal
gearing calculations. The allowable ratio range is 127:1 to
1:32767.
Note that if the gearing bit mode is set (R65, b1) and any
illegal condition is present in registers 25,26, gearing is not
enabled. If gearing is already enabled and a "change gear
ratio" command is issued (R67, b3), with illegal parameters
in registers 25,26, an illegal command fault will result.
Figure 4.19 – Gear Ratio Registers
4.21 Register 27: User LEDs
Register 27 is used to drive the three user controlled LEDs
on the faceplate of the module. These bits are read by the
module only when the "update LEDs" (register 66) command
is issued. Register 2075 (Y axis) can be used to update the
PROGRAMMING
4-15
same user LEDs when the “update LEDs" co mma nd
(register 2114) is issued. Since this could lead to confusion,
you should only use one register (either 27 or 2075) in an
application, but not both. Refer to figure 4.20.
Figure 4.20 – User-Controlled LED Register
4.22 Register 28: Direct Drive Reference
Command
Register 28 can be used to provide a direct reference to the
drive. This value is read contin uou sl y by the mod ule
whenever the "output volts" (register 65) command is issued.
The values may range from -1984 to 1984 corresponding to
an output range of +
10 volts. Refer to figure 4.21.
Figure 4.21 – Drive Command Reference Register
4.23 Registers 29, 30: Sync Position
Registers 29, 30 contain the sync position. The sync position
register can be used to define a position where an action
needs to occur. This register is read by the module whenever
the "define sync position" (register 66) command is issued.
The sync position is used in conjunction with "position >=" or
"position <" bits in register 72. When the value in the sync
4-16
2-Axis Servo Module M/N 57C422B
position registers is changed, the "position >=" and "position
<" bits in register 72 are undefined until another "define sync
position" command is issu ed. The sy nc position will be
compared to the actual current feedback position, an internal
value (not registers 74/75). The units are encoder counts.
Refer to figure 4.22.
Figure 4.22 – Sync Position Registers
4.24 Register 31: Maximum Voltage
Reference
Register 31 limits the maximum voltage reference to the
drive. This value should be set prior to outputting any
reference to the drive.
CAUTION
ALWAYS PLACE A LIMIT ON THE MAXIMUM VOLTAGE
REFERENCE TO THE DRIVE. FAILURE TO OBSERVE THIS
PRECAUTION COULD RESULT IN DAMAGE TO OR
DESTRUCTION OF THE EOUIPMENT.
The value in register 31 is read by the module whenever the
"change default setups" command in register 66 is issued.
The value may range from 0 to 1984, corresponding to an
output range of 0 to 10 volts. Refer to figure 4.23.
PROGRAMMING
4-17
Figure 4.23 – Maximum Voltage Reference Output Register
When the drive is configured as a velocity regulator, register
31 should be used to limit the voltage reference. This feature
is used if the drive requires less than 10 volts for full speed. If
the drive is configured as a current regulator, register 31 can
be used as a programmable current clamp. The "output
clamped" bit in register 73 will be set when the voltage
reference is limited by the value in register 31.
Register 32 contains the positive linearization constant for
the velocity output. This value is used by the module to
insure that the velocity output is linearly related to the
number computed by the software. Initially, this value should
be set to -1. The "tune dynamics" command in auto-tuning
will adjust this number if the drive has been configured as a
velocity regulato r.
Register 33 contains the negative linearization constant for
the velocity output. This value is used by the module to
4-18
2-Axis Servo Module M/N 57C422B
insure that the velocity output is linearly related to the
number computed by the software. Initially, this value should
be set to -1. The "tune dynamics" command in register 66 will
adjust this number if the drive has been configured as a
velocity regulato r.
Registers 34, 35 contain the unwind constant for the
feedback encoder. Refer to figure 4.26. This parameter is
used in the rotary mode selected in register 0 (Encoder
Setup). This value is read by the module whenever the
"home axis" or "change default setup" commands (register
66) are issued. The unwind constant is equal to the number
of encoder counts per axis revolution. Use the following
equation to determine the unwind constant:
Registers 36, 37 contain the unwind constant for the gearing
encoder. This parameter is used in the rotary mode selected
PROGRAMMING
4-19
in register 0 (Encoder Setup). This value is read by the
module whenever the "home axis" or "change default setup"
commands in register 66 are issued. The unwind constant is
equal to the number of encoder counts per axis revolution.
Use the same formula in the gearing unwind constant and
the feedback unwind constant. See section 4.27 above for
the formula.
Figure 4.27 – Gearing Unwind Constant Registers
4.29 Register 38: Gearing Modes, Ratio
Format, Ramp Velocity
Control
Register 38 is used to determine gearing mode if bit 9 in
register 65 is not set (0), to select the gear ratio format, and
to enable ramp velocity control. Note that changes to
registers 38
register 65
will be ignored while gearing mode is enabled in
. See figure 4.28.
Figure 4.28 – Gearing Mode, Ratio Format, and Ramp Velocity Control Register
4-20
2-Axis Servo Module M/N 57C422B
Note that the strobed gearing registration position (registers
86,87) and the current gearing position (registers 76, 77)
data are not affected by the selections made in register 38. X
and Y axis gearing registration and current gearing position
values will always be strobed from their respective hardware
encoder channels.
Bit 2 in register 38 selects the format of the gear ratio.
default (0) is a 32-bit number stored in registers 25,26 scaled
by 16777216. Setting bit 2 to 1 allows you to express the
gear ratio as a ratio of two 16-bit numbers in registers 25 and
26. See section 4.20 for more information.
Bit 3 in register 38 enables ramp velocity control
follower axis when the master axis is moving and gearing is
enabled, when you are changing from the non-geared to the
geared mode, or when the gear ratio is changed while
gearing is enabled. This command will limit the rate of
acceleration and deceleration until the axis is synchronized
with the master. Note that this limit applies only to trapezoidal
acceleration, not to S-curve acceleration. Once the axis is
synchronized with the master, there is no limit on
acceleration/deceleration through register 38, bit 3. When
ramped velocity control is selected, if gearing is disabled
while the follower axis is still moving, the follower axis will
continue to move at that velocity until a stop motion
command is issued in register 66, bit 6.
4.30 Registers 39, 40: Backlash
Compensation
Registers 39 and 40 are used to store a signal value (in
counts) that selects the amount of backlash compensation.
The sign of the value corresponds to the approach direction.
Refer to figure 4.29.
The
on the
For example, a value of +20 entered here will mean that an
incremental move of 100 counts will result in an actual move
of 100 counts and then a stop. The same move in the
negative direction will result in the axis moving - 120 counts,
+20 counts, and then a stop.
PROGRAMMING
4-21
Figure 4.29 – Backlash Compensation Registers
4.31 Register 41: Registration Inp ut Edge
Detection
Register 41 selects which edge (rising and falling, or falling
only) of the gearing or feedback registration input will be
recognized by the module. This register is available only on
the B/M 57422-2 module.
When bits 7 and 15 are left at the default value (0), the
module will recognize both the rising and failing edges of
registration inputs.
4.32 Register 63: Auto-Acknowledge
Register 63 is the command auto-acknowledge register.
When bit 0 is set to 1, the module will automatically clear the
command registers (66 and 67) instead of requiring an
application task to clear the command registers. The user
4-22
2-Axis Servo Module M/N 57C422B
need only wait for the value in registers 66 and 67 to be zero
before issuing the next command.
Figure 4.31 – Auto-Acknowledge Register
4.33 Register 64: I nterrupt Reset
To reset the interrupt, the application task must write a zero
value to register 64. Note that register 64 Is used as the
Interrupt reset register for both the X-axis and the
Y-axis. See figure 4.32.
Figure 4.32 – Interrupt Reset Register
4.34 Register 65: Mode
Register 65 is a control register used to command operating
modes on the module. This register is read by the module
continuously. Refer to figure 4.33.
PROGRAMMING
4-23
Figure 4.33 – Mode Register
The enable control loop
bit commands the module to switch
on the control loop (position/velocity) and enable the drive
reference from the module. It also causes the
microprocessor to read set-up data and reset faults when
toggled.
The enable gearing
bit commands the module to ratio the
feedback encoder to the gearing encoder. This function is
useful for electronic lineshaft applications. Note that if the
gearing function is used, register 25, 26 must contain the
gear ratio .
If gearing is enabled or disabled with ramp velocity control
disabled, the axis will accelerate or decelerate in current
limit.
If gearing is disabled with ramp velocity control enabled, it is
possible to do an absolute move while the drive is still in
motion. The new commanded position to which to move
must be either behind the current position, or farther forward
than the current position plus the distance required to
4-24
2-Axis Servo Module M/N 57C422B
decelerate to a stop. If the position is not beyond the
distance required to decelerate, the axis will overshoot.
The velocity control
bit causes the axis to run at the velocity
defined by the command velocity input (registers 19, 20).
This mode is used to run the axis as a velocity regulator.
Velocity regulation is achieved by sending a constantly
variable position reference to the position loop. This means
the axis can still "trip" due to position error, i.e., the value in
register 80 is greater than the value in register 8.
The direct drive reference
bit commands the module to
output the value in register 28 to the drive. This command
causes the axis to function like a D/A converter.
The direction
bit specifies the relationship between the
gearing axis and feedback axis when gearing is used, or to
specify the sign of the velocity command when velocity
control is used. When gearing is active, a positive direction
indicates that the gearing and feedback axis will move in the
same direction. A negative direction indicates that they will
move in opposite directions. If you jog into the positive or
negative software travel limit, and then try to jog off the limit
by changing the state of the direction bit, the axis will remain
at the travel limit. To be able to jog off a software travel limit,
you must first turn off the velocity control bit (bit 2), and then
turn it back on with the direction bit changed. See sections
4.13 and 4.14 for more information on software overtravel
limits.
The incremental/absolute move
move to be made. If you specify an absolute move, the axis
will move to the position specified in register 17. If an
incremental move is specified, the module will add the
current value in register 17 to the position of the axis to
determine the next position.
The velocity profile
will execute when accelerating or decelerating, whether
doing an absolute move (bit 5) or velocity control (bit 2).
Using an S-Curve profile doubles the time required to
accelerate and decelerate compared with the trapezoidal
profile. Note that If you select S-Curve, you cannot change
velocity while moving (register 66 bit 8) or an illegal
command fault will be generated. See the figure below for a
sample profile comparison.
PROGRAMMING
bit specifies the type of
bit specifies the type of profile the drive
4-25
The stop action bit defines the way that the drive will stop
when a "stop motion" command (register 66) is issued. If a
"decel to stop" is selected and the module is not in the cam
mode, the drive will ramp to a zero speed at the rate in
register 23, 24 when the motion is started. If the module was
in the time cam mode, it will complete the current cam cycle
and return to the beginning of the profile. If the module was in
position cam mode, cam execution will stop immediately. If a
"fast stop" is selected, the module will command the drive to
decelerate at the rate specified in register 23, 24 when the
"home" command is issued. If a "fast stop" is selected, a
"home", or "tune dynamics" command MUST be done to load
the "fast stop" deceleration rate. If the application does not
normally do a "home" command, you can use the mode of
homing that does not cause any motion. See section 4.35 for
more information. The feedback loop will remain enabled.
The gearing reference
bit defines the source of the gearing
reference. Bit 9 = 0 if you want the gearing reference to be
determined by register 38. If the reference is an encoder, you
4-26
2-Axis Servo Module M/N 57C422B
must connect the encoder to the proper inputs on the
terminal strip. If you want to gear to the opposite axis
command position, set bit 9 = 1. This option does not require
you to make any external wiring connections. In this mode,
the geared axis will follow all changes to the command
position of the reference axis.
The enable shortest path
the shortest path to take when doing an absolute move in
rotary mode.
No Incremental moves can be performed if this bit is set.
If rotary mode is not selected (in register 0, bits 4 and 12),
setting the enable shortest path bit will cause an illegal
command fault.
The enable automatic backlash compensation
to enable automatic backlash compensation as specified in
registers 39 and 40.
The abort self-tuning
command. This is the only command that is accepted while
the module is doing a self-tune.
bit allows the module to determine
command is used to abort a self tuning
4.35 Register 66: Comman d
Register 66 is used to command actions from the module.
The bits in this register and in register 67 are mutually
exclusive, i.e., only one function may be selected at a time
from either register. This register is read by the module
continuously. Refer to figure 4.34.
bit allows you
PROGRAMMING
4-27
Figure 4.34 – Command Register 66
The index/move command will cause the axis to move
according to the parameters defined in registers 17-24 and
register 65, bit 5. Once a move has been initiated, the accel
and decel rates may not be changed until the move is
complete. Velocity can be changed during a move by issuing
a "change velocity" command. Final position may be
changed during a move by issuing another index move.
The define feedback position
command will cause the
current position of the feedback to be defined by the value in
registers 17-18. The axis will not move.
The home axis
command will cause the axis to perform the
homing sequence that was defined by the bits in register 2.
Four different homing sequences for the feedback axis are
possible, depending on whether a home limit switch and
encoder marker pulse are specified in register 2. These four
sequences are described below. Note that it is also possible
to home on the feedback or gearing encoder marker pulse.
See section 4.36 for more information. When a "home"
command is issued, the deceleration rate in registers 23, 24
4-28
2-Axis Servo Module M/N 57C422B
is saved and used for the "stop motion" command if the "stop
action" bit is set in register 65.
1. No home limit switch and no encoder marker pulse.
When the "home axis" command is issued, the value in
registers 17, 18 is assigned to the current axis position.
The axis does not move.
2. Encoder marker pulse only. When the "home axis"
command is issued, the axis moves in the specified
direction at the slow home speed (registers 15, 16) until
the marker pulse is detected. The value in registers 17,
18 is then assigned to the axis position.
3. Home limit switch only. When the "home axis" command
is issued, the axis moves in the specified direction at the
fast home speed (registers 19, 20) until the home limit
switch is detected. The axis then stops and moves in the
opposite direction at the slow home speed (registers 15,
16) until the limit switch is cleared. The value in registers
17, 18 is then assigned to the axis position.
4. Both the home limit switch and encoder marker pulse.
When the "home axis" command is issued, the axis
moves in the specified direction at the fast home speed
(registers 19, 20) until the home limit switch is detected.
The axis then stops and moves in the opposite direction
at the slow home speed (registers 15, 16) until the limit
switch is cleared. After clearing the home limit switch, the
axis continues in the same direction at slow speed until
the marker pulse occurs. The value in registers 17, 18 is
then assigned to the axis position.
Tune gains, tune dynamics
auto-tuning commands that work differently from other
commands. While the auto-tuning process is underway, the
module will not respond to any commands other than the
"abort self-tuning" command (register 65). For this reason,
you should not attempt to issue self-tuning commands for
one axis while issuing any commands to the other axis.
Normal operation of both axes should be halted while
self-tuning is being done. Only one axis at a time may be
tuned.
Note that the application software disk includes an
auto-tuning procedure. See also section 5.2 for more
information about tuning.
PROGRAMMING
, and tune feedforward gain are
4-29
The self-tuning of an axis should always be done in the
following order:
1. Tune gains
2. Tune dynamics (if required by application)
3. Tune feedforward gain (if required by application)
The tune gains command is used to initiate self-tuning of the
control loop gains. The module will tune the gains in the
following order:
1. Deadband Compensation
2. Velocity Gain
3. Integral Gain
4. Proportional Gain
The tune gains command results in movement of the axis in
both directions. Registers 17, 18 are used to define the
tuning increment i.e., the distance that the axis will move
while attempting to auto-tune. This increment is typically
between .25 and .5 revolutions of the motor shaft.
The results obtained from the "tune gains" command are
stored in registers 3, 4, 5, and 7.
The tune dynamics
command will determine the maximum
velocity and accel and decel limits for the servo system
(motor and drive). Register 8 is used to define the maximum
allowable following error. Registers 11, 12 are used to define
the allowable travel distance, and registers 19 through 24 are
used to limit the accel, decel and velocity. The feedback
encoder should be in "linear" mode while this function is
being performed. If there are no machine limitations, these
registers may be set to any large value. In order for this
command to work properly , the motor must be able to rotate
in both directions for many revolutions. If this is not possible,
this command should not be used.
The results obtained from the tune dynamics command are
stored in registers 19 through 24. These values represent the
maximum values achievable with minimum following error.
You can exceed these values if you are not concerned with
the amount of following error or you can use a lower value if
your application requires ft.
4-30
2-Axis Servo Module M/N 57C422B
The tune feedforward gain command will self-tune the
feedforward gain. The feedforward gain can be used
whenever the reference to the drive is a current reference or
a velocity reference and the speed loop in the drive is a
proportional-only control. Feedforward gain should not be
used if the drive contains a proportional+ integral velocity
loop.
The feedforward gain is used to compensate for the offset
that occurs in a proportional speed regulator between set
speed and actual speed. The feedforward gain allows you to
null out this offset over the entire speed range for a fixed
motor load. However, overshoot can occur during
incremental and absolute moves. Register 8 is used to define
the maximum allowable following error. Registers 11, 12 and
13, 14 are used to limit the travel. The value chosen should
be such that no mechanical interference will occur. Registers
19, 20 should be set to 80%-90% of maximum velocity.
Registers 21 through 24 should be set to some reasonable
value, i.e., a percentage of the maximum capable by the
machine. The feedback encoder should be in "linear" mode
while this function is being performed. In order for this
command to work properly , the motor must be able to rotate
in both directions for many revolutions. If this is not possible,
this command should not be used.
The results obtained from the "tune feedforward" command
are stored in register 6.
The stop motion
command works in conjunction with the “stop action” bit in
register 65.
The do cam profile
profile stored in registers 128-2046. The time cam will be
executed as soon as this command is issued. If position cam
is enabled in register 130, the axis waits for the master
reference position to be exceeded before entering the cam
table. The axis should be less than the master reference
position when this command is issued. The "do cam profile"
command enables the test that determines whether master
position >
The change velocity
mode in register 65 is set to modify the velocity of the axis.
You can also use this command to change the velocity while
making a move.
PROGRAMMING
command is used to stop the axis. This
command is used to execute a cam
master reference position.
command is used after "velocity control"
4-31
The change default setups command is used to load and
update setup information, which includes registers 0-14, 31,
34-37, and 83 on the module whether the control loop is
enabled or not.
The update LEDs
27 (and 2075) to the three LEDs on the faceplate of the
module.
The latch status
status registers (74-81).
The define gearing position
position via register 17, 18 for the gearing encoder.
The set gearing position
position for the gearing encoder. If a gearing marker pulse
was defined in register 2, bit 12, then the gearing position will
be set when the marker pulse is detected. The status of the
marker pulse is reflected in register 72, bit 10. If a marker
pulse was not defined, then the position is set when the "set
gearing position" command is executed. Note that this last
mode is the same as the "define gearing position" command.
The define sync position
position in registers 29, 30.
command will transfer the data in register
command will update the module current
command allows you to define a
command is also used to define a
command is us ed to defi ne th e sync
4.36 Register 67: Command
Register 67 is used to command actions from the module.
The bits in this register and in register 66 are mutually
exclusive i.e., only one function may be selected at a time
from either register. This register is read by the module
continuously. Refer to figure 4.35.
4-32
2-Axis Servo Module M/N 57C422B
Figure 4.35 – Command Register 67
Feedback registration enable and/or gearing registration
enable is used to sense the respective registration digital
input. If the enable is set, any transition of the registration
input will cause the current gearing or feedback position to
be stored in registers 84 through 87. This is useful when
attempting to synchronize the axis to an external event. See
section 4. 31 for mo re optio ns regar ding re gistrat ion. Al so see
section 4.37 for a description of the "feedback registration
sensed" and "gearing registration sensed" bits (R72, b8 and
b9).
The change gear ratio
ratio set in 25/26 when you are running in the gearing mode.
This command can affect physical motion in the system.
The set feedback position on feedback marker pulse
command enables passive homing. This command does not
cause any motion. It only enables the logic such that when a
feedback marker pulse is detected, the value in registers 17,
18 is assigned to the axis feedback position. Marker pulses
are enabled in register 2. Note that there are other methods
of homing described in section 4.35.
The set gearing position on gearing mark er pulse
enables passive homing for the gearing encoder. On the next
gearing encoder marker pulse, the value in registers 17, 18 is
assigned to the axis gearing position. Marker pulses are
enabled in register 2. Note that there are other methods of
homing described in section 4.35.
PROGRAMMING
command is used to alter the gear
command
4-33
The enable relative change to feedback position command
results in the value registers 17, 18 (the command position)
being added to the feedback position. This command only
causes the drive to change where it "thinks" it is. It does not
cause the drive to move.
The enable relative change to gearing position
results in the value in registers 17, 18 (command position)
being added to the gearing position. This command does not
cause the drive to move. It only causes the drive to change
where it “thinks” it is.
4.37 Register 72: St atus
Register 72 is the status register. This register is updated
continuously by the module, except during an auto-tune
operation. As soon as an auto-tune sequence is completed,
updating will begin. This register is read-only. Refer to figure
4.24. See 4.49 for more information on causing interrupts on
the corresponding status.
command
Figure 4.36 – Status Register
Axis done
4-34
status indicates whether the programmed motion
2-Axis Servo Module M/N 57C422B
has been completed. It does not necessarily mean that the
axis is at the commanded position.
Axis locked
is set whenever the absolute value of the
difference between where the axis is and where it should be
is less than the value stored in the in-position register
(register 10). Note that the axis does not have to be stopped
to be in-position, and it may not be locked after an
incremental move.
Axis busy
The position > =
status is the logical complement of "axis done."
and position < bits work in conjunction with
the “sync position” contained in registers 29, 30 and the
“define sync position” command in register 66.
The home sequence complete
bit indicates whether a
homing sequence has been successfully completed. The bit
is reset by the module when it receives a “home axis”
command from register 66.
The auto tuning sequence
complete bit indicates whether an
auto tuning sequence is complete. This is the only status bit
that will be updated during auto-tuning. This bit will be set at
the end of an auto-tuning sequence regardless of whether it
was completed or aborted. The bit is reset by the module
when it receives an "auto tune" command.
The control loop enabled
bit indicates whether the control
loop (velocity/position) is actively regulating the drive. This bit
reflects the status of the control loop. The control loop is
disabled, and this bit is reset, by any severe fault, e.g., a
drive fault or hardware overtravel as reported in register 73.
The control loop is also disabled by turning off bit 0 in register
65.
The feedback registration sensed
feedback registration" command in register 67. The bit will be
set by the next occurrence of the feedback registration input,
and the feedback position will be stored in registers 84, 85.
This bit is not set unless the "feedback registration enable"
bit in register 67 is set first. The feedback registration sensed
bit stays high (1) until the "feedback registration enable" bit is
toggled.
The gearing registration sensed
gearing registration" command in register 67. The bit will be
PROGRAMMING
bit is reset by the "enable
bit is reset by the "enable
4-35
set by the next occurrence of the gearing registration input,
and the gearing position will be stored in registers 86, 87.
This bit is not set unless the "gearing registration enable" bit
in register 67 is set first. The gearing registration sensed bit
stays high (1) until the "gearing registration enable" bit is
toggled.
The gearing marker sensed
bit is reset by the "reset gearing
position" command in register 66. If the gearing marker pulse
has been selected in register 2, the bit will be set by the next
occurrence of the gearing marker pulse.
The command acknowledge
bit is set by the module to
indicate that a command in either register 66 or 67 was
recognized by the module. When this bit is set, you should
clear the command in register 66 or 67.
4-36
2-Axis Servo Module M/N 57C422B
4.38 Register 73: Fault
Register 73 is the fault register. This register is updated
continuously by the module except during an auto-tune
operation, when it will not be updated until the end of the
sequence. This register is read-only. Refer to figure 4.37.
See 4.49 for more information on causing interrupts on the
corresponding errors.
The overtravel
first enabled in register 2.
The maximum position error exce eded
following error in register 80 has exceeded the maximum
PROGRAMMING
Figure 4.37 – Fault Register
and drive fault bits can only be set if they are
bit is set when the
4-37
position error specified in register 8. Note that this bit can
also be set when the axis is in the velocity mode. See 4.34
for more information about velocity mode.
The output clamped
generated by the module is greater than or equal to the value
in register 31. It does not turn the control off.
The feedback fault
due to a severe fault reflected in this same register (note that
bit 7 in this register is not considered a fault bit). The
feedback fault bit is also set if register 65, bit 0 is 0, i.e., the
control loop is not enabled.
The illegal command
command. An illegal command is an attempt to issue more
than one command (in registers 66 or 67) at the same time,
or providing illegal parameters for a command, e.g., an
acceleration rate of zero for a move command. This bit is
reset by writing a zero to registers 66 and 67.
The system fault
cold start, a STOP ALL / CLEAR command is issued from
the programming terminal, or a processor module fails. This
bit indicates that the communication between the processor
module and the axis module has been broken. When this
happens, feedback will be disabled, and the drive reference
will be set to zero.
bit indicates that the output reference
bit is set when the control loop is disabled
bit is set in response to an illegal
bit is set whenever the processor does a
4.39 Registers 74, 75: Current Feedback
Position
Registers 74, 75 contain the current feedback position.
Registers 74, 75 are only updated when the "latch status"
command in register 66 is issued. This ensures that data will
be consistent while the application software interrogates it.
The units are encoder counts.
Figure 4.38 – Current Feedback Position Registers
4-38
2-Axis Servo Module M/N 57C422B
4.40 Registers 76, 77: Current Geari n g
Position
Registers 76, 77 contain the current gearing position.
Registers 76, 77 are only updated when the "latch status"
command in register 66 is issued. This ensures that data will
be consistent while the applicat ion softwa re inter rogates it.
The units are encoder counts. This data always originates
from the hardware gearing inputs on the given axis,
regardless of the selections made in register 65, bit 9, and
register 38, bits 0 and 1.
Figure 4.39 – Current Gearing Position Registers
4.41 Registers 78, 79: Current Velocity
Registers 78, 79 contain the current velocity i.e., the number
of counts in the period defined in R83. Registers 78, 79 are
only updated when the "latch status" command in register 66
is issued. This ensures that the data will be consistent while
the application software interrogates it. The units are
encoder counts.
Figure 4.40 – Current Velocity Registers
4.42 Register 80: Following Error
Register 80 contains the following error. Following error is
the difference between the internally commanded position
and the "current feedback position" in R74, 75. Register 80 is
only updated when the "latch status" command in register 66
is issued. This ensures that the data will be consistent while
PROGRAMMING
4-39
the application software interrogates it.
Figure 4.41 – Following Error Register
4.43 Register 81: Velocity Error
Register 81 contains the velocity error. Velocity error is the
difference between the internally commanded velocity and
the current velocity. Register 81 is only updated when the
"latch status" command in register 66 is issued. This ensures
that the data will be consistent while the application software
interrogates it. Command (R66, b11) is issued. The units are
encoder counts/scan.
Figure 4.42 – Velocity Error Register
4.44 Register 82: Digital Input Status
Register 82 contains the digital input status. The values
reported in register 82 are the actual values of the inputs
without regard to the status of any bits contained in register
2. Refer to figure 4.43.
Figure 4.43 – Digital Input Status Register
4-40
2-Axis Servo Module M/N 57C422B
4.45 Register 83: Current Velocity Status
Update Period
Register 83 contains the current velocity status update
period.
periods) during which data is accumulated before being
supplied to registers 78, 79 when the "latch status" command
is issued in register 66. The default value of R83 is 1, which
can actually be loaded as 0 or 1 into the register. Note that
this register is not accessed by the module until a "change
default setups" command is issued in R66.
This value is the number of scans (1.25 msec.
Figure 4.44 – Current Velocity Status Update Period Register
4.46 Registers 84, 85: Feedback
Registration Position
Registers 84, 85 contain the feedback registration position.
The value in these registers is latched if the feedback
registration input is enabled (R72, b8) and the feedback
registration input is activated. The status is annuciated in
register 72, bit 8.
Figure 4.45 – Feedback Registration Position Registers
4.47 Registers 86, 87: Gearing
Registration Position
Registers 86, 87 contain the gearing registration position.
The value in these registers is latched if the gearing
registration input is enabled (R72, b9) and the gearing
registration input is actuated. The status is annunciated in
PROGRAMMING
4-41
register 72, bit 9.
This data always originates from the hardware gearing inputs
on the given axis, regardless of the selections made in
register 65, bit 9, and register 38, bits 0 and 1.
Figure 4.46 – Gearing Registration Position Registers
4.48 Registers 99- 103: Software Version
Number
Registers 99-103 contain the software version number as a
string of 10 ASCII characters. Refer to figure 4.47.
Figure 4.47 – Software Version Registers
4.49 Interrupt Registers
M/N 57C422A and later 2-Axis Servo modules support
hardware interrupts. A hardware interrupt is used to trigger
execution of some portion of an application task. The
hardware interrupt is level-sensitive (high = true).
The interrupt is implemented through an application task task
using the hardware EVENT statement. See the Enhanced
BASIC language instruction manual for more information on
hardware EVENT statements and the Control Block
language instruction manual for more information on Control
4-42
2-Axis Servo Module M/N 57C422B
Block tasks.
Note that two of the registers used to implement interrupts,
64 (described in section 4.33) and 4095, are used for both
the X and Y axis. To avoid any confusion, at times this
section of the manual will not follow the general pattern of
notation found in the remainder of this instruction manual
and will explicitly refer to both the X and Y axis equivalents of
the register in question instead of only the X. In other words,
where the Y equivalent is given explicitly, you will not need to
add 2048 to the register number given for the X axis to find
the Y axis equivalent of the register number. Pairs of
registers that perform one function, such as enabling
interrupts, will be shown separated by a slash. For example,
registers 72/73 refers to all of the bits in registers 72 and 73
as a group.
4.49.1 Registers 68/69: Interrupt Enable
Registers 72 and 73 [X-axis] and 2120 and 2121 [Y-axis) are
read only registers that are used by the 2-Axis module to
report motion status and fault status for the two axes on a
continuous basis. You can choose to enable a hardware
interrupt whenever any bit in registers 72/73 or 2120/2121 is
set by the module. See section 4.37 and 4.38 for more
information on these status and fault registers.
To enable interrupts, the user application program must set a
bit or bits in registers 68/69, the interrupt enable masking
registers, that corresponds, respectively, to a bit or bits in
registers 72/73. For example, if you want to enable a
hardware interrupt whenever the “axis done” bit (0) in
register 72 is set by the system, set bit 0 in register 68 to
enable the interrupt. If you wanted to enable an interrupt
whenever the “velocity error exceeded” bit (5) in register 73
was set bit the system, you would set bit 5 in register 69.
You can set multiple bits in registers 68/69. Any bit or any
combination of those bits being set by the module in the
corresponding registers (72/73) will result in a hardware
interrupt. See figures 4.48 and 4.49.
Bits in 68/69 can be set in one of two ways. All bits in the
registers can be defined separately in configuration and set
to 1 in application tasks. You can also define only the
registers in configuration and “mask”, the variables in
application tasks with BASIC statements AND or OR.
4.49.2 Registers 104/105: Interrupt Source
Registers 104/105 are the interrupt source registers and
correspond to registers 72/73 in the same manner as do
registers 68/69. A user application program should read
registers 104/105 to see which bit(s) were set after an
interrupt occurs, i.e. after the EVENT has been set. The
source of the interrupt is the corresponding bit(s) in registers
72/73. For example, to continue the example above in
4.49.1, if bit 5 in register 105 is set, the interrupt was caused
PROGRAMMING
4-45
by the allowable velocity error being exceeded (bit 5 in
register 105 corresponds to bit 5 in register 73). After the
EVENT has been set, the user application task must write
zeroes to register 104/105. See figures 4.50 and 4.51.
Figure 4.50 – Interrupt Source Register 104
4-46
2-Axis Servo Module M/N 57C422B
Figure 4.51 – Interrupt Source Register 105
4.49.3 Register 4095: Interrupt Status and Control
(ISCR) Register
Register 4095 is the interrupt status and control register for
both the X- and the Y-axis. This register is used by the
module to allocate and manage interrupts. The variable
name assigned to this register is used in the EVENT
statement.
Figure 4.52 – Interrupt Status and Control Register
PROGRAMMING
4-47
4.49.4 Sample Application Task with Interrupt
The following sample application task illustrates the use of
interrupts on the 2-Axis module. This is not a complete
program, only a sample illustration using an interrupt. Note
that this sample assumes that the raw feedback from the
pulse generator is 1000 counts per revolution.
2000 LOCAL FDBK_SCALING
2010 LOCAL COMMAND%
2020 LOCAL DISTANCE
2030 LOCAL SPD
2040 LOCAL ACCEL
3000 INT_SRC_X! = 0\! Initialize interrupt source
3010 INT_ENA_X! = 0\! and enable registers and the
3020 REG_64% = 0\! interrupt reset register;
3021! INT_SRC_X! and INT_ENA_X! are
3022! double precision variables
3023 !
3025 EVENT NAME=HW_EVENT, INTERRUPT_STATUS= ISCR%, &
TIMEOUT= DISABLED
3030 ! line 3025 connects the variable name ISCR% to the
3035 ! interrupt status and control register
3040 ENCODER_SETUP%=1414H \! X-Axis gearing and feedback
3042! encoders are in rotary
3045! w/ *4 quadrature
3050 DRIVE SETUP%=0H
3060 SWITCHES%=011CH\! enables drive fault input,
3065! overtravel L/S, feedback
3067! encoder marker pulse; home
3068! direction is in the decreasing
3069! position
3070 PGAIN%=17595
3080 IGAIN%=768
3090 VGAIN%=78
3100 FGAIN%=8320
3110 DBCOMP%=28
3120 MAX_FOLL_ERR%=2000\! error is = to 0.5 axis revolutions
3130 MAX_VEL_ERR%=4000\! 1 revolution of the axis
3140 IN_TOLERANCE%=10
3150 GEAR_RATIO!=0
3160 MAX_VOLTS%=1984\! maximum volts = 10
3170 P_CONST%=-1
3180 N_CONST%=-1
3190 FDBK_UNWIND!=1600000\! 400 axis revolutions
3200 GEAR_UNWINDI=4000\! 4000 counts = 1 rev.
3201! from regs. 36,37
3210 COMMAND%=0200H \ GOSUB 15010 \! change default setups
3211 MODES% = 0
3215 DELAY 10 TICKS
3217 MODES% = 21H\! enable incremental index move
3218! and position loop
3230 FDBK_SCALING=4000\DISTANCE=20 \ SPD =40.0 \ ACCEL = 50.0
4000 ! Index move
4010 CMD_POS! = FDBK_SCALING*DISTANCE
4020 CMD_VEL! = SPD*FDBK_SCALING*65.536
4030 CMD_ACC! = (ACCEL/4)*FDBK_SCALING*.065536
4040 CMD_DEC! = CMD_ACC!
4050 COMMAND% = 1\GOSUB 15010
4055 !
4060 ! Subroutine to wait for axis done
4070 INT_ENA-X! = 00010000H
4080 WAIT ON HW_EVENT
4090 IF X_AXIS_DONE@ THEN INT_SRC_X! = 0 \ INT_ENA_X! = 0
4110REG_64% = 0
4120 IF (INT_ENA_XI <> 0) THEN GOTO 4080
4130 GOTO 4010
4140 !
15000 ! Subroutine to wait for command ack
15010 INT_ENA_X! = INT_ENA_XI OR 80000000H
4-48
2-Axis Servo Module M/N 57C422B
15014 ! line 15010 ORs INT_ENA_X! with 80000000H
15020 ! to enable interrupts from bit 15 of register 72
15030 CMD66% = COMMAND%\! loads value in COMMAND% into CMD66%
15032! which is the first command
15034! register on the X axis
15040 WAIT ON HW_EVENT
15042 ! after seeing the hardware event occur, test to see
15044 ! which interrupt occurred; if more than one interrupt
15046 ! is enabled, each must be chocked to see what caused
15048 ! the interrupt.
15049 !
15050 IF X_CMD_ACK@ THEN INT_SRC_X! = 0 \ INT_ENA_X! = 0 \ CMD66% = 0
15052 ! waiting on the hardware event here ensures that the
15054 ! Axis module responds with a command acknowledge
15056 ! before anything else is allowed to occur.
15060 !
15070 REG_64% = 0 \! reset interrupts (reg 64 for both X and Y)
15080 IF (INT_ENA_X! <> 0) THEN GOTO 15040
15082 ! line 15080 checks for an interrupt on the X axis
15090 RETURN
4.50 Cam Registers
The following sections describe how to implement the cam
profile registers. Two types of cam tables are available,
position-based, and time-based. The values in the cam table
are signed integers. These values represent either the
relative change in position for successive intervals of time in
the time-based cam, or the position of the axis with respect
to a master reference position in registers 126,127 if the
position-based cam is selected. Cam type is selected in
register 130, bit 8. The number of positions actually stored in
both the time-based cam and the position-based cam table is
defined in register 128.
Time Cam
The time-based cam table can be stored either as bytes or
words (16 bit registers). Byte values may range from -128 to
127 in encoder counts and are packed two per register. The
lower numbered byte is stored as the least significant 8 bits
of the register. There are a maximum of 3830 byte values in
the table. Note that if you use the byte format, you cannot
configure the values in the cam table in a configuration task
or in the Programming Executive variable configurator
application. You must use BASIC IOWRITE statements to
write the values to the cam table within your application
program.
Word values may range from -32768 to 32767 in encoder
counts. There are a maximum of 1915 word values in the
table. The values in the table represent the distance to move
in the selected amount of time.
PROGRAMMING
4-49
In order to select the value format (bytes or words), you need
to consider the number of points that are required to
represent the profile and the largest value that will be
required. In general, a profile can be described more
accurately with more points. The largest value that can be
stored in the table when time cam is selected can be
calculated using the following equation:
largest value = speed * encoder * time * .00125
where: speed = max. axis velocity in eng. units/sec
encoder = encoder counts/eng. unit
time = the value in register 129
If the absolute value of the above calculation exceeds 127,
you must choose the word format.
Position Cam
Register 38, bits 0 and 1 define what the axis will follow for
the purposes of position-based cam. Register 125 selects
the master axis position increment, i.e., the amount of travel
the master moves to increment to the next position in the
table, thus resulting in all points being the same distance
apart. Position cam values must be in double precision
integer format (32 bit values). Note that there are 956 total
points possible. For the X axis, register 2044, 2045 is the last
possible point in the cam table. For the Y axis, register 4092,
4093 is the last possible point in the cam table.
Linear Mode: When the master axis and the axis under
control are configured for linear mode in register 0, the
position cam operates in linear mode. In this mode, the first
point in the table should have a value of 0.
4-50
2-Axis Servo Module M/N 57C422B
When the master axis moves past the master reference
position, the following axis saves its own current position as
the base position. It then adds the position from the cam
table to the base position to arrive at the absolute position at
which it should be, using linear interpolation between points.
Rotary Mode with Endpoints Equal: When the master axis
and the axis under control are configured for rotary mode in
register 0, but the rotary position cam endpoints bit in register
130 is set to 0, the position cam will actually operate in linear
mode. The beginning and ending points of the table must be
equal and all positions in the table must be positive and less
than the unwind constant. After the master reaches the
unwind point, the following axis will repeat the cam motion.
The motion of the axis under control must be completed
before the master axis reaches the unwind position. If the
master axis runs in reverse, the position cam will work
backwards through the table. The cam will continue to
execute even if the master axis backs up behind the master
reference position.
PROGRAMMING
4-51
Once Only Rotary Mode: When the master axis and the
axis under control are configured for rotary mode in register
0, the rotary position cam endpoints bit in register 130 is set
to 1, and the run mode bit is set to 0, the position cam will
operate in the rotary mode once only. In this mode, the
beginning and ending points of the table do not need to be
equal. After the cam is enabled and the master axis moves
past the master reference position, the cam is executed
once. To enable the cam to run again, the "do cam profile"
command must be issued again. When re-enabling the cam,
you must ensure that the master axis is behind the master
reference position.
Continuous Rotary Mode: When the master axis and the
axis under control are configured for rotary mode in register
0, the rotary position cam endpoints bit in register 130 is set
to 1, and the run mode bit in register 130 is set to 1, the
position cam will operate in continuous rotary mode. In this
mode, the beginning and ending points of the table do not
need to be equal. After the cam is enabled and the master
axis moves past the master reference position, the cam is
executed once. Then, whenever the master unwinds, the
following axis will execute the cam again from its current
position. If the master axis runs in reverse, the position cam
will work backwards through the table. The cam will continue
to execute even if the master axis backs up behind the
4-52
2-Axis Servo Module M/N 57C422B
master reference position.
Each point in the position cam table consists of four bytes
(double precision integers). There are a maximum of 956
positions in the table if position cam is selected.
4.50.1 Register 125: Master Axis Position Increment
Register 125 is used to store the master axis position
increment (in counts) for the position cam. This value selects
the number of counts the master axis moves to increment to
the next position in the position cam table. This value cannot
be a negative number. This value must not exceed 32767. All
points in the table are the same distance apart.
Figure 4.53 – Master Axis Position Increment Register
4.50.2 Registers 126, 127: Master Reference Position
Registers 126 and 127 are used to store the master axis
position for the position cam. This double precision integer
selects the position for the master at which the cam will
enable movement of the following axis. Before the position
cam can be enabled, the master axis must be behind the
master reference position. In rotary mode, the master
reference position must be less than the unwind limit or the
PROGRAMMING
4-53
cam will never be started. The value is in counts.
Figure 4.54 – Master Reference Position
4.50.3 Register 128: Number of Points in Cam Table
Register 128 is used to select the number of points in the
cam table that are filled-in. This number represents bytes or
words for a time cam profile or double precision integers for a
position cam table. This register is read by the module
whenever the "do cam profile" bit is set in register 66.
Attempts to modify register 128 while the axis is moving will
be ignored by the module. See figure 4.55.
4.50.4 Register 129: Time Between Points in Cam
Table
Register 129 defines the time between points in the cam
table. The unit is scans. The time can be calculated with the
following equation:
Time =cam cycle time
number of profile points in the cam table * .00125
The time must be greater than or equal to 1. See figure 4.55.
4.50.5 Register 130: Cam Mode
Register 130 is used to select setup information about both
time and position type cams and to enable the position cam.
If position cam is selected, only bits 3 and 7 are used. See
figure 4. 55.
The data format
as either bytes or words.
If the table direction
the lowest register (132) to the highest defined register
(<=2046) in sequence. If it is set to reverse, the cam will
move from the highest defined register ( <=2046) to the
4-54
bit defines the data in the cam profile table
bit is set to forward, the cam moves from
2-Axis Servo Module M/N 57C422B
lowest register (132) in sequence. As a general rule, the
table should be accessed forward unless it is necessary to
exactly reverse a motion. In this case, the reverse direction
would be specified along with a negative motion direction.
If the run mode
bit is set to 0, the cam profile is executed
once according to the settings of the other cam mode bits.
The loopback register (131) is not used. If "run mode" is set
to 1, the time cam profile will be executed continuously
according to the settings of the other cam mode bits. At the
end of a time cam cycle, the module will return to the point
defined in the loopback register (131). The position cam
does not use register 131. See 4.50 for more information.
If the mirror image
bit is set, the module will start with the
data in register 132 and automatically reverse direction when
the last point in the table is reached and continue back to the
beginning. If "continuous mode" was selected (bit 5), the
mirror will be between the last point in the table and the
loopback point. If the cam is only executed once, the mirror
will be from the last point in the table to register 132. This
feature allows symmetrical profiles (like sine and cosine) to
be defined with only half of the data points.
The motion direction
bit determines the direction that the axis
will move when the cam profile is executed. If the direction is
positive, the axis will move in the same direction as the sign
of the cam profile points. If the direction is negative, the axis
will move in the opposite direction as the sign of the cam
profile points.
The rotary position cam end point
bit is used to select the
cam table beginning/ending points if the rotary mode is
selected. The default (0) means the beginning and ending
points must be equal. Setting the bit to 1 means the end
points may or may not be equal. See 4.50 for more
information.
The cam type
cam. If position cam is selected (bit 8=1) then only bits 3 and
7 of the remaining bits in the register apply.
PROGRAMMING
bit is used to select either the position or time
4-55
Figure 4.55 – Cam Profile Registers
4.50.6 Register 131: Loop Back Point in Cam Table
Register 131 contains the loop back point in the time cam
profile. This register is not used when position cam is
selected. The loop back point is the profile point to which the
axis will return after reaching the end of the defined profile. If
this register is used, you must ensure that both the value for
the last point in the cam profile table and the value for the
loopback point are within the accel/decel capability of the
servo drive. The profile points between the first profile point
and the loop back point are executed only once even in the
continuous mode. This allows these initial profile points to be
used to accelerate the axis into and out of the profile. The
loopback register is not used if the cam profile is executed
only once. Note that the first point in the cam table is point
zero (0). Refer to figure 4.56.
4-56
2-Axis Servo Module M/N 57C422B
Figure 4.56 – Cam Loop Back Register
4.50.7 Cam Data Registers
Cam data is stored in registers 132-2046 for the X axis
and in registers 2180-4094 for the Y axis. The number of
points within this register range depends upon
usable
whether you have selected time cam or position cam via
register 130, bit 8.
Time cam data is stored either as single precision integers
(16 bits, i.e., one register) or as bytes (8 bits). The largest
number of points that can be defined for a time cam is 1915 if
stored as registers, and 3830 if stored as bytes. See figure
4.57 for the first and last possible points that can be defined
for a time cam.
Position cam data is stored as double precision integers (32
bits, i.e., two registers), with the even number register being
the lower order 16 bits. The largest number of points that can
be defined for a position cam is 956. See figure 4.58 for the
first and last possible points that can be defined for a position
cam.
For both the time and position cam modes, the total number
of points that is defined must be specified in registers 128 for
the X axis and in register 2176 for the Y axis. The values in
the table must be in the proper format. See section 4.50 and
4.50.5 for more information.
PROGRAMMING
4-57
Figure 4.57 – Time Cam Data Registers
Figure 4.58 – Position Cam Data Registers
4-58
2-Axis Servo Module M/N 57C422B
CHAPTER 5
APPLYING THE MODULE
5.1Required Syst em Information
Before attempting to use this module you will need to know
the following information about your existing hardware:
1. Motor/Drive Regulator
- Maximum velocity
- Current or speed regulation in the drive. If the drive is
a speed regulator, does it use a proportional + integral
control?
- Maximum voltage for full scale reference to the drive
2. Encoder(s)
- Mode (step/direction, stepper motor, *2 quad, or *4
quad)
- Pulses/rev
- Whether marker pulse will be used for homing
3. System
- Mechanical gear-in (inches of travel/encoder
revolution
- Whether limit switches will be used for home,
overtravel, and drive fault. If so what is sense of limit
switches (normally open or closed)?
- If using gearing, what is the gear ratio between the two
axis?
5.2T uning
Before attempting to use the 2 Axis module in your
application, you should first tune the drive. This can either be
done manually or with the auto-tuning procedures supplied
on the application disk that came with your ReSource
APPLYING THE MODULE
5-1
software.
5.2.1 Auto-Tuning
The auto-tuning procedure on the application disk should
work satisfactorily if the following conditions apply:
1. The feedback encoder is connected to the motor shaft.
2. You have a servo drive with reasonable performance
characteristics.
3. You have a mechanical system that can move in both
directions.
4. The motor is able to run at or near maximum velocity for
a number of revolutions (for the purposes of auto-tune
dynamics and feedforward gain).
5.2.2 Manual Tuning
If auto-tuning does not yield satisfactory performance or your
system does not permit auto tuning you will need to tune
your system manually. The five gain parameters must be
adjusted in the following order:
1. Deadband Compensation (set to zero)
2. Velocity Gain
3. Proportional Gain
4. Integral Gain
5. Feedforward Gain
In general, each parameter is tuned by starting with a small
value, evaluating the response of the system, and then
increasing the value until the desired response is achieved.
Once a gain has been tuned, it should be left at its tuned
value and the next gain should be adjusted.
Use the following steps to tune the axis manually. When
adjusting gains, double or halve the previous value,
whichever is appropriate, until you are close to the desired
gain. Then use smaller increments to reach the precise
5-2
2-Axis Servo Module M/N 57C422B
value.
WARNING
RELIANCE STRONGLY RECOMMENDS THE USE OF AN
EXTERNAL, HARDWIRED EMERGENCY STOP CIRCUIT THAT
WILL DISABLE THE SYSTEM IN CASE OF IMPROPER
OPERATION. UNCONTROLLED MACHINE OPERATION MAY
RESULT IF THIS PROCEDURE IS NOT FOLLOWED. FAILURE
TO OBSERVE THIS PRECAUTION COULD RESULT IN BODILY
INJURY.
1. Initialize the axis using either the Resource application
software (see step 16 in section 5.3) or by following the
example in 4.3.3. Set the gains to the following initial
values.
Proportional Gain= 100
Integral Gain= 0
Ve locity Gain= 25*
Feedforward Gain= 0
*If the servo is expecting a velocity reference, set to 0
instead.
Set the following error and velocity error to large values
that will ensure safe operation of the machine without
nuisance faults, and then enable feedback (register 65,
bit 0).
2. If the servo is expecting a velocity reference, the
software velocity loop in the module is disabled and the
velocity gain does not need to be tuned. You can skip
steps three and four if the servo is expecting a velocity
reference.
3. If the servo is expecting a current reference, you will
need to put the drive in the velocity mode (register 65, bit
0) with velocity to set approximately half of the maximum
speed that your application will run at.
If the drive trips out with a following error (indicted in
register 73, bits 4 or 5), the initial value of the
proportional gain is too low. Double it and repeat the step
until the drive runs continuously.
APPLYING THE MODULE
5-3
4. Next, adjust the velocity gain. Continue to increase the
gain and observe the motor shaft. Ideally, the shaft
should regulate with very little noise or vibration. When
the shaft begins to vibrate, reduce the gain until the shaft
becomes relatively quiet.
Run the drive in the velocity mode at half of top speed.
The velocity error should be nearly zero (indicated in
register 81). Stop the drive. When the drive is stopped, it
should stop smoothly and cleanly.
5. Adjust the final value of the proportional gain. Continue
to increase the gain and observe the motor shaft. Ideally,
the shaft should regulate with very little noise or
vibration. When the shaft begins to vibrate, reduce the
gain until the shaft becomes relatively quiet.
Run the drive in the velocity mode at half of top speed.
The velocity error should be nearly zero (indicated in
register 81). Stop the drive. When the drive is stopped, it
should stop smoothly and cleanly.
6. Start with an integral gain of 10 and observe the motor’s
response as you attempt to make small incremental
moves. The integral gain will enable the shaft to hold a
rest position with zero error. A gain that is too large will
cause instability.
7. If you are using a servo drive that expects a velocity
reference and it contains an integrator in its a velocity
loop, the feedforward gain should be set at zero.
For all other drives, start with a gain of zero and run the
axis at or near its maximum velocity. Read the following
error (indicated in register 80). Increase the gain until the
following error as small as possible without going
negative.
8. Set the following error and velocity error to reasonable
values for your application.
5-4
2-Axis Servo Module M/N 57C422B
5.3Initialization
The following example illustrates the software required to
initialize one axis. The variables reference the configuration
data in Appendix H.
1000!
1010! Initialize Axis Parameters
1020!
2000ENCODER_SETUP%=01414H\!Rotary, polarity reversed, *4
2010DRIVE_SETUP%=02H\!Polarity reversed, current ref
2020SWITCHES%=01DH\!Marker pulse, home negative
2030PGAIN%=18700\!Position Gain
2040IGAIN%=1575\!Integral Gain
2050VGAIN%=140 \!Velocity Gain
2060FGAIN%=8256\!V Feedforward Gain
2070DBCOMP%=27\!Deadband Compensation
2080MAX_FOLL_ERR%=1000\!Maximum following error
2090MAX_VEL_ERR%=8\!Maximum velocity error
2100IN_TOLERANCE%=40\!In position tolerance
2110GEAR_RATIO!=16777216\!Gear ratio
2120MAX_VOLTS%=1984\!Maximum drive reference value
2130P_CONST%=-1\!Positive linearization constant
2140N_CONST%=-1\!Negative linearization constant
2150FDBK_UNWIND!=4000\!V Fdbk unwind = 1 revolution
2160GEAR_UNWIND!=4000\!Gearing unwind = 1 revolution
2170MODES%=0
2180CMD66%=0200H\GOSUB 25000\!Change default setups
2190!
10000!
24997!
24998! Subroutine to write command to module
24999!
25000DELAY 2 TICKS \IF NOT (CMD_ACK@ OR ILLEGAL_CMD@)
The following is a sample routine that will home the axis. If
the setup parameters defined in section 5.3 are used, the
axis will first move in the direction of decreasing encoder
counts (negative) towards the home limit switch. After the
home limit switch has been tripped, the axis will then move at
slow speed in the opposite direction until it reaches the
marker pulse. This same routine will correctly perform all of
the other home sequences based on the configuration data
in register 2.
4991 !
4992 ! Homing Sequence
4993 !
4994 ! FDBK-SCALING= encoder counts/engineering unit
4995 ! FDBK-POS= position (in engineering units)
4996 ! SPD= velocity (in engineering units)
4997 ! ACCEL= acceleration (in engineering units)
4998 ! FAULT@= fault status
4999 !
5000 HOME_SPD!=(SPD/100.)*FDBK_SCALING*65.536 \!Slow home velocity
5010 CMD_POS!=FDBK_POS*FDBK_SCALING\!Home position
5020 CMD_VEL! =(SPD/10.)*FDBK_SCALING*65.536\!Fast home velocity
5030 CMD_ACC!=(ACCEL/4.)*FDBK_SCALING*.065536\!Maximum accel
5040 CMD_DEC!=CMD_ACC!\!Maximum decel
5050 MODES%=MODES% AND 0FE
5060 DELAY 10 TICKS
5070 MODES%=MODES% OR 1\!Enable fdbk loop
5080 CMD66%=4 \GOSUB 25000\!HOME COMMAND
5090 IF FAULT@ THEN RETURN
5100 DELAY 20 TICKS VF NOT HOME_COMPLETE@ THEN GOTO 5100
5110 DELAY 20 TICKS
5120 FAULT@= (FAULTS% AND 037FH) < > 0
5130 RETURN
H\!Disable fdbk
5-6
2-Axis Servo Module M/N 57C422B
5.5Moving
The following example illustrates the software required to
move the axis. The move could be either an incremental or
absolute move depending on the state of register 65, bit 5.
5990!
5991! Move Sequence
5992!
5993! FDBK_SCALING= encoder counts/engineering unit
5994! FDBK_POS= position (in engineering units)
5995! SPD= velocity (in engineering units)
5996! ACCEL= acceleration (in engineering units)
5997! DECEL= deceleration (in engineering unit s)
5998! FAULT@= fault status
5999!
6000CMD_ POS!=FDBK_PO S*FDBK_SCALING
6005CMD_VEL!=SPD*F D BK_SCALING*65.536
6010CMD_ACC!=ACCEL*FDBK_SCALING* .065536
6015CMD_DEC!=DECEL*FDBK _SCALING*.065536
6020CMD66%= 1 \GOSUB 25000 \IF F AULT@THEN RETURN
6047REM
6D48REM Loop until MOVE complete or a fault occurs
6049REM
6050DELAY 20 TICKS \IF AXIS_BUSY@ THEN GOTO 6050
6055FAULT@=(FAULTS% AND 037FH)<>0
6060RETURN
APPLYING THE MODULE
5-7
5.6Elect ronic Gearing
The following example illustrates the software necessary to
use electronic gearing. Three examples are provided, one
each for turning the gearing mode on, changing the gear
ratio while the drive is active, and turning the gearing mode
off.
6992 !
6993 ! Turn on gearing mode
6994 !
6995 ! FDBK_SCALING= feedback encoder counts/engineering unit
6996 ! REF_SCALING= gearing encoder counts/engineering unit
6997 ! GEAR= gear ratio
6998 ! GEAR_DIR_SAME@= gear dir ection switch
6999 !
7000 GEAR_RATIO!=(FDBK_SCALING*GEAR/REF_SCALING\ *65536.*256.
7005 MODES%=MODES% AND 0ADH
7010 IF NOT GEAR_DIR_SAME@ THEN MODES%= MODES% OR 010H
7015 MODES%=MODES% OR 2
7020 RETURN
7100 !
7293 !
7294 ! Change gear ratio while drive is active
7295 !
7296 ! FDBK_SCALING= feedback encoder counts/engineering unit
7297 ! REF_SCALING= gearing encoder counts/engineering unit
7298 ! GEAR= gear ratio
7299 !
7300 GEAR_RATIO!=(FDBK_SCALING*GEAR/REF_SCALING) *65536.*256.
7305 CMD67%=8 \GOSUB 25000
7310 RETURN
7400 !
7497 !
7498 ! Turn off gearing mode
7499 !
7500 MODES%= MODES% AND 0ADH
7505 RETURN
5-8
2-Axis Servo Module M/N 57C422B
5.7Velocity
The following example illustrates the software necessary to
use the axis in the velocity mode. Three examples are
provided, one each for turning velocity on, changing the
velocity while the drive is active, and turning velocity off.
7991 !
7992 Turn on velocity mode
7993 !
7994 ! FDBK_SCALING= encoder counts/engineering unit
7995 ! SPD= velocity (in engineering units)
7996 ! ACCEL= acceleration (in engineering units)
7997 ! DECEL= decelerat ion (in engineering units)
7998 FAULT@= fault status
7999 !
8000 MODES%=MODES% AND 0AFH
8005 IF SPD < 0. THEN MODES%=MODES% OR 01 OH \SPD=-SPD
8047 REM
8048 REM Issue VELOCITY command to axis
8049 REM
8050 CMD_VEL!=SPD*FDBK_SCALING*65.536
8055 CMD_ ACC!=ACCEL*FDBK_SCALING*. 065536
8060 CMD_DEC! =DECEL*FDBK_SCALING*.065536
8065 MODES%=MODES% OR 4
8070 FAULT@= (FAULTS% AND 037FH) < > 0
8075 RETURN
8100 !
8294 !
8295 ! Change velocity while drive is running
8296 !
8297 ! FDBK_SCALING = encoder counts/engineering unit
8298 ! SPD = velocity (in engineering units)
8299 !
8300 IF SPD < 0. THEN SPD=-SPD
8305 CMD_VEL!=SPD*FD BK_SCALING*65.536
8310 CMD66%=0100H \GOSUB 25000
8315 RETURN
8400 !
8497 !
8498 ! Turn off velocity mode
8499 !
8500 MODES%=MODES% AND 0BBH
8505 RETURN
APPLYING THE MODULE
5-9
5.8Cam Mode
The following example illustrates the software necessary to
use the axis in the cam mode. The example is a time cam. It
illustrates how to calculate cam parameters and the values in
the cam table itself. It also shows how to start cam execution.
8992 !
8993 ! Compute cam parameters
8994 !
8995 ! FDBK_SCALING= encoder counts/engineering unit s
8996 ! CAM_CYCLE_TIME= time (in seconds) for one complete
8997 ! SPD= maximum speed (in engineering units)
8998 ! MAX_SPD= maximum speed (encoder counts/cam
8999 !
IF CAM_CYCLE_TIME <1915*.00125 THEN STEP_TIME=1 \GOTO 9010
9000
9005 STEP_TIME%=CAM_CYCLE_TIME/(1915*.00125)+.999
9010 TOTAL_PTS%=CAM_CYCLE_TIME/(STEP_TIME%*.00125)+.999
9015 IF TOTAL_PTS% > 1915 THEN TOTAL_PT S%= 1915
9020 MAX_SPD=SPD*FDBK_SCALING*ST EP_TIME%*.00125
9025 RETURN
9297 !
9298 ! Calculate Cam Profile Points
9299 !
9300 ADDRESS!=VARPTR!(CAM_TABLE%) \!Starting address for cam profile
9310 FOR I%=0 TO TOTAL_PTS%_1
9315 ! DATA_POINT%=change in position for next time interval
9320IOWRITE(3, DATA_POINT%, ADDRESS!)
9325ADDRESS!=ADDRESS! +2
9330 NEXT I%
9335 RETURN
9400 !
9497 !
9498 ! Start cam cycle
9499 !
9500 CAM_LOOPBACK%=0 !No loopback point.
9505 CAM_MODE%=9\!Run continuously, word format
9510 CMD66%=080H \GOSUB 25000 \! Do cam profile
9515 RETURN
cam cycle
time interval)
5-10
2-Axis Servo Module M/N 57C422B
This section describes limitations and restrictions on the use
of this module.
6.1Remote Racks
This module must not be used in a remote rack.
CHAPTER 6
RESTRICTIONS
RESTRICTIONS
6-1
6-2
2-Axis Servo Module M/N 57C422B
APPENDIX A
Technical Specifications
Ambient Conditions
• Storage Temperature: -40oC - 85oC
o
• Operating Temperature: 0
• Humidity: 5-90% non-condensing
Maximum Module Power Dissipation
• 8 Watts average
Dimensions
• Height: 11.75 inches
• Width: 1.25 inches
• Depth: 7.375 inches
System Power Requirements
C - 60oC
• +5 Volts: 1.6 Amps average
• +12 Volts: 100 mA per axis channel*
• -12 Volts: 100 mA per axis channel*
12 Volts supplied externally by the user for
•+
isolation
Encoder Specifications
• Signal type: Differential CMOS or TTL
• Signal level: 5 Volts
• Maximum input current: 4.5 mA
• Maximum frequency: 250 khz/channel
A-1
Registration Input Specifications
•Signal type: Electronic
•Maximum operating voltage: 24 Volts D-C ±20%
•Maximum ON current: 6 mA
•Transport delay: 50 microseconds
Limit Switch Input Specifications
• Signal Type: Contact or electronic
• Maximum operating voltage: 24 Volts A-C or D-C ±20%
• Maximum ON current: 6 mA
• Input Filter: 30 Hz
Watchdog Output Specifications
• Signal Type: Contact
• Signal level: 5-24 volts A-C or D-C
• Curr ent rating: 1000 mA max
Drive Reference Specifications
• Signal range: +10 Volts into a 10K ohm load
External Encoder Power Supply
• Voltage: +5 VDC
• Current: 250 mA + encoder requirements
• Regulation: 1%
Drive Reference Power Supply Specifications
• Voltage: ±12 to +15 VDC
• Curr ent: 25 mA
• Regulation: .1%
Scan Time
• 1.25 msec. update rate for velocity and position loops
A-2
2-Axis Servo Module M/N 57C422B
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.