IcePAP_UserManual_working Ice PAP User Manual Working

IcePAP_UserManual_working

IcePAP_UserManual_working

User Manual: Pdf

Open the PDF directly: View PDF PDF.
Page Count: 96

DownloadIcePAP_UserManual_working Ice PAP User Manual Working
Open PDF In BrowserView 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.

PROTLEVEL 

Protection 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  | DONE | ERROR} ]
Description:
Returns the state of firmware programming operations.

Examples:

IcePAP User Manual

DRAFT IN CONSTRUCTION

73 of 96

REPORT / ?REPORT
Set/query asynchronous report settings
Syntax:
REPORT { ON | OFF } [   [ ] ]
Description:
The REPORT command allows to activate (ON) or deactivate (OFF) the asynchronous
reporting feature on the current communication port. When asynchronous reporting is
active in a particular port (RS232 serial line or TCP socket), the IcePAP master controller
sends binary data blocks containing status and position information through that port to
the listening device, usually the host computer. The binary blocks contain status and
position information as the values returned by the ?FSTATUS and ?FPOS queries.
The data blocks contain the status as well as the axis and indexer positions for all the
boards in the selected racks. The data block is sent whenever the data in the system
master board changes or after a time interval of  seconds.
The block includes data from all the boards in the racks from  to 
that must be numbers from 0 to 15.
The format of the binary blocks is the following:
[TODO: explain block format and structure]

Syntax:
?REPORT
Answer:
?REPORT { ON | OFF }   
Description:
Returns the status and range of the asynchronous status reporting feature.

Examples:

74 of 96

DRAFT IN CONSTRUCTION

IcePAP User Manual

RESET
System or rack reset
Syntax:
RESET [  ]

Description:
Resets the given rack or the whole system if no parameter is added.

Examples:
Command:

RESET

Command:

RESET 8

IcePAP User Manual

DRAFT IN CONSTRUCTION

75 of 96

?RID
Query rack hardware identification string
Syntax:
?RID [   ...  ]
Answer:
?RID   ... 
Description:
The ?RID query returns the hardware identification strings of the racks specified by the
list of rack numbers. If the query is issued with no parameters, it returns the identification
strings of the rack 0 (the one hosting the system master controller).

Examples:

76 of 96

Command:

?RID 0

Answer:

?RID XXXX.XXXX.XXXX

Command:

?RID

Answer:

?RID XXXX.XXXX.XXXX

Command:

?RID 5 6

Answer:

?RID YYYY.YYYY.YYYY ZZZZ.ZZZZ.ZZZZ

//rack 0 ID string

DRAFT IN CONSTRUCTION

IcePAP User Manual

RFPROG
Factory firmware programming
Syntax:
RFPROG [   ...  ]

Description:
The RFPROG command is intended to reload the firmware in IcePAP driver boards that
are not responsive or that have never been programmed (i.e after manufacturing). It
cannot be used to reload firmware in controller boards and should not be used in normal
operation instead of the PROG command.
RFPROG initiates the programming procedure of all the driver boards in the racks
specified in the command line. If the command is issued with no parameters, it initiates
the programming of the drivers boards in all the racks present in the system.
The system uses the firmware code that was stored in the non volatile FLASH memory of
the system master board by a previous *PROG SAVE command.
The progress of the programming procedure can be followed by means of the ?PROG
query.

Examples:
Command:

MODE PROG

Command:

*PROG NONE SAVE
[firmware as binary data block]

Command:

RFPROG
(wait some time)

Command:

?PROG

Answer:

?PROG ACTIVE 37%
(wait for full reprogramming)

Command:

?PROG

Answer:

?PROG DONE

IcePAP User Manual

DRAFT IN CONSTRUCTION

77 of 96

RMOVE
Start relative movement
Syntax:
:RMOVE 

(board command)

or
RMOVE   

(system command)

Description:
Performs a relative movement on the specified axis or axes.
If the GROUP keyword is used with the RMOVE system command, the set of axes is
managed as a group by the system controller as described in 2.2.2.

Examples:

78 of 96

Command:

115:?POS

Answer:

115:?POS 5000

Command:

115:RMOVE -7000

Command:

115:?POS

Answer:

115:?POS -2000

Command:

RMOVE 115 -7000

Command:

RMOVE 31 250000 32 -29888 33 250000

DRAFT IN CONSTRUCTION

