Summary of Contents for Galil Motion Control DMC-18 2 Series
Page 1
Artisan Technology Group is your source for quality new and certified-used/pre-owned equipment SERVICE CENTER REPAIRS WE BUY USED EQUIPMENT • FAST SHIPPING AND DELIVERY Experienced engineers and technicians on staff Sell your excess, underutilized, and idle used equipment at our full-service, in-house repair center We also offer credit for buy-backs and trade-ins •...
Page 2
USER MANUAL DMC-18x2 Manual Rev. 1.0i By Galil Motion Control, Inc. Galil Motion Control, Inc. 270 Technology Way Rocklin, California 95765 Phone: (916) 626-0101 Fax: (916) 626-0102 Internet Address: support@galilmc.com URL: www.galilmc.com Rev 3/08 Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com...
Page 4
Using This Manual This user manual provides information for proper operation of the DMC-18x2 controller. A separate supplemental manual, the Command Reference, contains a description of the commands available for use with this controller. Your DMC-18x2 motion controller has been designed to work with both servo and stepper type motors.
Contents CONTENTS ..................................I CHAPTER 1 OVERVIEW ..............................1 .................................1 NTRODUCTION ............................1 VERVIEW OF OTOR YPES Standard Servo Motors with +/- 10 Volt Command Signal ..................2 Brushless Servo Motor with Sinusoidal Commutation ....................2 Stepper Motor with Step and Direction Signals ......................2 DMC-18 ..........................2 UNCTIONAL...
Page 7
Example 9 - Interrogation ............................25 Example 10 - Operation in the Buffer Mode......................25 Example 11 - Using the On-Board Editor .........................25 Example 12 - Motion Programs with Loops ......................26 Example 13 - Motion Programs with Trippoints.......................26 Example 14 - Control Variables..........................26 Example 15 - Linear Interpolation ..........................27 Example 16 - Circular Interpolation..........................27 CHAPTER 3 CONNECTING HARDWARE ........................29...
Page 8
Operand Summary - Independent Axis ........................69 ..............................71 NDEPENDENT OGGING Command Summary - Jogging..........................71 Operand Summary - Independent Axis ........................72 ............................72 INEAR NTERPOLATION Specifying Linear Segments .............................72 Command Summary - Linear Interpolation ......................74 Operand Summary - Linear Interpolation .........................75 Example - Linear Move ............................75 Example - Multiple Moves............................77 ................77 ECTOR...
Page 9
Automatic Subroutines for Monitoring Conditions....................124 .......................127 ATHEMATICAL AND UNCTIONAL XPRESSIONS Mathematical Operators ............................127 Bit-Wise Operators ..............................128 Functions.................................129 ...................................130 ARIABLES Programmable Variables............................130 ..................................131 PERANDS Special Operands (Keywords)..........................131 ..................................132 RRAYS Defining Arrays...............................132 Assignment of Array Entries...........................132 Automatic Data Capture into Arrays........................133 Deallocating Array Space ............................135 )........................135 NPUT OF UMERIC AND...
Page 10
The Analytical Method ............................165 APPENDICES.................................169 ............................169 LECTRICAL PECIFICATIONS Servo Control ................................169 Stepper Control ...............................169 Input/Output................................169 Power ..................................169 ...........................170 ERFORMANCE PECIFICATIONS DMC-18 .......................170 ONNECTORS FOR OARD DMC-18 2........................171 ESCRIPTION FOR DMC-18 2 ........................173 UMPER ESCRIPTION FOR ............................173 CCESSORIES AND PTIONS ICM-1900 I ..........................174 NTERCONNECT ODULE...
Chapter 1 Overview Introduction The DMC-18x2 series motion control cards install directly into the PCI bus. This controller series offers many enhanced features including high speed communications, non-volatile program memory, faster encoder speeds, and improved cabling for EMI reduction. The DMC-18x2 provides a high speed FIFO for sending and receiving commands. This PCI bus motion controller allows for high speed servo control up to 12 million encoder counts/sec and step motor control up to 3 million steps per second.
Standard Servo Motors with +/- 10 Volt Command Signal The DMC-18x2 achieves superior precision through use of a 16-bit motor command output DAC and a sophisticated PID filter that features velocity and acceleration feedforward, an extra pole filter and integration limits. The controller is configured by the factory for standard servo motor operation.
WATCHDOG TIMER TTL LIMITS AND HOME INPUTS 68331 HIGH-SPEED MAIN ENCODERS MICROCOMPUTER MOTOR/ENCODER WITH INTERFACE +/- 10 VOLT OUTPUT FOR 2 Meg RAM Primary SERVO MOTORS 2 MegFLASH EEPROM X,Y,Z,W FIFOS PULSE/DIRECTION OUTPUT FOR STEP MOTORS PLUG & PLAY HIGH SPEED ENCODER I/O INTERFACE COMPARE OUTPUT 8 PROGRAMMABLE...
Power Supply Amplifier (Driver) Computer DMC-18x2 Controller Encoder Motor Figure 1.2 - Elements of Servo systems Motor A motor converts current into torque which produces motion. Each axis of motion requires a motor sized properly to move the load at the required speed and acceleration. (Galil's "Motion Component Selector"...
The standard voltage level is TTL (zero to five volts), however, voltage levels up to 12 Volts are acceptable. (If using differential signals, 12 Volts can be input directly to the DMC-18x2. Single- ended 12 Volt signals require a 5-7V bias voltage input to the complementary inputs.) The DMC-18x2 can accept analog feedback instead of an encoder for any axis.
Page 17
THIS PAGE LEFT BLANK INTENTIONALLY 6 ● Chapter 1 Overview DMC-18x2 Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com...
Chapter 2 Getting Started The DMC-18x2 Motion Controller DMC-18x2 Figure 2-1 - Outline of the DMC-1812 thru DMC-1842 Flash EEPROM 2A/2B Motorola 68331 microprocessor GL-1800 custom gate array Error LED 100-pin high density connector (part number Amp#2-178238-9) Jumpers used for configuring stepper motor operation * Master Reset &...
Elements You Need Before you start, you must get all the necessary system elements. These include: 1. DMC-1812, 1822, 1832, or DMC-1842 Motion Controller, (1) 100-pin cable, and (1) interconnect module (either ICM/AMP-1900 or ICM-2900). 2. Servo Motors with Optical Encoder (one per axis) or Stepper Motors. 3.
Step 8c. Connect step motors. Step 9. Tune the servo system. Step 1. Determine Overall Motor Configuration Before setting up the motion control system, the user must determine the desired motor configuration. The DMC-18x2 can control any combination of standard servo motors, sinusoidally commutated brushless motors, and stepper motors.
Step 2. Install Jumpers on the DMC-18x2 Master Reset and Upgrade Jumpers JP6 contains two jumpers, MRST and UPGRD. The MRST jumper is the Master Reset jumper. When MRST is connected, the controller will perform a master reset upon PC power up or upon the reset input going low.
Step D. Insert DMC-18x2 card in the expansion bus and secure with screw. Step E. Attach 100-pin cable to your controller card. If you are using a Galil ICM-1900, AMP-19X0, or ICM-2900, this cable connects into the J2 connection on the interconnect module.
Notes on Configuring Sinusoidal Commutation: The command, BA, reconfigures the controller such that it has one less axis of 'standard' control for every axis using sinusoidal commutation. For example, if the command BAX is given to a DMC-1842 controller, the controller will be re-configured to be a DMC-1832 and will appear as such when interrogated.
Page 24
and the position error exceeds the error limit. As shown in Figure 3-4, AEN can be used to disable the amplifier for these conditions. The standard configuration of the AEN signal is TTL active high. In other words, the AEN signal will be high when the controller expects the amplifier to be enabled. The polarity and the amplitude can be changed if you are using the ICM/AMP-1900 or ICM- 2900.
At this point, if TPX does not vary with encoder rotation, there are three possibilities: 1. The encoder connections are incorrect - check the wiring as necessary. 2. The encoder has failed - using an oscilloscope, observe the encoder signals. Verify that both channels A and B have a peak magnitude between 5 and 12 volts.
Page 26
If the motor runs away and creates a position error of 2000 counts, the motor amplifier will be disabled. Note: This function requires the AEN signal to be connected from the controller to the amplifier. Step C. Set Torque Limit as a Safety Precaution To limit the maximum voltage signal to your amplifier, the DMC-18x2 controller has a torque limit command, TL.
Page 27
If the motor moves in the required direction but stops short of the target, it is most likely due to insufficient torque output from the motor command signal ACMD. This can be alleviated by reducing system friction on the motors. The instruction: TTX (CR) Tell torque on X reports the level of the output signal.
Page 28
Unused with the Reset Switch DMC-18x2 100 pin high density connector Error LED Controller AMP part # 2-178238-9 -MAX ADG202 -MBX Motor Command -INX buffer circuit +5 VDC +INX +MBX 7407 +MAX Amp enable buffer circuit Encoder Wire Connections Encoder: ICM-1900: Channel A+ +MAX...
Step 8b. Connect Sinusoidal Commutation Motors When using sinusoidal commutation, the parameters for the commutation must be determined and saved in the controller’s non-volatile memory. The servo can then be tuned as described in Step 9. Step A. Disable the motor amplifier Use the command, MO, to disable the motor amplifiers.
Page 30
will test the X axis with a voltage of 2 volts, applying it for 700 millisecond for each phase. In response, this test indicates whether the DAC wiring is correct and will indicate an approximate value of BM. If the wiring is correct, the approximate value for BM will agree with the value used in the previous step.
sufficient for proper operation of the BZ command. For systems with significant friction, this voltage may need to be increased and for systems with very small motors, this value should be decreased. For example, BZ -2, 0, 1 will drive both X and Z axes to zero, will apply 2V and 1V respectively to X and Z and will end up with X in SH and Z in MO.
corresponding axis is unavailable for an external connection. If an encoder is used for position feedback, connect the encoder to the main encoder input corresponding to that axis. The commanded position of the stepper can be interrogated with RP or DE. The encoder position can be interrogated with TP.
TE X (CR) Tell error As the proportional gain is increased, the error decreases. Again, the system may vibrate if the gain is too high. In this case, reduce KP. Typically, KP should not be greater than KD/4. (Only when the amplifier is configured in the current mode). Finally, to select KI, start with zero value and increase it gradually.
Instruction Interpretation PR 500,1000,600,-400 Distances of X,Y,Z,W SP 10000,12000,20000,10000 Slew speeds of X,Y,Z,W AC 100000,10000,100000,100000 Accelerations of X,Y,Z,W DC 80000,40000,30000,50000 Decelerations of X,Y,Z,W BG XZ Start X and Z motion BG YW Start Y and W motion Example 4 - Independent Moves The motion parameters may be specified independently as illustrated below.
PA 7000,4000 Sets the desired absolute positions BG X Start X motion BG Y Start Y motion After both motions are complete, the X and Y axes can be command back to zero: PA 0,0 Move to 0,0 BG XY Start both motions Example 7 - Velocity Control Objective: Drive the X and Y motors at specified speeds.
Example 9 - Interrogation The values of the parameters may be interrogated. Some examples … Instruction Interpretation KP ? Return gain of X axis. KP ,,? Return gain of Z axis. KP ?,?,?,? Return gains of all axes. Many other parameters such as KI, KD, FA, can also be interrogated. The command reference denotes all commands that can be interrogated.
Example 12 - Motion Programs with Loops Motion programs may include conditional jumps as shown below. Instruction Interpretation Label DP 0 Define current position as zero V1=1000 Set initial value of V1 #LOOP Label for loop PA V1 Move X motor V1 counts BG X Start X motion AM X...
SP 2000 Set speed Move X Wait until move is complete WT 500 Wait 500 ms V1 = _TPX Determine distance to zero PR -V1/2 Command X move 1/2 the distance Start X motion After X moved WT 500 Wait 500 ms Report the value of V1 JP #C, V1=0 Exit if position=0...
Page 39
VA 50000 Vector acceleration VD 50000 Vector deceleration End vector sequence Start motion (-4000,4000) (0,4000) R=2000 (-4000,0) (0,0) local zero Figure 2-4 Motion Path for Example 16 28 ● Chapter 2 Getting Started DMC-18x2 Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com...
Chapter 3 Connecting Hardware Overview The DMC-18x2 provides digital inputs for forward limit, reverse limit, home, and abort signals. The controller also has 8 uncommitted, TTL inputs (for general use) as well as 8 TTL outputs. This chapter describes the inputs and outputs and their proper connection. Using Inputs Limit Switch Input The forward limit switch (FLSx) inhibits motion in the forward direction immediately upon activation...
state of the limit switches can also be interrogated with the TS command. For more details on TS, _LFx, _LRx, or MG see the Command Reference. Home Switch Input Homing inputs are designed to provide mechanical reference points for a motion control application. A transition in the state of a Home input alerts the controller that a particular reference point has been reached by a moving part in the motion control system.
NOTE: The effect of an Abort input is dependent on the state of the off-on-error function (OE) for each axis. If the Off-On-Error function is enabled for any given axis, the motor for that axis will be turned off when the abort signal is generated. This could cause the motor to ‘coast’ to a stop since it is no longer under servo control.
An external 24V supply is only necessary if a Connection to +5V or +12V made through 24V AEN signal is necessary. Remove the Resistor pack RP1. Removing the resistor pack resistor pack from RP1 and connect a resistor in allows the user to connect their own resistor to series with the 24V supply.
Page 44
NOTE: For systems using the ICM-2900 interconnect module, the ICM-2900 has an option to provide optoisolation on the outputs. In this case, the user provides an isolated power supply (+5 volts to +24 volts and ground). For more information, consult Galil. The output compare signal is TTL and is available on the ICM-2900 as CMP.
Page 45
THIS PAGE LEFT BLANK INTENTIONALLY 34 ● Chapter 3 Connecting Hardware DMC-18x2 Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com...
Chapter 4 - Software Tools and Communications Introduction ® Galil software is available for PC computers running Microsoft Windows to communicate with the DMC-18x2 controller via the PCI bus. Standard Galil communications software utilities are available for Windows operating systems, which includes SmartTERM and WSDK. These software packages are developed to operate under Windows 98SE, ME, NT4.0, 2000, and XP, and include all the necessary drivers to communicate with the PCI card.
Galil SmartTERM SmartTERM is Galil’s basic communications utility that allows the user to perform basic tasks such as sending commands directly to the controller, editing, downloading, and executing DMC programs, uploading and downloading arrays, and updating controller firmware. The latest version of SmartTERM can be downloaded from the Galil website at http://www.galilmc.com/support/download.html Figure 4.2 - Galil SmartTERM layout...
Page 49
that is in the controller's RAM. This command uses the UL command to upload the file. Send File... Launches a file-open dialog box that selects a file (usually a DMC file) to be sent to the controller. Each line of the file is sent to the controller as a command and is executed immediately.
Page 50
Select Controller... Opens the "Select Controller" dialog box that displays the currently registered Galil Motion Controllers. Selecting a controller from the list and clicking on the OK button or double- clicking a controller will cause the application to close any current connections to a controller and open a new connection to the selected controller.
Page 51
Update Firmware... The "Update Firmware" command allows new firmware to be downloaded to the currently connected controller. Selecting this command will cause a file-open dialog box to open, allowing the user to specify a *.HEX file to be specified for download. The latest firmware files can be downloaded from Galil's website.
Figure 4.3 - Data Record Display for a DMC-1842 The Data Record display is user customizable so that all, or just parts, of the record can be displayed. To modify the display, right click on an object to access the options. For detailed information about the features of the Galil DMC SmartTERM including the Data Record, please consult Help Topics under the Help menu.
Page 53
The Galil SmartTERM application installation (as well as WSDK, ActiveX, and DMCWIN32 installations) includes the necessary drivers and .DLL files required to communicate with the Galil controller. The drivers are automatically installed and default communications settings are applied to the device by the driver when a card is installed as per the installation procedure outlined in Ch.2. However, some advanced settings are available to modify the communications methods and data record access.
Page 54
time-out occurred while waiting for a response from the Galil controller). The default setting for the timeout is 5000ms, which should be sufficient for most cases. Figure 4.5 - General Communications Parameters Dialog Advanced communications settings are available under the Communication Method tab to allow different methods of communications to be utilized (shown in Fig 4.6).
Figure 4.6 - Controller Communications Method Dialog Box Interrupt Communications Method The interrupt method overall is the most efficient of the three methods. The software communications method uses a hardware interrupt to notify the application that a response or unsolicited data is available.
Figure 4.7- WSDK Main Screen Creating Custom Software Interfaces Galil provides programming tools so that users can develop their own custom software interfaces to a Galil controller. These tools include the ActiveX Toolkit and DMCWin. ActiveX Toolkit Galil's ActiveX Toolkit is useful for the programmer who wants to easily create a custom operator interface to a Galil controller.
Page 57
quick parameter setup, selection of color, size, location and text. The toolkit controls are easy to use and provide context sensitive help, making it ideal for even the novice programmer. ActiveX Toolkit Includes: • a terminal control for sending commands and editing programs •...
DMCOpen() function is successful, the variable will contain the handle to the Galil controller, which is required for all subsequent function calls. The following simple example program written as a Visual C console application tells the controller to move the X axis 1000 encoder counts. Remember to add DMC32.LIB to your project prior to compiling.
Dim m_nResponseLength As Long Dim m_sResponse As String * 256 Private Sub Command1_Click() m_nRetCode = DMCCommand(m_hDmc, "TPX", m_sResponse, m_nResponseLength) Text1.Text = Val(m_sResponse) End Sub Private Sub Form_Load() m_nResponseLength = 256 m_nController = 1 m_nRetCode = DMCOpen(m_nController, 0, m_hDmc) End Sub Private Sub Form_Unload(Cancel As Integer) m_nRetCode = DMCClose(m_hDmc) End Sub...
Linux Galil has developed code examples for the Linux operating system. The installation includes sample drivers to establish communication with Galil PCI and ISA controllers. The current version of the software has been tested under Redhat 6.X O.S. All source codes for the drivers and other utilities developed for Linux are available to customers upon request.
Page 61
Binary Command Format All binary commands have a 4 byte header followed by data fields. The 4 bytes are specified in hexadecimal format. Binary Header Format: Byte 1 specifies the hexadecimal command number between 80 to FF. Byte 2 specifies the # of bytes in each field as 0, 1, 2, 4 or 6 as follows: No datafields (i.e.
05 specifies bit 0 is active for A axis and bit 2 is active for C axis (2 03 E8 represents 1000 FE OC represents -500 Example The command “STABC” to stop motion on just axis A, B, and C would be: A1 00 00 07 where A1 is the command number for ST...
Page 63
Bit Number Condition X motion complete Y motion complete Z motion complete W motion complete E motion complete F motion complete G motion complete H motion complete All axes motion complete Excess position error* Limit switch Watchdog timer Reserved Application program stopped Command done †...
Servicing Interrupts Once an interrupt occurs, the host computer sends an associated Status Byte along with the interrupt vector. The Status Byte returned denotes what condition has occurred, as described in the table below. Status Byte (hex) Condition No interrupt Watchdog timer activated Command done Application program done...
Communications with the DMC-18x2 For main bi-directional communication, the DMC-18x2 features a 512 character write FIFO buffer, and a 512 character read buffer. This permits sending commands at high speeds ahead of their actual processing by the DMC-18x2. Note: This chapter provides an in-depth look at how the controller communicates over the PCI bus at the register interface level.
for every character read and should be read until it signifies empty. Reading data from the READ register when the register is empty will result in reading an FF hex. Write Procedure To send data to the DMC-18x2, read the control register at address N+1 and check bit 6. If bit 6 is zero, the DMC-18x2 FIFO buffer is not almost full and up to 16 characters may be written to the WRITE register at address N.
Page 67
byte of header Header byte of header Header byte of header Header sample number I block general input 0 I block general input 1 I block general input 2 I block general input 3 I block general input 4 I block general input 5 I block general input 6...
Page 68
y,b axis motor position B block y,b axis position error B block y,b axis auxiliary position B block y,b axis velocity B block y,b axis torque B block z,c axis status C block z,c axis switches C block z,c axis stopcode C block z,c axis reference position C block...
g axis motor position G block g axis position error G block g axis auxiliary position G block g axis velocity G block g axis torque G block h axis status H block h axis switches H block h axis stopcode H block h axis reference position H block...
Page 70
Coordinated Motion Status Information for S or T Plane (2 Byte) BIT 15 BIT 14 BIT 13 BIT 12 BIT 11 BIT 10 BIT 9 BIT 8 Move in Progress BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0...
Page 71
THIS PAGE LEFT BLANK INTENTIONALLY 60 ● Chapter 4 - Software Tools and Communications DMC-18x2 Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com...
Chapter 5 Command Basics Introduction The DMC-18x2 provides over 100 commands for specifying motion and machine parameters. Commands are included to initiate action, interrogate status and configure the digital filter. These commands can be sent in ASCII or binary. In ASCII, the DMC-18x2 instruction set is BASIC-like and easy to use. Instructions consist of two uppercase letters that correspond phonetically with the appropriate function.
To view the current values for each command, type the command followed by a ? for each axis requested. This is interrogation. Not all commands can be interrogated. Refer to the Command Reference to determine whether or not a command can be interrogated. PR 1000 Specify X only as 1000 PR ,2000...
Command Syntax - Binary Some commands have an equivalent binary value. Binary communication mode can be executed much faster than ASCII commands. Binary format can only be used when commands are sent from the PC and cannot be embedded in an application program. Binary Command Format All binary commands have a 4 byte header and are followed by data fields.
02 specifies 2 bytes for each data field 00 S is not active for PR 05 specifies bit 0 is active for A axis and bit 2 is active for C axis (2 03 E8 represents 1000 FE OC represents -500 Example The command ST XYZS would be A1 00 01 07...
reserved reserved reserved reserved reserved reserved reserved reserved reserved reserved reserved reserved reserved reserved reserved reserved reserved Controller Response to DATA The DMC-18x2 returns a : for valid commands. The DMC-18x2 returns a ? for invalid commands. For example, if the command BG is sent in lower case, the DMC-18x2 will return a ?. :bg <enter>...
Report Latch ∧ ∧ Firmware Revision Information Stop Code Tell Status Tell Error Code Tell Dual Encoder Tell Error Tell Input Tell Position Trace Tell Switches Tell Torque Tell Velocity For example, the following example illustrates how to display the current position of the X axis: TP X <enter>...
Chapter 6 Programming Motion Overview The DMC-18x2 provides several modes of motion, including independent positioning and jogging, coordinated motion, electronic cam motion, and electronic gearing. Each one of these modes is discussed in the following sections. The DMC-1812 is a single axis controller and uses X-axis motion only. Likewise, the DMC-1822 uses X and Y, the DMC-1832 uses X,Y,and Z, and the DMC-1842 uses X,Y,Z,and W.
Electronic gearing where slave axes are scaled to Electronic Gearing master axis which can move in both directions. GM (if gantry) Master/slave where slave axes must follow a Electronic Gearing master such as conveyer speed. Moving along arbitrary profiles or mathematically Contour Mode prescribed profiles such as sine or cosine trajectories.
Stop command (ST) can be issued at any time to decelerate the motor to a stop before it reaches its final position. An incremental position movement (IP) may be specified during motion as long as the additional move is in the same direction. Here, the user specifies the desired position increment, n. The new target is equal to the old target plus the increment, n.
Page 81
Example - Absolute Position Movement PA 10000,20000 Specify absolute X,Y position AC 1000000,1000000 Acceleration for X,Y DC 1000000,1000000 Deceleration for X,Y SP 50000,30000 Speeds for X,Y BG XY Begin motion Example - Multiple Move Sequence Required Motion Profiles: X-Axis 2000 counts Position 15000 count/sec Speed...
VELOCITY (COUNTS/SEC) X axis velocity profile 20000 Y axis velocity profile 15000 Z axis velocity profile 10000 5000 TIME (ms) Figure 6.1 - Velocity Profiles of XYZ Notes on fig 6.1: The X and Y axis have a ‘trapezoidal’ velocity profile, while the Z axis has a ‘triangular’...
JG +/-x,y,z,w Specifies jog speed and direction ST XYZW Stops motion Parameters can be set with individual axis specifiers such as JGY=2000 (set jog speed for Y axis to 2000) or ACYH=400000 (set acceleration for Y and H axes to 400000). Operand Summary - Independent Axis OPERAND DESCRIPTION...
Page 84
The clear sequence (CS) command can be used to remove LI segments stored in the buffer prior to the start of the motion. To stop the motion, use the instructions STS, STT, or AB. The command, ST, causes a decelerated stop. The command, AB, causes an instantaneous stop and aborts the program, and the command AB1 aborts the motion only.
Specifying Vector Speed for Each Segment The instruction VS has an immediate effect and, therefore, must be given at the required time. In some applications, such as CNC, it is necessary to attach various speeds to different motion segments. This can be done with two functions: <...
Returns the length of the vector (resets after 2147483647) AMS or AMT Trippoint for After Sequence complete (on S or T coordinate system) AV n Trippoint for After Relative Vector distance, n Motion smoothing constant for vector moves Operand Summary - Linear Interpolation OPERAND DESCRIPTION Return distance traveled...
Page 87
30000 27000 POSITION W 3000 4000 36000 40000 POSITION Z FEEDRATE TIME (sec) VELOCITY Z-AXIS TIME (sec) VELOCITY W-AXIS TIME (sec) Figure 6.2 - Linear Interpolation 76 ● Chapter 6 Programming Motion DMC-18x2 Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com...
Example - Multiple Moves This example makes a coordinated linear move in the XY plane. The Arrays VX and VY are used to store 750 incremental distances which are filled by the program #LOAD. #LOAD Load Program DM VX [750],VY [750] Define Array COUNT=0 Initialize Counter...
ended with the command VE. This defines a sequence of commands for coordinated motion. Immediately prior to the execution of the first coordinated movement, the controller defines the current position to be zero for all movements in a sequence. Note: This ‘local’ definition of zero does not affect the absolute coordinate system or subsequent coordinated motion sequences.
Page 90
Changing Feedrate: The command VR n allows the feedrate, VS, to be scaled from 0 and 10 times with a resolution of .0001. This command takes effect immediately and causes VS scaled. VR also applies when the vector speed is specified with the ‘<’ operator. This is a useful feature for feedrate override. VR does not ratio the accelerations.
AM XYZ When the move is complete Engage knife WT50 Wait 50 msec for the knife to engage Do the circular cut After the coordinated move is complete Disengage knife MG "ALL DONE" End program Command Summary - Coordinated Motion Sequence COMMAND DESCRIPTION.
Page 92
The operands _VPX and _VPY can be used to return the coordinates of the last point specified along the path. Example: Traverse the path shown in Fig. 6.3. Feedrate is 20000 counts/sec. Plane of motion is XY VM XY Specify motion plane VS 20000 Specify vector speed VA 1000000...
Electronic Gearing This mode allows multiple axes to be electronically geared to some master axes. The masters may rotate in both directions and the geared axes will follow at the specified gear ratio. The gear ratio may be different for each axis and changed during motion. The command GA specifies the master axes.
Page 94
Example - Electronic Gearing Objective: Run two geared motors at speeds of 1.132 and -0.045 times the speed of an external master. The master is driven at speeds between 0 and 1800 RPM (2000 counts/rev encoder). Solution: Use a DMC-1832 controller, where the Z-axis is the master and X and Y are the geared axes.
Electronic Cam The electronic cam is a motion control mode which enables the periodic synchronization of several axes of motion. Up to 3 axes can be slaved to one master axis. The electronic cam is a more general type of electronic gearing which allows a table-based relationship between the axes.
Page 96
where m is the interval width in counts, and n is the starting point. For the given example, we can specify the table by specifying the position at the master points of 0, 2000, 4000 and 6000. We can specify that by EP 2000,0 Step 4.
Page 97
If the value of any parameter is outside the range of one cycle, the cam engages immediately. When the cam is engaged, the slave position is redefined, modulo one cycle. Step 7. Disengage the slave motion To disengage the cam, use the command EQ x,y,z,w where x,y,z,w are the master positions at which the corresponding slave axes are disengaged.
Page 98
Suppose we want to define a table with 100 segments. This implies increments of 20 counts each. If the master points are to start at zero, the required instruction is EP 20,0. The following routine computes the table points. As the phase equals 0.18X and X varies in increments of 20, the phase varies by increments of 3.6°.
Command Summary – Electronic CAM COMMAND DESCRIPTION EA p Specifies master axes for electronic cam where: P = X,Y,Z or W or A,B,C,D,E,F,G,H for main encoder as master EB n Enables the ECAM EC n ECAM counter – sets the index into the ECAM table EG x,y,z,w Engages ECAM EM x,y,z,w...
The above example shows how the ECAM program is structured and how the commands can be given to the controller. The next page provides the results captured by the WSDK program. This shows how the motion will be seen during the ECAM cycles. The first graph is for the X axis, the second graph shows the cycle on the Y axis and the third graph shows the cycle of the Z axis.
Page 101
Point 1 X=0 at T=0ms Point 2 X=48 at T=4ms Point 3 X=288 at T=12ms Point 4 X=336 at T=28ms The same trajectory may be represented by the increments Increment 1 DX=48 Time Increment =4 DT=2 Increment 2 DX=240 Time Increment =8 DT=3 Increment 3 DX=48...
Additional Commands The command, WC, is used as a trippoint "When Complete" or “Wait for Contour Data”. This allows the DMC-18x2 to use the next increment only when it is finished with the previous one. Zero parameters for DT followed by zero parameters for CD exit the contour mode. If no new data record is found and the controller is still in the contour mode, the controller waits for new data.
Page 103
ACCELERATION VELOCITY POSITION Figure 6.6 - Velocity Profile with Sinusoidal Acceleration The DMC-18x2 can compute trigonometric functions. However, the argument must be expressed in degrees. Using our example, the equation for X is written as: X = 50T - 955 sin 3T A complete program to generate the contour movement in this example is given below.
Page 104
Program to find position differences D=C+1 DIF[C]=POS[D]-POS[C] Compute the difference and store C=C+1 JP #C,C<15 End first program #RUN Program to run motor Contour Mode 4 millisecond intervals CD DIF[C] Contour Distance is in DIF Wait for completion C=C+1 JP #E,C<15 Stop Contour End the program Teach (Record and Play-Back)
Initialize counter Label D=C+1 DELTA=XPOS[D]-XPOS[C] Compute the difference DX[C]=DELTA Store difference in array C=C+1 Increment index JP #L,C<500 Repeat until done #PLAYBCK Begin Playback Specify contour mode Specify time increment Initialize array counter Loop counter CD XPOS[I];WC Specify contour data I=I+1 Increment array counter JP#B, I <...
The general motion smoothing command, IT, can also be used. The purpose of the command, IT, is to smooth out the motion profile and decrease 'jerk' due to acceleration. Monitoring Generated Pulses vs Commanded Pulses For proper controller operation, it is necessary to make sure that the controller has completed generating all step pulses before making additional moves.
Command Summary - Stepper Motor Operation COMMAND DESCRIPTION Define Encoder Position (When using an encoder) Define Reference Position and Step Count Register Motion Profile Smoothing - Independent Time Constant Stepper Motor Smoothing Motor Type (2,-2,2.5 or -2.5 for stepper motors) Report Commanded Position Report number of step pulses generated by controller Tell Position of Encoder...
Profiler Off-On Error Step Drive Resolution (pulses / full motor step) Step Motor Resolution (full motor steps / revolution) Encoder Resolution (counts / revolution) Error Correction (pulses) Stepper Position Maintenance enable, status A pulse is defined by the resolution of the step drive being used. Therefore, one pulse could be a full step, a half step or a microstep.
Page 109
Example: SPM Mode Setup The following code demonstrates what is necessary to set up SPM mode for a full step drive, a half step drive, and a 1/64th microstepping drive for an axis with a 1.8o step motor and 4000 count/rev encoder.
Page 110
YC4000; 'ENCODER RESOLUTION (COUNTS PER REVOLUTION) SHX; 'ENABLE AXIS WT50; 'ALLOW SLIGHT SETTLE TIME YS1; 'ENABLE SPM MODE Example: Error Correction The following code demonstrates what is necessary to set up SPM mode for the X axis, detect error, stop the motor, correct the error, and return to the main code. The drive is a full step drive, with a 1.8 step motor and 4000 count/rev encoder.
Page 111
MCX; 'WAIT FOR MOTION TO COMPLETE MG"CORRECTED, ERROR NOW= ",_QSX WT100; 'WAIT HELPS USER SEE THE CORRECTION #RETURN SPX=spsave; 'RETURN THE SPEED TO PREVIOUS SETTING RE0; 'RETURN FROM #POSERR Example: Friction Correction The following example illustrates how the SPM mode can be useful in correcting for X axis friction after each move when conducting a reciprocating motion.
spx=_SPX #LOOP; 'SAVE SPEED VALUE SP2048; 'SET A NEW SLOW CORRECTION SPEED WT100; 'STABILIZE JP#END,@ABS[_QSX]<10;'END CORRECTION IF ERROR IS WITHIN DEFINED 'TOLERANCE YRX=_QSX; 'CORRECTION MOVE WT100; 'STABILIZE JP#LOOP; 'KEEP CORRECTING UNTIL ERROR IS WITHIN 'TOLERANCE #END; 'END #CORRECT SUBROUTINE, RETURNING TO CODE SPX=spx Motion Smoothing The DMC-18x2 controller allows the smoothing of the velocity profile to reduce mechanical vibrations...
PR 20000 Position AC 100000 Acceleration DC 100000 Deceleration SP 5000 Speed IT .5 Filter for S-curve BG X Begin ACCELERATION VELOCITY VELOCITY ACCELERATION VELOCITY Figure 6.7 - Trapezoidal velocity and smooth velocity profiles Using the KS Command (Step Motor Smoothing): When operating with step motors, motion smoothing can be accomplished with the command, KS.
The command, IT, is used for smoothing independent moves of the type JG, PR, PA and the command, VT, is used to smooth vector moves of the type VM and LM. The smoothing parameters, x,y,z,w and n are numbers between 0.5 and 16 and determine the degree of filtering.
Page 115
SP 8000 Speed FE Y Find edge command BG Y Begin motion AM Y After complete MG "FOUND HOME" Send message DP,0 Define position as 0 104 ● Chapter 6 Programming Motion DMC-18x2 Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com...
Page 116
MOTION BEGINS TOWARD HOME DIRECTION POSITION MOTION REVERSE TOWARD HOME DIRECTION POSITION MOTION TOWARD INDEX DIRECTION POSITION INDEX PULSES POSITION HOME SWITCH POSITION Figure 6.8 - Motion intervals in the Home sequence DMC-18x2 Chapter 6 Programming Motion • 105 Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com...
High Speed Position Capture (The Latch Function) Often it is desirable to capture the position precisely for registration applications. The DMC-18x2 provides a position latch feature. This feature allows the position of the encoder of X,Y,Z, or W to be captured upon the state change of an external input signal.
Page 118
In order to run the DMC-18x2 motion controller in fast mode, fast firmware must be uploaded. This can be done through the Galil terminal software such as DMCTERM and WSDK. The fast firmware is included with the original DMC-18x2 utilities or can be found on our website. In order to set the desired update rate, use the command TM.
Page 119
THIS PAGE LEFT BLANK INTENTIONALLY 108 ● Chapter 6 Programming Motion DMC-18x2 Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com...
Chapter 7 Application Programming Overview The DMC-18x2 provides a powerful programming language that allows users to customize the controller for their particular application. Programs can be downloaded into the DMC-18x2 memory freeing the host computer for other tasks. However, the host computer can send commands to the controller at any time, even while a program is being executed.
NOTE: The ED command only accepts a parameter (e.g., #BEGIN) in a DOS Window. For general purposes, the editing features described in this section are not applicable when not in DOS mode. Line numbers appear as 000,001,002, and so on. Program commands are entered following the line numbers.
program line where the maximum number of characters on a line is 80 (including semicolons). A carriage return enters the final command on a program line. Using Labels in Programs All DMC-18x2 programs must begin with a label and end with an End (EN) statement. Labels start with the pound (#) sign followed by a maximum of seven characters.
Commenting Programs Using the command, NO The DMC-18x2 provides a command, NO, for commenting programs. This command allows the user to include up to 78 characters on a single line after the NO command and can be used to include comments from the programmer as in the following example: #PATH NO 2-D CIRCULAR PATH...
CR 1500,90,-180 REM HALF CIRCLE MOTION REM END VECTOR SEQUENCE REM BEGIN SEQUENCE MOTION REM END OF PROGRAM The REM statements will be removed when the program is downloaded to the controller. Executing Programs - Multitasking The DMC-18x2 can run up to 8 independent programs simultaneously. These programs are called threads and are numbered 0 through 7, where 0 is the main thread.
JP #LOOP2,@IN[2]=1 Repeat motion unless Input 2 is low Halt all tasks The program above is executed with the instruction XQ #TASK2,0 which designates TASK2 as the main thread (i.e. Thread 0). #TASK1 is executed within TASK2. Debugging Programs The DMC-18x2 provides commands and operands which are useful in debugging application programs.
Page 126
To list the contents of the variable space, use the interrogation command LV (List Variables). To list the contents of array space, use the interrogation command LA (List Arrays). To list the contents of the Program space, use the interrogation command LS (List). To list the application program labels only, use the interrogation command LL (List Labels).
Program Flow Commands The DMC-18x2 provides instructions to control program flow. The DMC-18x2 program sequencer normally executes program instructions sequentially. The program flow can be altered with the use of event triggers, trippoints, and conditional jump statements. Event Triggers & Trippoints To function independently from the host computer, the DMC-18x2 can be programmed to make decisions based on the occurrence of an event.
Page 128
DMC-18x2 Event Triggers Command Function M X Y Z W S or T Halts program execution until motion is complete on the specified axes or motion sequence(s). AM with no parameter tests for motion complete on all axes. This command is useful for separating motion sequences in a program.
Event Trigger Examples: Event Trigger - Multiple Move Sequence The AM trippoint is used to separate the two PR moves. If AM is not used, the controller returns a ? for the second PR command because a new PR cannot be given until motion is complete. #TWOMOVE Label PR 2000...
Page 130
#INPUT Program Label AI-1 Wait for input 1 low PR 10000 Position command Begin motion End program Event Trigger - Set output when At speed #ATSPEED Program Label JG 50000 Specify jog speed AC 10000 Acceleration rate Begin motion Wait for at slew speed 50000 Set output 1 End program Event Trigger - Change Speed along Vector Path...
Define Output Waveform Using AT The following program causes Output 1 to be high for 10 msec and low for 40 msec. The cycle repeats every 40 msec. #OUTPUT Program label Initialize time reference Set Output 1 #LOOP Loop AT 10 After 10 msec from reference, Clear Output 1 AT –40...
Page 132
values, functions, keywords, and arithmetic expressions. If no conditional statement is given, the jump will always occur. Examples: Number V1=6 Numeric Expression V1=V7*6 @ABS[V1]>10 Array Element V1<Count[2] Variable V1<V2 Internal Variable _TPX=0 _TVX>500 V1>@AN[2] @IN[1]=0 Multiple Conditional Statements The DMC-18x2 will accept multiple conditions in a single jump statement. The conditional statements are combined in pairs using the operands “&”...
Example Using JP command: Move the X motor to absolute position 1000 counts and back to zero ten times. Wait 100 msec between moves. #BEGIN Begin Program COUNT=10 Initialize loop counter #LOOP Begin loop PA 1000 Position absolute 1000 Begin move Wait for motion complete WT 100 Wait 100 msec...
Command Format - IF, ELSE and ENDIF FORMAT: DESCRIPTION Execute commands proceeding IF command (up to ELSE command) if IF conditional statement(s) conditional statement(s) is true, otherwise continue executing at ENDIF command or optional ELSE command. ELSE Optional command. Allows for commands to be executed when argument of IF command evaluates not true.
Example: An example of a subroutine to draw a square 500 counts per side is given below. The square is drawn at vector position 1000,1000. Begin Main Program Clear Output Bit 1 (pick up pen) VP 1000,1000;VE;BGS Define vector position; move pen Wait for after motion trippoint Set Output Bit 1 (put down pen) JS #Square;CB1...
Page 136
#POSERR Position error exceeds limit specified by ER #MCTIME Motion Complete timeout occurred. Timeout period set by TW command #CMDERR Bad command given For example, the #POSERR subroutine will automatically be executed when any axis exceeds its position error limit. The commands in the #POSERR subroutine could decode which axis is in error and take the appropriate action.
Page 137
Now, when excess position error occurs on the X axis, the #POSERR subroutine will be executed. Example - Input Interrupt Label Input Interrupt on 1 JG 30000,,,60000 BGXW Begin Motion #LOOP;JP#LOOP;EN Loop #ININT Input Interrupt STXW;AM Stop Motion #TEST;JP #TEST, @IN[1]=0 Test for Input 1 still low JG 30000,,,6000 Restore Velocities...
The above program prompts the operator to enter a jog speed. If the operator enters a number out of range (greater than 8 million), the #CMDERR routine will be executed prompting the operator to enter a new number. In multitasking applications, there is an alternate method for handling command errors from different threads.
OPERATOR FUNCTION Addition Subtraction Multiplication Division & Logical And (Bit-wise) Logical Or (On some computers, a solid vertical line appears as a broken line) Parenthesis The numeric range for addition, subtraction and multiplication operations is +/-2,147,483,647.9999. The precision for division is 1/65,000. Mathematical operations are executed from left to right.
MG LEN3 {S4} Display ‘LEN3’ as string message of up to 4 chars MG LEN2 {S4} Display ‘LEN2’ as string message of up to 4 chars MG LEN1 {S4} Display ‘LEN1’ as string message of up to 4 chars This program will accept a string input of up to 6 characters, parse each character, and then display each character.
Variables For applications that require a parameter that is variable, the DMC-18x2 provides 254 variables. These variables can be numbers or strings. A program can be written in which certain parameters, such as position or speed, are defined as variables. The variables can later be assigned by the operator or determined by program calculations.
Assigning Variable Values to Controller Parameters Variable values may be assigned to controller parameters such as GN or PR. PR V1 Assign V1 to PR command SP P3*2000 Assign P3*2000 to SP command Displaying the value of variables at the terminal Variables may be sent to the screen using the format, variable=.
Examples of Keywords: V1=_LFX Assign V1 the logical state of the Forward Limit Switch on the X-axis V3=TIME Assign V3 the current value of the time clock V4=_HMW Assign V4 the logical state of the Home input on the W-axis Arrays For storing and collecting numerical data, the DMC-18x2 provides array space for 8000 elements.
For example: Begin Program COUNT=0;DM POS[10] Initialize counter and define array #LOOP Begin loop WT 10 Wait 10 msec POS[COUNT]=_TPX Record position into array element POS[COUNT]= Report position COUNT=COUNT+1 Increment counter JP #LOOP,COUNT<10 Loop until 10 elements have been stored End Program The above example records 10 position values at a rate of one value per 10 msec.
Page 145
Data Types for Recording: DATA TYPE DESCRIPTION _DEX 2nd encoder position (dual encoder) _TPX Encoder position _TEX Position error _RPX Commanded position _RLX Latched position Inputs Output _TSX Switches (only bit 0-4 valid) _SCX Stop code _NOX Status bits _TTX Torque (reports digital value +/-8097) Note: X may be replaced by Y,Z or W for capturing data on other axes.
Deallocating Array Space Array space may be deallocated using the DA command followed by the array name. DA*[0] deallocates all the arrays. Input of Data (Numeric and String) Input of Data The command, IN, is used to prompt the user to input numeric or string data. Using the IN command, the user may specify a message prompt by placing a message in quotations.
Inputting String Variables String variables with up to six characters may input using the specifier, {Sn} where n represents the number of string characters to be input. If n is not specified, six characters will be accepted. For example, IN "Enter X,Y or Z",V{S} specifies a string variable to be input. Output of Data (Numeric and String) Numerical and string data can be output from the controller using several methods.
JG 50000;BGX;ASX MG "The Speed is", _TVX {F5.1} {N} MG "counts/sec" When #A is executed, the above example will appear on the screen as: The speed is 50000 counts/sec Using the MG Command to Configure Terminals The MG command can be used to configure a terminal. Any ASCII character can be sent by using the format {^n} where n is any integer between 1 and 255.
Page 149
Using the PF Command to Format Response from Interrogation Commands The command, PF, can change format of the values returned by theses interrogation commands: BL ? LE ? DE ? PA ? DP ? PR ? EM ? TN ? FL ? VE ? IP ?
Example - Using the LZ command Disables the LZ function Tell Position Interrogation Command Response from Interrogation Command -0000000009, 0000000005, 0000000000, 0000000007 (With Leading Zeros) Enables the LZ function Tell Position Interrogation Command -9, 5, 0, 7 Response from Interrogation Command (Without Leading Zeros) Local Formatting of Response of Interrogation Commands The response of interrogation commands may be formatted locally.
Local Formatting of Variables PF and VF commands are global format commands that effect the format of all relevant returned values and variables. Variables may also be formatted locally. To format locally, use the command, {Fn.m} or {$n.m} following the variable name and the ‘=’ symbol. F specifies decimal and $ specifies hexadecimal.
The DMC-18x2 position parameters such as PR, PA and VP have units of quadrature counts. Speed parameters such as SP, JG and VS have units of counts/sec. Acceleration parameters such as AC, DC, VA and VD have units of counts/sec 2 . The controller interprets time in milliseconds. All input parameters must be converted into these units.
For example: Instruction Function Sets outputs 2 and 3 of output port to high. All other bits are 0. (2 1 + 2 2 = 6) Clears all bits of output port to zero OP 255 Sets all bits of output port to one. (2 0 + 2 1 + 2 2 + 2 3 + 2 4 + 2 5 + 2 6 + 2 7 ) The output port is useful for setting relays or controlling external switches and events during a motion sequence.
Input Interrupt Function The DMC-18x2 provides an input interrupt function which causes the program to automatically execute the instructions following the #ININT label. This function is enabled using the II m,n,o command. The m specifies the beginning input and n specifies the final input in the range. The parameter o is an interrupt mask.
This implies that a distance of 10 inches equals 6370 counts, and a slew speed of 5 inches per second, for example, equals 3185 count/sec. The input signal may be applied to input 1, for example, and the output signal is chosen as output 1. The motor velocity profile and the related input and output signals are shown in Fig.
Page 156
The heavy solid curves in Fig. 7.2 indicate sections where cutting takes place. Those must be performed at a feedrate of 1 inch per second. The light lines correspond to non-cutting moves and should be performed at 5 inch per second. The acceleration rate is 0.1 g. The motion starts at point A, with the Z-axis raised.
Page 157
SP 20000 Speed X Start X Wait for X completion PR,,-80000 Lower Z CR 80000,270,-360 Z second circle move VS 40000 PR,,80000 Raise Z VP -37600,-16000 Return XY to start VS 200000 146 ● Chapter 7 Application Programming DMC-18x2 Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com...
Page 158
Figure 7.2 - Motor Velocity and the Associated Input/Output signals DMC-18x2 Chapter 7 Application Programming • 147 Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com...
Page 159
THIS PAGE LEFT BLANK INTENTIONALLY 148 ● Chapter 7 Application Programming DMC-18x2 Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com...
Chapter 8 Hardware & Software Protection Introduction The DMC-18x2 provides several hardware and software features to check for error conditions and to inhibit the motor on error. These features help protect the system components from damage. WARNING: Machinery in motion can be dangerous! It is the responsibility of the user to design effective error handling and safety protection as part of the machine.
Input Protection Lines Abort - A low input stops commanded motion instantly without a controlled deceleration. For any axis in which the Off-On-Error function is enabled, the amplifiers will be disabled. This could cause the motor to ‘coast’ to a stop. If the Off-On-Error function is not enabled, the motor will instantaneously stop and servo at the current position.
Example: DP0,0,0 Define Position BL -2000,-4000,-8000 Set Reverse position limit FL 2000,4000,8000 Set Forward position limit JG 2000,2000,2000 BG XYZ Begin Execution of the above example will cause the motor to slew at the given jog speed until the forward position limit is reached.
Limit Switch Routine The DMC-18x2 provides forward and reverse limit switches which inhibit motion in the respective direction. There is also a special label for automatic execution of a limit switch subroutine. The #LIMSWI label specifies the start of the limit switch subroutine. This label causes the statements following to be automatically executed if any limit switch is activated.
Chapter 9 Troubleshooting Overview The following discussion may help you get your system running if a problem is encountered. Potential problems have been divided into groups as follows: 1. Installation 2. Communication 3. Stability and Compensation 4. Operation The various symptoms along with the cause and the remedy are described in the following tables. Installation SYMPTOM CAUSE...
Using DMC Smart Terminal, Plug and Play installation did not Check first that Dmc1802.INF was DMCDOS, or WSDK cannot proceed properly used to install the controller. Next communicate with the controller. check the controller registry to see if the controller was automatically added and an address selected.
Chapter 10 Theory of Operation Overview The following discussion covers the operation of motion control systems. A typical motion control system consists of the elements shown in Fig 10.1. COMPUTER CONTROLLER DRIVER ENCODER MOTOR Figure 10.1 - Elements of Servo Systems The operation of such a system can be divided into three levels, as illustrated in Fig.
Page 167
The highest level of control is the motion program. This can be stored in the host computer or in the controller. This program describes the tasks in terms of the motors that need to be controlled, the distances and the speed. LEVEL MOTION PROGRAMMING...
X VELOCITY Y VELOCITY X POSITION Y POSITION TIME Figure 10.3 - Velocity and Position Profiles Operation of Closed-Loop Systems To understand the operation of a servo system, we may compare it to a familiar closed-loop operation, adjusting the water temperature in the shower. One control objective is to keep the temperature at a comfortable level, say 90 degrees F.
The results may be worse if we turn the faucet too fast. The overreaction results in temperature oscillations. When the response of the system oscillates, we say that the system is unstable. Clearly, unstable responses are bad when we want a constant level. What causes the oscillations? The basic cause for the instability is a combination of delayed reaction and high gain.
Motor-Amplifier The motor amplifier may be configured in three modes: 1. Voltage Drive 2. Current Drive 3. Velocity Loop The operation and modeling in the three modes is as follows: Voltage Drive The amplifier is a voltage source with a gain of Kv [V/V]. The transfer function relating the input voltage, V, to the motor position, P, is K S ST where...
Page 171
P/V = K a K t / Js 2 where Kt and J are as defined previously. For example, a current amplifier with K a = 2 A/V with the motor described by the previous example will have the transfer function: P/V = 1000/s 2 [rad/V] If the motor is a DC brushless motor, it is driven by an amplifier that performs the commutation.
Page 172
VOLTAGE SOURCE +1)(ST CURRENT SOURCE VELOCITY LOOP Figure 10.6 - Mathematical model of the motor and amplifier in three operational modes Encoder The encoder generates N pulses per revolution. It outputs two signals, Channel A and B, which are in quadrature.
Page 173
The DAC or D-to-A converter converts a 16-bit number to an analog voltage. The input range of the numbers is 65536 and the output voltage range is +/-10V or 20V. Therefore, the effective gain of the DAC is K= 20/65536 = 0.0003 [V/count] Digital Filter The digital filter has a transfer function of D(z) = [K(z-A)/z + Cz/z-1] ∗...
The ZOH, or zero-order-hold, represents the effect of the sampling process, where the motor command is updated once per sampling period. The effect of the ZOH can be modeled by the transfer function H(s) = 1/(1+sT/2) If the sampling period is T = 0.001, for example, H(s) becomes: H(s) = 2000/(s+2000) However, in most applications, H(s) may be approximated as one.
Page 175
Accordingly, the coefficients of the continuous filter are: P = 50 D = 0.98 The filter equation may be written in the continuous equivalent form: G(s) = 50 + 0.98s = .098 (s+51) The system elements are shown in Fig. 10.7. FILTER MOTOR 2000...
Next, we determine the phase of A(s) at the crossover frequency. A(j200) = 390,000 (j200+51)/[(j200) 2 . (j200 + 2000)] α = Arg[A(j200)] = tan -1 (200/51)-180° -tan -1 (200/2000) α = 76° - 180° - 6° = -110° Finally, the phase margin, PM, equals PM = 180°...
Page 177
K f = 4N/2π = 636 H(s) = 2000/(s+2000) Compensation Filter G(s) = P + sD The next step is to combine all the system elements, with the exception of G(s), into one function, L(s). L(s) = M(s) K a K d K f H(s) =3.17∗10 6 /[s 2 (s+2000)] Then the open loop transfer function, A(s), is A(s) = L(s) G(s) Now, determine the magnitude and phase of L(s) at the frequency ω...
Page 178
Therefore, D = 0.274 G = 82.4 + 0.2744s The function G is equivalent to a digital filter of the form: D(z) = 4KP + 4KD(1-z -1 ) where P = 4 ∗ KP D = 4 ∗ KD ∗ T 4 ∗...
Page 179
PAGE LEFT BLANK INTENTIONALLY 168 ● Chapter 10 Theory of Operation DMC-18x2 Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com...
Appendices Electrical Specifications Servo Control ACMD Amplifier Command: +/-10 Volts analog signal. Resolution 16-bit DAC or .0003 Volts. 3 mA maximum A+,A-,B+,B-,IDX+,IDX- Encoder TTL compatible, but can accept up to +/-12 Volts. Quadrature phase on CHA,CHB. Can accept single-ended (A+,B+ only) or differential (A+,A- ,B+,B-).
14 PWM Z / Step Z 64 Home X 15 Motor command Y 65 Reverse limit X 16 Sign Y/ Dir Y 66 Forward Limit X 17 PWM Y/ Step Y 68 +5V 18 Motor command X 69 NC 19 Sign X/ Dir X 70 Latch X 20 PWM X / Step X 71 Latch Y...
Page 183
PWM/STEP OUT PWM/STEP OUT is used for directly driving power bridges for DC servo motors or for driving step motor amplifiers. For servo motors: If you are using a conventional amplifier that accepts a +/-10 Volt analog signal, this pin is not used and should be left open. The switching frequency is 16.7 Khz.
Home Switch Input for Homing (HM) and Find Edge (FE) instructions. Upon BG following HM or FE, the motor accelerates to slew speed. A transition on this input will cause the motor to decelerate to a stop. The polarity of the Home Switch may be set with the CN command. Input 1 - Input 8 Uncommitted inputs.
WSDK-32 Servo Design Kit for Windows NT, or higher ActiveX Tool Kit Visual Basic Tool Kit (includes OCXs) Setup 16 Set-up software for Windows 3.X Setup 32 Set-up software for Windows NT, or higher CAD-to-DMC AutoCAD DXF translator HPGL HPGL translator *The ICM-2900 or AMP-19X0 are the preferred interconnect method for a DMC-18X2.
Page 186
option) ERROR Error signal RESET Reset Circular Compare output MOCMDW W axis motor command to amp input (w / respect to ground) SIGNW W axis sign output for input to stepper motor amp PWMW W axis pulse output for input to stepper motor amp MOCMDZ Z axis motor command to amp input (w / respect to ground) SIGNZ...
Page 187
Input 8 ABORT Abort Input OUT1 Output 1 OUT2 Output 2 OUT3 Output 3 OUT4 Output 4 OUT5 Output 5 OUT6 Output 6 OUT7 Output 7 OUT8 Output 8 Signal Ground Analog Input 1 , No Connection Analog Input 2 , No Connection Analog Input 3 , No Connection Analog Input 4 , No Connection Analog Input 5 , No Connection...
-MBW W Main encoder B- +INW W Main encoder Index + -INW W Main encoder Index - +12V +12 Volts -12V -12 Volts * ISOLATED GND and ANALOG GND connections added to Rev D. No Connection - The DMC-18X2 does not make full use of the functionality of the ICM/AMP- 19X0.
Features • 7 amps continuous, 10 amps peak; 20 to 80V • Available with 1, 2, 3, or 4 amplifiers • Connects directly to DMC-18x2 series controllers • Screw-type terminals for easy connection to motors, encoders, and switches • Steel mounting plate with 1/4” keyholes Specifications Minimum motor inductance: 1 mH PWM frequency: 30 Khz...
Page 190
Signal Ground OUT PWR Isolated Power In for Opto-Isolation Option ERROR Error output Circular Compare Output OUT GND Isolated Ground for Opto-Isolation Option AMPENW W axis amplifier enable AMPENZ Z axis amplifier enable AMPENY Y axis amplifier enable AMPENX X axis amplifier enable OUT5 General Output 5 OUT6...
Page 191
INCOM Input Common For General Use Inputs ABORT Abort Input RESET Reset Input Signal Ground ANALOG5 Analog Input 5 , No Connection ANALOG6 Analog Input 6 , No Connection ANALOG7 Analog Input 7 , No Connection ANALOG8 Analog Input 8 , No Connection ANALOG1 Analog Input 1 , No Connection ANALOG2...
No Connection - The DMC-18X2 does not make full use of the functionality of the ICM-2900. These terminals refer to pins not used by the controller. Opto-Isolated Outputs on ICM-1900/ICM-2900 (-Opto option) The ICM/AMP 1900 and ICM-2900 modules from Galil have an option for opto-isolated outputs. Standard Opto-Isolation and High Current Opto-isolation: The Opto-isolation option on the ICM-1900 has 2 forms: ICM-1900 (standard) and ICM-1900hc (high current).
increments through software. The I/O points are accessed through two 50-pin IDC connectors, each with 32 I/O points. Configuring the I/O of the DMC-18x2 with DB-14064 The 64 extended I/O points of the DMC-18x2 w/DB-14064 series controller can be configured in blocks of 8.
Accessing extended I/O When configured as an output, each I/O point may be defined with the SBn and CBn commands (where n=1 through 8 and 17 through 80). Outputs may also be defined with the conditional command, OBn (where n=1 through 8 and 17 through 80). The command, OP, may also be used to set output bits, specified as blocks of data.
IOM-1964 Opto-Isolation Module for Extended I/O Controllers Description: • Provides 64 optically isolated inputs and outputs, each rated for 2mA at up to 28 VDC • Configurable as inputs or outputs in groups of eight bits • Provides 16 high power outputs capable of up to 500mA each •...
High Current Screw Terminals Buffer chips (16) IOM-1964 REV A GALIL MOTION CONTROL MADE IN USA FOR INPUTS: FOR OUTPUTS: RPX4 RPX2 RPX3 Banks 0 and 1 80 pin high Banks 2-7 are provide high density connector standard banks. power output capability.
Error LED CB-50-80 End bracket DMC-17x8 End bracket 80 pin high density connector used for extended I/O 100 pin high density connector J1 used for motion I/O Configuring Hardware Banks The extended I/O on the DMC-18x2 and DB-14064 is configured using the CO command. The banks of buffers on the IOM-1964 are configured to match by inserting the appropriate IC’s and resistor packs.
Resistor Pack for outputs RP03 OUT Resistor Pack for Input Buffer IC's inputs Resistor Pack for outputs Output Buffer IC's Indicator LED's Resistor Pack for LED's RP01 Bank 0 All of the banks have the same configuration pattern as diagrammed above. For example, all banks have Ux1 and Ux2 output optical isolator IC sockets, labeled in bank 0 as U01 and U02, in bank 1 as U11 and U12, and so on.
Page 201
Input Circuit I/OC 1/8 RPx4 1/4 NEC2505 To DMC-1748* I/O x = bank number 0-7 n = input number 17-80 DMC-1748* GND Connections to this optically isolated input circuit are done in a sinking or sourcing configuration, referring to the direction of current. Some example circuits are shown below: Sinking Sourcing I/OC...
Note that the current through the digital input should be kept below 3 mA in order to minimize the power dissipated in the resistor pack. This will help prevent circuit failures. The resistor pack RPx4 is standard 1.5k ohm which is suitable for power supply voltages up to 5.5 VDC. However, use of 24 VDC for example would require a higher resistance such as a 10k ohm resistor pack.
The power outputs must be connected in a driving configuration as shown on the previous page. Here are the voltage outputs to expect after the Clear Bit and Set Bit commands are given: Output Command Result = GND Standard Digital Outputs The I/O banks 2-7 can be configured as optically isolated digital outputs, however these banks do not have the high power capacity as in banks 0-1.
Output Command Result = GND The resistor pack RPx3 is removed to provide open collector outputs. The same calculations for maximum source current and low level voltage applies as in the above circuit. The maximum sink current is determined by the NEC2505, and is approximately 2mA. Open Collector To DMC-1748 +5V 1/4 NEC2505...
Page 205
Relevant DMC Commands CO n Configures the 64 bits of extended I/O in 8 banks of 8 bits each. n = n + 2*n + 4*n + 8*n + 16*n + 32*n + 64*n + 128*n where n is a 1 or 0, 1 for outputs and 0 for inputs. The x is the bank number m = 8 standard digital outputs m,n,o,p,q n = extended I/O banks 0 &...
Page 206
I/O64 I/O bit 64 I/O63 I/O bit 63 I/O62 I/O bit 62 I/O61 I/O bit 61 I/O60 I/O bit 60 I/O59 I/O bit 59 I/O58 I/O bit 58 I/O57 I/O bit 57 OUTC57-64 Out common for I/O 57-64 I/OC57-64 I/O common for I/O 57-64 I/O56 I/O bit 56 I/O55...
I/O27 I/O bit 27 I/O26 I/O bit 26 I/O25 I/O bit 25 OUTC25-32 Out common for I/O 25-32 I/OC25-32 I/O common for I/O 25-32 OUTC25-32 Out common for I/O 25-32 I/OC25-32 I/O common for I/O 25-32 PWROUT32 Power output 32 PWROUT31 Power output 31 PWROUT30...
Page 208
The vector distance is the integral of Vs, or the total distance traveled along the path. To illustrate this further, suppose that a string was placed along the path in the X-Y plane. The length of that string represents the distance traveled by the vector motion. The vector velocity is specified independently of the path to allow continuous motion.
Page 209
θ π R Δ Circular = 15708 Linear 10000 Total 35708 counts In general, the length of each linear segment is Where Xk and Yk are the changes in X and Y positions along the linear segment. The length of the circular arc is π...
Page 210
The acceleration time, T a , is given by 100000 0 05 2000000 The slew time, Ts, is given by 35708 − − 0 05 0 307 100000 The total motion time, Tt, is given by = 0 407 The velocities along the X and Y axes are such that the direction of motion follows the specified path, yet the vector velocity fits the vector speed and acceleration requirements.
Page 211
time Figure A.4 - Vector and Axes Velocities 200 ● Appendices DMC-18x2 Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com...
List of Other Publications "Step by Step Design of Motion Control Systems" by Dr. Jacob Tal "Motion Control Applications" by Dr. Jacob Tal "Motion Control by Microprocessors" by Dr. Jacob Tal Training Seminars Galil, a leader in motion control with over 500,000 controllers working worldwide, has a proud reputation for anticipating and setting the trends in motion control.
18 months after shipment. Motors, and Power supplies are warranted for 1 year. Extended warranties are available. In the event of any defects in materials or workmanship, Galil Motion Control will, at its sole option, repair or replace the defective product covered by this warranty without charge. To obtain warranty service, the defective product must be returned within 30 days of the expiration of the applicable warranty period to Galil Motion Control, properly packaged and with transportation and insurance prepaid.
Page 218
Artisan Technology Group is your source for quality new and certified-used/pre-owned equipment SERVICE CENTER REPAIRS WE BUY USED EQUIPMENT • FAST SHIPPING AND DELIVERY Experienced engineers and technicians on staff Sell your excess, underutilized, and idle used equipment at our full-service, in-house repair center We also offer credit for buy-backs and trade-ins •...