User Manual. XCD2 Firmware. XCD , Revision B August 14, 2016

Size: px
Start display at page:

Download "User Manual. XCD2 Firmware. XCD , Revision B August 14, 2016"

Transcription

1 User Manual XCD2 Firmware XCD , Revision B August 14, 2016 Nanomotion Ltd. POB 623, Yokneam 20692, Israel Tel: Fax: Web Site: nano@nanomotion.com

2

3 Copyright 2015 by Nanomotion Ltd. All rights reserved worldwide. No part of this publication may be reproduced, modified, transmitted, transcribed, stored in retrieval system, or translated into any human or computer language, in any form or by any means, electronic, mechanical, magnetic, chemical, manual, or otherwise, without the express written permission of Nanomotion Ltd., Mordot HaCarmel Industrial Park, Yokneam, 20692, Israel. This document contains proprietary information and shall be respected as a proprietary document with permission for review and usage given only to the rightful owner of the equipment to which this document is associated. Limited Warranty Nanomotion Ltd. (hereinafter NM) warrants the product (other than software) manufactured by it to be free from defects in material and workmanship for a period of time of one year (except those parts normally considered as consumable/expendable components such as motor conditioning brushes). The warranty commences thirty (30) days from the date of shipment. NM warrants those parts replaced under warranty for a period equal to the remaining warranty coverage of the original part. NM's sole and exclusive obligation under this warranty provision shall be to repair, or at its sole option exchange defective products or the relevant part or component, but only if: (i) the Purchaser reports the defect to NM in writing and provides a description of the defective product and complete information about the manner of its discovery within ten (10) days of its discovery; (ii) NM has the opportunity to investigate the reported defect and to determine that the defect arises from faulty material, parts or workmanship; and (iii) the Purchaser returns the affected product to a location designated by NM. These provisions constitute the exclusive remedy of the Purchaser for product defects or any other claim of liability in connection with the purchase or use of NM products. This warranty policy applies only to NM products purchased directly from NM or from an authorized NM distributor or representative. This warranty shall not apply to (i) products repaired or altered by anyone other than those authorized by NM; (ii) products subjected to negligence, accidents or damage by circumstances beyond NM control; (iii) product subjected to improper operation or maintenance (i.e. operation not in accordance with NM Installation Manuals and/or instructions) or for use other than the original purpose for which the product was designed to be used. NM shall not in any event have obligations or liabilities to the Purchaser or any other party for loss of profits, loss of use or incidental, increased cost of operation or delays in operation, special or consequential damages, whether based on contract, tort (including negligence), strict liability, or any other theory or form of action, even if NM has been advised of the possibility thereof, arising out of or in connection with the manufacture, sale, delivery, use, repair or XCD , Revision B iii

4 performance of the NM products. Without limiting the generality of the preceding sentence, NM shall not be liable to the Purchaser for personal injury or property damages. Patents Nanomotion products are covered under one or more of the following registered or applied for patents. 5,453,653; 5,616,980; 5,714,833; ; 5,640,063; 6,247,338; 6,244,076; 6,747,391; 6,661,153; ; 6,384,515; 7,119,477; 7,075,211; ; ; 7,211,929; ; ; ; 6,879,085; 6,979,936; 7,439,652; ; ; ; ; (pending); (pending); 7,876,509; (pending); ; (pending); 12/294,926 (pending); GB (pending); GB (pending); 12/398,216 (pending); GB ; 12/517,261 (pending); (pending); (pending); 12/ 524,164 (pending); 12/581,194 (pending) Contact Information Website: Customer Service Contact your local distributor or Nanomotion Ltd. Technical Support Department at with detailed problem description, additions, corrections or suggestions. Nanomotion Ltd. Worldwide Headquarters Mordot HaCarmel Industrial Park HaYetsira Street, PO Box 623 Yokneam Tel: Fax: Nanomotion Inc - US Headquarters 1 Comac Loop, Suite 14B2 Ronkonkoma NY Tel: Fax: nanous@nanomotion.com XCD , Revision B iv

5 Revision History The following table shows the last three revisions to this document. ECO Doc Rev Date Description -- A 09/2015 Initial release -- B 08/2016 Added new features and revised text to correct errors and improve readability, XCD , Revision B v

6 Table of Contents 1 Introduction Conventions used in this manual Overview of the XCD2 Firmware XCD2 Hardware configuration Supported HW platforms Overview of Servo Loops XCD2 Controller Flow Position Profiler Third Order Motion Profile (JERK) Encoder Feedback Gyroscope Feedback OpMode Control Algorithm Kp (Position Loop Gain) BIQUAD K v (Velocity Loop Gain) Ki (Integral Gain) LI (Integrator Limit) Offset Mechanism Zero Feed Forward (ZFF) Mechanism Open Loop Driver Limit (DOL) Dead Zone Mechanism PWM Host Communication Protocol Communication Channels Communication Address Communication Protocol Packet Structure Block Structure Description Receiving data Block Structure Communication Channels SPI SPI Configuration SPI Packet structure IIC IIC Configuration IIC Packet structure UART (RS232) UART HW Configuration UART Packet structure XCD , Revision B vi

7 Table of Contents 5 Commands and Variables Numbers and Values Floating Point Values Literal Constants Units Commands Communication (Group 0) Set Address Set Axis Get Axis Ping Get channel index Bridge Buffer write Bridge Buffer read System (Group 1) Home Motor Frequency Calibration Reset Save parameters Get version Execute XMS program Stop XMS program Resume XMS program Get axis number BiQuad configuration Scope Bootloader (Group 2) Boot into XCD2 Main Firmware Boot packet Servo (Group 5) Move Velocity loop Open loop Set position Enable Disable Kill Configure Variables API (Group 6) Monitor Report Assign Report with Axis Assign with Axis Delay Pause Get Variable Log XCD , Revision B vii

8 Table of Contents Data packet examples Multi-Block Move Command Multi-block of Assign and Report command Get version command Variables Global Variables Axis selection (XAXIS) Elapsed time (TIME) Motor frequency (MFREQ) Servo tick length in msec (SPRD) User Variables (V0 - V19) Motion Parameters Velocity (VEL) Acceleration (ACC) Deceleration (DEC) Kill deceleration (KDEC) rd order motion profile (JERK) Target position (TPOS) Motion Profiler Signals Reference position (RPOS) Reference velocity (RVEL) Motion Signals for Sensors Feedback position (FPOS) Feedback velocity (FVEL) Position error (PE) Position latched (POSI) Servo Loop and Drive Configuration Position Loop Gain (KP) Velocity loop gain (KV) Velocity loop integrator gain (KI) Velocity loop integrator limit (LI) Position loop integrator gain (PKI) Position loop integrator limit (PLI) BiQuad filters parameters Encoder resolution (ENR) Dead zone min (DZMIN) Dead zone max (DZMAX) Zero feed forward (ZFF) Friction Compensation Variables Realtime drive output (DOUT) Position Offset (POSOFFS) Blackout Period (BLOUT) Drive output offset (DOFFS) Safety Drive output limit (DOL) Software Limits Position error limit (PEL) Motion Time limit (MTL) Motor temperature (MTTMP) XCD , Revision B viii

9 Table of Contents Analog Inputs Analog inputs 0-3 (AIN0 - AIN3) Analog inputs 4-11 (AIN4 - AIN11) Analog Outputs (DAC) Analog output 0 (AOUT0) Analog output 0 Scaled (AOUTSC0) Analog output 1 (AOUT1) Analog output 1 - scaled (AOUTSC1) Digital Inputs/Outputs Digital inputs / outputs 0-15 (IO_0 - IO_15) Flags (accept values 0 or 1 only) Motion is in progress (S_MOVE) Servo loop is busy (S_BUSY) Index position latched (S_IND) Homing Successful (S_HOME) In-position flag (S_INPOS) Scope User Value (SSTAT) Motion Phase Variable (MTNPHS) Servo tick synchronization variable (SERTICK) Pseudovariables Error Codes XMS - Motion Scripts Overview Numbers Floating Point Values Literal Constants Units Syntax Built-in Functions XMS Script Examples Synchronization XMS Script for a Linear Application XMS Script for a Rotary Application XMS for Multi-axes Application Special Features Scope Power Save Motor Frequency Calibration Frequency Calibration Variables Temperature Compensation Algorithm Variables Temperature measurement configuration Conversion from ADC values to degrees Celsius Communication Bridge XCD , Revision B ix

10 7.4.1 Bridge Configuration Bridge Configuration Variables Communication Channel Registers UART Configuration and Status variable IIC Configuration and Status variable SPI Configuration and Status variable Example Gyro Module overview Drift Compensation BIAS cancelation Temperature Drift Compensation Mechanical installation Gyro Module Operation modes XMS Variables for Gyroscope Configurable Gyro pseudovariables Gyro Module Interface XMS Gyro Variables Special Functions Position Latch and Encoder Index Homing Hard stop method Index method TIME Variable Safe Time Measuring XCD2 Commander Overview of XCD2 Commander Work Flow with XCD2 Commander Overview of the XCD2 Commander Panels Launching XCD2 Commander XCD2 Configuration and tuning Configuration of the servo controller Tuning of the XCD2 System Servo Loop Setup & Basic parameters Additional parameters Tune Servo Loop Scope Watch Working with XMS Scripts Editing a Script Executing an XMS Script Managing Flash Data Error Messages Firmware Upgrade File structure Upgrade through XCD2 Commander

11 9.3 Upgrade through Host computer Index

12 1 INTRODUCTION This manual is relevant for FW version 1.10 and above. provides information for developing and using Nanomotion's XCD2 Software to control Nanomotion motors with the XCD2 Controller. The manual is divided into the following sections, Overview of the XCD2 Firmware, page 11 Overview of Servo Loops, page 15 Host Communication Protocol, page 26 Commands and Variables, page 34 XMS - Motion Scripts, page 87 Special Features, page 108 XCD2 Commander, page 136 Firmware Upgrade, page CONVENTIONS USED IN THIS MANUAL Throughout this manual commands are shown in BOLD and parameter values are shown in italics NOTE: Notes provide additional information that is not included in the normal text flow. CAUTION: Caution provides information about actions that will adversely affect system performance. BKM Best Known Methods (BKM): Provides additional detailed information about operations and methods. XCD , Revision B 9

13 Conventions used in this manual Danger: Indicates operations or activities that may cause damage to equipment or injury to personnel. XCD , Revision B 10

14 2 OVERVIEW OF THE XCD2 FIRMWARE 2.1 XCD2 HARDWARE CONFIGURATION Nanomotion's Controller/Drivers with XCD2 firmware supply dynamic servo control to ensure accurate position changes. Figure 2-1 is a high level block diagram of the XCD2 firmware architecture. XCD2 firmware is consist of 3 main components that allow customer design flexibility. Figure 2-1: XCD2 Firmware architecture top view Firmware SW package that contains general controller-driver functions XCD , Revision B 11

15 Supported HW platforms HW Configuration file HW to XCD2 FW connection as motor type, encoder type, the number of active axis, communication channels definition, IOs, analog ports and etc. The HW configuration is pre-compiled in the factory and cannot be modified by the user. Refer to your hardware product user manual to verify installed hardware configuration. XCD2 motion applications can be executed in one of two channels: XMS motion script allows to customer to develop their own motion application. After writing and verifying the XMS, it can be downloaded into the XCD2 and automatically executed at power up. For additional information refer to XMS - Motion Scripts, page 87. HOST Communication XCD2 FW supports up to 4 communication channels with set commands. For additional information refer to Host Communication Protocol, page 26. The XCD2 FW has the flexibility to adapt to different hardware configurations without changing basic firmware. XCD2 firmware architecture includes a dedicated HW configuration file to ensure the match between firmware and hardware. The following functionality can be configured: Communication channels UART, SPI or IIC channel working simultaneous. HW Safety signals positive/negative limits, and emergency stops can be defined. User IO user general purpose input/output signals. The signals can be defined as run-time direction changeable or as inputs only. Analog inputs option to connect analog signals, voltage/current measurement or any analog sensor, to hardware running XCD2 FW. All sampled signals are translated into percentage scale [0 to 100]. Analog Output (DAC) - XCD2 features two DAC channels that can represent any internal variables. Servo rate XCD2 can run servo loops at up to 20 khz. The servo rate is limited by feedback sensor communication speed and refresh rate. The SPRD variable provides relevant information about the defined servo rate. 2.2 SUPPORTED HW PLATFORMS The XCD2 FW is available in one of three forms: programmed in the XCD XX Controller/Driver XCD , Revision B 12

16 Supported HW platforms programmed in a controller/driver for a Nanomotion solution free standing with a reference schematic for customer built hardware When supplied as part of a Nanomotion solution, or XCD2 Controller/Driver product the FW configuration is factory set and cannot be modified. When using a reference schematic NM will provide configuration support. Communication channels RS232/RS485/UART - Asynchronous Serial Communication IIC serial communication SPI - Serial peripheral interface Digital IO Up to 8 GPIOs Analog IO ADC - Analog-to-Digital converter. Up to 12 channels DAC - Digital-to-Analog converter. Up to 2 channels Axes Up to 2 independent axes with closed loop control. Motor types Edge Edge4X Feedback types Quadrature encoder - Incremental encoder with two output channels (A, B) to sense position and one additional channel for index (home). The maximum data rate is 21 Mhz. Absolute encoder with BiSS interfaces. The FW supports bit BiSS configurations. XCD , Revision B 13

17 Supported HW platforms Gyro Gyro with configurable orientation, temperature drift compensation. XCD , Revision B 14

18 3 OVERVIEW OF SERVO LOOPS XCD2 appears as two independent XCD controllers running in one package, sharing the same communication channels and the same XMS program. Control over axis selection is through the communication channel, or using the variable XAXIS in an XMS script. Nanomotion Controller/Drivers programmed with XCD2 firmware supply dynamic servo control to ensure accurate position changes. The motion platform consists of the following major building blocks. Linear or rotary stage mounted on a platform Nanomotion motors: EDGE or EDGE4X Encoder, Gyro XCD2 Controller/Driver Remote computer to host the XCD2 Commander Figure 3-1: XCD2 motion application block diagram The Controller provides a PWM signal to an AC converter. The output AC is applied to the motor driving the stage. As the stage moves, the encoder provides position information to the Controller. The Controller compares the current position against a calculated expected position and corrects the PWM drive signal to correct motor speed. This process occurs at the servo rate (nominally 20KHZ). 3.1 XCD2 CONTROLLER FLOW The XCD2 Controllers are based on a standard PIV (position integral velocity) controller with a non-linear mechanism. The Controller uses several XCD , Revision B 15

19 XCD2 Controller Flow mechanisms to control movement of stages using Nanomotion piezoelectric motors. Offset mechanism Zero Feed-Forward mechanism Dead Zone mechanism Figure 3-2: XCD2 Controller Block Diagram POSITION PROFILER When the Controller receives a MOVE command it calculates a position profile that defines the expected stage positions at intervals that are derivatives of the servo rate. The profile defines three phases: Acceleration - configured by ACC and VEL variables Constant velocity - configured thought VEL variable Deceleration phase - configured by DEC and VEL variables Third Order Motion Profile (JERK), page 18 To determine the current state of the motion profiler refer to Motion Phase Variable (MTNPHS), page 81. Figure 3-3, page 17 shows a typical position profile. XCD , Revision B 16

20 XCD2 Controller Flow Figure 3-3: Position and Velocity Profile changes over time The ACC parameter is a value (<UserUnit>/sec 2 ) used for acceleration. During acceleration (ACC) the Controller supplies a signal that increases motor speed. After the motor reaches the configured velocity (VEL) the Controller maintains velocity by changing the drive command. As the stage approaches the target position the Controller begins to reduce the drive command. <UserUnit> defines the physical units that motion platform uses. For example in a linear stage the value of <UserUnit> is millimeter and for a rotary stage it is degree. Due to the inaccuracy of floating point calculations, use a comparison operation with epsilon value. For example VEL is 50 and RVEL, when entering constant velocity phase, is , then RVEL <> VEL this expression never has a false (zero) value. (VEL abs(rvel)) > this value will be true (one) during acceleration phase and false (zero) at constant velocity phase. XCD , Revision B 17

21 XCD2 Controller Flow THIRD ORDER MOTION PROFILE (JERK) In order to reduce the working point of the motor during rapid acceleration transitions, or when shifting from acceleration to constant velocity, the FW can incorporate JERK in the Motion Profile. This smooths both velocity and acceleration at the transition point. For setting the parameter refer to 3rd order motion profile (JERK), page 73. JERK=0 - disables 3 rd order profiler and uses only 2 nd order profiler JERK>0 - enables 3 rd order profiler (Jerk units are <UserUnit>/sec 3 ) Figure 3-4: Position Profile of 2nd and 3rd Order Profile ENCODER FEEDBACK The encoder provides feedback of the stage (rotary or linear) position. After mounting on the stage, the parameter ENR (Encoder Resolution) provides a conversion of the encoder resolution to User Units (mm, degrees, radians, etc). For additional information about the ENR parameter refer to ENR on page 140. XCD , Revision B 18

22 XCD2 Controller Flow GYROSCOPE FEEDBACK The gyroscope provides feedback of the system position in space. Refer to Gyro, page OPMODE The OpMode allows selection between 8 presets for the control parameters (for example K v, K p, K i, L i )) and provides selection between feedback input from Encoder or Gyro. Refer to Figure 3-2, page 16. OpMode 0 - Encoder feedback (FPOS+FVEL from Encoder) OpMode 1 - Gyro feedback (FPOS+FVEL from Gyro) OpMode 2 - Encoder/Gyro (FPOS from Encoder FVEL from Gyro) CONTROL ALGORITHM XCD2 Controller uses a PIV algorithm to simplify adjustment of control parameters even if the motion system is not fully described. The PIV control algorithm is based on the following mechanisms: Position Loop Velocity Loop Non-Linear Mechanisms Position Loop Position loop deals with PE alone, this the main factor that affects the bandwidth of the system. Inputs are RPOS FPOS The control element is Kp. Velocity Loop Velocity Loop is the dominate factor in the control algorithm, is a key factor for the move and settle. Inputs are: RVEL (\ZFF) FVEL PE multiplied by Kp The control elements are: XCD , Revision B 19

23 XCD2 Controller Flow BiQuads K v Integral: Ki Li FRP FRN Non-Linear Mechanisms Friction (FRN/FRP) and ZFF mechanisms are used to overcome the nonliterary of the piezoelectric motor. Figure 3-5: Control Algorithm KP (POSITION LOOP GAIN) The proportional gain (K p ) determines the contribution of restoring force that is directly proportional to the position error. If K p is set to 0, only the Velocity Loop is used in the algorithm. This restoring force functions in much the same way as a spring in a mechanical system. During each sample period (Servo Tick), the PIV loop calculates the position error, the difference between the instantaneous trajectory position and the primary feedback position. The position error is multiplied by K p to produce the proportional component. An axis with a value of K p that is too small will be unable to hold the axis in position and is very soft. Increasing K p stiffens the axis and improves its ability to maintain position when exposed to outside forces. However, too large a value of K p can result in instability BIQUAD The BiQuad 1 and BiQuad 2 are second order filters used to filter noise and XCD , Revision B 20

24 XCD2 Controller Flow obtain better motion control. Each BiQuad can be enabled or disabled. If enabled the BiQuad can be set to perform in one of the following modes: Low Pass Filter Bandwidth (Hz) Damping ratio (usually less than 1) Notch Filter Resonance Frequency (Hz) Frequency bandwidth (Hz) Attenuation (Recommended values: [2,10]) Full BiQuad filter pole frequency (Hz) pole damping (Any number) zero frequency (Hz) zero damping (Any number) Native - custom defined filter The Native BiQuad allows configuring a unique BiQuad that is not specifically Low pass, Notch, or full. Configuration is from the XCD2 Commander, Comm Protocol or XMS script. When configuring the Native BiQuad all five parameters must be included in the configuration K v (VELOCITY LOOP GAIN) The Velocity Loop Gain (K v ) determines the contribution of restoring force (damping) proportional to the velocity of the motor/actuator, and is therefore the most important control gain. If K v is set to zero, no control is applied to the profile. If K v is set too high the system will produce a high pitch sound indicative of unwanted oscillations. The velocity feedback derivative is calculated and updated during each Servo tick (Servo tick synchronization variable (SERTICK), page 82). Velocity feedback is estimated through a combination of speed dependent algorithms. At high speeds, velocity is simply the change in position per sample. This method is used for smoother performance when estimating velocities less than one encoder count per sample period KI (INTEGRAL GAIN) The integral gain (K i ) is applied after K v and determines the contribution of restoring force that increases with time, ensuring that the static position error XCD , Revision B 21

25 XCD2 Controller Flow in the servo loop is forced to zero. This restoring force works against constant torque loads to help achieve zero position error when the axis is stopped LI (INTEGRATOR LIMIT) The Integrator Limit is expressed in percent and limits the contribution of the Integrator Gain to the motion profile. A valid input is in the range [0,100] OFFSET MECHANISM The offset mechanism provides an initial starting value to overcome the natural friction of the motor by initializing the integrator. The offset value is set using two parameters: Friction Positive (FRP) - compensates for friction in the positive direction. Friction Negative (FRN) - compensates for friction in the negative direction These parameters are set at between % of the value required to cause the motor to move. This is determined during the initial tuning of the servo loop ZERO FEED FORWARD (ZFF) MECHANISM The Zero feed forward mechanism improves the motors settling time. This is done by stopping the Velocity Feed Forward (VFF), and reducing the speed at which the motor approaches the Target Position. As shown in the block diagram, VFF provides a value derived from the position profile. The value of ZFF is dependent on the moving mass. and is typically set to a value of between 30 and 50 microns from the target position. For a larger mass ZFF should be increased. XCD , Revision B 22

26 XCD2 Controller Flow Figure 3-6: Motor braking on approach to Target Position OPEN LOOP The open loop command allows direct control of the axis from the XCD Commander. The command moves the Driver Limit from the Closed Loop circuit and connects it to the Open Loop input. The Open Loop command overrides some safety features. For this reason it should be used for testing system operation only DRIVER LIMIT (DOL) The Driver Limit determines the maximum output from the controller circuits. The value is expressed in percent with a valid range of [0,100]. XCD , Revision B 23

