Files
motorBase/motorApp/OmsSrc
Ron Sluiter 9facc6a34d - Use errlogPrintf() for Debug messages.
- Add card and status register to "NOT running" error message.
2009-02-19 17:01:02 +00:00
..
2008-03-14 20:23:45 +00:00
2008-03-14 20:23:45 +00:00
2008-03-14 20:23:45 +00:00
2006-04-24 18:12:49 +00:00
2008-03-14 20:23:45 +00:00
2008-06-03 18:58:25 +00:00
2008-03-14 20:36:10 +00:00
2008-03-14 20:36:10 +00:00
2008-03-14 20:38:46 +00:00
2008-09-17 21:48:58 +00:00

==============================================================================
               MAXv            MAXv            MAXv            MAXv
==============================================================================

For all MAXv motors.
--------------------

# OMS MAXv driver setup parameters: 
#     (1)number of cards in array.
#     (2)VME Address Space - A(16,24,32).
#     (3)Base Address (see README file).
#     (4)interrupt vector (0=disable or  64 - 255).
#     (5)interrupt level (1 - 6).
#     (6)motor task polling rate (min=1Hz,max=60Hz).
#!MAXvSetup(1, 16, 0xF000, 190, 5, 10)

MAXv array base address
-----------------------
- defined the by 3rd argument to the MAXvSetup() call.
- must be both a valid address and on a valid address boundry for the selected
VME Address Space.  A valid address for an A16 address must be 4 hex digits;
A24 - 6 hex digits; A32 - 8 hex digits.

Each MAXv occupies the following space for the selected VME address space.

VME space |   A16  |     A24   |      A32    |
----------|--------|-----------|-------------|
MAXv size | 0x1000 | 0x01 0000 | 0x0100 0000 |
----------|--------|-----------|-------------|
valid MAXv| 0x0000 | 0x10 0000 | 0x1000 0000 |
addresses | 0x1000 | 0x11 0000 | 0x1100 0000 |
          | 0x2000 | 0x12 0000 | 0x1200 0000 |
          |   ...  |    ...    |      ...    |
          | 0xF000 | 0x1F 0000 | 0x1F00 0000 |
          |        | 0x20 0000 | 0x2000 0000 |
          |        |    ...    |      ...    |
          |        | 0xFF 0000 | 0xFF00 0000 |
----------|--------|-----------|-------------|

EXAMPLE
-------

3 MAXv boards, A24 address space, base address = 0xA0 0000.
1st board's address - 0xA0 0000
2nd board's address - 0xA1 0000
3rd board's address - 0xA2 0000
MAXvSetup(3, 24, 0xA00000, 190, 5, 10)


NOTES:
- Unlike the other OMS models, the MAXv VME Address Modifiers (AM) do not
  respond to both supervisory and non-privileged access.  Hence, the MAXv's
  AM's must match the CPU board's AM's exactly.

Configure the MAXv's limit switch sense by placing one of the following MAXv
controller commands in the 2nd argument of MAXvConfig(); the initialization
string.  This command determines which TTL signal level defines an active
limit switch input:

LL - low (default).
LH - high.

In addition, one of the following MAXv controller commands must appear in the
initialization string to configure the type of axis:
PSO - open loop stepper axis.
PSE - stepper axis with encoder.
PSM - servo axis

Note: Separate multiple commands in the initialization string with ";".

Example
-------
config0="AX LH PSM; AY LL PSO; AZ LL PSO; AT LL PSO; AU LH PSO; AV LH PSO; \
AR LH PSO; AS LH PSO;"
MAXvConfig(0, config0)

Configuring the MAXv for an open loop stepper motor (default).
--------------------------------------------------------------
Set J8 for stepper and add the command "PS0;" to the MAXvConfig()
initialization string.

Configuring the MAXv for a stepper motor with encoder.
------------------------------------------------------
Set J8 for stepper and add the command "PSE;" to the MAXvConfig()
initialization string.

Configuring the MAXv for a servo motor.
---------------------------------------
Set J8 for servo and add the command "PSM;" to MAXvConfig() initialization
string.


==============================================================================
               VME8, VME44, VS4, VX2           VME8, VME44, VS4, VX2
==============================================================================

