Kloehn NX3 Pump. NX3 Hardware User s Manual Level 3. Engineering GREAT Solutions

Size: px
Start display at page:

Download "Kloehn NX3 Pump. NX3 Hardware User s Manual Level 3. Engineering GREAT Solutions"

Transcription

1 Kloehn NX3 Pump NX3 Hardware User s Manual Level 3 Engineering GREAT Solutions

2 THIS PAGE INTENTIONALLY BLANK ii

3 Revisions record Date Revision number Description 06/01/2015 Initial Outline 07/20/2015 Draft complete 8/28/2015 Rev. 1 Fixed several references and untitled figures. Improved the consistency of several terms. Fixed order of the Getting Started section. Updated Operating Temperature and marked it for review with a comment. Some formatting edits and small rewrites for clarity. 9/1/2015 Rev. 2 ~B command parameters corrected, RS-485 pinout corrected. 12/14/2015 Rev. 3 Visual update with some formatting edits and small rewrites for clarity. 03/03/2016 Rev. 4 Visual update with some formatting edits and small rewrites for clarity. 4/13/2016 Rev. 5 Visual update with some formatting edits and small rewrites for clarity. 5/26/2016 Rev. 6 Visual update with some formatting edits and small rewrites for clarity. References Document number Title End User CD-ROM containing manuals and example codes NX User Guide NX Quick Start Guide HUM018 VersaPump 6 Hardware User Manual Stepper Motor, NEMA 17, 0.9 Degree Stepper Motor, NEMA 17, 1.8 Degree PDS-006, Rev. 7 Syringe V3 (3cm) Product Line Data Sheet PDS-0017, Rev. 3 V3 Face Valve Data Sheet PDS-0016, Rev. 3 V3 Plug Valve Data Sheet iii

4 THIS PAGE INTENTIONALLY BLANK iv

5 NOTICE Norgren Kloehn, Inc. maintains a continuous process of product evaluation and improvement. This is done through in-house engineering evaluations, market research, and customer feedback. As a result of this process, Norgren Kloehn offers the most capable and sophisticated syringe pumps and valve drives in the world today, at competitive prices. To sustain this effort, Norgren Kloehn, Inc. reserves the right to evolve and upgrade its standard products at Norgren Kloehn s discretion. Norgren Kloehn, Inc. has a policy of making every effort to ensure all upgrades are fully backwards compatible with earlier versions. We have been successful in nearly all respects, producing better and more capable versions of our standard products that can be seamlessly integrated into existing system designs without increasing prices. However, differences may exist in internal parts and materials, and rarely, in firmware commands. If such differences may impact your product certifications, or if a unique configuration must be maintained over long production runs, contact Norgren Kloehn Customer Service to inquire about assigning a unique part identification number for your application. Alternatively, you may request to add your name to the list of customers to be notified of changes prior to release of standard product upgrades. Norgren Kloehn Customer Service: (702) or v

6 THIS PAGE INTENTIONALLY BLANK vi

7 Table of contents Section Page 1 SAFETY MESSAGES GETTING STARTED Configurations Take Inventory Pump Connections: Power and Communication Connector Locations Connect the Communications Cable Connect the Power Cable Set Pump Address for Communication Set Up Communications Install the Syringe Install the Valve Configure the Pump Set the Valve and Syringe Parameters Calibrate the Syringe Example Command Sequence: Positioning the Syringe PUMP OVERVIEW Introduction and Specifications Environmental Mechanical Power Communications I/O Interface User Program Memory Drivers Syringe Driver Valve Driver Mounting Mounting Surface Requirements Base Mounting Non-Standard Mounting Positions Instrument Enclosures Air Flow and Ventilation Considerations Wiring and Connectivity Rear Panel Connectors Front Panel Pushbutton & LED...19 vii

8 Table of contents (cont.) 3.5 Wiring and Connectivity Inputs Outputs Use of Commands General Command Structure Command Addressing Pump Replies RS-232 Communication Options Communication Via RS Individual Device Addressing Multiple Device Addressing Communication Protocols Over RS-485/RS Connecting Multiple Devices Communication Checks Line Turnaround: Communication Via CAN Bus PROGRAMMING TECHNIQUES Program Memory Temporary Memory Non-Volatile Memory Saving and Erasing a Program Pump Programming Tips Programming Error Traps Setting Syringe Speeds Counting Program Cycles Converting Volume to Steps I/O Interface Programming Waiting for an Input Analog Input #1 as a Selector Switch Position Snapshots A Binary Input Selector Connecting the User Outputs...41 viii

9 Table of contents (cont.) 5 PUMP COMMANDS Foreground vs. Background Commands Syringe Commands Position Commands Motion Variables Initialization Commands Syringe Queries Valve Commands Valve Type Setting Valve Position Commands Valve Queries I/O Commands Output Commands Input Query Commands Input Test and Jump Commands The Home Button Handshaking commands User Program Commands Program Storage Commands Program Execution Commands Program Control Commands Variables Setting Variables Accumulators Using an Accumulator The User Timer List of Commands Using Variables Configuration Commands Query Commands Error Trapping Commands Trap Declarations Trap Exits Error Trap Query...67 ix

10 Table of contents (cont.) 5.10 Miscellaneous Alternate Pin Functions: Flags Motor Power Control Repeat Command String Command Reference STATUS AND ERROR MESSAGES Status and Error Messages Status and Error LED Codes...85 APPENDIX A: NX3 PUMP MOUNTING DIMENSIONS...87 List of Figures Figure 2-1. NX3 Pump, Level Figure 2-3. RS-232 Connectors...3 Figure 2-2. Back Panel...3 Figure 2-5. Changing the Address switch...4 Figure 2-4. Power Connection...4 Figure 2-6. HyperTerminal Connection...5 Figure 2-7. HyperTerminal Serial Port Settings...6 Figure 2-8. HyperTerminal ASCII Setup...6 Figure 3-1. NX3 Rear Panel Connectors and Switch...15 Figure 3-2. Analog Input Equivalent Circuit...19 Figure 3-3. Effective Digital Input Circuit...20 Figure 3-4. Effective Tamper Input Circuit...21 Figure 3-5. Effective Digital Output Circuit...22 Figure 4-1. Acceleration Example...36 Figure 4-2. Slow Acceleration Example...36 Figure 4-3. Binary Input Selector Example...40 Figure 4-4. Examples User Output Connections...42 x

11 Table of contents (cont.) List of Tables Table 1-1. General Safety Messages...1 Table 1-2. Section 3 Safety Messages...1 Table 2-1. NX3 Pumps - Level 3 Options...2 Table 2-2. NX3 Pump Inventory List...3 Table 3-1. V3 Valves and Syringes Data Sheets...9 Table 3-2. Environmental Specifications...9 Table 3-3. Mechanical Specifications...9 Table 3-4. Power Specifications...10 Table 3-5. RS-232 Specifications...10 Table 3-6. RS-485 Specifications...10 Table 3-7. Digital Output Specifications...11 Table 3-8. Digital Input Specifications...11 Table 3-9. Analog Input Specifications...11 Table Program Memory Specifications...12 Table NX3 Rear Panel Connectors Functions...16 Table Individual Device Addressing...24 Table Multiple Device Addressing...24 Table Quad Device Addressing...24 Table Packet Description for DT Command Protocol...25 Table Packet Description for DT Response Protocol...26 Table Packet Description for OEM Command Protocol...26 Table Packet Description for OEM Command Protocol...27 Table RS-485 Baud Rate and Termination Modes...29 Table 5-1. Position Control Commands...43 Table 5-2. Handshake Dispense Command Definitions...44 Table 5-3. Motion Variable Command Definitions...45 Table 5-4. Initialization Command Definitions...47 Table 5-5. Syringe Query Definitions...48 Table 5-6. Valve Type Setting Command Definitions...49 Table 5-7. Valve Query Definitions...50 Table 5-8. Input/Output functions...51 Table 5-9. Input Query Definitions...52 Table Handshaking Definitions...53 Table Program Storage Command Definitions...54 Table Program Execution Command Definitions...55 xi

12 Table of contents (cont.) Table Jump and Label Command Definitions...55 Table Repeat Command Definitions...56 Table Accumulator #0 Commands...58 Table Commands that Scale with Flag 25 Set...59 Table Commands that Use Variables...60 Table Configuration Commands...61 Table Flag Commands...69 Table Flags...70 Table Indirect Variables...71 Table Standard Commands...74 Table Immediate Commands...79 Table Configuration Commands...79 Table Query Commands...83 Table 6-1. Status/Error Messages...84 Table 6-2. LED Fault Codes...85 xii

13 1 SAFETY MESSAGES The following hazard statements pertain to the NX3 Pump. Read and understand these messages before continuing. Misuse or use in a manner not consistent with the User s Manual is not authorized and may result in a loss of warranty coverage. General safety messages are listed in Table 1-1. Table 1-1. General Safety Messages CAUTION: CAUTION: CAUTION: Care should be taken in instrument design and usage to prevent the exposure of flammable fluids to the valve or syringe motors during operation or service due to the elevated temperatures at which these devices may operate. Fluid lines should be routed to minimize any such risk. Pump motors can reach a temperature of >65 C (149 F) during extended operation when the IMI electronics are not used. It is therefore recommended the operator use caution when working around the Pump. When dispensing fluids other than water, cleaning procedures are recommended. Solutions that produce or contain particulates, such as saline solutions or the products of reactions between different solutions should not be allowed to stand for extended periods of time. As sharp-edged particulates accumulate on the inner surfaces of the valve and syringe parts, damage to diaphragms or syringe piston seal materials may occur, greatly shortening their operating life. Saline solutions should never be allowed to stand long enough to crystallize. To preclude a problem with particulate accumulation, flush the pump with a buffer solution or DI (de-ionized) water after each use. Flushing is also advised between different solutions if cross-contamination is a potential issue. Sufficient buffer or DI water should be used to adequately dilute the possible residues from previous solutions. Do not attempt to disassemble the pump or its valve and syringe parts for cleaning.this will void warranty. Safety messages are listed in Table 1-2. Table 1-2. Section 3 Safety Messages CAUTION: There are several pinch points and rotating mechanical parts. Keep hands and fingers clear of moving parts. 1

14 2 GETTING STARTED A Level 3 Pump is shown in Figure 2-1 Figure 2-1. NX3 Pump, Level Configurations The Level 3 configurations of the NX3 Pump are listed in Table 2-1. Table 2-1. NX3 Pumps Level 3 Options Option Level 3 Configuration Resolution: 6 or 12 k. Steps. Syringe Motor included, Syringe installed. Rotary Valve option: > Motor and Adapter included. > Valve included. Solenoid Valve option: > Valve included. No Valve option: > Thru Block included. Syringe Motor with Encoder. Electronics included (NX Controller Board Assembly, P/N.21979, and Norgren Kloehn firmware). 2

15 2.2 Take Inventory A system will require the components listed in Table 2-2. Table 2-2. NX3 Pump Inventory List Quantity Descriiption Part number 1 NX3 Level 3 pump Depends on configuration 1 Starter Kit (includes all items listed below) P/N VDC Power supply P/N Power cord with ON/OFF P/N Software; operator s manual; and application notes. P/N Communications cable RS232 P/N Pump Connections: Power and Communication Connector Locations All connectors are accessible from the back panel of the pump. Note the locations of the connectors in Figure 2-2. Back Panel, shown below. For the purposes of getting started, only the RS-232 and Power connections will be used Connect the Communications Cable The communications cable has a DE-9 connector on both ends. 1. Plug the DE-9 connector on one end of the cable into the DE-9F connector on the pump labelled RS-232. Figure 2-3. RS-232 Connectors 2. Plug the cable s other DE-9 connector into the serial port on the PC. Figure 2-2. Back Panel 3

16 2.3.3 Connect the Power Cable The 24V DC power supply is provided with the following features: > 3-prong wall connector for North American Outlets > Power Switch > Power indicator > 3-pin MTA-156 connector 1. Plug the 3-pin MTA-156 connector to the plug at the back of the pump labelled Power in the bottom right hand corner. Figure 2-4. Power Connection 2. Plug the wall plug into the wall power socket. 3. Note that the green indicator light on the power supply. If it is not on, switch the power switch on the power cable to turn on the power supply. 4. The LED light on the front face of the pump will be blinking blue after a short time, indicating that the power is reaching the pump and that it is ready to begin receiving commands Set Pump Address for Communication. The address switch on the back panel, as shown in Figure 2-5 below, is used to set the device address number. The default factory setting is 1, and can be adjusted with a small screwdriver. This setting is relevant to sending commands to the pump, and is addressed in Section Figure 2-5. Changing the Address Switch 4

17 2.3.5 Set Up Communications There are many different methods of communicating with the pump via the RS-232 port. We will cover Hyperterminal here, but keep in mind that there are other options Hyperterminal HyperTerminal allows monitoring of all pump responses to commands, without the filtering done by programs. The following setup assumes the default communications parameters of the DT protocol and 9600 baud. 1. Open HyperTerminal from the Start menu: Start > Program > Accessories > Communication > HyperTerminal. 2. At the name prompt, type Kloehn (suggested) and click OK. Figure 2-6. HyperTerminal Connection 3. Click Connect Using, select Com 1, and click OK. This will select the COM 1 serial port. If using another serial port, then select the port as appropriate. 4. In the properties window (see Figure 2-7) that appears, make these entries: a) Bits Per Second: 9600 b) Data Bits: 8 c) Parity: None d) Stop Bits: 1 e) Flow Control: None 5

18 Figure 2-7. HyperTerminal Serial Port Settings 5. Click OK 6. Go to the top line terminal menu and select File > Properties. 7. In the Properties window, click the Settings tab. 8. Click the ASCII Setup button and click to check the following boxes: > Send line ends with line feeds > Echo typed characters locally > Append line feeds to incoming line ends > Wrap lines that exceed terminal width Figure 2-8. HyperTerminal ASCII Setup 6

