IcePAP_UserManual_working Ice PAP User Manual Working
IcePAP_UserManual_working
IcePAP_UserManual_working
User Manual: Pdf
Open the PDF directly: View PDF .
Page Count: 96
Download | |
Open PDF In Browser | View PDF |
ESRF ISG ESRF - Instrument Support Group Intelligent Controller for Positioning Applications User Manual STATUS ENABLE DISABLE MOTION MOTION MOTION MOTION MOTION MOTION MOTION MOTION + + + + + + + + - LIMIT - LIMIT - LIMIT - LIMIT STATUS STATUS STATUS STATUS STATUS STATUS STATUS STATUS AUX SUPPLY AUX SUPPLY AUX SUPPLY AUX SUPPLY AUX SUPPLY AUX SUPPLY AUX SUPPLY AUX SUPPLY ENABLE ENABLE ENABLE ENABLE ENABLE ENABLE ENABLE ENABLE DISABLE DISABLE DISABLE DISABLE DISABLE DISABLE DISABLE DISABLE AXIS INTERFACE LIMIT AXIS INTERFACE - AXIS INTERFACE LIMIT AXIS INTERFACE - AXIS INTERFACE LIMIT AXIS INTERFACE - AXIS INTERFACE OUT Ethernet RS232 USB Comm LIMIT AXIS INTERFACE SYNCHRO IN DRAFT IN CONSTRUCTION version 0.0c / 04.12.2009 Date 04/12/2009 2 of 96 Version 0.0c Comments Draft in construction DRAFT IN CONSTRUCTION IcePAP User Manual CONTENTS MANUAL ORGANIZATION 5 1. INSTALLATION 1.1. System overview 1.2. Hardware connections and configuration 1.2.1. Rack number 1.2.2. Board installation (controllers and drivers) 1.2.3. Rack links and termination 1.2.4. Rack disable 1.2.5. Communication links 1.2.6. Motor and encoder connection 1.2.7. Ventilation 1.3. Installation tips 6 6 7 7 7 7 7 7 8 8 8 2. OPERATION INSTRUCTIONS 2.1. IcePAP concepts 2.1.1. Systems and boards 2.1.2. Configuring drivers 2.1.3. Enabling and disabling axes 2.1.4. Motor types 2.1.5. Encoders 2.1.6. Position resolution 2.1.7. Closed loop operation 2.1.8. Advanced functionality 2.2. Moving motors 2.2.1. Basic movements 2.2.2. Homing sequences 2.2.3. Multiaxis and group movements 2.3. Diagnostics 2.3.1. Status registers 2.3.2. Warnings 2.3.3. Alarms 2.4. Firmware reprogramming 2.5. Usage tips 9 9 9 9 10 10 10 10 10 10 10 10 10 10 11 11 14 14 14 14 3. DRIVER CONFIGURATION 3.1. Axis configuration 3.1.1. Axis activation and protection 3.1.2. Axis name 3.1.3. Default indexer 3.1.4. Position source and resolution 3.2. Motor configuration 3.2.1. Motor types 3.3. Advanced configuration 3.3.1. Homing configuration 3.4. Configuration parameters 15 15 15 15 15 15 16 16 16 16 17 4. COMMUNICATION PROTOCOL 4.1. Communication basics 4.1.1. System commands 4.1.2. Board commands 23 23 23 23 IcePAP User Manual DRAFT IN CONSTRUCTION 3 of 96 4.1.3. Local driver interface 4.2. Interfaces 4.3. Syntax conventions 4.3.1. Commands and requests 4.3.2. Addressing 4.4. Terminal mode 4.5. Binary transfer 4.5.1. Serial port binary blocks 4.5.2. TCP binary blocks 23 23 23 23 24 25 25 27 27 5. COMMAND SET 5.1. Command reference 5.2. IcePAP command quick reference 28 30 93 4 of 96 DRAFT IN CONSTRUCTION IcePAP User Manual MANUAL ORGANIZATION This manual presents …. Section 1 gives a brief overview of … The description is made in general terms and specific technical details are minimised. Section 2 describes …. The connectors and signals functions of both front and rear panels are detailed. Section 3 is dedicated to … in a real world setup. Section 4 covers the available commands to communicate with IcePAP systems. Section 5 is intended to describe the programming aspects of …. Related Documentation • IcePAP Hardware Manual Presents in detail the components and functionality of the IcePAP system and provides a complete connector description. • IcePAP Configuration and Test Tool Describes the GUI tool used for driver configuration and testing. IcePAP User Manual DRAFT IN CONSTRUCTION 5 of 96 1. INSTALLATION 1.1. System overview IcePAP is a motor control system developed at the ESRF and optimised for high resolution position applications. An IcePAP system may drive up to 128 axes and integrates both control features, like trajectory generation, and the motor power management. Although motor control in IcePAP is axis-oriented, it includes system resources that allow the execution of synchronous multi-axis movements. In addition, all the position information signals are driven through internal multiplexers and can be sent to external devices to properly synchronise data acquisition during motion. Besides high performance, IcePAP is fully software configurable and provides exhaustive diagnostic capabilities. Most of the functionality relies on programmable components what opens the possibility of adding new features by means of firmware upgrade. Components The IcePAP system is organised in racks. The mechanical support of each rack is provided by a 19” 3U crate that includes the power supply and an interconnection backplane with 9 slots. The leftmost slot is wider than the others and must be always equipped with a controller board. The 8 remaining slots may be equipped with 1 to 8 driver boards. Each driver board can operate a motorised axis. The unused slots must be covered with blank front panel plates to avoid accidental access to internal parts with electrical power. Figure 1 depicts an IcePAP crate populated with 5 driver boards. Controller Drivers STATUS ENABLE DISABLE MOTION MOTION MOTION MOTION MOTION + + + + + - LIMIT - LIMIT STATUS STATUS STATUS STATUS STATUS AUX SUPPLY AUX SUPPLY AUX SUPPLY AUX SUPPLY AUX SUPPLY ENABLE ENABLE ENABLE ENABLE ENABLE DISABLE DISABLE DISABLE DISABLE DISABLE AXIS INTERFACE LIMIT AXIS INTERFACE - AXIS INTERFACE LIMIT OUT Ethernet RS232 USB Comm - AXIS INTERFACE IN LIMIT AXIS INTERFACE SYNCHRO - Figure 1: Example of a partially equipped IcePAP rack Several racks can be connected to form a single multirack IcePAP system. Each rack must be identified with a different number (0 to 15) that is visualised in a two-digit display at the front panel of the controller board. From the point of view of hardware implementation there are two types of controller boards: MASTER and SLAVE. MASTER controllers have additional hardware resources such as a communication processor and certain connectors that are not available in the SLAVE 6 of 96 DRAFT IN CONSTRUCTION IcePAP User Manual controllers. A more complete description of the IcePAP system and its hardware resources can be found in the IcePAP Hardware Manual. An IcePAP system must always include a rack 0. The controller in the rack 0 must always be a MASTER board that plays the role of system master and takes care of communications and system management. In multirack systems the other controllers operate always as slave boards regardless of whether or not they are physically MASTER or SLAVE controllers. A MASTER board can be installed in any rack and operate as slave controller, but a SLAVE board can never operate as system master controller and must never be inserted in rack 0. Single rack systems must therefore always be identified with rack number 0 and include a MASTER board as controller. 1.2. Hardware connections and configuration 1.2.1. Rack number Rotary switch (hexadecimal). Controller must be extracted and rack power switched off (switch at the back). Once the rack number is properly set, the controller board can be plugged in the leftmost slot. 1.2.2. Board installation (controllers and drivers) No hardware configuration required. Driver configuration is fully implemented by software commands. Mandatory to use the configuration tool. When a driver board is installed the first time or moved from one slot to a different one, the board becomes not active (see ...) 1.2.3. Rack links and termination Multi-axis system needs rack links lengths, wiring. Bus terminator. 1.2.4. Rack disable Each rack includes a disable connector at the rear panel that allows to disable remotely the motor power of all the driver boards in the rack. If not used ([what happens?]) 1.2.5. Communication links The available communication interfaces are RS232 and Ethernet. Note that the USB interface is not available in the current version. The communication interface connectors are accessible at the front panel of the system master controller. See details in the IcePAP Hardware Manual. RS232: This is an asynchronous serial port that should be configured as follows: Baudrate ??? Parity NO Stop bits 1 Table 1. Serial Line (RS232) settings IcePAP User Manual DRAFT IN CONSTRUCTION 7 of 96 Ethernet: [how to set the IP addres???] [protocol TCP, ports to use, ...] 1.2.6. Motor and encoder connection As described in the Hardware Manual. Connecting the axis disable line is mandatory Proper grounding and shielding. 1.2.7. Ventilation IcePAP racks do not include internal fans of other method for forced ventilation. External ventilation may be necessary . It is recommended that … [At least the case of installation in closed 19” cabinets.] 1.3. Installation tips • It is always useful to check …. • Use ... 8 of 96 DRAFT IN CONSTRUCTION IcePAP User Manual 2. OPERATION INSTRUCTIONS This section deals with ... 2.1. IcePAP concepts 2.1.1. Systems and boards As explained in 1.1, an IcePAP system may include a variable number of driver boards organised in several racks. Every rack in the system must have an unique identification number that is displayed in the front panel of the rack controller board. The controller board in rack number 0 acts as system master controller and manages communication and system functionality. The communication cable (RS232 or Ethernet) must be plugged into the corresponding connector of the system master controller. Every board in the system has an unique address A that is a decimal number formed as A = 10×R + S, where R is the rack number and S is the slot occupied by the board in the rack. Rack controllers always occupy the slot 0, while driver boards are installed in the slots 1 to 8. With this convention the last decimal digit of the board address easily identifies if the board is a controller or a driver and its slot number. The address 0 is always assigned to the system master. The system master receives and processes ASCII commands from the host computer. Commands that request an answer from an IcePAP module always start by a question mark character (‘?’) and are often called “queries” in this document. There are two types of commands and queries: if the received command includes a prefix with a numeric address, it is treated as a board command or board query and is dispatched to and executed by the corresponding board. Board commands can be addressed to both controllers and drivers. If the command does not include an address prefix, it is treated as a system command or system query that is directly processed and executed by the system master controller. It is also possible to address board commands and queries to all the boards in the system by using a broadcast mechanism. See chapter 4 for more details on the communication protocol and the command format. When a system command and a board command have analogous functionality, they usually share the same name. However system and board commands are processed in a different way and have slightly different effect and therefore should not be considered as being the same command. As presented in chapter 5, system commands and board commands are always considered as two different sets. Some board commands are not implemented in rack controllers and can only be executed by driver boards. Note also that the system master controller executes both system commands as well as board commands sent to the address 0. At any time the host computer may obtain information about the current configuration of an IcePAP system by issuing ?SYSSTAT system queries. This query reports information about the racks connected in the system, the driver boards plugged in each rack and if the plugged boards are responsive or not. Another useful system query is ?MODE that returns the current system mode. In normal operation conditions an IcePAP system must be always in OPER mode (see ?MODE system query). Other system modes are useful only for maintenance interventions such as firmware reprogramming or factory testing. Every board can also return its individual mode by the ?MODE board query. The only cases in which the board mode may be reported as different from the system mode are either when a driver is being configured (CONFIG mode), or when there is an unrecoverable hardware failure that switches a driver board to FAIL mode. 2.1.2. Configuring drivers what is in a driver (indexer + power stage). Concept of indexer IcePAP User Manual DRAFT IN CONSTRUCTION 9 of 96 Possibility of internal or external indexer/power stage Power on/off issues (see section 2.1.3) By software commands Stored in non-volatile memory. The detailed description of the configuration parameters is presented in chapter 3. But use the configuration Tool 2.1.3. Enabling and disabling axes axis activation: ?ACTIVE and ACTIVE commands. Alarms and warnings 2.1.4. Motor types motor configuration (makes sense here?) - Dealing with linear and rotary motors 2.1.5. Encoders functional encoders (target and shaft encoders) physical and functional encoders 2.1.6. Position resolution - position resolution: - axis position concept 2.1.7. Closed loop operation 2.1.8. Advanced functionality - position control - Homing procedures - I/O signals 2.2. Moving motors 2.2.1. Basic movements In the most usual case, the various IcePAP axes are operated as independent channels MOVE, RMOVE, JOG ?FSTATUS, ?STATUS 2.2.2. Homing and search sequences Each driver has the possibility to latch all of its position sources at a specified event. This capability is used in two built-in commands that start a sequence that will search the position of an external reference signal, thus allowing to find an absolute position of the axis.. 2.2.3. Multiaxis and group movements Multiaxis motion commands. It is possible to move several axes by using the system motion commands MOVE, RMOVE, JOG and HOME. The multiaxis versions of these commands first check that all the axes in the parameter list can be moved as instructed. If there are invalid parameters or any of the movements cannot be started, the command fails and returns an error. Only once the initial check is successful, all the axes start their movements simultaneously. 10 of 96 DRAFT IN CONSTRUCTION IcePAP User Manual The progress of the movement can then be followed by monitoring the status register of the individual axes. It is possible however to read the status of a set of axes by using the ?FSTATUS system query. Axis groups. Once a multiaxis movement is started, by default every axis is managed as independent from the others. The motion of a given axis finishes either when the motion sequence is completed, when the driver receives a stop command or if a limit switch, an alarm or an error condition is found. This default behaviour can be changed if the GROUP keyword is used as a flag in the multiaxis command. In that case all the axes included in the same multilink command are not only started simultaneously but are also internally linked as an active group. Whenever any of the axes in an active group is stopped by a STOP command, a limit switch or an alarm condition, all the other axes in the group are forced to stop immediately. 2.3. Diagnostics 2.3.1. Status registers The status of each IcePAP board is compiled in a 32 bit register that can be read by the ?FSTATUS, ?STATUS and ?VSTATUS queries. The ?FSTATUS query returns the board status that is stored in the master controller and therefore present the shortest response latency. It is the recommended query for intensive polling applications. The ?STATUS query returns the status register read directly from the individual board and therefore guarantees the most updated values. The ?VSTATUS query reports the board status information in a verbose form that is intended for diagnostics and assistance to application programmers. The status information consists of a number of status bits and fields that are summarised in Table 2 and described below: PRESENT: This bit is set when the board is found to be physically present in the system. Note that the ?FSTATUS query may return the status of non present boards. ALIVE: This bit is set when the board communicates by the internal bus and responds to commands and queries. MODE: This field represents the current functional mode of the board. See the ?MODE board query for more details. DISABLE: This field is set to a non zero value if the motor power is disabled. The power can be enabled and disabled by the software POWER command or by the front panel switches. It can also be permanently disabled if the axis is configured as not active, by one of the external disable signals or if an alarm condition happens. In case of alarm conditions, the STOPCODE field provides more details about the reason of the alarm. See 2.3.3 for more information about alarm sources. INDEXER: This field indicates if the axis trajectories are generated by the internal indexer, by an in-system indexer signal through the backplane or by and external indexer connected to one of the input position signals InPos or EncIn. READY: This bit is set when the board is ready to accept new motion commands. It must be checked before starting a new movement. If it is not set, the axis is still busy in a operation such as a point to point movement, a settling phase or in a homing sequence. MOVING: This bit indicates that the axis is in motion. It must be used only for informative purposes and not to decide when the motion is completed and when the axis is able to accept new motion commands. Use the READY bit instead. SETTLING: In closed loop, this bit is set during the settling phase and is cleared once the settling condition is met. See 2.1.7 for more details about closed loop operation. IcePAP User Manual DRAFT IN CONSTRUCTION 11 of 96 OUTOFWIN: This bit is set if the axis position is out of the target position window. See 2.1.7 for more details about closed loop operation. WARNING: This bit is set if a warning condition has been met. See 2.3.2 for more information about possible source of warnings. STOPCODE: This field is 0 if the last motion command completed successfully with no interruption. If the movement was interrupted or not even started, a value from 1 to 6 reports the reason. If the power is disabled because the board went into alarm state, a value from 8 to 15 indicates the specific alarm condition. Note in this last case, the DISABLE field must also signal that an alarm condition was met. LIMIT+, LIMIT-: These bits report the actual logic level of the Limit+ and Limit- signals connected at the rear driver connectors. HSIGNAL: This bit reports the logic level of the homing reference signal. Note that the homing reference signal is selected by the HOMESRC configuration parameter and it may be different from the driver Home signal connected at the rear panel. VERSERR: This bit is set to if the version of the board firmware is not consistent with the firmware version of the master controller. INFO: This field provides a progress monitor during the board programming procedures. 12 of 96 DRAFT IN CONSTRUCTION IcePAP User Manual Bit # name 0 PRESENT 1 ALIVE 2-3 MODE 4-6 DISABLE 7-8 INDEXER 9 READY DRIVER Status CONTROLLER Status value = description value = description 1 = driver present 1 = controller present 1 = board responsive 0 = OPER 1 = PROG 2 = TEST 3 = FAIL 0 = power enabled 1 = axis configured as not active 2 = alarm condition 3 = remote rack disable input signal 4 = local rack disable switch 5 = remote axis disable input signal 6 = local axis disable switch 7 = software disable 0 = internal indexer 1 = in-system indexer 2 = external indexer 3 = n/a 1 = board responsive 0 = OPER 1 = PROG 2 = TEST 3 = FAIL 0 = power enabled 1 = n/a 2 = alarm condition 3 = remote rack disable input signal 4 = local rack disable switch 5 = n/a 6 = n/a 7 = software disable 0 = internal indexer 1 = n/a 2 = n/a (status of multiplexer?) 3 = n/a 1 = ready to move 1 = ready to move 10 MOVING 11 SETTLING 1 = axis moving 1 = virtual axis moving 1 = closed loop in settling phase n/a 12 13 OUTOFWIN 1 = axis out of settling window n/a WARNING 1 = warning condition n/a 0 = end of movement 0 = end of movement 1 = STOP 1 = STOP 2 = ABORT 2 = ABORT 3 = LIMIT+ reached 3 = n/a 4 = n/a 4 = LIMIT- reached 5 = settling timeout 5 = n/a 6 = axis disabled (no alarm condition) 6 = n/a 7 = n/a 7 = n/a 8 = internal failure 8 = internal failure 9 = motor failure 9 = n/a 10 = power overload 10 = n/a 11 = driver overheating 11 = n/a 12 = close loop error 12 = n/a 13 = control encoder error 13 = n/a 14 = n/a 14 = n/a 15 = external alarm 15 = external alarm current logic value of the Limit+ signal n/a 14-17 STOPCODE 18 LIMITPOS 19 LIMITNEG current logic value of the Limit- signal n/a 20 HSIGNAL current value of the homing ref. signal n/a 21 5VPOWER 1 = Aux power supply on 22 VERSERR 1 = inconsistency in firmware versions 1 = inconsistency in firmware versions 23 POWERON 24-31 INFO 1 = Motor power on n/a In PROG mode: programming phase In PROG mode: programming phase In OPER mode: master indexer n/a Table 2. Driver and controller board status registers IcePAP User Manual DRAFT IN CONSTRUCTION 13 of 96 2.3.2. Warnings Use the ?WARNING query ... 2.3.3. Alarms ... 2.4. Firmware reprogramming 2.5. Usage tips Refer to Section 5.1 for all the commands mentioned below. • It is quite common to have a situation where one wants to change an incremental encoder direction sign. This can be done easily by using the INV keyword in the correspondent channel configuration. Moreover, the INV keyword can be also used to change the polarity of the input signals (see the CHCFG command). • It is always useful to check the …. The command allows . 14 of 96 DRAFT IN CONSTRUCTION IcePAP User Manual 3. DRIVER CONFIGURATION Commands: CONFIG, ?CONFIG, CFG, ?CFG, ?CFGINFO Configuration parameters cannot be changed in normal operation mode. 3.1. Axis configuration 3.1.1. Axis activation and protection ACTIVE parameter and ?ACTIVE and ACTIVE commands. A configuration parameter for selection of additional levels of protection (PROTLEVEL) is foreseen but currently not implemented. 3.1.2. Axis name The name of the axis is a character string that is stored in the non-volatile memory and is only used for identification purposes. The axis name is not a configuration parameter and can be in principle changed during operation by the host computer. It is however possible to forbid changes of the axis name in operation mode by using the NAMELOCK configuration flag. 3.1.3. Default indexer In most of the cases a driver will be operated by using its internal indexer to generate the motion trajectory, velocity profile, etc. It is possible however to bypass the internal indexer and drive the motor using pulses coming from an external device such as another IcePAP driver or a multiaxis controller. The actual indexer used by a particular driver can be changed during operation by a user command but the default indexer that is used after power on or after driver reset must be selected by the parameter INDEXER. As mentioned above in most of the cases the default indexer will be set to INTERNAL. 3.1.4. Position source and resolution The position resolution of a given IcePAP axis can be defined arbitrarily and it is independent of the motor and encoders associated to that axis. Although the IcePAP resolution can be defined higher than the actual mechanical resolution of the axis, the use of excessively high values is discouraged because it is both useless in practice and can be a potential source of problems such as producing position overflows that may be difficult to track and debug. IcePAP drivers store axis positions internally with very high numeric resolution, but the position values are converted to 32-bit signed integer values when transferred across the system or to the host computer. The resolution of an axis is defined by the configuration parameters ANSTEP and ANTURN as the integer number of steps (or position counts) that corresponds to a given integer number of motor turns. In the case of dealing with linear motors instead of rotary motors, the number of motor turns must be replaced by the number of reference displacement intervals, where a reference displacement interval must be the same linear displacement used to configure the number of pole pairs of the motor (see ...). In most of the cases it is a good practice to set ANTURN to 1 and set ANSTEP to the desired number or steps per motor turn or per unit of reference displacement in the case of linear motors. The axis resolution defines the axis step unit that is used to report axis positions and position errors as well as to define parameters such as velocities. The internal indexer always operate axis steps units and all displacements and position values in movement commands are expressed in such units. The nominal axis position can be selected to be taken from the current indexer value or from the one of the encoders associated to the axis. This behaviour is configured by the POSSRC parameter. The ?POS query may be used to return different position values from the axis al or IcePAP User Manual DRAFT IN CONSTRUCTION 15 of 96 The position of axis POSSRC 3.2. Motor configuration 3.2.1. Motor types Supported types 3.3. Advanced configuration 3.3.1. Homing configuration Homing configuration parameters 16 of 96 DRAFT IN CONSTRUCTION IcePAP User Manual 3.4. Configuration parameters ACTIVE { NO | YES } Axis enable/disable flag This parameter marks a driver board as active or not. A “non active” driver is disabled, cannot be used to drive motors and rejects most of the power and motion related commands. The ACTIVE parameter does not reflects necessarily the actual state of a driver board that can become “not active” (functionally disabled) if is moved to a different IcePAP system. See xxx for more information. PROTLEVELProtection level This value is not actually used by the icePAP drivers. It is provided as a way to store locally information about the level of protection that must be applied to the corresponding axis. This value is available to be used by the application software. NAMELOCK { NO | YES } Axis name lock If this flag is set to NO, the use of the NAME command to change the name of the driver board is not allowed. POWERON { NO | YES } Auto power on This flag instructs the driver board to switch on the motor power immediately after board initialisation. The flag has effect only if the driver is active. MOTPHASES { 1 | 2 | 3 } MOTPOLES Number of electrical phases Number of pole pairs Configure the number of electrical phases and pole pairs of the motor. In case of rotary motors, the number of pole pairs corresponds to the number of electrical periods per motor turn. For instance, this number is 50 for a standard 200 full steps per turn stepper motor. In case of linear motors, the number of pole pairs corresponds to the number of electrical periods for a certain given displacement distance. Such a distance is somehow arbitrary and can be chosen according to the user convenience, but will be adopted as the effective “motor revolution” for all internal calculations. All the configuration parameters that refer to motor turns will actually apply to such a reference linear displacement. MOTSENSE { NORMAL | INVERTED } Sense of motor movement This value allows to invert the definition of positive direction for motor movements. Note that the limit switch signal Lim+ always blocks motion in the positive direction while Lim- blocks negative movements. MREGMODE { EXT | CURR | TORQUE} Motor regulation mode This value selects the type of power regulation in the motor. In the current firmware version only current regulation (CURR) is implemented. If this parameter is set to EXT, the board disables its internal power driver and assumes that the motor power is applied by an external driver module. IcePAP User Manual DRAFT IN CONSTRUCTION 17 of 96 NVOLT IVOLT NCURR ICURR BCURR Nominal operation voltage (volts) Idle operation voltage (volts) Nominal current (amps) Idle current (%) Boost current increment (%) This parameters set the motor voltage and current values. During movements, the driving voltage and phase current are set to NVOLT (in volts) and NCURR (in amps) respectively. When the motor is stopped the voltage and current are set to IVOLT (in volts) and ICURR. Note that ICURR is not specified in amps, but in a given percentage of the nominal current NCURR. It is possible to increase the phase current during acceleration and decceleration phases by specifying a boost current increment BCURR greater than zero. BCURR is also specified in percentage of NCURR and adds to the nominal current. CURRGAIN { CUSTOM | LOW | MEDIUM | HIGH } MREGP MREGI MREGD Current regulation gain Proportional coefficient Integral coefficient Derivative coefficient MREGP, MREGI and MREGD are the PID coefficients used for motor current regulation. If CURRGAIN is set to CUSTOM, the PID values can be freely set. If CURRGAIN is set to LOW, MEDIUM or HIGH, the PID values are forced to predefined values. NRES Nominal phase resistance This parameter sets the value of the nominal electrical resistance of the motor phases in ohms. If NRES is set to zero, ... INDEXER { INTERNAL | InPos | EncIn } Default indexer source Selects if the axis must be operated by using the internal built-in indexer for trajectory generation or an external signal applied to the InPos or EncIn inputs. This parameter refers to the default value, the actual indexer source can be changed during operation. SHFTENC { NONE | InPos | EncIn | AbsEnc} TGTENC { NONE | InPos | EncIn | AbsEnc} CTRLENC { NONE | InPos | EncIn | AbsEnc} Shaft encoder Target encoder Control encoder Select which input position signals will be used as shaft encoder, target encoder and control encoder. If any of these parameters is set to NONE the corresponding function is left unassigned. POSSRC { INDEXER | SHFTENC | TGTENC } Nominal axis position source Selects which functional signal, indexer, shaft encoder or target encoder, will be used to determine the nominal position of the axis. 18 of 96 DRAFT IN CONSTRUCTION IcePAP User Manual ANTURN ANSTEP Axis reference number of turns Axis reference number of units/steps Defines the resolution of the axis by specifying the number of units/steps (ANSTEP) for a given number of motor turns (ANTURN). This resolution can be selected independently of the actual resolution of the signal selected as position source by the POSSRC parameter. If both resolutions are different, the position values are internally converted whenever they are queried or set by the appropriate commands. Note however that the resolution of the internal indexer is always set to the value defined by the ANTURN and ANSTEP parameters. DEFVEL DEFACCT Default velocity (steps/sec) Default acceleration time (sec) Configures the default values for velocity and acceleration time. The velocity value are specified in axis units (or steps) per second. The acceleration time is specified in seconds. STRTVEL Maximum start velocity (steps/sec) Configures the maximum starting velocity. This value, that is specified in axis units (or steps) per second, is the maximum velocity that can be applied to the motor without acceleration ramp. It is only used when the driver has to limit the motor slew rate as it is required in some closed loop modes for instance. CTRLERROR Maximum control encoder error (steps) Configures the ... PCLOOP { OFF | TGTENC } PCLTAU PCLERROR PCLDEADBD PCLSETLW PCLSETLT Default position closed loop mode Position closed loop time constant (sec) Maximum closed loop error (steps) Minimum closed loop error (steps) Closed loop settling window (steps) Closed loop settling time (sec) The position closed loop default mode and encoder signal is selected by the PCLOOP parameter. The position closed loop is an integral correction algorithm that forces the target encoder signal to follow the desired axis value with the regulation time constant set by PCLTAU. The maximum acceptable follow error is the number of axis steps in PCLERROR. If the error is less than PCLDEADBD the correction algorithm does not take any action. If the error is less than PCLSETLW, the driver status bit INWINDOW will be set. At the end of a movement the driver status bit SETTLING will be set until the error remains less than PCLSETLW during the time defined by PCLSETLT. LPPOL { NORMAL | INVERTED } LMPOL { NORMAL | INVERTED } HOMEPOL { NORMAL | INVERTED } Polarity of the Lim+ signal Polarity of the Lim- signal Polarity of the Home signal These parameters allow to invert the electrical polarity (logic value) of the limit switch signals and the Home input. Note that LPPOL and LMPOL do not change the functional assignment of the limit switches: Lim+ always blocks motion in the positive direction while Lim- blocks always negative movements. IcePAP User Manual DRAFT IN CONSTRUCTION 19 of 96 EINTURN EINSTEP INPNTURN INPNSTEP ABSNTURN ABSNSTEP EncIn reference number of turns EncIn reference number of units/steps InPos reference number of turns InPos reference number of units/steps AbsEnc reference number of turns AbsEnc reference number of units/steps Allow to define the resolution of the encoders connected to the physical encoder inputs: EncIn, InPos and AbsEnc. The resolution is defined by specifying the number of encoder units/steps (encoderNSTEP) for a given number of motor turns (encoderNTURN). These values must match the resolution of the encoders in the actual mechanics. EINMODE { QUAD | PULSE+ | PULSE- } INPMODE { QUAD | PULSE+ | PULSE- } EncIn input counting mode InPos input counting mode Select the input counting mode (quadrature counting or pulse/direction) for the incremental encoder signals connected to the position inputs EncIn and InPos. In the case of pulse/direction counting mode, it is possible to select if the incremental counting takes place at the rise edge (PULSE+) or the falling edge (PULSE-) of the pulse signal. EINSENSE { NORMAL | INVERTED } INPSENSE { NORMAL | INVERTED } EncIn sense InPos sense Allow to change the sign of the incremental encoder signals EncIn and InPos. Inverting the sign of the incremental signal is equivalent to invert the sense of motion of the encoder. EINAUXPOL { NORMAL | INVERTED } INPAUXPOL { NORMAL | INVERTED } Polarity of the EncInAux signal Polarity of the InPosAux signal These parameters allow to invert the electrical polarity (logic value) of the auxiliary signals EncInAux and InPosAux. ABSSENSE { NORMAL | INVERTED } ABSOFSSET AbsEnc sense AbsEnc position offset Allow to apply a sign inversion and an offset to the absolute encoder value read through the SSI encoder interface. SSIDBITS SSICODE { BINARY | GRAY } SSISTATUS { S | .S | ES | OS } SSICLOCK { 125KHz | 250KHz | 500KHz | 1.25MHz | 2.5MHz | 5MHz | 12.5MHz | 25MHz | OFF} SSIDELAY { 0 | 5us | 10us | 20us | 30us | 50us | 100us | 500us} SSI data bits SSI data coding SSI status/control bits SSI clock frequency SSI polling delay Configuration parameter for the SSI interface. 20 of 96 DRAFT IN CONSTRUCTION IcePAP User Manual HOMESRC { Lim+ | Lim- | Home | EncAux | InpAux} HOMETYPE { LEVEL | PULSE | MPULSE } Homing signal Type of homing signal The parameter HOMESRC selects the hardware signal to be used by the homing procedure. The type of signal, i.e how the homing signal indicates the reference mechanical position, is configured by HOMETYPE. Possible values are LEVEL, if the signal logic level changes at the reference position, PULSE if the signal is a short pulse at the reference position, or MPULSE if the homing device produces multiple pulses with variable distances between them. See for details HOMEFLAGS [AUTODIR] [REVERSE] [SETPOS] [SLOW] [NEGEDGE] Homing flags Configuration of the behaviour of the homing functionality. HOMEPOS Reference homing position Configuration of ... HOMEVEL Slow homing velocity (steps/sec) Configuration of ... OUTPSRC { AXIS | INDEXER | SHFTENC | TGTENC | InPos | EncIn | Sync} OutPos source signal OUTPMODE { QUAD | PULSE+ | PULSE- } OutPos output counting mode OUTPPULSE { 50ns | 200ns | 2us | 20us} OutPos pulse width OUTPSENSE { NORMAL | INVERTED } OutPos sense Configuration of the OutPos position output signal. OUTPAUXSRC {LOW | HIGH | Lim+ | Lim- | Home | EncAux | InpAux | SyncAux"} OutPosAux source signal OUTPAUXPOL { NORMAL | INVERTED } Polarity of the OutPosAux signal Configuration of the OutPosAux auxiliary output signal. INFASRC { LOW | HIGH | Lim+ | Lim- | Home | EncAux | InpAux | SyncAux | ENABLE | ALARM | READY | MOVING | BOOST | STEADY} InfoA source signal INFBSRC { LOW | HIGH | Lim+ | Lim- | Home | EncAux | InpAux | SyncAux | ENABLE | ALARM | READY | MOVING | BOOST | STEADY} InfoB source signal INFCSRC { LOW | HIGH | Lim+ | Lim- | Home | EncAux | InpAux | SyncAux | ENABLE | ALARM | READY | MOVING | BOOST | STEADY} InfoC source signal INFAPOL { NORMAL | INVERTED } InfoA polarity INFBPOL { NORMAL | INVERTED } InfoB polarity INFCPOL { NORMAL | INVERTED } InfoC polarity Configuration of InfoA, InfoB and InfoC output signals. IcePAP User Manual DRAFT IN CONSTRUCTION 21 of 96 EXTALARM { NONE | ...} EXTWARNING { NONE | ...} External alarm signal External warning signal Selection of the external alarm and warning signals. 22 of 96 DRAFT IN CONSTRUCTION IcePAP User Manual 4. COMMUNICATION PROTOCOL 4.1. Communication basics This section covers the IcePAP communication protocol. The communication interface is implemented at the system master board. Communication is achieved by bi-directional byte streams. Normal command and response messages are transferred as lines of printable ASCII characters. The only exception is the transfer of binary data blocks, a special feature described in 4.5. Commands messages sent to IcePAP must be formatted as sequences of printable characters terminated by a “carriage return” (ASCII 0x0D). Any additional control character, like “line feed”, is ignored. Response messages produced by the device consist on lines terminated by a “carriage return” + “line feed” character sequence (ASCII 0x0D 0x0A). 4.1.1. System commands Commands that ... These commands are processed by the system master. 4.1.2. Board commands Commands addressed to specific boards. Both controller and drivers 4.1.3. Local driver interface Each driver board has an individual communication port for diagnostic purposes. It can also be used for stand alone operation ( no further discussed). 4.2. Interfaces The master boards integrate three communication ports: an Ethernet interface, a serial line and an USB port. The characteristics of the different interfaces are the following: Interface Serial Line Ethernet Universal Serial Bus Type Parameters RS232 9600bauds, No parity, 1 stop bit 100baseT TCP sockets, port 5000 USB 1.0 Not implemented in the current version 4.3. Syntax conventions In the most usual case remote control is implemented by an application program running in a host computer that sends commands and requests to the isgdevice as sequences of ASCII characters. The syntax rules are described below. See X for practical examples. 4.3.1. Commands and requests Command lines consist of a command keyword optionally followed by parameters. - The number and type of parameters depend on the particular command. Command keywords are not case sensitive. - The device converts internally all the characters to uppercase before any syntax checking. (TO BE DISCUSSED) IcePAP User Manual DRAFT IN CONSTRUCTION 23 of 96 - Parameters are also converted to uppercase unless they are enclosed between double quotes (””, ASCII 0x22). (TO BE DISCUSSED) Commands may be optionally preceded by the acknowledge character. - The acknowledge character is a hash symbol (#, ASCII 0x23) that must appear in the command line immediately before the first character of the command keyword. Normal (non query) commands never produce response messages unless the acknowledge character is used. - Non query command keywords always start by an alphabetical character (A to Z). Exceptions are binary transfer commands (see XX) that start by an asterisk character (*, ASCII 0x2A). - If the acknowledge character is used, the device produces the response string OK if the command execution was successful. - If the acknowledge character is used and the command does not executes successfully, the device produces either the string ERROR or a string containing a human readable error message. The behaviour depends on the current setting of the echo mode (see 4.4). Requests are query commands that produce response messages from the device. - Requests keywords always start by a question mark character (?, ASCII 0x3F). - If the request is successful the content of the response message depends on the particular request. - If request fails the device produces either the string ERROR or a string containing a human readable error message. The behaviour depends on the current setting of the echo mode (see 4.4). - The acknowledge character has no effect when used with requests. Response messages consist of one or more ASCII character lines. - The way every line in a response message is terminated depends on the type of communication port (see Error! Reference source not found.). - A response message may contain either the output of a request, acknowledgement keyword (OK or ERROR) or a human readable error message. an - When a response message consists of more than one line, the first and last lines contain a single dollar character ($, ASCII 0x3F). 4.3.2. Addressing Board commands must be sent to the specific controller or drivers boards by using an addressing prefix. An addressing prefix consists of the board address in decimal format followed by a colon character (:, ASCII 0x3A). No spaces are allowed between the last address digit and the colon character. An addressing prefix consisting of only the colon character (:) with no address string is interpreted as a broadcast command. In that case the command is forwarded to all the boards in the system. Controller boards ignore broadcasts of driver-only commands as well as driver boards ignore controller-only broadcasts. No queries or acknowledge characters are allowed in broadcasts. 24 of 96 DRAFT IN CONSTRUCTION IcePAP User Manual 4.4. Terminal mode When an IcePAP system is accessed through a serial port, two possible communication modes are available that can be selected with the commands ECHO and NOECHO. The differences between these two modes are described below. This commands can be issued through other interfaces (i.e. Ethernet) but they only have effect on the serial port. Echo mode (terminal mode) This mode should be used when the IcePAP master board is connected to a dumb terminal. In this case the user types commands on the keyboard and reads the answers and error messages on the terminal screen without computer intervention. This mode is usually not active by default and the user has to send the ECHO command every time the device is powered on. In echo mode all the characters sent to the device are echoed back to the terminal. The device also sends human-readable messages to be printed on the terminal screen whenever an error is detected in commands or requests. Case conversion takes place before the characters are sent back to the terminal, therefore characters are echoed back as uppercase even if they are typed and sent to the device as lowercase. (TO BE DISCUSSED) In echo mode the backspace character (ASCII 0x08) has the effect of deleting the last character received by the device. In this way a minimum editing functionality is provided. Noecho mode (host computer) This is the default mode. In this case no characters are echoed and no error messages are returned by non-query commands unless they are explicitly requested by the acknowledge character. This mode is intended to be used when a program running in a host computer communicates with the controller, sending commands and analysing the answers. 4.5. Binary transfer Binary transfer is a special mode that extends the standard protocol allowing faster data transfer. Binary blocks have a maximum size of 65535 data bytes (0xFFFF). Binary transfer commands or requests are initiated by ASCII command lines that follow the same rules than ordinary commands or requests (see 4.3.1). The only difference is that binary transfer command lines must include an asterisk character (*, ASCII 0x2A) in the command or request keyword. Non-query commands keywords must start by an asterisk character. Request keywords must include the asterisk as the first character after the question mark. Once the isgdevice has received the ASCII command line, the data is transferred as a binary block. In the case of non-query commands, the binary data block is sent from the host computer to the device. In case of binary requests, the device sends the binary block to the host (serial line) or puts it in its output buffer ready to be read by the host (GPIB). If the device finds an error in a command line containing a binary request, instead of the binary block, it produces the string ERROR. The acknowledge character (#, ASCII 0x23) can be used in the same way that with nonbinary commands. If it is included in a non-query command line, the device produces an acknowledgement keyword (ERROR or OK) to signal if the command line contained errors or not. The acknowledge character has no effect in the case of binary requests. IcePAP User Manual DRAFT IN CONSTRUCTION 25 of 96 Although binary transfer is initiated in the same way for both serial line and GPIB communication, the format of the binary data blocks and the management of the end of transfer condition are different in both cases. 26 of 96 DRAFT IN CONSTRUCTION IcePAP User Manual 4.5.1. Serial port binary blocks In the case of transfer through a serial port, the binary block contains the binary data and 4 extra bytes. The structure of the block is the following: byte Number content 0 1 2 3 … DataSize + 2 DataSize + 3 0xFF (signature) DataSize (MSB) DataSize (LSB) data byte (first) … data byte (last) Checksum The first byte contains always the value 0xFF (255) and can be used the signature of the block. The next two bytes contain the number of data bytes to transfer. The last byte contains the check sum value that is used to verify data integrity. The checksum value is calculated as the lower 8-bits of the sum of all the bytes in the binary block with exception of the signature byte (and the checksum byte itself). 4.5.2. TCP binary blocks In the case of transfer by Ethernet, the binary block does not contain any additional control or protocol byte. Only the actual data bytes are transferred. The EOI line is asserted during the transfer of the last data byte to signal the end of the transmission. IcePAP User Manual DRAFT IN CONSTRUCTION 27 of 96 5. COMMAND SET BOARD COMMANDS Command WTEMP CONFIG CFG NAME ?ACTIVE ?MODE ?STATUS ?VSTATUS ?ALARM ?WARNING ?WTEMP ?CONFIG ?CFG ?CFGINFO ?VER ?NAME ?ID ?POST POWER AUXPS Description Query activation status Query board mode Query board status Query verbose board status Query board alarm message Query board warnings Set/query warning temperature Manage configuration mode Set/query configuration parameters Query configuration parameter info Query board version information Set/query board name Query board identification Query power-on selftest results ?POWER ?AUXPS ?MEAS POS ?POS ENC ?ENC ?HOMESTAT ?HOMEPOS ?HOMEENC VELOCITY ?VELOCITY ACCTIME ?ACCTIME PCLOOP ?PCLOOP ESYNC MOVE RMOVE JOG ?JOG HOME CMOVE CJOG STOP ABORT Set/query motor power state Set/query auxiliary power supply state Query measured value Set/query axis position in axis units Set/query axis position in encoder steps Query home search status Query the found home position in axis units Query the found home position in encoder steps Set/query programmed axis velocity Set/query acceleration time Set/query current position closed loop mode Synchronise internal position registers Start absolute movement Start relative movement Set/query jog velocity Start home signal search sequence Start relative movement in configuration mode Set jog velocity in configuration mode Stop movement Abort movement INDEXER INFOA INFOB INFOC ?INDEXER ?INFOA ?INFOB ?INFOC Set/query indexer signal source Set/query InfoA signal source and polarity Set/query InfoB signal source and polarity Set/query InfoC signal source and polarity ?HELP ?ERRMSG ?FERRMSG ?BLINK ?TIME ?DEBUG Query list of available commands BLINK DEBUG ECHO NOECHO Query last command error message Query first error message Set/query remaining blinking time Query running time Set/query debug level Controller Select echo mode Cancel echo mode ?MEMORY ?ADDR 28 of 96 Query available memory Query board address DRAFT IN CONSTRUCTION Driver Page 31 64 84 90 34 91 92 42 37 39 89 66 57 71 72 35 62 69 45 56 55 54 88 32 68 48 65 78 61 53 41 40 85 30 58 59 59 59 52 47 IcePAP User Manual 49 36 87 43 44 67 63 33 SYSTEM COMMANDS Command MODE REPORT *PROG PROG RFPROG RESET ?MODE ?SYSSTAT ?STATUS ?FSTATUS ?REPORT ?VER ?RID ?RTEMP ?PROG POS ENC ?POS ?ENC ?FPOS ?HOMESTAT ?HOMEPOS ?HOMEENC VELOCITY ?VELOCITY ACCTIME ?ACCTIME MOVE RMOVE JOG ?JOG HOME STOP ABORT ?HELP ?ERRMSG ECHO NOECHO IcePAP User Manual Description Page Set/query system mode Query system configuration Query multiple board status Query multiple board fast status Set/query asynchronous report settings 64 86 84 51 74 Query system firmware version information 89 Query rack identification string Query rack temperatures 76 79 Firmware programming 73 Factory firmware programming 77 System or rack reset 75 Set/query multiple axis position in axis units Set/query multiple axis position in encoder steps Fast query of multiple board positions Query multiple axis home search status Query the found multiple axis home position in axis units Query the found multiple axis home position in encoder steps Set/query programmed multiple axis velocity Set/query acceleration time Start multiple axis absolute movement Start multiple axis relative movement Set/query multiple axis jog velocities Start multiple axis home signal search sequence Stop multiple axis movement Abort movement 69 45 50 56 55 54 88 32 65 78 61 53 85 30 Query list of available commands Query last command error message 52 47 Select serial line echo Cancel serial line echo 44 67 DRAFT IN CONSTRUCTION 29 of 96 5.1. Command reference ABORT Abort movement Syntax: :ABORT (board command) or ABORT [ [ … [ ]…]] (system command) Description: The ABORT command aborts all movement in the specified axis. When using the system command, if the command can not be issued for a certain axis, all the movements in the system will be aborted. If one of the explicitly aborted axis belongs to a predefined group, all the members of that group will be aborted. Examples: 30 of 96 Command: 16:ABORT Command: ABORT // abort all the axes in the system Command: ABORT 30 33 42 // abort axes 30, 33 and 42 Command: #ABORT 30 33 42 Answer: ABORT ERROR All axes aborted. Axis 33: Board is not present in the system Command: #ABORT 30 rrt 42 Answer: ABORT ERROR All axes aborted. Wrong parameter(s) DRAFT IN CONSTRUCTION IcePAP User Manual ?ACTIVE Query activation status Syntax: :?ACTIVE Answer: :?ACTIVE { YES | NO } Description: Returns the current activation status of a driver board. A driver will be active if the internal ACTIVE configuration parameter is set to YES and the board is not in PROG or TEST mode. Otherwise the ?ACTIVE query will return NO. When a driver board is not active, the motor power and the trajectory generation functions are disabled. (to be checked) The driver’s ACTIVE configuration parameter will be reset to the value NO at power on if: - the address of the driver has changed, for instance if the board has been moved to a different slot within the same system, - the driver board finds itself plugged in a different IcePAP system, i.e. the master crate AND the master controller are different than the previous ones - there is a firmware or a command set mismatch between the driver and the master controller board. A standalone driver (with no master controller) can be activated through the front panel serial line with the command SLACT. Examples: Command: 16:?ACTIVE Answer: 16:?ACTIVE YES IcePAP User Manual DRAFT IN CONSTRUCTION 31 of 96 ACCTIME / ?ACCTIME Set/query acceleration time Syntax: :ACCTIME [ ] (board command) or ACCTIME [ … [ ]…] (system command) Description: Sets the acceleration time for the corresponding axis to the values in seconds. The actual acceleration for each axis is calculated internally based on the current value of the axis velocity (see VELOCITY command). The acceleration time is internally recalculated every time that the axis velocity changes. Syntax: :?ACCTIME (board command) or ?ACCTIME [ [ … [ ]…]] (system command) Answer: :?ACCTIME (board answer) or ?ACCTIME … (system answer) Description: Returns the current acceleration time of the specified axes in seconds. Examples: 32 of 96 Command: 16:?ACCTIME Answer: 16:?ACCTIME 0.25 Command: 24:ACCTIME 0.1 Command: ?ACCTIME 16 24 Answer: ?ACCTIME 0.25 0.1 Command: ACCTIME 16 0.1 17 0.2 DRAFT IN CONSTRUCTION IcePAP User Manual ?ADDR Query board address Syntax: :?ADDR Answer: :?ADDR Description: The ?ADDR command returns the current board address. This command is only useful when the board is accessed through the local serial line interface. Examples: Command: 16:?ADDR Answer: ?ADDR 16 // useless information Access through the local serial line interface: Command: ? ADDR Answer: ?ADDR 16 IcePAP User Manual DRAFT IN CONSTRUCTION 33 of 96 ?ALARM Query board alarm message Syntax: :?ALARM Answer: :?ALARM { NO | } Description: If the board is disabled by an alarm condition, this query returns a string describing the such a condition. If not, the query returns the string NO. Possible alarm conditions are: Alarm Condition Internal failure Description Power-on self test (POST) or motor supply failure Motor failure Power overload Error detectred in motor connection Current of power overload Driver overheating The temperature of the driver board exceeds maximum value Close loop error The closed loop follow error exceeds the maximum value (see PCLERROR configuration parameter) The control encoder discrepancy exceeds the CTRLERROR configuration parameter The external alarm signal is active (see EXTALARM configuration parameter) Control encoder error External alarm Examples: 34 of 96 Command: 115:?ALARM Answer: 115:?ALARM Command: 115:#POWER ON Answer: 115:POWER OK Command: 115:?ALARM Answer: 115:?ALARM NO DRAFT IN CONSTRUCTION IcePAP User Manual AUXPS / ?AUXPS Set/query axis auxiliary power supply state Syntax: :AUXPS [ {ON | OFF} ] Description: Switches on or off the auxiliary power supply in a driver board. When the auxiliary power supply is switched off, the motor power is also switched off. Syntax: :?AUXPS Answer: :?AUXPS [ {ON | OFF} ] Description: Returns the state of the auxiliary power supply of the driver board. Examples: Command: 83:?AUXPS Answer: 83:?AUXPS ON Command: 83:AUXPS OFF Command: 83:?AUXPS Answer: 83:?AUXPS OFF IcePAP User Manual DRAFT IN CONSTRUCTION 35 of 96 BLINK / ?BLINK Set/query remaining blinking time Syntax: :BLINK Description: If is greater than zero, sets the board in blinking mode for a period given by in seconds. If is zero, this command stops blinking mode. Syntax: :?BLINK Answer: :?BLINK Description: Returns the remaining blinking time. Examples: 36 of 96 Command: 83:BLINK 10 Command: 83:?BLINK Answer: 83:?BLINK 8.4532 Command: 83:?BLINK Answer: 83:?BLINK 6.5439 DRAFT IN CONSTRUCTION IcePAP User Manual CFG / ?CFG Set/query configuration parameters Syntax: :CFG or :CFG { DEFAULT | EXPERT } Description: The CFG command allows to change the current values of the configuration parameters of a driver board. The driver has to be previously switched into configuration mode (see CONFIG command). The configuration of driver boards as well as the list of available parameters is detailed in chapter 2. The command CFG DEFAULT instructs the driver board to revert all its configuration parameters to the default values. The list of default values can be obtain from the driver by means of the ?CFG DEFAULT query. The command CFG EXPERT sets an internal flag that can be read back with the ?CFG query. This flag has not any specific function in the IcePAP system but it is provided as an facility to external configuration tools to confirm the validity of the current driver configuration when the driver boards are moved among systems. As the expert flag is cleared by any other CFG command, it must be set immediately before the configuration is validated by the CONFIG command. Syntax: :?CFG [ | DEFAULT | EXPERT ] Answer: :?CFG or :?CFG $ … $ Description: The ?CFG query returns the value assigned to a particular configuration parameter . If no parameter is specified, the query returns a multiline answer with the complete list of configuration parameters and their current values. If the DEFAULT keyword is used, instead of the current values, the ?CFG query returns the complete list of configuration parameters and their default values. If the EXPERT keyword is used as a parameter name, the ?CFG query returns the value of the internal expert flag set by the CFG EXPERT command and cleared by any other CFG command. The value is returned as a YES/NO boolean value. Note however that EXPERT is not a configuration parameter. IcePAP User Manual DRAFT IN CONSTRUCTION 37 of 96 Examples: 38 of 96 Command: 15:CFG DEFAULT Command: 15:?CFG NCURR Answer: 15:?CFG NCURR 0.1 Command: 15:CFG NCURR 2.4 Command: 15:?CFG Answer: 15:?CFG $ ACTIVE NO PROTLEVEL 0 NAMELOCK NO POWERON NO MOTPHASES 2 MOTORSENSE NORMAL MOTPOLES 50 MREGMODE CURR ... NCURR 2.4 ... INFCSOURCE Home INFCPOL NORMAL $ Command: 23:?CFG EXPERT Answer: 23:?CFG EXPERT NO DRAFT IN CONSTRUCTION IcePAP User Manual ?CFGINFO Query configuration parameter info Syntax: :?CFGINFO [ ] Answer: :?CFGINFO {INTEGER | FLOAT | labelList } or :?CFGINFO $ {INTEGER | FLOAT | labelList1 } {INTEGER | FLOAT | labelList2 } … {INTEGER | FLOAT | labelListN } $ Where labelList is a list of character strings separated by whitespaces and enclosed in curly braces ({}). [FLAG LIST descriptionmissing] Description: The ?CFGINFO query returns the type of the configuration parameter . Possible types are numeric (INTEGER or FLOAT) or string. In the case of strings the query returns the list of acceptable values. If no parameter is specified, the query returns a multiline answer with the complete list of type information for all the driver configuration parameters. Examples: Command: 7:?CFGINFO NCURR Answer: 7:?CFGINFO FLOAT Command: 103:?CFGINFO Answer: 103:?CFGINFO $ ACTIVE {NO YES} PROTLEVEL INTEGER NAMELOCK {NO YES} POWERON {NO YES} MOTPHASES {1 2 3} MOTORSENSE {NORMAL INVERTED} ... INFCPOL {NORMAL INVERTED} $ IcePAP User Manual DRAFT IN CONSTRUCTION 39 of 96 CJOG Set jog velocity in configuration mode Syntax: :CJOG Description: Sets the specified axis or axes in jog mode at the given velocity in steps per second. This command can only be executed when the driver is in configuration mode. The sign of the velocity parameter selects the actual direction of the movement. If a specified axis is already jogging at a certain speed, the speed will be ramped up or down as needed to reach the new velocity value. The acceleration is fixed as the ratio of the current values of axis velocity and acceleration time (see ?VELOCITY and ?ACCTIME queries). A zero velocity value forces an axis to stop. Examples: 40 of 96 Command: 5:CJOG 100 Command: 5:?JOG Answer: 5:?JOG 100 Command: #5:CJOG 200 Answer: 5:CJOG OK Command: #5:CJOG -200 Answer: 3:CJOG ERROR Cannot change jog direction DRAFT IN CONSTRUCTION IcePAP User Manual CMOVE Start absolute movement in configuration mode Syntax: :CMOVE Description: Performs an absolute movement on the specified driver board. This command can only be executed when the driver is in configuration mode. Examples: Command: 115:CMOVE -7000 Command: 115:?POS Answer: 115:?POS -7000 IcePAP User Manual DRAFT IN CONSTRUCTION 41 of 96 CONFIG / ?CONFIG Manage configuration mode Syntax: :CONFIG [ ] Description: The CONFIG command allows to switch a driver board into configuration mode. A driver board cannot be switched into configuration mode when the IcePAP system is in PROG or TEST modes (see MODE command). When a driver is in configuration mode, the driver configuration parameters can be modified with the CFG command. Once the configuration has been modified, the CONFIG command, issued with a non empty string as parameter, validates the current configuration and stores it in the internal non volatile memory of the driver board. The string is also stored in the driver and can be used to identify the particular set of configuration parameters. The board also switches back to OPER mode. If the driver is in configuration mode and the CONFIG command is issued with no parameters, the driver goes back to OPER mode and the last valid configuration before entering CONFIG mode is reloaded. In that case the most recent changes done during configuration mode are lost. Syntax: :?CONFIG Answer: :?CONFIG Description: The ?CONFIG query returns the identifier of the last valid configuration parameter set. Examples: 42 of 96 Command: 32:?CFG ACTIVE Answer: 32:?CFG ACTIVE NO Command: ?MODE Answer: ?MODE OPER // System mode is OPER Command: 32:CONFIG // Switch axis 32 into CONFIG mode Command: 32:?MODE Answer: 32:?MODE CONFIG Command: 32:CFG ACTIVE YES // Change configuration parameter Command: 32:CONFIG CONF001 // Validate driver configuration Command: 32:?CFG ACTIVE Answer: 32:?CFG YES DRAFT IN CONSTRUCTION IcePAP User Manual DEBUG / ?DEBUG Set/query debug level Syntax: :DEBUG Description: Sets the level of the debug facility to . If the level is set to 0, the debug facility is switched off. The debug level is stored in the board non-volatile memory and it is maintained after board reset. Syntax: :?DEBUG Answer: :?DEBUG Description: Returns the current level of the debug facility. Examples: Command: 15:?DEBUG Answer: 15:?DEBUG 0 Command: 15:DEBUG 2 Command: 15:?DEBUG Answer: 15:?DEBUG 2 IcePAP User Manual DRAFT IN CONSTRUCTION 43 of 96 ECHO Set echo mode Syntax: ECHO (system command) or :ECHO (board command) Description: Switches the echo mode on. Useful when accessing boards through the serial line. Example: 44 of 96 Command: ECHO Command: 92:ECHO DRAFT IN CONSTRUCTION IcePAP User Manual ENC / ?ENC Set/query axis position in encoder steps Syntax: :ENC [ pos_sel ] (board command) or ENC [ pos_sel ] … (system command) Description: Loads the position registers in the specified boards with the values. The specific register is selected by the optional parameter pos_sel, that must be one of the following values: pos_sel Position register AXIS INDEXER Points to the register configured as POSSRC Points to the register used as indexer (see INDEXER command) EXTERR [???] Points to the register configured as SHFTENC SHFTENC TGTENC Points to the register configured as TGTENC ENCIN ENCIN register INPOS INPOS register ABSENC ABSENC register MOTOR MOTOR register Only valid for driver boards If position is not specified, the value is loaded in the axis position register Syntax: :?ENC [ pos_sel ] (board query) or ?ENC [ pos_sel ] … (system query) Answer: :?ENC (board answer) or ?ENC … (system answer) Description: Returns the current signal source used as axis indexer. Examples: IcePAP User Manual DRAFT IN CONSTRUCTION 45 of 96 46 of 96 Command: 115:ENC AXIS 500 Command: 115:ENC INDEXER -3000 Command: 115:?ENC Answer: 115:?ENC 500 Command: ?ENC INDEXER 5 115 Answer: ?ENC 13467895 -3000 DRAFT IN CONSTRUCTION IcePAP User Manual ?ERRMSG Query last command error message Syntax: ?ERRMSG (system or local board query) Answer: ?ERRMSG [ ] (system or local board answer) Description: If the previous command produced an error, the ?ERRMSG query returns the error message as an ASCII string. If the previous command was successful, the ?ERRMSG query returns and empty string. This command will retrieve the last error, regardless whether the previous command was a system command or a board command. The system does not accept it as board command if it is not issued through the serial line. Example: Command: ?VER Answer: ?VER 1.00 Command: ?ERRMSG Answer: ?ERRMSG Command: 15:VELOCITY 0 Command: 15:?ERRMSG Answer: 15:?ERRMSG Out of range value IcePAP User Manual DRAFT IN CONSTRUCTION 47 of 96 ESYNC Synchronise internal position registers Syntax: :ESYNC Description: This command forces the value in all the position register that are linked to the axis to be synchronised with the axis position source. [TODO: needs further explanation] Examples: 48 of 96 Command: 11:?POS INDEXER Answer: 11:?POS 1364 Command: 11:?POS TGTENC Answer: 11:?POS 1232 Command: 11:?CFG POSSRC Answer: 11:?CFG POSSRC INDEXER Command: #11:ESYNC Answer: 11:ESYNC OK Command: 11:?POS INDEXER Answer: 11:?POS 1364 Command: 11:?POS TGTENC Answer: 11:?POS 1364 DRAFT IN CONSTRUCTION IcePAP User Manual ?FERRMSG Query first error message Syntax: :?FERRMSG Answer: :?FERRMSG [command ] Description: Returns the message for the first command error that was produced since the last time the ?FERRMSG query was issued. The query returns the command that produced the error and the error message an as ASCII string. [TODO: Explain difference: system errors, board errors]. Example: Command: ?VER Answer: ?VER 1.00 Command: ?FERRMSG Answer: ?FERRMSG Command: 15:VELOCITY 0 Command: 15:?FERRMSG Answer: 15:?FERRMSG Out of range value IcePAP User Manual DRAFT IN CONSTRUCTION 49 of 96 ?FPOS Fast query of multiple board positions Syntax: ?FPOS [ pos_sel ] … Answer: ?FPOS … Description: Returns the positions for the specified axes. The specific position is selected by the optional parameter pos_sel, that must be one of the following values: pos_sel AXIS INDEXER Position register Points to the register configured as POSSRC Points to the register used as indexer (see INDEXER command) If pos_sel is not specified, the values returned are the axis positions Examples: 50 of 96 Command: ?FPOS INDEXER 17 18 19 Answer: ?FPOS 13467895 0 -3000 Command: ?FPOS 25 Answer: ?FPOS 5366703 DRAFT IN CONSTRUCTION IcePAP User Manual ?FSTATUS Fast query of multiple board status Syntax: ?FSTATUS … Answer: ?FSTATUS … Description: Returns the value of the current status of the selected boards as 32-bit values in C-like hexadecimal notation. ?FSTATUS is a system query that is managed exclusively by the master system controller. ?FSTATUS returns values stored in the system controller that are updated every time that any bit in the status word of a board changes. The ?FSTATUS query is intended to be used for frequent polling from the control host, as it is faster as it presents less latency than ?STATUS, and it does not load the internal communication bus. Example: Command: ?FSTATUS 80 83 85 Answer: ?FSTATUS 0x00000003 0x00000003 0x00000003 IcePAP User Manual DRAFT IN CONSTRUCTION 51 of 96 ?HELP Query list of available commands Syntax: :?HELP (board command) or ?HELP (system command) Description: Returns the list of available commands and queries. The list differs between system, controller and driver commands. Examples: Command: 16:?HELP Answer: $ RESET ?HDWVER ?STATE ?RETCODE CLEAR ?LIST RUN $ 52 of 96 DRAFT IN CONSTRUCTION IcePAP User Manual HOME Start home signal search sequence Syntax: :HOME {+1 | 0 | -1} (driver command) or HOME [GROUP] {+1 | 0 | -1} … {+1 | 0 | -1} (system command) Description: Starts a home search sequence in the direction specified by the direction parameter. Positive and negative directions are selected by the values +1 and -1 respectively. The HOME command will start a homing sequence only if the source for the homing reference signal has been previously selected by setting the HOMESRC configuration parameter to a value different from NONE. Otherwise the HOME command produces an error. The direction parameter can be set to 0 for a given axis only if the AUTODIR flag is set in the HOMEFLAGS configuration parameter for that axis. In that case the search direction of the homing sequence is determined from the logic value of the homing reference signal as it is described in 2.2.2. If the direction parameter is set to 0 for a given axis but the AUTODIR flag is not set, the HOME command produces an error. Examples: Command: 16:?HOMESTAT Answer: 16:?HOMESTAT NOTFOUND 0 Command: 16:HOME +1 Command: 16:?HOMESTAT Answer: 16:?HOMESTAT MOVING +1 Command: 16:?HOMESTAT Answer: 16:?HOMESTAT MOVING -1 Command: 16:?HOMESTAT Answer: 16:?HOMESTAT FOUND -1 IcePAP User Manual DRAFT IN CONSTRUCTION 53 of 96 ?HOMEENC Query the found home position in encoder steps Syntax: :?HOMEENC [ pos_sel ] (driver command) or ?HOMEENC [ pos_sel ] … (system command) Description: Query the position registers latched when the configured homing signal event arrived. The answer is a number of encoder steps. If no homing latch event happened after the last home search, an error is issued The specific register is selected by the optional parameter pos_sel, that must be one of the following values: pos_sel AXIS INDEXER Position register POSERR SHFTENC TGTENC ENCIN INPOS ABSENC MOTOR Only valid for driver boards If pos_sel is not specified, the value returned is axis position at homing latch event. Examples: Command: 16:?HOMEPOS 16:?HOMEPOS ERROR Last home search was not successful Answer: 54 of 96 Command: 16:HOME +1 Command: 16:?HOMESTAT Answer: 16:?HOMESTAT FOUND -1 Command: 16:?HOMEENC Answer: 16:?HOMEENC 12345 Command: 16:?HOMEENC TGTENC Answer: 16:?HOMEENC 12350 DRAFT IN CONSTRUCTION IcePAP User Manual ?HOMEPOS Query the found home position in axis units Syntax: :?HOMEPOS [ pos_sel ] (driver command) or ?HOMEPOS [ pos_sel ] … (system command) Description: Query the position registers latched when the configured homing signal event arrived. The answer is a number of steps in axis units. If no homing latch event happened after the last home search, an error is issued The specific register is selected by the optional parameter pos_sel, that must be one of the following values: pos_sel AXIS INDEXER Position register POSERR SHFTENC TGTENC ENCIN INPOS ABSENC MOTOR Only valid for driver boards If pos_sel is not specified, the value returned is axis position at homing latch event. Examples: Command: 16:?HOMEPOS 16:?HOMEPOS ERROR Last home search was not successful Answer: Command: 16:HOME +1 Command: 16:?HOMESTAT Answer: 16:?HOMESTAT FOUND -1 Command: 16:?HOMEPOS Answer: 16:?HOMEPOS 12345 Command: 16:?HOMEPOS TGTENC Answer: 16:?HOMEPOS 12350 IcePAP User Manual DRAFT IN CONSTRUCTION 55 of 96 ?HOMESTAT Query home search status Syntax: :?HOMESTAT (driver command) or ?HOMESTAT … (system command) Answer: :?HOMESTAT {MOVING | FOUND | NOTFOUND} {+1| 0 |-1}(driver answer) or ?HOMESTAT hStatus1 hDirection1 … hStatusN hDirectionN (system answer) where home_status is one of MOVING, FOUND or NOTFOUND and home_dir is one of +1, 0 or -1 Description: Query information about the ongoing or previous home search sequence. If the homing sequence is in progress, ?HOMESTAT returns MOVING as hStatus keyword. If the sequence is finished, the query returns either FOUND or NOTFOUND depending on whether the home search succeeded or not. The numeric value hDirection after the hStatus keyword, represents the direction of motion, -1 or +1, either during the search sequence or when the search is successfully completed. If the homing sequence fails, the returned hDirection value is 0. Examples: 56 of 96 Command: 16:?HOMESTAT Answer: 16:?HOMESTAT NOTFOUND 0 Command: 16:HOME + Command: 16:?HOMESTAT Answer: 16:?HOMESTAT MOVING +1 DRAFT IN CONSTRUCTION IcePAP User Manual ?ID Query board identification Syntax: :?ID [ { HW | SN } ] Answer: :?ID { | } Description: The ?ID query returns either the hardware identification string or the serial number as default the HW is return. Examples: Command: 16:?ID Answer: ?ID xxxx.xxxx.xxxx Command: 31:?ID SN Answer: ?ID 0034-44587 IcePAP User Manual DRAFT IN CONSTRUCTION 57 of 96 INDEXER / ?INDEXER Select/query indexer signal source Syntax: :INDEXER [{ INTERNAL | SYNC | INPOS | ENCIN }] Description: Selects the signal source used for the axis indexer. If no value is specified, the indexer source is set to the default value defined by the configuration parameters (see CFG INDEXER). Available signal sources: Source INTERNAL Indexer signal Internally generated indexer is used SYNC INPOS Sync signal distributed through the rack backplane InPos signal at the front panel connector (Axis Interface) ENCIN EncIn signal at the rear panel Syntax: :?INDEXER Answer: :INDEXER { INTERNAL | SYNC | INPOS | ENCIN } Description: Returns the current signal source used as axis indexer. Examples: 58 of 96 Command: 34:?CFG INDEXER Answer: 34:?CFG INDEXER INTERNAL // the default is INTERNAL Command: 34:INDEXER SYNC // change the indexer source Command: 34:?INDEXER Answer: 34:?INDEXER SYNC Command: 34:INDEXER Command: 34:?INDEXER Answer: 34:?INDEXER INTERNAL // set the default value back DRAFT IN CONSTRUCTION IcePAP User Manual INFOA / ?INFOA INFOB / ?INFOB INFOC / ?INFOC Set/query info signal source and polarity Syntax: :INFOx [ signal_source [ {NORMAL | INVERTED} ] ] where INFOx is one of INFOA, INFOB or INFOC. Description: Configures the Info outputs. If the polarity is not specified it is set to NORMAL. If signal_source is not specified, the signal is configured to the default value. Possible values of signal_source are: Source LOW HIGH LIM+ LIMHOME ENCAUX INPAUX SYNCAUX ENABLE ALARM READY MOVING BOOST STEADY .MAIN .ISR ... low logic level high logic level limit- signal limit+ signal home signal EncAux signal InPosAux signal SyncAux signal power enable alarm condition axis ready axis moving axis in acceleration phase axis moving at constant velocity internal signals (only for diagnostic) Syntax: :?INFOx where ?INFOx is one of ?INFOA, ?INFOB or ?INFOC Answer: :INFOx signal_source {NORMAL | INVERTED} where signal_source is one of the possible values presented above. Description: Returns the configuration of the corresponding Info output signal. IcePAP User Manual DRAFT IN CONSTRUCTION 59 of 96 Examples: 60 of 96 Command: 12:INFOB READY Command: ?12:INFOB Answer: ?12:INFOB READY NORMAL DRAFT IN CONSTRUCTION IcePAP User Manual JOG / ?JOG Set/query jog velocity Syntax: :JOG (board command) or JOG [GROUP] … (system command) Description: Sets the specified axis or axes in jog mode at the given velocity in steps per second. The sign of the velocity parameter selects the actual direction of the movement. If a specified axis is already jogging at a certain speed, the speed will be ramped up or down as needed to reach the new velocity value. The acceleration is fixed as the ratio of the current values of axis velocity and acceleration time (see ?VELOCITY and ?ACCTIME queries). A zero velocity value forces an axis to stop. If the GROUP keyword is used with the JOG system command, the set of axes is managed as a group by the system controller as described in 2.2.2. Syntax: :?JOG (board query) or ?JOG … (system query) Answer: :?JOG < signedVelocity > (board answer) or ?JOG < signedVel1> < signedVel2> … < signedVelN> (system answer) Description: Returns the current jog velocities of the specified axes in steps per second. If an axis is not in jog mod, a zero velocity value is returned. Examples: Command: 5:JOG 100 Command: 5:?JOG Answer: 5:?JOG 100 Command: #5:JOG 200 Answer: 5:JOG OK Command: #5:JOG -200 Answer: 3:JOG Command: JOG 5 200 23 100 IcePAP User Manual ERROR Cannot change jog direction DRAFT IN CONSTRUCTION 61 of 96 ?MEAS Query measured value Syntax: :?MEAS { VCC | VM | I | IA | IB | IC | T | RT} Answer: :?MEAS Description: Returns a measured value for the specified axes. The of the possible measured values and their meaning is compiled in the following table: magnitude VCC VM description Main power supply voltage Motor voltage units volts volts applies to: only drivers only drivers I IA Motor current Phase A current amps amps only drivers only drivers IB IC Phase B current Phase C current amps amps only drivers only drivers R RA Motor resistance Phase A resistance ohms ohms only drivers only drivers RB RC Phase B resistance Phase C resistance ohms ohms only drivers only drivers T RT Board temperature Power supply temperature °C °C controllers and drivers only controllers Examples: 62 of 96 Command: 15:?MEAS VCC Answer: 15:?MEAS 80.1 Command: 15:?MEAS T Answer: 15:?MEAS 24 DRAFT IN CONSTRUCTION IcePAP User Manual ?MEMORY Query available memory Syntax: :?MEMORY Answer: :?MEMORY Description: Returns the amount of total user memory , unused memory and the size of biggest available memory block . All the three quantities are returned in bytes. Examples: Command: 15:?MEMORY Answer: 15:?MEMORY ??? ??? ??? IcePAP User Manual DRAFT IN CONSTRUCTION 63 of 96 MODE / ?MODE Set/query board or system mode Syntax: MODE { OPER | PROG | TEST } (system command) Description: Changes the mode of the IcePAP system to operation (OPER), firmware reprogramming (PROG) or factory test (TEST) modes. In normal operation, the system must be always set in mode OPER. Syntax: Answer: ?MODE { OPER | PROG | TEST } (system answer) or :?MODE { CONFIG | OPER | PROG | TEST | FAIL } (board answer) Description: Returns the current mode of the system or the specific mode of one of the boards (controllers or drivers). In normal conditions, all the boards should return the same mode than the system. If a particular driver is switched into configuration mode (see CONFIG command), the returned mode is CONFIG for that driver (note that CONFIG is not a system mode selectable by the MODE command). If a non recoverable internal hardware error happens in a particular board, that board switches FAIL mode. Examples: 64 of 96 Command: ?MODE Answer: ?MODE OPER Command: 25:?MODE Answer: 25:?MODE OPER Command: 25:CONFIG Command: 25:?MODE Answer: 25:?MODE CONFIG Command: ?MODE Answer: ?MODE OPER DRAFT IN CONSTRUCTION IcePAP User Manual MOVE Start absolute movement Syntax: :MOVE (board command) or MOVE [GROUP] … (system command) Description: Performs an absolute movement on the specified axis or axes. If the GROUP keyword is used with the MOVE system command, the set of axes is managed as a group by the system controller as described in 2.2.2. Examples: Command: 115:MOVE 4000 Command: MOVE 115 4000 Command: MOVE 31 250000 32 -29888 33 250000 IcePAP User Manual DRAFT IN CONSTRUCTION 65 of 96 NAME / ?NAME Set/query board name Syntax: :NAME Description: Sets the internal board name to the ASCII string . This name is only used for identification purposes and user convenience. The maximum length is 20 [TODO: CHECK] characters . If the name is locked (configuration parameter NAMELOCK = YES) , this command will not have any effect. Syntax: :?NAME Answer: :?NAME Description: Returns the board name string. Examples: 66 of 96 Command: #11:NAME phi Answer: 11:NAME OK Command: 12:?NAME Answer: 12:?NAME th Command: #12:NAME tth Answer: 12:NAME ERROR The name of this board is locked DRAFT IN CONSTRUCTION IcePAP User Manual NOECHO Cancel echo mode Syntax: NOECHO (system command) or :NOECHO (board command) Description: Switches the echo mode off. See the ECHO command for more details. Only applies for serial line communication. Example: Command: NOECHO Command: 2:NOECHO IcePAP User Manual DRAFT IN CONSTRUCTION 67 of 96 PCLOOP / ?PCLOOP Set/query current position closed loop mode Syntax: :PCLOOP {ON | OFF} Description: Activates/deactivates the position closed loop. In order to activate the position closed loop, a target encoder must be configured (configuration parameter TGTENC must be different from NONE), and the difference between the position values in tgtenc and indexer must be inside the range +/PCLERROR(see configuration parameters Syntax: :?PCLOOP Answer: :?PCLOOP {ON | OFF} Description: Returns the current position closed loop mode. Examples: 68 of 96 Command: 15:PCLOOP ON Command: 15:?PCLOOP Answer: 15:?PCLOOP ON DRAFT IN CONSTRUCTION IcePAP User Manual POS / ?POS Set/query axis position in axis units Syntax: :POS [ pos_sel ] (board command) or POS [ pos_sel ] … (system command) Description: Loads the position registers in the specified boards with the values. The specific register is selected by the optional parameter pos_sel, that must be one of the following values: pos_sel AXIS Position register INDEXER POSERR SHFTENC TGTENC ENCIN INPOS ABSENC MOTOR Only valid for driver boards If position is not specified, the value is loaded as axis position Syntax: :?POS [ pos_sel ] (board query) or ?POS [ pos_sel ] … (system query) Answer: :?POS (board answer) or :?POS … (system answer) Description: Returns the current signal source used as axis indexer. Examples: IcePAP User Manual DRAFT IN CONSTRUCTION 69 of 96 70 of 96 Command: 115:POS AXIS 500 Command: 115:POS INDEXER -3000 Command: 115:?POS Answer: 115:?POS 500 Command: ?POS INDEXER 5 115 Answer: ?POS 13467895 -3000 DRAFT IN CONSTRUCTION IcePAP User Manual ?POST Query power-on selftest results Syntax: :?POST Answer: :?POST Description: Returns the result of the power-on self tests as an binary mask . A bit set to one in the mask indicates that a particular test has failed. If no tests failed during the power-on sequence, this query returns zero. The meaning of the individual bits in is summarised in the following table: bit 0x01 0x02 subsystem under test external RAM non volatile FRAM applies to: controllers and drivers controllers and drivers 0x04 0x08 internal 1-wire bus ADC controllers and drivers only drivers 0x10 0x20 FPGA external 1-wire bus controllers and drivers only controllers 0x40 CANbus only controllers Examples: Command: 115:?POST Answer: 115:?POST 0 IcePAP User Manual DRAFT IN CONSTRUCTION 71 of 96 POWER / ?POWER Set/query motor power state Syntax: :POWER [ {ON | OFF} ] Description: Switches on or off the motor power in a driver board. Syntax: :?POWER Answer: :?POWER {ON | OFF} Description: Returns the power state of the driver board. Examples: 72 of 96 Command: 115:POWER OFF Answer: 115:POWER OFF DRAFT IN CONSTRUCTION IcePAP User Manual *PROG / PROG / ?PROG Firmware programming Syntax: *PROG {NONE | | DRIVERS | CONTROLLERS | ALL} [ FORCE ] [ SAVE ] PROG { | DRIVERS | CONTROLLERS | ALL} [ FORCE ] Description: The *PROG command reprograms the components of the IcePAP system by using firmware code that is transferred as a binary data block (see xxx). If the SAVE flag is used, the firmware code is stored in the non volatile FLASH memory of the system master board. A mandatory parameter specifies the components to program, that can be either the components in the board with address , in all the driver boards (DRIVERS), in all controller boards (CONTROLLERS) or in both (ALL). If the parameter is set to NONE, no components are programmed, but the *PROG command can be use to store the firmware code in the system if the SAVE flag is used. If one of the components in the system is already programmed with the same version of firmware, the programming operation for that specific component is skipped. This behaviour changes if the FORCE flag is used. In that case the components in the selected boards are always reprogrammed regardless of their current firmware version. The *PROG command initiates the internal programming procedure and completes successfully if it started succesfully. The actual progress and the final success of the programming operation can be monitored by means of the ?PROG query. The PROG command works in the same way than *PROG but uses the firmware code that was previously stored in the non volatile FLASH memory of the system master board by a previous *PROG SAVE commad. Syntax: ?PROG Answer: ?PROG [ {OFF | ACTIVE