27 XCD2 Controller Flow DEAD ZONE MECHANISM The Dead Zone mechanism takes advantage of the motor s intrinsic friction to prevent jitter and improve the settling time. The Dead Zone is defined by two areas on either side of the motor. Dead Zone Minimum (DZMIN) - a range around the Target Position that is the desired final position of the motor. Dead Zone Maximum (DZMAX) - defines the maximum allowable final position of the motor. DZMIN is the distance from the TPOS - Target Position at which the Dead Zone mechanism drops the drive command to 0 (Figure 3-1, page 15). At this point the motor s intrinsic friction applies mechanical braking to the motor. At this phase servo corrections are not working. If absolute value of Position error (PE) is greater than DZMAX the Controller applies a signal to return the motion platform toward the TPOS until DZMIN is reached. Blackout Time (BLOUT) is the time window when the controller ignores the PE value. BLOUT is activated after entering DZMIN. After BLOUT expires PE is compared to DZMAX. S_MOVE flag is high while the profiler is active and goes low when calculated motion is completed. S_BUSY flag goes low immediately after DZMIN entry. S_INPOS flag goes high immediately after BLOUT is expired. Figure 3-7 shows examples of the Dead Zone mechanism. The upper left graph shows motion platform behavior. The initial position of the motion platform is 0.0 <userunits>. At time 0 the controller gets a move command with a target position of 10 <userunits>. After the motion platform reaches the target position an external interference signal is applied to the platform. If the platform exits DZMAX the servo works to return the platform to TPOS. The graph in the lower left of Figure 3-7 shows the XCD2 flag behavior. Notice that signal levels are 0 or 1. They are placed on the plot to make it easier to understand time behavior of the signals. The right-hand graph in Figure 3-7 shows a zoom-in of the motion platform behavior during the external interference. Notice that signal levels of S_BUSY and S_INPOS are 0 or 1. Settling occurs after the motor enters DZMIN, and does not move outside DZMAX. XCD , Revision B 24

28 XCD2 Controller Flow Figure 3-7: Dead Zone Mechanism Usually DZMIN is 1 or 2 counts, and DZMAX is 5 to 10 counts. In these plots much higher values are used to clarify the process PWM PWM is the controller output supplied to the driver. The PWM generator receives a value that is the result of the all components of the servo loop mechanism. XCD , Revision B 25

29 4 HOST COMMUNICATION PROTOCOL 4.1 COMMUNICATION CHANNELS Communication with the Host is provided through physical channels such as UART (RS232), IIC and SPI. The communication channels are described in following paragraphs. 4.2 COMMUNICATION ADDRESS Each Controller stores its communication address based on the communication channel in use. The address is a number in the range of The user can change the Controller s address by using the command Set Address. A user defined address can be stored in the Controller's flash memory by using the Save command. The user defined address is retrieved at power up. The default addresses are: UART - 0x00 IIC - 0xA4 SPI - 0x00 Each Host command includes the destination address. A destination address of 0 defines broadcasting, where any connected Controller accepts and responds to the command. The Controller accepts the Host's command and responds only if the Controller's address matches the Host's command destination address. The address is in the range of for UART and IIC. SPI does not include address. Some communications commands request the address for safety, for example ERASE FLASH. 4.3 COMMUNICATION PROTOCOL XCD2 Controller uses a Master/Slave communication model, where the XCD2 controller is the Slave (i.e. the passive role, only replies to messages sent from the master. It will never initiate a data transaction). The Master (e.g. MCU, PC, etc.) initiates the data transaction and the Slave replies. Each communication session includes two events: The Host initiates the session by sending a command. XCD , Revision B 26

30 Communication Protocol The Controller responds to the command. In some cases the reply is simply a prompt, accepting or rejecting the command PACKET STRUCTURE The Command and Reply have the same structure. Figure 4-1 shows general packet structure. Interface - contents of the interface depend on the communications channel in use UART - Synchronization Bytes (2); Address IIC - Address SPI - no contents Start Byte (0xD5) - defines packet beginning Packet length including start and stop indexes. For example if packet payload is 4 byte, then packet length is 7 Packet payload - one or more blocks Footer - 0xDA is stop index and it indicates packet end Figure 4-1: Packet structure The packet payload can have a number of blocks (Figure 4-2). The blocks have the following structure: Command header has 3 bytes 1 st byte Block length 2 nd byte group ID 3 rd byte command Command payload Contains one or more Blocks. Each block has the following structure: Block length Command Group ID Command Code Parameters XCD , Revision B 27

31 Communication Protocol Figure 4-2: Block Structure In most commands, the command code is followed by parameters. Each parameter is a numerical value occupying one or more bytes. The command determines the parameter format. Some parameters specify a Controller variable, referenced by its numerical ID. All formats are binary in little-endian format, Least Significant Byte first. The following table describes the parameter formats. Format Number of bytes Table 1: Command Parameters' Formats Range Float 4-3.4*1038 to +3.4*1038 approximately (compliant with IEEE 754) UInt8 1 0 to 255 UInt to UInt to XCD , Revision B 28

32 Communication Protocol BLOCK STRUCTURE DESCRIPTION The following table describes the Block structure. Table 2: Block Structure Byte offset Byte size Content 0 1 Block length including command header 1 1 Group ID 2 1 Command 3 Up to 58 Parameters The commands are broken into groups. Each group is responsible for a different module in the XCD2 system. page 36 The following table shows the currently defined commands groups. Table 3: Group ID Group ID Group Name Description Commands 0 Communicati on 1 System 2 Bootloader 5 Servo 6 Variable Controls and Status of communication channels. System group holds controls system functions and features. Bootloader group responsible for firmware upgrade process. Servo group holds controls and statuses of servo module. Variables group provides interface for variables. page 36 page 41 page 52 page 54 page RECEIVING DATA BLOCK STRUCTURE The Receive Block structure is the same as the Send structure. The Group and Command IDs are copied from the Send Command. Commands that are require specific reply data will contain reply parameters in the command block payload (byte offset 3). See for example the commands Get version, page 44, Report, page 61. XCD , Revision B 29

33 Communication Channels Commands that do not require specific reply data will contain only the Status of ACK (accepted) or NACK (rejected), in command block payload (byte offset 3). Code Name Description Table 4: Status Response Codes 0 NACK Command failed invalid command code, incorrect parameters 1 ACK Command executed Commands that are not recognized will be replied with a NACK Status. 4.4 COMMUNICATION CHANNELS SPI This paragraph describes the XCD2 interface over SPI channel, where the XCD2 is the Slave, and HOST is the Master SPI CONFIGURATION Figure 4-3 shows the SPI communication configuration: Full-duplex synchronous transfers on three lines. Data format: 8-bit transmission. Frame format: Most-Significant-Bit comes first. Clock Phase: The first clock transition is the first data capture edge. Clock Polarity: clock is 0 when IDLE. Clock speed: up to 21 MHz XCD , Revision B 30

34 Communication Channels Figure 4-3: SPI Timing Diagram SPI PACKET STRUCTURE Each SPI packet is the same and has no specific prefix. Figure 4-4: SPI Packet Structure Maximum packet length is 64 bytes Several command blocks could be placed in the same packet as shown at Figure 4-2 Communication task synchronizes every 50 µsec. It is crucial for the user to wait at least 100µsec between each SPI iteration XCD , Revision B 31

35 Communication Channels For read operation user must send at least the number of clocks that is equal to packet length to read the packet, otherwise packet will be lost after NSS goes high BKM There are two ways to handle read operation: Read packet length is calculated before actual read operation according to the reply packet length. Refer to Commands and Variables, page 34. Current packet length is stored at byte 1, Communication Channels, page 30. Then the read operation continues as follows: Read 1st two bytes Read the rest of packet bytes, while the number of read bytes equal to (Byte 1 2) Verify that 1st byte is 0xD5 and the last byte (Byte 1 1) is equal to 0xDA IIC This paragraph describes XCD2 interface over IIC channel, while XCD2 is IIC Slave and HOST processor is IIC Master IIC CONFIGURATION IIC communication configuration: 7-bit addressing Fast speed (up to 400kbps) IIC PACKET STRUCTURE IIC packet has the structure that is shown at Packet structure, page 27 while IIC address is command prefix (Figure 4-5). IIC packet contains: Maximum packet length is 64 bytes Default IIC address is 0xA4, but the address can be changed and stored at FLASH (page 85) memory Several command blocks could be placed in the same packet as shown in Figure 4-5, page 33 The Communication task synchronizes every 50 µsec. There must be at least 100 µsec between each IIC iteration XCD , Revision B 32

36 Communication Channels Figure 4-5: IIC Packet Structure UART (RS232) This paragraph describes XCD2 interface over UART channel. Broadcast address = UART HW CONFIGURATION UART communication configuration: Constant baud rate of bps. 8-bit word length No parity 1 stop bit UART PACKET STRUCTURE Figure 4-5 shows the UART packet structure. UART packet contains: Maximum packet length is 64 bytes Several command blocks could be placed at the same packet Figure 4-6: UART packet structure XCD , Revision B 33

37 5 COMMANDS AND VARIABLES This section describes XCD2 software interfaces through both the communication protocol and XMS scripts. 5.1 NUMBERS AND VALUES The Host Protocol and XMS scripts use standard numbers and values as described below FLOATING POINT VALUES All numbers are floating point values complying with the IEEE 754 definition of single precision arithmetic. The values range is [ , ] approximately. All calculations are performed using single-precision floating numbers LITERAL CONSTANTS Literal constants can appear in different formats. The format of the literal constant has no effect on its internal presentation; the controller converts each constant to a floating point number before using it in calculations. Table 1: Literal Constants Formats in XMS Format Examples Integer 1, 20, Real 0.1, 20.35, Scientific 1e-5, 2.3e10 Hexadecimal 0x07FF, 0x1E UNITS The XCD2 controller uses discrete units of measure. Time is expressed in milliseconds (msec) and scaled values are a percent of the maximum possible. Units of position or distance are based on the user s application. Throughout XCD , Revision B 34

38 Commands this document these are referred to as User Units. The User Units can be expressed in standard units of measure expressed as millimeter, degree, or radian. These units are typically based on an encoder mounted on the stage. To convert User Units to units for the XCD2 a scaling factor is used. The Encoder Resolution (ENR) provides this conversion. Physical values such as position, velocity, and acceleration are derived using the ENR (refer to Encoder Feedback, page 18). The following table shows the variable unit s relation when ENR provides a physical measurement in millimeters (i.e. linear application). Table 2: Measuring Units for Physical Values Value Example of variables example User Units position/distance POS, RPOS, FPOS, TPOS <UserUnits> (e.g. mm) velocity acceleration VEL, RVEL, FVEL ACC <UserUnits> per second (e.g. mm/sec) <UserUnits> per seconds 2 (e.g. mm/sec 2 ) Jerk JERK <UserUnits> per seconds 3 (e.g. mm/sec 3 ) time TIME millisecond (msec) scaled values AIN0, AOUT1, DOUT percent of maximum (%) 5.2 COMMANDS The following paragraphs provide details on available XCD2 commands. The commands are shown as subheadings in their groups. The heading is followed by a brief description of the command including relevant parameters. Following the explanation there are two subheadings: Comm Protocol; XMS command. The Comm Protocol includes a table showing the command structure. Direction Group Code Parameter to MCU from MCU Command Group in decimal value Command code in decimal value List of parameters sent to the XCD2 controller List of parameters received from the XCD2 controller Parameter Format Parameter type (parameter size in bytes) Parameter type (parameter size in bytes) XCD , Revision B 35

39 Commands Parameter formats are described in Command Parameters' Formats, page 22. Whenever a command contains a list of 2 or more parameters that are optional, the parameters are shown in order of importance. There must be data available for each optional parameter. Optional parameters can be omitted starting with the least important parameter only. The XMS command shows the structure of the XMS command and an example showing how the command is used in a script. The XCD2 FW must complete executing a command/process before continuing with the next command/process. There a several commands, such as Home, that have a related command that allows the program to move to the next command/process before the first is completed. The n before the command name indicates a command that does not have to complete before the script moves to the next command. For example, Home and nhome COMMUNICATION (GROUP 0) This paragraph describes the communication layer command set SET ADDRESS Sets the Controller address to the channel in which it was received. Address value can be any number between 0 to 255. The default value is zero, for IIC it s 0xA4. If the Controller address is zero, the Controller accepts any destination address. If the destination address is zero (broadcasting), the Controller accepts the command regardless of the Controller s address. If both Controller and destination addresses are non-zero, the Controller answers only if the destination address matches the Controller s address. Comm Protocol Direction Group Code Parameter Format to MCU Address UInt8 (1) 0 4 from MCU Status UInt8 (1) XMS Command none XCD , Revision B 36

40 Commands SET AXIS All commands that are received without the optional axis parameter will use the value configured by this command. The number of axis per system is determined by the Hardware configuration file. Each communication channel (i.e UART (2x), IIC, SPI) and XMS has its own axis. Comm Protocol Direction Group Code Parameter format to MCU Axis UInt8 (1) 0 5 from MCU Status UInt8 (1) XMS Command XAXIS =<value> The command will set the XMS active axis. The values are either 0 or 1 depending on the number of axes installed. Code Example This example will move axis 0 to position 7 at velocity of 70 and move axis 1 to position 120 at velocity of 100 XAXIS = 0 VEL = 70 nmove 7 XAXIS = 1 VEL = 100 nmove GET AXIS Retrieves the currently configured axis for this communication channel. The number of axes per system is determined by the Hardware configuration. XCD , Revision B 37

41 Commands Comm Protocol Grou Direction Code Parameter format p to MCU None 0 5 from MCU Axis UInt8 (1) XMS Command <variable>=xaxis Code Example // This script set and get the xaxis: XAXIS = 0 V0 = XAXIS XAXIS = 1 V1 = XAXIS // result: // V0 = 0 // V1 = PING This is a basic communication test command. It will copy the payload sent, if exist, to the reply packet. Comm Protocol Direction Grou p Code Parameter format UInt8 (1) max 20 to MCU Data (opt) 0 5 Bytes from MCU Data (opt) UInt8 (1) XMS Command none XCD , Revision B 38

42 Commands GET CHANNEL INDEX Get communication channel index for which the command was received. Comm Protocol Grou Direction Code Parameter format p to MCU None 0 7 from MCU Index UINT8 XMS Command none BRIDGE BUFFER WRITE Fill the Communication Bridge TX buffer (refer to Communication Bridge, page 114). Parameters supplied to the MCU are: Channel index Buffer index Data to store Response from the MCU is one of the following: 0 NACK, incorrect message length 1 ACK, command approved 2 ERR_01, Invalid channel index 3 ERR_02, Exceeds buffer size 4 ERR_03, Channel isn't configured as master Comm Protocol Direction Group Code Parameter format Channel UINT8 to MCU Index UINT8 0 9 Data UINT8 X N from MCU Status UINT8 XMS Command In order to access the buffer, use the relevant TX buffer variables. Refer to Variables, page 115 XCD , Revision B 39

43 Commands Code Example This example will populate the bridge buffers as follows: UART bridge buffer bytes 0 with 0x5A and Byte 1 with 0x3D SPI byte 0 with 0x07 IIC byte 0 with 0x13. UARTTX00 = 0x5A UARTTX01 = 0x3D SPITX00 = 0x07 IICTX00 = 0x BRIDGE BUFFER READ Read from the Comm Bridge RX buffer (refer to Communication Bridge, page 114). Parameters supplied to the MCU are: Channel index Buffer index Number of bytes to obtain (limited to buffer size) Response from the MCU is one of the following: 0 NACK, incorrect message length 1 ACK, command approved 2 ERR_01, Invalid channel index 3 ERR_02, Exceeds buffer size 4 ERR_03, Channel isn't configured as master Data from buffer Comm Protocol Direction Grou p Code Parameter format to MCU from MCU 0 10 Channel Index Length Status Data UINT8 UINT8 UINT8 UINT8 UINT8 x length XMS Command In order to access the buffer, use the relevant RX buffer variables. Refer to Variables, page 115 XCD , Revision B 40

44 Commands Code Example This example will check if the second received Byte in the UART buffer equals 7 and if so move to target defined in the third byte. if (UARTRX01 = 7) move UARTRX02 end SYSTEM (GROUP 1) This paragraph describes the XCD2 system level command set. The number of axis per system is determined by the Hardware configuration HOME The command returns the stage to its home position. Method selects one of the standard homing sequences. The parameters and methods are described in Homing, page 132 Origin (Optional) - defines the position at the home point. If omitted, zero is assumed. velocity1 (Optional) - defines velocity of the first phase (hard stop). If omitted, VEL value is used. BKM Use low velocity in velocity1 parameter when searching for the hard-stop. This will help overcome the gaging phenomena and prevent damage to the system. velocity2 (Optional) - defines second phase velocity (encoder index). If omitted, velocity1 value is used. Axis parameter (Optional) - specifies the axis of operation. If the Axis parameter is omitted, the command is applied to the last selected axis. Will return status of NACK if Homing or Calibration is running, otherwise ACK. XCD , Revision B 41

45 Commands Comm Protocol Direction Grou p Code Parameter Format Method Origin (opt) UInt8 (1) Real (4) to MCU Velocity1 (opt) Real (4) 1 2 Velocity2 (opt) Real (4) Axis (opt) UInt8 (1) from MCU Status UInt8(1) XMS Command XMS execution is halted at this line. S_HOME flag reset to zero at start of motion and set to 1 after home procedure completed successfully. HOME / NHOME <method> <origin> <velocity1> <velocity2> Code Example // each of the lines below will initiate homing home 0 //initiate with negative direction home 0, -1 //As above + set the origin to be -1 home 0, -1, 10 //As above + set first velocity to be 40 home 0, -1, 10, 5 //As above + set second velocity to be MOTOR FREQUENCY CALIBRATION This command initiates the motor frequency calibration procedure (Motor Frequency Calibration, page 110) to find the motor s optimal working point. Axis parameter (Optional) - specifies the axis of operation. If the Axis parameter is omitted, the command is applied to the last selected axis. Will return status of NACK if Homing or Calibration is running, otherwise ACK. Comm Protocol Grou Direction Code Parameter format p to MCU Axis (opt) UInt8 (1) 1 3 from MCU Status UInt8(1) XCD , Revision B 42

46 Commands XMS Command MFCALIB XMS execution will stall at this line and wait for servo synchronization. Code Example // These line will perform motor-frequency calibration for the two Axes: xaxis = 0 mfcalib xaxis = 1 mfcalib RESET Will perform software reset. Used to reload parameters from flash without power up cycle. The RESET execution will be performed immediately, which means no reply is sent. Comm Protocol Grou Direction Code Parameter format p to MCU 1 6 from MCU None None XMS Command None XCD , Revision B 43

47 Commands SAVE PARAMETERS Saves parameter values to flash memory. At the next start-up, the Controller reads the parameters from the flash and starts with the stored parameters instead of default values. BKM Address and security code parameters are required to prevent unintentional use of the command. The provided parameters are: Address - specifies address of the communication channel. 90 (0x5A) - is constant. Bit selection determines what to store or erase. If no option entered the default is store variables and XMS to Flash. Bit0 store variables Bit1 store XMS Bit3 Erase variables section Bit4 Erase XMS section Erasing a sector will restore factory defaults. Will return NACK if parameters are invalid or data verification failed. BKM Reply message will be sent after full execution, the operation can take up to 5 seconds. Comm Protocol Direction Grou p Code Parameter Format address UInt8 (1) to MCU 90 (0x5A) UInt8 (1) 1 7 Options (opt) UInt8 (1) from MCU Status UInt8 (1) XMS Command none GET VERSION The command requests information about Controller firmware. XCD2 version Serial number XCD , Revision B 44

48 Commands Device type XCD2 controller Application version all zeros in case of XCD2 controller Comm Protocol Direction to MCU from MCU Grou p 1 10 Code Parameter format None None XCD2 version Serial number Device type App version Int32 (4) Int32 (4) UInt16 (2) Int32 (4) XMS Command none EXECUTE XMS PROGRAM NACK means uploaded XMS program failed validation. Comm Protocol Grou Direction Code Parameter format p to MCU None None 1 14 from MCU Status UInt8 (1) XMS Command none STOP XMS PROGRAM Stops the currently executing XMS program. Comm Protocol Grou Direction Code Parameter format p to MCU None None 1 15 from MCU Status UInt8 (1) XCD , Revision B 45

49 Commands XMS Command none RESUME XMS PROGRAM Resumes the currently paused XMS program. The parameter ExFlag = 0 Comm Protocol Grou Direction Code Parameter format p to MCU ExFlags UInt8 (1) 1 17 from MCU Status UInt8 (1) XMS Command none GET AXIS NUMBER The command requests information about how many axes are configured in the controller. The number of axes is defined when configuring the XCD2 Main Board. Comm Protocol Grou Direction Code Parameter format p to MCU None None 1 23 from MCU Axes count UInt8(1) XMS Command none BIQUAD CONFIGURATION Provides ability to configure the BiQuad filters. The Native BiQuad allows configuring a unique BiQuad that is not specifically a Low Pass, Notch, or full. Configuration is from the XCD2 Commander, XMS script, or Comm Protocol. Refer to BiQuad filters parameters, page 75 XCD , Revision B 46

50 Commands The command requires the following information: Axis - 0 or 1 Biquad = 1 or 2 Type 0=Low Pass 1=Notch 2=Full BiQuad Variables Low Pass Bandwidth, Damping ratio Notch - Resonance, Width, Attenuation Full BiQuad - Pole Frequency, Pole Damping, Zero Frequency, Zero Damping Comm Protocol Table 5-1: Directions Group Code Parameters To MCU Reply from MCU 5 18 UINT8 Axis UINT8 Module UINT8 Type Float - up to 4 Variables Status (Ack/Nack) XMS CONFIGBIQUADFILTER <module>,<type>,<var1>,<var2>,<var3>,<var4> XCD , Revision B 47