19 9. Click OK twice. 10. Go to the top line terminal menu and select File > Save As. Save the HyperTerminal setup as KLOEHN or as preferred. 11. Click OK. An icon named Kloehn (or the preferred name from step 2) is created in the HyperTerminal Window. Drag and drop this icon onto the desktop and use it for direct access to a pre-set version of HyperTerminal. Each time the HyperTerminal program is required in the future, click this new icon to start with a pre-configured HyperTerminal Check the Connection 1. Turn on power to the pump. The front LED should be flashing blue, indicating that it is idle. 2. With a syringe and valve mounted to the pump, press the HOME button on the front panel. The syringe then moves to a position a small distance below the top of the stroke. This position is internally fixed and is considered the soft limit. When the initialize move completes, the syringe motor power will be off. 3. After the pump has initialized, send the command /1?R and press Enter. 4. The pump should respond if the pump motor is busy, or ` if the move has finished. If this response is returned by the pump then proceed to the Configure the Pump section below. If another response appears, or no response appears, repeat all prior steps to ensure the process was done correctly. 2.4 Install the Syringe To install the syringe, first ensure that the valve is properly installed. 1. Turn on the power to the pump and send the syringe block to the end of its range, either 6k steps or 12k steps depending on the chosen options, using a move command. 2. Screw the syringe into the bottom of the valve. 3. Pull the plunger rod down until the plunger button is lined up with the travel block. Insert the syringe pin through the plunger button and screw it into the travel block. NOTE: The pump needs to be calibrated before use. See section 2.6 for more information. 2.5 Install the Valve 1. Place the valve into the mounting hole, ensuring that the back of the valve makes solid contact with the front of the NX3. 2. Securely screw the valve to the front plate using the holes locate on the left and right front of the valve. 2.6 Configure the Pump Set the Valve and Syringe Parameters 1. Locate the valve and syringe part numbers. 7

20 2. Assuming that the current pump is at address 1, the valve and syringe can be configured by sending the commands /1~Vn or /1~Vn,m, where n is the valve part number and m is the syringe part number. For more information, refer to the ~Vn,m command in section Calibrate the Syringe With the syringe and valve mounted to the pump, press the home button on the front panel. This will calibrate the syringe and set it to the home position Example Command Sequence: Positioning the Syringe Here we take a look at how some basic commands can be used. We will assume that the pump is set to address 1 and that the attached valve has at least 3 ports. Note that R is used at the end of each command. This indicates that the entered command (or series of commands) should be executed now. NOTE: Not all commands require this, such as configuration commands. Refer to section 5.1 for more information. 1. Send the command /1W4R. This will initialize the syringe as the home button on the front panel does. 2. Now, send the command /1A2400R. This will move the syringe to the absolute position Due to starting in the home position, this means that the syringe will aspirate 2400 steps. 3. Send the command /1o3R to the pump. This will move the valve to port C. The o command translates to a valve move and 3 corresponds to port C (1=port A, 2=port B, etc). 4. Lastly, send the command /1D1600R. This command tells the pump to dispense 1600 steps. From starting at the home position the syringe has now aspirated 2400 steps and dispensed 1600 steps. This leaves the syringe 800 steps from the home position. For more information on constructing and issuing commands, see section 5. 8

21 3 PUMP OVERVIEW 3.1 Introduction and Specifications The Kloehn NX3 Syringe Pump is a fluid dispense pump with exceptional volume dispense accuracy and precision. Additionally, this pump can be easily configured with multiple options to meet specific application or instrument requirements. The Kloehn NX3 Pump has three base models. > Level 1 A simple syringe drive > Level 2 Addition of manifolds, valves and/or syringe options built with the same robust syringe drive used in the Level 1 model > Level 3 Addition of an electronic control board and several options for communication and pump control to the Level 2 model IMI Norgren offers an extensive list of valves and syringes for use with the Kloehn NX3 pump. For more information on compatible valves and syringes please review IMI Norgren data sheets listed in Table 3-1, available on the website. Table 3 1. Valves and Syringes Data Sheets Device Face Valve Plug Valve Syringe V3 (3cm) Product Line Data sheet number PDS-0017 PDS-0016 PDS Environmental Table 3-2. Environmental Specifications Temperatures: Operating 15 C to 40 C (59 F-104 F) Humidity: Operating Noise: Storage Max 80% RH, non-condensing at 31 C (88 F) < 55dB -33 C to 71 C (-27 F to 160 F) Mechanical Table 3-3. Mechanical Specifications Max Fluid Pressures: With solenoid valve 3.4 bar (50 psi) Mounting Screw Torque: With rotary valve 339 mn-m (3 in-lbf), max 6.9 bar (100 psi) Power A 24V power supply capable of supplying 3.3A of continuous and 5A peak current is recommended. 9

22 Table 3-4. Power Specifications Voltage Current Consumption Power Consumption Backup Power for Real Time Clock 24 Vdc nominal, 720mV peak-to-peak maximum ripple Idle: 0.07 to 0.15 A Syringe or valve in Motion: 2.6 A Idle: 3W Syringe or valve in Motion: 32W Max Up to 2 weeks when backup capacitor is charged Communications The NX3 has three different methods of communication, RS-232, RS-485, and CAN bus RS-232 Table 3-5. RS-232 Specifications Baud Rate 1200, 2400, 4800, 9600 (default), 19200, 38400, 57600, Data Bits 8 Parity None (default), odd, even, mark, space Stop Bits 1 Handshake None (default), XOnXOff, RequestToSend, RequestToSend/XOnXOff Flow Control: None (default), CTS-RTS Logical Protocols Cavro: DT (default), OEM RS-485 Table 3-6. RS-485 Specifications Baud Rate 1200, 2400, 4800, 9600 (default), 19200, 38400, 57600, Data Bits 8 Parity None (default), odd, even, mark, space Stop Bits 1 Handshake None (default), XOnXOff Flow Control: None Logical Protocols Cavro: DT (default), OEM 10

23 CAN Bus A CAN Bus interface is included on the NX3 pump. CAN bus functionality is currently under development. Please contact customer service for information and support I/O Interface Most of the user inputs (#1 through #6) and all of the four user outputs are provided via a DE-15F connector on the back of the pump. The 6-pin header, also on the back of the pump, contains the two analog inputs and the Tamper Pin/user input #8. The Home Button on the front of the NX3 can also be used as user input #7. The pinout for the mentioned connectors, as seen from the back panel, are shown and described in Table NX3 Rear Panel Connectors Functions in section In total, the NX3 provides: > 6 digital inputs. > 1 tamper switch input (configurable as a digital input) > 1 push button configurable as a digital input > 4 digital outputs > 2 analog inputs Table 3-7. Digital Output Specifications Output Current 300 ma max User Clamp Current 300 ma max User Clamp Voltage 5-24V Output Voltage 75V maximum (external supply voltage) Output Leakage 100uA max Table 3-8. Digital Input Specifications Logic Compatability Logic true level Logic false level TTL, 5V CMOS <1.7V >3V, Open Circuit Table 3-9. Analog Input Specifications Input Impedence 50k ohms Resolution 12 bit, 1.22mV/LSB Conversion Time 16.4 µs Input Filter 130Hz lowpass 11

24 3.1.6 User Program Memory Table Program Memory Specifications User Program Capacity User Program size Program Retention up to 99 stored programs up to 99 commands 20 years minimum 3.2 Drivers Syringe Driver The syringe driver is designed to drive a syringe having a full-stroke length of 3cm with pressure up to 100 psi, at any speed (steps/second). The driver is available in two resolutions: 6000 steps and steps for the same 3cm stroke length Accuracy The accuracy of the pump is described by two parameters: Accuracy measures how closely a dispensed amount of fluid corresponds to the ideal programmed value. Precision describes the ability of the drive to deliver the same quantity of fluid for the same size programmed dispenses. For both, the given value is expressed as a percentage of 1/10th of a syringe stroke. Table 3-9. Accuracy and Precision Specifications Accuracy Precision 0.3% (% Error) 0.3% CV (1/10 stroke) Additional factors contributing to system accuracy are the total syringe size, any air bubbles or gaps, and any elasticity in the fluid path. The syringe tolerance is a maximum of total volume. This error contribution is proportional to the amount dispensed as a fraction of syringe volume. Air bubbles, gaps, and tubing elasticity can contribute errors due to compressibility or expansion of their volumes. Such errors are proportional to the positive or negative fluid pressures in the fluid path. For small dispensed volumes, the accuracy of the volume can be sensitive to the means by which the volume is removed from the probe or tubing tip. Any meniscus can contribute several microliters of dispense error. To minimize these errors, submerge the tip into the destination fluid or touch off the tip against the container. 12

25 Speed Syringe speeds are measured in steps per second. The definition of a step is one increment of motion in either the aspirate or dispense direction. Table Syringe Speed Specifications Normal Range 30 to steps per second Syringe Thrust and Pressure Syringe thrust is related to syringe fluid pressure by this relation: psi= x (Thrust-Friction)/ Volume Where: > Volume is the total rated syringe volume in millilitres (cc). > Thrust is the drive force in pounds > Friction is the syringe piston friction force in pounds. Syringe friction is larger for the larger syringes. Both the 6,000 and 12,000 step models can operate at up to 100 psi at any speed. The syringe will stall if the necessary syringe force to drive the fluid exceeds the pump capabilities Valve Driver The Valve driver controls a user-selected valve mounted to the faceplate of the pump. The valve driver is configurable for different types of valves. This allows the NX3 Pump to accommodate any of the available valve types without modification. Distribution and non-distribution types are available from two to six ports. 3.3 Mounting The mounting dimensions of the NX3 Pump are shown in Appendix A. NX3 Pump Mounting Dimensions. The drive is usually base-mounted using the holes in the bottom and top of the face plate Mounting Surface Requirements It is recommended that the pump be mounted to a solid base. If the pump is mounted to an instrument panel, reinforce the panel to create a very stiff, rigid surface. NOTE: If these precautions are not observed, vibrations from operating the drive may result in the instrument face resonating with the pump acoustics and amplifying all pump acoustics. Where possible, use vibration isolation material between the pump and the mounting surface to improve acoustic isolation from the mounting structure. A material such as Sorbothane (see is recommended. A gasket cut from a mouse pad can serve in a breadboard as a convenient isolator. When selecting a dampening material remember that different materials are acoustically transparent at some frequencies and acoustically opaque at other frequencies. 13

26 3.3.2 Base Mounting Base mounting uses the holes in the bottom edges of the faceplate. There are two M3 and two 4-40 tapped holes, as shown in the bottom view of the pump in the drawing in Appendix A Non-Standard Mounting Positions Inverted mounting Some situations can benefit from mounting the pump inverted, or upside-down, with the valve at the bottom. There are two M3 tapped holes and two unthreaded holes on the bottom faceplate. Sideways mounting The pump can also be mounted on its side in a horizontal position. The syringe can be positioned up, down, or facing to one side Instrument Enclosures An instrument enclosure should have good electrical conductivity to the system chassis ground. This reduces radiated emissions from the equipment. A wire from the pump chassis to the equipment chassis does not provide a satisfactory system ground because it does not provide the high-frequency transient conductivity required. If possible, a metallic enclosure or a plastic enclosure with RF shielding is preferred Air Flow and Ventilation Considerations The motor has been designed to operate below 90 C. This temperature is an Absolute maximum and therefore must have good natural convection air flow across the pump motor/motors. NOTE: If air flow is inhibited, the motors may overheat and fail prematurely. Adequate air venting for an enclosure is required for system reliability. In most applications, a large cooling air inlet at the bottom of an enclosure and an adequate hot air vent near the top can provide adequate ventilation. If a good natural convection air flow cannot be assured, it may be necessary to place a small fan at the lower rear part of the pump. In general, a 40 mm x 40 mm, 24 V, brushless DC motor fan works well. Unloaded flow ratings of 8 cubic meters per hour or higher are sufficient. Place a fan so that it faces the motor at the bottom of the pump. Cool air flow will enter from the bottom and heated air will exit at the top. When measuring the internal temperatures, a temperature probe placed into the center of the pump cavity is generally not adequate. The probe should measure the temperature on the inside of the left side plate near the front of the pump. NOTE: Do not exceed 40 C (104 F) ambient. 14

27 3.4 Wiring and Connectivity Rear Panel Connectors The NX3 Rear Panel contains the connections used to interface with the NX3 as well as the address switch. This panel is show in Figure 3 1. NX3 Rear Panel Connectors and Switch below. Figure 3-1. NX3 Rear Panel Connectors and Switch 15

28 Table NX3 Rear Panel Connectors Functions Reference # Name Description 1 ADC 6 pin MTA-100 connector. Pin Description 1 5V power 2 User ADC #1 3 User ADC #2 4 Ground 5 Tamper Pin 6 Ground 2 ADDRESS The Address Switch, shown in Figure 3 1. NX3 Rear Panel Connectors and Switch, sets the device address number. Using a small screwdriver, set the switch initially to 1 if not already set. 3 USER I/O DE-15F HD connector. Pin Description Pin Description 1 Voltage Clamp for user outputs (5V to 24V) 9 User Input #2 2 User Output #1 10 User Input #3 3 User Output #2 11,12 Ground 4 User Output #3 13 User Input #4 5 User Output #4 14 User Input #5 6, 7 5V Power Supply 15 User Input #6 8 User Input #1 16

29 Reference # Name Description 4 RS-485 Up to 15 devices may be operated on the same RS485 communications bus. Pumps may be addressed individually, in pairs, in groups of four, or all at once. A response from a device will only occur for individual addressing. In the multiple-device addressing modes, no device will provide a status response. Status messages are saved until an individual device is addressed. Both of these headers can be connected to using a 3-pin MTA-100 connector. Pin Description 3 Ground 2 Differential Pair B 1 Differential Pair A 5 CAN CAN bus 5-pin MTA-100 connectors. Pin Description 5 CAN Power* 4 CAN differential CAN_HI 3 Cable shield to chassis ground 2 CAN differential CAN_LO 1 Ground * NOTE: Can Power is disabled internally. To supply the CAN Bus with 24V, apply J8 (not accessible externally) 17

30 Reference # Name Description 6 RS-232 The RS-232 provides a communications I/O compatible with the serial ports found on PCs and controllers. A 9-pin DE-9F connector can be used to connect to the pump. The DTR and DSR pins are connected together. If a full COM serial port is used by the host (i.e. the PC serial port) a test can be made to determine if an NX pump is connected to the port by first asserting DSR and then reading back the DTR pin to verify it is the same state as DSR. Then deassert DSR and verify the DTR pin follows DSR. If the DTR input does not follow the DSR output pin status then either the wrong type of serial cable was used or the pump is not connected. Data and flow control signals are at RS-232 levels, approximately +7VDC (SPACE) and -7VDC (MARK). Pin Description Pin Description 1 No Connection 6 DSR 2 Transmit serial data out 7 Clear to Send in 3 Receive serial data in 8 Ready to Send out 4 DTR 9 No Connection 5 GND 7 POWER 24 Vdc Power. This header uses MTA-156 connectors. Pin Description 1 24V Power 2 Ground, power/signal return 3 Chassis ground 8 M3 Screw connecting to chassis ground. 18

31 3.4.2 Front Home Button & LED Pushbutton On the front panel, there is a single home button. This button will initialize the valve and syringe by moving the valve to port A and then calibrating the HOME position for the syringe. It can also be used as a user input LED The front LED has red, blue and green outputs. It is used to indicate the pump s current status, including errors. For more information on the LED s status and error codes, refer to section Wiring and Connectivity Inputs Analog Inputs Two analog inputs are built into the NX3. They are accessible from the back panel of the pump on the connector marked ADC. The analog inputs allow for 12-bit measurements of external analog voltages. These measurements expressed in units of millivolts (mv) between 0mV and 5000mV through indirect For Analog Input #1, the measured value is also available as a percentage (0-99) of 5V though the indirect Analog Input #1 can also be used for program flow control though the Cavro commands i>np and i<np. It is important to restrict the input voltage range to 5V or less to avoid damaging the pump. Both inputs, Analog Input #1 and Analog Input #2, have the following equivalent circuit: Figure 3-2. Analog Input Equivalent Circuit Digital Inputs Three protected digital User Inputs are provided on the User I/O connector. Each of these User Inputs can be queried at any time, including during pump operation and while an internal program is executing. These User Inputs are commonly used to control the pump operation. Inputs are compatible with CMOS and TTL logic operating from 5V supplies, with other pump s digital outputs, and with external switches. An On input is less than 1.7 V. An Off input is more than 3 V, or an open circuit. NOTE: Do not apply voltages greater than about 5 Volts to a User Input. Doing so can damage the circuit board. 19

32 The effective circuit for all of these inputs is shown below in Figure 3 3. Effective Digital Input Circuit Figure 3-3. Effective Digital Input Circuit Tamper Pin: The Tamper Pin will clear the backup memory when a normally open switch, connected to the Tamper Pin and to ground, is closed. It can also be configured as User Input #8 by setting flag 32, where it will also record the last time that the input was pulled low into the indirect The timestamp function (as well as the Tamper Pin function) will continue to work after the main power has been removed as long as the backup supply remains charged. In order for the timestamp function to work, the real time clock needs to be set. To set the time of day and the date, set the using the format HHMMSS. For example, /1z#@83= will set the time of day to 8:35:00 AM. The date can be set by setting the the same way using format YYMMDD. For example, the command /1z#@84= will set the date to June 29th, NOTE: When the backup power has been discharged and the pump is unplugged, the real time clock will no longer be accurate and will need to be reset. 20

33 With the date and time set, pulling the Tamper Pin low will record the date of that event. The effective circuit for connecting to this input is shown below. Note the internal pull-up resistor, unlike User Inputs #1-6. Figure 3-4. Effective Tamper Input Circuit Input triggering For the digital user inputs, a transition from logic low to high (the falling edge from 5V to ground), triggers a logic high value to be latched. The input can go low again, but the input will be read as a 1 until the latch has been cleared. Except where otherwise noted, the user input latch is cleared when it is read or used by a command. Some queries or indirect values, where noted, such as?4, read the actual value at the input, but generally the latched value is read. There are flags that control whether or not a User Input is edge triggered or the current value at the input is used. Refer to section for a list of all flags Outputs Four user outputs are provided on the User I/O connector. Each output is an open collector output that can sink up to 300mA continuously. There is also a User Clamp pin on the User I/O connector that can limit the output to a voltage provided by the user. The effective circuit for connecting to each digital output is shown below in Figure 3-5. Effective Digital Output Circuit: 21

34 Figure 3-5. Effective Digital Output Circuit 3.6 Use of Commands General Command Structure A command is an instruction to the pump to perform a single action such as move the syringe or turn the valve. Multiple commands can be combined to form command strings. Command strings, also called programs, can perform complex tasks consisting of many operations, including decision making. A command consists of ASCII characters and contains two parts: > The command A case-sensitive letter which represents a specific type of action to perform. > Its argument Follows the command letter and determines how the command will execute. For example, the command D1200 tells the pump to dispense (D) 1200 steps. Some commands have two arguments two arguments. If the two arguments are numbers, the are separated by a comma, such as ~V30142,23170 which configures the pump to use the Kloehn valve and syringe with part numbers and 23170, respectively. Some jump commands have a slightly different format with two commands. The first is a number which works the same way as for other commands. The second is a letter that determines what the outcome of the decision will be depending on the circumstances. For example, for command i2f, the 2 is for a low level. If the level is low, the program goes to the label F (a label is a place marker in a program) Command Addressing All commands and command strings must begin with a device address. The device address determines which devices will respond to a particular command string. In this way, many devices can be connected together on a single communications line without interfering with each other. The character which signifies an address is the forward slash (/). When the forward slash is seen by a pump, the pump reads the ASCII character which follows as an address to determine if that pump should accept the command string. An individual pump s address is set via the address switch. For example, if the address switch is set to 3, a command string which begins with /3 will be accepted by the pump. If the string were to begin with /2, the pump would ignore the string. Pumps may be addressed individually or in groups. Groups can be in pairs, groups of four, or all pumps on a single communications line. The details of pump addressing are given in Individual Device Addressing, section 3.8.1, and Multiple Device Addressing, section

35 3.6.3 Pump Replies When the pump receives a command string, it checks the string for correctness and sends a reply. The reply always begins with /0 which is the address of the PC or controlling device. At least one character follows immediately after the /0. This character is the status byte. The status byte informs the controller of the current status of the communication and the pump Status Byte types The two status types are OK and Error. There is a unique letter assigned to each type of error the pump can recognize. For every error, the status letter can be upper or lower case. If the status byte is capitalized, the pump is busy doing something. If the status byte is lower case, the pump is not busy, and is ready for another command. The OK status has two special characters to indicate busy or ready. The accent grave mark (`) indicates a ready status and the ampersand (@) indicates a busy status. A typical response is /0` or /0@. These responses indicate the pump and the command string are OK Queries Most command strings cannot be accepted until the previous command string is completed. Queries are the exception to this rule. A query asks the pump to report information, not perform an action. Enter a query any time and it will be answered when it is received, even if the pump is busy. 3.7 RS-232 Communication Options RTS/CTS Flow Control For high speed operation without data loss the RTS/CTS flow control pins can be enabled. The NX Controller will assert the RTS pin when the controller can receive data. Conversely, the NX controller will transmit data only when the CTS pin is asserted by the host. Hardware flow control should not be enabled unless supported on the host side, and hardware flow control pins are wired on the serial cable used. 3.8 Communication Via RS-485 The RS-485 bus supports up to 15 devices, plus a PC host controller. Each device can be addressed individually, in pairs, in groups of four, or all at once. A response from a device only occurs for individual addressing. In the multiple device addressing modes, no device provides a status response. Status messages are saved until an individual device is addressed. Commands always originate from the PC host controller at address 0. Commands are never sent to the host. Commands are sent using the ASCII code shown in the tables in the following sections. For example, if you want to have the pump with the address switch set to 1 report its status, you would send the command /1. On the same note, if you want to have the pump with address switch set to E report its status, you would send the command />. 23

36 3.8.1 Individual Device Addressing Individual device addressing is used to communicate with one pump at one time. The addresses and codes related to this setting can be seen below. Table Individual Device Addressing Switch Setting Hex Address ASCII Character Switch Setting Hex Address ASCII Character 0 Reserved for controller Reserved for controller A 3A : B 3B ; C 3C < D 3D = E 3E > F 3F? Multiple Device Addressing Dual Device Mode In the dual device addressing mode, a group of two pumps is addressed. In this mode, individual devices do not provide status responses to commands. Table Multiple Device Addressing Pump Group 1,2 3,4 5,6 7,8 9,A B,C D,E Hex Address B 4D ASCII Character A C E G I K M Quad Device Mode In quad device addressing, a group of four pumps is addressed. In this mode individual pumps do not provide status responses to commands. Table Quad Device Addressing Pump Group 1,2,3,4 5,6,7,8 9,A,B,C D,E,F Hex Address D ASCII Character Q U Y ] 24

37 Global Mode In the global device addressing mode, all devices on the bus are simultaneously addressed. In this mode individual devices do not provide status responses to commands. The address character is the underscore, _ or hexadecimal 5F Communication Protocols Over RS-485/RS-232 The communications software protocols are the command and response format used to send Cavro commands and receive responses from pumps over RS-485 and RS-232. There are two Cavro protocols: > DT (Data Terminal) The DT protocol is a simple data terminal protocol that is compatible with nearly all terminal emulation programs and basic communications drivers. This is the preferred protocol in most situations > OEM (Original Equipment Manufacturer) The OEM protocol provides explicit error checking and a repeated-command sequencing algorithm. These features are not implemented in any standard terminal programs. Kloehn offers software which can communicate using this protocol DT Command Protocol This section describes the command package of the DT protocol. A command packet is a sequence of bytes sent by a host computer from the host to a device. Table Packet Description for DT Command Protocol Byte # Description ASCII HEX 1 Reserved for controller / 2F 2 Address Character See Individual and Multiple Device Addressing Sections above 3 to N Command Characters See Commands, Section 5 N+1 End (Carriage Return) <CR> 0D Explanation of bytes: Byte 1: The starting character signals the beginning of the new packet. It is the front slash character (/) on the computer keyboard, 2F hex. Byte 2: The device address is an address number for a device for a group of devices. It can address a total of 15 devices in the network mode. Byte 3: The command or a sequence of commands starts with byte 3. A command or a command sequence with length n bytes uses byte 3 to byte 3+n-1. Byte 3+N: The ending character indicates the end of a packet. It is 0D hex, the carriage return on the keyboard DT Response Protocol The section describes the device response packet format of the DT protocol. The device response packet is a sequence of bytes sent by a device from that device to a host computer after receiving a command package. 25

38 Table Packet Description for DT Response Protocol Byte # Description ASCII HEX 1 Start Character / 2F 2 Controller Address Status Byte See Commands, Section 5 4 to N Response (if required) See Status and Error Messages, Section 9.1 N+1 End of Text <ETX> 03 N+2 Carriage Return <CR> 0D N+3 Line Feed <LF> 0A N+4 End (Blank) <Blank> FF Explanation of bytes: Byte 1: The starting character. 2F hex signals the beginning of a new packet and is the front slash character (/) on a computer keyboard. Byte 2: The host address, 30 hex (ASCII 0 ), is the address number for the host computer. Byte 3: The status and error byte describes the device status and errors. Byte 4: There may or may not be response byte(s) for a command. In general, all query commands, read an input value commands, and configuration query commands (~A, ~B, ~P, ~V, etc. ) cause response bytes. Other commands do not cause a response. Byte 4+n: The end-of-response mark is 03 hex. Byte 4+n+1: The carriage return is 0D hex. Byte 4+n+2: The end of packet character is the line feed character, 0A hex. Byte 4+n+3: The extra ending character, FF hex, is an extra character to ensure the packet is properly sent. This character might not be displayed by the host terminal OEM Command Protocol This section describes the command packet format of the OEM protocol. The OEM command format is identical to the Cavro OEM protocol. The command packet is used to send commands from the controlling host device to the syringe drive. Explicit synchronization and error checking are key aspects of this protocol. Table Packet Description for OEM Command Protocol Byte # Description ASCII HEX 1 Reserved for controller / 2F 2 Start Transmit Character <STX> 02 3 Device Address See Individual and Multiple Device Addressing Sections above 4 Sequence Number See Explanation of Bytes below. 5 to 5+N-1 Command(s) (n bytes) See Commands, Section 5 5+ N End of Command(s) <ETX> 03 5+N+1 Check Sum See Explanation of Bytes below. 26

39 Explanation of bytes: Byte 1: The line synchronization character, FF hex, indicates a command packet is coming. Byte 2: The start transmit character, 02 hex, signals the beginning of a new packet. Byte 3: The device address is an address number for a device or a group of devices. Up to 15 devices can be addressed. Byte 4: The sequence number if an error occurs during the communication. If this happens, the host sends the last packet again to the device with a new sequence number. The sequence number starts with 31 hex (ASSCII). When repeating a command, the host sets bit 3 of the sequence number byte to 1 and increases the sequence number by 1. The valid sequence numbers are hexadecimal 31 for the first packet, hexadecimal 3A for the second packet (the first repeated packet), 3B for the third packet, and so forth. The maximum number of repeats is 7 with a sequence number of 3F. Byte 5=n: The end-of-command(s) character, 03 hex, indicates the end of a command or command sequence. Byte 5+n+1: The check sum is calculated by an exculpated-by exclusive or operation on all bytes except line synchronization byte and check sum byte OEM Response Protocol This section describes the response packet format in the OEM protocol. The OEM response format is identical to the Cavro OEM response format. The responses from the syringe drive to the controlling host device. Table Packet Description for OEM Command Protocol Byte # Description ASCII HEX 1 / 2F 2 Start Transmit Character <STX> 02 3 Host Address Sequence Number See Status and Error Messages, Section to 5+N-1 Response, if any (n bytes) See Commands, section 5 5+N End of Response Mark <ETX> N+1 Check Sum See Explanation of Bytes below. 5+N+1 Extra Ending Character <blank> FF 27

40 Explanation of bytes: Byte 1: The line synchronization, FF hex. Byte 2: The starting character, 02 hex, signals the beginning of a new packet. Byte 3: The host address, 30 hex, is the address number for the host computer. Byte 4: The status and error byte describes the device status. Byte 5: There may or may not be response byte(s) for a command. In general all query commands, read input commands, and configuration commands (~A,~B,~P,~V, etc) produce response bytes. Other commands do not produce a response. Byte 5+n: The end-of-response mark, 03 hex, indicates the end of the response byte(s). Byte 5+n+1: The check sum is calculated by an exclusive or operation on all bytes except the line synchronization byte and the check sum byte. Byte 5+n+2: The extra ending character, FF hex, is an extra character to ensure the packet is properly sent. This character might not be displayed in the host terminal Connecting Multiple Devices Up to 15 devices can connected to the same RS-485 communications bus. The bus consists of three wires: A, B, and a signal ground to the interface that is normally done via pins on P1. A proper bus structure consists of the twisted-pair bus wiring and termination resistors at each end of the bus Bus Wiring The bus wiring should connect all RS-485 A pins to one wire, all B pins to another wire, and all Com ground pins to a third wire. The connections begin on the device and proceed from that device to the next device. Another three wires that connect one device to the next should be twisted together with a twist rate from one to three twists per inch. NOTE: Pumps on the RS-485 bus MUST be wired from pump to pump in series Bus Terminations Each end of the bus must be terminated in a network which both terminates the bus and provides the proper impedance. Terminations are made only on the first and last devices along the bus. Terminating networks are provided on each pump for these purposes and are enabled or disabled in the firmware using the ~Bn,t command. In the command, n is the baud rate for the RS-485 network and t sets the termination. 28

41 Table RS-485 Baud Rate and Termination Modes n Baud Rate t Termination Mode Termination off Termination on [default] 2 Termination off, except node #1, and # Invalid Changing termination mode requires a reset after the change has been saved to non-volatile memory using the! command. This allows you to turn the pumps off and change the order or addresses to be properly terminated. NOTE: Only the pump at each end of the RS-485 bus can have the RS-485 should have termination on. All pumps between the two must have termination off. Since the default has termination off for all pumps that are not assigned the address 1 or 15, an easy way to terminate a planned connection of pumps is to disable termination for 1 and 15 if they are in the group (and not at the ends) by connecting them individually via RS-232 and using ~Bn,t and!. Then individually connect the pumps that are to be terminated and enable termination on them using ~Bn,t and!. They can then be connected as planned Communication Checks This section presents some procedures to determine if a device is communicating with a host controller. The checks are predicated upon the use of some form of terminal emulator program running on a PC. This is a type of program which sends ASCII characters typed on the keyboard to a serial port and displays the ASCII responses received. Before using such a program, check the address switch to make sure the pump is set to the desired position on the RS-485 bus. The address switch setting determines the value which must be substituted for the notation <addr>. Each new command string must begin with a forward slash (/) followed by the value of <addr>. Each command string must end with a carriage return (the Return or Enter key). See Commands, section 5, for the command syntax. Note that each key is sent when the key is pressed, so typed characters cannot be edited. Editing keystrokes are sent to the syringe drive and result in syntax errors. After the communications wiring is connected and the PC serial port cable has been connected to the first device on the bus, turn on the pumps. When the power up valve move is complete, send a query for the module status as shown here: 29

42 For example, enter /1 to query the status of pump # 1. The response is /0` which indicates not busy, no errors. If a response occurs, communications are operating properly. A valid response from a communicating module always begins with /0. This is the default address of the host controller. If there are no errors to report, the next character after the 0 is either an accent grave ( ` ) The accent grave signifies that the module is not busy and is ready to accept any commands. signifies that the module is busy and therefore only queries and the terminate ( T ) commands are acceptable. If the query is sent while the power-up initialization sequence is in progress, no response is seen. The pump does not accept commands until the power-up sequence is completed. If either an accent grave ( ` ) is not returned, and a letter is returned in its place, then the module is reporting an internal error condition. If there is no response, then the pump is not powered up, the communications hardware connection is not properly made, or the communications program is either not properly configured or not operating correctly. Check the following items: > Make sure that the communications connector is inserted properly into the RS-232 connector and NOT into the RS-485 connector. > Try another Com port selection. Using a voltmeter with the communications cable connected to the RS-232 pins on P1, measure voltages from the GND pin to the RXD IN pin and the TXD OUT pin. Each should measure -6 VDC to -15VDC. If they do not, the following errors may exist. If RXD IN fails the check, the host PC port is not functioning, the communications cable is defective, or it is plugged in backwards. If TXD OUT fails the check, the RS-232 converter board or the communications cable is defective, or the module is not powered Line Turnaround: When the Cavro protocol is used with half-duplex RS-485 serial lines one consideration is the turnaround, the time required for the transmission line to change direction between receive and transmit. Pumps will remain in receive mode until a response is required. The line turnaround configuration command ( ~Dn,m ) is used to modify the line turnaround delays for the RS-485 serial port. The first parameter determines the delay at the local node for switching from transmit to receive mode, after the end of an incoming message. The second parameter sets the delay time at the local node when switching from receive to transmit mode, after the last bit of an outgoing message has completed. 30

