pmacv3

Overview

This is a driver for the pmacV3 motion controller with the SINQ communication protocol. It is based on the sinqMotor shared library (https://git.psi.ch/sinq-epics-modules/sinqmotor). The header files contain detailed documentation for all public functions. The headers themselves are exported when building the library to allow other drivers to depend on this one.

Usage in IOC shell

pmacv3 exposes the following IOC shell functions (all in pmacv3Controller.cpp):

  • pmacv3Controller: Create a new controller object.
  • pmacv3Axis: Create a new axis object. The function arguments are documented directly within the source code or are available from the help function of the IOC shell.

Database

The pmacV3 module provides additional PVs in the database template db/pmacv3.db. It can be parametrized with the dbLoadTemplate function from the IOC shell:

require sinqMotor, y.y.y # The sinqMotor module is needed for the pmacv3 module. The version y.y.y is defined in the Makefile (line sinqMotor_VERSION=x.x.x)
require pmacv3, x.x.x # This is the three-digit version number of the pmacv3 module
dbLoadTemplate "motor.substitutions"

The substitutions file can be concatenated with that of sinqMotor:

file "$(sinqMotor_DB)/sinqMotor.db"
{
pattern
...
}

file "$(pmacv3_DB)/pmacv3.db"
{
pattern
{ AXIS,     M}
{ 1,   "lin1"}
{ 2,   "rot1"}
}

The sinqMotor pattern "..." is documented in https://git.psi.ch/sinq-epics-modules/sinqmotor/-/blob/main/README.md. The other parameters have the following meaning:

  • AXIS: Index of the axis, corresponds to the physical connection of the axis to the MCU
  • M: Name of the motor as shown in EPICS

The axis name should correspond to that of the sinqMotor pattern with the same respective index.

Versioning

Please see the documentation for the module sinqMotor: https://git.psi.ch/sinq-epics-modules/sinqmotor/-/blob/main/README.md.

How to build it

Please see the documentation for the module sinqMotor: https://git.psi.ch/sinq-epics-modules/sinqmotor/-/blob/main/README.md.

Description
Driver for the Turbo PMAC motion controller (PSI CNM version)
Readme 561 KiB
Languages
C++ 60.2%
C 27.4%
Python 10.9%
Makefile 0.8%
Shell 0.7%