IcePAP User Manual

?RTEMP
Query rack temperatures
Syntax:
?RTEMP [   ...  ]
Answer:
?RTEMP   ... 
Description:
The ?RTEMP query returns the temperature of the main power supply of the racks
specified by the list of rack numbers. If the query is issued with no parameters, it returns
the temperatures of the rack with lowest number (the one hosting the system master
controller).

Examples:
Command:

?RTEMP 0

Answer:

?RTEMP 35

Command:

?RTEMP

Answer:

?RTEMP 35

Command:

?RTEMP 0 2 5

Answer:

?RTEMP 35 32 31

IcePAP User Manual

DRAFT IN CONSTRUCTION

79 of 96

SRCH
Start signal search sequence
Syntax:
:SRCH  [   ]

(driver command)

With:
 = {Lim- | Lim+ | Home | EncAux | InpAux}
 = {POSEDGE | NEGEDGE}
 = {+1 | -1}

Description:
Starts a signal search sequence.
The  parameter is mandatory.
 and  parameters are ignored if the  parameter is either
lim- or lim+, otherwhise these parameters have to be specified.
The search is done in the direction specified by . Positive and negative
directions are selected by the values +1 and -1 respectively.
 corresponds to the transition of the signal that defines the reference to
search, posedge being a transition from inactive to active.
If the  parameter is lim- or lim+, the direction and edge type will be selected
automatically in order to start the search towards the specified limit switch position.

Examples:
Command:

16:?SRCHSTAT

Answer:

16:?SRCHSTAT NOTFOUND 0

Command:

16:SRCH HOME POSEDGE +1

Command:

16:?SRCHSTAT

Answer:

16:?SRCHSTAT MOVING +1

Command:

16:?SRCHSTAT FOUND +1

Answer:

16:SRCH LIM-

[. . .]

80 of 96

Command:

16:?SRCHSTAT

Answer:

16:?SRCHSTAT FOUND -1

DRAFT IN CONSTRUCTION

IcePAP User Manual

?SRCHENC
Query the found signal search position in encoder steps
Syntax:
:?SRCHENC [ pos_sel ]

(driver command)

Description:
Query the position registers latched when the signal event arrived during a signal search
command. The answer is a number of encoder steps, the resolution being the one
configured for the selected encoder.
If no signal search latch event happened after the last 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

Position register

INDEXER
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 signal latch event.

Examples:
Command:

16:?SRCHPOS

16:?SRCHPOS ERROR Last home search was not
successful

Answer:

Command:

16:SRCH LIM+

Command:

16:?SRCHSTAT

Answer:

16:?SRCHSTAT FOUND +1

Command:

16:?SRCHENC

Answer:

16:?SRCHENC 12345

Command:

16:?SRCHENC TGTENC

Answer:

16:?SRCHENC 24700

IcePAP User Manual

DRAFT IN CONSTRUCTION

81 of 96

?SRCHPOS
Query the found home position in axis units
Syntax:
:?SRCHPOS [ pos_sel ]

(driver command)

Description:
Query the position registers latched latched when the signal event arrived during a signal
search command.
The answer is a number of steps in axis units.
If no signal search latch event happened after the last 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 signal latch event.

Examples:
Command:

16:?SRCHPOS

16:?SRCHPOS ERROR Last home search was not
successful

Answer:

82 of 96

Command:

16:SRCH LIM1

Command:

16:?SRCHSTAT

Answer:

16:?SRCHSTAT FOUND +1

Command:

16:?SRCHPOS

Answer:

16:?SRCHPOS 12345

Command:

16:?SRCHPOS TGTENC

Answer:

16:?SRCHPOS 12350

DRAFT IN CONSTRUCTION

IcePAP User Manual

?SRCHSTAT
Query signal search status
Syntax:
:?SRCHSTAT

(driver command)

Answer:
:?HOMESTAT {MOVING | FOUND | NOTFOUND} {+1| 0 |-1}(driver answer)
Description:
Query information about the ongoing or previous signal search sequence. If the
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:
Command:

16:?SRCHSTAT

Answer:

16:?SRCHSTAT NOTFOUND 0

Command:

16:SRCH LIM+

Command:

16:?SRCHSTAT

Answer:

16:?SRCHSTAT MOVING +1

Command:

16:?SRCHSTAT

Answer:

16:?SRCHSTAT FOUND +1

IcePAP User Manual