OMS array base address
--------------------------
- defined by the 3rd argument to the omsSetup() call.
- the VMEbus address of the 1st board in the array of OMS VME8, VME44, VS4 and
  VX2 boards.
  
OMS incremental address
---------------------------
- increment each additional OMS board's VMEbus address by 0x10 from the array's
  base address.


==============================================================================
               VME58           VME58           VME58           VME58
==============================================================================

VME58 array base address
------------------------
- defined the by 2nd argument to the oms58Setup() call.
- the VMEbus address of the 1st board in the array of OMS VME58 boards.

VME58 incremental address
-------------------------
- increment each additional board's VMEbus address by 0x1000 from the array's
  base address.

NOTE
----

1. The EPICS motor record does NOT support the encoder mode.  The encoder mode
   is enabled with the ER#,# and results in all distance, velocity and
   acceleration parameters being input in encoder counts.


SSCAN THROUGH-PUT NOTES
-----------------------

The following results where done using the following;

- SSCAN support module R2.5.1, with scan.db configured as follows;
     - Read(R1PV)  set to "time".
     - Drive(P1PV) set to motor record VAL field.
     - #PTS(NPTS)  set to 1000.
     - Step Size(P1SI) set to MRES of the motor record.
- Motor record R5.7; configured as follows;
     - Set slew velocity (VELO) = (500,000 * MRES).
     - Set base velocity (VBAS) = (499,999 * MRES).
     - Acceleration time (ACCL) does not matter.
- EPICS base R3.14.7
- WRS Tornado 2.2.1
- MVME5100
- VME8  with firmware version 1.97-8
- VME44 with firmware version 2.35-4E:
- VME58 with firmware version 2.16-8
- MAXv  with firmware version 1.25



Controller | sysClkRate | interrupts | polling rate | ms/scan pt.
-----------|------------|------------|--------------|------------
VME8       |    60      |  disabled  |     1HZ      | 1076.0
-----------|------------|------------|--------------|------------
VME44      |    60      |  disabled  |     1HZ      | 1267.0
-----------|------------|------------|--------------|------------
VME58      |    60      |  disabled  |     1HZ      |  808.5
-----------|------------|------------|--------------|------------
MAXv       |    60      |  disabled  |     1HZ      |  808.5
===========|============|============|==============|============
VME8       |    60      |  disabled  |    60HZ      |  801.8
-----------|------------|------------|--------------|------------
VME44      |    60      |  disabled  |    60HZ      |  990.6
-----------|------------|------------|--------------|------------
VME58      |    60      |  disabled  |    60HZ      |   77.3
-----------|------------|------------|--------------|------------
MAXv       |    60      |  disabled  |    60HZ      |   77.4
===========|============|============|==============|============
VME8       |  4000      |  disabled  |     1HZ      |  776.0
-----------|------------|------------|--------------|------------
VME44      |  4000      |  disabled  |     1HZ      |  779.9
-----------|------------|------------|--------------|------------
VME58      |  4000      |  disabled  |     1HZ      |  772.3
-----------|------------|------------|--------------|------------
MAXv       |  4000      |  disabled  |     1HZ      |  772.5
===========|============|============|==============|============
VME8       |  4000      |  disabled  |    60HZ      |   18.8
-----------|------------|------------|--------------|------------
VME44      |  4000      |  disabled  |    60HZ      |   22.1
-----------|------------|------------|--------------|------------
VME58      |  4000      |  disabled  |    60HZ      |   14.9
-----------|------------|------------|--------------|------------
MAXv       |  4000      |  disabled  |    60HZ      |   15.2
===========|============|============|==============|============
VME8       |    60      |   enabled  |     1HZ      |   38.8
-----------|------------|------------|--------------|------------
VME44      |    60      |   enabled  |     1HZ      |   38.8
-----------|------------|------------|--------------|------------
VME58      |    60      |   enabled  |     1HZ      |   77.5
-----------|------------|------------|--------------|------------
MAXv       |    60      |   enabled  |     1HZ      |   77.5
===========|============|============|==============|============
VME8       |    60      |   enabled  |     1HZ      |   75.4 with VBAS/VELO removed
-----------|------------|------------|--------------|------------
VME44      |    60      |   enabled  |     1HZ      |   80.1 with VBAS/VELO removed
-----------|------------|------------|--------------|------------
VME58      |    60      |   enabled  |     1HZ      |   97.9 with VBAS/VELO removed
-----------|------------|------------|--------------|------------
MAXv       |    60      |   enabled  |     1HZ      |   84.9 with VBAS/VELO removed
===========|============|============|==============|============
VME8       |    60      |   enabled  |    60HZ      |   38.7
-----------|------------|------------|--------------|------------
VME44      |    60      |   enabled  |    60HZ      |   38.7
-----------|------------|------------|--------------|------------
VME58      |    60      |   enabled  |    60HZ      |   77.5
-----------|------------|------------|--------------|------------
MAXv       |    60      |   enabled  |    60HZ      |   77.4
===========|============|============|==============|============
VME8       |   100      |   enabled  |     1HZ      |   15.5
-----------|------------|------------|--------------|------------
VME44      |   100      |   enabled  |     1HZ      |   23.2
-----------|------------|------------|--------------|------------
VME58      |   100      |   enabled  |     1HZ      |   38.7
-----------|------------|------------|--------------|------------
MAXv       |   100      |   enabled  |     1HZ      |   38.7
===========|============|============|==============|============
VME8       |  4000      |   enabled  |     1HZ      |   14.4
-----------|------------|------------|--------------|------------
VME44      |  4000      |   enabled  |     1HZ      |   18.2
-----------|------------|------------|--------------|------------
VME58      |  4000      |   enabled  |     1HZ      |   10.4
-----------|------------|------------|--------------|------------
MAXv       |  4000      |   enabled  |     1HZ      |   11.6
===========|============|============|==============|============
VME8       |  4000      |   enabled  |    60HZ      |   14.4
-----------|------------|------------|--------------|------------
VME44      |  4000      |   enabled  |    60HZ      |   18.2
-----------|------------|------------|--------------|------------
VME58      |  4000      |   enabled  |    60HZ      |   10.4
-----------|------------|------------|--------------|------------
MAXv       |  4000      |   enabled  |    60HZ      |   11.6
===========|============|============|==============|============
VME8       |  4000      |   enabled  |    60HZ      |   12.7 with VBAS/VELO removed
-----------|------------|------------|--------------|------------
VME44      |  4000      |   enabled  |    60HZ      |   15.6 with VBAS/VELO removed
-----------|------------|------------|--------------|------------
VME58      |  4000      |   enabled  |    60HZ      |    9.8 with VBAS/VELO removed
-----------|------------|------------|--------------|------------
MAXv       |  4000      |   enabled  |    60HZ      |    9.8 with VBAS/VELO removed
-----------|------------|------------|--------------|------------


