Galil DMC-4040 User Manual

Manual is about: DMC-40x0 Series

Summary of DMC-4040

  • Page 1

    User manual dmc-40x0 manual rev. 1.0f by galil motion control, inc. Galil motion control, inc. 270 technology way rocklin, california 95765 phone: (916) 626-0101 fax: (916) 626-0102 e-mail address: support@galilmc.Com url: www.Galilmc.Com rev 8/09.

  • Page 2: Using This Manual

    Using this manual this user manual provides information for proper operation of the dmc-40x0 controller. A separate supplemental manual, the command reference, contains a description of the commands available for use with this controller. Your dmc-40x0 motion controller has been designed to work wit...

  • Page 3: Contents

    Contents contents iii chapter 1 overview 1 introduction ................................................................................................................... 1 overview of motor types ............................................................................................. 2 standa...

  • Page 4

    Example 3 - multiple axes ....................................................... 26 example 4 - independent moves .............................................. 26 example 5 - position interrogation ........................................... 26 example 6 - absolute position ..........................

  • Page 5

    Galiltools (windows and linux) ................................................................................. 63 creating custom software interfaces ........................................................................... 65 hellogalil – quick start to pc programming .............................

  • Page 6

    Multi-axis coordinated move .................................................. 108 contour mode ............................................................................................................... 110 specifying contour segments ................................................... 110 addi...

  • Page 7

    Interrogation commands .......................................................... 162 formatting variables and array elements ............................... 163 converting to user units .......................................................... 164 hardware i/o ........................................

  • Page 8

    Power connectors for the dmc-40x0 .......................................................................... 205 overview ................................................................................... 205 molex part numbers used ........................................................ 205 cable...

  • Page 9

    Low current setting (lc command) ....................................... 247 step drive resolution setting (ya command) ........................ 247 elo input ................................................................................. 248 a4 – sdm-44140 (-d4140) 249 description ..................

  • Page 10: Chapter 1 Overview

    Chapter 1 overview introduction the dmc-40x0 series are galil’s highest performance stand-alone controller. The controller series offers many enhanced features including high speed communications, non-volatile program memory, faster encoder speeds, and improved cabling for emi reduction. Each dmc-40...

  • Page 11: Overview of Motor Types

    Overview of motor types the dmc-40x0 can provide the following types of motor control: 1. Standard servo motors with +/- 10 volt command signals 2. Brushless servo motors with sinusoidal commutation 3. Step motors with step and direction signals 4. Other actuators such as hydraulics - for more infor...

  • Page 12

    Overview of external amplifiers the amplifiers should be suitable for the motor and may be linear or pulse-width-modulated. An amplifier may have current feedback, voltage feedback or velocity feedback. Amplifiers in current mode amplifiers in current mode should accept an analog command signal in t...

  • Page 13

    Dmc-40x0 functional elements the dmc-40x0 circuitry can be divided into the following functional groups as shown in figure 1.1 and discussed below. Watchdog timer risc based microcomputer high-speed motor/encoder interface for a,b,c,d i/o interface ethernet rs-232 / rs-422 8 uncommitted analog input...

  • Page 14

    Logic) and unused auxiliary encoder inputs may also be used as additional inputs (2 inputs / each axis). The general inputs can also be used as high speed latches for each axis. A high speed encoder compare output is also provided. 4080 the dmc-4050 through dmc-4080 controller provides an additional...

  • Page 15

    Encoder an encoder translates motion into electrical pulses which are fed back into the controller. The dmc-40x0 accepts feedback from either a rotary or linear encoder. Typical encoders provide two channels in quadrature, known as cha and chb. This type of encoder is known as a quadrature encoder. ...

  • Page 16: Chapter 2 Getting Started

    Chapter 2 getting started dmc-4040 layout the following layouts assume either an icm-42000(i000) or icm-42100(i100) interconnect modules are installed. For layouts of systems with icm-42200’s(i200) installed please contact galil. Overall dimensions and footprint are identical, the only differences a...

  • Page 17: Dmc-4080 Layout

    Dmc-4080 layout figure 2-2 - outline of the of the dmc-4080 dmc-40x0 user manual chapter 2 getting started • 8.

  • Page 18: Dmc-40X0 Power Connections

    Dmc-40x0 power connections figure 2-3 – connector locations for the dmc-40x0 figure 2-4 – power connector used when controller is ordered without galil amplifiers *see power connector information for specific amplifiers in the integrated section of the appendices. For more information on connectors ...

  • Page 19: Dmc-4040 Dimensions

    Dmc-4040 dimensions figure 2-5 – dimensions of dmc-4040 dmc-40x0 user manual chapter 2 getting started • 10

  • Page 20: Dmc-4080 Dimensions

    Dmc-4080 dimensions figure 2-6 dimensions of dmc-4080 chapter 2 getting started • 11 dmc-40x0 user manual.

  • Page 21: Elements You Need

    Elements you need for a complete system, galil recommends the following elements: 1. Dmc-4010, 4020, 4030, or dmc-4040 motion controller or dmc-4050, 4060, 4070 or dmc-4080 2. Motor amplifiers (integrated when using galil amplifiers and drivers) 3. Power supply for amplifiers and controller 4. Brush...

  • Page 22: Installing The Dmc-40X0

    Installing the dmc-40x0 installation of a complete, operational dmc-40x0 system consists of 9 steps. Step 1. Determine overall motor configuration. Step 2. Install jumpers on the dmc-40x0. Step 3. Install the communications software. Step 4. Connect dc power to controller. Step 5. Establish communic...

  • Page 23

    Stepper motor operation to configure the dmc-40x0 for stepper motor operation, the controller requires that the command, mt, must be given. Further instruction for stepper motor connections are discussed in step 8c. Step 2. Install jumpers on the dmc-40x0 master reset and upgrade jumpers jp1 on the ...

  • Page 24

    Http://www.Galilmc.Com/products/software/galiltools.Html all other galil software is also available for download at the galil software downloads page. 33 http://www.Galilmc.Com/support/download.Html using linux (32 & 64 bit): the galiltools software package is fully compatible with a number of linux...

  • Page 25

    Use the “new controller” button to add a new entry in the registry or alternatively click on the “find ethernet controller” to have the software search for controllers connected to the network. When adding a new controller, choose dmc-40x0 as the controller type. Enter the ip address obtained from y...

  • Page 26

    If you are not properly communicating with the controller, the program will pause for 3-15 seconds and an error message will be displayed. In this case, there is most likely an incorrect setting of the serial communications port or the serial cable is not connected properly. The user must ensure tha...

  • Page 27

    Of the a axis will be f signal. The first phase of the c axis will be the motor command c signal. The second phase of the c axis will be the motor command g signal. Step 7. Make connections to amplifier and encoder. If the system is run solely by galil’s integrated amplifiers or drivers, skip this s...

  • Page 28

    4080 when ordered with icm-42000’s or icm-42100’s the aen signal is configurable for axes 1-4 and axes 5-8. Ex – axes 1-4 could be ordered as 5v high amp enable, and axes 5-8 could be ordered as 12v low amp enable. When ordered with icm-42200’s each axis is individually configurable. Step c. Connect...

  • Page 29

    The motor and the amplifier may be configured in the torque or the velocity mode. In the torque mode, the amplifier gain should be such that a 10 volt signal generates the maximum required current. In the velocity mode, a command signal of 10 volts should run the motor at the maximum required speed....

  • Page 30

    Inverting the loop polarity when the polarity of the feedback is incorrect, the user must invert the loop polarity and this may be accomplished by several methods. If you are driving a brush-type dc motor, the simplest way is to invert the two motor wires (typically red and black). For example, swit...

  • Page 31

    This command causes the controller to be reconfigured as a dmc-4050 controller. The a and c axes are configured for sinusoidal commutation. The first phase of the a axis will be the motor command a signal. The second phase of the a axis will be the motor command f signal. The first phase of the c ax...

  • Page 32

    Reset of the controller. If no hall sensors are used, the controller will not be able to make this estimate and the commutation phase must be set before enabling the motor. To initialize the commutation without hall effect sensor use the command, bz. This function drives the motor to a position wher...

  • Page 33

    Step 8c. Connect step motors in stepper motor operation, the pulse output signal has a 50% duty cycle. Step motors operate open loop and do not require encoder feedback. When a stepper is used, the auxiliary encoder for the corresponding axis is unavailable for an external connection. If an encoder ...

  • Page 34: Design Examples

    Next you need to increase the value of kp gradually (maximum allowed is 1023.875). You can monitor the improvement in the response with the tell error instruction kp 10 proportion gain te a tell error as the proportional gain is increased, the error decreases. Again, the system may vibrate if the ga...

  • Page 35

    Sp20000 speed dc 100000 deceleration ac 100000 acceleration bg a start motion example 3 - multiple axes objective: move the four axes independently. Instruction interpretation pr 500,1000,600,-400 distances of a,b,c,d sp 10000,12000,20000,10000 slew speeds of a,b,c,d ac 10000,10000,10000,10000 accel...

  • Page 36

    Dp 0,2000 define the current positions of a,b as 0 and 2000 pa 7000,4000 sets the desired absolute positions bg a start a motion bg b start b motion after both motions are complete, the a and b axes can be command back to zero: pa 0,0 move to 0,0 bg ab start both motions example 7 - velocity control...

  • Page 37

    Kp? Return gain of a axis kp ,,? Return gain of c 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 which can be interrogated. Example 10 - operation in the buffer mode the instructions may be buf...

  • Page 38

    Wt 500 wait 500 ms tp a tell position a v1=v1+1000 increase the value of v1 jp #loop,v1 repeat if v1 en end after the above program is entered, quit the editor mode, q. To start the motion, command: xq #a execute program #a example 13 - motion programs with trippoints the motion programs may include...

  • Page 39

    En end of program to start the program, command xq #a execute program #a this program moves a to an initial position of 1000 and returns it to zero on increments of half the distance. Note, _tpa is an internal variable which returns the value of the a position. Internal variables may be created by p...

  • Page 40

    (0,0) local zero (0,4000) (-4000,4000) (-4000,0) a b r=2000 figure 2-7 motion path for circular interpolation example chapter 2 getting started • 31 dmc-40x0 user manual.

  • Page 41: Overview

    Chapter 3 connecting hardware overview the dmc-40x0 provides opto-isolated digital inputs for forward limit, reverse limit, home, and abort signals. The controller also has 8 opto-isolated, uncommitted inputs (for general use) as well as 8 high power opto- isolated outputs and 8 analog inputs config...

  • Page 42

    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. A reference point ca...

  • Page 43

    Elo (electronic lock-out) input used in conjunction with galil amplifiers, this input allows the user the shutdown the amplifier at a hardware level. For more detailed information on how specific galil amplifiers behave when the elo is triggered, see integrated in the appendices. Reset input when th...

  • Page 44

    4080 the elo, abrt and rst pins are found on the i/o (a-d) d-sub and are duplicated on the i/o (e-h) d-sub. I.E. There is only one elo, abrt and rst input for an 8 axis controller. The common is the incom found on the i/o (a-d) d-sub connector. The optoisolated inputs are connected in the following ...

  • Page 45

    Figure 3-1: the optoisolated inputs. Using an isolated power supply to take full advantage of opto-isolation, an isolated power supply should be used to provide the voltage at the input common connection. When using an isolated power supply, do not connect the ground of the isolated power to the gro...

  • Page 46: Ttl Inputs

    Figure 3-2. Connecting a single limit or home switch to an isolated supply. This diagram only shows the connection for the forward limit switch of the x axis. Bypassing the opto-isolation: if no isolation is needed, the internal 5 volt supply may be used to power the switches. This can be done by co...

  • Page 47

    High power opto-isolated outputs the dmc-40x0 has different interconnect module options, this section will describe the 500ma optically isolated outputs that are used on the icm-42x00. Electrical specifications output common max voltage 30 vdc output common min voltage 12 vdc max drive current per o...

  • Page 48: Analog Inputs

    Analog inputs the dmc-40x0 has eight analog inputs configured for the range between -10v and 10v. The inputs are decoded by a 12-bit a/d decoder giving a voltage resolution of approximately .005v. A 16-bit adc is available as an option (ex. Dmc-4020(-16bit)-c012-i000). The analog inputs are specifie...

  • Page 49

    Extended i/o of the dmc-40x0 controller the dmc-40x0 controller offers 32 extended ttl i/o points which can be configured as inputs or outputs in 8 bit increments. Configuration is accomplished with command co – see extended i/o of the dmc-40x0 controller . The i/o points are accessed through the 44...

  • Page 50: Amplifier Interface

    Amplifier interface electrical specifications max amplifier enable voltage 24v max amplifier enable current @24v sink/source 25 ma motor command output impedance 500 Ω overview the dmc-40x0 command voltage ranges between +/-10v and is output on the motor command line - mcmn (where n is a-h). This si...

  • Page 51

    Amplifier enable circuit sinking output configuration (pin 1 of ltv8441 in pin 2 of socket u4) ttl level amp enable signal from controller (sh = 5v, mo = 0v) ttl level amp enable signal from controller (sh = 5v, mo = 0v) p in 1 rp2 (470 ohm) pin 1 lt v 84 41 pin 1 of socket socket u4 rp6 (820 ohm) +...

  • Page 52

    Amplifier enable circuit sourcing output configuration (pin 1 of ltv8441 in pin 1 of socket u4) ttl level amp enable signal from controller (sh = 5v, mo = 0v) ttl level amp enable signal from controller (sh = 5v, mo = 0v) 5v or gnd p in 1 rp2 (470 ohm) pin 1 of socket pin 1 ltv 84 41 socket u4 rp6 (...

  • Page 53

    Icm-42200 amplifier enable circuit this section describes how to configure the icm-42200 for different amplifier enable outputs. The icm-42200 is designed to be used with external amplifiers. As a result, the amplifier enable circuit for each axis is individually configurable through jumper settings...

  • Page 54

    Chapter 3 connecting hardware • 45 dmc-40x0 user manual.

  • Page 55

    Dmc-40x0 user manual chapter 3 connecting hardware • 46.

  • Page 56

    Chapter 3 connecting hardware • 47 dmc-40x0 user manual.

  • Page 57: Communication

    Chapter 4 software tools and communication introduction the default configuration dmc-40x0 has two rs232 ports and 1 ethernet port. The main rs-232 port is the data set and can be configured through the jumpers on the top of the controller. The auxiliary rs-232 port is the data term and can be confi...

  • Page 58

    Rs232 - main port {p1} dataterm 1 no connect 6 no connect 2 transmit data - output 7 clear to send - input 3 receive data - input 8 request to send - output 4 no connect 9 no connect 5 ground rs232 - auxiliary port {p2} dataset 1 no connect 6 no connect 2 receive data - input 7 request to send - out...

  • Page 59: Ethernet Configuration

    Example: cc 19200,0,1,1 configure auxiliary communication port for 19200 baud, no handshake, general port mode and echo turned on. Rs-422 configuration the dmc-40x0 can be ordered with the main and/or auxiliary port configured for rs-422 communication. Rs-422 communication is a differentially driven...

  • Page 60

    Tcp/ip is a "connection" protocol. The master must be connected to the slave in order to begin communicating. Each packet sent is acknowledged when received. If no acknowledgement is received, the information is assumed lost and is resent. Unlike tcp/ip, udp/ip does not require a "connection". This ...

  • Page 61

    The third level of ethernet addressing is the udp or tcp port number. The galil board does not require a specific port number. The port number is established by the client or master each time it connects to the dmc-40x0 board. Typical port numbers for applications are: port 23: telnet port 502: modb...

  • Page 62: Modbus

    The dmc-40x0 can communicate with a host computer through any application that can send tcp/ip or udp/ip packets. A good example of this is telnet, a utility that comes with most windows systems. Modbus an additional protocol layer is available for speaking to i/o devices. Modbus is an rs-485 protoc...

  • Page 63

    Modbus examples example #1 dmc-4040 connected as a modbus master to a rio-47120 via modbus. The dmc-4040 will set or clear all 16 of the rio’s digital outputs 1. Begin by opening a connection to the rio which in our example has ip address 192.168.1.120 ihb=192,168,1,120 (issued to dmc-4040) 2. Dimen...

  • Page 64: Data Record

    Dm myanalog[4] 3. Send the appropriate mb command. Use function code 4 (as specified per the plc). Start at address 40006. Retrieve 4 modbus registers (2 modbus registers per 1 analog input, as specified by the plc) mbb=,4,40006,4,myanalog[] results: array elements 0 and 1 will make up the 32 bit fl...

  • Page 65

    Note: ub = unsigned byte (1), uw = unsigned word (2), sw = signed word (2), sl = signed long word (4), ul = unsigned long word (4) addr type item 00 ub 1 st byte of header 01 ub 2 nd byte of header 02 ub 3 rd byte of header 03 ub 4 th byte of header 04-05 uw sample number 06 ub general input block 0...

  • Page 66

    50 ub error code 51 ub thread status – see bit field map below 52-55 ul (new) amplifier status 56-59 ul (new) segment count for contour mode 60-61 uw (new) buffer space remaining – contour mode 62-63 uw segment count of coordinated move for s plane 64-65 uw coordinated move status for s plane – see ...

  • Page 67

    166-169 sl c axis position error 170-173 sl c axis auxiliary position 174-177 sl c axis velocity 178-181 sl (new size) c axis torque 182-183 sw or uw 1 c axis analog input 184 ub (new) c hall input status 185 ub reserved 186-189 sl (new) c user defined variable (za) 190-191 uw d axis status – see bi...

  • Page 68

    292 ub (new) f hall input status 293 ub reserved 294-297 sl (new) f user defined variable (za) 298-299 uw g axis status – see bit field map below 300 ub g axis switches – see bit field map below 301 ub g axis stop code 302-305 sl g axis reference position 306-309 sl g axis motor position 310-313 sl ...

  • Page 69

    Explanation data record bit fields header information - byte 0, 1 of header: bit 15 bit 14 bit 13 bit 12 bit 11 bit 10 bit 9 bit 8 1 n/a n/a n/a n/a i block present in data record t block present in data record s block present in data record bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 h block pr...

  • Page 70

    Axis status (1 word) bit 15 bit 14 bit 13 bit 12 bit 11 bit 10 bit 9 bit 8 move in progress mode of motion pa or pr mode of motion pa only (fe) find edge in progress home (hm) in progress 1 st phase of hm complete 2 nd phase of hm complete or fi command issued mode of motion coord. Motion bit 7 bit ...

  • Page 71

    Instructions are sent in ascii, and the dmc-40x0 decodes each ascii character (one byte) one at a time. It takes approximately 0.05 msec for the controller to decode each command. After the instruction is decoded, the dmc-40x0 returns a response to the port from which the command was generated. If t...

  • Page 72

    Galiltools (windows and linux) galiltools is galil's set of software tools for current galil controllers. It is highly recommended for all first-time purchases of galil controllers as it provides easy set-up, tuning and analysis. Galiltools replaces the wsdk tuning software with an improved user-int...

  • Page 73

    Figure 4.1 - galiltools dmc-40x0 user manual chapter 4 software tools and communication • 64.

  • Page 74

    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 galiltools communication library, activex toolkit, .Net api and dmcwin. For new applications, galil recommends the galilt...

  • Page 75

    Com (windows) to further extend the language compatibility on windows, a com (component object model) class built on top of the c++ library is also provided with windows releases. This com wrapper can be used in any language and ide supporting com (visual studio 2005, 2008, etc). The com wrapper inc...

  • Page 76

    Galil communications api with c/c++ galil recommends the galiltools communication library for all new applications. When programming in c/c++, the communications api can be used as included functions or through a class library. All galil communications programs written in c must include the dmccom.H...

  • Page 77

    Sending commands in vb most commands are sent to the controller with the dmccommand() function. This function allows any galil command to be sent from vb to the controller. The dmccommand() function will return the response from the controller as a string. Before sending any commands the dmcopen() f...

  • Page 78: Dos, and Qnx Tools

    Dos, and qnx tools galil offers unsupported code examples that demonstrate communications to the controller using the following operating systems. Dos dos based utilities & programming libraries for galil controllers, which includes a terminal, utilities to upload and download programs, and source c...

  • Page 79: Chapter 5 Command Basics

    Chapter 5 command basics introduction the dmc-40x0 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-40x0 instruction...

  • Page 80

    Pr 1000 specify a only as 1000 pr ,2000 specify b only as 2000 pr ,,3000 specify c only as 3000 pr ,,,4000 specify d only as 4000 pr 2000, 4000,6000, 8000 specify a,b,c and d pr ,8000,,9000 specify b and d only pr ?,?,?,? Request a,b,c,d values pr ,? Request b value only the dmc-40x0 provides an alt...

  • Page 81

    Command syntax – binary (advanced) some commands have an equivalent binary value. Binary communication mode can be executed about 20% 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 ...

  • Page 82

    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 0 + 2 2 =5) 03 e8 represents 1000 fe oc represents -500 example the command st xyzs would be : a1 00 01 07 where a1 is the command number for st 00 specifies 0 data fields 01 specifies stop the coordi...

  • Page 83

    Of 99 eb c4 reserved ef gm 9a eq c5 reserved f0 reserved 9b ec c6 reserved f1 reserved 9c reserved c7 reserved f2 reserved 9d am c8 reserved f3 reserved 9e mc c9 reserved f4 reserved 9f tw ca reserved f5 bg a0 mf cb reserved f6 st a1 mr cc reserved f7 ab a2 ad cd reserved f8 hm a3 ap ce reserved f9 ...

  • Page 84

    Summary of interrogation commands rp report command position rl report latch ∧ r ∧ v firmware revision information sc stop code tb tell status tc tell error code td tell dual encoder te tell error ti tell input tp tell position tr trace ts tell switches tt tell torque tv tell velocity for example, t...

  • Page 85: Overview

    Chapter 6 programming motion overview the dmc-40x0 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-4010 are single axis controll...

  • Page 86

    2-d motion path consisting of arc segments and linear segments, such as engraving or quilting. Coordinated motion vm vp cr vs,vr va,vd ve third axis must remain tangent to 2-d motion path, such as knife cutting. Coordinated motion with tangent axis specified vm vp cr vs,va,vd tn ve electronic gearin...

  • Page 87: Independent Axis Positioning

    Independent axis positioning in this mode, motion between the specified axes is independent, and each axis follows its own profile. The user specifies the desired absolute position (pa) or relative position (pr), slew speed (sp), acceleration ramp (ac), and deceleration ramp (dc), for each axis. On ...

  • Page 88

    _spx returns the speed for the axis specified by ‘x’ _pax returns current destination if ‘x’ axis is moving, otherwise returns the current commanded position if in a move. _prx returns current incremental distance specified for the ‘x’ axis example - absolute position movement pa 10000,20000 specify...

  • Page 89: Independent Jogging

    Figure 6.1: velocity profiles of xyz notes on figure 6.1: the x and y axis have a ‘trapezoidal’ velocity profile, while the z axis has a ‘triangular’ velocity profile. The x and y axes accelerate to the specified speed, move at this constant speed, and then decelerate such that the final position ag...

  • Page 90: Position Tracking

    Operand summary - independent axis operand description _acx return acceleration rate for the axis specified by ‘x’ _dcx return deceleration rate for the axis specified by ‘x’ _spx returns the jog speed for the axis specified by ‘x’ _tvx returns the actual velocity of the axis specified by ‘x’ (avera...

  • Page 91

    The target during the move. In a tracking application, this could occur at any time during the move or at regularly scheduled intervals. For example if a robot was designed to follow a moving object at a specified distance and the path of the object wasn’t known the robot would be required to consta...

  • Page 92

    Figure 6.2: position vs. Time (msec) motion 1 example - motion 2: the previous step showed the plot if the motion continued all the way to 5000, however partway through the motion, the object that was being tracked changed direction, so the host program determined that the actual target position sho...

  • Page 93

    Figure 6.4: velocity vs. Time (msec) motion 2 example motion 4 in this motion, the host program commands the controller to begin motion towards position 5000, changes the target to -2000, and then changes it again to 8000. Figure 6.5 shows the plot of position vs. Time, figure 6.6 plots velocity vs....

  • Page 94

    Figure 6.6: velocity vs. Time motion 4 figure 6.7: velocity cts/sec vs. Time (msec) with it note the controller treats the point where the velocity passes through zero as the end of one move, and the beginning of another move. It is allowed, however it will introduce some time delay. Trip points mos...

  • Page 95: Linear Interpolation Mode

    Command summary – position tracking mode command description ac n,n,n,n,n,n,n,n acceleration settings for the specified axes ap n,n,n,n,n,n,n,n trip point that holds up program execution until an absolute position has been reached dc n,n,n,n,n,n,n,n deceleration settings for the specified axes mf n,...

  • Page 96

    Additional commands the commands vs n, va n, and vd n are used to specify the vector speed, acceleration and deceleration. The dmc-40x0 computes the vector speed based on the axes specified in the lm mode. For example, lm xyz designates linear interpolation for the x,y and z axes. The vector speed f...

  • Page 97

    Li 1000,1000 >1000 specify second linear segment with a vector speed of 4000 and end speed 1000 li 0,5000 >1000 specify third linear segment with a vector speed of 4000 and end speed 1000 le end linear segments bgs begin motion sequence en program end changing feed rate: the command vr n allows the ...

  • Page 98

    To illustrate the ability to interrogate the motion status, consider the first motion segment of our example, #lmove, where the x axis moves toward the point x=5000. Suppose that when x=3000, the controller is interrogated using the command ‘mg _av’. The returned value will be 3000. The value of _cs...

  • Page 99

    Figure 6.8: linear interpolation 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 coun...

  • Page 100

    N=0 initialize position increment #loop loop vx [count]=n fill array vx vy [count]=n fill array vy n=n+10 increment position count=count+1 increment counter jp #loop,count loop if array not full #a label lm xy specify linear mode for xy count=0 initialize array counter #loop2;jp#loop2,_lm=0 if seque...

  • Page 101

    This ‘local’ definition of zero does not affect the absolute coordinate system or subsequent coordinated motion sequences. The command, vp x,y specifies the coordinates of the end points of the vector movement with respect to the starting point. Non-sequential axis do not require comma delimitation....

  • Page 102

    Compensating for differences in encoder resolution: by default, the dmc-40x0 uses a scale factor of 1:1 for the encoder resolution when used in vector mode. If this is not the case, the command, es can be used to scale the encoder counts. The es command accepts two arguments which represent the numb...

  • Page 103

    Command summary - coordinated motion sequence command description. Vm m,n specifies the axes for the planar motion where m and n represent the planar axes and p is the tangent axis. Vp m,n return coordinate of last point, where m=x,y,z or w. Cr r, Θ , ±∆Θ specifies arc segment where r is the radius,...

  • Page 104: Electronic Gearing

    Vp 0,3000 segment cd cr 1500,90,-180 segment da ve end of sequence bgs begin sequence the resulting motion starts at the point a and moves toward points b, c, d, a. Suppose that we interrogate the controller when the motion is halfway between the points a and b. The value of _av is 2000 the value of...

  • Page 105: Ramped Gearing

    An alternative gearing method is to synchronize the slave motor to the commanded vector motion of several axes performed by gas. For example, if the x and y motor form a circular motion, the z axis may move in proportion to the vector move. Similarly, if x,y and z perform a linear interpolation move...

  • Page 106

    Figure 6.11: velocity (cts/sec) vs. Time (msec) ramped gearing the slave axis for each figure is shown on the bottom portion of the figure; the master axis is shown on the top portion. The shock to the slave axis will be significantly less in figure 6.11 than in figure 6.10. The ramped gearing does ...

  • Page 107

    Command summary - electronic gearing command description ga n specifies master axes for gearing where: n = x,y,z or w or a,b,c,d,e,f,g,h for main encoder as master n = cx,cy,cz, cw or ca, cb,cc,cd,ce,cf,cg,ch for commanded position. N = dx,dy,dz or dw or da, db, dc, dd, de, df,dg,dh for auxiliary en...

  • Page 108: Electronic Cam

    Gr,1 set gear ratio for y as 1:1 gm,1 set gantry mode pr 3000 command x motion bg x start motion on x axis you may also perform profiled position corrections in the electronic gearing mode. Suppose, for example, that you need to advance the slave 10 counts. Simply command ip ,10 specify an increment...

  • Page 109

    Where x,y,z,w specify the cycle of the master and the total change of the slaves over one cycle. The cycle of the master is limited to 8,388,607 whereas the slave change per cycle is limited to 2,147,483,647. If the change is a negative number, the absolute value is specified. For the given example,...

  • Page 110

    Figure 6.12: electronic cam example this disengages the slave axis at a specified master position. If the parameter is outside the master cycle, the stopping is instantaneous. To illustrate the complete process, consider the cam relationship described by the equation: y = 0.5 * x + 100 sin (0.18*x) ...

  • Page 111

    Instruction interpretation #setup label eax select x as master em 2000,1000 cam cycles ep 20,0 master position increments n = 0 index #loop loop to construct table from equation p = n ∗ 3.6 note 3.6 = 0.18 * 20 s = @sin [p]*100 define sine position y = n*10+s define slave position et [n] =, y define...

  • Page 112

    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 or m or n a for virtual axis master eb n enables the ecam ec n ecam counter - sets the index into the ecam table eg x,y,z,w engages e...

  • Page 113

    Et[9]=40,20 10 th point in the ecam table et[10]=0,0 starting point for next cycle eb 1 enable ecam mode jgz=4000 set z to jog at 4000 eg 0,0 engage both x and y when master = 0 bgz begin jog on z axis #loop;jp#loop,v1=0 loop until the variable is set eq2000,2000 disengage x and y when master = 2000...

  • Page 114: Pvt Mode

    Pvt mode the dmc-40x0 controllers now supports a mode of motion referred to as “pvt.” this mode allows arbitrary motion profiles to be defined by position, velocity and time individually on all 8 axes. This motion is designed for systems where the load must traverse a series of coordinates with no d...

  • Page 115

    Command summary – pvt command description pva = p,v,t specifies the segment of axis 'a' for a incremental pvt segment of 'p' counts, an end speed of 'v' counts/sec in a total time of 't' samples. _pva contains the number of pv segments available in the pv buffer for a specified axes. Bt begin pvt mo...

  • Page 116

    = ) 25 (. V 437.5 p(0 to .25) = 57 = ) 5 (. V 750 p(.25 to .5) = 151 = ) 75 (. V 937.5 p(.5 to .75) = 214 = ) 1 ( v 1000 p(.75 to 1) = 245 = ) 25 . 1 ( v 937.5 p(1 to 1.25) = 245 = ) 5 . 1 ( v 750 p(1.25 to 1.5) = 214 = ) 75 . 1 ( v 437.5 p(1.5 to 1.75) = 151 = ) 2 ( v 0 p(1.75 to 2) =57 the dmc pro...

  • Page 117

    Multi-axis coordinated move many applications require moving two or more axes in a coordinated move yet still require smooth motion at the same time. These applications are ideal candidates for pvt mode. In this example we will have a 2 dimensional stage that needs to follow a specific profile. The ...

  • Page 118

    The resultant dmc program is shown below. The position points are dictated by the application requirements and the velocities and times were chosen to create smooth yet quick motion. For example, in the second segment the b axis is slowed to 0 at the end of the move in anticipation of reversing dire...

  • Page 119: Contour Mode

    Contour mode the dmc-40x0 also provides a contouring mode. This mode allows any arbitrary position curve to be prescribed for 1 to 8 axes. This is ideal for following computer generated paths such as parabolic, spherical or user-defined profiles. The path is not limited to straight line and arc segm...

  • Page 120

    Figure 6.18: the required trajectory additional commands _cm gives the amount of space available in the contour buffer (511 maximum). 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 c...

  • Page 121

    ( ) ω π = − Α Β Β 1 2 cos( ) Χ = − at b a b 2 2 π π sin( ) note: ω is the angular velocity; x is the position; and t is the variable, time, in milliseconds. In the given example, a=6000 and b=120, the position and velocity profiles are: x = 50t - (6000/2 π ) sin (2 π t/120) note that the velocity, ω...

  • Page 122

    #b program to find position differences c=0 #c d=c+1 dif[c]=pos[d]-pos[c] compute the difference and store c=c+1 jp #c,c #run program to run motor cmx contour mode dt3 8 millisecond intervals c=0 #e cd dif[c] contour distance is in dif c=c+1 jp #e,c cd 0=0 end contour buffer #wait;jp#wait,_cm511 wai...

  • Page 123

    #playbck begin playback cmx specify contour mode dt2 specify time increment i=0 initialize array counter #b loop counter cd dx[i]; i=i+1 specify contour data i=i+1 increment array counter jp #b,i loop until done cd 0=0 end countour buffer #wait;jp#wait,_cm511 wait until path is done en end program f...

  • Page 124: Stepper Motor Operation

    Stepper motor operation when configured for stepper motor operation, several commands are interpreted differently than from servo mode. The following describes operation with stepper motors. Specifying stepper motor operation stepper motor operation is specified by the command mt. The argument for m...

  • Page 125

    Motion profiler stepper smoothing filter (adds a delay) output buffer step count register (td) reference position (rp) output (to stepper driver) motion complete trippoint when used in stepper mode, the mc command will hold up execution of the proceeding commands until the controller has generated t...

  • Page 126

    Stepper position maintenance mode (spm) the galil controller can be set into the stepper position maintenance (spm) mode to handle the event of stepper motor position error. The mode looks at position feedback from the main encoder and compares it to the commanded step pulses. The position informati...

  • Page 127

    Qs is less than three full motor steps, the ys error status bit is automatically reset back to 1; indicating a cleared error. 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...

  • Page 128

    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 o step motor and 4000 count/rev encoder. #setup oe1; set the profile...

  • Page 129

    Yc4000; encoder resolution (counts per revolution) shx; enable axis wt50; allow slight settle time ys1; enable spm mode #motion; perform motion sp16384; set the speed pr10000; prepare mode of motion bgx; begin motion mcx js#correct; move to correction #motion2 sp16384; set the speed pr-10000; prepar...

  • Page 130

    2 reverse quadrature 8 reversed quadrature 3 reverse pulse & direction 12 reversed pulse & direction for example, to configure the main encoder for reversed quadrature, m=2, and a second encoder of pulse and direction, n=4, the total is 6, and the command for the x axis is: ce 6 additional commands ...

  • Page 131: Motion Smoothing

    Note: that the dual loop compensation depends on the backlash magnitude, and in extreme cases will not stabilize the loop. The proposed compensation procedure is to start with kp=0, ki=0 and to maximize the value of kd under the condition dv1. Once kd is found, increase kp gradually to a maximum val...

  • Page 132

    The command, it, is used for smoothing independent moves of the type jg, pr, pa and to smooth vector moves of the type vm and lm. The smoothing parameters, x,y,z,w and n are numbers between 0 and 1 and determine the degree of filtering. The maximum value of 1 implies no filtering, resulting in trape...

  • Page 133: Homing

    Using the ks command (step motor smoothing): when operating with step motors, motion smoothing can be accomplished with the command, ks. The ks command smoothes the frequency of step motor pulses. Similar to the command it, this produces a smooth velocity profile. The step motor smoothing is specifi...

  • Page 134

    The dmc-40x0 defines the home position as the position at which the index was detected and sets the encoder reading at this point to zero. The 4 different motion possibilities for the home sequence are shown in the following table . Direction of motion switch type cn setting initial _hmx state stage...

  • Page 135

    Figure 6.21: homing sequence for normally closed switch and cn,-1 dmc-40x0 user manual chapter 6 programming motion • 126 _hmx=1 _hmx=0 home switch motion begins in forward direction motion changes direction motion in forward direction toward index index pulses position position position position po...

  • Page 136

    Example: find edge #edge label ac 2000000 acceleration rate dc 2000000 deceleration rate sp 8000 speed fe find edge command bg begin motion am after complete mg “found home” send message dp 0 define position as 0 en end command summary - homing operation command description fe xyzw find edge routine...

  • Page 137

    1. Give the al xyzw command or abcdefgh for dmc-4080, to arm the latch for the main encoder and alsxsyszsw for the auxiliary encoders. 2. Test to see if the latch has occurred (input goes low) by using the _al x or y or z or w command. Example, v1=_alx returns the state of the x latch into v1. V1 is...

  • Page 138: Fast Update Rate Mode

    Fast update rate mode the dmc-40x0 can operate with much faster servo update rates than the default of every millisecond. This mode is known as ‘fast mode’ and allows the controller to operate with the following update rates: dmc-4010 31.25 µ sec dmc-4020 31.25 µ sec dmc-4030 62.5 µ sec dmc-4040 62....

  • Page 139: Chapter 7 Application

    Chapter 7 application programming overview the dmc-40x0 provides a powerful programming language that allows users to customize the controller for their particular application. Programs can be downloaded into the dmc-40x0 memory freeing the host computer for other tasks. However, the host computer c...

  • Page 140: Program Format

    Edit mode commands typing the return key causes the current line of entered instructions to be saved. The editor will automatically advance to the next line. Thus, hitting a series of will cause the editor to advance a series of lines. Note, changes on a program line will not be saved unless a is gi...

  • Page 141

    Valid labels #begin #square #x1 #begin1 invalid labels #1square #123 a simple example program: #start beginning of the program pr 10000,20000 specify relative distances on x and y axes bg xy begin motion am wait for motion complete wt 2000 wait 2 sec jp #start jump to label start en end of program t...

  • Page 142

    ‘ half circle motion ve ‘ end vector sequence bgs ‘ begin sequence motion en ‘ end of program note: the no command is an actual controller command. Therefore, inclusion of the no commands will require process time by the controller. Executing programs - multitasking the dmc-40x0 can run up to 8 inde...

  • Page 143: Debugging Programs

    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-40x0 provides commands and operands which are useful in debugging application programs. These commands include interro...

  • Page 144: Program Flow Commands

    Operands in general, all operands provide information which may be useful in debugging an application program. Below is a list of operands which are particularly valuable for program debugging. To display the value of an operand, the message command may be used. For example, since the operand, _ed c...

  • Page 145

    The dmc-40x0 provides several event triggers that cause the program sequencer to halt until the specified event occurs. Normally, a program is automatically executed sequentially one line at a time. When an event trigger instruction is decoded, however, the actual program sequence is halted. The pro...

  • Page 146

    Wt n halts program execution until specified time in msec has elapsed. 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 ...

  • Page 147

    #input program label ai-1 wait for input 1 low pr 10000 position command bgx begin motion en end program event trigger - set output when at speed #atspeed program label jg 50000 specify jog speed ac 10000 acceleration rate bgx begin motion asx wait for at slew speed 50000 sb1 set output 1 en end pro...

  • Page 148

    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 50 msec. #output program label at0 initialize time reference sb1 set output 1 #loop loop at 10 after 10 msec from reference, cb1 clear output 1 at -40 wait 40 mse...

  • Page 150

    Bgx begin move amx wait for motion complete wt 100 wait 100 msec count=count-1 decrement loop counter jp #loop,count>0 test for 10 times thru loop en end program using if, else, and endif commands the dmc-40x0 provides a structured approach to conditional statements using if, else and endif commands...

  • Page 151

    #inint input interrupt subroutine if (@in[1]=0) if conditional statement based on input 1 if (@in[2]=0) 2 nd if conditional statement executed if 1 st if conditional true mg “input 1 and input 2 are active” message to be executed if 2 nd if conditional is true else else command for 2 nd if condition...

  • Page 152

    Auto-start routine the dmc-40x0 has a special label for automatic program execution. A program which has been saved into the controller’s non-volatile memory can be automatically executed upon power up or reset by beginning the program with the label #auto. The program must be saved into non-volatil...

  • Page 153

    Now, when a forward limit switch occurs on the x axis, the #limswi subroutine will be executed. Notes regarding the #limswi routine: 1) the re command is used to return from the #limswi subroutine. 2) the #limswi subroutine will be re-executed if the limit switch remains active. The #limswi routine ...

  • Page 154

    Example - command error #begin begin main program in “enter speed”, speed prompt for speed jg speed;bgx; begin motion jp #begin repeat en end main program #cmderr command error utility jp#done,_ed2 check if error on line 2 jp#done,_tc6 check if out of range mg “speed too high” send message mg “try a...

  • Page 155

    Endif if _tc=1 if error is invalid command (ty) xq _ed3,_ed1,1 skip invalid command endif en end of command error routine example - communication interrupt a dmc-4010 is used to move the a axis back and forth from 0 to 10000. This motion can be paused, resumed and stopped via input from an auxiliary...

  • Page 156

    #loop simple program loop jp#loop en #tcperr ethernet communication error auto routine mg {p1}_ia4 send message to serial port indicating which handle did not receive proper acknowledgment. Re js subroutine stack variables (^a, ^b, ^c, ^d, ^e, ^f, ^g, ^h) there are 8 variables that may be passed on ...

  • Page 157

    36.0000 36.0000 example: working with arrays #array dm speeds[8] dm other[256] js #zeroary ( "speeds" ,0) ;'zero out all buckets in speeds[] js #zeroary ( "other" ,0) ;'zero out all buckers in other[] en ' #zeroary ;no(array ^a, ^b) zeros array starting at index ^b ^a[^b]=0 ^b=^b+1 jp #zeroary ,(^b ...

  • Page 158

    Endif #pwrhlpr ^c=^c*^a ^b=^b-1 jp #pwrhlpr,^ b>0 if ^d=1 ;'if inversion required ^c=(1/^c) endif en ,,^c executed program from program1.Dmc 4.0000 65536.0000 0.0039 example: recursion 'although the stack depth is only 16, galil dmc code does support recursion js #axsinfo (0) mg {z2.0} "recursed thr...

  • Page 160: Variables

    This program will accept a string input of up to 6 characters, parse each character, and then display each character. Notice also that the values used for masking are represented in hexadecimal (as denoted by the preceding ‘$’). For more information, see section sending messages. To illustrate furth...

  • Page 161

    Example: posx=5000 assigns the value of 5000 to the variable posx pr posx assigns variable posx to pr command jg rpmy*70 assigns variable rpmy multiplied by 70 to jg command. Programmable variables the dmc-40x0 allows the user to create up to 510 variables. Each variable is defined by a name which c...

  • Page 162: Operands

    Displaying the value of variables at the terminal variables may be sent to the screen using the format, variable=. For example, v1= , returns the value of the variable v1. Example - using variables for joystick the example below reads the voltage of an x-y joystick and assigns it to variables vx and...

  • Page 163: Arrays

    _hmn *returns status of home switch (equals 0 or 1) _lfn returns status of forward limit switch input of axis ‘n’ (equals 0 or 1) _lrx returns status of reverse limit switch input of axis ‘n’ (equals 0 or 1) _ul *returns the number of available variables time free-running real time clock (off by 2.4...

  • Page 164

    Con[2]=@cos[pos]*2 assigns the second element of the array con the cosine of the variable pos multiplied by 2. Timer[1]=time assigns the first element of the array timer the returned value of the time keyword. Using a variable to address array elements an array element number can also be a variable....

  • Page 165

    Rc n,m the rc command begins data collection. Sets data capture time interval where n is an integer between 1 and 8 and designates 2 n msec between data. M is optional and specifies the number of elements to be captured. If m is not defined, the number of elements defaults to the smallest array defi...

  • Page 166

    X pos[n]= print x position y pos[n]= print y position xerr[n]= print x error yerr[n]= print y error n=n+1 increment counter #done done en end program de-allocating array space array space may be de-allocated using the da command followed by the array name. Da*[0] deallocates all the arrays. Input of...

  • Page 167

    En end program operator data entry mode the operator data entry mode provides for un-buffered data entry through the auxiliary rs-232 port. In this mode, the dmc-40x0 provides a buffer for receiving characters. This mode may only be used when executing an applications program. The operator data entr...

  • Page 168

    The program where it was called without re-enabling the interrupt. As with any automatic subroutine, a program must be running in thread 0 at all times for it to be enabled. Example a dmc-40x0 is used to jog the a and b axis. This program automatically begins upon power-up and allows the user to inp...

  • Page 169

    Inputting string variables string variables with up to six characters may be 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 a,b or c", v{s} specifies a string variable to b...

  • Page 170

    If the value of the variable result is equal to 999999.999, the above message statement returns the following: the final value is 99999.99 the message command normally sends a carriage return and line feed following the statement. The carriage return and the line feed may be suppressed by sending {n...

  • Page 171

    V1= print v1 interrogation commands the dmc-40x0 has a set of commands that directly interrogate the controller. When these command are entered, the requested data is returned in decimal format on the next line followed by a carriage return and line feed. The format of the returned data can be chang...

  • Page 172

    Tp tell position interrogation command -0000000009, 0000000005 response (with leading zeros) lz1 enables the lz function tp tell position interrogation command -9, 5 response (without leading zeros) local formatting of response of interrogation commands the response of interrogation commands may be ...

  • Page 173: Hardware I/o

    :0000000010.0000 default format v1={f4.2} specify local format :0010.00 new format v1={$4.2} specify hex format :$000a.00 hex value v1="alpha" assign string "alpha" to v1 v1={s4} specify string format first 4 characters :alph the local format is also used with the mg command. Converting to user unit...

  • Page 174

    Example- output bit the output bit (ob) instruction is useful for setting or clearing outputs depending on the value of a variable, array, input or expression. Any non-zero value results in a set bit. Instruction interpretation ob1, pos set output 1 if the variable pos is non-zero. Clear output 1 if...

  • Page 175

    Example - start motion on switch motor a must turn at 4000 counts/sec when the user flips a panel switch to on. When panel switch is turned to off position, motor a must stop turning. Solution: connect panel switch to input 1 of dmc-40x0. High on input 1 means switch is in on position. Instruction i...

  • Page 176

    #b label #b tp ab report a and b axes positions wt 1000 wait 1000 milliseconds jp #b jump to #b en end of program #inint interrupt subroutine mg "interrupt has occurred" displays the message st ab stops motion on a and b axes #loop;jp #loop,@in[1]=0 loop until interrupt cleared jg 15000,10000 specif...

  • Page 177

    Vp=@an[1]*1000 compute desired position ve=vp-_tpa find position error vel=ve*20 compute velocity jg vel change velocity jp #loop change velocity en end extended i/o of the dmc-40x0 controller the dmc-40x0 controller offers 32 extended i/o points which can be configured as inputs or outputs in 8 bit...

  • Page 178: Example Applications

    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 48). Outputs may also be defined with the conditional command, obn (where n=1 through 8 and 17 through 48). 4080 for 5-8 axis controllers, each i/o poi...

  • Page 179

    The input signal may be applied to i1, 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. 7.1. The program starts at a state that we define as #a. Here the controller waits for the input pulse on i1. As soon...

  • Page 180

    The motion starts at point a, with the z-axis raised. An x-y motion to point b is followed by lowering the z-axis and performing a cut along the circle. Once the circular motion is completed, the z-axis is raised and the motion continues to point c, etc. Assume that all of the 3 axes are driven by l...

  • Page 181

    Further assume that the z must move 2” at a linear speed of 2” per second. The required motion is performed by the following instructions: instruction function #a label vm xy circular interpolation for xy vp 160000,160000 positions ve end vector motion vs 200000 vector speed va 1544000 vector accele...

  • Page 182

    R=2 b c a 0 4 9.3 4 y x figure 7.2 - motor velocity and the associated input/output signals speed control by joystick the speed of a motor is controlled by a joystick. The joystick produces a signal in the range between -10v and +10v. The objective is to drive the motor at a speed proportional to th...

  • Page 183

    The corresponding velocity for the motor is assigned to the vel variable. Instruction #a jg0 bgx #b vin=@an[1] vel=vin*20000 jg vel jp #b en position control by joystick this system requires the position of the motor to be proportional to the joystick angle. Furthermore, the ratio between the two po...

  • Page 184

    Once there, the load position is read to find the position error and the controller commands the motor to move to a new rotary position which eliminates the position error. Since the required accuracy is 0.5 micron, the resolution of the linear sensor should preferably be twice finer. A linear senso...

  • Page 185

    This page left blank intentionally dmc-40x0 user manual chapter 7 application programming • 176.

  • Page 186: Protection

    Chapter 8 hardware & software protection introduction the dmc-40x0 provides several hardware and software features to check for error conditions and to inhibit the motor on error. These features help protect the various system components from damage. Warning: machinery in motion can be dangerous! It...

  • Page 187: Software Protection

    Input protection lines general 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 enab...

  • Page 188

    The jump on condition statement is useful for branching on a given error within a program. The position error of x,y,z and w can be monitored during execution using the te command. Programmable position limits the dmc-40x0 provides programmable forward and reverse position limits. These are set by t...

  • Page 189

    Limit switch routine the dmc-40x0 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 ...

  • Page 190: Chapter 9 Troubleshooting

    Chapter 9 troubleshooting overview the following discussion may help you get your system to work. Potential problems have been divided into groups as follows: 1. Installation 2. Stability and compensation 3. Operation the various symptoms along with the cause and the remedy are described in the foll...

  • Page 191: Stability

    Unable to read main or auxiliary encoder input. The encoder works correctly when swapped with another encoder input. 1. Wrong encoder connections. 2. Encoder configuration incorrect. 3. Encoder input or controller is damaged check encoder wiring. For single ended encoders (ma+ and mb+ only) do not m...

  • Page 192: Overview

    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 motor encoder figure 10.1 - elements of servo systems the operation of such a system...

  • Page 193

    Motion programming motion profiling closed-loop control level 3 2 1 figure 10.2 - levels of control functions the three levels of control may be viewed as different levels of management. The top manager, the motion program, may specify the following instruction, for example. Pr 6000,4000 sp 20000,20...

  • Page 194

    Y position x position y velocity x velocity 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...

  • Page 195: System Modeling

    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 ca...

  • Page 196

    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 volt...

  • Page 197

    P/v = 1000/s2 [rad/v] if the motor is a dc brushless motor, it is driven by an amplifier that performs the commutation. The combined transfer function of motor amplifier combination is the same as that of a similar brush motor, as described by the previous equations. Velocity loop the motor driver s...

  • Page 198

    K v 1/k e (st m +1)(st e +1) 1 s v e w p voltage source k a k t js 1 s v i w p current source 1 s v w p velocity loop 1 k g (st 1 +1) 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, ...

  • Page 199

    Digital filter the digital filter has three element in series: pid, low-pass and a notch filter. The transfer function of the filter. The transfer function of the filter elements are: pid d(z) = k z a z cz z ( ) − + − 1 low-pass l(z) = 1 − − b z b notch n(z) = ) )( ( ) )( ( p z p z z z z z − − − − t...

  • Page 200: System Analysis

    The notch parameters by the frequency terms. The poles and zeros have a frequency in hz, selected by the command nf. The real part of the poles is set by nb and the real part of the zeros is set by nz. The most simple procedure for setting the notch filter, identify the resonance frequency and set n...

  • Page 201

    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. Σ 50+0.980s 318 v encoder 500 s 2 filter 2000 s+2000 0.0003 4 zoh dac amp moto...

  • Page 202

    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 ° + α = 70 ° as long as pm is positive, the sy...

  • Page 203

    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) ka kd kf h(s) =3.17 ∗ 106/[s2(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...

  • Page 204

    Where p = kp d = kd ∗ t and kd = d/t assuming a sampling period of t=1ms, the parameters of the digital filter are: kp = 82.4 kd = 247.4 the dmc-40x0 can be programmed with the instruction: kp 82.4 kd 68.6 in a similar manner, other filters can be programmed. The procedure is simplified by the follo...

  • Page 205

    This page left blank intentionally dmc-40x0 user manual chapter 10 theory of operation • 196.

  • Page 206: Appendices

    Appendices electrical specifications servo control mcmn amplifier command: +/-10 volt analog signal. Resolution 16-bit dac or 0.0003 volts. 3 ma maximum. Output impedance – 500 Ω ma+,ma-,mb+,mb-,mi+,mi- encoder and auxiliary ttl compatible, but can accept up to +/-12 volts. Quadrature phase on cha, ...

  • Page 207

    Io17 thru io48 extended configurable i/o standard 3.3v logic with 5v option di81, di82 auxiliary encoder inputs for a (x) axis. Line receiver inputs - accepts differential or single ended voltages with voltage range of +/- 12 volts. Di83, di84 (dmc-4020 through dmc-4080 only) auxiliary encoder input...

  • Page 208: Performance Specifications

    Performance specifications minimum servo loop update time: normal fast firmware minimum servo loop update time: dmc-4010 62.5 µ sec 31.25 µ sec dmc-4020 62.5 µ sec 31.25 µ sec dmc-4030 125 µ sec 62.5 µ sec dmc-4040 125 µ sec 62.5 µ sec dmc-4050 156.25 µ sec 93.75 µ sec dmc-4060 156.25 µ sec 93.75 µ ...

  • Page 209: Fast Update Rate Mode

    Fast update rate mode the dmc-40x0 can operate with much faster servo update rates than the default of every millisecond. This mode is known as ‘fast mode’ and allows the controller to operate with the following update rates: dmc-4010 31.25 µ sec dmc-4020 31.25 µ sec dmc-4030 62.5 µ sec dmc-4040 62....

  • Page 210

    Ordering options for the dmc-40x0 overview the dmc-40x0 can be ordered in many different configurations and with different options. This section provides information regarding the different options available on the dmc-40x0 motion controller, interconnect modules and internal amplifiers. For informa...

  • Page 211

    -16 bit – 16 bit analog inputs the -16 bit option provides 16 bit analog inputs on the dmc-40x0 motion controller. The standard resolution of the analog inputs is 12 bits. Part number ordering example: dmc-4010(-16bit)-c012-i000 iscntl – isolate controller power the iscntl option isolates the power ...

  • Page 212

    Step – differential step and direction outputs the step option configures the icm interconnect module with differential step and direction outputs. Single-ended step and direction outputs are standard. See the individual icm sections in integrated components for pinout information. Part number order...

  • Page 213

    Amp internal amplifier options isamp – isolation of power between each amp amplifier the isamp option separates the power pass-through between the axes 1-4 amplifier and the axes 5-8 amplifier. This allows the 2 internal amplifiers to be powered at separate voltages. If the iscntl option is not orde...

  • Page 214

    Power connectors for the dmc-40x0 overview the dmc-40x0 uses molex pitch mini-fit, jr.™ receptacle housing connectors for connecting dc power to the amplifiers, controller, and motors. This section gives the specifications of these connectors. For information specific to your galil amplifier or driv...

  • Page 215

    Cable connections for dmc-40x0 the dmc-40x0 requires the transmit, receive, and ground for slow communication rates. (i.E. 9600 baud) for faster rates the handshake lines are required. The connection tables below contain the handshake lines. Standard rs-232 specifications 25 pin serial connector (ma...

  • Page 216

    9 pin serial connector (male, d-type) standard serial port connections found on most computers. Pin # function 1 dcd 2 rxd 3 txd 4 rts 5 gnd 6 dsr 7 rts 8 cts 9 ri dmc-40x0 serial cable specifications cable to connect computer 25 pin to main serial port 25 pin (male - computer) 9 pin (female - contr...

  • Page 217

    4 rts 8 cts 3 txd 2 rxd 2 rxd 3 txd 1 cts 7 rts 5 gnd 5 gnd controller +5v 9 (jumper apwr if required) pin-out description for dmc-40x0 outputs motor command +/- 10 volt range signal for driving amplifier. In servo mode, motor command output is updated at the controller sample rate. In the motor off...

  • Page 218

    Inputs encoder, ma+, mb+ position feedback from incremental encoder with two channels in quadrature, cha and chb. The encoder may be analog or ttl. Any resolution encoder may be used as long as the maximum frequency does not exceed 22,000,000 quadrature states/sec. The controller performs quadrature...

  • Page 219

    Configuring the amplifier enable circuit icm-42000 and icm-42100 the following section details the steps needed to change the amplifier enable configuration for the dmc-40x0 controller with an icm-42000 or icm-42100. For detailed instruction on changing the amplifier enable configuration on a dmc-40...

  • Page 220

    Step 2: remove icm for dmc-4040 – proceed to step 3: configure circuit appendices • 211 dmc-40x0 user manual.

  • Page 221

    Dmc-4080 (steps 1 and 2) step 1: remove cover notes: 1. Cover removal: a. Remove jack screws (34 places) b. Remove #6-32x3/16” button head cover screws (4 places) 2. Lift cover straight up and away from unit. Dmc-40x0 user manual appendices • 212.

  • Page 222

    Step 2: remove icm(s) appendices • 213 dmc-40x0 user manual.

  • Page 223

    Dmc-4040 and dmc-4080 (step 3) step 3: configure circuit reference the instructions below for the desired configuration, and then proceed to step 4. +5v high amp enable sinking configuration (default) pg 215 +5v low amp enable sinking configuration pg 215 +5v high amp enable sourcing configuration p...

  • Page 224

    +5v high amp enable sinking configuration (default) +5v low amp enable sinking configuration appendices • 215 dmc-40x0 user manual default configuration shipped with controller when no specific setup is ordered. From default configuration: 1. Reverse rp2.

  • Page 225

    +5v high amp enable sourcing configuration +5v low amp enable sourcing configuration dmc-40x0 user manual appendices • 216 from default configuration: 1. Move u4 up one pin location on socket 2. Reverse rp2 3. Change jp1 to gnd 4. Change jp2 to +5v from default configuration: 1. Move u4 up one pin l...

  • Page 226

    +12v high amp enable sinking configuration (does not require the removal of metal) +12v low amp enable sinking configuration appendices • 217 dmc-40x0 user manual from default configuration: 1. Change jp1 to +12v from default configuration: 1. Reverse rp2 2. Change jp1 to +12v.

  • Page 227

    +12v high amp enable sourcing configuration +12v low amp enable sourcing configuration dmc-40x0 user manual appendices • 218 from default configuration: 1. Move u4 up one pin location on socket 2. Reverse rp2 3. Change jp1 to gnd 4. Change jp2 to +12v from default configuration: 1. Move u4 up one pi...

  • Page 228

    Isolated power high amp enable sinking configuration isolated power low amp enable sinking configuration appendices • 219 dmc-40x0 user manual aec1 = v+ aec2 = v- for +5v to +12v, rp6 = 820 ohms for +13v to +24v, rp6 = 4.7k ohms from default configuration: 1. Change jp1 to aec1 2. Change jp2 to aec2...

  • Page 229

    Isolated power high amp enable sourcing configuration isolated power low amp enable sourcing configuration dmc-40x0 user manual appendices • 220 aec1 = v- aec2 = v+ for +5v to +12v, rp6 = 820 ohms for +13v to +24v, rp6 = 4.7k ohms from default configuration: 1. Move u4 up one pin location on socket ...

  • Page 230

    For steps 4 and 5 with a dmc-4080 refer to dmc-4080 (steps 4 and 5) section below. Dmc-4040 (steps 4 and 5) step 4: replace icm appendices • 221 dmc-40x0 user manual.

  • Page 231

    Step 5: replace cover notes: 1. Cover installation: a. Install jack screws (20 places) b. Install #6-32x3/16” button head cover screws(4 places) dmc-40x0 user manual appendices • 222.

  • Page 232

    Dmc-4080 (steps 4 and 5) step 4: replace icm(s) appendices • 223 dmc-40x0 user manual.

  • Page 233

    Step 5: replace cover notes: 1. Cover installation: a. Install jack screws (34 places) b. Install #6-32x3/16” button head cover screws(4 places) dmc-40x0 user manual appendices • 224.

  • Page 234

    Coordinated motion - mathematical analysis the terms of coordinated motion are best explained in terms of the vector motion. The vector velocity, vs, which is also known as the feed rate, is the vector sum of the velocities along the x and y axes, vx and vy. Vs vx vy = + 2 2 the vector distance is t...

  • Page 235

    The first line describes the straight line vector segment between points a and b. The next segment is a circular arc, which starts at an angle of 180 ° and traverses -90 ° . Finally, the third line describes the linear segment between points c and d. Note that the total length of the motion consists...

  • Page 236

    The total motion time, tt, is given by: t d vs t s t a = + = 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. For example, the velocities along the x and y axes...

  • Page 237: Enet

    Example- communicating with opto-22 snap-b3000- enet controller is connected to opto-22 via handle f. The opto-22’s ip address is 131.29.50.30. The rack has the following configuration: digital inputs module 1 digital outputs module 2 analog outputs (+/-10v) module 3 analog inputs (+/-10v) module 4 ...

  • Page 238

    Jp #cfgloop,i conditional statement mbf=6,16,632+ (module*8),numofio*2,a[] configure i/o using modbus function code 16 where the starting register is 632+(module*8), number of registers is numofio*2 and a[] contains the data. En end #cferr label mg”unable to establish connection” message en end usin...

  • Page 239: Dmc-40X0/dmc-2200 Comparison

    Dmc-40x0/dmc-2200 comparison benefit dmc-40x0 dmc-2200 higher servo bandwidth up to 32khz update rate up to 8khz update rate faster processing power ~10x faster than dmc-20x0 increased program storage 2000lines x 80 characters 1000 lines x 80 characters increased array storage 16000 array elements i...

  • Page 240: List of Other Publications

    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 p...

  • Page 241: Contacting Us

    Contacting us galil motion control 270 technology way rocklin, ca 95765 phone: 916-626-0101 fax: 916-626-0102 e-mail address: support@galilmc.Com url: 370h http://galilmc.Com/ ftp: 371h http://galilmc.Com/ftp/ dmc-40x0 user manual appendices • 232.

  • Page 242: Warranty

    Warranty all controllers manufactured by galil motion control are warranted against defects in materials and workmanship for a period of 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 workm...

  • Page 243: Integrated Components

    Integrated components overview when ordered, the following components will reside inside the box of the dmc-40x0 motion controller. The amplifiers and stepper drivers provide power to the motors in the system, and the interconnect modules and communication boards provide the connections for the sign...

  • Page 244

    A7 – icm-42100 (-i100) sinusoidal encoder interpolation module the icm-42100 accepts sinusoidal encoder signals instead of digital encoder signals as accepted by the icm-42000 and the icm-42200. A8 – icm-42200 (-i200) interconnect module the icm-42200 provides a pin-out that is optimized for easy co...

  • Page 245: Description

    A1 – amp-430x0 (-d3040,-d3020) description the amp-43040 resides inside the dmc-40x0 enclosure and contains four transconductance, pwm amplifiers for driving brushless or brush-type servo motors. Each amplifier drives motors operating at up to 7 amps continuous, 10 amps peak, 20–80 vdc. The gain set...

  • Page 246: Electrical Specifications

    Electrical specifications the amplifier is a brush/brushless trans-conductance pwm amplifier. The amplifier operates in torque mode, and will output a motor current proportional to the command signal input. Supply voltage: 18-80 vdc continuous current: 7 amps peak current 10 amps nominal amplifier g...

  • Page 247: Operation

    Operation brushless motor setup note: if you purchased a galil motor with the amplifier, it is ready for use. No additional setup is necessary. To begin the setup of the brushless motor and amplifier, it is first necessary to have communications with the motion controller. Refer to the user manual s...

  • Page 248

    Figure a1-2 peak current operation with the amp-43040 and 43020, the user is also given the ability to choose between normal and high current bandwidth (au). In addition, the user can calculate what the bandwidth of the current loop is for their specific combination (aw). To select normal current lo...

  • Page 249

    Via the ta command. Ta n may be used to monitor the errors with n = 0, 1, 2, or 3. The command will return an eight bit number representing specific conditions. Ta0 will return errors with regard to under voltage, over voltage, over current, and over temperature. Ta1 will return hall errors on the a...

  • Page 250

    Over-temperature protection the controller is also equipped with over-temperature protection. Rev a and rev b amplifiers: if the average heat sink temperature rises above 100°c, then the amplifier will be disabled. Bit 2 of ta0 will be set when the over-temperature occurs on the a-d axis amplifier, ...

  • Page 251: A2 – Amp-43140 (-D3140)

    A2 – amp-43140 (-d3140) description the amp-43140 resides inside the dmc-40x0 enclosure and contains four linear drives for operating small, brush- type servo motors. The amp-43140 requires a ± 12-30 vdc input. Output power is 20 w per amplifier or 60 w total. The gain of each transconductance linea...

  • Page 252: Electrical Specifications

    Electrical specifications the amplifier is a brush type trans-conductance linear amplifier. The amplifier operates in torque mode, and will output a motor current proportional to the command signal input. Dc supply voltage: +/-12-30 vdc (bipolar) max current (per axis) 1.0 amps (100ma option) amplif...

  • Page 253: Operation

    Operation using external amplifiers use connectors on top of controller to access necessary signals to run external amplifiers. For more information on connecting external amplifiers, see connecting to external amplifiers in chapter 2. Elo input if the elo input on the controller is triggered, then ...

  • Page 254: A3 – Sdm-44040 (-D4040)

    A3 – sdm-44040 (-d4040) description the sdm-44040 resides inside the dmc-40x0 enclosure and contains four drives for operating two-phase bipolar step motors. The sdm-44040 requires a single 12-30 vdc input. The unit is user-configurable for 1.4 a, 1.0 a, 0.75 a, or 0.5 a per phase and for full-step,...

  • Page 255: Electrical Specifications

    Electrical specifications dc supply voltage: 12-30 vdc max current (per axis) 1.4 amps/phase amps (selectable with ag command) maximum step frequency: 6 mhz motor type: bipolar 2 phase mating connectors on board connector terminal pins power 6-pin mate-n-lok molex# 39-31-0060 molex#44476-3112 a,b,c,...

  • Page 256: Operation

    Operation the ag command sets the current on each axis, the lc command configures each axis’s behavior when holding position and the ya command sets the step driver resolution. These commands are detailed below, see also the command reference for more information: current level setup (ag command) ag...

  • Page 257

    Elo input if the elo input on the controller is triggered, then the amplifier will be shut down at a hardware level, the motors will be essentially in a motor off (mo) state. Ta3 will return a 3 and the #amperr routine will run when the elo input is triggered. To recover from an elo, an mo then sh m...

  • Page 258: A4 – Sdm-44140 (-D4140)

    A4 – sdm-44140 (-d4140) description the sdm-44140 resides inside the dmc-40x0 enclosure and contains four microstepping drives for operating two- phase bipolar stepper motors. The drives produce 64 microsteps per full step or 256 steps per full cycle which results in 12,800 steps/rev for a standard ...

  • Page 259: Electrical Specifications

    Electrical specifications dc supply voltage: 12-60 vdc max current (per axis) 3.0 amps (selectable with ag command) max step frequency: 6 mhz motor type: bipolar 2 phase switching frequency: 60 khz minimum load inductance: 0.5 mh mating connectors on board connector terminal pins power 6-pin mate-n-...

  • Page 260: Operation

    Operation the ag command sets the current on each axis and the lc command configures each axis’s behavior when holding position. These commands are detailed below: current level setup (ag command) ag configures how much current the sdm-44140 delivers to each motor. Four options are available: 0.5a, ...

  • Page 261: A5 – Cmb-41012 (-C012)

    A5 – cmb-41012 (-c012) description the cmb-41012 provides the connections for the ethernet and serial communication as well as the d-sub connector for the extended i/o. The cmb-41012 also contains the 8x2 character lcd. See chapter 3 for electrical specifications of extended i/o. Connectors for cmb-...

  • Page 262

    Rs-232-main port (male) standard connector and cable, 9pin pin signal 1 nc 2 txd 3 rxd 4 nc 5 gnd 6 nc 7 cts 8 rts 9 nc rs-232-auxiliary port (female) standard connector and cable, 9pin pin # signal 1 nc 2 txd 3 rxd 4 nc 5 gnd 6 nc 7 rts 8 cts 9 nc (5v with apwr jumper) rs-422-main port (non-standar...

  • Page 263

    Rs-422-auxiliary port (non-standard option) standard connector and cable when dmc-40x0 is ordered with rs-422 option. Pin # signal 1 cts- 2 rxd- 3 txd- 4 rts- 5 gnd 6 cts+ 7 rxd+ 8 txd+ 9 rts+ ethernet 100 base-t/10 base-t - kycon gs-ns-88-3.5 pin # signal 1 txp 2 txn 3 rxp 4 nc 5 nc 6 rxn 7 nc 8 nc...

  • Page 264

    Jumper description for cmb-41012 jumper label function (if jumpered) communications opt reserved mo when controller is powered on or reset, amplifier enable lines will be in a motor off state. A sh will be required to re- enable the motors. 38.4k baud rate setting – see 367h table below 19.2k baud r...

  • Page 265: A6 – Icm-42000 (-I000)

    A6 – icm-42000 (-i000) description the icm-42000 resides inside the dmc-40x0 enclosure and breaks out the internal cpu board connector into convenient d-sub connectors for interface to external amplifiers and i/o devices.The icm-42000 provides a 15-pin hd d-sub connector for the encoders on each axi...

  • Page 266

    Icm-42000 i/o (e-h) 44 pin hd d-sub connector (female) 4080 for dmc-4050 thru dmc-4080 controllers only. Pin# label description pin# label description pin# label description 1 err error output 16 rst reset input 31 gnd digital ground 2 di9 digital input 9 / e latch 17 incom input common 32 di10 digi...

  • Page 267

    Icm-42000 external driver (e-h) 44 pin hd d-sub connector (male) 4080 for dmc-4050 thru dmc-4080 controllers only. Pin# label description pin# label description pin# label description 1 res reserved 16 stpe pwm / step e 31 stpf pwm / step f 2 stpg pwm / step g 17 res reserved 32 res reserved 3 res r...

  • Page 268

    Icm-42000 encoder 15 pin hd d-sub connector (female) pin # label description 1 mi+ i+ index pulse input 2 mb+ b+ main encoder input 3 ma+ a+ main encoder input 4 ab+ b+ aux encoder input 5 gnd digital ground 6 mi- i- index pulse input 7 mb- b- main encoder input 8 ma- a- main encoder input 9 aa- a- ...

  • Page 269

    Jumper description for icm-42000 jumper label function (if jumpered) amplifier enable gnd connect aecom1 or aecom2 to digital ground +5v connect aecom1 or aecom2 to controller +5v +12v connect aecom1 or aecom2 to controller +12v aec1 connect aecom1 to aec1 pin on external driver d-sub aec2 connect a...

  • Page 270: A7 – Icm-42100 (-I100)

    A7 – icm-42100 (-i100) description the icm-42100 option resides inside the dmc-40x0 enclosure and accepts sinusoidal encoder signals instead of digital encoder signals as accepted by the icm-42000. The icm-42100 provides interpolation of up to four 1-volt differential sinusoidal encoders resulting i...

  • Page 271

    9 homc home switch c 24 rlsc reverse limit switch c 39 flsd forward limit switch d 10 homd home switch d 25 rlsd reverse limit switch d 40 gnd digital ground 11 opwr output power 26 n/c no connect 41 do1 digital output 1 12 do3 digital output 3 27 do2 digital output 2 42 do4 digital output 4 13 do6 ...

  • Page 272

    14 n/c no connect 29 n/c no connect 44 n/c no connect 15 +5v +5v 30 n/c no connect notes: 1 negative differential motor command outputs when (diff) option is ordered on icm. Ex dmc-4040-c012-i000(diff). These pins may be used for other functions when (diff) option is not ordered. A7 – icm-42100 (-i1...

  • Page 273

    Icm-42100 external driver (e-h) 44 pin hd d-sub connector (male) 4080 for dmc-4050 thru dmc-4080 controllers only. Pin# label description pin# label description pin# label description 1 res reserved 16 stpe pwm / step e 31 stpf pwm / step f 2 stpg pwm / step g 17 res reserved 32 res reserved 3 res r...

  • Page 274

    Icm-42100 encoder 15 pin hd d-sub connector (female) pin # label description 1 mi+ index pulse input - v 0 + (sin/cos) or i+ (digital) 2 mb+ main encoder input - v 2 + (sin/cos) or b+ (digital) 3 ma+ main encoder input - v 1 + (sin/cos) or a+ (digital) 4 ab+ aux encoder input- b+ (digital) 5 gnd dig...

  • Page 275: Theory of Operation

    Theory of operation traditional quadrature rotary encoders work by having two sets of lines inscribed radially around the circumference of an optical disk. A light is passed through each of these two sets of lines. On the other side of the gratings, photo sensors detect the presence (or absence) of ...

  • Page 276

    The user in the range of 2 5 through 2 12 points per sinusoidal cycle via af command. See the af command in the command reference for more informaiton. The unique position within one cycle can be read using the following equation: = a b 1 - n v v tan 360 2 fine the overall position can be determined...

  • Page 277: A8 – Icm-42200 (-I200)

    A8 – icm-42200 (-i200) description the icm-42200 interconnect option resides inside the dmc-40x0 enclosure and provides a pin-out that is optimized for easy connection to external drives. The icm-42200 uses 26-pin hd d-sub connectors for each axis that includes encoder, limit, home, and motor comman...

  • Page 278

    Icm-42200 dmc-40x0 i/o (e-h) 44 pin hd d-sub connector (female) 4080 for dmc-4050 thru dmc-4080 controllers only. Pin# label description pin# label description pin# label description 1 err error output 16 rst reset input 31 gnd digital ground 2 di9 digital input 9 / e latch 17 incom input common 32 ...

  • Page 279

    Icm-42200 analog 15 pin d-sub connector (male) pin # label description 1 agnd analog ground 2 ai1 analog input 1 3 ai3 analog input 3 4 ai5 analog input 5 5 ai7 analog input 7 6 agnd analog ground 7 -12v -12v 8 +5v +5v 9 agnd analog ground 10 ai2 analog input 2 11 ai4 analog input 4 12 ai6 analog in...

  • Page 280: Index

    Index abort.......................................................................................................................................................86, 92, 177, 179, 208 absolute position......................................................................................................

  • Page 281

    Deceleration.......................................................................................................................................................................157 digital filter..........................................................................................................

  • Page 282

    Home inputs.......................................................................................................................................................................124 homing...................................................................................................................

  • Page 283

    Error limit.................................................................18, 20, 25, 39, 41 pwm..............................................................................................................................................................................5, 208 quadrature..............

  • Page 284

    Variable....................................................................................................................................14, 29, 75, 130, 160, 161, 164 variable............................................................................................................................