51 Commands Code Example XAXIS = 0 // BiQuad 1 - Low Pass - Bandwidth=280, Damping ratio=0.7 ConfigBiQuadFilter 1,0,280,0.7 pause // BiQuad 2 - Low Pass - Bandwidth=280, Damping ratio=0.5 ConfigBiQuadFilter 2,0,280,0.5 // BiQuad 1 - Notch - Resonance=500, Width=50, Attenuation=5 ConfigBiQuadFilter 1,1,500,50,5 pause // BiQuad 1 - Full BiQuad - Pole Freq=200,Pole Damping=0.5,Zero Freq=100,Zero Damping=1 ConfigBiQuadFilter 1,2,200,0.5,100,1 pause Native/Custom BiQuad Using this feature requires entering all five BiQuads. The following is an example of the Biquad configuration in XMS. For more information about the configuration refer to BiQuad filters parameters, page 75 BQA1=<value> BQA2=<value> BQB0=<value> BQB1=<value> BQB2=<value> SCOPE The scope module allows streaming of any internal variables data at full servo rate. The data can be streamed in any of the UART channels at a configurable baud-rate. In order to overcome the possible baud-rate / data-rate limitation it s possible to reduce the data-rate by: Selecting 16bit float (*) instead of 32bit Diluting the transitions to 1/k servo rate (*) a standard floating point (single, 32bit) is not converted to half-precision but instead it s shifted by 16 bits. The only thing affected is the LSB of the mantissa. The exponent part is still 8bits. To interpret the value the data needs to be shifted back into 32bits. XCD , Revision B 48

52 Commands Scope usage steps: Enable the scope module and configure its communication channel Configure scope sample channels Activate streaming of data Scope streams data packets. Each data packet contains 2 sync bytes and a status byte. 0xD7 <Status Byte> <Data> 0xA5 Data contains all of the channels, 16 or 32bit each (e.g 2 channels of 16bit + 1 channel of 32bit = 8bytes of data + 3 bytes of overhead) All Scope actions can be initiated through Comm Protocol, XMS script, or from the XCD2 Commander. Comm. Protocol Scope Enable Directions Group Code Parameters to MCU from MCU 6 32 UInt8 Channel Index UInt32 Baud-rate UInt16 Dilution Status (Ack/Nack) Directions Group Code Parameters to MCU from MCU 6 32 none UInt8 Enabled UInt8 Channel Index UInt16 Dilution UInt32 Baud-rate Enable Parameters Channel Index UART0 = 0 UART1 = 1 Baud-rate Any value between to 10.5Mbps XCD , Revision B 49