43 This second parameter is important for compatibility with older V-Series pumps or the Kloehn RS-232 to RS-485 converter board. Legacy Kloehn RS-485 interfaces use a 12ms hardware timer to hold the transmission line open after the last bit of a message has been sent. If the NX Controller attempts to send a message before the 12ms timer has expired there will be a collision with two transmitters enabled on the RS-485 bus. If there are no legacy RS-485 interfaces on the bus then the receive-to-transmit delay should be slightly longer than the transmit-to-receive delay. The NX Controller ensures the last bit is always completed before a line turnaround in either direction. Transmitting a data packet to the pump on a RS-485 port, the inter frame timeout should not exceed a max of 10ms at a slowest baud rate and a minimum of 1.75 ms at a fastest baud rate. Or, the inter frame timeout should be between 1.75 ms and 10 ms depending on baud rate used. 3.9 Communication Via CAN Bus A CAN Bus interface is included on the NX3 pump. CAN bus functionality is currently under development. Please contact customer service for information and support. 4 PROGRAMMING TECHNIQUES 4.1 Program Memory The NX3 has the ability to store and execute command strings. A command string is a group of commands that run together, without spaces, to form a single line of legal ASCII characters. Such a string is also called a program. For example, the following commands: I Move valve to input position A0 Move syringe to fully-closed position A3000 Fill syringe M500 Delay 500 milliseconds O Move valve to output position D1500 Dispense half of syringe can be placed into a single command string (program) as follows: IA0A3000M500OD1500 In a command string, each new command executes immediately after the preceding command has completed. The command sequence runs in the minimum possible time without the need to query the drive to determine whether it is busy or ready for the next command, which eliminates much communications overhead. This type of program executes immediately or sometime after the program is sent to the drive. It can be executed from temporary memory (RAM) or from non-volatile memory (NVM). 31

44 4.1.1 Temporary Memory When a command string is sent to the drive, the string is entered into temporary memory (RAM). This memory retains its contents while power is applied to the drive unit. When power is removed, the contents of RAM are lost. After a command string is executed, it can be repeated by sending the X command. To execute a program at the time it is sent, append an R (run) command to the string. If no R command is appended, the program executes when a subsequent R command is sent. If another command is sent after the program string and before the R, or if the R is appended to another command, the original program string is overwritten by the last command string. For example, the command D1000R executes as soon as it is received by the drive. The command D1000 is stored into RAM, but does not execute until a separate R is sent Non-Volatile Memory Non-volatile memory (NVM) retains its contents for at least 20 years without power. Thus, the NVM acts as a solid-state disk drive. Up to 99 programs can be stored in the NVM. There is no practical limit on the number of times a stored program can be read or executed. NOTE: The maximum number of program saves to the NVM is 100,000. After this, the integrity of a saved program cannot be guaranteed Saving and Erasing a Program A program string is saved into the NVM by sending it to the RAM without an R command appended, and then sending the En command as a separate command. When the En command is received, the string in RAM is transferred into the NVM and stored as program number n, where n is a number between 1 and 99. To erase a command string in NVM, either overwrite it with another command string or send the en (erase) command. Because of the limitation on writes, NVM should not be written every time an application is run. Use it to store a command sequence or program if that program will be long-lived in the application. Short-term programs such as programs which can change often should be executed from RAM. Some programs which vary in the numbers but not in the structure can use accumulators Listing a Program A program saved into NVM can be queried with the qn (program query) command. When the qn command is received, the drive responds by sending the complete command string, if any, found in the NVM. The command string is terminated with a period. If no command string is found, only the period is returned after the status byte Auto-Starting a NVM Program The NX3 has the ability to automatically begin executing a program stored in NVM when power is applied. This feature is known as Auto- Start. This feature is useful for those applications which may require rapid and automatic pump initialization or in cases where a program sequence is controlled with User Inputs or expansion I/O. The Auto- Start feature is enabled by setting the ~An parameter to the script number that the pump should start with. The Auto- Start can be disabled by setting the ~An parameter to 0 with the ~A0 command. These commands do not require the R command. Any one of the 99 stored scripts can be used with Auto-Start. 32

45 When writing an Auto-Start program, remember that if the syringe position has changed since the last time it was powered or the backup power has been lost the syringe cannot be commanded to move until it has first been told to initialize to the soft limit with a W4, Y4, or Z4 command. However, all commands other than a syringe move command can be executed before (or without) executing a W4, Y4, or Z4. It is recommended that one of these commands, followed by an absolute position move to the zero position ( A0 ), be included at the beginning of an Auto-Start program. 4.2 Pump Programming Tips This section offers techniques for programming the pump using pump command strings. These techniques extend the usefulness of the pump Programming Error Traps Errors can occur during operation of the pump. Errors can range from incorrect commands to motor overloads. The pump can detect most error conditions. For some systems, the robustness of the design can be enhanced by programming the pump to take corrective action automatically. This is called trapping and the part of the user program designed to handle the error is called the error handler or exception handler Error Trapping Example Trap a syringe overload error. Save the value of the syringe position, initialize the syringe to the input port, then return to the stall position and continue the dispense cycle. This assumes the dispense was intended to deliver all the contents of the syringe. In the main user program, the trap is set by declaring x9v. If a syringe overload occurs, go to label V. At the end of the program, where error handlers are normally located, the handler might be as follows: :V Identifies the start of the handler (label used in trap instruction above). k@7 Stores the current syringe position in the software counter for later use. k^1 Exchanges with the counter memory #1. k@6 Saves the current valve port position in the software counter. Y4 Initializes the syringe to reservoir port. The port is set by the ~Yn command. o@5 Moves the valve back to the previous port position. k^1 Places the previous syringe position back in the software counter. A@5 Moves the syringe back to the stall position. A0 Completes the dispense. t1 Resumes the program execution with the next instruction. 33

46 Limitations There are some limitations on error trapping. The error trapping feature is designed to provide a graceful recovery from errors, but it cannot fix system errors. Any error induced by mechanical or fluidic problems cannot be fixed by a program. Such things must be fixed at the external root cause. In some cases, a syringe overload might be handled by reducing the syringe speed and trying again. Example: Recover from a valve overload by initializing the valve and then repeating the valve move. An error cycle counter is included to prevent a run-away loop. In the main program, zero the counter memory #2 and declare a trap: k^2 Exchanges the counter with counter memory #2 (preserves k value). k0 Sets the current counter to zero. k^2 Restores the current counter and places the zero in counter memory #2. x10p If a valve overload (error #10) occurs, goes to program label p. At the end of the program, where error handlers are normally located, the handler might be as follows: :p Identifies the start of the handler (label used in trap instruction above). o1 Initializes the valve position. k^2 Gets counter #2. k+1 Increments the error loop counter. k>5q If there are more than 5 valve errors, goes to label q. k^2 If not, restores the previous counter value. t4 Tries the valve move again. :q Label q means there are more than 5 valve errors (from k>5q). k^2 Restores the previous counter value. U3 Signals a terminal error (via User Output #3). t3 Does a normal program error exit (stops the program and makes an error message). In the preceding example, the t4 exit retries the instruction which caused the error. If the initialize move works, but there are more than 5 retries without success, the handler exits the program after setting an external error signal. If the initialize move fails, a program exit occurs. If an error occurs while in the error handler routine, a normal error exit takes place, superseding any user error handler. NOTE: If an error occurs while an error handler is executing, the program will perform a normal program error exit, regardless of the error handler. Example: If any error occurs, set User Output #2 to low, set User Output #1 to high, save the current Digital Voltmeter input value, and then exit the program. Set the error trap in the main program: x*s if any error (*) occurs, go to program label s. 34

47 At the end of the program, where error handlers are normally located, the handler might be as follows: :s Label that marks the start of the error handler. U2 Sets User Output #2 to low. u1 Sets User Output #1 to high. Saves the current Digital Voltmeter input value. t3 Does a normal error exit Setting Syringe Speeds For most applications, the factory default values for syringe accelerations and speeds are adequate. Usually, only the top speed is changed for different syringe rates. If the top speed is set lower than the start speed, the pump will begin a move at the top speed. If the top speed is set lower than the stop speed, the move will end at the top speed. For this reason, values of top speed which are set lower than either the start speed or the stop speed do not require any adjustment in start speed or stop speed. The default values of the tart and stop speeds have been set to perform well for nearly all normal applications. On occasion, it may be useful to change the speeds from the default settings. This section explains the considerations involved. The syringe uses three speeds and two accelerations which can be set. The speeds are Start Speed, Top Speed, and Stop Speed. The two accelerations are the Ln and ln values which set acceleration and deceleration rates, respectively. The syringe motor does not start at zero speed and accelerate smoothly to the top speed (at which syringe moves normally occur). Rather, the motor jumps abruptly from zero to the start speed and then accelerates smoothly to the top speed. The move proceeds at the top speed. As the destination is approached, the motor decelerates from the top speed to the stop speed. When the stop speed is reached, the motor performs an abrupt stop at the target position. The speed profile is thus trapezoidal. 35

48 Figure 4-1. Acceleration Example If a high top speed and low acceleration are combined with a very short move, the syringe speed may not reach the programmed top speed and the profile of the following figure will result. Figure 4-2. Slow Acceleration Example In actual practice, a typical move spends nearly all the time at the top speed and the acceleration and deceleration are very small parts of the total move. 36

49 When selecting Acceleration and Top Speed, there is a trade-off between the two values. The acceleration of the system inertia (pump inertia + fluid inertia) uses part of the available motor power. The motion of the fluid requires additional motor power to overcome backpressure. If the sum of acceleration power and back-pressure power exceeds the capacity of the motor, the syringe motor will stall and the pump will generate a syringe overload error. One or both of the values for Top Speed and Acceleration would need to be reduced Counting Program Cycles The number of times a given event has occurred can be determined with the Software Counter. In the example below, the number of times a programmed dispensing sequence has occurred is counted so a controller can query the pump to determine the number of dispenses which have occurred since the program was initiated. For example, count the number of times a dispense has been made in an automated dispensing cycle: K0 Sets the counter to zero (start of dispense program). :B Marks the start of the filling of the syringe. o-1 Moves the valve to the reservoir port. A48000 Fills the syringe (48000-step model). O3 Moves the valve to the dispense port. :A Marks the start of the dispense loop. Y<1500B If there is not enough left to dispense, refill (goes to label B ). D9600 Dispenses 20% of a syringe (48000-step model). K+1 Increments the software counter. JA Does another dispense loop. In the example above, the program begins by setting the counter to zero. The syringe is refilled each time the syringe position is too small to do another dispense. After each dispense, the counter is incremented by 1. The counter can be queried at any time to read how many dispenses have occurred. The complete program string is: k0:bo-1a48000o3:ay<1500bd9600k+1ja Converting Volume to Steps The conversion of syringe volume to steps (syringe increments) can be easily done using a proportion. Steps required / Total steps in full stroke = Desired volume / Total volume of full stroke For example, assume a total syringe volume of 5mL (5000uL), a desired volume of 250uL, and a step model syringe drive. The required number of steps can be found by solving: Steps required = 12,000 * (250/5000) Steps required =

50 The preceding proportion can be used to find speeds also if the steps required is replaced with steps per second and the desired volume is replaced with volume per second. For example, assume a totally syringe volume of 5mL (5000uL), a desired.5ml per second (500 ul/second) dispense, a step syringe drive. The required speed, steps per second, can be found by solving: Steps per second = 12,000 steps * ( (500 ul/second) / 5000 ul) Steps per second = 1,200 steps per second to achieve the example desired flow rate, 500 ul per second. 4.3 I/O Interface Programming User Inputs and User Outputs (I/O) can be used to perform a variety of interfacing tasks. In stand-alone operation, without a serial communications controller, the I/O can be used to trigger program operations and to indicate operational status. In multiple-pump operations, the I/O can be used to coordinate and synchronize the operations of the pumps. One special case is the synthesis of continuous fluid flow using two pumps. This section provides some interfacing techniques to aid in using the pump I/O Waiting for an Input In many applications, it is desirable for a pump to wait for an external input signal to start an operation. Test-and-jump commands are used to sense the state of an input signal at a User Input and control the program operation. There are two basic scenarios: > Wait for a high level > Wait for a low level Example: Wait for a High Input Level :A Program label A i2a If User Input #2 is low, goes back to label A When User Input #2 goes high, the i2a instruction is false and the jump back to label A is not taken. The next instruction in the line is executed. It should be noted the User Inputs have internal pull-up resistors, so in the absence of a signal connection, the default input level is high. Example: Wait for a Low Input Level :r Program label r i3t If input #3 is low, goes to label T Jr Always jumps to label r :T Label T While the input is high, the test for User Input #3 to be low fails and the jump to T is not taken. The next command, Jr, is therefore executed. The Jr command sends the program execution back to the r label and the test repeats. When User Input #3 goes low, the jump to label T is taken. Label T then leads to the next instruction in the program. 38

51 4.3.2 Analog Input #1 as a Selector Switch Analog Input #1 can be used as a selector switch. If repeatable voltage levels can be applied to Analog Input #1, a series of tests can be made to determine what the program should do next. These levels can be generated from a digital-to-analog converter or from a series of resistors soldered around a selector switch to form a tapped voltage divider. In the following command sequence, each test level is chosen to be halfway between the actual voltage levels, not at the voltage levels. This is done for noise immunity. For example, assume six discrete voltage levels at 0, 1, 2, 3, 4, and 5 volts. The test thresholds are at 0.5, 1.5, 2.5, 3.5, and 4.5 volts for a total of five possible selections. The actual test numbers are found as: number = volts / 0.02 Selection 1: 0.5 volts = 25 Selection 2: 1.5 volts = 76 Selection 3: 2.5 volts = 127 Selection 4: 3.5 volts = 178 Selection 5: 4.5 volts = 229 The test sequence uses the numbers calculated above. :A Labels that mark the start of the test loop. i>229b If the selection is 5, goes to label B (start of selection 5). i>178c If the selection is 4, goes to label C (start of selection 4). i>127d If the selection is 3, goes to label D (start of selection 3). i>76e If the selection is 2, goes to label E (start of selection 2). i>25f If the selection is 1, goes to label F (start of selection 1). JA If there is no selection, tests the loop again. The order of the tests is critical. If the order were reversed, all selections would satisfy the test for selection 1. Each label B through F denotes the place in the program at which the commands for each different selection begins. The command sequence of reach selection must end with a jump back to Label A ( JA ) so the selection process continues when each selection is done. Voltage conversions are not exact, so a range should be used when testing instead of a precise value. There is some inherent jitter in both the conversion process and the tolerances in the components used to generate the voltage. The example above uses the midpoints between discrete voltage levels to define the test range Position Snapshots The pump provides a means to record the precise location of the syringe at the time of an external event. Such information is useful in titrations and other applications in which an external sensor detects an event while the syringe is in motion. Although the syringe position can be queried while the syringe is in motion, the communications overhead prevent the exact syringe position from being determined through on the fly position queries. 39

52 The snapshot feature overcomes these limitations and provides exact measurements. The snapshot feature uses the input pin assigned using the ~Mn,m function and is enabled or disabled with flag 14. Each time the input transitions from high-to-low, the current position of the syringe is stored in memory. The snapshot memory retains the four most recently captured positions in a stack. Each time a position is captured, it is placed at the top of the stack. Every time a position is queried, it is removed from the top of the stack. If the stack is full, the oldest position is discarded. The two most recent positions can be queried at any time with the?29 command. The most recent captured position is also available in the indirect When the memory is empty, -1 is reported for a position. The snapshot feature is very useful for titrations using optical detection, where the detector outputs a double pulse and the two positions at the time of the pulses must be known. It is also useful in any application in which the amount to be dispensed is unknown in advance and must be determined on the fly during the process A Binary Input Selector In some applications, one of several selections must be made via a selector switch or PLC logic lines. The most economical approach is to encode the inputs as binary numbers. This section describes a way to program a binary selection tree. This is a way of making the input bits act as if they have a binary weighting (e.g., 1, 2, 4, etc.). This illustration uses all three inputs as a seven-way selector. The expansion I/O could also have been used to input the bits with the same instructions. Figure 4-3. Binary Input Selector Example shows a flow chart of the algorithm. Figure 4-3. Binary Input Selector Example 40