DRAFT IN CONSTRUCTION

83 of 96

?STATUS
Query board status
Syntax:
:?STATUS

(board query)

or
?STATUS  

(system query)

Answer:
:?STATUS 

(board answer)

or
?STATUS  

(system answer)

Description:
Returns the current status words of the specified boards as 32-bit values in C-like
hexadecimal notation.
The system query ?STATUS can be used to return the status of any number of boards in
the system. In that case the status value is sampled simultaneously in all the boards.
Note that in the cases of very frequent status polling, the ?FSTATUS query may be
preferred to ?STATUS as ?FSTATUS returns values stored in the system controller and
therefore suffers from shorter execution latency. ?STATUS on the other hand returns the
status information stored in the boards and therefore guarantees more up to date values.

Example:

84 of 96

Command:

53:?STATUS

Answer:

53:?STATUS 0x00000003

Command:

?STATUS 80 83 85

Answer:

?STATUS 0x002c0403 0x00200403 0x00000403

DRAFT IN CONSTRUCTION

IcePAP User Manual

STOP
Stop movement
Syntax:
:STOP

(board command)

or
STOP [  ]

(system command)

Description:
The STOP command finalises the movement in the given axes with a normal deceleration
ramp.
If any of the axis is included in one of the currently active axis groups (see 2.2.2), all the
other axes of the corresponding group are also stopped.
For security reasons, if the STOP system command fails or any error happens, all the
boards in the system are instructed to stop their movements.

Examples:
Command:

10:STOP

Command:

STOP

Command:

#STOP 30 33 42

Answer:

STOP ERROR All axes stopped, cause in axis 33:
Board is not present in the system

Command:

#STOP 30 rrt 42

Answer:

STOP ERROR All axes stopped, cause: Wrong
parameter(s)

IcePAP User Manual

// stop all movements

DRAFT IN CONSTRUCTION

85 of 96

?SYSSTAT
Query system configuration
Syntax:
?SYSSTAT [  ]
Answer:
?SYSSTAT 
or
?SYSSTAT  
Description:
By default, with no parameter, the SYSSTAT query returns a 16 bit mask that represents
the list of racks present in the system. Every bit in the  mask
indicates if the corresponding rack (0 to 15) has been found in the system.
If the SYSSTAT command is issued with a valid rack number (0 to 15) as parameter, it
returns two 8 bit values that indicates the drivers found in the rack and which of them are
responsive. Every bit of each mask correspond to one of the drivers (1 to 8) within the
rack. The bits in  that are set to 1, indicate which driver boards are
plugged in the rack. The bits in  indicates which drivers are responsive
and communicate with the system master board.
In normal conditions  and  are identical.

Example:

86 of 96

Command:

?SYSSTAT

Answer:

0x004F

Command:

?SYSSTAT 8

Answer:

0x13 0x13

DRAFT IN CONSTRUCTION

IcePAP User Manual

?TIME
Query the board running time
Syntax:
:?TIME
Answer:
:?TIME time_string
Description:
Returns the time elapsed since the board processor start execution or was reset. The
time is return as an ASCII string.

Examples:
Command:

115:?TIME

Answer:

115:?TIME 1623hrs 31min 14sec

IcePAP User Manual

DRAFT IN CONSTRUCTION

87 of 96

VELOCITY / ?VELOCITY
Set/query programmed axis velocity
Syntax:
:VELOCITY [  ]

(board command)

or
VELOCITY   

(system command)

Description:
Sets the velocity for the corresponding axis to the  values in steps per second.
The actual acceleration for each axis is maintained to the previous value, and the
acceleration time is internally recalculated (see ?ACCTIME query).
If no value is specified, the velocity is set to the default value.

Syntax:
:?VELOCITY

(board command)

or
?VELOCITY  

(system command)

Answer:
:?VELOCITY 

(board answer)

or
?VELOCITY  

(system answer)

Description:
Returns the current velocity in steps per second.

Examples:

88 of 96

DRAFT IN CONSTRUCTION

IcePAP User Manual

?VER
Query firmware version information
Syntax:
?VER [  ]

(system command)

or
:?VER [  ]

(board command)

Answer:
?VER  

(system answer)

or
:?VER  

(board answer)

Description:
Returns the version number XX.YY of the firmware.
module
SYSTEM
CONTROLLER

...

...
all cases
all cases
all cases

