54 lines
2.0 KiB
Markdown
54 lines
2.0 KiB
Markdown
# 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.
|