53 The corresponding commands are: :A Label A marks the start of the selection tree. i3k Is User Input #3 on? If yes, goes to label K. i2l Is User Input #2 on? If yes, goes to label L. i1b Is User Input #1 on? If yes, goes to label B. JA Goes to label A (no selection). :L Label L. i1d Is User Input #1 on? If yes, goes to label D (selection = D). JC Goes to label C (selection = C). :K Label K (second half of the binary tree). i2m Is User Input #2 on? If yes, goes to label M. i1f Is User Input #1 on? If yes, goes to label F (selection = F). JE Goes to label E (selection = E). :M Label M. i1h Is User Input #1 on? If yes, goes to label H (selection = H). JG Goes to label G (selection = G). A three-way selection tree uses only the commands from :A through JG. Each of the labels B through H is the start of the command sequence which corresponds to the input selection. Each selection command sequence must end with a JA (jump to label A ) so the input selection procedure can continue when a process is done. Note the selection A goes back to the start of the selection tree. This is done to provide a no selection position. If some other means of initiating the selection process (other than a valid selection) is used, then label A can be used for an eighth selection Connecting the User Outputs The User Output #1, #2, #3 and #4 are suitable for driving a variety of loads. The open drain MOSFET outputs can drive up to 300 milliamps (ma) and withstand voltages to 48 Volts, with peaks up to 70V. Inductive loads, devices like relays or solenoids which incorporate a coil can discharge a significant amount of current when turned off. This is called an inductive load. Each User Output includes integral protection against inductive turn-off transients (See Figure 3-5. Effective Digital Output Circuit). The zener diodes trigger at about 48 volts across an inductive load during the current decay to speed up the inductive load turn-off. Typical inductive loads are solenoids, solenoid valves, relays and small DC motors Logic loads Logic loads, such as CMOS and TTL inputs, require a pull-up resistor to the logic supply voltage, as shown below in Figure 4-4. Examples User Output Connection. Other loads such as indicator lights, relays, optoisolators and solenoids usually operate from higher voltages. The connection for such loads is also shown in Figure 4 4. Examples User Output Connections. Note the load is connected from the output to the load and from the load to the load supply. The ground connection from the load supply ground to the pump ground is essential. 41

54 Figure 4-4. Examples User Output Connections 5 PUMP COMMANDS This chapter presents all of the commands supported by the NX3 pump. When reviewing the commands in the following sections, keep note of the following items: > Values in parenthesis () indicate the range of values. > The signifies that the argument may be an indirect variable. 5.1 Foreground vs. Background Commands All commands are either run in either the foreground or the background. Commands that execute in the foreground are called immediate commands. When immediate commands are sent to the pump, they are executed as soon as they are read. Background commands are only run when they are told to, either by being stored into a script and run, or being run using R. The command R will run the last background commands that were sent to the pump as one message. Some background commands (such as Un ) have modified versions that run in the foreground using the # modifier (such as U#n ). As an example, assume that a pump with the address set to 1 is in the home position. The following example demonstrates how background and foreground commands behave. /1A5000A0 This does not move the syringe at all /1R Executes last sent background command sequence, so the syringe moves to the absolute position 5000, then back home /1R A5000A0 executes, as it was the last command entered /1A10000 This does not move the syringe at all /1A100R Executes last sent background command sequence, so the syringe moves to absolute position 100. It does not go to position 10000, since A100 was the most recent command sequence sent at once, not A10000! /1U#1U1u#1 Only the foreground commands, U#1 and u#1 execute, so User Output #1 quickly pulses on then off. /1R The last background command entered, U1, is executed, so User Output #1 turns on and stays on. 42

