Included the possibility to vary the motor speed.
This commit is contained in:
59
README.md
59
README.md
@ -4,50 +4,39 @@
|
||||
|
||||
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
|
||||
## 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.
|
||||
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:
|
||||
|
||||
These functions are parametrized as follows:
|
||||
```
|
||||
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"
|
||||
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.
|
||||
);
|
||||
```
|
||||
|
||||
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
|
||||
### 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
|
||||
### How to build it
|
||||
|
||||
Please see the documentation for the module sinqMotor: https://git.psi.ch/sinq-epics-modules/sinqmotor/-/blob/main/README.md.
|
||||
|
Reference in New Issue
Block a user