The following results where done using the following;

- SSCAN support module R2.5.6, with scan.db configured as follows;
     - Read(R1PV)  set to "time".
     - Drive(P1PV) set to motor record VAL field.
     - #PTS(NPTS)  set to 1000.
     - Step Size(P1SI) set to MRES of the motor record.
- Motor record R6-3; configured as follows;
     - Set slew velocity (VELO) = (500,000 * MRES).
     - Set base velocity (VBAS) = (499,999 * MRES).
     - Acceleration time (ACCL) does not matter.
- EPICS base R3.14.7
- WRS Tornado 2.2.2
- MVME5100
- VME58 with firmware version 2.42-8
- MAXv-8000 ver:1.31, s/n:000274, FPGA:B1:A6
- MAXv with #UR8192
- CROSS_COMPILER_TARGET_ARCHS = vxWorks-ppc604_long

Controller | sysClkRate | interrupts | ms/scan pt.
===========|============|============|============
VME58      |    60      |   enabled  |  83.4 ms
===========|============|============|============
VME58      |   100      |   enabled  |  50.1 ms
===========|============|============|============
VME58      |   200      |   enabled  |  30.1 ms
===========|============|============|============
VME58      |  4000      |   enabled  |  13.1 ms
===========|============|============|============
MAXv       |    60      |   enabled  |  50.0 ms
===========|============|============|============
MAXv       |   100      |   enabled  |  30.0 ms
===========|============|============|============
MAXv       |   200      |   enabled  |  15.0 ms
===========|============|============|============
MAXv       |  1000      |   enabled  |   5.1 ms
===========|============|============|============
MAXv       |  4000      |   enabled  |   4.1 ms
-----------|------------|------------|------------