55 5.2 Syringe Commands Position Commands Position commands cause the syringe to move to a commanded position along its range of motion: > An absolute position is a specific point. > A relative position is a distance offset from the current position. It is highly recommended that only the upper case form of these commands. If you query the status of the pump with the upper case (synchronous) versions, you will receive a busy status in reply. If you query the status of the pump with the lower case (asynchronous) versions, you will receive a ready response. If you use asynchronous move command in a script, the script will not wait for the move to finish and any move commands attempted afterwards will fail to execute until it does. NOTE: The status of any asynchronous movement can be checked using flags. Refer to section for more information. In each of the commands in this table, the n value is expressed in half-steps, where 0 is at the top-of-stroke (volume). Table 5-1. Position Control Commands Command Description An Move syringe to absolute position n. Apply backlash if aspirating. If travel limits are enabled (F24 flag set) then position n must be within the travel range. The command waits for the motor to complete the move. If travel limits are enabled the position n must be within the travel range. (n: lower limit upper an Move syringe to absolute position n. Apply backlash if aspirating. If travel limits are enabled (F19 flag set) then position n must be within the travel range. The command does not wait for the motor to complete the move. The F0 flag can be polled to determine if the syringe motor is busy. (n: lower limit upper Dn Dispense n steps from the current position. The dispense direction is upward, towards the valve. If travel limits are enabled (F19 flag set) then the ending position must be within the travel range. A value of zero will move the syringe to the full dispense position or until terminated by a T command, asserting the lower travel limit (ZERO) trigger, or asserting the Dispense Halt trigger. The command waits for the motor to complete the move. The relative distance n must be positive. (n: 0 remaining dispense dn Dispense n steps from the current position. The dispense direction is upward, towards the valve. If travel limits are enabled (F19 flag set) then position n must be within the travel range. The command does not wait for the motor to complete the move. The F0 flag can be polled to determine if the syringe motor is busy. (n: 0 remaining dispense 43

56 Command Pn pn Description Aspirate n steps from the current position, with the BUSY status bit set to busy. The aspirate direction is downward, away from the valve. If travel limits are enabled (F19 flag set) then the ending position must be within the travel range. A value of zero will aspirate to the full stroke unless terminated by a T command, triggering the upper travel limit input (LIMIT), or asserting the Aspirate Halt trigger input. The relative distance n must be positive. (n: 0 remaining aspirate Aspirate n steps from the current position. The aspirate direction is downward, away from the valve. If travel limits are enabled (F19 flag set) then position n must be within the travel range. The command does not wait for the motor to complete the move. The F0 flag can be polled to determine if the syringe motor is busy. (n: 0 remaining aspirate A relative position is measured from the current position to the target position. Absolute position is measured always from the zero position (top-of-stroke). For example, move from the upper position at 8600 absolute to the lower position at absolute can be done with either a relative aspirate (move downward) or an absolute (go to position) command as follows. Absolute move: A40000 (final position measured from zero) Relative move: P31400 (final position measured from 8600) In general, any move which goes to the zero or maximum (full-stroke) positions should use an absolute positioning command such as A0 or A A move which goes from one position to another position which is not at either end of the stroke would use a relative positioning command such as Pn or Dn. Absolute positioning command can also be used Handshake Dispense Commands Table 5-2. Handshake Dispense Command Definitions Command hn hn,m Description Handshake syringe dispense, external trigger input after one pulse (n: 1.8 = User Inputs Handshake syringe dispense, external trigger input after m pulses (n: = User Inputs (m: 1.. h-n Handshake syringe dispense, assert handshake out immediately, external trigger input after one pulse (n: = User Outputs 44

57 Handshaking is a procedure for synchronizing two or more pumps in order to maintain a constant flow. A User Output pin is configured to signal when a pump is nearing the end of a dispense cycle, and a corresponding User Input pin is configured to trigger the start of a full dispense cycle, typically after an aspirate cycle has completed. This signal is in the form of a pulse. The output is normally high and goes low when the trigger point is passed ) and stays low until the dispense is completed. The value of n in the handshake dispense commands determines which user input and user output will be used for the handshake coordination. For example, in the h2 and h-2 commands, then the pump will use User Input #2 and User Output #2 The hn command is used to wait for a trigger on User Input #n. When User Input #n goes low, the pump begins a full dispense from its current location. At the trigger point, the pump pulls User Output #n low in order to trigger the next pump connected, if connected, as the first pump did. The hn,m command is the same, but it needs there to be m transitions from high to low in order to begin a full dispense cycle. The h-n command immediately begins a dispense cycle, triggering User Input #n at the end of it Motion Variables The syringe axis uses the following variables to determine the speeds, acceleration, and drive compensation moves. During power up of the pump, default values in the operational memory are recalled from the NVM. The operational values can be set at any time a move is not in progress. Top speed is an exception, as it can be set on-the-fly. Except as noted, all of these commands require an R (Run) command to execute immediately. Regular CAVRO commands which are executed in the background can also be executed in the foreground by using the (#) immediate qualifier. When the immediate qualifier (#) is used, a reply is required since it is sent in the foreground. Table 5-3. Motion Variable Command Definitions Command Cn,m C#n,m cn,m c#n,m Description Set syringe pump calibration speed and duty cycle, used in the W4 command. (n: Start m: 1 Set syringe End Speed in n steps/sec, single phase boost m percent (n: 1 Top m: 100 Note: Changing the phase boost percentage can cause the pump to malfunction or behave unexpectedly. Kn,m K#n,m Set number of syringe backlash steps to n, headspace steps to m (n: 0 20% of full m: 0 10% of full 45

58 Command Ln,m L#n,m Description Set syringe acceleration and deceleration slopes in n step increments/step, fine microstep PWM duty cycle in m. (n: 1...Top m: 1 Note: Changing the fine microstep PWM duty cycle can cause the pump to malfunction or behave unexpectedly. ln,m l#n,m Set syringe deceleration slope independently in n step decrements/step, coarse microstep PWM duty cycle in m. (n: 1...Top m: 1 Note: Changing the course microstep PWM duty cycle can cause the pump to malfunction or behave unexpectedly. Sn Set syringe Top Speed (in steps) from table (deprecated command) (n: n Steps/s Steps/s Steps/s n Steps/s n Steps/s n Steps/s Vn,m V#n Set syringe Top Speed in n steps/sec, full step PWM duty cycle in m. An "R" command is not required for this instruction (n: Start m: 1 Note: Changing the full step PWM duty cycle can cause the pump to malfunction or behave unexpectedly. vn,m v#n,m Set syringe Start Speed in n steps/sec, half step PWM duty cycle m (n: 1 Top m: 1 Note: Changing the half step PWM duty cycle can cause the pump to malfunction or behave unexpectedly.! save current operational parameters in non-volatile configuration parameters For most applications, only acceleration and top speed are adjusted. The remaining parameters are left at the default settings. 46

59 If the top speed is set to a value lower than the start speed, the pump begins to move at the top speed. If the top speed is set lower than the stop speed, the move will end at the top speed. For this reason, values of top speed which are set lower than either the start speed or the stop speed do not require any adjustment in the start speed or stop speed Initialization Commands The syringe position should be initialized (calibrated) after each power-up, reset, or syringe overload condition. The motor controller has non-volatile memory which is used to preserve the status of the pump across power cycles. If the pump motors were not active when power was shut off the position of the valve and syringe can usually be recovered without requiring an initialization cycle. However, if this is not the case, the valve and syringe must be initialized. An initialization command causes the syringe to go to the Initialize position. This is the only absolutely known location on the syringe stroke when position information is lost or corrupted. All other positions can be determined once this position is known. Initialization uses the Wn, Yn, or Zn commands. Each operates in the same way except for the definition of the valve port positions used during initialization. For all initialization commands, the argument n denotes an initialize move (n=4) or a set home operation (n=5). The W4 command always initializes the syringe using port A. The Y4 and Z4 commands initialize the syringe using the valve port which has been set by the ~Yn or ~Zn commands, respectively. This permits three different ports to be used for syringe initialization. The Home Button on the front panel executes only the W4 command. The initialize commands require an R command to execute immediately. Table 5-4. Initialization Command Definitions Command Description Wn Initialize syringe and/or valve (n: 0 = equivalent to W4A0 1 = equivalent to Y4A0 2 = equivalent to Z4A0 3 = not used 4 = calibrate valve to port A, then calibrate syringe to ZERO position 5 = set ZERO lower limit to current syringe position 6 = set valve ZERO point at current position 7 = calibrate valve, move to port A 8 = force syringe position to nnn with W8,NNN command 9 = reset controller 10 = calibrate syringe only) 47

60 Command Yn Y#n Zn Z#n Description Initialize syringe and select the valve port specified by the ~Y parameter (n: 4...7, see Wn ) Initialize syringe and select the valve port specified by the ~Z parameter. (n: 4...7, see Wn ) ~Yn Select the valve position to which the valve will go just prior to moving syringe to the soft limit using the Y4 command. The ~Vn value is checked for a valid entry before accepting the value of n. This permits a port different from A to be used for the syringe initialization move. The valid range, depending on valve type, is a positive number if pump movement is allowed, or negative if no pump movement (blocked port). (n: , 1 16) ~Zn Select the valve position to which the valve will go just prior to moving the syringe to the soft limit using the Z4 command. The ~Vn value is checked for a valid entry before accepting the value of n. This permits a port different from A to be used for the syringe initialization move. The valid range, depending on valve type, is a positive number if pump movement is allowed, or negative if no pump movement (blocked port). (n: , 1 16) Syringe Queries Table 5-5. Syringe Query Definitions Command Description? query syringe position in steps (reply:? if invalid, else syringe position)?1 query syringe Start Speed steps/sec?2 query syringe Top Speed steps/sec?3 query syringe End Speed steps/sec?29 query contents of syringe position snapshot, clear snapshot (steps) show -1 if no capture occurred?30 query the syringe ramp up and ramp down (steps/step)?31 query the number of syringe backlash steps ~Y Query the valve port to be used by the Yn initialization command ~Z Query the valve port to be used by the Zn initialization command 5.3 Valve Commands The valve ports are not inherently directional. The actual direction of fluid flow at any port is determined by the relative motion of the syringe. An aspiration draws fluid into a port and a dispense ejects fluid from a port. For non-distribution valves, some valve positions block the syringe port, preventing fluid from entering or leaving the syringe. The pump does not allow syringe moves in those positions with such valves. 48

61 For each move command, the argument n determines both the destination port and the direction of valve rotation. The default direction is clockwise Valve Type Setting The NX3 uses a universal valve position encoder that accommodates different valve types. The valve type is selected by sending the ~Vn valve configuration command. This parameter is not saved to non-volatile memory (NVM) until the save command,!, is run. Once saved, do not set it again unless the valve type is changed. The valve type is stored even when power is removed from the pump. The valve configuration command cannot be placed within a program. Table 5-6. Valve Type Setting Command Definitions Command ~Vn ~Vn,m Description Set the valve part number to n and optional syringe part number to m. For units without valves, is reported. For units without syringes, is reported. Attempting to set the syringe part number when there is no valve (has part number ) will result in an invalid argument response. The default valve and syringe part number is stored in configuration parameters during assembly. If a valve changes it must be initialized. If a syringe changes the syringe pump must be initialized. If the syringe stroke length does not match the pump stroke an error is reported. For V-Series compatibility a table entry number from below can be entered for a generic valve instead of a specific valve part number. (n: 1 = 3 way non-distribution valve 2 = 3 way distribution valve 3 = 4 way non-distribution valve 4 = 4 way distribution valve 5 = 5 way non-distribution valve 6 = 5 way distribution valve 7 = 6 way non-distribution valve 9 = 8 way non-distribution valve 10 = 8 way distribution valve 13 = 2 way distribution valve 14 = 6 way distribution Valve 17 = 2 way FAS solenoid valve = no valve installed nnnnn = Norgren Kloehn valve part number) m: = no syringe installed nnnnn = Norgren Kloehn syringe part number) 49

62 5.3.2 Valve Position Commands The valve position commands require the R (Run) command to be appended to cause immediate execution Three-way Non-distribution Commands These three commands are used with a three-way non-distribution valve only. > B Moves a three-way valve to the bypass position (port A-to-port B). > I Moves a three-way valve to the input position (port A-to-syringe). > O Moves a three-way valve to the output position (port B-to-syringe). It should be noted that solenoid valves also use the I and O commands to change from the ports marked NO to NC, respectively Discrete Valve Position Command The on command moves the valve to the position selected by n, moving the shortest distance to arrive at the port. This command is the preferred command for all valves moves. The values of n must be consistent with the configured valve type. (n: 1 16, not including 0, where 1= port A, 2= port B, Two modifications of this command exist. One is o+n and the other is o-n. The first forces a turn in the clockwise direction, and the latter forces a turn in the counter-clockwise direction. For example, the /1o4R command moves the valve on pump #1 ( /1 ) the shortest distance to port 4 (port D) and does it immediately ( R ). For example, the /3o-2R command moves the valve on pump #3 ( /3 ) counter-clockwise to port 2 (port B) immediately ( R ) Valve Stalls When a valve fails to turn the commanded amount, a valve stall has occurred. The current script will be halted and the front LED will repeatedly flash two green lights then a blue light. For more information on LED codes, refer to section Valve Queries Valve queries do not require the R command in order to execute. They are executed immediately after they are received by the pump. These commands cannot be embedded within a program. Table 5-7. Valve Query Definitions Command Description?8 query valve position as port (reply: 1 16 = valve port number? = Invalid position) $ query number of valve stalls (reply: 0 = no stall 1 = stalled once 2 = stalled twice) 50

63 Command Description % query number of valve movements, including stalls and calibrations ~V Query the valve and syringe part numbers 5.4 I/O Commands Table 5-8. Input/Output functions User Input # Description User Input # Description 1 User Input #1 1 User Output #1 2 User Input #2 2 User Output #2 3 User Input #3 3 User Output #3 4 User Input #4 4 User Output #4 5 User Input #5 6 User Input #6 7 User Input #7, front panel Home Button (if the home function is disabled) 8 User Input #7, front panel Tamper Pin (if the tamper function is disabled) Output Commands Output commands set a User Output high or low. All of these commands require the R command in order to execute immediately The Un Command The Un command sets User Output #n to On (low logic level). For example, U2 would turn off User Output #2. Where n equals: (n: 1 4 equals outputs 1 4) The un Command The un command turns the user parallel output n to Off (open-circuited) or turns off the expansion I/O port output bit. Where n equals: (n: 1 4 equals outputs 1 4 ) 51

64 A special syntax is available for controlling the output while the pump is executing other commands or a program. This allows immediate, real-time control of the outputs. The syntax is a variation of the preceding output commands. The syntax is: U#n Turns On (set low) an output immediately. u#n Turns Off (set high) an output immediately. These commands use the same values for n as the Un and un commands Input Query Commands Input query commands are sent from a host controller and request a status reply from the pump. These commands are executed when they are received by the pump and do not require an R command. These commands cannot be embedded in a program string. Table 5-9. Input Query Definitions Command Description?4 query the User Input #1 level (ignore edge latch)?5 query the User Input #2 level?6 query the User Input #3 level?7 query the User Analog Input #1, 20 mv units?40 query User Input GPIO port (User Input #1 through #8), does not reset edge capture?41 to?48 query User Input GPIO pins #1 to #8, resets edge capture?49 query User Analog input #2, 20mV units Input Test and Jump Commands The value of an input can be checked and its status can be used to cause a program to change the path of the instructions to be executed. This is called a conditional jump. The general format is that if the input is true then jump to the place marked by the program label. These commands are used to control the way a program executes, depending upon the state of an input variable. The commands are intended to be embedded within a program string and not to be executed alone The Digital Input Test Command For the inp command if the input level for bit n is true (low input level) then jump to label p. This checks if a user input pin on the User I/O connector is at a low level. There are three user inputs. (n: 1 8 User input 1 8 p: a z, A Z) Program label For example the i18b command means that test bit #8 is in expansion byte #1. If it is a low level, the command begins to execute the instructions at program label b. If it is not at a low level, it continues with the next instruction after this one. 52

65 Analog Input #1 Test Command For the i<np and i>np commands if the Analog Input #1 value is less than ( < ) or greater than ( > ) n then jump to label p. The input voltage range of 0 to 5V is converted into one of 255 levels. The number n is the numerical value of the level. Analog Input #1 increases in 20mV increments. (n: 0 255, 0=0V to 255=5V p: a z, A Z) Program label For example the i<124s command tests Analog Input #1 and if the voltage is less than 2.48 V, then it goes to program label s. (124 = integer part of 2.48 / 0.02.) The Home Button If the Home Button is not used for initializing the pump, the home function can be disabled and the button can be used as an input. The button can be disabled and used as an input in two ways. Firstly, by setting flag 9 using the f9+ command. Secondly, by using the ~H1 command. After that, the button acts as User Input #7. To reset this, either clear the flag using f9- or by using ~H0. You can query the status of the Home Button by sending ~H Handshaking commands Table Handshaking Definitions Command Description hn hn,m Listen for 1 falling edge on User Input #n, then begin a handshake dispense using User Output #n. (n: = User Inputs 1...8) Listen for m falling edges on User Input #n, then begin a handshake dispense using User Output #n. (n: = User Inputs 1...8) (m: 1.. h-n Begin a handshake dispense immediately, using User Output #n. (n: = User Outputs 1...4) The handshaking commands enable multiple NX3 pumps to perform a full dispense in a specific order. They do this using the User Inputs and the User Outputs. All outputs start in a high logic level, then half second pulses to a low logic level are sent. The number of pulses received is used to determine when to fully dispense. To begin a handshake dispense, one pump begins to listen on a User Input n using hn or hn,m. If hn is used, the pump will do a full dispense after one received pulse. If hn,m is used, the pump will do a full dispense after m pulses are received. Then, you have one pump immediately do a full dispense using the h-n command. At the end of the dispense cycle, it will send one pulse on User Output n. The first pump will receive the pulse, triggering a full dispense if the correct number of pulses have been received. 53

66 To fully understand how this can be used, imagine three pumps chained together with addresses 1, 2, and 3. In order to have the first, then the second, then the third do a full dispense, connect User Output #1 on pump 1 to User Input#1 on pump 2. Then connect User Output #1 on pump 2 to User Input #1 on pump 3. Then, send the following commands: /3A5000h1R Pump 3 is at position 5000 and listening on User Output #1 /2A5000h1R Pump 2 is at position 5000 and listening on User Output #1 /1V5000R Pump 1 is at position 5000 and listening on User Output #1 /1h-1R Pump 1 does a full handshake dispense, using User Output #1 to trigger a full dispense in pump 2, which triggers a full dispense in pump User Program Commands Individual commands, commands strings, and programs are executed in the pump RAM (temporary) memory. The pump can also store programs in non-volatile memory (NVM). The NVM acts like a solid-state disk drive. For details on the pump s internal memory, see Program Memory, section 4.1. There are three types of program commands: > User program storage commands can load, save, run, or erase user programs in the pump memory. > Program execution commands are used to stop or start programs. > Program control commands determine the order of execution (flow) of a program Program Storage Commands These commands control the storage, retrieval, and erasure of a user program in the nonvolatile user program memory. These commands execute when received and cannot be placed within a program. The R command is not required. The maximum length per program string is 390 characters. This is the limit imposed by the size of the input buffer. Table Program Storage Command Definitions Command Description En en qn Save script to directory entry n, delete prior entry if any (n: 1 99) Erase script at directory entry n, display number of erases (n: 1 99) read user script n into background, query script contents (n: )?9 query the number of unused bytes in user script storage?19 query list of script numbers saved in script storage?33 query contents of active background script (same as q ) 54

67 5.5.2 Program Execution Commands The external Stop input function is an added feature on Kloehn pumps. Only the H command can be used within a program. These commands do not require the R command for immediate execution. Table Program Execution Command Definitions Command Description ~A query the autostart script number ~An H H rn jn set autostart script number to n (n: = disable [default]) Halt background program (breakpoint), use foreground R command to resume. The immediate Halt command is used to stop a background script for debugging purposes. Load and run stored user script n in background (n: ) execute script n and then return to next instruction in calling script (n: R T run background script or resume after script halt terminate execution of command or background script Program Control Commands Jumps and Labels A program jump provides a means to change the order of execution of program commands. The point from which a jump occurs is a jump command. Program execution is changed from the location of the jump command to the destination label (p) specified in the jump command. A jump can be unconditional, which executes every time it is encountered, or it can be conditional. Conditional jumps are if then commands. The jump to a label occurs only if the specific test condition in the command is true. Table Jump and Label Command Definitions Command Description :p set program label p (p: a...z, A...Z) Jp fnnnp f-nnnp inp unconditional jump to label p (p: a...z, A...Z) if flag n is set, then jump to label p. For n jump to label p if flag n is not set. (n: any flag) (p: a...z, A...Z) if User Input n is "true", then jump to label p (n: = User Inputs (p: a...z, A...Z) 55

68 Command i>np i<np k<np k=np k>np y<np y=np y>np Description if Analog Input #1 is less than n, then jump to label p (n: 0... (p: a...z, A...Z) if Analog Input #1 is greater than n, then jump to label p (n: 0... (p: a...z, A...Z) if the software counter is less than n, jump to label p (n: 0... (p: a...z, A...Z) if the software counter is equal to n, jump to label p (n: 0... (p: a...z, A...Z) if the software counter is greater than n, jump to label p (n: 0... (p: a...z, A...Z) if syringe step position is less than n, go to label p (n: lower limit...upper limit) (p=a...z, A...Z) if syringe step position is equal to n, go to label p (n: lower limit...upper limit) (p=a...z, A...Z) if syringe step position is greater than n, go to label p (n: lower limit...upper limit) (p=a...z, A...Z) Repeat Loops A program loop causes a group of commands to repeat. A loop can be constructed from a jump command and a label. This type of loop repeats indefinitely unless a conditional jump is included within the loop to cause an exit from the loop. The repeat command offers a better way when the number of repeats is known. The repeat command causes a group of instructions to repeat a specific number of times. The syntax is g Gn. The g command marks the beginning of the group of commands to be repeated and the Gn command marks the end of the group. The value n denotes the number of times the loop is to be repeated. Table Repeat Command Definitions Command Description g Gn repeat commands between G and Gn for n times, or loop indefinitely if n is 0 (n: 56

69 For example, for the command go1p6000o3a0g10 : g Indicates the beginning of a loop command. o1 Moves to the port 1 location. P6000 Aspirates 6000 steps. o3 Moves the valve to port C (3= C). A0 Dispenses all the contents of the syringe (go to zero). G10 Closes the loop command string and repeats the loop 10 times. For the o1p6000o3a0 command, the command string between g and G10 will be repeated ten times Time Delays A time delay is a pause in a program. These are useful for timing events such as generating pulses, very slow syringe moves, and event synchronization. The Mn command delays (pauses) for n milliseconds. Internally the command uses a fixed 1 ms clock tick to count down the delay. This may cause an inaccuracy for the first millisecond, since it may be counted down as a partial clock tick. To guarantee a minimum delay add one to the count to account for the partial first millisecond milliseconds = 1 second. (n: ) 5.6 Variables A variable is a command argument (command value) that permits a command to use a value which is determined at the time the command executes within a program, rather than being set to a fixed value when the program is written. This permits more general programs to be written and stored. All variables use the denotes a variable and n denotes the source of the variable Setting Variables Variables can either be set using the zn=m command. Where: z Indicates a variable assignment. n 0-8 are the accumulators, 9 is the user timer, or any writable indirect variable. m The number to assign or any indirect variable. There is also an immediate version, z#n=m that will run in the foreground Accumulators There are nine accumulators, numbered accumulator #0 to accumulator #8, that can be used to store numbers for a Cavro program. Accumulator #1 through Accumulator #8 can be accessed through the indirect Accumulator #0 can be accessed through the indirect 57

70 Although Accumulator #0 can be set and access the same as with the other accumulators, it can be accessed, set, and modified with a special set of commands, shown in the following table. Table Accumulator #0 Commands Command Description kn k#n k+n k-n k*n k/n k&n k n k!n k^n k>np k=np k>np set accumulator #0 to n (n: 0... Increase accumulator #0 by n (n: 0... decrease accumulator #0 by n (n: 0... Multiply accumulator #0 by n (n: 0... Divide accumulator #0 by n (n: 0... Bitwise AND accumulator #0 with n (n: 0... Bitwise OR accumulator #0 with n (n: 0... Bitwise XOR accumulator #0 with n (n: 0... exchange the contents of counter n with the software counter (n: 1...9) If accumulator #0 is less than n, go to label p (n: 0... (p: a...z, A...Z) If accumulator #0 is equal to n, go to label p (n: 0... (p: a...z, A...Z) If accumulator #0 is greater than n, go to label p (n: 0... (p: a...z, A...Z) These commands provide the ability to use the accumulators to do a variety of arithmetic operations and better control program flow Using an Accumulator The syntax for an accumulator Denotes an indirect variable. 1 Denotes an accumulator. n Denotes which accumulator to use. (n: 1 8) 58

71 The commands listed in this section may use variables. The column labeled Scaled indicate if the variable is scaled for use with a particular command. Variables which are not scaled are used as the actual numeric value of a command argument. Scaling only occurs if flag 25 is set. Values which are scaled are used to compute a proportional amount of the argument s range. The proportion is: Argument value = (variable value/maximum variable) x maximum argument Example (Not Scaled): o@3 Use the number as the value. If the number were 6, the command would be o6. Example (Scaled): V@3 The value used for the command will be proportional the maximum value of the number. In this case, if the value were 2500, the actual argument would be Top syringe step rate (used by V command) is and the maximum analog value (@3) is Therefore, this is computed as follows: Value= (2500/5000) x = Table Commands that Scale with Flag 25 Set Command A@n a@n c@n D@n d@n K@n P@n p@n v@n V@n Description scale indirect variable as a percentage of full syringe stroke scale indirect variable as a percentage of ending speed scale indirect variable as a percentage of remaining dispense distance scale indirect variable as a percentage of backlash scale indirect variable as a percentage of remaining aspirate distance scale indirect variable as a percentage of starting speed scale indirect variable as a percentage of top speed In the preceding example, Analog Input #1 accepts a DC voltage from 0 to 5 volts and converts this voltage to a parameter value. A parameter value may be scaled. Thus, if a potentiometer is used to input a voltage, the potentiometer dial could be calibrated to read from 0 to 100 percent and would then be applicable to any called parameter. A given variable is not restricted to use by one command or to one instance of a command. However, the value of a variable must be compatible with all commands which use it. The following commands can use a variable in place of a fixed value for n. Variables cannot be used for labels. 59

72 5.6.4 The User Timer In addition to the accumulators, there is a timer that can be used. It can be accessed as if it were a 9th accumulator. Once written to, it will count down to zero in millisecond increments List of Commands Using Variables Table Commands that Use Variables Command Description An, an cn Dn, dn g...gn inp i>np i<np jn Kn kn k#n k+n k-n k*n k/n k&n k n k!n k>np k=np Move syringe to absolute position n Set syringe end speed Dispense n steps from current position Repeat commands between g and Gn n times. if User Input n is true, go to label p If Analog Input #1 is greater than n, go to label p If Analog Input #1 is less than n, go to label p Run program #n, then return Set number of backlash set accumulator #0 to n (n: ) Increase accumulator #0 by n (n: ) decrease accumulator #0 by n (n: ) Multiply accumulator #0 by n (n: ) Divide accumulator #0 by n (n: ) Bitwise AND accumulator #0 with n (n: ) Bitwise OR accumulator #0 with n (n: ) Bitwise XOR accumulator #0 with n (n: ) If accumulator #0 is less than n, go to label p (n: 0... (p: a...z, A...Z) If accumulator #0 is equal to n, go to label p (n: 0... (p: a...z, A...Z) 60

73 Command k>np Description If accumulator #0 is greater than n, go to label p (n: 0... (p: a...z, A...Z) Ln,m Set syringe acceleration and deceleration slopes in n step increments/step, fine microstep duty cycle in m. ln,m Set syringe deceleration slope independently in n step decrements/step, coarse microstep duty cycle in m. Mn Delay n milliseconds on Move valve to port n. Pn pn Sn Vn,m vn y<np y=np y>np ~An ~Bn,t ~Fn,t Aspirate n steps from the current position, Set syringe Top Speed (in steps) from table (deprecated command) Set syringe Top Speed in n steps/sec, full step duty cycle in m. An "R" command is not required for this instruction set syringe Start Speed in n steps/sec, half step duty cycle m If syringe step position is less than n, go to label p If syringe step position is equal to n, go to label p If syringe step position is greater than n, go to label p Set the auto-start script number to n Set the RS-485 network baud rate and set the bus termination on/off set RS-232 communications baud rate and flow control 5.7 Configuration Commands Configuration commands are used to determine the operating parameters of the pump. All configurations commands begin with a tilde ( ~ ) and have two forms: the set form and the query form. The set form uses a numerical argument to set the value of a parameter. The query form is the command with no number attached. The query form reports the present value of the parameter. Configuration parameters are not automatically saved into the NVM when they are set. Because of this, changed settings will revert to their previous values once power has been lost. To save the changed values, the save command (! should be run. Configuration commands execute when they are received and do not require an R command. They cannot be used within a program. Either upper or lower-case letters may be used. Table Configuration Commands Command Description ~A query the autostart script number 61

74 Command ~An Description set autostart script number to n (n: = disable [default]) ~B query the RS-485 network baud rate ~Bn,t set RS-485 network baud rate, set bus termination on/off (n: 1 = = = 9600 [default] 4 = = = invalid 7 = invalid 8 = invalid 9 = = = = t: 0 = termination off 1 = termination on 2 = termination off, except node #1 and #15, [default] ) ~C Query the CAN bus bit rate ~Cn,t Set the CAN bus bit rate, set bus termination on/off (n: 0 = CAN bus disabled 1 = 10 Kbit 2 = 20 Kbit 3 = 125 Kbit 4 = 250 Kbit [default] 5 = 500 Kbit 6 = 1000 Kbit t: 0 = termination off [default for all nodes except #1 and #15] 1 = termination on [default for node #1 and #15]) ~D query RS-485 turnaournd delay ~Dn,m ~En set the RS-485 turnaround delay, where n is a delay in milliseconds (default 2 ms) for transmit to receive, and m is the delay for receive to transmit (use 12 ms for V-Series compatibility) erase all user programs in script storage (n must be set to to enable erase) ~F query the RS-232 console baud rate 62

75 Command ~Fn,t Description set RS-232 communications baud rate and flow control (n: 1 = = = 9600 [default] 4 = = = = invalid 8 = invalid 9 = = t: 0 = disable CTS-RTS flow control [default] 1 = enable CTS-RTS flow control) ~H query the Home Button mode (F9 flag) ~Hn set the Home Button mode (n: 0 = enabled [default] 1 = disabled) ~I query the power-up valve move mode (F35 flag) ~In set the power-up valve move mode (n: 0 = enabled 1 = disabled) ~L query dispense limit operating mode (F17 flag) ~Ln ~Mn ~Mn,m set dispense mode (n: 0 = Dispense Halt alternate function input disabled 1 = Dispense Halt alternate function input enabled) query pin mapped to function n map alternate function n to pin m, pin direction implicitly determined by alternate function input or output (n: 1-2 = Reserved 3 = handshake input 4 = position capture input 5 = run/stop* input 6 = emergency stop input 7 = dispense stop input 8 = aspirate stop input 9-10 = Reserved 11 = valve active output 12 = syringe active output 13 = handshake output 14 = error output m 0 = no pin, function disabled 1 8 = GPIO pin) ~P Query the command protocol 63

76 Command ~Pn Description Select the Cavro protocol (n: 1 = DT [default] 2 = OEM) ~Q Query the pump and OEM part numbers ~Qn,m Set the pump part number in n, and optionally the OEM part number in m. (n: = NX3 6K, 1.8, 1:1 pulley = NX3 12K, 1.8, 2:1 pulley [default] = NX3 12K, 0.9, 1:1 pulley = NX3 24K, 0.9, 2:1 pulley nnnnn = Norgren Kloehn pump part number) m: 0 = no OEM part number [default] nnnnn = OEM part number) ~Rn Reset controller (n: 1 = software reset (warm start) [default] 2 = reset, clear backup SRAM 3 = reset, restore backup copy configuration parameters 4 = reset, load factory defaults) ~V Query the valve and syringe part numbers 64

77 Command ~Vn ~Vn,m Description Set the valve part number to n and optional syringe part number to m. For units without valves, is reported. For units without syringes, is reported. Attempting to set the syringe part number when there is no valve (has part number ) will result in an invalid argument response. The default valve and syringe part number is stored in configuration parameters during assembly. If a valve changes it must be initialized. If a syringe changes the syringe pump must be initialized. If the syringe stroke length does not match the pump stroke an error is reported. For V-Series compatibility a table entry number from below can be entered for a generic valve instead of a specific valve part number. (n: 1 = 3 way non-distribution valve 2 = 3 way distribution valve 3 = 4 way non-distribution valve 4 = 4 way distribution valve 5 = 5 way non-distribution valve 6 = 5 way distribution valve 7 = 6 way non-distribution valve 9 = 8 way non-distribution valve 10 = 8 way distribution valve 13 = 2 way distribution valve 14 = 6 way distribution Valve 17 = 2 way FAS solenoid valve = no valve installed nnnnn = Norgren Kloehn valve part number) m: = no syringe installed nnnnn = Norgren Kloehn syringe part number) ~Y Query the valve port to be used by the Yn initialization command ~Yn Query the valve port to be used by the Yn initialization command Select the valve position to which the valve will go just prior to moving syringe to the soft limit using the "Y4" command. The "~Vn" value is checked for a valid entry before accepting the value of n. This permits a port different from A to be used for the syringe initialization move. The valid range, depending on valve type, is a positive number if pump movement is allowed, or negative if no pump movement (blocked port). (n: , 1 16) ~Z Query the valve port to be used by the Zn initialization command ~Zn Select the valve position to which the valve will go just prior to moving the syringe to the soft limit using the "Z4" command. The "~Vn" value is checked for a valid entry before accepting the value of n. This permits a port different from A to be used for the syringe initialization move. The valid range, depending on valve type, is a positive number if pump movement is allowed, or negative if no pump movement (blocked port). (n: , 1 16) 65

78 5.8 Query Commands Query commands are executed when they are received. They return a value or set of values to the query. A query command can be sent at any time, even if the pump is busy doing something else, and a reply will be sent. All query commands are executed when they are received and cannot be placed within a program. Query commands do not require an R command to execute immediately. See section for a list of query commands. 5.9 Error Trapping Commands Errors can occur during pump operation, in the structure of a user program, during communications, or in the way a command is given. The pump recognizes these errors. Normally, an error causes a program or instruction to halt and generate an error message to be reported in reply to the next received command. This normal response to an error can be redefined by a user program using a trap command. A trap is an instruction that directs the pump to go to a label in a program if a particular error occurs. The commands following the label then determine what actions will be taken as a result of the error. An exit command marks the end of the error-handling command string (the handler ) and determines what happens next. A user error handler is composed of these three parts: > The label which marks the beginning of the handler > The commands which are the body of the handler > The exit command which marks the end of the handler Trap Declarations A trap instruction takes effect when it is declared in the program. It remains in effect as written unless it is changed afterwards. Thus error traps can be redefined on the fly in a program. The syntax for an error trap is xnp. Where: x Denotes an exception (trap) instruction. n Denotes the error number to be trapped. p Denotes the program label which starts the error handler routine. If error #n occurs after a trap for error #n is set, the program jumps to the label p. By declaring the same trap with a different label, different error handling routines can be used for the same type of error in different parts of a program. 66

79 A trap operates any number of times if the error occurs externally to the error handling routine. If the error recurs while executing the error handler (before the error handler exit), the program terminates with a standard error exit. In general, if an error persists in recurring, it cannot be solved with a trap. NOTE: Traps can provide graceful recovery of controlled exits from occasional error conditions. A trap cannot fix system problems or overcome serious mechanical difficulties Trap Exits The last instruction of an error handler (exception program) MUST be a trap exit command. Trap exit commands mark the end of an error handler and specify what action the program is to take when exiting the error handler. The general syntax is tn, where n is the error code number. Where: t1 - Returns program execution to the instruction following the instruction which caused the error. t2 - Restarts the program from the beginning. t3 - Performs a normal error exit with an error message. t4 - Retries the instruction which caused the error)[n/a]. If exit type 4 is used some means must be used to prevent an endless loop of error-> handler-> error-> handler Error Trap Query The pump can be queried at any time to report the last error encountered by a trap. The syntax is x? for the command. This command executes when received and does not require R command. Do not place this command within a program Miscellaneous Alternate Pin Functions: By default, all pin functions are not assigned. They can be assigned and queried and reassigned using the ~Mm,n and ~Mn commands, respectively. Multiple alternate functions can be assigned to input pins. All of the functions can be disabled, even if they are assigned to a pin by setting the appropriate flags. See for a list of all available flags Handshake input/output Any user input pin can be used for a handshake input with the handshaking commands. Separately, any user output pin can be used as the output for handshaking commands. See section for more on handshaking. 67

80 Position capture input By assigning a pin as a position capture input, an external output can be used to signal the pump to store the current syringe position by setting the input low. See section for more information Run/stop* input When the assigned input goes low, the pump is halted. Any currently executing valve or syringe command will finish. When the input goes high again, the pump will resume normal operation Emergency stop input When the assigned input goes low, the current script will end and the syringe and valve motors will stop moving Dispense stop input When the assigned input goes low, any current dispense cycle will stop. In addition to a using flag 17, he command ~Ln can be used to enable or disable the Dispense Halt command Aspirate stop input When the assigned input goes low, any current aspirate cycle will stop Valve active output When the Valve Active output is assigned to an output pin, the output will turn on when the valve is moving Syringe active output When the Syringe Active output is assigned to an output pin, the output will turn on when the syringe is moving Handshake output Any user output pin can be used for a handshake output with the handshaking commands. The ~Mn command will return the pin last used for this function. See section for more on handshaking Error output When the Error Output is assigned to an output pin, the output will turn on when the emergency stop turned on until the pump recovers. The output will also turn on when a motor fault is detected Flags Flags are software switches which can be set (turned on), cleared (turned off), and tested. Flags are used to indicate the status of something or to change the way something is done after the first time. There are six general-purpose flags (f1 through f6) and many special-purpose flags that control alternate functions or provide information. The flag instructions require the R command in order to execute immediately. The test-and-jump instructions must be used within a program. See for a list of all available flags. 68

81 Table Flag Commands Command Description fnnn+ f#nnn+ nnnp f-nnnp fnnn? set program flag nnn fnnnf#nnn- clear program flag nnn if flag n is set, then jump to label p. For n jump to label p if flag n is not set. (p: a...z, A...Z) query program flag nnn status Motor Power Control The syringe and valve motors can be individually turned on and off by command Syringe Motor The syringe motor is normally off. The syringe motor turns on at the beginning of a move and turns off after a short period at the end of a move. Internal friction in the pump assembly and the motor s detent are sufficient to hold the syringe in place between moves. It should be noted, however, that because the steps of the motor are actually half-steps, when the motor is released it may become off by one half-step. This becomes important when many small dispense or aspirate moves are performed, and the small error can build quickly Valve Motor The valve motor is normally off. The valve motor automatically turns on at the beginning of a valve move and turns off at the end of a valve move. There are no rotary forces acting on a valve and the combination of the internal friction in a valve and the motor detent torque are sufficient to hold the valve in place between moves The mn Command Use the mn command to set the status of a motor, where n denotes the motor and action to take. n: 0 - Turns off the syringe motor. 1 - Turns on the syringe motor. 2 - Turns off the valve motor. 3 - Turns on the valve motor. When a move takes place in either the syringe or valve motor, the normal motor power operation for the move overrides the current state of the mn command. Examples: m0 Turns off the syringe motor. (motor is off) A1200 Sends the syringe to position (motor is on during and after moving) m0 Turns off the syringe motor again. (motor is off) 69

82 Repeat Command String A command string can be repeated in its entirety by sending the string repeat command. The syntax is X. There is no limit to how often this command can be used to repeat the previous command string. This command does not work for queries and configuration commands. Example : o2a12000o-1a0r Moves the valve to port B, fill the syringe, move the valve to port A, empty the syringe. X Does all of the above commands again in the same way. X Does all the commands listed above again Command Reference Flags Table Flags Flag # Description 0 Valve or syringe motor busy status (reset only) 1-6 General purpose 7 If set, enable Handshake trigger input (default pin is unassigned) 8 If set, stop on second handshake event 9 If set, disable Home Button, shows as User Input #7 ( ~H command) 10 If set, enable Valve motor temperature (User Analog #1) 11 If set, enable syringe pump lower travel limit switch (default pin is unassigned) 12 If set, enable syringe pump upper travel limit switch (default pin is unassigned) 13 If set, enable syringe pump Handshake Input trigger (default pin is unassigned) 14 If set, enable Position Capture trigger (default pin is unassigned) 15 If set, enable Run/Halt input (default pin is unassigned) 16 If set, enable Emergency Stop input (default pin is unassigned) 17 If set, enable Dispense Halt trigger (default pin is unassigned) 18 If set, enable Aspirate Halt trigger (default pin is unassigned) 19 If set, enforce travel limit range checking (except on calibration) 20 If set, enable Syringe motor temperature (User Analog #2) 21 If set, enable Valve Busy status (default pin is unassigned) 22 If set, enable Syringe Busy status (default pin is unassigned) 23 If set, enable Handshake Output status (default pin is unassigned) 24 If set, enable Error Out status (default pin is unassigned) 30 If set, Tamper Pin input polarity active high 31 If set, ZERO switch input polarity active high 70

83 Flag # Description 32 If set, disable Tamper Pin, enable timestamping, shows as User Input #8 33 If set, enable scaling for certain indirect variables 34 If set, check loop nesting levels 35 If set, valve does not initialize on reset ( ~I command) 40 GPIO input edge latch status 41 Reserved 42 Reserved 43 Reserved 64 If set, the Tamper Pin pin detected an event 65 If set, valve initialized 66 If set, syringe pump initialized 67 If set, backup SRAM was valid after last reset 68 If set, RTC time was valid after last reset 69 If set, a power on reset (POR) occurred 70 If set, node is a network gateway 71 If set, ZERO switch detected a block 72 If set, RTC triggered an alarm 104 Halt on errors 105 Halt on faults Indirect Variables Indirect Variables that can be written to are marked with [rw]. Table Indirect Variables Indirect User Input Byte, does not clear User analog input #1 (0 to 5000 User analog input #1, ratiometric percentage Software accumulator #0 Current valve position as port number If valve position is invalid, returns port Current syringe position in half steps. If syringe position is invalid, returns Current syringe position as percentage of travel Software accumulator #n (n: 1 User Timer (software counter #9, milliseconds) User Outputs #1-4 (GPIO output Controller temperature Motor power supply (0 to 30,000 User analog input #2 (0 to 5000 Valve motor temperature (Celsius) 71

84 Indirect Pump motor temperature Syringe pump resolution (half steps) Syringe stroke length (in um) Syringe orifice diameter (in mils) Syringe capacity (in ml) Current syringe speed in half steps/sec Syringe start Syringe top Syringe end Syringe Syringe Syringe backlash Syringe hold delay Syringe lower travel Syringe upper travel Syringe fine micro step PWM Syringe coarse micro step PWM Syringe half step PWM Syringe full step PWM Syringe hold PWM Syringe single phase Syringe fine to coarse micro step Syringe single phase Syringe half to full step Syringe handshake position trigger Current valve speed in half steps/sec Valve start speed Valve top speed Valve end speed Valve acceleration Valve deceleration Valve backlash steps Valve hold delay (ms) Valve lower travel Valve upper travel Valve fine micro step PWM percentage Valve coarse micro step PWM percentage Valve half step PWM percentage Valve full step PWM percentage Valve hold PWM percentage Valve single phase multiplier Valve fine to coarse micro step Valve micro to half step boundary 72

85 Indirect Valve half to full step Number of valve Syringe motor mechanical low step Syringe motor mechanical upper step Valve motor mechanical low step Valve motor mechanical upper step Syringe headspace Syringe encoder Valve encoder Valve step position (half steps) Most recent background exception Free-running timer (32 bit unsigned, 1 µsec RTOS timer (32 bit unsigned, 1ms Time of day (HHMMSS) Date (YYMMDD) Seconds since 1/1/70 (32 bit unsigned, 1 sec Julian days since 1/1/70 (32 bit unsigned, 24 hour Valve motor power on Syringe motor power on Controller power on Tamper Pin timestamp in seconds since 1/1/70 (32 bit unsigned, 1 sec Random number (from hardware RNG in Hex address Syringe part Valve part Pump part Firmware build part Firmware base part Circuit board part Customer/OEM part Syringe average current last move (phase Syringe average current last move (phase Syringe peak current last move (phase Syringe peak current last move (phase Valve average current last move (phase Valve average current last move (phase Valve peak current last move (phase Valve peak current last move (phase Valve motor shaft angle (0 or 1 for Most recent syringe position Aspirate cycles (count of aspirate commands) Dispense cycles (count of dispense commands) Valve moves Valve stalls [rw] 73

86 Standard Commands Table Standard Commands Command Description An an B Cn,m C#n,m cn,m c#n,m Move syringe to absolute position n. Apply backlash if aspirating. If travel limits are enabled (F24 flag set) then position n must be within the travel range. The command waits for the motor to complete the move. If travel limits are enabled the position n must be within the travel range. (n: lower limit upper Move syringe to absolute position n. Apply backlash if aspirating. If travel limits are enabled (F19 flag set) then position n must be within the travel range. The command does not wait for the motor to complete the move. The F0 flag can be polled to determine if the syringe motor is busy. (n: lower limit upper Move valve to bypass port using the shortest path. Set syringe pump calibration speed and duty cycle, used in the W4 command. (n: Start m: 1 set syringe End Speed in n steps/sec, single phase boost m percent (n: 1 Top m: 100 Note: Changing the phase boost percentage can cause the pump to malfunction or behave unexpectedly. Dn dn fnnn+ f#nnn+ Dispense n steps from the current position. The dispense direction is upward, towards the valve. If travel limits are enabled (F19 flag set) then the ending position must be within the travel range. A value of zero will move the syringe to the full dispense position or until terminated by a T command, asserting the lower travel limit (ZERO) trigger, or asserting the Dispense Halt trigger. The command waits for the motor to complete the move. The relative distance n must be positive. (n: 0 remaining dispense Dispense n steps from the current position. The dispense direction is upward, towards the valve. If travel limits are enabled (F19 flag set) then position n must be within the travel range. The command does not wait for the motor to complete the move. The F0 flag can be polled to determine if the syringe motor is busy. (n: 0 remaining dispense set program flag nnn (n: writable fnnnf#nnn- clear program flag nnn (n: writable 74

87 Command Description fnnnp f-nnnp if flag n is set, then jump to label p. For n jump to label p if flag n is not set. (n: flag,@x) (p: a...z, A...Z) g Gn repeat commands between G and Gn for n times, or loop indefinitely if n is 0 (n: H H# hn hn,m h-n I inp i>np i<np Jp jn Kn,m K#n,m kn k#n k+n k-n k*n k/n k&n Halt background program (breakpoint), use foreground R command to resume. The immediate Halt command is used to stop a background script for debugging purposes. Listen for 1 falling edge on User Input #n, then begin a handshake dispense using User Output #n. (n: = User Inputs 1...8) Listen for m falling edges on User Input #n, then begin a handshake dispense using User Output #n. (n: = User Inputs 1...8) (m: 1.. Begin a handshake dispense immediately, using User Output #n. (n: = User Outputs 1...4) Move valve to input port using the shortest path. if User Input n is "true", then jump to label p (n: = User Inputs (p: a...z, A...Z) if Analog Input #1 is less than n, then jump to label p (n: 0... (p: a...z, A...Z) if Analog Input #1 is greater than n, then jump to label p (n: 0... (p: a...z, A...Z) unconditional jump to label p (p: a...z, A...Z) execute script n and then return to next instruction in calling script (n: set number of syringe backlash steps to n, headspace steps to m (n: 0 20% of full m: 0 10% of full set the software counter value to n (n: 0... add n to the software counter (n: 0... subtract n from the software counter (n: 0... multiply the software counter by n (n: 0... divide the software counter by n (n: 1... bitwise AND n and the software counter (n:

88 Command k n k!n k^n k<np k=np k>np Ln,m L#n,m Description bitwise OR n and the software counter (n: 0... bitwise XOR n and the software counter (n: 0... exchange the contents of counter n with the software counter (n: 1...9) if the software counter is less than n, jump to label p (n: 0... (p: a...z, A...Z) if the software counter is equal to n, jump to label p (n: 0... (p: a...z, A...Z) if the software counter is greater than n, jump to label p (n: 0... (p: a...z, A...Z) set syringe acceleration and deceleration slopes in n step increments/step, fine microstep in m. (n: 1...Top m: 1 Note: Changing the fine microstep PWM duty cycle can cause the pump to malfunction or behave unexpectedly. ln,m l#n,m set syringe deceleration slope independently in n step decrements/step, coarse microstep duty cycle in m. (n: 1...Top m: 1 Note: Changing the course microstep PWM duty cycle can cause the pump to malfunction or behave unexpectedly. Mn mn m#n Nn,m N#n,m delay n milliseconds (n: 1... Turn motors on/off (normally done automatically). (n: 0 = syringe motor off 1 = syringe motor on, holding 2 = valve motor off 3 = valve motor on, holding) Set syringe hold time n and PWM duty cycle m (n: 0 m: 0 Note: Changing the course PWM duty cycle can cause the pump to malfunction or behave unexpectedly. nn,m n#n,m Set valve hold time n and PWM duty cycle m (n: 0 m: 0 Note: Changing the PWM duty cycle can cause the pump to malfunction or behave unexpectedly. 76

89 Command O on o+n o-n Pn pn Description Move valve to output port using shortest path. For rotary valves there must be a port designated as the output. Move valve to port n. Normally the valve move uses the shortest distance, rotating either clockwise or counterclockwise. If the + modifier is used the motion is forced clockwise, and a - modifier forces a counterclockwise move. (n: 1 to Aspirate n steps from the current position, with the BUSY status bit set to busy. The aspirate direction is downward, away from the valve. If travel limits are enabled (F19 flag set) then the ending position must be within the travel range. A value of zero will aspirate to the full stroke unless terminated by a T command, triggering the upper travel limit input (LIMIT), or asserting the Aspirate Halt trigger input. The relative distance n must be positive. (n: 0 remaining aspirate Aspirate n steps from the current position. The aspirate direction is downward, away from the valve. If travel limits are enabled (F19 flag set) then position n must be within the travel range. The command does not wait for the motor to complete the move. The F0 flag can be polled to determine if the syringe motor is busy. (n: 0 remaining aspirate Sn tn set syringe Top Speed (in steps) from table (deprecated command) (n: exit the error handler routine in the way determined by n (n: 1 = Return script execution to the instruction after error 2 = Restart the script from the beginning 3 = Perform a normal error exit with an error message 4 = Retry the instruction which caused the error) Un U#n assert (turn on) an output pin (n: = User Outputs un u#n deassert (turn off) an output pin (n: = User Outputs Vn,m V#n set syringe Top Speed in n steps/sec, full step PWM duty cycle in m. An "R" command is not required for this instruction (n: Start m: 1 Note: Changing the full step PWM duty cycle can cause the pump to malfunction or behave unexpectedly. vn,m v#n,m set syringe Start Speed in n steps/sec, half step PWM duty cycle m (n: 1 Top m: 1 Note: Changing the half step PWM duty cycle can cause the pump to malfunction or behave unexpectedly. 77

90 Command Description Wn x*p xnp Yn Y#n y<np y=np y>np Zn Z#n zn=m z#n=m initialize syringe and/or valve (n: 0 = equivalent to W4A0 1 = equivalent to Y4A0 2 = equivalent to Z4A0 3 = not used 4 = calibrate valve to port A, then calibrate syringe to ZERO position 5 = set ZERO lower limit to current syringe position 6 = set valve ZERO point at current position 7 = calibrate valve, move to port A 8 = force syringe position to nnn with W8,NNN command 9 = reset controller 10 = calibrate syringe only) Set all exception traps to label p (p=a...z, A...Z) :p set program label p (p: a...z, A...Z) n n,m trap error n and jump to a user error handler routine at script label p (n: ) (p=a...z, A...Z) initialize syringe and select the valve port specified by the ~Y parameter (n: 4...7, see Wn ) if syringe step position is less than n, go to label p (n: lower limit...upper limit) (p=a...z, A...Z) if syringe step position is equal to n, go to label p (n: lower limit...upper limit) (p=a...z, A...Z) if syringe step position is greater than n, go to label p (n: lower limit...upper limit) (p=a...z, A...Z) Initialize syringe and select the valve port specified by the ~Z parameter. (n: 4...7, see Wn ) Assign value m to or accumulator n (n: 0..8 = accumulator 0 to 8 9 = User m: Display parameter n as a number on console. If parameter m is included send a column delimiter after the number, otherwise send end of line (n: nnn, any (any indirect variable) m: 1, comma after number 2, tab after number 3, space after number 0 or no parameter, end of column delimiter in an indirect) 78

91 Immediate Commands Table Immediate Commands Command En en F k Q q qn R rn T Description Save script to directory entry n, delete prior entry if any (n: 1 99) Erase script at directory entry n, display number of erases (n: 1 99) query background script status (return 0 for no background script, 1 if background script loaded) query the software counter (accumulator zero) query pump status code, return ASCII rendition of binary code query background script contents, display. if no script read user script n into background, query script contents (n: ) run background script or resume after script halt Load and run stored user script n in background (n: ) terminate execution of command or background script! save current operational parameters in non-volatile configuration parameters Configuration Commands Table Configuration Commands Command Description ~A query the autostart script number ~An set autostart script number to n (n: = disable [default]) ~B query the RS-485 network baud rate ~Bn,t set RS-485 network baud rate, set bus termination on/off (n: 1 = = = 9600 [default] 4 = = = invalid 7 = invalid 8 = invalid 9 = = = = t: 0 = termination off 1 = termination on 2 = termination off, except node #1 and #15, [default] ) 79

92 Command Description ~C Query the CAN bus bit rate ~Cn,t Set the CAN bus bit rate, set bus termination on/off (n: 0 = CAN bus disabled 1 = 10 Kbit 2 = 20 Kbit 3 = 125 Kbit 4 = 250 Kbit [default] 5 = 500 Kbit 6 = 1000 Kbit t: 0 = termination off [default for all nodes except #1 and #15] 1 = termination on [default for node #1 and #15]) ~D query RS-485 turnaournd delay ~Dn,m ~En set the RS-485 turnaround delay, where n is a delay in milliseconds (default 2 ms) for transmit to receive, and m is the delay for receive to transmit (use 12 ms for V-Series compatibility) erase all user programs in script storage (n must be set to to enable erase) ~F query the RS-232 console baud rate ~Fn,t set RS-232 communications baud rate and flow control (n: 1 = = = 9600 [default] 4 = = = = invalid 8 = invalid 9 = = t: 0 = disable CTS-RTS flow control [default] 1 = enable CTS-RTS flow control) ~H query the Home Button mode (F9 flag) ~Hn set the Home Button mode (n: 0 = enabled [default] 1 = disabled) ~I query the power-up valve move mode (F35 flag) ~In set the power-up valve move mode (n: 0 = enabled 1 = disabled) 80

93 Command Description ~L query dispense limit operating mode (F17 flag) ~Ln ~Mn ~Mn,m set dispense mode (n: 0 = Dispense Halt alternate function input disabled 1 = Dispense Halt alternate function input enabled) query alternate function n pin map map alternate function n to pin m, pin direction implicitly determined by alternate function input or output (n: 1-2 = Reserved 3 = handshake input 4 = position capture input 5 = run/stop* input 6 = emergency stop input 7 = dispense stop input 8 = aspirate stop input 9-10 = Reserved 11 = valve active output 12 = syringe active output 13 = handshake output 14 = error output m 0 = no pin, function disabled 1 8 = GPIO pin) ~P Query the Cavro protocol ~Pn Select the Cavro protocol (n: 1 = DT [default] 2 = OEM) ~Q Query the pump and OEM part numbers ~Qn,m Set the pump part number in n, and optionally the OEM part number in m. (n: = NX3 6K, 1.8, 1:1 pulley = NX3 12K, 1.8, 2:1 pulley [default] = NX3 12K, 0.9, 1:1 pulley = NX3 24K, 0.9, 2:1 pulley nnnnn = Norgren Kloehn pump part number) m: 0 = no OEM part number [default] nnnnn = OEM part number) ~Rn Reset controller (n: 1 = software reset (warm start) [default] 2 = reset, clear backup SRAM 3 = reset, restore backup copy configuration parameters 4 = reset, load factory defaults) ~V Query the valve and syringe part numbers 81

94 Command ~Vn ~Vn,m Description Set the valve part number to n and optional syringe part number to m. For units without valves, is reported. For units without syringes, is reported. Attempting to set the syringe part number when there is no valve (has part number ) will result in an invalid argument response. The default valve and syringe part number is stored in configuration parameters during assembly. ~Xn,m If a valve changes it must be initialized. If a syringe changes the syringe pump must be initialized. If the syringe stroke length does not match the pump stroke an error is reported. For V-Series compatibility a table entry number from below can be entered for a generic valve instead of a specific valve part number. (n: 1 = 3 way non-distribution valve 2 = 3 way distribution valve 3 = 4 way non-distribution valve 4 = 4 way distribution valve 5 = 5 way non-distribution valve 6 = 5 way distribution valve 7 = 6 way non-distribution valve 9 = 8 way non-distribution valve 10 = 8 way distribution valve 13 = 2 way distribution valve 14 = 6 way distribution Valve 17 = 2 way FAS solenoid valve = no valve installed nnnnn = Norgren Kloehn valve part number) m: = no syringe installed nnnnn = Norgren Kloehn syringe part number) Set system object n to value m. The object number corresponds to the object ID number in the controller object dictionary. Please check with Kloehn customer support before using this command as certain setting can cause the pump to malfunction. ~Y Query the valve port to be used by the Yn initialization command ~Yn Select the valve position to which the valve will go just prior to moving syringe to the soft limit using the "Y4" command. The "~Vn" value is checked for a valid entry before accepting the value of n. This permits a port different from A to be used for the syringe initialization move. The valid range, depending on valve type, is a positive number if pump movement is allowed, or negative if no pump movement (blocked port). (n: , 1 16) ~Z Query the valve port to be used by the Zn initialization command ~Zn Select the valve position to which the valve will go just prior to moving the syringe to the soft limit using the "Z4" command. The "~Vn" value is checked for a valid entry before accepting the value of n. This permits a port different from A to be used for the syringe initialization move. The valid range, depending on valve type, is a positive number if pump movement is allowed, or negative if no pump movement (blocked port). (n: , 1 16) 82

95 Query Commands Table Query Commands Command Description C? query calibration speed and calibration (microstep) duty cycle c? query syringe end speed and single phase multiplier fnnn? query program flag nnn status K? query syringe backlash and headspace parameters L? query syringe acceleration and fine microstep duty cycle l? query syringe deceleration and coarse microstep duty cycle N? query syringe hold time and duty cycle n? query valve hold time and duty cycle V? query syringe top speed and full step duty cycle v? query syringe end speed and half step duty cycle X repeat last command string (background only) x? query the last trapped exception (background only)? query syringe position in steps (reply:? if invalid, else syringe position)?1 query syringe Start Speed steps/sec?2 query syringe Top Speed steps/sec?3 query syringe End Speed steps/sec?4 query the User Input #1 level (ignore edge latch)?5 query the User Input #2 level?6 query the User Input #3 level?7 query the User Analog Input #1, 20 mvolt units?8 query valve position as port (reply: 1 16 = valve port number? = Invalid position)?9 query the number of unused bytes in user script storage?10 to?18 Reserved?19 query list of script numbers saved in script storage?20 to?28 Reserved?29 query contents of syringe position snapshot, clear snapshot (steps) show -1 if no capture occurred?30 query the syringe ramp up and ramp down (steps/step)?31 query the number of syringe backlash steps?32 query firmware build part number (software revision)?33 query contents of active background script (same as q )?34 query max call depth for nested scripts?35 query current run stack level 83

96 Command Description?36 query next background command?37 query error history?38 query vendor string?39 query product ID string?40 query User Input GPIO port (User Input #1 through #8), does not reset edge capture?41 to?48 query User Input GPIO pins #1 to #8, resets edge capture?49 query User Analog input #2, 20mV units?50 Reserved?51 to?58 Reserved?60 query User output GPIO port (User output #1 through #8)?61 to?64 query User output GPIO pins #1 to #4?90 Reserved?91 to?98 query indirect $ query number of valve stalls (reply: 0 = no stall 1 = stalled once 2 = stalled twice) % query number of valve movements, including stalls and calibrations & query firmware base part number * query stepper motor supply voltage, 200mV units 6 STATUS AND ERROR MESSAGES 6.1 Status and Error Messages Table 6-1. Status/Error Messages ASCII Error Decimal Binary Status Busy Ready Number Busy Ready ' X00000 no error A a X00001 syringe failed to initialize B b X00010 invalid command C c X00011 invalid argument D d X00100 communication error E e X00101 invalid "R" command F f X00110 supply voltage too low G g X00111 device not initialized H h X01000 program in progress I i X01001 syringe overload J j X01010 valve overload K k X01011 syringe move not allowed L l X01100 cannot move against limit O o X01111 command buffer overflow P p X10000 use for 3-way valve only 84

97 ASCII Error Decimal Binary Status Busy Ready Number Busy Ready Q q X10001 loops nested too deep R r X10010 program label not found S s X10011 end of program not found T t X10100 out of program space U u X10101 home not set V v X10110 too many program calls W w X10111 program not found X x X11000 valve position error Y y X11001 syringe position corrupted Z Z X11010 syringe may go past home 6.2 Status and Error LED Codes Table 6-2. LED Fault Codes 85

SilverMax Datasheet. QuickSilver Controls, Inc. NEMA 23 Servomotors.

SilverMax Datasheet. QuickSilver Controls, Inc. NEMA 23 Servomotors. SilverMax Datasheet NEMA 23 Servomotors QuickSilver Controls, Inc. www.quicksilvercontrols.com SilverMax Datasheet - NEMA 23 Servomotors 23 Frame Sizes: 23-3, 23-5, 23H-1, 23H-3, 23H-5 / Series: E, E3,

More information

maxon document number:

maxon document number: maxon document number: 791272-04 1 Table of contents... 2 2 Table of figures... 3 3 Introduction... 4 4 How to use this guide... 4 5 Safety Instructions... 5 6 Performance Data... 6 6.1 Motor data... 6

More information

LC-10 Chipless TagReader v 2.0 August 2006

LC-10 Chipless TagReader v 2.0 August 2006 LC-10 Chipless TagReader v 2.0 August 2006 The LC-10 is a portable instrument that connects to the USB port of any computer. The LC-10 operates in the frequency range of 1-50 MHz, and is designed to detect

More information

Modbus communication module for TCX2: AEX-MOD

Modbus communication module for TCX2: AEX-MOD Modbus communication module for TCX2: Communication Specification TCX2 is factory installed in TCX2 series controllers with -MOD suffix, and is also available separately upon request for customer installation

More information

SMARTALPHA RF TRANSCEIVER

SMARTALPHA RF TRANSCEIVER SMARTALPHA RF TRANSCEIVER Intelligent RF Modem Module RF Data Rates to 19200bps Up to 300 metres Range Programmable to 433, 868, or 915MHz Selectable Narrowband RF Channels Crystal Controlled RF Design

More information

MADEinUSA OPERATOR S MANUAL. RS232 Interface Rev. A

MADEinUSA OPERATOR S MANUAL. RS232 Interface Rev. A MADEinUSA OPERATOR S MANUAL RS232 Interface 92-3006 Rev. A www.iradion.com Iradion Laser, Inc. 51 Industrial Dr. N. Smithfield, RI 02896 (410) 762-5100 Table of Contents 1. Overview... 2 2. Equipment Required...

More information

Applications. Operating Modes. Description. Part Number Description Package. Many to one. One to one Broadcast One to many

Applications. Operating Modes. Description. Part Number Description Package. Many to one. One to one Broadcast One to many RXQ2 - XXX GFSK MULTICHANNEL RADIO TRANSCEIVER Intelligent modem Transceiver Data Rates to 100 kbps Selectable Narrowband Channels Crystal controlled design Supply Voltage 3.3V Serial Data Interface with

More information

Select datum Page backward in. parameter list

Select datum Page backward in. parameter list HEIDENHAIN Working with the measured value display unit ND Actual value and input display (7-segment LED, 9 decades and sign) Select datum Page backward in parameter list Confirm entry value Set display

More information

EE 314 Spring 2003 Microprocessor Systems

EE 314 Spring 2003 Microprocessor Systems EE 314 Spring 2003 Microprocessor Systems Laboratory Project #9 Closed Loop Control Overview and Introduction This project will bring together several pieces of software and draw on knowledge gained in

More information

PI-10 Broadband Power Indicator

PI-10 Broadband Power Indicator PI-10 Broadband Power Indicator HIGH RF VOLTAGES MAY BE PRESENT AT THE PORTS OF THIS UNIT. All operating personnel should use extreme caution in handling these voltages and be thoroughly familiar with

More information

PI-150 Broadband Power Indicator

PI-150 Broadband Power Indicator PI-150 Broadband Power Indicator HIGH RF VOLTAGES MAY BE PRESENT AT THE PORTS OF THIS UNIT. All operating personnel should use extreme caution in handling these voltages and be thoroughly familiar with

More information

TS4000 Radio Modem. User s Manual

TS4000 Radio Modem. User s Manual TS4000 Radio Modem User s Manual Version 6.60C 1729 South Main Street Milpitas, CA 95035 (408) 941-1808 (800) 663-3674 (408) 941-1818 Fax www.teledesignsystems.com productsales@teledesignsystems.com techsupport@teledesignsystems.com

More information

Line-to-line RMS Volts, 3 phases 4 digits (XXX.X) Volts

Line-to-line RMS Volts, 3 phases 4 digits (XXX.X) Volts digital ac POWER MONITOR DESCRIPTION The DSP is a three-phase, three-element multifunction digital transducer with outputs for voltage, current, and power via serial communication. Applications include

More information

USING RS-232 to RS-485 CONVERTERS (With RS-232, RS-422 and RS-485 devices)

USING RS-232 to RS-485 CONVERTERS (With RS-232, RS-422 and RS-485 devices) ICS DataCom Application Note USING RS- to RS- CONVERTERS (With RS-, RS- and RS- devices) INTRODUCTION Table RS-/RS- Logic Levels This application note provides information about using ICSDataCom's RS-

More information

I-7088, I-7088D, M-7088 and M-7088D User Manual

I-7088, I-7088D, M-7088 and M-7088D User Manual I-7088, I-7088D, M-7088 and M-7088D User Manual I-7000 New Features 1. Internal Self Tuner 2. Multiple Baud Rates 3. Multiple Data Formats 4. Internal Dual WatchDog 5. True Distributed Control 6. High

More information

Jaguar Motor Controller (Stellaris Brushed DC Motor Control Module with CAN)

Jaguar Motor Controller (Stellaris Brushed DC Motor Control Module with CAN) Jaguar Motor Controller (Stellaris Brushed DC Motor Control Module with CAN) 217-3367 Ordering Information Product Number Description 217-3367 Stellaris Brushed DC Motor Control Module with CAN (217-3367)

More information

Cost efficient design Operates in full sunlight Low power consumption Wide field of view Small footprint Simple serial connectivity Long Range

Cost efficient design Operates in full sunlight Low power consumption Wide field of view Small footprint Simple serial connectivity Long Range Cost efficient design Operates in full sunlight Low power consumption Wide field of view Small footprint Simple serial connectivity Long Range sweep v1.0 CAUTION This device contains a component which

More information

Tarocco Closed Loop Motor Controller

Tarocco Closed Loop Motor Controller Contents Safety Information... 3 Overview... 4 Features... 4 SoC for Closed Loop Control... 4 Gate Driver... 5 MOSFETs in H Bridge Configuration... 5 Device Characteristics... 6 Installation... 7 Motor

More information

APPLICATION BULLETIN. SERIAL BACKGROUNDER (Serial 101) AB23-1. ICS ICS ELECTRONICS division of Systems West Inc. INTRODUCTION CHAPTER 2 - DATA FORMAT

APPLICATION BULLETIN. SERIAL BACKGROUNDER (Serial 101) AB23-1. ICS ICS ELECTRONICS division of Systems West Inc. INTRODUCTION CHAPTER 2 - DATA FORMAT ICS ICS ELECTRONICS division of Systems West Inc. AB- APPLICATION BULLETIN SERIAL BACKGROUNDER (Serial 0) INTRODUCTION Serial data communication is the most common means of transmitting data from one point

More information

Confirm entry value Set display to value from Actual value and input display Select datum P79 (P80!) (7-segment LED,

Confirm entry value Set display to value from Actual value and input display Select datum P79 (P80!) (7-segment LED, HEIDENHAIN Working with the measured value display unit ND 261 Confirm entry value Set display to value from Actual value and input display Select datum P79 (P80!) (7-segment LED, Page backward in 9 decades

More information

Cost efficient design Operates in full sunlight Low power consumption Wide field of view Small footprint Simple serial connectivity Long Range

Cost efficient design Operates in full sunlight Low power consumption Wide field of view Small footprint Simple serial connectivity Long Range Cost efficient design Operates in full sunlight Low power consumption Wide field of view Small footprint Simple serial connectivity Long Range sweep v1.0 CAUTION This device contains a component which

More information

AEI800L Avid extreme Liquid Cooled Inverter Module Data Sheet REV 00, March AEI800L Liquid Cooled Inverter Module Data Sheet

AEI800L Avid extreme Liquid Cooled Inverter Module Data Sheet REV 00, March AEI800L Liquid Cooled Inverter Module Data Sheet AEI800L Avid extreme Liquid Cooled Inverter Module REV 00, March 2016 Avid Controls Inc. 41261 Park 290 Drive, Waller, TX 77484, USA info@avidcontrolsinc.com (+1) (281) 640-8600 Page 1 of 16 Copyright

More information

EVDP610 IXDP610 Digital PWM Controller IC Evaluation Board

EVDP610 IXDP610 Digital PWM Controller IC Evaluation Board IXDP610 Digital PWM Controller IC Evaluation Board General Description The IXDP610 Digital Pulse Width Modulator (DPWM) is a programmable CMOS LSI device, which accepts digital pulse width data from a

More information

IMC-316P Hardware Manual for model IMC-316P-X-D

IMC-316P Hardware Manual for model IMC-316P-X-D IMC-316P Hardware Manual for model IMC-316P-X-D Pub 352r0 A publication of 1050 Highland Drive Ann Arbor, Michigan 48108 Phone: (734) 665-5473 Fax: (734) 665-6694 www.whedco.com 2000 Whedco Incorporated,

More information

Home Automation, Inc. Omnistat2. RC-1000 and RC-2000 Communicating Thermostat. Serial Protocol Description

Home Automation, Inc. Omnistat2. RC-1000 and RC-2000 Communicating Thermostat. Serial Protocol Description Home Automation, Inc. Omnistat2 RC-1000 and RC-2000 Communicating Thermostat Serial Protocol Description This document contains the intellectual property of Home Automation, Inc. (HAI). HAI authorizes

More information

P/N: AX TECHNICAL DATASHEET #TDAX Single Input, Dual Output Valve Controller 1 Universal Input, +5V reference CAN (SAE J1939)

P/N: AX TECHNICAL DATASHEET #TDAX Single Input, Dual Output Valve Controller 1 Universal Input, +5V reference CAN (SAE J1939) TECHNICAL DATASHEET #TDAX022000 Single Input, Dual Output Valve Controller 1 Universal Input, +5V reference (SAE J1939) Features: 1 universal signal input 2 proportional or on/off outputs up to 3 A User

More information

AZ Series. Function Edition. Closed Loop Stepping Motor and Driver Package. Operation. I/O signals. Parameter

AZ Series. Function Edition. Closed Loop Stepping Motor and Driver Package. Operation. I/O signals. Parameter HM-6262 Closed Loop Stepping Motor and Driver Package Operation I/O signals Parameter AZ Series Function Edition Method of control via Modbus RTU (RS-485 communication) Method of control via industrial

More information

Gentec-EO USA. T-RAD-USB Users Manual. T-Rad-USB Operating Instructions /15/2010 Page 1 of 24

Gentec-EO USA. T-RAD-USB Users Manual. T-Rad-USB Operating Instructions /15/2010 Page 1 of 24 Gentec-EO USA T-RAD-USB Users Manual Gentec-EO USA 5825 Jean Road Center Lake Oswego, Oregon, 97035 503-697-1870 voice 503-697-0633 fax 121-201795 11/15/2010 Page 1 of 24 System Overview Welcome to the

More information

CDR-915 Data Radio Module INTEGRATOR S GUIDE

CDR-915 Data Radio Module INTEGRATOR S GUIDE CDR-915 Data Radio Module Coyote DataCom, Inc. 3941 Park Drive, Suite 20-266, El Dorado Hills, CA 95762 Tel. 916-933-9981 Fax 916-913-0951 www.coyotedatacom.com TABLE OF CONTENTS General Information and

More information

USB Multifunction Arbitrary Waveform Generator AWG2300. User Guide

USB Multifunction Arbitrary Waveform Generator AWG2300. User Guide USB Multifunction Arbitrary Waveform Generator AWG2300 User Guide Contents Safety information... 3 About this guide... 4 AWG2300 specifications... 5 Chapter 1. Product introduction 1 1. Package contents......

More information

OHIO SEMITRONICS, INC. DIGITAL AC POWER MONITOR OSI SPECIFICATIONS

OHIO SEMITRONICS, INC. DIGITAL AC POWER MONITOR OSI SPECIFICATIONS DIGITAL AC POWER MONITOR DESCRIPTION The DSP is a three-phase, three-element multifunction digital transducer with outputs for voltage, current, and power via serial communication. Applications include

More information

G3P-R232. User Manual. Release. 2.06

G3P-R232. User Manual. Release. 2.06 G3P-R232 User Manual Release. 2.06 1 INDEX 1. RELEASE HISTORY... 3 1.1. Release 1.01... 3 1.2. Release 2.01... 3 1.3. Release 2.02... 3 1.4. Release 2.03... 3 1.5. Release 2.04... 3 1.6. Release 2.05...

More information

For Safety information, Warranties, and Regulatory information, see the pages behind the Index.

For Safety information, Warranties, and Regulatory information, see the pages behind the Index. User s Guide Part Number: E3631-90002 April 2000. For Safety information, Warranties, and Regulatory information, see the pages behind the Index. Copyright Agilent Technologies, Inc. 2000 All Rights Reserved.

More information

Stat-4 Stat-8 Stat-24

Stat-4 Stat-8 Stat-24 JULY 1993 MX864A MX866A MX868A Stat-4 Stat-8 Stat-24 STAT-4 POWER MAIN 1 2 3 4 SYNC ERR OVF TEST 1 2 3 4 RESET STAT-24 STAT-8 POWER MAIN 1 2 3 4 5 6 7 8 SYNC ERR OVF TEST 1 2 3 4 5 6 7 8 TEST SYNC 23 24

More information

TECHNICAL PRODUCT DATASHEET

TECHNICAL PRODUCT DATASHEET FORM-ENG-0018 REV A 06-02-03 ISO 9001 CERTIFIED Phone: (352) 629-5020 or 800-533-3569 Fax: (352)-629-2902 SUITABLE FOR OEM DISTRIBUTION ONLY TECHNICAL PRODUCT DATASHEET High Density PDM 21 Output / 10

More information

Mate Serial Communications Guide This guide is only relevant to Mate Code Revs. of 4.00 and greater

Mate Serial Communications Guide This guide is only relevant to Mate Code Revs. of 4.00 and greater Mate Serial Communications Guide This guide is only relevant to Mate Code Revs. of 4.00 and greater For additional information contact matedev@outbackpower.com Page 1 of 20 Revision History Revision 2.0:

More information

External RF Driver. Electrical Driver for AOTF-crystal. Instruction Manual

External RF Driver. Electrical Driver for AOTF-crystal. Instruction Manual External RF Driver Electrical Driver for AOTF-crystal Instruction Manual Table of Contents 1 General... 3 2 Compliance... 3 3 Labeling... 4 4 Interface... 5 4.1 Front Panel... 5 4.2 Back Panel... 6 4.2.1

More information

Metaphase ULC-2. Technologies ULC. Metaphase. Technologies Version 7.X August 2015 USER MANUAL. metaphase-tech.com. pg. 1

Metaphase ULC-2. Technologies ULC. Metaphase. Technologies Version 7.X August 2015 USER MANUAL. metaphase-tech.com. pg. 1 ULC Version 7.X August 2015 USER MANUAL pg. 1 Overview Universal LED Controller () provides independent true constant-current or voltage control of two LED loads from 0.02 to 4 Amps continuous (DC) with

More information

LVTX-10 Series Ultrasonic Sensor Installation and Operation Guide

LVTX-10 Series Ultrasonic Sensor Installation and Operation Guide LVTX-10 Series Ultrasonic Sensor Installation and Operation Guide M-5578/0516 M-5578/0516 Section TABLE OF CONTENTS 1 Introduction... 1 2 Quick Guide on Getting Started... 2 Mounting the LVTX-10 Series

More information

Integrated Easy Servo

Integrated Easy Servo ies 1706 Integrated Easy Servo Motor + Drive + Encoder, 18 32VDC, NEMA17, 0.6Nm Features Easy servo control technology to combine advantages of open loop stepper systems and brushless servo systems Closed

More information

MGL Avionics Autopilot. Servo. Specifications & Installation Manual. Last Update: 20 October Disclaimer:

MGL Avionics Autopilot. Servo. Specifications & Installation Manual. Last Update: 20 October Disclaimer: MGL Avionics Autopilot Servo Specifications & Installation Manual Last Update: 20 October 2010 Disclaimer: MGL Avionics should not be held responsible for errors or omissions in this document. Usage of

More information

CP485-4 User s Manual

CP485-4 User s Manual CP485x4 User s Manual Version 1.0 2005 ZYPEX, Inc. CP485-4 User s Manual Table of Contents Table of Contents Product Description 1 CP485x4 Configuration & Setup 2 Power 2 Baud Rate 2 Control Mode 2 Duplex

More information

WTPCT-M. eeder. Pulse Counter/Timer Module. Technologies FEATURES SPECIFICATIONS DESCRIPTION. Weeder Technologies

WTPCT-M. eeder. Pulse Counter/Timer Module. Technologies FEATURES SPECIFICATIONS DESCRIPTION. Weeder Technologies eeder Technologies 90-A Beal Pkwy NW, Fort Walton Beach, FL 32548 www.weedtech.com 850-863-5723 Pulse Counter/Timer Module FEATURES Reads frequency from 0.50000 to 1,400,000 Hz using 5 digit resolution

More information

Programmable with Electronic Assistant Simulink

Programmable with Electronic Assistant Simulink TECHNICAL DATASHEET #TDAX022410 2 Universal Inputs, Dual Valve Controller 2 Universal Signal Inputs 2-3A Outputs Drive Hydraulic Valves CAN (SAE J1939) Programmable with Electronic Assistant Simulink P/N:

More information

MegaPoints Controller

MegaPoints Controller MegaPoints Controller A flexible solution and modular component for controlling model railway points and semaphore signals using inexpensive servos. User guide Revision 10c March 2015 MegaPoints Controllers

More information

Ordering Part Numbers: SAE J1939 version Controller: AX022400

Ordering Part Numbers: SAE J1939 version Controller: AX022400 TECHNICAL DATASHEET #TDAX022400 2 Universal Inputs, Dual Valve Controller 2 Universal Inputs 2-3A Outputs CAN (SAE J1939) Programmable with Electronic Assistant P/N: AX022400 Features: 2 universal signal

More information

This Errata Sheet contains corrections or changes made after the publication of this manual.

This Errata Sheet contains corrections or changes made after the publication of this manual. Errata Sheet This Errata Sheet contains corrections or changes made after the publication of this manual. Product Family: DL35 Manual Number D3-ANLG-M Revision and Date 3rd Edition, February 23 Date: September

More information

AT-XTR-7020A-4. Multi-Channel Micro Embedded Transceiver Module. Features. Typical Applications

AT-XTR-7020A-4. Multi-Channel Micro Embedded Transceiver Module. Features. Typical Applications AT-XTR-7020A-4 Multi-Channel Micro Embedded Transceiver Module The AT-XTR-7020A-4 radio data transceiver represents a simple and economical solution to wireless data communications. The employment of an

More information

Quick Start Guide. Contents

Quick Start Guide. Contents 1 Quick Start Guide Contents Powering on the Machine Login/Password Entry Jaw Set Up High Security Cut by Code High Security Jaw Set Up Edge Cut Cut by Code Edge Cut Cut by Decode Cutter Replacement Tracer

More information

Product Specification for model TT Transducer Tester Rev. B

Product Specification for model TT Transducer Tester Rev. B TT Rev B April 20, 2010 Product Specification for model TT Transducer Tester Rev. B The Rapid Controls model TT Rev B transducer tester connects to multiple types of transducers and displays position and

More information

TECHNICAL DOCUMENT EPC SERVO AMPLIFIER MODULE Part Number L xx EPC. 100 Series (1xx) User Manual

TECHNICAL DOCUMENT EPC SERVO AMPLIFIER MODULE Part Number L xx EPC. 100 Series (1xx) User Manual ELECTRONIC 1 100 Series (1xx) User Manual ELECTRONIC 2 Table of Contents 1 Introduction... 4 2 Basic System Overview... 4 3 General Instructions... 5 3.1 Password Protection... 5 3.2 PC Interface Groupings...

More information

MODEL PAXCDC -SERIAL COMMUNICATIONS PLUG-IN OPTION CARDS

MODEL PAXCDC -SERIAL COMMUNICATIONS PLUG-IN OPTION CARDS Tel +1 (717) 767-6511 Fax +1 (717) 764-0839 www.redlion.net Bulletin No. PAXCDC-E Drawing No. LP0402 Released 3/05 MODEL PAXCDC -SERIAL COMMUNICATIONS PLUG-IN OPTION CARDS DESCRIPTION This bulletin serves

More information

WTDIN-M. eeder. Digital Input Module. Technologies FEATURES SPECIFICATIONS DESCRIPTION. Weeder Technologies

WTDIN-M. eeder. Digital Input Module. Technologies FEATURES SPECIFICATIONS DESCRIPTION. Weeder Technologies eeder Technologies 90-A Beal Pkwy NW, Fort Walton Beach, FL 32548 www.weedtech.com 850-863-5723 Digital Input Module FEATURES 8 wide-range digital input channels with high voltage transient protection.

More information

WTDOT-M. eeder. Digital Output Module. Technologies FEATURES SPECIFICATIONS DESCRIPTION. Weeder Technologies

WTDOT-M. eeder. Digital Output Module. Technologies FEATURES SPECIFICATIONS DESCRIPTION. Weeder Technologies eeder Technologies 90-A Beal Pkwy NW, Fort Walton Beach, FL 32548 www.weedtech.com 850-863-5723 Digital Output Module FEATURES 8 high-current open-collector output channels with automatic overload shutdown.

More information

User Manual Solenoid Controller BI-SC1001

User Manual Solenoid Controller BI-SC1001 User Manual Solenoid Controller BI-SC1001 NOTICE Brandstrom Instruments, 2017 85 Ethan Allen Highway Ridgefield, CT 06877 (203) 544-9341 www.brandstrominstruments.com No part of this document may be photocopied,

More information

Technical Description and User Manual E-band CW power meter DPM-12 s/n N-1204/21-T

Technical Description and User Manual E-band CW power meter DPM-12 s/n N-1204/21-T ELVA-1 Microwave Ltd. S.A. Mm-wave Division e-mail: sales@elva-1.com Internet: http://www.elva-1.com/ Technical Description and User Manual E-band CW power meter DPM-12 s/n N-1204/21-T 1 Specifications

More information

2F. No.25, Industry E. 9 th Rd., Science-Based Industrial Park, Hsinchu, Taiwan Application Note of OGM220, AN001 V1.8

2F. No.25, Industry E. 9 th Rd., Science-Based Industrial Park, Hsinchu, Taiwan Application Note of OGM220, AN001 V1.8 Application Note of OGM220, AN001 V1.8 1.0 Introduction OGM220 series is a dual channels NDIR module having a digital output directly proportional to CO2 concentration. OGM220 is designed for multi-dropped

More information

TRXQ1 RXQ1 FM NARROW BAND TRANSCEIVERS. RXQ1 Version. Applications. TRXQ1 Version

TRXQ1 RXQ1 FM NARROW BAND TRANSCEIVERS. RXQ1 Version. Applications. TRXQ1 Version RF Transceiver or Intelligent Modem Versions Host Data Rate upto 19,200 Baud Data Rates to 20 K baud. 2 Selectable RF Channels Narrowband Crystal Controlled Optimal Range 200m Supply Voltage 3-5V Very

More information

Using CME 2 with AccelNet

Using CME 2 with AccelNet Using CME 2 with AccelNet Software Installation Quick Copy (with Amplifier file) Quick Setup (with motor data) Offline Virtual Amplifier (with no amplifier connected) Screen Guide Page 1 Table of Contents

More information

Galil Motion Control. DMC 3x01x. Datasheet

Galil Motion Control. DMC 3x01x. Datasheet Galil Motion Control DMC 3x01x Datasheet 1-916-626-0101 Galil Motion Control 270 Technology Way, Rocklin, CA [Type here] [Type here] (US ONLY) 1-800-377-6329 [Type here] Product Description The DMC-3x01x

More information

ies-2309 Integrated Easy Servo

ies-2309 Integrated Easy Servo Datasheet of the integrated easy servo motor ies-09 ies-09 Integrated Easy Servo Motor + Drive + Encoder, 0-0VDC, NEMA, 0.9Nm Features Easy servo control technology to combine advantages of open-loop stepper

More information

Brushless DC Motor Controller Specification Assemblies 025F0248

Brushless DC Motor Controller Specification Assemblies 025F0248 Brushless DC Motor Controller Specification Assemblies 025F0248 600A1099 Rev. B April 4 th, 2014 Revision History EC Date Description Rev EC54318 09/03/13 Initial Release A EC58093 04/04/14 Added cap discharge

More information

RF RECEIVER DECODER RDF1. Features Complete FM Receiver and Decoder. Applications

RF RECEIVER DECODER RDF1. Features Complete FM Receiver and Decoder. Applications Features Complete FM Receiver and Decoder. Small Form Factor Range up to 200 Metres* Easy Learn Transmitter Feature. Learns 40 transmitter Switches 4 Digital and 1 Serial Data outputs Outputs, Momentary

More information

815LT Submersible Smart Level Transmitter

815LT Submersible Smart Level Transmitter These instructions provide information for installation, process connection, electrical connection, configuration, operation and maintenance of the 815LT Submersible Smart Level Transmitter. The 815LT

More information

Complete 2.4 GHz RF Transceiver Module with Built-In RFDP8 Application Protocol Part Numbers RFD21733, RFD21735, RFD21737, RFD21738, RFD21739

Complete 2.4 GHz RF Transceiver Module with Built-In RFDP8 Application Protocol Part Numbers RFD21733, RFD21735, RFD21737, RFD21738, RFD21739 Complete 2.4 GHz RF Transceiver Module with Built-In Application Protocol Part Numbers,,,, Optional Configuration For use with External Antenna 15mm x 15mm (0.600 inch x 0.600 inch) / is a complete, READY-TO-USE

More information

Brushed DC Motor Control. Module with CAN (MDL-BDC24)

Brushed DC Motor Control. Module with CAN (MDL-BDC24) Stellaris Brushed DC Motor Control Module with CAN (MDL-BDC24) Ordering Information Product No. MDL-BDC24 RDK-BDC24 Description Stellaris Brushed DC Motor Control Module with CAN (MDL-BDC24) for Single-Unit

More information

3100LA Broadband Power Amplifier

3100LA Broadband Power Amplifier 3100LA Broadband Power Amplifier HIGH RF VOLTAGES MAY BE PRESENT AT THE OUTPUT OF THIS UNIT. All operating personnel should use extreme caution in handling these voltages and be thoroughly familiar with

More information

Analog Servo Drive. Peak Current 16 A (11.3 A RMS )

Analog Servo Drive. Peak Current 16 A (11.3 A RMS ) Description The PWM servo drive is designed to drive three phase brushless motors with sine wave current at a high switching frequency. The drive requires two sinusoidal command signals with a 120-degree

More information

Ultrasonic Multiplexer OPMUX v12.0

Ultrasonic Multiplexer OPMUX v12.0 Przedsiębiorstwo Badawczo-Produkcyjne OPTEL Sp. z o.o. ul. Morelowskiego 30 PL-52-429 Wrocław tel.: +48 (071) 329 68 54 fax.: +48 (071) 329 68 52 e-mail: optel@optel.pl www.optel.eu Ultrasonic Multiplexer

More information

IC800SSD Hardware Manual Pub 348R5. for models. A publication of

IC800SSD Hardware Manual Pub 348R5. for models. A publication of IC800SSD Hardware Manual Pub 348R5 for models IC800SSD104S1A IC800SSD104RS1A IC800SSD107S1A IC800SSD107RS1A IC800SSD407RS1A IC800SSD216S1A IC800SSD216RS1A IC800SSD420RS1A IC800SSD228S1A IC800SSD228RS1A

More information

Select datum Page backward in parameter list

Select datum Page backward in parameter list HEIDENHAIN Working with the measured value display unit ND Actual value and input display (7-segment LED, 9 decades and sign) Select datum Page backward in parameter list Confirm entry value Set display

More information

Model Hz to 10MHz Precision Phasemeter. Operating Manual

Model Hz to 10MHz Precision Phasemeter. Operating Manual Model 6610 1Hz to 10MHz Precision Phasemeter Operating Manual Service and Warranty Krohn-Hite Instruments are designed and manufactured in accordance with sound engineering practices and should give long

More information

T6+ Analog I/O Section. Installation booklet for part numbers: 5/4-80A-115 5/4-90A-115 5/4-80A /4-90A-1224

T6+ Analog I/O Section. Installation booklet for part numbers: 5/4-80A-115 5/4-90A-115 5/4-80A /4-90A-1224 T and T+ are trade names of Trol Systems Inc. TSI reserves the right to make changes to the information contained in this manual without notice. publication /4A115MAN- rev:1 2001 TSI All rights reserved

More information

Carbon Dioxide (Tiny CO2) Gas Sensor. Rev TG400 User Manual

Carbon Dioxide (Tiny CO2) Gas Sensor. Rev TG400 User Manual Carbon Dioxide (Tiny CO2) Gas Sensor Rev. 1.2 TG400 User Manual The TG400 measuring carbon dioxide (chemical formula CO2) is a NDIR (Non-Dispersive Infrared) gas sensor. As it is contactless, it has high

More information

Programmable K-Factor Scaler B and Programming Software Kit B

Programmable K-Factor Scaler B and Programming Software Kit B Programmable K-Factor Scaler B220-885 and Programming Software Kit B220-900 INSTALLATION & INSTRUCTION MANUAL 8635 Washington Avenue Racine, Wisconsin 53406 Toll Free: 800.235.1638 Phone: 262.639.6770

More information

Installation procedure Ground loop reader: LBS type R12 / RS232 type 5C

Installation procedure Ground loop reader: LBS type R12 / RS232 type 5C Ground loop reader: LBS type R2 / RS232 type 5C "GROUND LOOP" PROXIMITY READER Description of Components Electronics Case Reader Vehicle Tag Antenna Reader s Specifications (Characteristics) Power supply

More information

ROTRONIC HygroClip Digital Input / Output

ROTRONIC HygroClip Digital Input / Output ROTRONIC HygroClip Digital Input / Output OEM customers that use the HygroClip have the choice of using either the analog humidity and temperature output signals or the digital signal input / output (DIO).

More information

B & D Enterprises 1P repeater controller pg 1 INTRODUCTION:

B & D Enterprises 1P repeater controller pg 1 INTRODUCTION: B & D Enterprises 1P repeater controller pg 1 INTRODUCTION: The 1P is a basic repeater controller. The controller uses low power devices and stores all commands and system status in non-volatile EE prom.

More information

Series 48 Water Cooled Laser & UC-2000 Quick Start Guide

Series 48 Water Cooled Laser & UC-2000 Quick Start Guide Important Read all Danger, Warning, Caution terms, symbols, and instructions located in the (Laser Safety Hazard information) sections in the Series 48 Laser Operation Manuals. http://www.synrad.com/synrad/docroot/resources/libraries/manuals

More information

Instruction Sheet UPS SERIES. Serial Control Protocol. I Rev E

Instruction Sheet UPS SERIES. Serial Control Protocol. I Rev E Instruction Sheet UPS SERIES Serial Control Protocol I-00341 Rev E (THIS PAGE INTENTIONALLY LEFT BLANK) Page 1 TABLE OF CONTENTS 1 Protocol Overview...3 1.1 Signal characteristics...3 1.2 Primary DB9 Pin

More information

Fixed Mount Scanner FUZZYSCAN FAMILY. Quick Start Guide FIXED MOUNT SCANNER

Fixed Mount Scanner FUZZYSCAN FAMILY. Quick Start Guide FIXED MOUNT SCANNER Fixed Mount Scanner FUZZYSCAN FAMILY Quick Start Guide FIXED MOUNT SCANNER Getting Familiar with Your FuzzyScan Thank you for choosing Cino FuzzyScan Fixed Mount Scanner. Built with FuzzyScan. Imaging

More information

A 500 Broadband Power Amplifier

A 500 Broadband Power Amplifier A 500 Broadband Power Amplifier HIGH RF VOLTAGES MAY BE PRESENT AT THE OUTPUT OF THIS UNIT. All operating personnel should use extreme caution in handling these voltages and be thoroughly familiar with

More information

PRODUCT MANUAL VHF & UHF Pocket Paging Transmitter. Version 1.00 April 2017

PRODUCT MANUAL VHF & UHF Pocket Paging Transmitter. Version 1.00 April 2017 11-85-0000 VHF & UHF Pocket Paging Transmitter PRODUCT MANUAL Version 1.00 April 2017 Copyright 2017 Sea Air and Land Communications Ltd. All rights reserved. P a g e 1 Salcom Product Documentation This

More information

Model FLSC-C1-LIQ. Microprocessor Based Loop Powered Transmitter

Model FLSC-C1-LIQ. Microprocessor Based Loop Powered Transmitter Model FLSC-C1-LIQ Microprocessor Based Loop Powered Transmitter CONTENTS 1. Introduction ------------------------------------------------------------ 2 2. Specifications-----------------------------------------------------------

More information

OPERATING AND MAINTENANCE MANUAL

OPERATING AND MAINTENANCE MANUAL 5Hz to 1MHz WIDE RANGE FULLY AUTOMATIC DISTORTION ANALYZER MODEL 6900B SERIAL NO. OPERATING AND MAINTENANCE MANUAL Unit 4, 15 Jonathan Drive, Brockton, MA 02301-5566 Tel: (508) 580-1660; Fax: (508) 583-8989

More information

INDEX. i 1. B Braking Resistor Dimensions: A 24 Braking Resistors: A 20 Braking Units: A 20. DURAPULSE AC Drive User Manual

INDEX. i 1. B Braking Resistor Dimensions: A 24 Braking Resistors: A 20 Braking Units: A 20. DURAPULSE AC Drive User Manual INDEX A AC Drive Cover: 1 6 Dimensions: 2 4 External Parts and Labels: 1 6 Heat Sink Fins: 1 6 Input Mode Switch (Sink/Source): 1 6 Introduction to DuraPulse GS3 AC drive: 1 3 Keypad: 1 6 Model Number

More information

Band-Master ATS Nano Pneumatic Banding Tool Operating Instructions

Band-Master ATS Nano Pneumatic Banding Tool Operating Instructions Band-Master ATS 601-118 Nano Pneumatic Banding Tool CONTENTS 601-118 Overview... 3 Safety.... 5 Initial Tool Set-up... 5 Regulator assembly mounting... 5 Attach tool head to regulator.... 6 Operating instructions...

More information

KAPPA M. Radio Modem Module. Features. Applications

KAPPA M. Radio Modem Module. Features. Applications KAPPA M Radio Modem Module Features Intelligent RF modem module Serial data interface with handshake Host data rates up to 57,600 baud RF Data Rates to 115Kbps Range up to 500m Minimal external components

More information

Understanding the Arduino to LabVIEW Interface

Understanding the Arduino to LabVIEW Interface E-122 Design II Understanding the Arduino to LabVIEW Interface Overview The Arduino microcontroller introduced in Design I will be used as a LabVIEW data acquisition (DAQ) device/controller for Experiments

More information

1. The decimal number 62 is represented in hexadecimal (base 16) and binary (base 2) respectively as

1. The decimal number 62 is represented in hexadecimal (base 16) and binary (base 2) respectively as BioE 1310 - Review 5 - Digital 1/16/2017 Instructions: On the Answer Sheet, enter your 2-digit ID number (with a leading 0 if needed) in the boxes of the ID section. Fill in the corresponding numbered

More information

Microprocessor Control Board Set Up Procedures (OR PLC)

Microprocessor Control Board Set Up Procedures (OR PLC) Microprocessor Control Board Set Up Procedures (OR-00 PLC) SWITCHES/PUSHBUTTONS Push Buttons at display SW Enter button SW Back button SW Down SW UP Back light on/off switch Rotary switches on main board

More information

This Errata Sheet contains corrections or changes made after the publication of this manual.

This Errata Sheet contains corrections or changes made after the publication of this manual. Errata Sheet This Errata Sheet contains corrections or changes made after the publication of this manual. Product Family: DL4 Date: September 12, 218 Manual Number D4-ANLG-M Revision and Date th Ed., Rev.

More information

LCC-10 Product manual

LCC-10 Product manual LCC-10 Product manual Rev 1.0 Jan 2011 LCC-10 Product manual Copyright and trademarks Copyright 2010 INGENIA-CAT, S.L. / SMAC Corporation Scope This document applies to i116 motion controller in its hardware

More information

Debugging a Boundary-Scan I 2 C Script Test with the BusPro - I and I2C Exerciser Software: A Case Study

Debugging a Boundary-Scan I 2 C Script Test with the BusPro - I and I2C Exerciser Software: A Case Study Debugging a Boundary-Scan I 2 C Script Test with the BusPro - I and I2C Exerciser Software: A Case Study Overview When developing and debugging I 2 C based hardware and software, it is extremely helpful

More information

The MP SERIES CONTROLLER. User s Manual. ISE, Inc.

The MP SERIES CONTROLLER. User s Manual. ISE, Inc. The MP SERIES CONTROLLER User s Manual ISE, Inc. 10100 Royalton Rd. Cleveland, OH 44133 USA Tel: (440) 237-3200 Fax: (440) 237-1744 http://variac.com Form No, 003-1622 Rev G 02/25/2009 Form No. 003-1622

More information

TRANSCEIVER FSK. Version: 434 MHz Band / 868 MHZ Band / Code: / A

TRANSCEIVER FSK. Version: 434 MHz Band / 868 MHZ Band / Code: / A TRANSCEIVER FSK Version: 434 MHz Band / 868 MHZ Band / Code: 3-2000519 / 3-2000519A DESCRIPTION: The 3-2000519 and 3-2000519A modules are fully programmable multichannel PLL based FSK transceivers, with

More information

RSMFX-2R MULTIFUNCTIONAL

RSMFX-2R MULTIFUNCTIONAL Mounting and operating instructions Table of contents SAFETY AND PRECAUTIONS 3 PRODUCT DESCRIPTION 4 ARTICLE CODES 4 INTENDED AREA OF USE 4 TECHNICAL DATA 4 STANDARDS 4 OPERATIONAL DIAGRAMS 5 WIRING AND

More information

LaserPING Rangefinder Module (#28041)

LaserPING Rangefinder Module (#28041) Web Site: www.parallax.com Forums: forums.parallax.com Sales: sales@parallax.com Technical:support@parallax.com Office: (916) 624-8333 Fax: (916) 624-8003 Sales: (888) 512-1024 Tech Support: (888) 997-8267

More information

The Allen-Bradley Servo Interface Module (Cat. No SF1) when used with the Micro Controller (Cat. No UC1) can control single axis

The Allen-Bradley Servo Interface Module (Cat. No SF1) when used with the Micro Controller (Cat. No UC1) can control single axis Table of Contents The Allen-Bradley Servo Interface Module (Cat. No. 1771-SF1) when used with the Micro Controller (Cat. No. 1771-UC1) can control single axis positioning systems such as found in machine

More information

PROCESS & TEMPERATURE CONTROLLERS

PROCESS & TEMPERATURE CONTROLLERS PROCESS & TEMPERATURE CONTROLLERS NOVA PD54 Series Thermocouple, RTD, & Process Inputs High Accuracy Auto-Tuning PID Heating & Cooling Models Universal Power Supply 1-24 VAC Up to 3 Relays & 2 Analog Outputs

More information