`Programmer’s Guide
`
`Compumotor Division
`Parker Hannifin Corporation
`p/n 88-014540-01
`
`Compumotor
`
`
`
`
`
`
`
`User Information
`
`WARNING
`
`!
`!
`Because software controls machinery, test any software control for safety
`under all potential operating conditions. Failure to do so can result in
`damage to equipment and/or serious injury to personnel.
`
`6000 Series products and the information in this user guide are the proprietary property of Parker Hannifin Corporation or its licensers, and
`may not be copied, disclosed, or used for any purpose not expressly authorized by the owner thereof.
`
`Since Parker Hannifin constantly strives to improve all of its products, we reserve the right to change this user guide and software and
`hardware mentioned therein at any time without notice.
`
`In no event will the provider of the equipment be liable for any incidental, consequential, or special damages of any kind or nature
`whatsoever, including but not limited to lost profits arising from or in any way connected with the use of the equipment or this user guide.
`
`© 1991-97, Parker Hannifin Corporation
`All Rights Reserved
`
`Motion Architect is a registered trademark, and Motion Builder, Servo Tuner, Motion OCX Toolkit, CompuCAM and DDE6000 are trademarks
`of Parker Hannifin Corporation.
`Microsoft and MS-DOS are registered trademarks, and Windows, DDE, Visual Basic, and Visual C++ are trademarks of Microsoft Corporation.
`Wonderware is a registered trademark, and InTouch and NetDDE are trademarks of Wonderware Corporation.
`Motion Toolbox is a trademark of Snider Consultants, Inc.
`LabVIEW is a registered trademark of National Instruments Corporation.
`
`Technical Assistance
`
`Contact your local automation technology center (ATC) or distributor, or ...
`
`North America and Asia:
`Compumotor Division of Parker Hannifin
`5500 Business Park Drive
`Rohnert Park, CA 94928
`Telephone: (800) 358-9070 or (707) 584-7558
`Fax: (707) 584-3793
`FaxBack: (800) 936-6939 or (707) 586-8586
`BBS: (707) 584-4059
`e-mail: tech_help@cmotor.com
`Internet: http://www.compumotor.com
`
`Europe (non-German speaking):
`Parker Digiplan
`21 Balena Close
`Poole, Dorset
`England BH17 7DX
`Telephone: +44 (0)1202 69 9000
`Fax: +44 (0)1202 69 5750
`
`Germany, Austria, Switzerland:
`HAUSER Elektronik GmbH
`Postfach: 77607-1720
`Robert-Bosch-Str. 22
`D-77656 Offenburg
`Telephone: +49 (0)781 509-0
`Fax: +49 (0)781 509-176
`
`Motion & Control
`
`Product Feedback Welcome
`E-mail: 6000user@cmotor.com
`
`
`
`Change Summary
`
`6000 Series Programmer’s Guide
`Re v D
`
`Rev D – summary of changes (minor)
`• Removed references to the Motion Architect User Guide. Motion Architect no longer
`ships with the printed manual. An on-line Adobe Acrobat PDF version is available from our web
`site (http://www.compumotor.com).
`• Clarified Command Value Substitution guidelines with a “rule of thumb” (see page 6).
`• Error programming correction: DO NOT use the ERRORP CLR command to cancel the branch to
`the error program (see page 31).
`• DLL documentation clarification and correction (see pages 51-62):
`- WN956000.DLL is a 32-bit DLL to be used for Windows 95.
`- The DLL functions SetNTParam, SetNTMultiCardAddress, and SetDevice return FALSE (“0”) if
`the function is successful and TRUE (non-zero value) if the function is unsuccessful.
`• Sending ERRLVL1 to the first unit in an RS-232 daisy-chain does not set all other units to
`ERRLVL1. You must send ERRLVL1 to each unit individually. (see page 72)
`• GOWHEN correction: A preset GO command that is already in motion can (not “cannot”) start a
`new profile using the GOWHEN and GO sequence of commands. (this is true as of rev 4.1 firmware)
`
`Rev C – summary of changes (MAJOR)
`• Updated to accommodate 4.x firmware enhancements (see topics below) and the ZETA6104.
`• The presentation of programming examples was modified so that you can copy them from the
`Help system (in Motion Architect) or from the PDF file (on our www.compumotor.com web
`site) and paste them directly into your program.
`• Added documentation to support all 6000 products.
`• Incorporated the Following User Guide (see Chapter 6).
`• New sections:
`Page 8
`- Programming Scenario.......................................................
`
`Page 70
`
`- Controlling Multiple Serial Ports .........................................
`Page 75
`
`- RS-485 Multi-drop............................................................
`
`- Setup Parameters (list of commands for common setup parameters) ........
`Page 78
`Page 82
`
`- ZETA610n Internal Drive Setup ............................................
`Page 98
`
`- Servo Setup.....................................................................
`Page 130
`
`- RP240 Remote Operator Panel .............................................
`
`- Host Computer Interface ..................................................... Page 143
`
`
`- Graphical User Interface (GUI) Development Tools.................... Page 144
`
`
`- Compiled Motion Profiling................................................. Page 163
`
`
`- On-the-Fly Motion ........................................................... Page 178
`
`
`- R e g i s t r a t i o n....................................................................
`Page 182
`
`- Synchronizing Motion ...................................................... Page 186
`
`
`- Chapter 6: Following (incorporated the Following User Guide ) .......... Page 191
`
`
`- Status Commands ............................................................. Page 232
`
`• New back cover with quick-reference material.
`
`READ ON ...
`for a summary of the enhancements implemented in firmware revision 4.x.
`
`m m m
`
`
`
`T o p i c
`Commanded Direction
`Reversal (CMDDIR)
`
`Compiled Motion
`
`Contouring (Circular
`Interpolation)
`
`Continuous Command
`Execution Mode
`(COMEXC1)
`
`Drive Configuration
`& Reset
`
`Encoder Polarity Reversal
`(ENCPOL)
`
`Change Summary, page 2
`
`D e s c r i p t i o n
`Enhancement: The commanded direction polarity reversal command (CMDDIR) is available for the
`615n series, the 6270, and all stepper products (610n, AT6n00, 620n). The CMDDIR command
`allows you to reverse the direction that the controller considers to be the “positive” direction; this
`also reverses the polarity of the counts from the feedback devices. Thus, using the CMDDIR command,
`you can reverse the referenced direction of motion without the need to (a) change the connections to
`the drive or motor and the feedback device, or (b) change the sign of motion-related commands in
`your program. (SEE_PG(cid:8)._97_OR_101)
`New Feature: (SEE_PG(cid:8)._163)
`Related commands (new):
`
`FOLRNF .... Numerator of Final Slave-to-Master Ratio, Preset Moves
`
`GOBUF......
`Store a Motion Segment in Compiled Memory
`
`PLN ......... Loop End, compiled motion
`
`
`PLOOP......
`Loop Start, compiled motion
`
`POUTA......
`Output on Axis 1, compiled motion
`
`POUTB......
`Output on Axis 2, compiled motion
`
`POUTC......
`Output on Axis 3, compiled motion
`
`POUTD......
`Output on Axis 4, compiled motion
`
`[ SEG ]..... Number of Segments Available In Compiled Memory
`
`TSEG........ Transfer Number of Segments Available, Compiled Memory
`
`
`VF........... Final Velocity
`
`Existing commands, modified to support compiled motion:
`
`GOWHEN ....
`Conditional GOs allowed in compiled motion
`
`PCOMP......
`Pre-Compile a Program
`
`PRUN........
`Run a Pre-Compiled Program
`
`PUCOMP .... Un-Compile a Program
`
`[ SS ] ......
`Bit #29 set if compiled memory 75% full, bit #30 set if 100% full
`
`..............
`Bit #31 is set if a compile (PCOMP) failed; cleared on power-up,
`
`..............
`reset, or after a successful compile. (See Status Reporting,
`
`..............
`Additions below for a list of typical causes.)
`
`TRGFN......
`Execute GOWHENs or start new master cycle in compiled motion
`
`TSS .........
`(see [ SS ] description above)
`Enhancement: As of Rev 4.1, contouring is now available for all multi-axis products, steppers
`and servos. (SEE_PG(cid:8)._153)
`Enhancement: On-The-Fly changes (pre-emptive motion). In addition to velocity (V),
`acceleration (A & AA), and deceleration (AD & ADA), you may now change the positioning mode (MC &
`MA), the distance (D), and the Following ratios (FOLRN & FOLRD). These changes will affect the
`subsequent GO command executed while moving; thus, this new enhancement is referred to as “pre-
`emptive GOs.” (SEE_PG(cid:8)._178)
`When pre-processing subsequent moves, the subsequent move may now be executed as soon as the
`next GO command is executed. Previous to revision 4.0, the subsequent move could not be executed
`until all moves on all axes were completed.
`Enhancements:
`New commands added to set up the drive component of the 610n: (SEE_PG(cid:8)._82)
`
`DACTDP ....
`Enable/disable active damping for speeds greater than 3 rps.
`
`.............. (config. procedure: see the ZETA6104 Installation Guide)
`
`
`DAREN......
`Enable/disable anti-resonance. Anti-resonance is inhibited at or
`
`.............. below 3 rps, and if active damping is enabled.
`
`
`DELVIS ....
`Enable/disable electronic viscosity for speeds at or below 3 rps.
`
`.............. (config. procedure: see the ZETA6104 Installation Guide)
`
`
`DAUTOS ....
`Enable/disable automatic current standby mode in which current
`
`.............. to the motor (& torque) is reduced by 50% if no pulses are sent
`
`
`.............. for 1 second. Full current is restored upon the next pulse.
`
`
`DMTIND .... Motor inductance (used only for active damping—DACTDP).
`
`DMTSTT .... Motor static torque (used only for active damping—DACTDP).
`
`DWAVEF .... Motor waveform (required for matching the motor to the drive).
`615n only: As of Rev 4.1, you may use the new DRESET command to reset the internal drive
`independent of the internal controller. The purpose of the DRESET command is to clear fault
`conditions with the internal drive.
`Enhancement: The encoder polarity reversal command (ENCPOL) is now available to all 6000
`stepper products (AT6n00, 620n, & 610n). Previous to 4.0 the ENCPOL command was only
`applicable to the 6270. The ENCPOL command is used to reverse the polarity (counting direction) of
`the encoder feedback counts. This is an alternative to reversing the A+ and A- connections to the
`encoder. (SEE_PG(cid:8)._97_OR_100)
`
`
`
`T o p i c
`Error Checking
`Conditions
`
`Fast Status
`(bus-based products)
`
`Following
`
`Homing
`
`Memory Management
`
`On-The-Fly Motion
`(AKA: Pre-Emptive GOs)
`
`D e s c r i p t i o n
`Enhancements: (SEE_PG(cid:8)._31)
`• 610n: The drive fault error (reported with error status bit #4 and axis status bit #14) can be caused
`by any one or combination of the factors list below. To ascertain the exact cause, use the extended
`axis status (TASX or ASX):
`- Motor fault (disconnected/faulty motor cable or short in motor) — bit #1
`- Low-voltage (power) — bit #2
`- Maximum drive temperature (131(cid:176) F, 55(cid:176) C) exceeded — bit #3
`• Error status enhancements
`- Error bit #8 is set if a stop input (assigned with INFNCi-D) is activated.
`- Error bit #10 is set if the target position specified for a pre-emptive GO or a registration move is
`not achievable at the time the pre-emptive GO command is executed or the registration input is
`activated. This condition also sets bit #30 in the axis status register (reported with TAS & AS).
`To clear error bit #10 and axis bit #30, execute another GO command.
`- Error bit #16 is set if a bad command was detected; clear with TCMDER.
`• Related commands:
`
`[ ER ]......
`Error Status (assignment or comparison)
`
`ERROR .....
`Error-Checking Enable
`
`ERRORP....
`Error Program Assignment
`
`TER.........
`Transfer Error Status
`Correction: The bit assignments for the Limits status in block 5 are not the same as those for the
`TLIM report. (SEE_PG(cid:8)._43)
`Clarification: The input buffer is 256 bytes.
`Enhancements:
`• The new Following Kill (FOLK) command allows you to limit what will kill the Following profile.
`That is, it allows the slave to remain in synchronization with the master even after the occurrence
`of a drive fault, user fault input, excess position error, or enable input. Servo products only.
`• The new Numerator of Final Slave-to-Master Ratio, Preset Moves (FOLRNF) command designates
`that the motor will move the load the distance assigned in the preset GOBUF segment, completing
`the move at a final ratio of zero. FOLRNF applies only to the first subsequent GOBUF, which marks
`an inter-mediate “end of move” within a Following profile. The FOLRNF command is only useful
`for compiled Following moves. (SEE_PG(cid:8)._166)
`• The Following User Guide has been incorporated into this document (SEE_PG(cid:8)._192).
`Clarification: Avoid using pause and resume functions during the homing operation. A pause
`command (PS or !PS) or pause input (input configured with the INFNCi-E command) will pause the
`homing motion. However, when the subsequent resume command (C or !C) or resume input
`(INFNCi-E input) occurs, motion will resume at the beginning of the homing motion sequence.
`Enhancements:
`• Compiled Memory status commands:
`- System status (TSS & SS) bit #29 is set if compiled memory is 75% full,
`bit #30 is set if compiled memory is 100% full
`- TSEG & SEG report the number of available segments in compiled memory
`• All stand-alone products are shipped with 150,000 bytes of memory. The -M option has thus been
`eliminated for these products.
`• The second field in the MEMORY command is re-defined to be for “compiled memory” (i.e., anything
`compiled with the PCOMP command). (SEE_PG(cid:8)._12)
`• These commands are automatically saved in non-volatile memory: (SEE_PG(cid:8)._33)
`
`CMDDIR.... Commanded Direction Polarity (6104, 615n, 620n, 6270 only)
`
`DMTIND.... Motor Inductance (6104 only)
`
`DMTSTT.... Motor Static Torque (6104 only)
`
`DRPCHK.... RP240 check (6104, 615n, 620n, & 625n only)
`
`ENCPOL....
`Encoder Polarity (6104, 620n, & 6270 only)
`Enhancements: (SEE_PG(cid:8)._178)
`• The two basic ways of creating a complex profile are with compiled buffered motion, or with pre-
`emptive GOs. With compiled buffered motion, portions of a profile are built piece by piece, and
`stored for later execution. Compiled buffered motion is appropriate for motion profiles with
`motion segments of pre-determined velocity, acceleration and distance. With pre-emptive GOs, the
`motion profile underway is pre-empted with a new profile when a new GO is issued. The new GO
`both constructs and launches the pre-empting profile. Pre-emptive GOs are appropriate when the
`desired motion parameters are not known until motion is already underway.
`
`Continued on next page
`
`Change Summary, page 3
`
`
`
`T o p i c
`On-The-Fly Motion
`(continued)
`
`Registration
`
`Serial Communication
`
`Servo Updates Changed
`(Servo Products Only)
`
`Change Summary, page 4
`
`# of Axes
`(INDAX)
`1
`1
`Default, Single-Axis 1
`1
`2
`2
`2
`2
`3
`3
`3
`4
`4
`Default, Four-Axis 4
`
`Default, Two-Axis
`
`D e s c r i p t i o n
`• Affected Commands:
`
`COMEXC ....
`COMEXC1 mode allows pre-emptive motion with buffered commands
`
`GO........... Allows pre-emptive D, MC, MA, FOLRN, & FOLRD changes
`
`TAS & AS . . Bit #30 is set if the load has already passed the target position
`
`.............. (D) specified in a pre-emptive GO. (also sets error status bit #10)
`
`TER & ER . . Error status bit #10 is set if axis status bit #30 is set.
`Enhancements: (SEE_PG(cid:8)._182)
`• New Commands:
`
`REGLOD .... Registration Lock-Out Distance. Establishes a lock-out distance (measured from
`
`.............. the start of motion to the current actual position) to be traveled before a
`
`
`.............. registration move is allowed.
`
`
`REGSS......
`Registration Single-Shot. Allows only one registration move on the specified axis.
`
`.............. Prevents other triggers from interrupting the registration move in progress.
`
`• Axis status bit #28, reported by the TAS and AS commands, is set to 1 when a registration move
`has been initiated by any registration input (trigger). Bit #28 is cleared (set to Ø) upon the next GO
`command for that axis.
`• If, when the registration input is activated, the registration move profile cannot be performed with
`the specified parameters, the 6000 controller will kill the move in progress and set axis status bit
`#30 (see TAS & AS). If error-checking bit #10 is enabled with the ERROR command, the controller
`will also set error status bit #10 (see TER & ER) and branch to the assigned ERRORP error-handling
`program. Axis status bit #30 and error status bit #10 are cleared (set to Ø) upon the next GO
`command for that axis.
`• As of revision 4.1, Registration is now available all 6000 products (previous to 4.1, Registration
`was available only for stepper products).
`Enhancements: (SEE_PG(cid:8)._70)
`• BOT command was created to control the beginning-of-transmission characters for all
`responses from the 6000 product.
`• XONOFF command (new) enables/disables XON/XOFF ASCII handshaking.
`• Additional features to control multiple serial ports on stand-alone products:
`
`[............. Send response from the subsequent command to both ports.
`
`
`]............. Send response from the subsequent command to the alternate
`
`
`.............. port from the one selected with the most recent PORT command.
`
`
`DRPCHK .... Configures the serial port (specified with the last PORT command)
`
`.............. to be used with an RP240, or 6000 commands, or both.
`
`
`PORT........ Determines which serial port is affected by the subsequent DRPCHK, E, ECHO,
`
`
`.............. BOT, EOT, EOL, ERRORK, ERRBAD, ERRDEF, ERRLVL, and XONOFF commands.
`
`• As of 4.0, the ECHO command was enhanced with options 2 and 3. The purpose is to
`accommodate an RS-485 multi-drop configuration in which a host computer communicates
`to the “master” 6000 controller over RS-232 (COM1 port) and the master 6000 controller
`communicates over RS-485 (COM2 port) to the rest of the units on the multi-drop. For this
`configuration, the echo setup should be configured by sending to the master the following
`commands executed in the order shown. In this example, it is assumed that the master's
`device address is set to 1. Hence, each command is prefixed with “1_” to address only the
`master unit.
`1_PORT2... Subsequent command affects COM2, the RS-485 port
`1_ECHO2... Echo characters back through the other port, COM1
`1_PORT1... Subsequent command affects COM1, the RS-232 port
`1_ECHO3... Echo characters back through both ports, COM1 and COM2
`(see SSFR command description for full explanation of table contents)
`Servo Sampling Update
`Motion Trajectory Update
`System Update
`Frequency
`Period
`Frequency
`Period
`Frequency
`(m sec)
`(m sec)
`(samples/sec.)
`(samples/sec.)
`(samples/sec.)
`3030
`330
`3030
`330
`757
`5405
`185
`2703
`370
`675
`6250
`160
`1563
`640
`520
`6667
`150
`833
`1200
`417
`2353
`425
`2352
`425
`588
`3571
`280
`1786
`560
`446
`3571
`280
`893
`1120
`446
`3571
`280
`446
`2240
`446
`1667
`600
`1667
`600
`555
`2222
`450
`1111
`900
`555
`2353
`425
`588
`1700
`588
`1250
`800
`1250
`800
`417
`1667
`600
`833
`1200
`417
`2000
`500
`500
`2000
`500
`
`SSFR
`Setting
`1
`2
`4
`8
`1
`2
`4
`8
`1
`2
`4
`1
`2
`4
`
`Period
`(m sec)
`1320
`1480
`1920
`2400
`1700
`2400
`2400
`2400
`1800
`1800
`1700
`2400
`2400
`2000
`
`
`
`T o p i c
`Status Reporting
`
`Target Zone
`
`D e s c r i p t i o n
`Enhancements: (SEE_PG(cid:8)._232)
`• New transfer (display status) commands:
`
`TASX .......
`Transfer extended axis status. Bit assignments are as follows:
`
`..............
`Bit #1: Motor fault (6104 only)
`
`..............
`Bit #2: Drive low voltage fault (6104 only)
`
`..............
`Bit #3: Drive over-temperature fault (6104 only)
`
`..............
`Bit #4: Drive fault input is active
`
`TSEG .......
`Transfer number of segments available in compiled memory
`• New assignment/comparison operators:
`
` SEG ..........
`Number of segments available in compiled memory
`
` ASX ..........
`Extended axis status information
`• Pre-emptive Motion and Registration status:
`
` TAS & AS ... Axis status bit #28 is set if a registration move occurs.
`
`................ Bit #30 is set if the profile specified for a pre-emptive GO or registration move
`
`
`................ is not possible at the time of the GO or the registration input
`
`
`................ (also sets error status bit #10).
`
`
`TER & ER.... Error status bit #8 is set if a stop input (INFNCi-D) is activated.
`
`................ Bit #10 is set if axis status bit #30 is set.
`
`
`................ Bit #16 is set if a bad command is detected; cleared with TCMDER.
`
`• Compiled profile status:
`
`TSS & SS....
`System status bit #29 is set if compiled memory is 75% full.
`
`................ Bit #30 is set if compiled memory is 100% full.
`
`
`................ Bit #31 is set if a compile (PCOMP) failed, cleared on power-up,
`
`
`................ reset, or after a successful compile. Possible causes include:
`
`
`................
`- Errors in profile design (e.g., change direction while at non-
`
`................
`zero velocity, distance & velocity equate to < 1 count/system
`
`................
`update, preset move profile ends in non-zero velocity)
`
`................
`- Profile will cause a Following error (see TFS & FS status)
`
`................
`- Out of memory (see system status bit #30)
`
`................
`- Axis already in motion at the time of the PCOMP command
`
`................
`- Loop programming errors (e.g., no matching PLOOP or PLN,
`
`................
`more than 4 embedded PLOOP/END loops)
`TSEG & SEG Report number of available segments in compiled memory.
`• Drive Fault Input Status: As of revision 4.1, extended axis status (TASX & ASX) bit #4 is now
`available to check the drive fault input status whether or not the drive is enabled (DRIVE1) or
`disabled (DRIVEØ). Previous to revision 4.1, the status of the drive fault input could only be
`checked while the drive was enabled (DRIVE1) and was reported only with axis status (TAS & AS) bit
`#14 and error status (TER & ER) bit #4. The branch to the error program has not been changed—the
`error program is called only if the drive fault occurs while the drive is enabled.
`• The INDUST command (which allows you to create your own custom status word based on other
`status registers) now allows you to use the status bits from the extended axis status (see TASX
`description above). In the syntax INDUSTi-ic, the options for “c” (the status register source) now
`include L, M, N and O, representing the extended axis status registers for axes 1, 2, 3 and 4,
`respectively. For additional details on creating a custom user status word, refer to the INDUST
`command description.
`• As of Rev 4.1, the TVELA command is now applicable to all stepper controllers using encoder
`feedback (previously only for servos). For steppers, the TVELA command reports the current
`velocity (in revs/sec) as derived from the encoder. The reported value is not affected by scaling.
`The VELA assignment/comparison operator for TVELA is now available as of rev 4.0.
`• The Target Zone mode allows you to define what the controller considers a “completed move,”
`based on specified end-of-move distance, velocity, and settling time parameters. As of revision
`4.0, the Target Zone mode is now applicable to all 6000 products (previous to 4.0, the Target Zone
`mode was available only for servo products). NOTE: Steppers require encoder feedback (and ENC1
`mode) for this feature. (SEE_PG(cid:8)._105)
`• Target Zone Commands:
`
`STRGTE....
`Target Zone Mode Enable/Disable
`
`STRGTD....
`Target Distance Zone
`
`STRGTT....
`Target Settling Timeout Period
`
`STRGTV....
`Target Velocity Zone
`
`Change Summary, page 5
`
`
`
`New Commands in Revision 4.x (including product compatibility)
`
`6270
`
`625n
`
`620n
`
`615n
`
`610n
`
`AT6450
`
`AT6250
`
`AT6400
`
`AT6200
`
`Command
`
`Name
`
`Send Response to All Ports
`
`Send Response to Alternate Port
`
`Extended Axis Status
`
`Beginning of Transmission Characters
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`Active Damping
`
`Anti-Resonance
`
`Auto Current Standby
`
`Electronic Viscosity
`
`Motor Inductance
`
`Motor Static Torque
`
`Drive Reset
`
`Remote Port Check
`
`Waveform
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`Following Kill
`
`Numerator of Final Slave-to-Master Ratio
`
`Following Step & Direction
`
`Store a Motion Segment in a Buffer
`
`Compile a Program
`
`Loop End, Compiled Motion
`
`X
`
`S
`
`X
`
`X
`
`X
`
`X
`
`X
`
`S
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`[
`]
`ASX
`BOT
`DACTDP
`DAREN
`DAUTOS
`DELVIS
`DMTIND
`DMTSTT
`DRESET
`DRPCHK
`DWAVEF
`FOLK
`FOLRNF
`FOLSND
`GOBUF
`PCOMP *
`PLN
`PLOOP
`PORT
`POUTA
`POUTB
`POUTC
`POUTD
`PRUN *
`PUCOMP *
`REGLOD
`REGSS
`[ SEG ]
`TASX
`TSEG
`[ VELA ]
`VF
`XONOFF
`
`Registration Single Shot
`
`Number of Free Segment Buffers
`
`Transfer Extended Axis Status
`
`Transfer Number of Free Segment Buffers
`
`Velocity (Actual) Assignment
`
`Final Velocity
`
`Enable/Disable XON/XOFF
`
`X
`
`X
`
`X
`
`X
`
`S
`
`X
`
`X
`
`X
`
`X
`
`X
`
`S
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`* Modified to support compiled motion (previously, these commands supported only path contouring).
`S Applicable only to the standard (not OEM) version of the product.
`
`Change Summary, page 6
`
`Loop Start, Compiled Motion
`
`Designate Communications Port
`
`Output on Axis 1, Compiled Motion
`
`Output on Axis 2, Compiled Motion
`
`Output on Axis 3, Compiled Motion
`
`Output on Axis 4, Compiled Motion
`
`Run a Compiled Program
`
`Un-Compile a Program
`
`Registration Lock-Out Distance
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`X
`
`
`
`T A B L E O F C O N T E N T S
`
`Overview
`i
`About This Manual....................................................
`
`i
`
`Organization of This Manual .................................
`
`Programming Examples......................................
`ii
`
`Reference Documentation...................................
`ii
`
`Assumptions of Technical Experience ...................
`ii
`
`
`Product Name References (What’s in a Name?) ....... iii
`
`Before You Begin .................................................... iii
`
`
`Support Software .................................................... iii
`
`
`Motion Architect................................................ iii
`
`
`Motion Builder..................................................
`iv
`
`Motion Toolbox ................................................
`iv
`
`DOS Support Software ......................................
`iv
`
`Technical Support ..................................................
`iv
`
`Chapter 1. Programming Fundamentals
`2
`
`Motion Architect Programming Environment..................
`2
`
`Side-by-Side Editor and Terminal Windows .............
`3
`
`Command Syntax....................................................
`3
`
`Overview.........................................................
`4
`
`Description of Syntax Letters and Symbols ............
`5
`
`General Guidelines for Syntax .............................
`6
`
`Command Value Substitutions .............................
`6
`
`Assignment and Comparison Operators.................
`8
`
`Programmable Inputs and Outputs Bit Patterns.......
`8
`
`Creating Programs...................................................
`8
`
`Program Development Scenario ...........................
`
`Storing Programs ..................................................
`12
`
`Storing Programs in Stand-Alone Products...........
`12
`
`Storing Programs in Bus-Based Products.............
`12
`
`Memory Allocation...........................................
`12
`
`Checking Memory Status..................................
`13
`
`Executing Programs (options)..................................
`14
`
`Creating and Executing a Set-up Program ..................
`14
`Set-up Program Execution for Stand-Alone Controllers. 15
`Set-up Program Execution for Bus-Based Controllers.. 15
`
`Program Security ..................................................
`15
`Controlling Execution of Programs and the Command
`16
`
`Buffer .............................................................
`16
`
`Continuous Command Execution........................
`16
`
`Continue Command Execution on Kill...................
`17
`
`Save Command Buffer on Limit...........................
`Pause Command Execution Until In Position Signal 17
`
`Effect of Pause/Continue Input..........................
`17
`
`Save Command Buffer on Stop...........................
`17
`
`Restricted Commands During Motion.........................
`18
`
`
`Variables.............................................................. 18
`
`Converting Between Binary and Numeric Variables . 19
`
`Using Numeric Variables....................................
`19
`
`Using Binary Variables...................................... 22
`
`
`Program Flow Control .............................................. 23
`
`
`Unconditional Looping and Branching................... 23
`
`
`Conditional Looping and Branching ...................... 24
`
`
`Program Interrupts (ON Conditions)........................... 29
`
`
`Error Handling ....................................................... 30
`
`
`Enabling Error Checking .................................... 30
`
`
`Defining the Error Program .................................
`30
`
`Canceling the Branch to the Error Program............ 31
`
`
`Error Program Set-up Example............................
`32
`
`Non-Volatile Memory (Stand-Alone Products Only) ....... 33
`
`
`System Performance.............................................. 33
`
`
`Chapter 2. Communication
`
`Motion Architect Communication Features .................. 36
`
`
`DOS Support Software for Stand-Alone Products .........
`37
`
`DOS Support for Bus-Based Products........................ 38
`
`
`Downloading the Operating System .....................
`39
`
`Terminal Emulation........................................... 41
`
`Downloading Application Programs from the DOS
`
`
`prompt..................................................... 41
`Creating Your Own DOS-Based Application Program. 42
`
`PC-AT Bus Communication Registers......................... 43
`
`
`Fast Status Register (Base+2, Base+3)................
`43
`Card Status and Interrupts to/from PC-AT (Base+4) 49
`
`Reading and Writing to the 6000 Controller ............ 50
`
`
`DDE6000.............................................................. 50
`
`
`DLLs ...................................................................
`51
`
`Visual Basic™ Support...................................... 52
`
`
`Visual C++™ Support........................................ 58
`
`
`Motion OCX Toolkit™.............................................. 62
`
`
`PC-AT Interrupts....................................................
`63
`
`AT6nnn Interrupt Path....................................... 63
`
`
`How to Use Interrupts ...................................... 65
`
`
`Interrupt-Driven Terminal Emulator ......................
`68
`
`Controlling Multiple Serial Ports................................. 70
`
`
`Configuring the COM Port ..................................
`70
`Selecting a Destination Port for Transmitting from the
`
`Controller ................................................. 71
`
`
`RS-232C Daisy-Chaining ......................................... 72
`
`
`Daisy-Chaining from a Computer or Terminal.......... 73
`
`
`Daisy-Chaining from a Master 6000 Controller........
`74
`
`Daisy-Chaining and RP240s ...............................
`74
`
`RS-485 Multi-Drop.................................................. 75
`
`
`
`
`(SCLV and PSCLV).....................................
`
`84
`
`84
`
`Chapter 3. Basic Operation Setup
`
`
`Before You Begin................................................... 78
`
`Setup Parameters Discussed in this Chapter.........
`78
`
`Using a Setup Program...................................... 79
`
`
`Motion Architect .............................................. 79
`
`
`Resetting the Controller.....................................
`79
`
`Participating Axes.................................................. 79
`
`
`Memory Allocation.................................................. 80
`
`
`Drive Setup...........................................................
`80
`
`Drive Fault Level.............................................. 80
`
`
`Drive Resolution (steppers only) ......................... 81
`
`
`Step Pulse (steppers only)................................. 81
`
`
`Start/Stop Velocity (steppers only)......................
`82
`
`Disable Drive On Kill (servos only) ....................... 82
`
`
`ZETA610n Internal Drive Setup........................... 82
`
`
`Axis Scaling.......................................................... 83
`
`
`When Should I Define Scaling Parameters?........... 83
`
`Acceleration & Deceleration Scaling
`
`(SCLA and PSCLA).....................................
`Velocity Scaling
`
`Distance Scaling
`
`(SCLD and PSCLD)..................................... 85
`
`
`Scaling Examples ............................................