DRIVER
DSP
FPGA
PCB

controllers and drivers
controllers and drivers
controllers and drivers
drivers

IO
INFO

all cases

The ?VER INFO query returns a multiline answer with the version numbers of all the
modules.

Example:
Command:

?VER

Answer:

...

IcePAP User Manual

DRAFT IN CONSTRUCTION

89 of 96

?VSTATUS
Query verbose board status
Syntax:
:?VSTATUS
Answer:
:?VSTATUS 

Description:
Returns the board status as as multiline verbose answer. The status information is the
same returned by ?STATUS and ?FSTATUS, but the various status bits and fields are
presented and identified separately.
The purpose of ?VSTATUS is to be used to assist application debugging and it is not
intended to be used in normal operation.

Example:

90 of 96

Command:

12:?STATUS

Answer:

12:?STATUS 0x00000003

Command:

12:?VSTATUS

Answer:

12:?VSTATUS $
0x00000000
.......1 – 1:
.......2 – 1:
.......C – 2:
......7. – 2:
.....18. – 2:
.....2.. – 1:
.....4.. – 0:
[...]
...4.... – 0:
...8.... – 0:
..1..... – 0:
..2..... – 1:
..4..... – 0:
FF...... – 0:
$

Board is present in the system
Board is alive
Board mode is OPER
Motor power is ON
Indexer source is INTERNAL
Board is READY
Motor is not moving
Limit+ signal is not active
Limit- signal is not active
Home signal is not LOW
Aux 5V power supply is ON
Firmware versions are consistent
Info value is 0

DRAFT IN CONSTRUCTION

IcePAP User Manual

?WARNING
Query board warnings
Syntax:
:?WARNING
Answer:
:?WARNING NONE
or
:?WARNING [  ]
or
:?WARNING $
[  ]
[  ]
[  ]
$
Description:
Returns a list of strings describing warning conditions that happened since the last
?WARNING query was received by the board. If no warning conditions happened, the
query returns no strings.
The warning strings and conditions are cleared immediately after the query is executed.

Examples:
Command:

115:?WARNING

Answer:

115:?WARNING $
blah, blah
$

Command:

115:?WARNING

Answer:

115:?WARNING NONE

IcePAP User Manual

DRAFT IN CONSTRUCTION

91 of 96

WTEMP / ?WTEMP
Set/query warning temperature
Syntax:
:WTEMP 
Description:
Sets the temperature threshold used by the board to generate warning conditions to the
value  in degrees Celsius.

Syntax:
:?WTEMP
Answer:
:?WTEMP 
Description:
Returns the warning temperature threshold in degrees Celsius.

Examples:

92 of 96

Command:

11:?WTEMP

Answer:

11:?WTEMP 40

Command:

12:WTEMP 35.5

DRAFT IN CONSTRUCTION

IcePAP User Manual

5.2. IcePAP command quick reference
BOARD COMMANDS
BOARD CONFIGURATION and IDENTIFICATION

:?ACTIVE
Query activation status
:?MODE
Query board mode
:?STATUS
Query board status
:?VSTATUS
Query verbose board status
:?ALARM
Query board alarm message
:?WARNING
Query board warnings
:WTEMP 
:?WTEMP
Set/query warning temperature
:CONFIG []
:?CONFIG
Manage configuration mode
:CFG  
:CFG {DEFAULT | EXPERT}
:?CFG {[] | EXPERT}
Set/query configuration parameters
:?CFGINFO []
Query configuration parameter info
:?VER []
Query board version information
:NAME 
:?NAME
Set/query board name
:?ID [{HW | SN}]
Query board identification
:?POST
Query power-on selftest results
POWER AND MOTION CONTROL

:POWER [{ON | OFF}]
:?POWER
Set/query motor power state
:AUXPS [{ON | OFF}]
:?AUXPS
Set/query auxiliary power supply state
:?MEAS {VCC | VM | IM | IA | IB | IC | T | RT}
Query measured value
:POS [pos_sel] 
:?POS [pos_sel]
Set/query axis position in axis units
:ENC [pos_sel] 
:?ENC [pos_sel]
Set/query axis position in encoder steps
:?HOMESTAT
Query home search status
:?HOMEPOS [pos_sel]
Query the found home position in axis units
:?HOMEENC [pos_sel]
Query the found home position in encoder steps
:VELOCITY []
:?VELOCITY
Set/query programmed axis velocity
:ACCTIME []
:?ACCTIME
Set/query acceleration time
:PCLOOP {ON | OFF}
:?PCLOOP
Set/query current position closed loop mode