53 Commands Dilution Servo rate divider, can be any value bigger than 0 Enabled: False = 0 - the rest of the values are invalid True = 1 Scope Disable Directions Group Code Parameters To MCU from MCU Vars (6) 33 none Status (Ack/Nack) Scope Config - Add/Edit channel Directions Group Code Parameters To MCU from MCU Vars (6) 33 UInt8 Channel UInt8 Axis UInt16 VarID UInt16 Config Status (Ack/Nack) Config Parameters Channel: 0-7 Axis: axis to sample VardID: variable to sample (refer to Variables, page 71 Config bits: bit 0 = 1 High res. (32bit) enabled bits 1 to 15: reserved Delete channel Directions Group Code Parameters To MCU from MCU Vars (6) 33 UInt8 Channel UInt8 DNC Status (Ack/Nack) Delete Parameters Channel: 0-7 XCD , Revision B 50

54 Commands DNC: reserved = 0 Get channel Directions Group Code Parameters To MCU Reply from MCU Vars (6) 33 UInt8 Channel UInt8 Axis UInt16 VarID UInt16 Config Parameters description none Scope Activate: Directions Group Code Parameters To MCU from MCU To MCU from MCU Vars (6) 32 Vars (6) 32 UInt8 Active UInt8 Status (optional) Status (Ack/Nack) None UInt8 Active Parameters description Active: False = 0 True = 1 Status (optional): This byte is included with each scope data stream packet XMS command: Scope start command will start/activate data streaming. The optional parameter StatusByte (SSTAT) stores StatusByte value. SCOPESTART Scope stop command will stop data streaming SCOPESTOP XCD , Revision B 51

55 Commands Code Example for V0=0 to 10 ZFF= 0.1 * V0 move 0 delay 100 disable scopestart V0 // Start scope streaming with SSTAT var set to V0 nmove 1 while S_MOVE end scopestop // Stop scope streaming end BOOTLOADER (GROUP 2) This paragraph describes the Bootloader command set. For more information about the bootloader refer to Firmware Upgrade, page BOOT INTO BOOTLOADER This command tells XCD2 firmware to boot into the Bootloader stage. Comm Protocol Grou Direction Code Parameter format p to MCU None None 2 7 from MCU Status UINT8 (1) XMS Command none BOOT INTO XCD2 MAIN FIRMWARE This command tells Bootloader load XCD2 firmware. XCD , Revision B 52

56 Commands ACK upgrade process was successful and XCD2 firmware will be loaded NACK upgrade process failed and XCD2 will stay in the Bootloader Comm Protocol Grou Direction Code Parameter format p to MCU None None 2 4 from MCU Status UINT8 (1) XMS Command none BOOT PACKET The command transfers new FW to Flash. Refer to File structure, page 153. Comm Protocol Grou Direction Code Parameter Format p to MCU Boot block < from MCU Status UINT8 (1) Status This command is sent from XCD2 to HOST as a reply for Boot packet. The following operational codes (hexadecimal) may be returned: 0x00 Pass 0x01 Unknown command. 0x02 XCD2 is write protected. XCD2 FW upgrade could not be done. 0x03 Erase failure 0x04 Data block write operation fail. 0x05 Data block is out of range 0x07 Previous operation in progress XMS Command none XCD , Revision B 53

57 Commands SERVO (GROUP 5) This paragraph describes the servo module command set. The number of axes per system is determined by the Hardware configuration file, refer to the hardware data sheet. The units are defined by the Encoder/ENR variable relation. Refer to ENR on page 132 for more information MOVE Move to absolute position. Position is an expression that defines a new target position. If the ENABLE was not executed before MOVE, the MOVE command enables the servo loop. After motion execution, the servo loop remains enabled, and the motor keeps final position. The command provides smooth motion to the specified position using values VEL and ACC for building a velocity profile. Refer to Control Algorithm, page 19 The axis to be moved is an optional parameter. If the Axis parameter is omitted, the command is applied to the last selected axis. Comm Protocol Direction Grou p Code Parameter Format Position Real (4) to MCU 5 2 Axis (opt) UInt8(1) from MCU Status UInt8(1) XMS Command MOVE / NMOVE <position> <axis> XMS execution will stall at this line and waiting for servo synchronization. XCD , Revision B 54

58 Commands Code Example xaxis = 0 for V0 = 0 to 9 move 10 delay 200 move -10 delay 200 end VELOCITY LOOP The controller switches to velocity-loop operation, PE is ignored. Command is an expression that defines target velocity. Execute velocity loop control. The parameter defines the required velocity in User units/sec. The axis to be moved is an optional parameter. If the Axis parameter is omitted, the command is applied to the last selected axis. Comm Protocol Direction Grou p Code Parameter format Velocity Real (4) to MCU 5 3 Axis (opt) UInt8(1) from MCU Status UInt8(1) XMS Command VELOCITYLOOP <velocity> XMS execution will stall at this line and wait for servo synchronization. XCD , Revision B 55

59 Commands Code Example This example moves axis 0 at velocity 10 for 1 sec: XAXIS = 0 velocityloop 10 delay 1000 disable OPEN LOOP The controller switches to open-loop operation. Command is an expression that defines drive output value. Command: -100 to +100 Axis: The axis to be moved is an optional parameter. If the Axis parameter is omitted, the command is applied to the last selected axis. Comm Protocol Direction Grou p Code Parameter format Command Real (4) to MCU 5 4 Axis (opt) UInt8(1) from MCU Status UInt8(1) XMS Command OPENLOOP <command> XMS execution will stall at this line and waiting for servo synchronization. Code Example This example moves axis 0 at a PWM level of 20% for 1 sec: XAXIS = 0 openloop 20 delay 1000 disable XCD , Revision B 56

60 Commands SET POSITION Assigns axis feedback position (FPOS). The axis to be moved is an optional parameter. If the Axis parameter is omitted, the command is applied to the last selected axis. Comm Protocol Direction Grou p Code Parameter format Position Real (4) to MCU 5 5 Axis (opt) UInt8(1) from MCU Status UInt8(1) XMS Command SET FPOS <position> Code Example Performs homing by setting the FPOS to -0.2 at the hardstop XAXIS = 0 nmove while (abs(pe) < 0.5) end disable set FPOS = ENABLE Enables the servo loop. While the servo loop is enabled, the motor is actively held in its current position to correct for deviations caused by an external force. The axis to be moved is an optional parameter. If the Axis parameter is omitted, the command is applied to the last selected axis. Comm Protocol Grou Direction Code Parameter format p to MCU Axis (opt) UInt8(1) 5 7 from MCU Status UInt8(1) XCD , Revision B 57

61 Commands XMS Command ENABLE <axis> XMS execution will stall at this line and waiting for servo synchronization. Code Example // 2 seconds of movements: MTL = 0 velocityloop 10 delay 2000 disable // Keep the position: enable DISABLE Disables the servo loop which stops active position error corrections. While the servo loop is disabled, the motor resists movement from external forces because of the motor s high static holding force. The axis to be moved is an optional parameter. If the Axis parameter is omitted, the command is applied to the last selected axis. An axis parameter of 255 (0xFF) disables all axes. Comm Protocol Grou Direction Code Parameter format p to MCU Axis (opt) UInt8(1) 5 8 from MCU Status UInt8(1) XMS Command DISABLE XMS execution will stall at this line and waiting for servo synchronization. XCD , Revision B 58

62 Commands Code Example // 2 seconds of movement and the stopping the motor MTL = 0 velocityloop 10 delay 2000 disable //would not keep the position KILL The Kill command causes motion deceleration at the KDEC rate. The motor remains enabled. The axis is an optional parameter. If the Axis parameter is omitted, the command is applied to the last selected axis. BKM To disable instead of kill the motor use Disable, page 58 Comm Protocol Grou Direction Code Parameter format p to MCU Axis (opt) UInt8(1) 5 10 from MCU Status UInt8(1) XMS Command KILL Code Example xaxis = 0 // Select axis 0 move 1 // move to target 1 (blocking) nmove 10 // move to target 10 (non-blocking) delay 50 // wait 50ms kill // kill movement XMS execution will stall at this line and wait for servo synchronization. XCD , Revision B 59

63 Commands CONFIGURE Provides configuration of the Controller. Available codes are defined under Pseudovariables, page 82. Comm Protocol Direction Grou p Code Parameter format Axis UInt8 (1) to MCU variable ID UInt16 (2) 5 13 parameter (opt) Real (4) from MCU Status UInt8(1) XMS Command CONFIG <axis> <variable ID> <parameter> Code Example // Set IO(2:0) direction to be an output config 905, 0x0007 // Read back pseudo var 905 and store it in V0 V0 = getvar(905) // Set IO(2:0) direction to be an input config 905, 0x0000 // Read back pseudo var 905 and store it in V1 V1 = getvar(905) VARIABLES API (GROUP 6) This group handles the defining and controlling of variables in the controller. This paragraph describes variables interface command set. In the following table the number of axes per system is determined by the hardware configuration MONITOR Monitors a channel variable. After command, and during each cycle, the Controller converts the variable using the scale and passes it to analog output. The parameters are: XCD , Revision B 60

64 Commands channel defines analog output to use: 0 AOUT0 1 AOUT1 variable specifies variable to monitor. scale defines a conversion factor. axis define what axis to use for monitor Comm Protocol Direction Grou p Code Parameter format channel UInt8 (1) to MCU variable UInt16 (2) 6 2 scale Real (4) axis(1) UInt8(1) from MCU Status UInt8(1) XMS Command Not supported REPORT Report variable values. The command requests current variable values. Up to 10 variables can be requested in one command. In addition to XMS variables, the command accepts IDs of pseudovariables. Refer to XMS Variables, page 63 for a list of XMS and pseudovariables. Comm Protocol Direction Grou p Code Parameter format to MCU from MCU 6 4 var1 var2 (opt) var10 (opt) var1 var1 var10 UInt16 (2) UInt16 (2) UInt16 (2) Float(4) Float(4) Float(4) XCD , Revision B 61

65 Commands XMS Command Access variable by name. Code Example Store FPOS in V0. V0=FPOS ASSIGN Each specified variable is assigned with the corresponding value. Up to 7 variables can be assigned in one command. Refer to XMS Variables, page 63 for a list of XMS and pseudovariables. Comm Protocol Direction Grou p Code Parameter format variable1 value1 UInt16 (2) Real (4) to MCU variable2 UInt16 (2) 6 6 value2 Real (4) from MCU Status UInt8(1) XMS Command Access variable by name. Code Example Set velocity to V0 VEL=V REPORT WITH AXIS This command has same purpose like command REPORT, but after each var ID there is an identification of what axis is referred to. The axis to be moved is an optional parameter. If the Axis parameter is omitted, the command is applied to the last selected axis. XCD , Revision B 62

66 Commands Comm Protocol Direction Grou p to MCU Code Parameter format var1 axis(1) var2 (opt) axis (opt) var10 (opt) axis (opt) UInt16 (2) UInt8(1) UInt16 (2) UInt8(1) UInt16 (2) UInt8(1) XMS Command none ASSIGN WITH AXIS This command has same purpose like command ASSIGN, but after each variable ID there is an identification of what axis is referred to. If the Axis parameter is omitted, the command is applied to the last selected axis. Comm Protocol Direction Grou p Code Parameter format Variable value1 axis(1) UInt16 (2) Real (4) UInt8(1) to MCU variable2 (opt) UInt16 (2) value2 (opt) Real (4) axis (opt) UInt8(1) from MCU Status UInt8(1) XMS Command none DELAY Provides a time delay in milliseconds between actions. XCD , Revision B 63

67 Commands Comm Protocol none XMS DELAY <time> Code Example // Initiate one second of movement in velocity of 10 userunits per second XAXIS = 0 velocityloop 10 delay 1000 // one second of delay disable PAUSE The command effectively provides breakpoint functionality. When the command is encountered, the program stops execution and waits for host commands. This command is used for program debugging with the XCD2 Commander. BKM Another good use of pause is when an unknown delay is needed for operation of the system. Comm Protocol none XMS PAUSE XCD , Revision B 64

68 Commands Code Example // This script will stop the stage manually by the user: XAXIS = 0 velocityloop 5 pause //hit the resume button to resume the program disable GET VARIABLE Returns value of a variable or a bit from a variable. The function accepts one or two arguments. The first argument specifies ID of a variable. The second argument specifies bit in the variable. If the second argument is omitted, the function returns current value of the variable. If the second argument is in range from 0 to 31, the function returns 0 or 1 according to the corresponding bit in the variable. For available pseudovariables refer to Pseudovariables, page 82. Comm Protocol none XMS <variable>=getvar <varname> Code Example Reads the Status pseudovariable. V0 = getvar(900) LOG Logging function writes string line to specified file with formatting options. If format includes format specifiers (subsequences with {}), the additional arguments following format are formatted and inserted in the resulting string replacing their respective specifiers. XCD , Revision B 65

69 Commands Log is a special function that requires synchronization between the Controller and Host. It stores the arguments following the <text expression> in the buffer and waits for the host to pull them before resuming the XMS script. The content of the text expression follows MSDN String.Format Method (.NET). Comm Protocol none XMS LOG <text expression>,arg0, Arg1 Arg9 Code Example Log Hello world,0 Log Constant = {0}, Time = {1},3.1415, TIME Dialog Windows When the Commander is running, on the first log instruction the following dialog will open and will wait for user input. During that time the XMS is halted Figure 5-1: XMS Log Files Selection XCD , Revision B 66

70 Commands DATA PACKET EXAMPLES The following example will send one packet that contains to two command blocks with a Move command (one for each axis). Packet bytes breakdown: 0 and 1 used in UART protocol only 2 used in UART and IIC 3, 4 and 23 Packet header and footer 6 to 13 First move block command 14 to 21 Second move block command XCD , Revision B 67

71 Commands MULTI-BLOCK MOVE COMMAND Table 6: Multi-block Move Command Request format (Host > XCD2) Response format (XCD2 > Host) Byte Byte Raw Raw Data Description # # Data Description 0 0xE4 SyncByte1 0 0xE4 SyncByte1 1 0xA5 SyncByte2 1 0xA5 SyncByte2 2 0x00 Address 2 0x00 Address 3 0xD5 Start index 3 0xD5 Start index 4 0x13 Packet length with header (3 to 22) 4 0x0B Packet length with header (3 to 13) 5 0x08 Block length (5 to 12) 5 0x04 Block length (5 to 8) 6 0x05 Group ID 6 0x05 Group ID 7 0x02 Move command ID 7 0x02 Move command ID 8 0x00 0x00 Target parameter Status 8 single value in IEEE ACK 9 0x00 0x00 format. Note that byte 9 0x04 Block length (9 to 12) 10 0x20 0x20 order is in Little-Endian format. 10 0x05 Group ID 11 0x41 0xC1 Left column has value 10 Right column has value x02 Move command ID 12 0x00 Axis 12 0x01 Status - Ack 13 0x08 Block length (13 to 20) 13 0xDA Stop index 14 0x05 Group ID 15 0x02 Move command ID 16 0x00 0x00 Target parameter 17 0x00 0x00 Single value of IEEE x20 0x20 format. 19 0x41 0xC1 Note that byte order is little-endian. Left column has value 10 Right column has value x01 Axis 21 0xDA Stop index XCD , Revision B 68

72 Commands MULTI-BLOCK OF ASSIGN AND REPORT COMMAND Request format (Host > XCD2) Byte # Raw Data Table 7: Multi-Block of Assign and Report Command Description Response format (XCD2 > Host Byte # Raw Data Description 0 0xE4 SyncByte1 0 0xE4 SyncByte1 1 0xA5 SyncByte2 1 0xA5 SyncByte2 2 0x00 Address 2 0x00 Address 3 0xD5 Start index 3 0xD5 Start index 4 0x13 Packet length with header (3 to 21) 4 0x12 Packet length with header (3 to 20) 5 0x09 Block length (5 to 13) 5 0x04 Block length (5 to 8) 6 0x06 Group ID 6 0x06 Group ID 7 0x06 Assign command ID 8 0x84 7 0x06 Assign command ID pseudovariable x x00 Target parameter (Refer to 8 0x01 Status - Ack 11 0x10 pseudovariable 900 Pseudo- 9 0x0B Block length (9 to 19) Variables, page 68) 12 0x0D 10 0x06 Group ID BiQaud1 enable BiQaud2 disable 13 0x00 AB1 drive mode Feedback direction is reversed Drive direction is reversed 11 0x04 Report command ID 14 0x07 Block length (14 to 20) 12 0x5C FPOS(0) = x06 Group ID 13 0x8F 16 0x04 Report command ID 14 0x16 ID of FPOS (Little-Endian 17 0x xC3 format) 18 0x x14 FVEL(0) = /s 19 0x0A ID of FVEL (Little-Endian format) 17 0xAE 20 0x xCF 21 0xDA Stop index 19 0x xDA Stop index XCD , Revision B 69

73 Commands GET VERSION COMMAND Request format (Host > XCD2) Byte # Raw Data Description Table 8: Get Version Command Structure Response format (XCD2 > Host) Byte # Raw Data Description 0 0xE4 SyncByte1 0 0xE4 SyncByte1 1 0xA5 SyncByte2 1 0xA5 SyncByte2 2 0x00 Address 2 0x00 Address 3 0xD5 Start index 3 0xD5 Start index 4 0x06 Packet length with header (3 to 8) 4 0x14 Packet length with header (3 to 22) 5 0x03 Block length (5 to 7) 5 0x11 Block length (5 to 21) 6 0x01 System group ID 6 0x01 System group ID 7 0x0A Get version command ID 8 0xDA Stop index 7 0x0A Get version command ID 8 0x01 XCD2 version XX.XX.XXX 9 0x x0C 11 0x x5C Serial number 0xC3168F5C 13 0x8F 14 0x xC3 16 0x80 Device type XCD2 17 0x x00 App version XX.XX.XXXX 19 0x x x xDA Stop index XCD , Revision B 70

74 Variables 5.3 VARIABLES Variables can be used either in the XMS program or in Host communication. When used in the XMS program, variables are referenced by name. All variable names are predefined; i.e. the user can use only these predefined variable names. In Host communication, the Commands Assign, Report, and Monitor refer to the variable by 16-bit ID. The XMS variables are subdivided into two classes: System variables; each system variable has a predefined meaning, for example: VEL required motion velocity FPOS feedback position User variables with predefined names: V0, V1, V2 V19. A user variable has no predefined meaning, and can store any number required in a program. Variables, page 71 summarizes the variables. For each variable, the paragraph specifies the following parameters: ID for use in read/assign variable command (Variables API (Group 6), page 60). Name for use in XMS program Tags - Variable tags NT no specific tags. FL Variable saved to flash memory at SAVE PARAMETERS command and loaded at power up. AX Axis variable RO read only variable. ST SET function is used for variable assignment (refer to Table 3, page GLOBAL VARIABLES AXIS SELECTION (XAXIS) The variable affects execution of XMS program, but does not affect the Host commands received through communication channels. All subsequent commands refer to the specified axis. ID: 72 Tag: NT XCD , Revision B 71

75 Variables ELAPSED TIME (TIME) Elapsed time in milliseconds. It can be set to any value using the XMS or Comm Protocol (refer to TIME Variable, page 134) 38 RO, ST MOTOR FREQUENCY (MFREQ) PWM frequency. Refer to Motor Frequency Calibration, page FL, AX, RO SERVO TICK LENGTH IN MSEC (SPRD) 24 RO USER VARIABLES (V0 - V19) NT MOTION PARAMETERS VELOCITY (VEL) Target velocity in motion profile during constant velocity phase ID: 1 Tag: FL, AX ACCELERATION (ACC) Acceleration in motion profile during acceleration phase 2 FL, AX DECELERATION (DEC) Deceleration in motion profile during acceleration phase, if equal zero then ACC is used. XCD , Revision B 72

76 Variables 3 FL, AX KILL DECELERATION (KDEC) This parameter is in use while the Kill command is executing. 4 FL, AX RD ORDER MOTION PROFILE (JERK) Refer to Third Order Motion Profile (JERK), page 18 JERK = 0-2nd order motion JERK > 0-3rd order motion 113 FL, AX TARGET POSITION (TPOS) 5 AX, RO MOTION PROFILER SIGNALS The motion profiler is tracked during each servo tick by variables that hold the reference signal for position (RVEL) and velocity (RVEL) REFERENCE POSITION (RPOS) This signal follows the position trajectory calculated each servo tick. 6 AX, RO REFERENCE VELOCITY (RVEL) This signal follows the velocity trajectory calculated each servo tick. 7 AX, RO XCD , Revision B 73

77 Variables MOTION SIGNALS FOR SENSORS Feedback read from feedback sensors (or calculated) is represented in position (FPOS) and velocity (FVEL) variables FEEDBACK POSITION (FPOS) Encoder read or integral over gyro read. 9 AX, RO, ST FEEDBACK VELOCITY (FVEL) Encoder derivative or gyro read. 10 AX, RO POSITION ERROR (PE) PE is calculated as RPOS-FPOS. 12 AX, RO POSITION LATCHED (POSI) Position latched on encoder index pulse. 52 AX, RO SERVO LOOP AND DRIVE CONFIGURATION POSITION LOOP GAIN (KP) Refer to Kp (Position Loop Gain), page 20 x13 FL, AX VELOCITY LOOP GAIN (KV) Refer to Kv (Velocity Loop Gain), page 21 XCD , Revision B 74

78 Variables 14 FL, AX VELOCITY LOOP INTEGRATOR GAIN (KI) Refer to Ki (Integral Gain), page FL, AX VELOCITY LOOP INTEGRATOR LIMIT (LI) Refer to LI (Integrator Limit), page FL, AX POSITION LOOP INTEGRATOR GAIN (PKI) 64 FL, AX POSITION LOOP INTEGRATOR LIMIT (PLI) 65 FL, AX BIQUAD FILTERS PARAMETERS All the parameters of the BiQuad, in each mode, are given in Laplace domain; those parameters are transformed by bilinear transform (Tustin) to the following discrete transfer function. Bilinear transform: s = 2 T z 1 z + 1 Hs B0 + B1z 1 + B2z 2 = H d z = A1z 1 + A2z 1 The numerator and denominator coefficients (B0,B1,B2,A1,A2) are the Native parameters in the XCD commander. Also can be used in XMS in the following manner: ID TAG BQA1 17 FL, AX XCD , Revision B 75

79 Variables ID TAG BQA2 18 FL, AX BQB0 19 FL, AX BQB1 20 FL, AX BQB2 21 FL, AX BQ2A1 67 FL, AX BQ2A2 68 FL, AX BQ2B0 69 FL, AX BQ2B1 70 FL, AX BQ2B2 71 FL, AX ENCODER RESOLUTION (ENR) User Units per one encoder count. 22 FL, AX DEAD ZONE MIN (DZMIN) 40 FL, AX DEAD ZONE MAX (DZMAX) 41 FL, AX ZERO FEED FORWARD (ZFF) 42 FL, AX FRICTION COMPENSATION VARIABLES Refer to Offset Mechanism, page 22. Friction in positive direction (FRP) Refer to 43 XCD , Revision B 76

80 Variables FL, AX Friction in negative direction (FRN) 44 FL, AX REALTIME DRIVE OUTPUT (DOUT) Percent of maximal output 45 AX, RO POSITION OFFSET (POSOFFS) Used with absolute encoders. The value is updated when SET FPOS command used. 95 FL, AX, RO BLACKOUT PERIOD (BLOUT) Configures Blackout time in milliseconds (refer to Dead Zone Mechanism, page 24). 112 FL, AX DRIVE OUTPUT OFFSET (DOFFS) Percent of shifted drive output between positive and negative direction, used to calibrate symmetry. For example, move at the same Vel for the same command at pos/neg directions 53 FL, AX SAFETY DRIVE OUTPUT LIMIT (DOL) Limits the drive output to DOL value (percent of maximum output). The function is disabled if DOL = FL, AX XCD , Revision B 77

81 Variables SOFTWARE LIMITS The software limit will disallow moves outside of the bounds set in user units. Disables the motor if 0 and throws and error. Refer to Error Codes, page 85. BKM Set away from hard stop after homing procedure is done. Positive Limit (SLP) 47 FL, AX Negative Limit (SLN) 48 FL, AX POSITION ERROR LIMIT (PEL) Absolute value of allowed position error. if = 0 - PEL disabled 49 FL, AX MOTION TIME LIMIT (MTL) Maximum time (msec) from motion start until target position is reached. the motor is disabled if MTL is exceeded, and throws and error. Refer to Error Codes, page 85. if = 0 - MTL disabled 51 FL, AX MOTOR TEMPERATURE (MTTMP) Variable is valid only in systems with thermal sensor. Uses an internal lookup table of values. Default units are Celcius. 107 AX, RO XCD , Revision B 78

82 Variables ANALOG INPUTS XCD2 features 16 analog inputs for user general purposes that are defined during HW design and configuration. These variables are used in the commands of Variables API (Group 6), page 60. There is an option in the HW configuration file to define a different scaling factor. The Analog sampler can be configured to produce an error when the analog value is outside of a min/max level and dwell time. AIN0 and AIN1 are also used for motor NTC temperature feedback in Edge4X ANALOG INPUTS 0-3 (AIN0 - AIN3) Value represented as percentage of reference voltage and varies between 0 and RO ANALOG INPUTS 4-11 (AIN4 - AIN11) Value represented as percentage of reference voltage and varies between 0 and RO ANALOG OUTPUTS (DAC) The voltage produced is calculated by the formula: voltage = variable Refer to Variables API (Group 6), page 60 for configuring the variable outputs ANALOG OUTPUT 0 (AOUT0) Value has range from 0 to RO XCD , Revision B 79

83 Variables ANALOG OUTPUT 0 SCALED (AOUTSC0) Percent of max 35 NT ANALOG OUTPUT 1 (AOUT1) Value has range from 0 to RO ANALOG OUTPUT 1 - SCALED (AOUTSC1) Percent of max 37 NT DIGITAL INPUTS/OUTPUTS XCD2 supports up to 16 GPIOs depending on the hardware configuration. Some pins allows re-configuration of their direction (Input/Output) in runtime using IO-direction (905) pseudovariable (refer to IO direction, page 84). As input, driving the pin to low/high (GND or VCC) will change the value of the corresponding variable to 0 or 1. As output, setting the variable value from 0 or 1 will affect the pin state GND or VCC DIGITAL INPUTS / OUTPUTS 0-15 (IO_0 - IO_15) Values can be 1 or NT FLAGS (ACCEPT VALUES 0 OR 1 ONLY) MOTION IS IN PROGRESS (S_MOVE) Refer Dead Zone Mechanism, page 24 XCD , Revision B 80

84 Variables 90 AX, RO SERVO LOOP IS BUSY (S_BUSY) Refer Dead Zone Mechanism, page AX, RO INDEX POSITION LATCHED (S_IND) Refer to Position Latch and Encoder Index, page AX, RO, ST HOMING SUCCESSFUL (S_HOME) Refer to Home, page AX, RO IN-POSITION FLAG (S_INPOS) Refer Dead Zone Mechanism, page AX, RO SCOPE USER VALUE (SSTAT) Refer to Scope, page NT MOTION PHASE VARIABLE (MTNPHS) Refer to Position Profiler, page AX The following position profiler states are available: Value State XCD , Revision B 81

85 Pseudovariables 0 ACCEL_BUILT_UP 1 ACCEL_CONST 2 ACCEL_RAMP_DOWN 3 VELOCITY_CONST 4 DECEL_BUILT_UP 5 DECEL_CONST 6 DECEL_RAMP_DOWN 7 IDLE SERVO TICK SYNCHRONIZATION VARIABLE (SERTICK) High on completion of each servo tick. see also Synchronization, page ST 5.4 PSEUDOVARIABLES A pseudovariable has an ID but does not have a name. Pseudovariables can be accessed using the ASSIGN/REPORT command in the Comm Protocol or CONFIG/GETVAR in XMS. The 4 bytes in the psuedovariable are filled with special content, not necessarily in Real format (for example binary bit structure). BKM when using XMS assign the pseudovariables using Hex code. XCD , Revision B 82

86 Pseudovariables Table 9: Pseudovariables ID Name Tag Comments 900 Status FL, AX 901 Program Status NT Corresponding 4 bytes in Controller's reply contain a bit mask with the following bits: 0 Script Run flag (1 script is running, 0 not running) 1 S_QUEUE flag 2 S_MOVE flag 3 S_BUSY flag 4-7 Reserved 8 - Open Loop flag (1 motor PWM is enabled, 0 disabled) 9 Reserved 10 Motor enabled 11 Velocity loop flag (1 velocity is enabled, 0 velocity loop disabled) 12 First BiQuad filter enabled 13 - Second BiQuad filter enabled 14 - Reserved 15 Reserved 16 - PWM Mode (0 Linear (AB5) Mode, 1 Normal (AB1A) Mode 17 - Motor flag (0 - EDGE/EDGE4X motor; 1 - HR Motor) 18 - Inverse Feedback 19 - Inverse Drive Output (Reserved) Corresponding 4 bytes in Controller's reply are interpreted as follows Bits 0-15: Currently executed program line Bits 16-31: Status value: 0 - program was not executed 1 - execution is in progress 2 - program finished successfully 3 - program was terminated by a user 100 and above program was terminated due to error. Value is the error (refer to Error Codes, page 85) XCD , Revision B 83

87 Pseudovariables Table 9: Pseudovariables ID Name Tag Comments Corresponding 4 bytes in the Controller reply contain a bit mask with the following bits: Bit 0 Negative Limit 902 Safety Disable FL, AX Bit 1 Positive Limit Bit 2 Emergency Stop Bit 3 Motor Not Connected 0 = indicates enabled safety signal 1 = indicates disabled safety signal By default, all faults are enabled. Corresponding 4 bytes in Controller's reply contain a bit mask with the following bits: Bit 0 Negative Limit 903 Safety Inverse FL, AX Bit 1 Positive Limit Bit 2 Emergency Stop 0 = active-high polarity (fault occurs if the signal has high level) 1 = active-low polarity. By default, all signals are active-low. Corresponding 4 bytes in Controller's reply contain a bit mask with the following bits: Bit 0 Negative Limit 904 Safety state FL, AX Bit 1 Positive Limit Bit 2 Emergency Stop Bit 3 Motor Not Connected The result shows a raw state of the safety inputs. 0 = low voltage level 1 = high voltage level. Corresponding 4 bytes in Controller's reply contain a bit mask. In the mask: Bit 0 - behavior of IO_0 905 IO direction FL Bit 1 - behavior of IO_1 Bit 15 - behavior of IO_15 0 = IO is input 1 = IO is output. 950 XMS checksum RO Returns the checksum (32-bit integer) of XMS program in the Controller memory as calculated according to Adler-32 algorithm. XCD , Revision B 84

88 Error Codes Table 9: Pseudovariables ID Name Tag Comments 951 XMS length RO 960 Last error AX Axes number UART 0 address RO FL 991 UART 1 address FL 992 IIC address FL SPI address Power Save Enable FL FL Returns the length (in bytes) of the XMS program (32-bit integer) in the Controller memory. Returns a real value of the last error in the Controller. Refer to Error codes in Table 10, page 85. The XMS program reads the value using the GETVAR function. The XMS program running in non-stop mode can use the value to check if a motion has terminated successfully. Number of supported axes in the system. Access to communication channel address. 1=enable 0=disable 5.5 ERROR CODES When the XCD2 detects an error, the following actions take place: The error variable (Last error, page 85) is updated The currently running XMS program is aborted, and motor action is stopped An error code appears as an XCD2 Commander popup Table 10: Error Code Code Comments 101 Position Error - Absolute value of position error (PE) exceeds the value specified in the PEL parameter. The condition is checked only if PEL is enabled (PEL>0). 102 Software Limit - Feedback position FPOS is out of the range from SLN to SLP. The condition is checked only if SLN<SLP. 115 Motion Timeout - Motion continued for MTL milliseconds. XCD , Revision B 85

89 Error Codes Code 116 Wrong axis number the requested axis is not valid. 120 Operation Failure - Special operation (homing or calibration) failed. 201 Illegal XMS instruction Comments Table 10: Error Code Mathematical Error - The error occurs in an expression calculation. For example the function argument is out of range. Unsupported Method - Unsupported method in special operation (homing or calibration) is requested. XCD , Revision B 86

90 6 XMS - MOTION SCRIPTS XCD Motion Script (XMS) is a script language that is designed to execute motion commands at XCD2 controller. XMS can be used to create programs to control XCD2 or to express motion algorithms. 6.1 OVERVIEW XMS has a unique set of commands and its own special syntax for organizing script commands. XMS is first compiled in the XCD2 Commander (refer to XCD2 Commander, page 136) to ensure that the script s syntax is correct, then a binary image of the script is constructed and sent to the XCD2 Controller. The XCD2 Controller executes the script. This allows the user to save the XMS to Controller and run the script without HOST interruption. Variable XAXIS defines the axis affected by XMS commands. The Controller starts with XAXIS value of 0, and all subsequent commands apply to axis 0. As soon as the XMS program assigns 1 to XAXIS, all subsequent commands refer to axis 1. XMS scripts are executed when XCD2 operating system is not performing realtime tasks such as servo and signal processing tasks. That means that a number of XMS lines can be executed in the same time slot, providing the XMS functions do not require servo task synchronization. Refer to Synchronization, page 92 for information about the synchronization commands. The following figure shows XMS execution order over the time. Figure 6-1: XMS execution time scheme XCD , Revision B 87

91 Numbers The XMS script for the above scheme has 4 lines: nmove FPOS+10 // move for 10 user unit (mm for linear applications or degrees or radians for rotary applications) from current position. There are two action performed in this line: Addition of 10 to feedback position; Sending move command to servo module. while S_BUSY // polling of S_BUSY flag. S_BUSY flag goes high, equal 1, after a new motion command enters motion queue at servo module. S_BUSY flag goes low, equal zero, after motion platform enters dead-zone minimum. end disable // disable servo and motor Servo tasks run at a predefined rate and are executed in precise time slots (refer to Servo tick length in msec (SPRD), page 72). After completion of a servo task the XCD2 OS switches to the XMS task. The sequence shown in Figure 6-1. Time N-1 N Description The sum of current position and 10 is calculated. The MOVE command with the sum is placed in the servo command queue. XMS is halted till next servo tick is done. S_BUSY is checked one time. XMS stays at line 2 & 3 because S_BUSY equals 1. The servo task took longer than average because it needed to calculate the motion profile request. S_BUSY is checked multiple times. XMS stays at line 2 & 3 because S_BUSY is equal 1. S_BUSY is checked one time. XMS goes at line 4 because S_BUSY is equal 0. Disable command is placed in the servo command queue. XMS is halted until the next servo tick is done. XMS finished execution. 6.2 NUMBERS FLOATING POINT VALUES All numbers in XMS program are floating point values complying with the IEEE 754 definition of single precision arithmetic. The values range is [ , ] approximately. All calculations are performed using single-precision floating numbers. XCD , Revision B 88

92 Units LITERAL CONSTANTS In the XMS program, literal constant can appear in different formats. The format of the literal constant has no effect on its internal presentation; the controller converts each constant to a floating point number before using it in calculations. Table 1: Literal Constants Formats in XMS Format Examples Integer 1, 20, Real 0.1, 20.35, Scientific 1e-5, 2.3e10 Hexadecimal 0x07FF, 0x1E UNITS The XCD2 controller uses discrete units of measure. Time is expressed in milliseconds (msec) and scaled values are a percent of the maximum possible. Units of position or distance are based on the user s application. Throughout this document these are referred to as User Units. The User Units can be expressed in standard units of measure expressed as millimeter, degree, or radian. These units are typically based on an encoder mounted on the stage. To convert User Units to units for the XCD2 a scaling factor is used. The Encoder Resolution (ENR) provides this conversion. Physical values such as position, velocity, and acceleration are derived using the ENR. The following table shows the variables unit s relation when ENR provides a physical measurement in millimeters for a linear application. For example, with a 1 micron encoder the ENR should be set to so that the User Units are in millimeters. Table 2: Measuring Units for Physical Values Value Example of variables example User Units position/distance POS, RPOS, FPOS, TPOS millimeter (mm) velocity VEL, RVEL, FVEL millimeter per second (mm/ sec) acceleration ACC millimeter per second per second (mm/sec 2 ) time TIME millisecond (msec) scaled values AIN0, AOUT1, DOUT percent of maximum (%) XCD , Revision B 89

93 Syntax 6.4 SYNTAX The Syntax is equivalent to the spelling and grammar of a programming language. XCD2 understands only the exact form that the XCD2 expects. That expected form is called the syntax. The following table summarizes XCD2 - XMS syntax. Table 3: Syntax Element Type Description and Examples Variables XMS variable Variables, page 71 Sets a special variable. The command resembles assignment, but unlike regular assignment causes special Set actions. The command applies to limited set of variables that are read-only and cannot be addressed in regular assignment. Literal constants 10, , 0x0FFF, 3.256E2 Arithmetic operators Compare operators Logical operators Decision control statements Arithmetic operations result in a real number. + adds two operands - subtracts second operand from the first * multiplies both operands / divides numerator by denominator = assignment to variable Operation results in an integer. These operators that are used in decision control statements. = equal <> not-equal < less than <= less than or equal to > greater than >= greater than or equal to Operation results in an integer & logical AND operator logical OR operator ^ logical XOR operator if - statement will execute if the expression is true. else - statement will execute if the expression of if statement is false. Note: end syntax is needed at the end of the statement XCD , Revision B 90

94 Built-in Functions Table 3: Syntax Element Type Count-controlled loops Condition-controlled loops Description and Examples For V0 = 0 to 10 repeat the statement 11 times while every statement V0 variable increments by 1. For V0 = 0 to 2 step 0.5 repeat the statement 5 times while every statement V0 variable increases by 0.5. Note: Only user variables (Variables, page 71) can be used for statement control end syntax is needed at the end of the statement while (statement) repeating loop until condition is true or non-equal to zero. Note: end syntax is needed at the end of the statement 6.5 BUILT-IN FUNCTIONS The following table shows built-in functions that the XMS language provides that can be used in expressions along with variables and constants. Table 4: Built-in Functions Function Purpose Comment abs sin cos tan sqrt rand Calculates absolute value of an argument. Calculates sine of an argument. Calculates cosine of an argument. Calculates tangent of an argument Calculates square root of an argument. Calculates real number for uniform distribution. The argument can be any number. The argument can be any zero or positive number. Function does not take any argument. 6.6 XMS SCRIPT EXAMPLES This section provides example XMS scripts for both linear and rotary applications. XCD , Revision B 91

95 XMS Script Examples SYNCHRONIZATION The servo synchronization variable will go high (one) on each servo tick completion. Related variable Servo tick length in msec (SPRD), page 72. XMS Example In the following example, if servo rate is 20k, a 1 second movement will result in: V1 = V2 = unknown value (may vary depending on SPRD and controller utilization) V3 = 1000 set TIME = 0 nmove 25 while (S_BUSY = 1) if (SERVOTICK = 1) V1 = V1 + 1 set SERVOTICK = 0 else V2 = V2 + 1 end end V3 = TIME XMS SCRIPT FOR A LINEAR APPLICATION The following linear motion program example executes a set of motions. Each motion is positioned to a point in the range of 0 to 20 mm. // Seed of random number generator // assigned to variable V10. V10=999 // Homing, method 0 to the left hard-stop home 0 // while loop executes forever, as // condition expression is always non-zero. while 1 XCD , Revision B 92

96 XMS Script Examples // for loop executes 6 times, // loop variable V1 changes from 0 to 5. for V1=0 to 5 // Force-back move - Inner for loop executes 6 times, // loop variable V0 changes from 0 to 5. for V0=0 to 5 // Set a required motion velocity. // Velocity starts from 10 mm/sec, // then rises to 45, 80, 115, 150 // and finally reaches 185 mm/sec. VEL=10+V0*35 // move to absolute position 5 mm. move 5 // move to absolute position 15 mm. move 15 end //end of "for V0=0 to 5 ". //move to absolute position 0 mm. move 0 // Incremental move forward -Inner for loop executes // 4 times, loop variable V0 changes from 0 to 5. for V0=0 to 3 //move to relative position, increment 4 mm. move RPOS+4 //delay for 100 milliseconds. delay 100 end //end of "for V0=0 to 3". // Incremental move backward - Inner for loop executes // 4 times, loop variable V0 changes from 0 to 5. for V0=0 to 3 //move to relative position, increment -4 mm. move RPOS-4 //delay for 100 milliseconds. XCD , Revision B 93

97 XMS Script Examples delay 100 end //end of inner for loop. // Variable step forward - Inner for loop executes 8 times, // loop variable V0 changes from 1 to 8. for V0=0.5 to 4 step 0.5 // move to relative position, increments 0.5, 1, 1.5, etc. move RPOS+V0 //delay for 100 milliseconds. delay 100 end //end of "for V0=0.5 to 4 step 0.5". // Variable step forward - Inner for loop executes 8 times, // loop variable V0 changes from 1 to 8. for V0=0.5 to 4 step 0.5 //move to relative position, increments -0.5, -1, -1.5, etc. move RPOS-V0 //delay for 100 milliseconds. delay 100 end //end of "for V0=0.5 to 4 step 0.5". end //end of "for V1=0 to 5" // Positioning to random points - for loop executes 201 times, // loop variable V1 changes from 0 to 200 for V1=0 to 200 //. // Random number generator (11 bits) // At each cycle generate a random number between 0 and // Symbol "&" designates logical AND. Literal 0x07FF is // hexadecimal constant, equal to decimal // V10 is random number in the range of 0 to V10=V10*993+1 V10=V10&0x07FF XCD , Revision B 94

98 XMS Script Examples // move to random absolute position in the range from 0 to 18 mm. move 18*V10/2048 // delay for 100 milliseconds delay 100 end // end of "for V1=0 to 200" end // end of "while 1" XMS SCRIPT FOR A ROTARY APPLICATION The following example motion program performs a series of tests on a rotary stage with hard-stops to determine the stage ability to operate correctly. The program locates the stage s hard stops, identifies the index, and then runs a four hour conditioning program. The following is an example of an XMS script for rotary motion program. ENR = 360/ // Define user units in degrees DZMIN = ENR // DZMIN is set equal to Encoder resolution DZMAX = 15*ENR // DZMAX is set to 15 times the Encoder resolution PEL = 5 // Sets maximum position error to 5 degrees ZFF = // Zero Feed Forward is set to degrees FRN = 10 // Negative Friction is set to 10% FRP = 10 // Positive Friction is set to 10% MTL = // Maximum TIME Limit is set to 60 seconds KP = 300 // Position error gain KV = 0.5 // Velocity and position error gain KI = 300 // Integrator gain LI = 60 // Integrator limiter VEL = 40 // Velocity is set to 40 deg/sec ACC = 500 // Acceleration is set to 500 deg/ second2 KDEC = 1000 // Kill deceleration at 1000 deg/sec2 V0 = 0 // user variable for home offset XCD , Revision B 95

99 XMS Script Examples // Find the negative hard-stop - move in a negative direction // to a position that is larger than the hardstop. In this case nmove -500 // The loop continues as long as the absolute position error (PE) is // smaller than -0.5 degree. while abs(pe) < 0.5 end // When the PE is greater than 0.5 degree stop the loop because // the hard-stop has been found, and disable motor. disable // Reset index flag set S_IND = 0 //Find the Position Index and set the Index Position to Home offset (V0) nmove 360 // Wait until index not found while S_IND=0 end // kill motion kill delay 100 //for V0=0 set the index position to 0 position set FPOS=FPOS-POSI-V0 //Find Home offset nmove -360 while abs(pe) < 0.5 end // disable the motor disable // This value is the distance of the Index from the middle of the stage XCD , Revision B 96

100 XMS Script Examples V0=FPOS+185 // Set the negative hard-stop position to -5 degrees set FPOS=-5 // set the velocity to 120 deg/sec VEL = 120 // is the maximum positive position error when the // reference velocity is in the constant velocity range. V2 = 0 // is the minimum position error when the reference // velocity is in the constant velocity range. V3 = 0 // is the maximum positive PWM (DOUT) V4 = 0 // is the minimum negative PWM (DOUT) V5 = 0 // Reset current TIME set TIME = 0 // Finds maximum and minimum position error, maximum and minimum DOUT // over the total stage travel during a four hour period while TIME < (4* ) // move to 360 degree nmove 360 delay 2 // Skip acceleration phase, reference velocity no equal // to target velocity. while RVEL <> VEL end // while in the acceleration is zero (constant velocity phase) XCD , Revision B 97

101 XMS Script Examples // the loop will continue while RVEL = VEL // Measures the maximum of position error if PE > V2 V2 = PE end // Measures the minimum of position error if PE < V3 V3 = PE end // Measure maximum PWM of positive command if DOUT > V4 V4 = DOUT end end // end of "while RVEL = VEL". // wait till platform reach target zone of 360 degree while S_BUSY end // wait a second delay 1000 // move to 0 degree nmove 0 delay 2 // Skip acceleration phase, reference velocity not equal // to target velocity. while RVEL <> -VEL end // while in the acceleration is zero (constant velocity phase) // the loop will continue while RVEL = -VEL // Measures the maximum of position error if PE > V2 XCD , Revision B 98

102 XMS Script Examples V2 = PE end // Measures the minimum of position error if PE < V3 V3 = PE end // Measure minimum PWM of negative command if DOUT < V5 V5 = DOUT end end // wait till platform reach target zone of 0 degree while S_BUSY end // wait a second delay 1000 end XMS FOR MULTI-AXES APPLICATION This section provides an example script for dual axes application. XMS assumptions are: XCD2 has 2 circular axes Axis 0 has range of [-30,110 ] Axis 1 has range of ±175 XMS written in a state-machine manner, while user can control the XMS by assigning a value in the V0 variable. The State machine has the following states: V0 is equal to 0 IDLE state. V0 is equal to 1 enable servo loop (keep current position) at both axes. V0 is equal to 2 disable motors at both axes. V0 is equal to 3 scan whole range of both axes with continuous movements. XCD , Revision B 99

103 XMS Script Examples V0 is equal to 4 homing procedure for both axes. V0 is equal to 5 go to user specific location {x, y}, while x get its value from V1 variable and y get its value from V2 variable V0 is equal to 6 scan whole range at both axes with steps movements. // time for system start up sequence delay 2000 // Set state machine to IDLE V0=0 // Start infinite loop while 1 // Enable two axes if V0 = 1 // Set state machine to IDLE V0 = 0 // Set working axis to 1 XAXIS = 1 // enable servo loop enable // Set working axis to 0 XAXIS=0 // enable servo loop enable end // end of "if V0 = 1". // Disable two axes if V0 = 2 // Set state machine to IDLE V0 = 0 // Set working axis to 1 XAXIS=1 // disable servo loop and motor disable // Set working axis to 0 XCD , Revision B 100

104 XMS Script Examples XAXIS=0 // disable servo loop and motor disable end // end of "if V0 = 2". // scan over whole range if V0 = 3 // move to start position // Set working axis to 0 XAXIS = 0 move 110 // Set working axis to 1 XAXIS = 1 move 175 delay 1000 // start point-to-point infinite movement loop // until V0=0 (set by user) while V0 // Set working axis to 0 XAXIS = 0 // non-conditional movement nmove -30 // Set working axis to 1 XAXIS = 1 // conditional movement - script will stack on this // line until deceleration phase finished. move -175 delay 1000 // Set working axis to 0 XAXIS = 0 // non-conditional movement nmove 110 // Set working axis to 1 XCD , Revision B 101

105 XMS Script Examples XAXIS = 1 // conditional movement - script will stack on this // line until deceleration phase finished. move 175 delay 1000 end // Set working axis to 0 XAXIS=0 // disable servo loop and motor disable // Set working axis to 1 XAXIS=1 // disable servo loop and motor disable end //of scan V0=5 // homing if V0=4 // Set state machine to IDLE V0 = 0 // Go over both axes for V1 = 0 to 1 // Set working axis XAXIS = V1 // sample current position V3 = FPOS // move with constant velocity till hardstop found velocityloop 100 // Keep searching for hard-stop V2=1 while V2 // wait 10 msec delay 10 XCD , Revision B 102

106 XMS Script Examples // check if position difference is zero if abs(fpos-v3) < 20*ENR // stop searching for hard-stop V2 = 0 // disable servo loop and motor disable end // sample current position V3=FPOS end // end of "while V2". // Assign new position if V1 = 0 // Axis 0 has hard stop at 110 degree set FPOS = 110 else // Axis 0 has hard stop at 175 degree set FPOS = 175 end // end of "if V1 = 0". end // end of "for V1 = 0 to 1". end // end of homing V0 = 4 // go to user specific position if V0=5 // Set state machine to IDLE V0 = 0 // Set working axis to 0 XAXIS=0 // calculate distance to travel for axis 0 V4=abs(FPOS-V1) // store current position of axis 1 XAXIS=1 // calculate distance to travel for axis 0 V5=abs(FPOS-V2) XCD , Revision B 103

107 XMS Script Examples // make decision what axis has a longer movement if V5 < V4 // Set working axis to 1 XAXIS = 1 // non-conditional movement nmove V2 // Set working axis to 0 XAXIS = 0 // conditional movement - script will stack on this // line until deceleration phase finished. move V1 else // Set working axis to 0 XAXIS = 0 // non-conditional movement nmove V1 // Set working axis to 1 XAXIS = 1 // conditional movement - script will stack on this // line until deceleration phase finished. move V2 end // end of "if V5 < V4". // disable axis if V3 not equal zero if V3 <> 0 // Set working axis to 1 XAXIS = 1 // disable servo loop and motor disable // Set working axis to 0 XAXIS = 0 XCD , Revision B 104

108 XMS Script Examples // disable servo loop and motor disable end // end of "if V3". end // end of "if V0=7" // step and steer movement over whole motion range // at both axes if V0=6 // axis 0 step V3 = 10 // axis 0 start position V5 = 0 // axis 1 step V4 = 10 // axis 1 start position V6 = 0 // Default delay between movements V10 = 1000 // continue executing inner loop till user won't reset V0 while V0 // Set working axis to 1 XAXIS = 1 // non-conditional movement nmove V5 // Set working axis to 0 XAXIS = 0 // non-conditional movement nmove V6 // Set working axis to 1 XAXIS = 1 // sample motion profile V7 = S_MOVE XCD , Revision B 105

109 XMS Script Examples // Set working axis to 0 XAXIS=0 // sample motion profile V8 = S_MOVE // Wait for the end of motion of both axis while V7 V8 // Set working axis to 1 XAXIS = 1 // sample motion profile V7 = S_MOVE // Set working axis to 0 XAXIS=0 // sample motion profile V8 = S_MOVE end // end of "while V7 V8". // Wait time between motions delay V10 // update next point for axis 0 V5 = V5 + V3 // check axis 0 limits if V5 > 110 V5 < -30 // swap direction V3 = -V3 // update next point V5 = V5 + V3 end // end of "if V5 > 110 V5 < -30". // update next point for axis 1 V6 = V6 + V4 // check axis 0 limits if V6 > 175 V6 < -175 // swap direction XCD , Revision B 106

110 XMS Script Examples V4 = -V4 // update next point for axis 1 V6 = V6 + V4 end // end of "if V6 > 175 V6 < -175". end // Set working axis to 1 XAXIS = 1 // disable servo loop and motor disable // Set working axis to 0 XAXIS = 0 // disable servo loop and motor disable end // of V0=8 end // end of "while 1". XCD , Revision B 107

111 7 SPECIAL FEATURES The document is organized in following way Scope, page 108 Power Save, page 109 Motor Frequency Calibration, page 110 Communication Bridge, page 114 Gyro Module, page SCOPE The scope module allows streaming of any internal variables data at full servo rate. The data can be streamed in any of the UART channels at a configurable baud-rate. In order to overcome the possible baud-rate/data-rate limitation it s possible to reduce the data-rate by: Selecting 16bit float (*) instead of 32bit Diluting the transitions to 1/k servo rate (*) a standard floating point (single, 32bit) is not converted to half-precision but instead it s shifted by 16 bits. The only thing affected is the LSB of the mantissa. The exponent part is still 8bits. To interpret the value the data needs to be shifted back into 32bits. Scope usage steps: Enable the scope module and configures its communication channel (UART 0 or 1) Configure scope sample channels Activate streaming of data Scope streams data packets. Each data packet contains 2 sync bytes and a status byte. 0xD7 <Status Byte> <Data> 0xA5 XCD , Revision B 108

112 Power Save Data contains all of the channels, 16 or 32bit each (e.g 2 channels of 16bit + 1 channel of 32bit = 8bytes of data + 3 bytes of overhead) All Scope actions can be initiated through Comm Protocol or from the XCD2 Commander. XMS scripts provide starting and stopping Scope. Refer to Scope, page 48 For use of the XCD2 Commander to configure the Scope refer to Scope, page POWER SAVE When Power-Save-Mode is enabled, the controller will wake up every 100ms to parse communication messages and check its position. If movement has occurred, it will perform position correction and resume Power Save mode. The use the Power Save module and related pins must be considered during HW design. During Power Save: all peripheral components (ADC, Timers, etc) are turned off a Power-Save bit is added to each pin changing it to analog input Power Save is enabled/disabled using pseudovariable Power Save Enable, page 85. In power save mode communication is parsed every 100ms. This will cause the XCD2 Commander GUI to be unresponsive. Figure 7-1: Power Save Enable Window in XCD2 Commander XCD , Revision B 109

113 Motor Frequency Calibration 7.3 MOTOR FREQUENCY CALIBRATION The ideal frequency needed to drive a piezo motor shifts in correlation with the temperature. The first step in calibration is determining the correct operating frequency. Because temperature affects the ideal operating frequency of the motor, the system determines the current temperature and shifts the operating frequency to adjust for the temperature. Only one axis at a time can be calibrated FREQUENCY CALIBRATION The system finds the frequency at which the motor has maximum speed in steady-state (discounting acceleration, dead zone and other movement initiation issues). The calibration process covers a range of frequencies, moving the motor in Open Loop (fixed PWM) for a fixed amount of time (ms) in the same region (forward and backward movement). It looks for the best delta-movement. If the best frequency is between the two maximum measured points the weighted average is calculated: Figure 7-3 and Figure 7-4 show the expected Frequency vs Move distance behavior. This is the basis of the calibration. Figure 7-2: Frequency vs Move distance XCD , Revision B 110

114 Motor Frequency Calibration Figure 7-3: Optimal frequency calculation If the best movement distance found during the calibration is smaller than the minimum travel distance (MCF_TD, page 112), the frequency will return to its previous value and an error flag is displayed. The resulting calibration frequency is saved as variable MFREQOFFS. This the offset between the calibration value and the calculated temperature/frequency look up table (Temperature Compensation Algorithm, page 113). MFREQOFFS = TempCompensationFreq CalibrationFrequency VARIABLES The parameters will be saved as global variables (same for all axes) and accessible to the user and XMS. The following table shows the calibration variables: Table 1: Calibration variables VAR ID Name Description Initial value 63 MCF_SF Start frequency Hz 66 MCF_FF Finish frequency Hz 102 MCF_TS Total steps MCF_AT Acceleration time 0 millisecond 104 MCF_TT Travel time 5 msec 105 MCF_PL PWM level 60 % XCD , Revision B 111

115 Motor Frequency Calibration Table 1: Calibration variables VAR ID Name Description Initial value 106 MCF_TD Minimum travel distance 0.2 mm 108 MCF_DB Deceleration time 2 msec 109 Debug output maximum distance MCF_DT traveled [output] 110 Calibration result offset from frequency MFREQOFFS lookup table value to match the desired calibration frequency. [output] The following parameters are saved to the flash and configured upon powerup: MFREQ MFREQ1 MFREQOFFS Figure 7-4 shows the maximum distance traveled at each temperature. Figure 7-4: Temperature vs Frequency vs Distance, Axis 1 XCD , Revision B 112

116 Motor Frequency Calibration TEMPERATURE COMPENSATION ALGORITHM Temperature Compensation matches the optimal motor frequency to the current motor temperature using a predefined lookup table. The system samples the temperature and preforms a low pass filter (e.g. 1sec average) on the readings. When the temperature passes the hysteresis value, MFREQHYST, page 113, a new frequency is calculated and applied Note that there is an inverse relation between the temperatures and frequencies, the lower the temperature the higher the optimal operating frequency VARIABLES Table 2: Temperature Compensation variables VAR ID Name Description Initial value 107 MTTMP Motor temperature after LPS, axis depended. [Output] 110 Frequency offset, calculated by Frequency MFREQOFFS 0 Calibration Algorithm. 111 MFREQHYST Temperature hysteresis 5 degrees TEMPERATURE MEASUREMENT CONFIGURATION Each axis is coupled with Analog input index and two configuration bits: Table 3: Temperature and drift bit configuration Bits Name Description [0..4] Corresponding AIN index; Analog input index possible values 0 19 [5] Read and process ADC data Process temperature 1 = Enabled [6] Process frequency correction Calculate and update motor frequency 1 = Enabled CONVERSION FROM ADC VALUES TO DEGREES CELSIUS Temperature measurement is based on a Thermistor connected in parallel to a fixed value resistor, the ratio changes the voltage sampled by the ADC. The ADC sampler is configured to provide a value that ranges from 0% to 100%, XCD , Revision B 113

117 Communication Bridge where 0% = 0V and 100% = 3.3V, for each axis (AI0, AI1). A lookup table is used to convert these values to temperature in Celsius. 7.4 COMMUNICATION BRIDGE XCD2 serves as a communication bridge, transferring data from the HOST to peripheral devices with serial communications (UART, IIC and SPI). The Bridge channels are defined during HW design and configuration. Figure 7-5: Functional Block Diagram BRIDGE CONFIGURATION The following section describes the steps required in order to configure a communications channel as an Active bridging channel BRIDGE CONFIGURATION The following steps define the configuration process. 1. Enable the selected channel Bridge module. 2. Configure the HOST channels characteristics (e.g Clock, Phase, etc) 3. The HOST performs read/write operations to devices through XCD2 HW Host is responsible for connecting and constructing the device messages accordingly to device specification. This is accomplished by populating XCD2 control registers and buffers. Refer to Bridge Buffer write, page 39, and Bridge Buffer read, page 40. XCD , Revision B 114

118 Communication Bridge Figure 7-6: Device Message VARIABLES In the following Variable names the xxxx can be UART (Base=5376), IIC (Base=5120) or SPI (Base=4864) string. Table 4: Communication Bridge XMS Variables ID Name Flag Variable Description Base+0000 xxxxcntr NT control variable Base+002 xxxxrxlen NT number of bytes to receive Base+003 xxxxrxcnt RO number of received bytes Base+004 xxxxtxlen NT number of bytes to transmit Base+005 xxxxtxcnt RO number of bytes transmitted Base Base+071 xxxxrx00... XXXXRX63 RO data of received bytes Base Base+135 xxxxtx00... XXXXTX63 NT data of bytes to transmit SPI will perform a read on every clock (write or read) XCD , Revision B 115

119 Communication Bridge COMMUNICATION CHANNEL REGISTERS UART CONFIGURATION AND STATUS VARIABLE Bit description Table 5: UARTCRRT Reserved UL ST Reserved PT SBS DW BR EN 9 r w/r w/r r r/w r/w r/w r/w r/w EN: Channel enable 0: channel disabled 1: channel enabled BR: Baud rate kbps, kbps, kbps, kbps kbps, kbps, kbps, kbps, 8 2 Mbps, 9-3 Mbps DW9: 9 bit Data width 0: 8 bit data width 1: 9 bit data width SBS: Stop bit size 0: 1 stop bit 1: 2 stop bit PT: Parity type 0: None 1: Even 2: Odd ST: Start Transaction Write 1 to start transmit/receive sessions. This bit is reset by the FM or if UL is 1. UL: Unlock Write 1 to enable configuration changes and mid transaction termination. XCD , Revision B 116

120 Communication Bridge IIC CONFIGURATION AND STATUS VARIABLE Bit description Table 6: IICCNTR Reserved UL ST Reserved CLK AAM EN r w/r w/r r r/w r/w r/w EN: Channel enable 0: channel disabled 1: channel enabled AAM: Acknowledged Address mode 0: 7 bit address 1: 10 bit address CLK: Clock speed 0-50 khz, khz, khz, khz, khz, khz, khz, khz ST: Start Transaction Write 1 to start transmit/receive sessions. This bit is reset by the FM or if UL is 1. UL: Unlock Write 1 to enable configuration changes and mid transaction termination SPI CONFIGURATION AND STATUS VARIABLE Table 7: SPICNRT Reserved UL ST Reserved CLK PHA POL EN r w/r w/r r r/w r/w r/w r/w Bit description EN: Channel enable 0: channel disabled XCD , Revision B 117

121 Communication Bridge 1: channel enabled POL: Clock Polarity 0: Clock is 0 when idle 1: Clock is 1 when idle PHA: Clock phase 0: The first clock transition is the first data capture edge 1: The second clock transition is the first data capture edge CLK: Clock speed MHz, MHz, MHz, MHz, MHz, MHz, MHz, MHz ST: Start Transaction Write 1 to start transmit/receive sessions. This bit is reset by the FM or if UL is 1. UL: Unlock Write 1 to enable configuration changes and mid transaction termination. SPI Configuration and Status Variable XCD , Revision B 118

122 Gyro EXAMPLE Figure 7-7: Example of Bridge transaction execution 7.5 GYRO MODULE OVERVIEW This paragraph provides detailed overview of gyroscope SW module and its usage that is integrated in the XCD2 FW. The XCD2 works with the MCU MEMS gyroscope. The XCD2 FW is designed to support a 6-axis device that combines a 3-axis gyroscope, 3-axis accelerometer. XCD , Revision B 119

123 Gyro DRIFT COMPENSATION One of the challenges to work with MEMS gyroscopes is drift. Drift occurs due to thermal variations that cause the mechanical properties of the vibrating thermal mass to fluctuate over time, leading to a systematic error. The following subsections explain the method of minimizing drift BIAS CANCELATION The local solution to cancel a drift from a gyroscope is to subtract the average bias. The following equation shows the new angular velocity after subtracting the average bias. N 1 new = --- N i i = 0 Equation 7-1 To activate the mechanism assign the Gyro XMS variable GAVEREN, page 131 to 1. However, new is updated after the averaging window, XMS variable GAVERTIME, page 131, is passed. The number of samples is calculated by the FW based on the following equation. N = GAVERTIME SPRD Equation 7-2 GAVERTIME specifies averaging time in milliseconds. SPRD specifies servo loop sampling period in milliseconds TEMPERATURE DRIFT COMPENSATION Gyroscope temperature drift compensation is done by polynomial approximation. The temperature (T) is measured by MPU A 2 nd order polynomial function matches the approximation error criteria. Equation 7-3 shows the drift approximation model for a single axis. The drift of each axis is calculated with this equation. = b 2 T 2 + b 1 T + b 0 Equation 7-3 XCD , Revision B 120

124 Gyro Drift coefficients are available using the Gyro Module Interface, page 129. There are nine XMS Gyro variables, 3 coefficients for each of the axes (refer to Table 11, page 129). In the variable structure (ex: GTDFTxCi) x can be X, Y and Z and i can be 0, 1 and 2. Figure 7-8 shows experiment measurements of the gyroscope behavior over the temperature range and its approximation curve. Figure 7-8: Gyro temperature drift approximation MECHANICAL INSTALLATION To be independent of the gyroscope s mechanical installation an orientation matrix is used. The stage axes are transformed into 3 XCD2 axes. Refer to XCD , Revision B 121

125 Gyro Figure 7-9 and Equation 7-5 while A orientation is a 3x3 matrix, refer to Equation 7-4. Figure 7-9: MCU Installation at XCD2 A orientation = a xx a xy a xz a yx a yy a yz a zx a zy a zz Equation 7-4 raw = A orientation mpu6000 Equation 7-5 The orientation matrix can be accessed by variables GORxx, refer to Table 11, page 129. XCD2 gyroscope axes, x y, and z are fixed Equation 7-6 XCD , Revision B 122

126 Gyro GYRO MODULE The transformation from 3 axes gyroscope to 2 axes is done by equation Equation 7-7, while x y, and z are calculated by Equation 7-8. axis0 = x axis1 = y cos axis0 + z sin axis0 Equation 7-7 = raw aver drift Equation 7-8 Velocity feedback switching between encoder derivative and gyroscope is performed with the OPMODE variable, refer to paragraph for a description of OPMODE behavior and Table 10, page 129. Servo presets are an additional feature that provides a flexible option to support different servo tuning parameters OPERATION MODES XCD2 has an embedded function that switches feedback types and provides a load/store operation for servo presets. The operation mode is controlled by the variable OPMODE, page 127. Figure 7-10: Gyro Modes in Stabilization XCD , Revision B 123

127 Gyro Table 8: Operation Mode Description OPMODE Value Mode Name 0 Encoder 1 Gyro Mode Description This is the standard motion mode. An encoder is used to provide position and velocity feedback. When OPMODE is assign 0: Both axes are disabled Axis 0 servo loop parameters are stored to preset number (OPMODE*2) Axis 1 servo loop parameters are stored to preset number (OPMODE*2+1) Encoder is used as position feedback PRPFT is equal to 0 Encoder derivative is used as velocity feedback PRVFT is equal to 0 Preset 0 is loaded to servo loop for axis 0 Preset 1 is loaded to servo loop for axis 1 The gyroscope used for velocity feedback (refer to Figure 7-11). The encoder is used for position feedback, but position error gain K P is set to zero. When OPMODE is assign to 1, then: Both axes are disabled Axis 0 servo loop parameters are stored to preset number (OPMODE*2) Axis 1 servo loop parameters are stored to preset number (OPMODE*2+1) Encoder is used as position feedback PRPFT is equal to 0 Gyroscope is used as velocity feedback PRVFT is equal to 1 Preset 2 is loaded to servo loop for axis 0 Preset 3 is loaded to servo loop for axis 1 XCD , Revision B 124

128 Gyro Table 8: Operation Mode Description OPMODE Value 2 Mode Name Encoder Gyro Mode Description In Encoder/Gyro mode the body where XCD2 is mounted (refer to Figure 7-12) is the reference. The encoder is used for position feedback and the gyroscope for velocity feedback. High frequency noise is suppressed, but XCD2 will follow the main body movements. When OPMODE assign to 2 Both axes disabled Axis 0 servo loop parameters are stored to preset number (OPMODE*2) Axis 1 servo loop parameters are stored to preset number (OPMODE*2+1) Encoder is used as position feedback PRPFT is equal to 0. Gyroscope is used as velocity feedback. PRVFT is equal to 1 Preset 4 is loaded to servo loop for axis 0 Preset 5 is loaded to servo loop for axis 1 To ensure stabilization working properly, set OPMODE to 1 or 2, and disable the dead-zone mechanism by setting DZMIN to a negative value. Figure 7-11: Line of sight stabilization XCD , Revision B 125

129 Gyro Figure 7-12: Body stabilization XMS VARIABLES FOR GYROSCOPE XMS variables can be used either in an XMS program or in Host communication. When used in the XMS program, variables are referenced by name. All variable names are predefined. the user cannot create variable names. In Host communication, the commands ASSIGN, REPORT, and MONITOR refer to the variable by a 16-bit ID. Table 10 summarizes the XMS variables. For each variable, the table specifies next parameters: ID for use in report/assign variable command Name for use in XMS program Variable tags: FL Variable is saved to flash memory at SAVE PARAMETERS command and loaded at power up RO read only variable In the following table the name of many variables has an x syntax (ex. PRxKP). The x refers to preset number that can vary from 0 to 7. I First ID is x=0 second ID is x=1 last ID is x=7 XCD , Revision B 126

130 Gyro Table 9: Servo Preset XMS variables ID Name Tag Comments 1025 PRPFT RO Position feedback type: 0 encoder 1 - gyroscope 1026 PRVFT RO Velocity feedback type: 0 encoder 1 - gyroscope 1251 OPMODE FL Operation mode control. 1027, 1055, 1083, 1111, 1139, 1167, 1195, 1223 PRxKP FL Position loop gain 1028, 1056, 1084, 1112, 1140, 1168, 1196, 1224 PRxPKI FL Position loop integrator gain 1029, 1057, 1085, 1113, 1141, 1169, 1197, 1225 PRxPLI FL Position loop integrator limit 1030, 1058, 1086, 1114, 1142, 1170, 1198, 1226 PRxKV FL Velocity loop gain 1031, 1059, 1087, 1115, 1143, 1171, 1199, 1227 PRxKI FL Velocity loop integrator gain 1032, 1060, 1088, 1116, 1144, 1172, 1200, 1228 PRxLI FL Velocity loop integrator limit 1033, 1061, 1089, 1117, 1145, 1173, 1201, 1229 PRxFNP FL Friction in positive direction 1034, 1062, 1090, 1118, 1146, 1174, 1202, 1230 PRxFRN FL Friction in negative direction 1035, 1063, 1091, 1119, 1147, 1175, 1203, 1231 PRxENR FL Encoder resolution 1036, 1064, 1092, 1120, 1148, 1176, 1204, 1232 PRxDZMIN FL Dead zone minimum 1037, 1065, 1093, 1121, 1149, 1177, 1205, 1233 PRxDZMAX FL Dead zone maximum 1038, 1066, 1094, 1122, 1150, 1178, 1206, 1234 PRxBQ1A1 FL 1039, 1067, 1095, 1123, 1151, 1179, 1207, , 1068, 1096, 1124, 1152, 1180, 1208, , 1069, 1097, 1125, 1153, 1181, 1209, , 1070, 1098, 1126, 1154, 1182, 1210, 1238 PRxBQ1A2 PRxBQ1B0 PRxBQ1B1 PRxBQ1B2 FL FL FL FL First BiQuad filter parameters XCD , Revision B 127

131 Gyro Table 9: Servo Preset XMS variables ID Name Tag Comments 1043, 1071, 1099, 1127, 1155, 1183, 1211, , 1072, 1100, 1128, 1156, 1184, 1212, , 1073, 1101, 1129, 1157, 1185, 1213, , 1074, 1102, 1130, 1158, 1186, 1214, , 1075, 1103, 1131, 1159, 1187, 1215, , 1076, 1104, 1132, 1160, 1188, 1216, , 1077, 1105, 1133, 1161, 1189, 1217, , 1078, 1106, 1134, 1162, 1190, 1218, , 1079, 1107, 1135, 1163, 1191, 1219, , 1080, 1108, 1136, 1164, 1192, 1220, , 1081, 1109, 1137, 1165, 1193, 1221, , 1082, 1110, 1138, 1166, 1194, 1222, 1250 PRxBQ2A1 PRxBQ2A2 PRxBQ2B0 PRxBQ2B1 PRxBQ2B2 FL FL FL FL FL Second BiQuad filter parameters PRxDCG FL Damping gain PRxDCFA1 PRxDCFA2 PRxDCFB0 PRxDCFB1 PRxDCFB2 PRxCFG FL FL FL FL FL FL Damping BiQuad filter parameters Servo configuration. Refer to 900, page CONFIGURABLE GYRO PSEUDOVARIABLES Configurable pseudovariables can be used either in the XMS program or in Host communication. When used in the XMS program, variables are referenced by ID number. The access to pseudovariable is done by: config command at XMS to write pseudovariable. getvar command at XMS to read pseudovariable. configure command at communication level to write pseudovariable. Refer to Assign, page 62 and Report, page 61. The following table summarizes the servo preset pseudovariables. For each variable, the table specifies next parameters: XCD , Revision B 128

132 Gyro ID for use in report/assign variable command Variable tags: WO write only variable Table 10: Servo preset pseudovariables ID Tag Parameters Format Comments 768 WO Axis Preset index Real (4) Real (4) Load preset parameters to servo loop. 769 WO Axis Preset index Real (4) Real (4) Store servo parameters to servo preset GYRO MODULE INTERFACE This paragraph explains how to interface with the gyroscope module XMS GYRO VARIABLES XMS variables can be used either in the XMS program or in Host communication. When used in the XMS program, variables are referenced by name. All variable names are predefined; i.e. the user can use only these predefined variable names. In Host communication, the Commands Assign, Report, and Monitor refer to the variable by 16-bit ID; see XCD2 User Manual for command description. The following table summarizes the XMS variables. For each variable, the table specifies next parameters: ID for use in report/assign variable command Name for use in XMS program Variable tags: AX Axis variable RO read only variable. WO write only variable. ST SET function is used for variable assignment. Table 11: Gyroscope XMS variables ID Name Tag Comments 4352 GTMP RO MCU temperature in C 4353 GRAWX RO Angular velocity at axis X after orientation matrix transformation. Refer to Equation 7-5 XCD , Revision B 129

133 Gyro Table 11: Gyroscope XMS variables ID Name Tag Comments 4354 GRAWY RO 4355 GRAWZ RO 4356 GTDFTX RO 4357 GTDFTY RO 4358 GTDFTZ RO Angular velocity at axis Y after orientation matrix transformation. Refer to Equation 7-5 Angular velocity at axis Z after orientation matrix transformation. Refer to Equation 7-5 Drift compensation value at axis X. Refer to Equation 7-8 Drift compensation value at axis Y. Refer to Equation 7-8 Drift compensation value at axis Z. Refer to Equation GAVERX RO 4360 GAVERY RO 4361 GAVERZ RO 4362 GVELX RO 4363 GVELY RO 4364 GVELZ RO Calculated average bias value at axis X. Refer to Equation 7-8S Calculated average bias value at axis Y. Refer to Equation 7-8 Calculated average bias value at axis Z. Refer to Equation 7-8 Angular velocity at axis X after drift compensation and average subtraction. Refer to Equation 7-8 Angular velocity at axis Y after drift compensation and average subtraction. Refer to Equation 7-8 Angular velocity at axis Z after drift compensation and average subtraction. Refer to Equation GVEL AX,RO Angular velocity. Refer to Equation GPOS AX,ST Angle calculated by gyroscope 4367 GTDFTEN FL 4368 GTDFTXC0 FL 4369 GTDFTXC1 FL Enable drift compensation. This variable can get values 0 or 1. b_(x,0) coefficient of drift estimation of axis X. Refer to Equation 7-3 b_(x,1) coefficient of drift estimation of axis X. Refer to Equation 7-3 XCD , Revision B 130

134 Special Functions 4370 GTDFTXC2 FL 4371 GTDFTYC0 FL 4372 GTDFTYC1 FL b_(x,2) coefficient of drift estimation of axis X. Refer to Equation 7-3 b_(y,0) coefficient of drift estimation of axis Y. Refer to Equation 7-3 b_(y,1) coefficient of drift estimation of axis Y. Refer to Equation GTDFTYC2 FL b_(y,2) coefficient of drift estimation of axis Y. Refer to Equation GTDFTZC0 FL b_(z,0) coefficient of drift estimation of axis Z GTDFTZC1 FL b_(z,1) coefficient of drift estimation of axis Z GTDFTZC2 FL b_(z,2) coefficient of drift estimation of axis Z GAVEREN FL Enable average bias subtraction. This variable can get values 0 or GAVERTIME FL Averaging time in milliseconds GORXX FL 4380 GORXY FL 4381 GORXZ FL 4382 GORYX FL 4383 GORYY FL 4384 GORYZ FL 4385 GORZX FL 4386 GORZY FL 4387 GORZZ FL Table 11: Gyroscope XMS variables ID Name Tag Comments Coefficients of orientation matrix. Refer to Equation 7.6 SPECIAL FUNCTIONS This section contains XMS special functions and examples of XMS operations POSITION LATCH AND ENCODER INDEX The XCD2 encoder s HW interface provides special input for position latch. This input should be connected to encoder index output, sometime called reference mark by some manufactures. The function is used internally in Homing (Figure 7.6.2) based on encoder index. Positive pulse on the input causes immediate latching of the current encoder position in variable POSI. XCD , Revision B 131

135 Special Functions The related delay is at nanosecond level and provides one-encoder-count resolution of the latched position. Figure 7-13: Home and Position Latch Position latch function operates with two XMS variables: POSI - real variable S_IND - flag S_IND flag equal zero after XCD2 start up. Positive pulse on the latch input toggles S_IND to become one and current encoder position is latched by variable POSI. The value one in S_IND indicates that the latch input was activated and the value of POSI is valid. To repeat a position latch function, reset S_IND to zero (set S_IND = 0). As long as S_IND=1, the next activation of the latch input will not be acted on HOMING XCD2 supports two different feedback types: incremental encoder with quadrature pulses and absolute encoder with BiSS interface. Incremental encoders provide a specific number of equally spaced pulses per revolution for rotary motion or millimeter for linear motion. After XCD2 power up cycle the number of counted pulses is zero for incremental encoder or to some absolute position for absolute encoder. This circumstance forces a scale calibration, that XCD , Revision B 132

136 Special Functions defines the position of physical zero in real world coordinates. Homing procedure solves this problem. Systems that are using incremental encoders need to run the homing procedure on every power up cycle. Absolute encoders need to perform homing procedure only one time. After physical zero definition is done, position offset is saved as POSOFFS variable. On every power up cycle POSOFFS is loaded from FLASH memory. XCD2 has two methods to preform homing procedure, by hard-stop or by encoder Index signal. Each one of those methods can be initiated with a negative or positive movement. Table 12: Homing Methods Method Description ID 0 Set origin at hard-stop initiate with negative direction 1 Set origin at hard-stop initiate with positive direction 2 Set origin at Index initiate with negative direction 3 Set origin at Index initiate with positive direction HARD STOP METHOD The controller will generate motion at the given optional parameter Velocity1 (by default it is set to VEL) with a negative direction if Method is set to 0 or 2, or positive if the method is set to 1 or 3. When hard stop is reached the given optional parameter Origin will be set as the current FPOS. The Origin is set to 0.0 by default. BKM Set origins at a distance from the hard stop to avoid mechanical contact. For example, set the origin to 0.1mm. This will allow movement to 0 and still remain 0.1mm from the hardstop INDEX METHOD The Index method builds upon the hard-stop method. When the hard stop is reached it switches to 2nd Index-looking phase. XCD , Revision B 133

137 Special Functions Figure 7-14: Homing procedure by Index flow diagram After hard stop is reached, it will commence movement at the given optional parameter Velocity2 (by default it is set to Velocity1) with a negative direction if Method is set to 3, or positive if the method is set to 2. When index is found (S_IND = 1) the index position will receive the given optional parameter Origin (by default it is set to 0.0) TIME VARIABLE The Controller provides high resolution time service through the variable TIME (page 72). This variable provides time in milliseconds elapsed since the Controller start-up, or since the last executed command SET TIME=0. The resolution of time counting is depends on a servo rate. Therefore the variable may read fractional values, such as Time counting has the limitations that are listed below. After about 12 minutes of uninterrupted counting the resolution of TIME begins to gradually deteriorate. After about two days of uninterrupted counting TIME variable rolls down to zero and starts new counting cycle. Command SET TIME=0 resets the Time value to zero and restarts counting. To use full resolution, the command should be executed in the application periodically, so that using of TIME occurs not later than 12 minutes past the last SET TIME=0. XCD , Revision B 134

138 Special Functions SAFE TIME MEASURING The following script example shows at how to safely use TIME variable for measuring motion time. The XMS program repeats motion 100 times, measures full motion time (up to the motor physically enters DZMIN interval) and stores minimum motion time in V3 and maximum motion time in V4. XMS example of Measuring Motion Time V3=10000 // Initialize V3 with big value. V4=0 // Initialize V4 with small value. for V19=0 to 99 // Repeat 100 times. move 5 // Move to initial point. while S_BUSY // Wait for physical motion end. end set TIME=0 move 15 // Reset TIME. // Move while S_BUSY // Wait for physical motion end. end V0=TIME if V0<V3 end V3=V0 if V0>V4 end V4=V0 // Latch elapsed TIME. // Update maximum TIME. end //End of "for V19=0 to 99" XCD , Revision B 135

139 8 XCD2 COMMANDER The XCD2 Commander is an application that resides on an external Host computer. XCD2 Commander gives the user the ability to: Configure and tune the XCD2 Controller Motion system Edit and save XMS scripts Evaluate and troubleshoot motion control program operation Edit program parameters Save the final motion control program on the XCD2 Controller Save the final program to file on the Host and save from the Host to other Controllers 8.1 OVERVIEW OF XCD2 COMMANDER The XCD2 Commander is a user interface that provides access to all operations involved in developing, testing, and using XMS scripts, as well as monitoring Controller and motor states. The interface provides the following: Communication between XCD2 Commander and the XCD2 Controller. the protocol is based on a Host/Client relationship. XCD2 Commander resides on the Host (remote computer) and the XCD2 Controller is the Client. Communication is performed on any one of the defined channels (refer to Host Communication Protocol, page 26). XCD2 Motion Program - The XCD2 Motion Program (XMS script) is a scripting language that gives the user the ability to customize and control Nanomotion motors. XMS uses both standard commands and variables to control motor position, stops, speed and loading. User interface - Provides a number of actions: downloading and executing a motion program from the Host to the Controller. access the Controller's flash memory to tune the servo loop parameters editing of motion control programs written in XMS Saving programs from the Controller's flash memory to the Host for reuse on other Controllers. XCD , Revision B 136

140 Work Flow with XCD2 Commander 8.2 WORK FLOW WITH XCD2 COMMANDER The XCD2 Commander is typically used to tune the motion control system. The Commander is supplied with example XMS scripts that can serve as a starting point for program development. If a script is developed from scratch it must be saved with the extension (<filename>.xms). After development open the file in the XCD2 Commander to verify the script. The file is opened with the parts of the script color coded. The next step is to check the operation of the script on the system by clicking Download and Execute. This downloads the script to the Controller's RAM and simulates a power on to start the program. Figure 8-1: Basic Work Flow If discrepancies are found in motor operation or there is a need to fine tune parts of the program specific commands can be applied and their response monitored. The parameters that require modification can be edited and the program rerun. All modifications of the program are implemented in the Controller's RAM. These changes are not saved unless they are saved to the Controller's Flash memory. After development and testing are complete the final program is saved to the Controller's Flash. From here the program can be moved to a file (<filename>.s19) on the Host computer. This file can be copied to other Controllers. 8.3 OVERVIEW OF THE XCD2 COMMANDER PANELS The XCD2 Commander has three main panels: XCD , Revision B 137

141 Overview of the XCD2 Commander Panels Communication - provides connection between the Commander and the XCD2 device. Port Address Info Motion Program - provides access to XMS scripts BROWSE for scripts EDIT opens an edit window for viewing and editing XMS scripts DOWNLOAD & EXECUTE The selected script Setup - CONFIGURE SERVO LOOP TUNE SERVO LOOP MANAGE FLASH DATA MANAGE OTP The bottom section provides three additional tools SCOPE WATCH XCD2 CONTROL ENABLE LAUNCHING XCD2 COMMANDER The XCD2 Commander does not require installation. The application s executable and its DLLs should reside in the same local folder. Windows XP users should install Microsoft.Net framework from 1. Double-click XCD2_Commander.exe. The XCD2 Commander main window opens. The Port and Address fields, and the Info pane are empty until selections are made. XCD , Revision B 138

142 Overview of the XCD2 Commander Panels Figure 8-2: XCD2 Commander Main Window 2. Select the port that the Controller/Driver is connected to. The port can be UART(VCP), SPI or IIC. The Port appears as green, black, or orange: Green XCD2 device detected Black Available port (XCD2 device not connected) Orange Unable to open port (in use) 3. Select the Address of the Controller/Driver. 4. Click OPEN/CLOSE PORT. The Info pane is filled with information from the connected XCD2 device XCD2 CONFIGURATION AND TUNING System setup comprises of four stages: Configuration of the servo controller Tuning of the servo loop XCD , Revision B 139

143 Overview of the XCD2 Commander Panels Verification using an XMS Saving parameters and XMS to the flash CONFIGURATION OF THE SERVO CONTROLLER This stage goal is to determine that all of the polarities are correct and that the encoder is configured correctly. Encoder resolution - ENR Make sure that the value entered represents the system Unit. The maximum encoder frequency is 21M counts Motion platform should follow next inequality: FVEL ENR where FVEL is feedback velocity of the motion platform and ENR is encoder resolution. Safety polarities If there are GPIO pins allocated as safety and switches are connected to them select the correct polarity, otherwise select Disable. Ensure that the Status indicators at the bottom of the window are all green. If not reset the related logic selections in the drop-down menus in the top portion of the window. For example, if the Positive Limit indicator is red select Active High in the Positive Limit Switch drop-down. Drive and Feedback polarities In the Open Loop Command pane move the slider slowly right (positive PWM signal). When the motor begins to move, stop and record the value shown in the Open Loop Command field. If the motor movement is in the opposite direction (as shown by a negative number in the Current Position field), select or deselect Inverse Drive Output and recheck motor action. The slide displacement is proportional to the PWM duty cycle. In the Info pane, check that the Controller is in Normal mode. In this mode the motor shows a sensible Dead Zone and normally starts moving at 15-30% of PWM duty cycle. If the motor hasn't moved at 50% of PWM, do not continue. The motor apparently has a problem that must be corrected. XCD , Revision B 140

144 Tuning of the XCD2 System Servo Loop 8.4 TUNING OF THE XCD2 SYSTEM SERVO LOOP After installing XCD2 Commander it is necessary to tune the connected servo loop. This operation sets the drive and feedback loop gain to ensure smooth motor operation. This procedure provides tuning instructions for a linear stage. Procedures for tuning a rotary stage will be added in a later revision of this document. BKM Normal mode is recommended for most applications. Linear mode may be useful for some applications with extreme requirements. However, Linear mode increases power consumption and motor wear SETUP & BASIC PARAMETERS 1. Click CONFIGURE SERVO LOOP. Figure 8-3: Configure Servo Loop Window XCD , Revision B 141

145 Tuning of the XCD2 System Servo Loop Slowly move the PWM in the positive direction, record the values of PWM level in which the stage started to move and the value shown in the Current Position where the motor stops. 2. Move the slider slowly to the negative PWM direction and record the same values as the previous step. 3. Click TUNE SERVO LOOP button in the Commander main window. 4. In the lower pane of the Tune Servo Loop window, enter values for Position 1 and Position 2 obtained in steps 2 and 3. The values should be at least 1 mm off the hard stops noted in the above steps. 5. In BACK-FORCE WITH DELAY enter 500 milliseconds. 6. Click POSITION 1 and ensure that the motor moves to that position. 7. Click POSITION 2 and ensure that the motor moves to that position. 8. If movement in both directions is ok, click Back-Force with Delay. The motor will begin moving between Position 1 and Position 2. Any of the following indicate a need to tune the servo loop: Noisy motion unstable movement intolerable overshoot position error other undesirable motor action 9. While the motor is moving increase KV until an audible sound appears. Each increase should be twice the previous increment. The noise will typically be heard at the extremes of the stage movement. KV i = 2 i KV Return the KV value to the last value before the noise began. 11. Raise the KV value very gradually with small increments. KV j 2 i 1 2 i = KV 0 + j Divide the value where the noise starts again by 2 and enter as KV. The stage runs smoothly with no audible noise. KV final = i 1 KV 0 + j while i and j are the number of iterations from Step 9 and 11 respectively. 2 i XCD , Revision B 142

146 Tuning of the XCD2 System Servo Loop 13. Reset K p to 200. If the stage physically oscillates (low frequency movement), reduce K p to Stop the motor movement. 15. In order to save the tuning settings select Manage Flash Data in the Commander's main window and click RAM>FLASH. Refer to Managing Flash Data, page ADDITIONAL PARAMETERS 1. Select the Others tab. 2. Set the parameters as follows: Press ENTER after entering data in fields. ENR (Encoder Resolution) - units appropriate for For example: Linear applications - If the encoder resolution is listed as 1000 counts per mm, enter in the ENR field. Rotary applications - If the encoder resolution is listed as 4096 counts per revolution, enter 360/4096= (degrees per count) in the ENR field. Display of position-related variables in the XCD2 Commander is formatted according to the ENR value. DZMIN = Normal mode=2*enr (0.02 micron) DZMAX = 10*ENR (0.1 micron) If the required Drive Mode is Linear (AB5), set: DZMIN to 0 DZMAX to 1*ENR FRP and FRN to zero ZFF = (30-50 micron) FRP = 60% of value recorded in Setup & Basic parameters, page 141 step 2 (default value is 10) FRN = 60% of value recorded in Setup & Basic parameters, page 141 step 3 (default value is -10) SLN = 0 (disables negative software limit) SLP = 0 (disables positive software limit) PEL = 0 - (disables critical position error) XCD , Revision B 143

147 Tuning of the XCD2 System Servo Loop TEL = 0 - (disables Temperature Error Limit) MTL = (Sets Motion Time Limit to 20 sec). A value of 0 disables the Motion Time Limit parameter. The tuning values entered in step 3 below are for the purpose of tuning the stage only. After tuning is completed the user should adjust these values according the application's requirements. 3. Select the Basic Parameters tab and set the following parameters: K P = 20 K V = 0.1 K I = 300 L I = Select the Biquad 1 tab and set the following parameters: Enabled = select Type = Low Pass Bandwidth (Hz) = 700 Damping Ratio = In the lower section of the window select the Motion Parameter tab and set the parameters: VEL to 50 (mm/sec) ACC to 1000 (mm/sec 2 ) TUNE SERVO LOOP 1. Click Tune Servo Loop XCD , Revision B 144

148 Tuning of the XCD2 System Servo Loop Figure 8-4: Tune Servo Loop Window SCOPE 1. Click Scope. 2. In the upper left corner, in the communication panel, choose the appropriate port com (available port should be in green) 3. Change the required servo rate if needed 4. Choose your variables to be monitored. check the "high resolution" checkbox to sample in 32-bit floating point instead of 16-bit. 5. Configure trigger if needed 6. Click on browse and give (new) file name. 7. Click Configure scope 8. Click Enable stream XCD , Revision B 145

149 Tuning of the XCD2 System Servo Loop 9. Click Start/Stop streaming as needed. 10. Note: for changing the configuration (rate, variables, etc.) need to stop streaming, disable streaming, and back to step 3. Do the following to convert the sample data to CSV 1. Click 'convert to CSV' 2. Choose the XSD file to convert, then click export Figure 8-5: Scope Configuration Window XCD , Revision B 146

150 Tuning of the XCD2 System Servo Loop Figure 8-6: Convert Data to CSV Format WATCH The Watch window provides two functions: sending two variables to be monitored by the DACs (refer to section XX and 'monitor' command in comm protocol) watching up to 4 variables values in "soft real-time" Note, updating the value of watched variable depends on communication speed and other servo tasks. There is no guarantee that the value will be update in real-time, so it can be delayed. In the other hand, the updating frequencies can also be too much fast that an human eye can pay attention XCD , Revision B 147

151 Working with XMS Scripts Figure 8-7: 8.5 WORKING WITH XMS SCRIPTS The user can develop a motion control program from scratch, or run a Nanomotion sample script that provides a starting point for program development. The sample scripts are in the evaluation kit software package folder titled Scripts. The folder contains two XMS scripts. <productname>_demo_kit_cond.xms - sets general defaults <productname>_demo_kit_steps.xms - sets defaults for step operation EDITING A SCRIPT The edit function can be used for editing existing XMS scripts. By using one of the supplied sample scripts the user can experiment with the system, develop a unique script. 1. In the Motion Program pane click BROWSE. 2. Browse to the folder containing XMS scripts and select a script and click OPEN. 3. The path to the script appears in the Motion Program field. XCD , Revision B 148

152 Working with XMS Scripts 4. Click EDIT. 5. The Script edit panel opens. Commands and parameters are color coded. Figure 8-8: XMS edit window 6. Click VERIFY to check script syntax. If there are errors in the script syntax, an error message appears and the line with the error is highlighted. 7. Edit the script as required. The editor verifies the script syntax. An error message is displayed with the line number of the error and marks the error in the script. If no error is found no message is displayed. 8. To test the script click DOWNLOAD & EXECUTE button to execute the script. The script is loaded to the Controller's RAM and a power on condition is simulated to start the motor. The button name changes to STOP. The Line field indicates the currently running script line. 9. To save the program select Program > Save or Save As EXECUTING AN XMS SCRIPT To execute an XMS script follow next steps: 1. Close any open XMS editing window. 2. In the Motion Program pane click BROWSE. 3. Browse to the folder containing XMS scripts and select a script. 4. The selected script's full path is displayed in the Motion Program field. XCD , Revision B 149

153 Managing Flash Data 5. Click DOWNLOAD & EXECUTE. 6. To stop the script click STOP. The Stop & Disable button stops the script execution and disables the motor. 8.6 MANAGING FLASH DATA The XMS program and parameters reside in the Controller s RAM. Changes that were made during editing will be lost on power down. They must be saved either to the Controller s Flash memory, an XMS file or as an S19 file. the S19 file can be loaded directly to the memory of multiple controllers. After executing the program, the program's parameters are displayed in the Configure Servo Loop and Tune Servo Loop dialogs. These parameters can be edited to improve and fine tune the motor's operation. After editing these parameters the program can be rerun to test the changes. Editing of the program cannot be done while the motor is operating. Parameter edits are copied to the Controller's RAM and affect the motor's current operation. 1. In the Commander's Setup pane click MANAGE FLASH DATA. The dialog has three tabs that display the contents of the Flash memory. Each tab displays the contents of both the Controller's Flash and RAM. Configuration Flash Variables Program - shows Program size and checksum in the Flash drive and RAM The Encoder Compensation tab provides the ability to import or export an encoder compensation value. 2. Save and upload data as follows: RAM > FLASH saves the Controller's RAM to its Flash memory. The process overwrites the contents of the Flash memory. XCD , Revision B 150

154 Error Messages Figure 8-9: Manage Flash Data dialog - Configuration tab Figure 8-10: Manage Flash Data dialog - Variable tab (two axes) 8.7 ERROR MESSAGES When the Controller driver detects an error, the following actions take place: XCD , Revision B 151

155 Error Messages An error code appears on the screen. Refer to Error Codes, page 85 The currently running XMS program is aborted, and motor action is stopped XCD , Revision B 152

156 9 FIRMWARE UPGRADE This section discusses the procedure for upgrading XCD2 FW upgrade, in order to bring the XCD2 up to date or to improve its characteristics. XCD2 FW can be upgraded through any of active communication channel (Communication Channels, page 26). The process can be done through XCD2 Commander, or by HOST processor when XCD2 is part of in the embedded system. XCD2 has a bootloader that is responsible for rewriting the main XCD2 application firmware. A number of security checks are responsible for ensuring the integrity of the upgrade process. In case of process failure XCD2 will remain in the boot stage till correct XCD2 firmware is written. The FW can be rolled back after upgrade. Nanomotion does not guarantee backward compatibility of all functions. The customer is responsible for ensuring that all relevant functions still work after upgrade. 9.1 FILE STRUCTURE XCD2 uses encrypted files for upgrade process. The file is divided into a sequence of data blocks as shown below. Sequential blocks are marked with different colors to make it easier to understand. Each block has a header that contains: Block name 2 bytes Block size in bytes including itself and block name 1 byte Block payload N bytes. Block size can vary XCD , Revision B 153

157 Upgrade through XCD2 Commander Figure 9-1: NMUF File Structure Example Table 1: NMUF File Block Types Block name 0x5310 0x5300-0x5311 Description Initiation block with structure: B[0-3] file size in bytes in little-endian format. In Figure 9-1 the file size is bytes. B[4-7] total block number in file in little-endian format. In Figure 9-1 there are 3494 blocks in the file. Next bytes are for internal usage. All those blocks are for internal usage. 9.2 UPGRADE THROUGH XCD2 COMMANDER XCD2 upgrade procedure through XCD2 Commander is: 1. Run XCD2_Commander.exe. XCD , Revision B 154

158 Upgrade through XCD2 Commander Figure 9-2: XCD2 Commander Main Window In the Communication pane selection the Port and Address. Click OPEN PORT. The XCD2 controller information is displaced in the Info field. Ensure that all motors are turned off. Ensure that there are no XMS scripts running. click XCD2 CONTROL. Choose SW UPGRADE tab. XCD , Revision B 155

159 Upgrade through Host computer Figure 9-3: XCD2 Utilities Window Click LOAD FILE button and choose the valid *.nmuf file for the upgrade. Click START UPGRADE. Follow the instructions that shown in pop-on windows. Wait until the upgrade process completes. The process Status is shown in the progress bar. Click INFO and verify that the new firmware version is appears in the fields. 9.3 UPGRADE THROUGH HOST COMPUTER XCD2 supports FM upgrade through customer HOST platform. To perform XCD2 firmware upgrade customer HOST platform need to integrate the whole upgrade procedure. For proper XCD2 firmware upgrade procedure next assumptions should be taken into account: Communication is working without errors. XCD2 Status is: XMS is not running. All motion operation should be stopped. HOST platform should know how to divide the binary file into upgrade blocks (File structure, page 153). Due to a nature of different memory operations that are done during the XCD2 firmware upgrade process; the timing for receiving acknowledgment could be variate. HOST platform should poll the XCD , Revision B 156

160 Upgrade through Host computer current operation Status and only when current operation is done send the next packet/block. To prevent uncontrolled operation it is necessary that: XMS is not running. All motion operation should be stopped Refer to File structure, page 153. XCD2 firmware upgrade procedure through HOST platform is: 1. Send CALL BOOTLOADER command and wait for acknowledgment. Set packet index to zero. Send (i) th packet. Send (i+1) th packet. If acknowledgment received go step 5 If Operation in progress received, repeat step 4. Increment packet index (i). Packet index is greater than total packets number (Table 1, page 154), go to step, otherwise go to step 4. Call main application. If acknowledgment received that main XCD2 FW will be loaded after start up time. In case of non-acknowledgment start whole procedure again. XCD , Revision B 157

161 Upgrade through Host computer Figure 9-4: XCD2 firmware upgrade flow by HOST XCD , Revision B 158

WMX2 Parameter Manual

WMX2 Parameter Manual WMX2 Parameter Manual Revision 2.0030 2016 Soft Servo Systems, Inc. Warning / Important Notice Warning The product described herein has the potential through misuse, inattention, or lack of understanding

More information

Copley ASCII Interface Programmer s Guide

Copley ASCII Interface Programmer s Guide Copley ASCII Interface Programmer s Guide PN/95-00404-000 Revision 4 June 2008 Copley ASCII Interface Programmer s Guide TABLE OF CONTENTS About This Manual... 5 Overview and Scope... 5 Related Documentation...

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

ASCII Programmer s Guide

ASCII Programmer s Guide ASCII Programmer s Guide PN/ 16-01196 Revision 01 April 2015 TABLE OF CONTENTS About This Manual... 3 1: Introduction... 6 1.1: The Copley ASCII Interface... 7 1.2: Communication Protocol... 7 2: Command

More information

CCE Image may differ from the actual product By Martin Labbé, eng., Jasmin Goupil & Louis Perreault

CCE Image may differ from the actual product By Martin Labbé, eng., Jasmin Goupil & Louis Perreault CCE-32 1.09 Image may differ from the actual product By Martin Labbé, eng., Jasmin Goupil & Louis Perreault Index 1. General description... 5 2. Applications... 5 3. Installation... 5 4. Connections...

More information

BlinkRC User Manual. 21 December Hardware Version 1.1. Manual Version 2.0. Copyright 2010, Blink Gear LLC. All rights reserved.

BlinkRC User Manual. 21 December Hardware Version 1.1. Manual Version 2.0. Copyright 2010, Blink Gear LLC. All rights reserved. BlinkRC 802.11b/g WiFi Servo Controller with Analog Feedback BlinkRC User Manual 21 December 2010 Hardware Version 1.1 Manual Version 2.0 Copyright 2010, Blink Gear LLC. All rights reserved. http://blinkgear.com

More information

AB2 Driver User Manual

AB2 Driver User Manual AB2 Driver User Manual D/N: AB02458000-00 REV: C August 29, 2012 Nanomotion Ltd. POB 623, Yokneam 20692, Israel Tel: 972-73-2498000 Fax: 972-73-2498099 Web Site: www.nanomotion.com E-mail: nano@nanomotion.com

More information

Mercury technical manual

Mercury technical manual v.1 Mercury technical manual September 2017 1 Mercury technical manual v.1 Mercury technical manual 1. Introduction 2. Connection details 2.1 Pin assignments 2.2 Connecting multiple units 2.3 Mercury Link

More information

GM8036 Laser Sweep Optical Spectrum Analyzer. Programming Guide

GM8036 Laser Sweep Optical Spectrum Analyzer. Programming Guide GM8036 Laser Sweep Optical Spectrum Analyzer Programming Guide Notices This document contains UC INSTRUMENTS CORP. proprietary information that is protected by copyright. All rights are reserved. This

More information

Servo Tuning Tutorial

Servo Tuning Tutorial Servo Tuning Tutorial 1 Presentation Outline Introduction Servo system defined Why does a servo system need to be tuned Trajectory generator and velocity profiles The PID Filter Proportional gain Derivative

More information

CANopen Programmer s Manual Part Number Version 1.0 October All rights reserved

CANopen Programmer s Manual Part Number Version 1.0 October All rights reserved Part Number 95-00271-000 Version 1.0 October 2002 2002 All rights reserved Table Of Contents TABLE OF CONTENTS About This Manual... iii Overview and Scope... iii Related Documentation... iii Document Validity

More information

SRVODRV REV7 INSTALLATION NOTES

SRVODRV REV7 INSTALLATION NOTES SRVODRV-8020 -REV7 INSTALLATION NOTES Thank you for purchasing the SRVODRV -8020 drive. The SRVODRV -8020 DC servo drive is warranted to be free of manufacturing defects for 1 year from the date of purchase.

More information

Nanomotion Tech Note 105 Using AC and DC Modes with Nanomotion AB2 Driver in Closed-Loop for Nanometer Level Positioning

Nanomotion Tech Note 105 Using AC and DC Modes with Nanomotion AB2 Driver in Closed-Loop for Nanometer Level Positioning Nanomotion Tech Note 105 Using AC and DC Modes with Nanomotion AB2 Driver in Closed-Loop for Nanometer Level Positioning Rev A March 28, 2006 1. Introduction - Ultra- High Resolution in DC Mode Nanomotion

More information

AUTOMATION. Operator s Manual. IRU-2xx4/3xx4 Series. Rev. A2, 11/08 Doc

AUTOMATION. Operator s Manual. IRU-2xx4/3xx4 Series. Rev. A2, 11/08 Doc AUTOMATION P R O D U C T S G R O U P, I N C. Operator s Manual IRU-2xx4/3xx4 Series Rev. A2, 11/08 Doc. 9002673 Tel: 1/888/525-7300 Fax: 1/435/753-7490 www.apgsensors.com E-mail: sales@apgsensors.com IRU-2xx4/3xx4

More information

EasyMotion User s Manual Ver

EasyMotion User s Manual Ver EasyMotion User s Manual Ver. 3.01 2001 Applied Cybernetics Chapter 1. Introduction. Welcome to EasyM otion. This complete motion system setup program provides you with all the tools you need to test hardware

More information

Copyright 2014 YASKAWA ELECTRIC CORPORATION All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or

Copyright 2014 YASKAWA ELECTRIC CORPORATION All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or Copyright 2014 YASKAWA ELECTRIC CORPORATION All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form, or by any means, mechanical, electronic,

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

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

Software Operational Manual

Software Operational Manual Software Operational Manual for Easy Servo Drives ES-D508/808/1008 www.leadshine.com SM-ES-R20121030 ii Leadshine reserves the right to make changes without further notice to any products herein to improve

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

HURRICANE Radio Modem. FULL DUPLEX Radio MODEM

HURRICANE Radio Modem. FULL DUPLEX Radio MODEM FULL DUPLEX Radio MODEM Direct Cable Replacement Range 2KM RS232 / RS485 / USB Host Data Rates up to 38,400 Baud RF Data Rates to 115200Kbps Waterproof IP68 Enclosure 8 User Selectable Channels CE Compliant

More information

Power Requirements. Features

Power Requirements. Features Datasheet Positional accuracy (CEP50) autonomous positional error less than 2.5 meters SiRF Star IV GPS chip Satellite-based augmentation systems: WAAS, EGNOS, MSAS, GAGAN High sensitivity navigation engine

More information

Pololu TReX Jr Firmware Version 1.2: Configuration Parameter Documentation

Pololu TReX Jr Firmware Version 1.2: Configuration Parameter Documentation Pololu TReX Jr Firmware Version 1.2: Configuration Parameter Documentation Quick Parameter List: 0x00: Device Number 0x01: Required Channels 0x02: Ignored Channels 0x03: Reversed Channels 0x04: Parabolic

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

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

ANT Channel Search ABSTRACT

ANT Channel Search ABSTRACT ANT Channel Search ABSTRACT ANT channel search allows a device configured as a slave to find, and synchronize with, a specific master. This application note provides an overview of ANT channel establishment,

More information

Training Schedule. Robotic System Design using Arduino Platform

Training Schedule. Robotic System Design using Arduino Platform Training Schedule Robotic System Design using Arduino Platform Session - 1 Embedded System Design Basics : Scope : To introduce Embedded Systems hardware design fundamentals to students. Processor Selection

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

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

Data Acquisition Modules/ Distributed IO Modules

Data Acquisition Modules/ Distributed IO Modules User Manual Data Acquisition Modules/ Distributed IO Modules Future Design Controls, Inc. 7524 West 98 th Place / P.O. Box 1196 Bridgeview, IL 60455 888.751.5444 - Office: 888.307.8014 - Fax 866.342.5332

More information

QuickBuilder PID Reference

QuickBuilder PID Reference QuickBuilder PID Reference Doc. No. 951-530031-006 2010 Control Technology Corp. 25 South Street Hopkinton, MA 01748 Phone: 508.435.9595 Fax: 508.435.2373 Thursday, March 18, 2010 2 QuickBuilder PID Reference

More information

MTY (81)

MTY (81) This manual describes the option "d" of the SMT-BD1 amplifier: Master/slave electronic gearing. The general information about the digital amplifier commissioning are described in the standard SMT-BD1 manual.

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

4590 Tank Side Monitor. Service Manual. Mark/Space Communication Protocol. Software Version v2.03 SRM009FVAE0808

4590 Tank Side Monitor. Service Manual. Mark/Space Communication Protocol.  Software Version v2.03 SRM009FVAE0808 SRM009FVAE0808 4590 Tank Side Monitor Mark/Space Communication Protocol Service Manual Software Version v2.03 www.varec.com Varec, Inc. 5834 Peachtree Corners East, Norcross (Atlanta), GA 30092 USA Tel:

More information

The rangefinder can be configured using an I2C machine interface. Settings control the

The rangefinder can be configured using an I2C machine interface. Settings control the Detailed Register Definitions The rangefinder can be configured using an I2C machine interface. Settings control the acquisition and processing of ranging data. The I2C interface supports a transfer rate

More information

Serial Servo Controller

Serial Servo Controller Document : Datasheet Model # : ROB - 1185 Date : 16-Mar -07 Serial Servo Controller - USART/I 2 C with ADC Rhydo Technologies (P) Ltd. (An ISO 9001:2008 Certified R&D Company) Golden Plaza, Chitoor Road,

More information

MS2711B Hand-Held Spectrum Analyzer

MS2711B Hand-Held Spectrum Analyzer MS2711B Hand-Held Spectrum Analyzer Programming Manual Hand-Held Spectrum Analyzer, for Measuring, Monitoring and Analyzing Signal Environments WARRANTY The Anritsu product(s) listed on the title page

More information

Firmware Version d & higher Installation & Operation

Firmware Version d & higher Installation & Operation DIGI LCD Readout Firmware Version d 2.100 & higher Installation & Operation READOUT SERIAL # SCALE SERIAL # TO MAXIMIZE THE ACCURACY OF YOUR SYSTEM, THE FOLLOWING PROGRAMMING PARAMETER HAS BEEN PRE-CONFIGURED

More information

PIC-SERVO SC (v.10) Servo Motion Control I.C.

PIC-SERVO SC (v.10) Servo Motion Control I.C. PIC-SERVO SC (v.10) Servo Motion Control I.C. Servo controller for D.C. motors (brush or brushless) with incremental encoder feedback Serial interface connects to RS232, RS485 or RS422 communications ports

More information

HPVFP High Performance Full Function Vector Frequency Inverter

HPVFP High Performance Full Function Vector Frequency Inverter Advanced User Manual HPVFP High Performance Full Function Vector Frequency Inverter HP VER 1.00 1. HPVFP Parameter Set Overview...3 1.1. About this section...3 1.2. Parameter Structure Overview...3 1.3.

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

AT14164: User Calibration of Internal Temperature Sensor - SAM R21. Introduction. SMART ARM-based MCUs APPLICATION NOTE

AT14164: User Calibration of Internal Temperature Sensor - SAM R21. Introduction. SMART ARM-based MCUs APPLICATION NOTE SMART ARM-based MCUs AT14164: User Calibration of Internal Temperature Sensor - SAM R21 APPLICATION NOTE Introduction This application note explains about calibrating and compensating the errors of temperature

More information

Know your energy. Modbus Register Map EB etactica Power Bar

Know your energy. Modbus Register Map EB etactica Power Bar Know your energy Modbus Register Map EB etactica Power Bar Revision history Version Action Author Date 1.0 Initial document KP 25.08.2013 1.1 Document review, description and register update GP 26.08.2013

More information

Basic Tuning for the SERVOSTAR 400/600

Basic Tuning for the SERVOSTAR 400/600 Basic Tuning for the SERVOSTAR 400/600 Welcome to Kollmorgen s interactive tuning chart. The first three sheets of this document provide a flow chart to describe tuning the servo gains of a SERVOSTAR 400/600.

More information

APPLICATION NOTE. Computer Controlled Variable Attenuator for Lasers. Technology and Applications Center Newport Corporation

APPLICATION NOTE. Computer Controlled Variable Attenuator for Lasers. Technology and Applications Center Newport Corporation APPLICATION NOTE Computer Controlled Variable Attenuator for Lasers 31 Technology and Applications Center Newport Corporation Computer Controlled Variable Attenuator for Lasers This application note describes

More information

Parameter Value Unit Notes

Parameter Value Unit Notes Features Single axis measurement from ±5 to ±60 High resolution and accuracy. Low temperature drift, with optional temperature compensation to further improve temperature performance. RS232 and RS485 output

More information

SOLAR-360 : 360 Inclinometer, RS232 or RS485 Output

SOLAR-360 : 360 Inclinometer, RS232 or RS485 Output Features Single axis measurement, range ±180 High resolution and accuracy Low temperature drift, with optional temperature compensation to further improve temperature performance. RS232 or multi-drop RS485

More information

8510 AC Spindle Drive System

8510 AC Spindle Drive System 8510 AC Spindle Drive System Manual Important User Information Solid state equipment has operational characteristics differing from those of electromechanical equipment. Safety Guidelines for the Application,

More information

INTERNATIONAL TELECOMMUNICATION UNION DATA COMMUNICATION NETWORK: INTERFACES

INTERNATIONAL TELECOMMUNICATION UNION DATA COMMUNICATION NETWORK: INTERFACES INTERNATIONAL TELECOMMUNICATION UNION CCITT X.21 THE INTERNATIONAL (09/92) TELEGRAPH AND TELEPHONE CONSULTATIVE COMMITTEE DATA COMMUNICATION NETWORK: INTERFACES INTERFACE BETWEEN DATA TERMINAL EQUIPMENT

More information

Servo Tuning. Dr. Rohan Munasinghe Department. of Electronic and Telecommunication Engineering University of Moratuwa. Thanks to Dr.

Servo Tuning. Dr. Rohan Munasinghe Department. of Electronic and Telecommunication Engineering University of Moratuwa. Thanks to Dr. Servo Tuning Dr. Rohan Munasinghe Department. of Electronic and Telecommunication Engineering University of Moratuwa Thanks to Dr. Jacob Tal Overview Closed Loop Motion Control System Brain Brain Muscle

More information

Contents. Overview Introduction...3 Capabilities...3 Operating Instructions Installation...4 Settings... 5

Contents. Overview Introduction...3 Capabilities...3 Operating Instructions Installation...4 Settings... 5 User s Manual Contents Overview................................................................. 3 Introduction..............................................................3 Capabilities...............................................................3

More information

Technical Manual. CruizCore R1350N Rev Copyright Microinfinity Co., Ltd.

Technical Manual. CruizCore R1350N Rev Copyright Microinfinity Co., Ltd. Technical Manual CruizCore R1350N Rev1.0 2011. 12. 01 Copyright Microinfinity Co., Ltd. http://www.minfinity.com http://www.cruizcore.com Contact Info. EMAIL: supports@cruizcore.com, TEL: +82 31 546 7408

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

Copley Amplifier Parameter Dictionary

Copley Amplifier Parameter Dictionary Copley Amplifier Parameter Dictionary Part Number CC95-00716-000 Revision A June 2009 TABLE OF CONTENTS About This Manual...5 1: Introduction...9 1.1: Scope and Purpose of this Book...9 1.2: Organization

More information

ICS3.5 Software Manual Command Refarence

ICS3.5 Software Manual Command Refarence ICS3.5 Software Manual Command Refarence KONDO KAGAKU CO.,LTD Aug, 2015 1st Edition Disclaimer This command reference has been released for reference purposes only. Therefore, it is used entirely at your

More information

NI 951x C Series Modules Object Dictionary

NI 951x C Series Modules Object Dictionary NI 951x C Series Modules Object Dictionary Contents This document contains the NI 951x C Series drive interface modules vendor extensions to the object dictionary. Input/Output & Feedback Objects... 3

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

DDM3U-1-100V-15A-NP DDM3U-4-60V DDM3U-1-320V-15A-NP

DDM3U-1-100V-15A-NP DDM3U-4-60V DDM3U-1-320V-15A-NP MC4U PWM Drives Drives 100V-15A-NP DDM3U-4-60V 320V-15A-NP Up to 4 Universal Drives per Card, 60V, 5A peak, 0.3kW One Axis universal Drive per Card, 100V and 320V, 30A peak, 8.2kW DDM3U-4-320V-1A DDM3U-4-320V-2A

More information

MS23SL Magnetic Linear Sensor With Smart Limit Switches

MS23SL Magnetic Linear Sensor With Smart Limit Switches MS23SL Magnetic Linear Sensor With Smart Limit Switches 2 micron Quadrature Output 0.4 micron Serial Output 0.4 micron PWM Output Technical Reference Guide PCB Rev 1.0 www.soc-robotics.com Copyright 2013.

More information

MX-64T / MX-64R / MX-64AT / MX-64AR

MX-64T / MX-64R / MX-64AT / MX-64AR Show Home > Product Information > Actuator > Dynamixel > MX Series > MX-64T / MX64-R / MX-64AT / MX-64AR ROBOTIS e-manual v1.29.00 MX-64T / MX-64R / MX-64AT / MX-64AR Parts Photo [MX-64AT] [MX-64AR] Control

More information

Operation/Reference Guide NXP-CPI16. NetLinx Custom Panel Interface. Custom Panel Interfaces

Operation/Reference Guide NXP-CPI16. NetLinx Custom Panel Interface. Custom Panel Interfaces Operation/Reference Guide NXP-CPI16 NetLinx Custom Panel terface Custom Panel terfaces Last Revised: 5/18/2012 AMX Limited Warranty and Disclaimer AMX warrants its products to be free of defects in material

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

Model 50A 1-4 Axes IndustryPack Servo Motion Controller

Model 50A 1-4 Axes IndustryPack Servo Motion Controller Model 50A 1-4 Axes IndustryPack Servo Motion Controller PMD DSP Motion Control Chipset PID with Velocity Feedforward Servo Control Loops S-Curve, Trapezoidal & Velocity Motion Profiles Open Architecture

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

How to Configure IFOV. Revision: 1.01

How to Configure IFOV. Revision: 1.01 How to Configure IFOV Revision: 1.01 Global Technical Support Go to www.aerotech.com/global-technical-support for information and support about your Aerotech products. The website provides downloadable

More information

815PT Smart Pressure Transmitter

815PT Smart Pressure Transmitter 815PT Smart Pressure Transmitter General Instructions These instructions provide information for installation, process connection, electrical connection, configuration, operation and maintenance of the

More information

ADVANCED EMBEDDED MONITORING SYSTEM FOR ELECTROMAGNETIC RADIATION

ADVANCED EMBEDDED MONITORING SYSTEM FOR ELECTROMAGNETIC RADIATION 98 Chapter-5 ADVANCED EMBEDDED MONITORING SYSTEM FOR ELECTROMAGNETIC RADIATION 99 CHAPTER-5 Chapter 5: ADVANCED EMBEDDED MONITORING SYSTEM FOR ELECTROMAGNETIC RADIATION S.No Name of the Sub-Title Page

More information

µchameleon 2 User s Manual

µchameleon 2 User s Manual µchameleon 2 Firmware Rev 4.0 Copyright 2006-2011 Starting Point Systems. - Page 1 - firmware rev 4.0 1. General overview...4 1.1. Features summary... 4 1.2. USB CDC communication drivers... 4 1.3. Command

More information

Product Information Using the SENT Communications Output Protocol with A1341 and A1343 Devices

Product Information Using the SENT Communications Output Protocol with A1341 and A1343 Devices Product Information Using the SENT Communications Output Protocol with A1341 and A1343 Devices By Nevenka Kozomora Allegro MicroSystems supports the Single-Edge Nibble Transmission (SENT) protocol in certain

More information

Allen-Bradley. Using the 1756-MO2AE with the TR Encoder (Cat. No ) Application Note

Allen-Bradley. Using the 1756-MO2AE with the TR Encoder (Cat. No ) Application Note Allen-Bradley Using the 1756-MO2AE with the TR Encoder (Cat. No. 1756-2.9) Application Note Important User Information Because of the variety of uses for the products described in this publication, those

More information

LPU-2127 User Manual

LPU-2127 User Manual LPU-2127 User Manual Doc #9004169 Rev A1, 04/15 Table of Contents Introduction... iii Warranty and Warranty Restrictions... iv Chapter 1: Specifications and Options... 1 Dimensions...1 Specifications...

More information

OVEN INDUSTRIES, INC. Model 5C7-362

OVEN INDUSTRIES, INC. Model 5C7-362 OVEN INDUSTRIES, INC. OPERATING MANUAL Model 5C7-362 THERMOELECTRIC MODULE TEMPERATURE CONTROLLER TABLE OF CONTENTS Features... 1 Description... 2 Block Diagram... 3 RS232 Communications Connections...

More information

Independent Technology Service Inc Independence Ave. Chatsworth, California Toll Free:

Independent Technology Service Inc Independence Ave. Chatsworth, California Toll Free: Independent Technology Service Inc. 9182 Independence Ave. Chatsworth, California 91311 www.itscnc.com Toll Free: 1.800.342.3475 NEW Brush Amplifiers For Fadal Machines AMP-0006N-ITS AMP-0021N-ITS NEW

More information

Firmware Version d & higher Installation & Operation

Firmware Version d & higher Installation & Operation DIGI LCD Readout Firmware Version d 2.100 & higher Installation & Operation Warranty Accurate Technology, Inc., warrants this product against defective parts and workmanship for 1 year commencing from

More information

CANopen Programmer s Manual

CANopen Programmer s Manual CANopen Programmer s Manual Part Number 95-00271-000 Revision 7 November 2012 CANopen Programmer s Manual Table of Contents TABLE OF CONTENTS About This Manual... 6 1: Introduction... 11 1.1: CAN and

More information

WCT W Single Coil TX V3.0 Runtime Debugging User s Guide

WCT W Single Coil TX V3.0 Runtime Debugging User s Guide Freescale Semiconductor Document Number: WCT1012V30RTDUG User s Guide Rev. 0, 09/2015 WCT1012 15W Single Coil TX V3.0 Runtime Debugging User s Guide 1 Introduction Freescale provides the FreeMASTER GUI

More information

BLuAC5 Brushless Universal Servo Amplifier

BLuAC5 Brushless Universal Servo Amplifier BLuAC5 Brushless Universal Servo Amplifier Description The BLu Series servo drives provide compact, reliable solutions for a wide range of motion applications in a variety of industries. BLu Series drives

More information

Manual. ihss57-xx. Integrate Stepper Servo Motor.

Manual. ihss57-xx. Integrate Stepper Servo Motor. ihss57-xx Integrate Stepper Servo Motor Manual Shenzhen Just Motion Control Electro-mechanics Co., Ltd TEL:+86-0755-26509689 FAX:+86-0755-26509289 www.jmc-motion.com Email:jmk@jmc-motion.com Address: Floor2,

More information

BEI Device Interface User Manual Birger Engineering, Inc.

BEI Device Interface User Manual Birger Engineering, Inc. BEI Device Interface User Manual 2015 Birger Engineering, Inc. Manual Rev 1.0 3/20/15 Birger Engineering, Inc. 38 Chauncy St #1101 Boston, MA 02111 http://www.birger.com 2 1 Table of Contents 1 Table of

More information

B Robo Claw 2 Channel 25A Motor Controller Data Sheet

B Robo Claw 2 Channel 25A Motor Controller Data Sheet B0098 - Robo Claw 2 Channel 25A Motor Controller Feature Overview: 2 Channel at 25A, Peak 30A Hobby RC Radio Compatible Serial Mode TTL Input Analog Mode 2 Channel Quadrature Decoding Thermal Protection

More information

Tel: Fax: OMESH Networks Inc. 2011

Tel: Fax: OMESH Networks Inc. 2011 Section 1: Purpose OPM15 is a large-scale cognitive wireless networking module, providing great flexibility for a wide range of applications. Powered by the OPM optimized radio design and networking stack,

More information

10 Amp Digital PWM Motor Speed Controller CV-2110-HD and CV-2110-HDS

10 Amp Digital PWM Motor Speed Controller CV-2110-HD and CV-2110-HDS 10 Amp Digital PWM Motor Speed Controller CV-2110-HD and CV-2110-HDS The Analog / Digital PWM controller allows you to control the speed of a motor, brightness of a lamp or other device using an analog

More information

InfraStruXure Manager v4.x Addendum: Building Management System Integration

InfraStruXure Manager v4.x Addendum: Building Management System Integration InfraStruXure Manager v4.x Addendum: Building Management System Integration Introduction This addendum explains the integration of the APC InfraStruXure Manager Appliance with a Building Management System

More information

15 Amp Digital High Frequency PWM Motor Speed Controller SPD-315-D and SPD-315-DS

15 Amp Digital High Frequency PWM Motor Speed Controller SPD-315-D and SPD-315-DS 15 Amp Digital High Frequency PWM Motor Speed Controller SPD-315-D and SPD-315-DS The SPD-315-D(S) PWM controller allows you to control the speed of a motor, brightness of a lamp or other load using a

More information

LD2342 USWM V1.6. LD2342 V1.4 Page 1 of 18

LD2342 USWM V1.6. LD2342 V1.4 Page 1 of 18 LD2342 USWM V1.6 LD2342 V1.4 Page 1 of 18 GENERAL WARNINGS All Class A and Class B marine Automatic Identification System (AIS) units utilize a satellite based system such as the Global Positioning Satellite

More information

POWER SERIES Plus. Volt / Amp / Hertz. Digital Switchboard Meter. User s Manual IM2493VAF-3

POWER SERIES Plus. Volt / Amp / Hertz. Digital Switchboard Meter. User s Manual IM2493VAF-3 POWER SERIES Plus Volt / Amp / Hertz Digital Switchboard Meter User s Manual General Description The POWER SERIES Plus digital switchboard meters incorporate the latest DSP microprocessor technology. Careful

More information

TOSHIBA MACHINE CO., LTD.

TOSHIBA MACHINE CO., LTD. User s Manual Product SHAN5 Version 1.12 (V Series Servo Amplifier PC Tool) Model SFV02 July2005 TOSHIBA MACHINE CO., LTD. Introduction This document describes the operation and installation methods of

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

2HSS858H Low Voltage Digital Stepper Servo Drive Manual

2HSS858H Low Voltage Digital Stepper Servo Drive Manual 2HSS858H Low Voltage Digital Stepper Servo Drive anual Email:info@jmc-motion.com Address: Floor2, Building A, Hongwei Industrial Zone No.6, Liuxian 3rd Road, Shenzhen. China Shenzhen Just otion Control

More information

Using Z8 Encore! XP MCU for RMS Calculation

Using Z8 Encore! XP MCU for RMS Calculation Application te Using Z8 Encore! XP MCU for RMS Calculation Abstract This application note discusses an algorithm for computing the Root Mean Square (RMS) value of a sinusoidal AC input signal using the

More information

40 Amp Digital Bidirectional PWM Motor Controller with Regenerative Braking BIDIR-340-DR

40 Amp Digital Bidirectional PWM Motor Controller with Regenerative Braking BIDIR-340-DR 40 Amp Digital Bidirectional PWM Motor Controller with Regenerative Braking BIDIR-340-DR The BIDIR-340-DR is a fully solid-state motor controller that allows you to control the speed and direction of a

More information

MDC VAC Input Brushless Controller. User s Guide. 910 East Orangefair Lane, Anaheim, CA

MDC VAC Input Brushless Controller. User s Guide. 910 East Orangefair Lane, Anaheim, CA MDC200-048051 110VAC Input Brushless Controller User s Guide A N A H E I M A U T O M A T I O N 910 East Orangefair Lane, Anaheim, CA 92801 e-mail: info@anaheimautomation.com (714) 992-6990 fax: (714) 992-0471

More information

745 Transformer Protection System Communications Guide

745 Transformer Protection System Communications Guide Digital Energy Multilin 745 Transformer Protection System Communications Guide 745 revision: 5.20 GE publication code: GEK-106636E GE Multilin part number: 1601-0162-A6 Copyright 2010 GE Multilin GE Multilin

More information

IP-OptoAD16. Opto-Isolated 16-bit A/D Conversion IndustryPack. User s Manual

IP-OptoAD16. Opto-Isolated 16-bit A/D Conversion IndustryPack. User s Manual IP-OptoAD16 Opto-Isolated 16-bit A/D Conversion IndustryPack User s Manual SBS GreenSpring Modular I/O Subject to change without notice. Manual Revision: 2 7/27/99 Hardware Revision: A IP-OptoAD16 Opto-Isolated

More information

ProLink Radio. 900 MHz SDI-12 Data Radio Scienterra Limited. Version A-0x0C-1-AC 20 October 2009

ProLink Radio. 900 MHz SDI-12 Data Radio Scienterra Limited. Version A-0x0C-1-AC 20 October 2009 ProLink Radio 900 MHz SDI-12 Data Radio Scienterra Limited Version A-0x0C-1-AC 20 October 2009 For sales inquiries please contact: ENVCO Environmental Collective 31 Sandringham Rd Kingsland, Auckland 1024

More information

PROFINET USER S GUIDE ACSI Servo

PROFINET USER S GUIDE ACSI Servo PROFINET USER S GUIDE ACSI Servo 3600-4196_06 Tolomatic reserves the right to change the design or operation of the equipment described herein and any associated motion products without notice. Information

More information

Modular Metering System ModbusTCP Communications Manual

Modular Metering System ModbusTCP Communications Manual Modular Metering System Manual Revision 7 Published October 2016 Northern Design Metering Solutions Modular Metering System ModbusTCP 1 Description The multicube modular electricity metering system simultaneously

More information

BLuAC5 Brushless Universal Servo Amplifier

BLuAC5 Brushless Universal Servo Amplifier BLuAC5 Brushless Universal Servo Amplifier Description The BLu Series servo drives provide compact, reliable solutions for a wide range of motion applications in a variety of industries. BLu Series drives

More information

VT1586A Rack Mount Terminal Panel Installation and User s Manual

VT1586A Rack Mount Terminal Panel Installation and User s Manual VT1586A Rack Mount Terminal Panel Installation and User s Manual Manual Part Number: 82-0095-000 Rev. June 16, 2003 Printed in U.S.A. Certification VXI Technology, Inc. certifies that this product met

More information

SAT SCD/ARGOS INSTRUCTION MANUAL

SAT SCD/ARGOS INSTRUCTION MANUAL INSTRUCTION MANUAL REVISION: 1/03 COPYRIGHT (c) 2000-2003 CAMPBELL SCIENTIFIC, INC. This is a blank page. WARRANTY AND ASSISTANCE This equipment is warranted by CAMPBELL SCIENTIFIC (CANADA) CORP. ( CSC

More information