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.

User guide

This driver is a standard sinqMotor-derived driver and does not need any specific configuration. For the general configuration, please see https://git.psi.ch/sinq-epics-modules/sinqmotor/-/blob/main/README.md.

Developer guide

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. These functions are parametrized as follows:
pmacv3Controller(
    "$(NAME)", # Name of the MCU, e.g. mcu1. This parameter should be provided by an environment variable.
    "$(ASYN_PORT)", # IP-Port of the MCU. This parameter should be provided by an environment variable.
    8, # Maximum number of axes
    0.05, # Busy poll period in seconds
    1, # Idle poll period in seconds
    0.05 # Communication timeout in seconds
    );
pmacv3Axis(
    "$(NAME)", # Name of the associated MCU, e.g. mcu1. This parameter should be provided by an environment variable.
    1 # Index of the axis.
    );

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%