IcePAP User Manual

DRAFT IN CONSTRUCTION

93 of 96

:ESYNC
Synchronise internal position registers
:RMOVE 
Start relative movement
:JOG 
:?JOG
Set/query jog velocity
:HOME [{+1|0|-1}]
Start home signal search sequence
:CMOVE 
Start relative movement in configuration mode
:CJOG 
Set jog velocity in configuration mode
:STOP
Stop movement
:ABORT
Abort movement
INPUT/OUTPUT

:INDEXER [{INTERNAL | SYNC | INPOS | ENCIN}]
:?INDEXER
Set/query indexer signal source
:INFOA [signal_source [{NORMAL | INVERTED}]]
:INFOB [signal_source [{NORMAL | INVERTED}]]
:INFOC [signal_source [{NORMAL | INVERTED}]]
:?INFOA
:?INFOB
:?INFOC
Set/query Info signal source and polarity
COMMUNICATION and ERROR MANAGEMENT

:?HELP
Query list of available board commands
:?ERRMSG
Local query of last command error message
:?FERRMSG
Query first error message
:BLINK 
:?BLINK
Set/query remaining blinking time
:?TIME
Query running time
:DEBUG 
:?DEBUG
Set/query debug level
:ECHO
Select echo mode
:NOECHO
Cancel echo mode
:?MEMORY
Query available memory
:?ADDR
Query board address

94 of 96

DRAFT IN CONSTRUCTION

IcePAP User Manual

SYSTEM COMMANDS
SYSTEM CONFIGURATION and IDENTIFICATION

MODE {OPER | PROG | TEST}
?MODE
Set/query system mode
?SYSSTAT []
Query system configuration
?STATUS  
Query multiple board status
?FSTATUS [ ]
Fast query of multiple board status
REPORT {ON | OFF} [  []]
?REPORT
Set/query asynchronous report settings
?VER []
Query system firmware version information
?RID [ ]
Query rack identification string
?RTEMP [ ]
Query rack temperatures
*PROG {NONE |  | DRIVERS | CONTROLLERS | ALL} [FORCE] [SAVE]
PROG { | DRIVERS | CONTROLLERS | ALL} [FORCE]
?PROG
Firmware programming
RFPROG [ ]
Factory firmware programming
RESET []
System or rack reset
MOTION CONTROL

POS [pos_sel]   
?POS [pos_sel]  
Set/query multiple axis position in axis units
ENC [pos_sel]   
?ENC [pos_sel]  
Set/query multiple axis position in encoder steps
?FPOS [pos_sel]  
Fast query of multiple board positions
?HOMESTAT 
Query multiple axis home search status
?HOMEPOS [pos_sel] 
Query the found multiple axis home position in axis units
?HOMEENC [pos_sel] 
Query the found multiple axis home position in encoder steps
?VELOCITY   
?VELOCITY  
Set/query programmed multiple axis velocity
ACCTIME   
?ACCTIME  
Set/query acceleration time
MOVE [GROUP]   
Start multiple axis absolute movement
RMOVE [GROUP]   
Start multiple axis relative movement
JOG [GROUP]   
?JOG  
Set/query multiple axis jog velocities
HOME [GROUP]  {+1|0|-1} …  {+1|0|-1}
Start multiple axis home signal search sequence
STOP [ ]
Stop multiple axis movement
ABORT [ ]
Abort movement

IcePAP User Manual

DRAFT IN CONSTRUCTION

95 of 96

COMMUNICATION and ERROR MANAGEMENT

?HELP

Query list of available commands

?ERRMSG Query last command error message
ECHO

Select serial line echo

NOECHO Cancel serial line echo

96 of 96

DRAFT IN CONSTRUCTION

IcePAP User Manual



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.2
Linearized                      : No
Page Count                      : 96
Producer                        : AFPL Ghostscript 8.50
Create Date                     : 2010:06:03 16:03:47
Modify Date                     : 2010:06:03 16:03:47
Title                           : Microsoft Word - IcePAP_UserManual_working.doc
Creator                         : PScript5.dll Version 5.2.2
Author                          : JCLEMENT
EXIF Metadata provided by EXIF.tools

Navigation menu