USER MANUAL DMC-3425 Manual Rev. 1.1b By Galil Motion Control, Inc. Galil Motion Control, Inc. 3750 Atherton Road Rocklin, California 95765 Phone: (916) 626-0101 Fax: (916) 626-0102 Internet Address: support@galilmc.com URL: www.galilmc.
Contents Contents i Chapter 1 Overview 1 Introduction ............................................................................................................................... 1 Overview of Motor Types.......................................................................................................... 2 Standard Servo Motors with +/- 10 Volt Command Signal......................................... 2 Stepper Motor with Step and Direction Signals ................................................
Example 5 - Velocity Control (Jogging) ................................................................... 33 Example 6 - Operation Under Torque Limit ............................................................. 33 Example 7 - Interrogation.......................................................................................... 33 Example 8 - Operation in the Buffer Mode ............................................................... 33 Example 9 - Motion Programs..........................................
Controller Response to DATA ................................................................................................ 63 Interrogating the Controller ..................................................................................................... 64 Interrogation Commands ........................................................................................... 64 Summary of Interrogation Commands ......................................................................
Example..................................................................................................................... 99 Motion Smoothing ................................................................................................................. 100 Using the IT and VT Commands:............................................................................ 100 Example................................................................................................................... 100 Homing .....
Displaying Variables and Arrays............................................................................. 137 Interrogation Commands ......................................................................................... 137 Formatting Variables and Array Elements .............................................................. 139 Converting to User Units......................................................................................... 140 Hardware I/O ............................................
Appendices 171 Electrical Specifications ........................................................................................................ 171 Servo Control .......................................................................................................... 171 Input/Output ............................................................................................................ 171 Power Requirements...........................................................................................
Chapter 1 Overview Introduction The DMC-3425 provides a highly versatile, powerful form of distributed control where multiple DMC3425 controllers can be linked together on the Ethernet. One DMC-3425 is designated as a “master” that receives all commands from the host computer and passes them to the other “slave” DMC-3425 controllers. Efficient, quick communications are realized as this approach eliminates the usual, multiple communication links between the host computer and each controller.
The DMC-3425 is designed for stand-alone applications and provides non-volatile storage for programs, variables and array elements. This manual uses ‘DMC-3425’ to refer to the distributed control E-series from Galil. However, most functions described in this manual are available using either the DMC-3425 or the DMC-3415. If a function is specific to only one of the controllers, this will be explicitly stated. Overview of Motor Types The DMC-3425 can provide the following types of motor control: 1.
The DMC-3415 can control BLMs equipped with Hall sensors as well as without Hall sensors. If hall sensors are available, once the controller has been setup, the controller will estimate the commutation phase upon reset. This allows the motor to function immediately upon power up. The Hall effect sensors also provide a method for setting the precise commutation phase. Chapter 2 describes the proper connection and procedure for using sinusoidal commutation of brushless motors.
DMC-3425 Functional Elements The DMC-3425 circuitry can be divided into the following functional groups as shown in Figure 1.1 and discussed below.
General I/O The DMC-3415 provides interface circuitry for 7 TTL inputs and 3 TTL outputs. In addition, the controller provides two 12-bit analog inputs. The general inputs can also be used for triggering a highspeed positional latch for each axis. NOTE: In order to accommodate 2 axes on the DMC-3425, many of the general I/O features become dedicated I/O for the second axis. The standard DMC-3425 will have 3 TTL inputs, 3 TTL outputs and 2 analog inputs.
For step motors, the amplifiers should accept step and direction signals. Encoder An encoder translates motion into electrical pulses that are fed back into the controller. The DMC-3425 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. Quadrature encoders may be either single-ended (CHA and CHB) or differential (CHA,CHA-, CHB,CHB-).
Chapter 2 Getting Started The DMC-3425 Motion Controller * MO SMX SMY JP2 +12 +5 +5 G G -12 9-Pin DSub RS232 serial port J6 DMC-1415 REV D U4 GALIL MOTION CONTROL MADE IN USA U1 6 Pin Molex Power Connector RAM +12-12 +5V/Gnd Test Points +5 G Daughter card connector for DB-14064 Extended I/O card +12V/-12V Test Points Stepper motor/Motor off configuration jumpers Ethernet network IC Motorola 68331 J4 A8 A4 A2 A1 Master reset/baud rate jumpers J1 U10 GL-1800 U2 J5 MRST UPGD 1200 9600 JP
Elements You Need Before you start, you must get all the necessary system elements. These include: 1. (1) DMC-3425 or DMC-3415, (1) 37-pin cable (order Cable -37). 2. Servo motor(s) with encoders or stepper motors. 3. Appropriate motor drive - servo amp (Power Amplifier or AMP-1460) or stepper drive. 4. Power Supply for Amplifier 5. +5V, ±12V supply for DMC-3425 6. Communication CD from Galil 7. WSDK Servo Design Software (not necessary, but strongly recommended) 8.
Step 1. Determine Overall Motor Configuration Before setting up the motion control system, the user must determine the desired motor configuration. The DMC-3425 can control standard brush or brushless servo motors, sinusoidally commutated brushless motors or stepper motors. For control of other types of actuators, such as hydraulics, please contact Galil.
there is a power fault during a firmware update. If EEPROM corruption occurs, your controller may not operate properly. In this case, install the UPGD Jumper and use the update firmware function on the Galil Smart Terminal or WSDK to re-load the system firmware. Setting the Baud Rate on the DMC-3425 The jumpers labeled “9600” and “1200” at JP1 allow the user to select the serial communication baud rate.
Axis Configuration Jumpers When using the HC automatic configuration, jumpers must be set to indicate which controller is the master and which controllers are slaves. Depending on the configuration of the jumpers, a controller will be set up as either the A (B) master or any of the axes slaves. The 8-pin jumper, found at location J4 next to the Molex power connector, is used to select axes configurations.
port is configured as DATASET. Your computer or terminal must be configured as a DATATERM for full duplex, no parity, 8 bits data, one start bit and one stop bit. Your computer needs to be configured as a "dumb" terminal that sends ASCII characters as they are typed to the DMC-3425. Connections to the controller for Ethernet communication are covered in Step 5. 3. If using the card level version, apply ±12V and +5V power to the J5 connector.
Using Galil Software for Windows In order for the Windows software to communicate with a Galil controller, the controller must be registered in the Windows Registry. To register a controller, you must specify the model of the controller, the communication parameters, and other information. The registry is accessed through the Galil software, such as WSDK or DMCSmartTerm.
After selecting Next, the registry information will show a default Comm Port of 1 and a default Comm Speed of 19200 appears. This information should be changed as necessary to reflect the computers Comm Port and the baud rate set by the controller's baud rate jumpers. Once you have set the appropriate Registry information for your controller, Select Finish and close the registry window. You will now be able to communicate with the DMC-3425. Within WSDK, select File and Connect to Controller.
the entry has been selected, click on the OK button. If the software has successfully established communications with the controller, the registry entry will be displayed at the top of the screen. If you are not properly communicating with the controller, the program will pause for 3-15 seconds. The top of the screen will display the message “Status: not connected with Galil motion controller” and the following error will appear: “STOP - Unable to establish communication with the Galil controller.
After Next is pressed, the next screen will allow the IP address to be selected and assigned. Enter the IP address obtained from your system administrator into the box IP Address. Select the button corresponding to the protocol in which you wish to communicate with the controller, UDP or TCP. If the IP address has not been already assigned to the controller, click on ASSIGN IP ADDRESS.
ASSIGN IP ADDRESS will check the controllers that are linked to the network to see which ones do not have an IP address. The program will then ask you whether you would like to assign the IP address you entered to the controller with the specified serial number. Click on YES to assign it, NO to move to next controller, or CANCEL to not save the changes. If there are no controllers on the network that do not have an IP address assigned, the program will state this.
A signal breakout board of some type is strongly recommended. If you are using a breakout board from a third party, consult the documentation for that board to insure proper system connection. If you are using the ICM-1460 or AMP-1460 with the DMC-3425, connect the 37-pin cable between the controller and interconnect module. Here are the first steps for connecting a motion control system: Step A. Connect the motor to the amplifier with no connection to the controller.
The DMC-3425 accepts single-ended or differential encoder feedback with or without an index pulse. If you are not using the AMP-1460 or the ICM-1460, you will need to consult the appendix for the encoder pinouts for connection to the motion controller. The AMP-1460 and the ICM-1460 can accept encoder feedback from a 10-pin ribbon cable or individual signal leads. For a 10-pin ribbon cable encoder, connect the cable to the protected header connector labeled JP2.
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. Step by step directions on servo system setup are also included on the WSDK (Windows Servo Design Kit) software offered by Galil. See section on WSDK for more details.
Once the parameters have been set, connect the analog motor command signal (ACMD) to the amplifier input. Issue the servo here command to turn the motors on. To test the polarity of the feedback, command a move with the instruction: SH Servo Here to turn motors on PR 1000 Position relative 1000 counts BG Begin motion When the polarity of the feedback is wrong, the motor will attempt to run away. The controller should disable the motor when the position error exceeds 2000 counts.
J2 ICM-1460 Encoder lines VAMP+ Power Supply Motor 1 AMPGND Motor Motor 2 Figure 2.
ACMD AMPEN GND ICM-1460 Description Connection Channel A+ Channel B+ Channel AChannel BIndex Index + Gnd +5V MA+ MB+ MAMBII+ GND 5V Red Wire Red Connector Black Wire Black Connector 11 INHIBIT 4 +REF IN 2 SIGNALGND Figure 2.4 - System Connections with a separate amplifier (MSA 12-80). This diagram shows the connections for a standard DC Servo Motor and encoder. Step 8b. Connect brushless motor for sinusoidal commutation Please consult the factory before operating with sinusoidal commutation.
generated by the controller. The first signal is the main controller motor output, ACMD. The second signal utilizes the second DAC on the controller and is brought out on the ICM-1460 at pin 38 (ACMD2). It is not necessary to be concerned with cross-wiring the 1st and 2nd signals. If this wiring is incorrect, the setup procedure will alert the user (Step D). Step C. Specify the Size of the Magnetic Cycle. Use the command, BM, to specify the size of the brushless motors magnetic cycle in encoder counts.
If Hall Sensors are Not Available: Without hall sensors, the controller will not be able to estimate the commutation phase of the brushless motor. In this case, the controller could become unstable until the commutation phase has been set using the BZ command (see next step). It is highly recommended that the motor off command be given before executing the BN command. In this case, the motor will be disabled upon power up or reset and the commutation phase can be set before enabling the motor. Step F.
PRA=-1*(_BZA) Move A motor close to zero commutation phase BGA Begin motion on A axis AMA Wait for motion to complete on A axis BZA=-1 Drive motor to commutation phase zero and leave motor on Method 3. Use the command, BC. This command uses the hall transitions to determine the commutation phase. Ideally, the hall sensor transitions will be separated by exactly 60° and any deviation from 60° will affect the accuracy of this method.
The DMC-3425 outputs STEPY signals on the ICM-1460 terminal labeled ERROR, and outputs DIRX on the ICM-1460 terminal labeled AMPEN. X-axis connections are identical to the DMC-3415. Consult the documentation for your step motor amplifier for proper connections. Step C. Configure DMC-3425 for motor type using MT command. You can configure the DMC-3425 for active high or active low pulses. Use the command MT 2 for active high step motor pulses and MT -2 for active low step motor pulses.
Step 10. Configure the Distributed Control System The final step in Getting Started with the DMC-3425 distributed control system is to configure the individual controllers as their respective axes in the system. For more information on the operation of distributed control, please refer to Chapter 4. Configuring Operation for Distributed Control There are two methods for configuring a distributed control system; an automatic mode or a manual mode.
Step 1. Assign IP address to master controller either through IA command or through BOOTP utility in the Galil Software Registry. You may then burn this IP address into the master with the BN in order to keep this address during resets. Step 2. Place jumpers on each slave controller indicating which slave corresponds to which axes in the system. See section “Step 2. Configuring Jumpers on the DMC-3425”. Step 3.
IOC-7007 (1) – 10.10.50.26 Automatic Configuration Example The example below shows a typical setup file for the DMC-3425 distributed control system using the automatic configuration. This example is for a UDP system, with one handle used per slave. The IP addresses of the slaves are unassigned, as this is the simplest way for the slave controllers to be configured.
Note that only one of the 2 axes (per DMC-3425) needs to be assigned with the CH command. 4. In order for the Master controller to be able to make decisions based on the status of the slave/server controllers, it is necessary for the slaves to generate data records giving their current status. The record is sent at a rate set by the QW command. The QW command must be executed by the master before the slave can issue a record under any method. The format of the command is QWh=n where h is the handle.
Design Examples Here are a few examples for tuning and using your controller. These examples are shown for a single axis system only, but can be modified to test up to 8 axes within a distributed control network. See Chapter 6 Programming Motion for more examples of multi-axis programming. Example 1 - System Set-up This example assigns the system filter parameters, error limits and enables the automatic error shut-off.
Example 5 - Velocity Control (Jogging) Objective: Drive the motor at specified speeds. Instruction Interpretation JG 10000 Set Jog Speed AC 100000 Set acceleration DC 50000 Set deceleration BGA Start motion on A axis after a few seconds, command: JG –40000 New speed and Direction TVA Returns speed This causes velocity changes including direction reversal.
Example 9 - Motion Programs Motion programs may be edited and stored in the memory. They may be executed at a later time. The instruction ED Edit mode moves the operation to the editor mode where the program may be written and edited. For example, in response to the first ED command, the Galil Windows software will open a simple editor window.
SP 5000 Set speed BGA Start motion AD 4000 Wait until A moved 4000 TPA Tell position EN End program To start the program, command: XQ #B Execute Program #B Example 12 - Control Variables Objective: To show how control variables may be utilized.
V2=_TP Set variable V2 to the current position JP#C,@ABS[V2]<2 Exit if error small MG V2 Report value of V2 V1=V1-1 Decrease Offset JP #B Return to top of program #C;EN End This program starts with a large offset and gradually decreases its value, resulting in decreasing error.
Chapter 3 Connecting Hardware Overview The DMC-3425 provides digital inputs for A and B forward limit, A and B reverse limit, A and B home input and abort input. The controller also has 3 uncommitted, TTL inputs, 3 TTL outputs and 2 analog inputs (12-bit). The DMC-3415 provides a forward and reverse limit, home input and abort input. The controller also has 7 uncommitted, TTL inputs, 3 TTL outputs and 2 analog inputs (12-bit). This chapter describes the inputs and outputs and their proper connection.
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. A reference point can be a point in space or an encoder index pulse.
NOTE: The effect of an Abort input is dependent on the state of the off-on-error function 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. If the Off-On-Error function is disabled, the motor will decelerate to a stop as fast as mechanically possible and the motor will remain in a servo state.
to the ground, GND, of the interconnect and connect the GND of the interconnect to the GND of the amplifier. DMC-3425 ICM-1460 +12V Connection to +5V or +12V made through jumper location JP1. Removing the jumper allows the user to connect their own supply to the desired voltage level (Up to24V). +5V AMPEN SERVO MOTOR AMPLIFIER GND 37 - 40 Pin Cable ACMD 7407 Open Collector Buffer. The Enable signal can be inverted by using a 7406. Analog Switch Figure 3.
TTL Outputs The DMC-3425 provides three general use outputs, an output compare and 4 status LED’s. The general use outputs are TTL and are accessible through the ICM-1460 as OUT1 thru OUT3. These outputs can be turned On and Off with the commands SB (Set Bit), CB (Clear Bit), OB (Output Bit) and OP (Output Port). For more information about these commands, see the Command Reference. The value of the outputs can be checked with the operand _OP, the function @OUT[] and the distributed control command TZ.
THIS PAGE LEFT BLANK INTENTIONALLY 42 • Chapter 3 Connecting Hardware DMC-3425
Chapter 4 Communication Introduction The DMC-3425 has one RS232 port and one Ethernet port. The RS-232 port is the data set. The Ethernet port is a 10Base-T link. The RS-232 is a standard serial link with communication baud rates up to 19.2kbaud. For initial setup, Galil recommends starting with the RS-232 interface. The RS-232 provides a simplified interface that minimizes the potential problems for first time setup.
OFF ON 1200 Handshaking Modes The RS232 port is configured for hardware handshaking. In this mode, the RTS and CTS lines are used. The CTS line will go high whenever the DMC-3425 is not ready to receive additional characters. The RTS line will inhibit the DMC-3425 from sending additional characters. Note: The RTS line goes high for inhibit. This handshake procedure ensures proper communication especially at higher baud rates.
CAUTION: Be sure that there is only one BOOT-P server running. If your network has DHCP or BOOT-P running, it may automatically assign an IP address to the controller upon linking it to the network. In order to ensure that the IP address is correct, please contact your system administrator before connecting the controller to the Ethernet network. The second method for setting an IP address is to send the IA command through the DMC-3425 main RS-232 port.
LOCAL OPERATION Host Computer RS-232 or Ethernet DMC-3425 A and B Axes DMC-3425 A and B Axes DMC-3425 A and B Axes DMC-3425 A and B Axes The DMC-3425 supports Galil’s Distributed Control System. This allows up to 4 DMC-3425s to be connected together as a single virtual 8-axis controller. In this system, one of the controllers is designated as the master. The master can receive commands from the host computer that apply to all of the axes in the system.
situations; using Local Mode for setup and testing is useful since this isolates the controller. Specific modes of motion require operation in Local Mode. Also, each controller can have a program, including the slave controllers. When a slave controller has a program, this program would always operate in Local Mode. Operation of Distributed Control For most commands it is not necessary to be conscious of whether an axis is local or remote.
Digital Outputs For outputs, the SB and CB commands are used to command individual output ports, while the OP command is used for setting bytes of data. The SB and CB commands may be set globally through the master, while the OP command must be sent to the slave using the SA command. Outputs may be set globally according to the following numbering scheme: Bitnum = (Slave Handle * 100) + Output Bit. For example: Set Bit 2 on a UDP distributed slave using the E handle for communication.
The Galil Registry has an option to disable the opening of the multicast handle on the DMC-3425. By default this multicast handle will be opened. Unsolicited Message Handling Anytime a controller generates an internal response from a program, generates an internal error or sends a message from a program using the MG command, this is termed an unsolicited message. There are two software commands that will configure how the controller handles these messages; the CW and the CF command.
(1 – 8) and SlotNum is the slot number of the IOM output module to be written to (0 – 6). m is the decimal representation of the data written to the 4 (0 – 15) or 8 (0 – 255) output points of the IOM module. Please refer to the IOC-7007 manual for complete information on how to configure, read and write information to the IOC-7007 Ethernet I/O module. Modbus Support The Modbus protocol supports communication between masters and slaves. The masters may be multiple PC's that send commands to the controller.
The DMC-3425 provides three levels of Modbus communication. The first level allows the user to create a raw packet and receive raw data. It uses the MBh command with a function code of –1. The format of the command is MBh = -1,len,array[] where len is the number of bytes array[] is the array with the data The second level incorporates the Modbus structure. This is necessary for sending configuration and special commands to an I/O device. The formats vary depending on the function code that is called.
Note: This function is only available if the system has been configured using the automatic handle configuration command, HC. Waiting on Handle Responses The operation of the distributed network has commands being sent to the master controller, which then distributes these commands to the slave axes in the system. For example, the command PR10,10,10,10,10,10,10,10 sent to the master becomes packets of PR10,10 sent by the master to each of the slaves in the system.
DMC-3425 UB general output bank 2 (DB-14064) I block UB general output bank 3 (DB-14064) I block UB general output bank 4 (DB-14064) I block UB general output bank 5 (DB-14064) I block UB general output bank 6 (DB-14064) I block UB general output bank 7 (DB-14064) I block UB general output bank 8 (DB-14064) I block UB general output bank 9 (DB-14064) I block UB error code I block UB general status I block UW segment count of coordinated move for S plane S block UW coordina
SW C axis analog input C block UW D axis status D block UB D axis switches D block UB D axis stopcode D block SL D axis reference position D block SL D axis motor position D block SL D axis position error D block SL D axis auxiliary position D block SL D axis velocity D block SW D axis torque D block SW D axis analog input D block UW E axis status E block UB E axis switches E block UB E axis stopcode E block SL E axis reference position E block SL E axis motor p
SL H axis motor position H block SL H axis position error H block SL H axis auxiliary position H block SL H axis velocity H block SW H axis torque H block SW H axis analog input H block NOTE: UB = Unsigned Byte, UW = Unsigned Word, SW = Signed Word, SL = Signed Long Word Explanation of Status Information and Axis Switch Information Header Information - Byte 0, 1 of Header: BIT 15 1 BIT 14 N/A BIT 13 BIT 12 N/A N/A BIT 11 N/A BIT 10 BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 I Block Presen
Axis Status Information (2 Byte) BIT 15 BIT 14 BIT 13 BIT 12 BIT 11 BIT 10 BIT 9 BIT 8 Move in Progress Mode of Motion Mode of Motion PA only Home (HM) in Progress 1st Phase of HM complete 2nd Phase of HM complete or FI command issued Mode of Motion PA or PR (FE) Find Edge in Progress BIT 0 BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 Negative Direction Move Mode of Motion Motion is slewing Motion is stopping due to ST or Limit Switch Motion is making final decel.
Using Third Party Software Galil supports ARP, BOOT-P, and Ping, which are utilities for establishing Ethernet connections. ARP is an application that determines the Ethernet (hardware) address of a device at a specific IP address. BOOT-P is an application that determines which devices on the network do not have an IP address and assigns the IP address you have chosen to it. Ping is used to check the communication between the device at a specific IP address and the host computer.
THIS PAGE LEFT BLANK INTENTIONALLY 58 • Chapter 4 Communication DMC-3425
Chapter 5 Command Basics Introduction The DMC-3425 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-3425 instruction set is BASIC-like and easy to use. Instructions consist of two uppercase letters that correspond phonetically with the appropriate function.
PR is the two character instruction for position relative. 4000 is the argument which represents the required position value in counts. The terminates the instruction. The space between PR and 4000 is optional. For specifying data for the A,B,C and D axes, commas are used to separate the axes. If no data is specified for an axis, a comma is still needed as shown in the examples below. If no data is specified for an axis, the previous value is maintained.
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. The 4 bytes are specified in hexadecimal format. Header Format: Byte 1 Specifies the command number between 80 to FF. The complete binary command number table is listed below.
Datafields Format Datafields must be consistent with the format byte and the axes byte.
IT 93 CD be OB e9 FA 94 DT bf SB ea FV 95 ET c0 CB eb GR 96 EM c1 II ec DP 97 EP c2 EI ed DE 98 EG c3 AL ee 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 FE
Interrogating the Controller Interrogation Commands The DMC-3425 has a set of commands that directly interrogate the controller. When the command is 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 changed using the Position Format (PF), Variable Format (VF) and Leading Zeros (LZ) command. See Chapter 7 and the Command Reference.
The Command Reference denotes all commands which have an equivalent operand as "Used as an Operand". Also, see description of operands in Chapter 7. Command Summary For a complete command summary, see Command Reference manual.
THIS PAGE LEFT BLANK INTENTIONALLY 66 • Chapter 5 Command Basics DMC-3425
Chapter 6 Programming Motion Overview The DMC-3425 provides many 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. Global vs. Local Operation Each DMC-3425 controls two axes of motion, referred to as A and B. The host computer can communicate directly with any DMC-3425 using an Ethernet or RS-232 connection.
GLOBAL OPERATION Host Computer RS-232 or Ethernet DMC-3425 A and B Axes Ethernet DMC-3425 C and D Axes DMC-3425 E and F Axes DMC-3425 G and H Axes The controllers may operate under both Local and/or Global mode. In general, operating in Global mode simplifies controlling the entire system. However, Local Mode operation is necessary in some situations; Using local mode for setup and testing is useful since this isolates the controller. Specific modes of motion require operation in Local Mode.
Vector Motion 2-D motion path consisting of arc segments and linear segments, such as engraving or quilting. Vector velocity, vector acceleration and vector deceleration are specified. The vector motion follows the prescribed velocity profile. VM VP, CR VS, VA, VD NO YES Electronic Gearing Motion in which one axis must follow another axis such as conveyer speed. Once setup, the slave axis will follow the master position.
Command Summary - Independent Axis COMMAND DESCRIPTION PR a,b,c,d Specifies relative distance PA a,b,c,d Specifies absolute position SP a,b,c,d Specifies slew speed AC a,b,c,d Specifies acceleration rate DC a,b,c,d Specifies deceleration rate BG ABCD Starts motion ST ABCD Stops motion before end of move IP a,b,c,d Changes position target IT a,b,c,d Time constant for independent motion smoothing AM ABCD Trippoint for profiler complete MC ABCD Trippoint for "in position" The lower case
C-Axis 10000 count/sec Speed 500000 counts/sec2 Acceleration/Deceleration 100 counts Position 5000 counts/sec Speed 500000 counts/sec Acceleration/Deceleration This example will specify a relative position movement on A, B and C axes. The movement on each axis will be separated by 20 msec. Fig. 6.1 shows the velocity profiles for the A,B and C axis. Instruction Interpretation #A Begin Program PR 1000,500,100 Specify relative position movement of 1000, 500 and 100 counts for A,B and C axes.
Independent Jogging The jog mode of motion is very flexible because speed, direction and acceleration can be changed during motion. The user specifies the jog speed (JG), acceleration (AC), and the deceleration (DC) rate for each axis. The direction of motion is specified by the sign of the JG parameters. When the begin command is given (BG), the motor accelerates up to speed and continues to jog at that speed until a new speed or stop (ST) command is issued.
Instruction Interpretation #A Label AC 20000,,20000 Specify A,C acceleration of 20000 cts / sec DC 20000,,20000 Specify A,C deceleration of 20000 cts / sec JG 50000,,-25000 Specify jog speed and direction for A and C axis BG A Begin A motion AS A Wait until A is at speed BG C Begin C motion EN Joystick Jogging The jog speed can also be changed using an analog input such as a joystick. Assume that for a 10 Volt input the speed must be 50000 counts/sec.
The Linear End (LE) command must be used to specify the end of a linear move sequence. This command tells the controller to decelerate to a stop following the last LI command. If an LE command is not given, an Abort AB1 must be used to abort the motion sequence. It is the responsibility of the user to keep enough LI segments in the DMC-3425 sequence buffer to ensure continuous motion.
LE End linear segments BGS Begin motion sequence EN Program end Changing Feedrate: The command VR n allows the feedrate, VS, to be scaled between 0 and 10 with a resolution of .0001. This command takes effect immediately and causes VS to be 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. For example, VR .5 results in the specification VS 2000 to be divided in half.
Example Linear Interpolation Motion In this example, the AB system is required to perform a 90° turn. In order to slow the speed around the corner, we use the AV 4000 trippoint, which slows the speed to 1000 count/s. Once the motors reach the corner, the speed is increased back to 4000 cts / s. Interpretation Instruction #LMOVE Label DP 0,0 Define position of A and B axes to be 0 LMAB Define linear mode between A and B axes.
30000 27000 POSITION B 3000 0 0 4000 36000 40000 POSITION A FEEDRATE 0 0.1 0.5 0.6 TIME (sec) VELOCITY A-AXIS TIME (sec) VELOCITY B-AXIS TIME (sec) Figure 6.2 - Linear Interpolation Example - Multiple Moves This example makes a coordinated linear move in the AB plane. The Arrays VA and VB are used to store 750 incremental distances which are filled by the program #LOAD.
COUNT=0 Initialize Counter N=10 Initialize position increment #LOOP LOOP VA [COUNT]=N Fill Array VA VB [COUNT]=N Fill Array VB N=N+10 Increment position COUNT=COUNT+1 Increment counter JP #LOOP,COUNT<750 Loop if array not full #A Label LM AB Specify linear mode for AB COUNT=0 Initialize array counter #LOOP2;JP#LOOP2,_LM=0 If sequence buffer full, wait JS#C,COUNT=500 Begin motion on 500th segment LI VA[COUNT],VB[COUNT] Specify linear segment COUNT=COUNT+1 Increment array counter
Up to 511 segments of CR or VP may be specified in a single sequence and must be ended with the command VE. The motion can be initiated with a Begin Sequence (BGS) command. Once motion starts, additional segments may be added. The Clear Sequence (CS) command can be used to remove previous VP and CR commands that were stored in the buffer prior to the start of the motion. To stop the motion, use the instructions STS or AB1. ST stops motion at the specified deceleration. AB1 aborts the motion instantaneously.
Compensating for Differences in Encoder Resolution: By default, the DMC-3425 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 that represent the ratio of the encoder resolutions. For more information refer to ES in the Command Reference.
Example: Traverse the path shown in Fig. 6.3. Feedrate is 20000 counts/sec. Plane of motion is AB Instruction Interpretation VM AB Specify motion plane VS 20000 Specify vector speed VA 1000000 Specify vector acceleration VD 1000000 Specify vector deceleration VP -4000,0 Segment AB CR 1500,270,-180 Segment BC 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.
Electronic Gearing (Local Mode) This mode allows one axis to be electronically geared to the other axis. The master 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 axis. GR n,n specifies the gear ratios for the slaves where the ratio may be a number between +/-127.9999 with a fractional resolution of .0001.
For example, assume that a gantry is driven by two axes, A and B, one on each side. This requires the gantry mode for strong coupling between the motors. The A-axis is the master and the B-axis is the follower. To synchronize B with the commanded position of A, use the instructions: GA, CA Specify the commanded position of A as master for B.
In the electronic cam mode, the position of the master is always expressed within one cycle. In this example, the position of a is always expressed in the range between 0 and 6000. Similarly, the slave position is also redefined such that it starts at zero and ends at 1500. At the end of a cycle when the master is 6000 and the slave is 1500, the positions of both a and b are redefined as zero. To specify the master cycle and the slave cycle change, we use the instruction EM.
ET[0]=,0 ET[1]=,3000 ET[2]=,2250 ET[3]=,1500 This specifies the ECAM table. Step 5. Enable the ECAM To enable the ECAM mode, use the command EB n where n=1 enables ECAM mode and n=0 disables ECAM mode. Step 6. Engage the slave motion To engage the slave motion, use the instruction EG a,b where a,b are the master positions at which the corresponding slaves must be engaged. If the value of any parameter is outside the range of one cycle, the cam engages immediately.
3000 2250 1500 0 2000 4000 6000 Master X Figure 6.4 - 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) where A is the master, with a cycle of 2000 counts. The cam table can be constructed manually, point by point, or automatically by a program.
Instruction #SETUP Interpretation Label EAA Select A 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.
ET[2]=,60 3rd point in the ECAM table ET[3]=,120 4th point in the ECAM table ET[4]=,140 5th point in the ECAM table ET[5]=,140 6th point in the ECAM table ET[6]=,140 7th point in the ECAM table ET[7]=,120 8th point in the ECAM table ET[8]=,60 9th point in the ECAM table ET[9]=,20 10th point in the ECAM table ET[10]=,0 Starting point for next cycle EB 1 Enable ECAM mode JGA=4000 Set A to jog at 4000 EG ,0 Engage both A and B when Master = 0 BGA Begin jog on A axis #LOOP;JP#LOOP,V1=0
Contour Mode (Local Mode) The DMC-3425 also provides a contouring mode. This mode allows any arbitrary position curve to be prescribed for any motion 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 segments and the path length may be infinite. Specifying Contour Segments The Contour Mode is specified with the command, CM. For example, CMAB specifies contouring on the A and B axes.
Point 1 A=0 at T=0ms Point 2 A=48 at T=4ms Point 3 A=288 at T=12ms Point 4 A=336 at T=28ms The same trajectory may be represented by the increments Increment 1 DA=48 Time Increment =4 DT=2 Increment 2 DA=240 Time Increment =8 DT=3 Increment 3 DA=48 Time Increment =16 DT=4 When the controller receives the command to generate a trajectory along these points, it interpolates linearly between the points.
Additional Commands The command, WC, is used as a trippoint "When Complete" or “Wait for Contour Data”. This allows the DMC-3425 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. No new motion commands are generated while waiting. If bad data is received, the controller responds with a ?.
ω = 50 [1 - cos 2π T/120] Figure 6.6 - Velocity Profile with Sinusoidal Acceleration The DMC-3425 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. To generate an array, we compute the position value at intervals of 8 ms. This is stored at the array POS.
C=0 #C D=C+1 DIF[C]=POS[D]-POS[C] Compute the difference and store C=C+1 JP #C,C<15 EN End first program #RUN Program to run motor CMA Contour Mode DT3 4 millisecond intervals C=0 #E CD DIF[C] Contour Distance is in DIF WC Wait for completion C=C+1 JP #E,C<15 DT0 CD0 Stop Contour EN End the program Teach (Record and Play-Back) Several applications require teaching the machine a motion trajectory.
#L 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 CMA Specify contour mode DT2 Specify time increment I=0 Initialize array counter #B Loop counter CD XPOS[I];WC Specify contour data I=I+1 Increment array counter JP #B,I<500 Loop until done DT 0;CD0 End contour mode EN End program For additional information about automatic array capture, see Chapter 7, Arrays.
The main use of the virtual axis is to serve as a virtual master in ECAM modes, and to perform an unnecessary part of a vector mode. These applications are illustrated by the following examples. Ecam Master Example Suppose that the motion of the AB axes is constrained along a path that can be described by an electronic cam table. Further assume that the ecam master is not an external encoder but has to be a controlled variable.
Stepper motor operation is specified by the command MT. The argument for MT is as follows: 2 specifies a stepper motor with active low step output pulses -2 specifies a stepper motor with active high step output pulses 2.5 specifies a stepper motor with active low step output pulses and reversed direction -2.5 specifies a stepper motor with active high step output pulse and reversed direction Stepper Motor Smoothing The command, KS, provides stepper motor smoothing.
Motion Profiler Stepper Smoothing Filter (Adds a Delay) Reference Position (RP) Output Buffer Output (To Stepper Driver) Step Count Register (TD) Motion Complete Trippoint When used in stepper mode, the MC command will hold up execution of the proceeding commands until the controller has generated the same number of steps out of the step count register as specified in the commanded position.
Dual Loop (Auxiliary Encoder) The DMC-3415 provides an interface for a second encoder except when configured for stepper motor operation or circular compare. Please note, the DMC-3425 has only a single encoder per axis. When used, the second encoder is typically mounted on the motor or the load, but may be mounted in any position. The most common use for the second encoder is backlash compensation, described below. The second encoder may be a standard quadrature type, or it may provide pulse and direction.
The continuous dual loop combines the two feedback signals to achieve stability. This method requires careful system tuning, and depends on the magnitude of the backlash. However, once successful, this method compensates for the backlash continuously. The second method, the sampled dual loop, reads the load encoder only at the end point and performs a correction. This method is independent of the size of the backlash.
PR v2*4 Correction move BGA Start correction JP#CORRECT Repeat #END EN Motion Smoothing The DMC-3425 controller allows the smoothing of the velocity profile to reduce the mechanical vibration of the system. Trapezoidal velocity profiles have acceleration rates that change abruptly from zero to maximum value. The discontinuous acceleration results in jerk which causes vibration.
ACCELERATION TIME VELOCITY TIME ACCELERATION WITH SMOOTHING TIME VELOCITY WITH SMOOTHING TIME Figure 6.7 - Trapezoidal velocity and smooth velocity profiles Homing The Find Edge (FE) and Home (HM) instructions may be used to home the motor to a mechanical reference. This reference is connected to the Home input line. The HM command initializes the motor to the encoder index pulse in addition to the Home input. The configure command (CN) is used to define the polarity of the home input.
in the forward direction; +5V will cause it to start in the reverse direction. The CN command is used to define the polarity of the home input. 2. Upon detecting the home switch changing state, the motor begins decelerating to a stop. 3. The motor then traverses very slowly back until the home switch toggles again. 4. The motor then traverses forward until the encoder index pulse is detected. 5. The DMC-3425 defines the home position (0) as the position at which the index was detected.
HOME SWITCH _HMA=1 _HMA=0 POSITION VELOCITY MOTION BEGINS TOWARD HOME DIRECTION POSITION VELOCITY MOTION REVERSE TOWARD HOME DIRECTION POSITION VELOCITY MOTION TOWARD INDEX DIRECTION POSITION INDEX PULSES POSITION Figure 6.
Command Summary - Homing Operation COMMAND DESCRIPTION FE ABCD Find Edge Routine.
Example DMC-3425 Instruction Interpretation #Latch Latch program JG,5000 Jog B BG B Begin motion on B axis AL B Arm Latch for B axis #Wait #Wait label for loop JP #Wait,_ALB=1 Jump to #Wait label if latch has not occurred Result=_RLB Set ‘Result’ equal to the reported position of B axis Result= Print result EN End Chapter 6 Programming Motion• 105
THIS PAGE LEFT BLANK INTENTIONALLY 106 • Chapter 6 Programming Motion DMC-3425
Chapter 7 Application Programming Overview The DMC-3425 provides a powerful programming language that allows users to customize the controller for their particular application. Programs can be downloaded into the DMC-3425 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. Only ASCII commands can be used for application programming.
The program memory size for each DMC-3425 is 80 characters per line and 500 lines long. Entering Programs The DMC-3425 has an internal editor that may be used to create and edit programs in the controller's memory. The internal editor is a rudimentary editor and is only recommended when operating with Galil’s DOS utilities or through a simple RS-232 communication interface such as the Windows Utility Hyperterminal. The internal editor is opened by the command ED.
After the Edit session is over, the user may list the entered program using the LS command. If no operand follows the LS command, the entire program will be listed. The user can start listing at a specific line or label using the operand n. A command and new line number or label following the start listing operand specifies the location at which listing is to stop.
AM Wait for motion complete WT 2000 Wait 2 sec JP #START Jump to label START EN End of Program The above program moves A and B 10000 and 20000 units. After the motion is complete, the motors rest for 2 seconds. The cycle repeats indefinitely until the stop command is issued. Special Labels The DMC-3425 has some special labels, which are used to define input interrupt subroutines, limit switch subroutines, error handling subroutines, command error subroutines and auto start and recovery routines.
VP 0,3000 Vector Position ‘ TOP LINE Comment - No Operation CR 1500,90,-180 Circle ‘ HALF CIRCLE MOTION Comment - No Operation VE Vector End ‘ END VECTOR SEQUENCE Comment - No Operation BGS Begin Sequence ‘ BEGIN SEQUENCE MOTION Comment - No Operation EN End of Program ‘ END OF PROGRAM Comment - No Operation NOTE: NO and the apostrophe are controller commands. Therefore, inclusion of these commands will require a small process time by the controller.
The main thread differs from the others in the following ways: 1. Only the main thread, thread 0, may use the input command, IN. 2. When automatic subroutines are implemented for limit switches, position errors or command errors, they are executed in thread 0. To begin execution of the various programs, use the following instruction: XQ #A, n Where n indicates the thread number. To halt the execution of any thread, use the instruction HX n where n is the thread number.
Trace Command The trace command causes the controller to send each line in a program to the host computer immediately prior to execution. Tracing is enabled with the command, TR1. TR0 turns the trace function off. NOTE: When the trace function is enabled, the line numbers as well as the command line will be displayed as each command line is executed. Error Code Command When there is a program error, the DMC-3425 halts the program execution at the point where the error occurs.
currently available. The command, DA?, will return the number of arrays which can be currently defined. The DMC-3425 will have a maximum of 2000 array elements in up to 14 arrays. If an array of 100 elements is defined, the command DM? will return the value 1900 and the command DA? will return 13. 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).
Program Flow Commands The DMC-3425 provides instructions to control program flow. The DMC-3425 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-3425 can be programmed to make decisions based on the occurrence of an event.
DMC-3425 Event Triggers Command Function AM A B C D E F G H or S 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. AD A or B or C or D or E or F or G or H Halts program execution until position command has reached the specified relative distance from the start of the move. Only one axis may be specified at a time.
Instruction Interpretation #TWOMOVE Label PR 2000 Position Command BGA Begin Motion AMA Wait for Motion Complete PR 4000 Next Position Move BGA Begin 2nd move EN End program Example- Set Output after Distance Set output bit 1 after a distance of 1000 counts from the start of the move. The accuracy of the trippoint is the speed multiplied by the sample period.
Instruction Interpretation #INPUT Program Label AI-1 Wait for input 1 low PR 10000 Position command BGA Begin motion EN End program Example - Set Output when At Speed Instruction Interpretation #ATSPEED Program Label JG 50000 Specify jog speed AC 10000 Acceleration rate BGA Begin motion ASA Wait for at slew speed 50000 SB1 Set output 1 EN End program Example - Change Speed along Vector Path The following program changes the feedrate or vector speed at the specified distance along
PR -10000 New Position SP 30000 New Speed AC 150000 New Acceleration BGA Start Motion EN End Example- 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.
Logical operators: OPERATOR DESCRIPTION < less than > greater than = equal to <= less than or equal to >= greater than or equal to <> not equal Conditional Statements The conditional statement is satisfied if it evaluates to any value other than zero. The conditional statement can be any valid DMC-3425 numeric operand, including variables, array elements, numeric values, functions, keywords, and arithmetic expressions. If no conditional statement is given, the jump will always occur.
Examples If the condition for the JP command is satisfied, the controller branches to the specified label or line number and continues executing commands from this point. If the condition is not satisfied, the controller continues to execute the next commands in sequence. Instruction Interpretation JP #Loop, COUNT<10 Jump to #Loop if the variable, COUNT, is less than 10 JS #MOVE2,@IN[1]=1 Jump to subroutine #MOVE2 if input 1 is logic level high.
NOTE: An ENDIF command must always be executed for every IF command that has been executed. It is recommended that the user not include jump commands inside IF conditional statements since this causes re-direction of command execution. In this case, the command interpreter may not execute an ENDIF command. Using the ELSE Command The ELSE command is an optional part of an IF conditional statement and allows for the execution of command only when the argument of the IF command evaluates False.
JP#WAIT,(@IN[1]=0) | (@IN[2]=0) Loop until Input 1& 2 are not active RI0 End Input Interrupt Routine without restoring trippoints Subroutines A subroutine is a group of instructions beginning with a label and ending with an end command (EN). Subroutines are called from the main program with the jump subroutine instruction JS, followed by a label or line number, and conditional statement. Up to 8 subroutines can be nested.
Automatic Subroutines for Monitoring Conditions Often it is desirable to monitor certain conditions continuously without tying up the host or DMC-3425 program sequences. The DMC-3425 can monitor several important conditions in the background. These conditions include checking for the occurrence of a limit switch, a defined input, position error, or a command error.
Example - Input Interrupt This simple program jogs the A and C motors (C motor is the first motor of the first slave controller of a distributed control system). When the first input of the master (input 1), goes low, the controller will stop motion on both axes. When the input returns high, the motors will resume jogging.
EN End main program #CMDERR Command error utility JP#DONE,_ED<>2 Check if error on line 2 JP#DONE,_TC<>6 Check if out of range MG "SPEED TOO HIGH" Send message MG "TRY AGAIN" Send message ZS1 Adjust stack JP #BEGIN Return to main program #DONE End program if other error ZS0 Zero stack EN End program OPERAND FUNCTION _ED1 Returns the number of the thread that generated an error _ED2 Retry failed command (operand contains the location of the failed command) _ED3 Skip failed comman
XQ _ED3,_ED1,1 Skip invalid command ENDIF EN End of command error routine Example – Ethernet Communication Error This simple program executes in the DMC-3425 and indicates (via the serial port) when a communication handle fails. By monitoring the serial port, the user can re-establish communication if needed.
Bit-Wise Operators The mathematical operators & and | are bit-wise operators. The operator, &, is a Logical And. The operator, |, is a Logical Or. These operators allow for bit-wise operations on any valid DMC-3425 numeric operand, including variables, array elements, numeric values, functions, keywords, and arithmetic expressions. The bit-wise operators may also be used with strings. This is useful for separating characters from an input string.
Functions FUNCTION DESCRIPTION @SIN[n] Sine of n (n in degrees, with range of -32768 to 32767 and 16-bit fractional resolution) @COS[n] Cosine of n (n in degrees, with range of -32768 to 32767 and 16-bit fractional resolution) @TAN[n] Tangent of n (n in degrees, with range of -32768 to 32767 and 16-bit fractional resolution) @ASIN*[n] Arc Sine of n, between -90° and +90°. Angle resolution in 1/64000 degrees. @ACOS* [n} Arc Cosine of n, between 0 and 180°. Angle resolution in 1/64000 degrees.
Programmable Variables The DMC-3425 allows the user to create up to 126 variables. Each variable is defined by a name that can be up to eight characters. The name must start with an alphabetic character, however, numbers are permitted in the rest of the name. Spaces are not permitted. Variable names should not be the same as DMC-3425 instructions. For example, PR is not a good choice for a variable name.
Example - Using Variables for Joystick The example below reads the voltage of an A-B joystick and assigns it to variables VA and VB to drive the motors at proportional velocities, where 10 Volts = 3000 rpm = 200000 c/sec Speed/Analog input = 200000/10 = 20000 Instruction Interpretation #JOYSTIK Label JG 0,0 Set in Jog mode BGAB Begin Motion #LOOP Loop VX=@AN[1]*20000 Read joystick A VY=@AN[2]*20000 Read joystick B JG VA,VB Jog at variable VA,VB JP#LOOP Repeat EN End Operands Operands allow
_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) _LRn 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% - Resets with power-on). NOTE: TIME does not use an underscore character (_) as other operands.
DM SPEED[10] Dimension Speed Array SPEED[1]=7650.2 Assigns the first element of the array the value 7650.2 SPEED[1]= Returns array element value POSX[10]=_TPA Assigns the 11th element the position of A. CON[2]=@COS[POS]*2 Assigns the 3rd element of the array the cosine of POS * 2. TIMER[1]=TIME Assigns the 2nd element of the array TIME Using a Variable to Address Array Elements An array element number can also be a variable. This allows array entries to be assigned sequentially using a counter.
Command Summary - Automatic Data Capture Command Description RA n[],m[],o[],p[] Selects up to four arrays for data capture. The arrays must be defined with the DM command. RD type1,type2,type3,type4 Selects the type of data to be recorded, where type1, type2, type3, and type 4 represent the various types of data (see table below). The order of data type is important and corresponds with the order of n,m,o,p arrays in the RA command. RC n,m The RC command begins data collection.
RC1 Start recording now, at rate of 2 msec BG AB Begin motion #A;JP #A,RC=1 Loop until done MG "DONE" Print message EN End program #PLAY Play back N=0 Initial Counter JP# DONE,N>300 Exit if done N= Print Counter A POS[N]= Print A position B POS[N]= Print B position AERR[N]= Print A error BERR[N]= Print B error N=N+1 Increment Counter #DONE Done EN End Program Deallocating Array Space Array space may be deallocated using the DA command followed by the array name.
Formatting Messages String variables can be formatted using the specifier, {Sn} where n is the number of characters, 1 thru 6. For example: MG STR {S3} This statement returns 3 characters of the string variable named STR. Numeric data may be formatted using the {Fn.m} expression following the completed MG statement. {$n.m} formats data in HEX instead of decimal. The actual numerical value will be formatted with n characters to the left of the decimal and m characters to the right of the decimal.
Summary of Message Functions Function Description "" Surrounds text string {Fn.m} Formats numeric values in decimal n digits to the right of the decimal point and m digits to the left {P1}or {Ea} Send message to Main Serial Port or Ethernet Port {$n.m} Formats numeric values in hexadecimal {^n} Sends ASCII character specified by integer n {N} Suppresses carriage return/line feed {Sn} Sends the first n characters of a string variable, where n is 1 thru 6.
Position Format is specified by: PF m.n where m is the number of digits to the left of the decimal point (0 thru 10) and n is the number of digits to the right of the decimal point (0 thru 4) A negative sign for m specifies hexadecimal format. Hex values are returned preceded by a $ and in 2's complement. Hex values should be input as signed 2's complement, where negative numbers have a negative sign. The default format is PF 10.0.
Formatting Variables and Array Elements The Variable Format (VF) command is used to format variables and array elements. The VF command is specified by: VF m.n where m is the number of digits to the left of the decimal point (0 thru 10) and n is the number of digits to the right of the decimal point (0 thru 4). A negative sign for m specifies hexadecimal format. The default format for VF is VF 10.4 Hex values are returned preceded by a $ and in 2's complement.
Converting to User Units Variables and arithmetic operations make it easy to input data in desired user units such as inches or RPM. The DMC-3425 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/sec2. The controller interprets time in milliseconds. All input parameters must be converted into these units.
Example- Output Port Instruction Interpretation OP6 Sets outputs 2 and 3 of output port to high. All other bits are 0. (21 + 22 = 6) OP0 Clears all bits of output port to zero OP 255 Sets all bits of output port to one. The output port is useful for setting relays or controlling external switches and events during a motion sequence.
Input Interrupt Function The DMC-3425 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. If m and n are unused, o contains a number with the mask. A 1 designates that input to be enabled for an interrupt, where 20 is bit 1, 21 is bit 2 and so on.
Instruction Interpretation #Points Label SP 7000 Speed AC 80000;DC 80000 Acceleration #Loop VP=@AN[1]*1000 Read and analog input, compute position PA VP Command position BGA Start motion AMA After completion JP #Loop Repeat EN End Example - Position Follower (Continuous Move) Method: Read the analog input, compute the commanded position and the position error. Command the motor to run at a speed in proportions to the position error.
The least significant bit represents block 2 and the most significant bit represents block 9. The decimal value can be calculated by the following formula. n = n2 + 2*n3 + 4*n4 + 8*n5 +16* n6 +32* n7 +64* n8 +128* n9 where nx represents the block. If the nx value is a one, then the block of 8 I/O points is to be configured as an output. If the nx value is a zero, then the block of 8 I/O points will be configured as an input. For example, if block 4 and 5 is to be configured as an output, CO 12 is issued.
Argument Blocks Bits Description m 0 1-8 General Outputs a 2,3 17-32 Extended I/O b 4,5 33-48 Extended I/O c 6,7 49-64 Extended I/O d 8,9 65-80 Extended I/O For example, if block 8 is configured as an output, the following command may be issued: OP 7,,,,7 This command will set bits 1,2,3 (block 0) and bits 65,66,67 (block 8) to 1. Bits 4 through 8 and bits 68 through 80 will be set to 0. All other bits are unaffected.
The program starts at a state that we define as #A. Here the controller waits for the input pulse on I1. As soon as the pulse is given, the controller starts the forward motion. Upon completion of the forward move, the controller outputs a pulse for 20 ms and then waits an additional 80 ms before returning to #A for a new cycle.
Assume that all of the 3 axes are driven by lead screws with 10 turns-per-inch pitch. Also assume encoder resolution of 1000 lines per revolution. This results in the relationship: 1 inch = 40,000 counts and the speeds of 1 in/sec = 40,000 count/sec 5 in/sec = 200,000 count/sec an acceleration rate of 0.1g equals 0.1g = 38.6 in/s2 = 1,544,000 count/s2 Note that the circular path has a radius of 2" or 80000 counts, and the motion starts at the angle of 270° and traverses 360° in the CW (negative direction).
BGS AMS PR,,80000 Raise C BGC AMC VP -37600,-16000 Return AB to start VE VS 200000 BGS AMS EN B R=2 4 B C 4 9.3 A 0 A 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 the input voltage.
The program reads the input voltage periodically and assigns its value to the variable VIN. To get a speed of 200,000 ct/sec for 10 volts, we select the speed as Speed = 20000 x VIN The corresponding velocity for the motor is assigned to the VEL variable. Instruction #A JG0 BGA #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 positions must be programmable.
THIS PAGE LEFT BLANK INTENTIONALLY 150 • Chapter 7 Application Programming DMC-3425
Chapter 8 Hardware & Software Protection Introduction The DMC-3425 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.
4. There is a failure with the output IC that drives the error signal. 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. The Off-On-Error function is further discussed in this chapter.
Example: DP0,0, Define Position BL -2000,-4000 Set Reverse position limit FL 2000,4000 Set Forward position limit JG 2000,2000 Jog BG AB Begin Execution of the above example will cause the motor to slew at the given jog speed until the forward position limit is reached. Motion will stop once the limit is hit. Off-On-Error The DMC-3425 controller has a built in function that can turn off the motors under certain error conditions. This function is know as ‘Off-On-Error”.
Limit Switch Routine The DMC-3425 provides forward and reverse limit switches that 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. The RE command ends the subroutine and resumes the main program where it left off.
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. Communication 3. Stability and Compensation 4. Operation The various symptoms along with the cause and the remedy are described in the following tables. Installation DMC-3425 Symptom Cause Remedy Motor runs away when connected to amplifier with no additional inputs. Amplifier offset too large.
Communication Symptom Cause Remedy Using terminal emulator, cannot communicate with controller. Selected comport incorrect Try another comport Same as above Selected baud rate incorrect Check to be sure that baud rate same as dip switch settings on controller, change as necessary. Symptom Cause Remedy Motor runs away when the loop is closed. Wrong feedback polarity. Invert the polarity of the loop by inverting the motor leads (brush type) or the encoder. Motor oscillates.
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 ENCODER DRIVER MOTOR Figure 10.1 - Elements of Servo Systems The operation of such a system can be divided into three levels, as illustrated in Fig. 10.2. The levels are: 1. Closing the Loop 2. Motion Profiling 3.
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 3 MOTION PROGRAMMING 2 MOTION PROFILING 1 CLOSED-LOOP CONTROL 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.
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. To achieve that, our skin serves as a temperature sensor and reports to the brain (controller).
it too slowly, the temperature response will be slow, causing discomfort. Such a slow reaction is called over damped response. 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].
where Kt and J are as defined previously. For example, a current amplifier with Ka = 2 A/V with the motor described by the previous example will have the transfer function: 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.
VOLTAGE SOURCE E V 1/Ke (STm+1)(STe+1) Kv W 1 S P CURRENT SOURCE I V Kt JS Ka W 1 S P VELOCITY LOOP V 1 Kg(ST1+1) W 1 S P 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. Due to the quadrature relationship between the encoder channels, the position resolution is increased to 4N quadrature counts/rev.
DAC 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 three elements in series: PID, low-pass and a notch filter.
K = 160 A = 0.9 C=1 a = 250 rad/s and the equivalent continuous filter, G(s), is G(s) = [16 + 0.144s + 1000/s} ∗ 250/ (s+250) The notch filter has two complex zeros, Z and z, and two complex poles, P and p. The effect of the notch filter is to cancel the resonance affect by placing the complex zeros on top of the resonance poles. The notch poles, P and p, are programmable and are selected to have sufficient damping. It is best to select the notch parameters by the frequency terms.
Motor M(s) = P/I = Kt/Js2 = 500/s2 [rad/A] Amp Ka = 4 [Amp/V] DAC Kd = 0.0003 [V/count] Encoder Kf = 4N/2π = 318 [count/rad] ZOH 2000/(s+2000) Digital Filter KP = 12.5, KD = 245, T = 0.001 Therefore, D(z) = 1030 (z-0.95)/Z 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. V Σ FILTER ZOH DAC AMP MOTOR 50+0.980s 2000 S+2000 0.
Magnitude 4 1 50 200 2000 W (rad/s) 0.1 Figure 10.8 - Bode plot of the open loop transfer function For the given example, the crossover frequency was computed numerically resulting in 200 rad/s. 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 system is stable.
Kt Nm/A Torque constant J = 2.10-4 kg.m2 System moment of inertia R=2 Ω Motor resistance Ka = 2 Amp/Volt Current amplifier gain N = 1000 Counts/rev Encoder line density The DAC of the DMC-2x00 outputs +/-10V for a 14-bit command of +/-8192 counts. The design objective is to select the filter parameters in order to close a position loop with a crossover frequency of ωc = 500 rad/s and a phase margin of 45 degrees.
However, since A(s) = L(s) G(s) then it follows that G(s) must have magnitude of |G(j500)| = |A(j500)/L(j500)| = 160 and a phase arg [G(j500)] = arg [A(j500)] - arg [L(j500)] = -135° + 194° = 59° In other words, we need to select a filter function G(s) of the form G(s) = P + sD so that at the frequency ωc =500, the function would have a magnitude of 160 and a phase lead of 59 degrees.
Equivalent Filter Form DMC-2x00 Digital D(z) =[K(z-A/z) + Cz/(z-1)]∗ (1-B)/(Z-B) Digital D(z) = [4 KP + 4 KD(1-z-1) + KI/2(1-z-1)] ∗(1-B)/(Z-B) KP, KD, KI, PL K = (KP + KD) ⋅4 A = KD/(KP+KD) C = KI/2 B = PL Continuous G(s) = (P + Ds + I/s) ∗ a/S+a PID, T P = 4 KP D = 4 T*KD I = KI/2T a = 1/T ln (1/PL) 170 • Chapter 10 Theory of Operation DMC-3425
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-). Maximum A,B edge rate: 12MHz. Minimum IDX pulse width: 80 nsec. Input/Output Uncommitted Inputs, Limits, Home, Abort Inputs: TTL Can accept up to +12V signal.
Long Term Phase-locked, better than .005% Short Term System dependent Position Range: +/-2147483647 counts per move Velocity Range: Up to 12,000,000 counts/sec servo; 3,000,000 pulses/sec-stepper Velocity Resolution: 2 counts/sec Motor Command Resolution: 16 bit or 0.
J3 DMC-3425-Stepper General I/O; 37- PIN D-type 1 Reset 1 20 PWMB 2 SIGNB 21 PWMA 3 Output 3 22 Output 2 4 Output 1 23 Circular Compare 5 Analog 1 6 Main Index B (Input 7) 24 Analog 2 1,2,3 25 Home B (Input 6) 1,3 7 Reverse Limit B (Input 5) 1,3 26 Forward Limit B (Input 4) 1,3 8 Input 3 1 27 Input 2 (and B latch) 1 9 Input 1 (and A latch) 1 28 Forward Limit A 1 10 + 5V 29 Reverse Limit A 1 11 Ground 30 Home A 1 12 +12V 31 -12v 13 Ground 32 A Encoder A+ 14 A Encoder A- 33 A Encoder
J1 RS232 Main port: DB-9 Pin Male: PC Galil 1 DCD 1 RTS 2 RX 2 TX 3 TX 3 RX 4 DTR 4 CTS 5 GND 5 GND 6 DSR 6 RTS 7 RTS 7 CTS 8 CTS 8 RTS 9 RI 9 -- Pin-Out Description OUTPUTS DESCRIPTION Analog 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 mode, this output is held at the OF command level. Amp Enable Signal to disable and enable an amplifier.
Abort input A low input stops commanded motion instantly without a controlled deceleration. Also aborts motion program. Reset input A low input resets the state of the processor to its power-on condition. The previously saved state of the controller, along with parameter values, and saved sequences are restored. Forward Limit Switch When active, inhibits motion in forward direction. Also causes execution of limit switch subroutine, #LIMSWI.
Rev A-F Terminal# Rev G Terminal# Label I/O Description 1 1 +12V4 O +12 Volts 4 2 2 -12V O -12 Volts 3 3 AMPEN/SIGNY5 O Amplifier enable X axis or Y Axis Sign Output for Stepper 4 4 ACMDX/PULSE(X) O X Axis Motor command or Pulse Output for Stepper 5 5 AN1 O Analog Input 1 6 6 AI2 O Analog Input 2 7 7 GND -- Signal Ground 8 8 RESET I Reset 9 9 ERROR/PULSE(Y) 6 O Error signal or Y Axis Pulse Output for Stepper 10 10 OUT3 O Output 3 11 11 OUT2 O Outpu
4 The screw terminals for ACMDX and ACMDY can provide access to 2 sets of signals, depending on the placement of the 2 jumpers on JP3. 5 If the Opto-isolated input option is used, the output compare is NOT brought out to the ICM-1460. If the output compare is to be used in conjunction with the opto-isolation, pin 23 of the Cable 37-Pin D must be brought out externally. There are also options for using either terminal 1 or 2 as the Common connection. Contact Galil for more information.
ICM-1460 CONNECTIONS TO CONTROLLER VCC OPTO-COMMON RP2 / RP4 = 2.2K RP3 / RP1 = 4.7K OHMS IN[x] (To controller) IN[x] Figure A-1 Opto-isolated outputs: The signal “OUT[x]" below is one of the isolated digital outputs where x stands for the digital output terminals. The OPTO-COMMON needs to be connected to an isolated power supply. The OUT[x] can be used to source current from the power supply. The maximum sourcing current for the OUT[x] is 25 ma. Sinking configuration can also be specified.
64 Extended I/O of the DMC-3425 Controller The DMC-3425 controller offers 64 extended I/O points, which can be interfaced to Grayhill and OPTO-22 I/O mounting racks. These I/O points can be configured as inputs or outputs in 8 bit 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-3425 with DB-14064 The 64 extended I/O points of the DMC-3425 w/DB-14064 series controller can be configured in blocks of 8.
For example, if blocks 2 and 3 are to be outputs, then n is 3 and the command, CO3, should be issued. Note: This calculation is identical to the formula: n = n2 + 2*n3 + 4*n4 + 8*n5 +16* n6 +32* n7 +64* n8 +128* n9 where nx represents the block. Saving the State of the Outputs in Non-Volatile Memory The configuration of the extended I/O and the state of the outputs can be stored in the EEPROM with the BN command. If no value has been set, the default of CO 0 is used (all blocks are inputs).
For example, if block 8 is configured as an output, the following command may be issued: OP 7,,,,7 This command will set bits 1,2,3 (block 0) and bits 65,66,67 (block 8) to 1. Bits 4 through 8 and bits 68 through 80 will be set to 0. All other bits are unaffected. When accessing I/O blocks configured as inputs, use the TIn command. The argument 'n' refers to the block to be read (n=0,2,3,4,5,6,7,8 or 9). The value returned will be a decimal representation of the corresponding bits.
2. 4. 6. 8. 10. 12. 14. 16. 18. 20. 22. 24. 26. 28. 30. 32. 34. 36. 38. 40. 42. 44. 46. 48. 50. I/O I/O I/O I/O I/O I/O I/O I/O GND GND GND GND GND GND GND GND GND GND GND GND GND GND GND GND GND J8 50-PIN IDC Pin Signal 1. 3. 5 7. 9. 11. 13. 15. 17. 19. 21. 23. 25. 27. 29. 31. 33. 35. 37. 39. 41. 43. 45. 47. 49.
2. 4. 6. 8. 10. 12. 14. 16. 18. 20. 22. 24. 26. 28. 30. 32. 34. 36. 38. 40. 42. 44. 46. 48. 50.
High Current Buffer chips (16) Screw Terminals 0 1 2 3 4 5 6 7 IOM-1964 REV A GALIL MOTION CONTROL MADE IN USA J5 Banks 0 and 1 provide high power output capability. FOR INPUTS: UX3 UX4 RPX4 FOR OUTPUTS: UX1 UX2 RPX2 RPX3 100 pin high density connector Banks 2-7 are standard banks.
Configuring Hardware Banks The extended I/O on the DMC-34x5 with 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. The layout of each of the I/O banks is identical.
Input Circuit I/OCn 1/8 RPx4 1/4 NEC2505 To DMC-3425* I/O x = bank number 0-7 n = input number 17-80 DMC-3425* GND I/On Figure A-5 – Input Circuit 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 I/OCn Sourcing +5V I/On GND I/OCn GND I/On +5V Current Current There is one I/OC connection for each bank of eight inputs.
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 that 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. High Power Digital Outputs The first two banks on the IOM-1964, banks 0 and 1, have high current output drive capability.
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 CBn Vpwr = Viso SBn Vpwr = GNDiso 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 CBn Vout = GNDiso SBn Vout = Viso 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.
• Maximum sink current: 2mA Relevant DMC Commands CO n OP m,n,o,p,q SB n CB n OB n,m TI n _TI n @IN[n] Configures the 64 bits of extended I/O in 8 banks of 8 bits each. n = n2 + 2*n3 + 4*n4 + 8*n5 + 16*n6 + 32*n7 + 64*n8 + 128*n9 where nx is a 1 or 0, 1 for outputs and 0 for inputs.
DMC-3425 22 22 I/O65 I/O bit 65 6 23 21 OUTC65-72 Out common for I/O 65-72 6 24 24 I/OC65-72 I/O common for I/O 65-72 6 25 23 I/O64 I/O bit 64 5 26 26 I/O63 I/O bit 63 5 27 25 I/O62 I/O bit 62 5 28 28 I/O61 I/O bit 61 5 29 27 I/O60 I/O bit 60 5 30 30 I/O59 I/O bit 59 5 31 29 I/O58 I/O bit 58 5 32 32 I/O57 I/O bit 57 5 33 31 OUTC57-64 Out common for I/O 57-64 5 34 34 I/OC57-64 I/O common for I/O 57-64 5 35 33 I/O56 I/O bit 56 4 36 36 I/
67 65 I/O30 I/O bit 30 1 68 68 I/O29 I/O bit 29 1 69 67 I/O28 I/O bit 28 1 70 70 I/O27 I/O bit 27 1 71 69 I/O26 I/O bit 26 1 72 72 I/O25 I/O bit 25 1 73 71 OUTC25-32 Out common for I/O 25-32 1 74 74 I/OC25-32 I/O common for I/O 25-32 1 75 73 OUTC25-32 Out common for I/O 25-32 1 76 76 I/OC25-32 I/O common for I/O 25-32 1 77 75 PWROUT32 Power output 32 1 78 78 PWROUT31 Power output 31 1 79 77 PWROUT30 Power output 30 1 80 80 PWROUT29 Power ou
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 A and B axes, Va and Vb. Vs = V a 2 + Vb 2 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 A-B plane.
Figure A-10 - X-Y Motion Path 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.
Ta = VS 100000 = = 0. 05s VA 2000000 The slew time, Ts, is given by Ts = D 35708 - 0. 05 = 0. 307 s − Ta = VS 100000 The total motion time, Tt, is given by Tt = D + T a = 0. 407 s VS The velocities along the A and B 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 A and B axes for the path shown in Fig. A-10 are given in Fig. A12. Fig.
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 250,000 controllers working worldwide, has a proud reputation for anticipating and setting the trends in motion control. Galil understands your need to keep abreast with these trends in order to remain resourceful and competitive.
Contacting Us Galil Motion Control 3750 Atherton Road Rocklin, CA 95765 Phone: 916-626-0101 Fax: 916-626-0102 Internet address: support@galilmc.com URL: www.galilmc.
WARRANTY All products manufactured by Galil Motion Control are warranted against defects in materials and workmanship. The warranty period for controller boards is 1 year. The warranty period for all other products is 180 days. 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.
Index 64 Extended I/O of the DMC-3425 Contoller, 179 Abort, 73, 79, 151, 153, 171 Off-On-Error, 18, 39, 151, 153 Stop Motion, 74, 79, 125, 154 Absolute Position, 69–70, 116–17, 121 Absolute Value, 84, 121, 129, 152 Acceleration, 118, 140, 143–47, 194–95 Address, 133–34, 197 Jumpers, 43 Ampflier Gain, 5 Amplifier AMP-1460, 8 Amplifier Enable, 39, 151 Amplifier Gain, 161, 165, 168 Amplifiers, 8 Connections, 175 Analog Input, 73, 129–31, 132, 135, 142–43, 149 Analysis SDK, 27, 108 Arithmetic Functions, 107, 1
Differential Encoder, 19, 21, 156 Digital Filter, 59, 164–65, 167–69 Gain, 8 Digital Input, 39, 129, 141 Digital Output, 129, 140 Clear Bit, 140 Dip Switch Address, 133–34, 197 Download, 59, 107, 133 Dual Encoder, 64, 134 Dual Loop, 98–97 Dual Loop, 98–97 Ecam, 84–85, 87 Electronic Cam, 67–68, 83, 86 Edit Mode, 113 Editor, 34, 108 EEPROM, 4 Electronic Cam, 67–68, 83, 86 Electronic Gearing, 67–68, 82–83 Ellipse Scale, 80 Enable Amplifer Enable, 39, 151 Encoder Auxiliary Encoder, 98–97 Differential, 19, 21, 1
Jumper, 156 Jumpers, 43 Keyword, 120, 128, 130, 131–32 TIME, 132–33 Label, 73–74, 78, 87, 94, 102, 105, 107–14, 116–25, 131, 137, 140–43, 147, 149, 153 LIMSWI, 152–54 POSERR, 152–53 Special Label, 110, 154 Latch, 64, 104 Arm Latch, 105 Data Capture, 133–34 Position Capture, 104 Record, 91, 93, 132, 134 Teach, 93 Limit Torque Limit, 20 Limit Switch, 37–38, 110–12, 124, 132, 152–54, 156 LIMSWI, 37, 110, 123–24, 152–54 Linear Interpolation, 68, 73–75, 77, 89 Clear Sequence, 73, 75, 79, 80 Logical Operator, 119
SDK, 27, 108 Selecting Address, 133–34, 197 Serial Port, 12 Servo Design Kit, 8 SDK, 27, 108 Set Bit, 140 Sine, 69, 87, 129 Single-Ended, 6, 19, 21 Slew, 69, 101, 116, 118, 145 Slew Speed, 175 Smoothing, 74, 75, 79, 80, 95–101 Software SDK, 27, 108 Terminal, 59 Special Label, 110, 154 Specification, 74–75, 79 Stability, 155–56, 160, 166 Stack, 123, 126, 142 Zero Stack, 126, 142 Status, 59, 64, 75, 113–15, 131, 134 Interrogation, 27, 64, 75, 81, 135, 137 Stop Code, 64, 134, 156 Tell Code, 63 Step Motor KS, S