- Rearranged directory structure for forking out ANSTO
- Refactored site specific stuff into a site module - PSI specific stuff is now in the PSI directory. - The old version has been tagged with pre-ansto
This commit is contained in:
45
ecbdriv.h
Normal file
45
ecbdriv.h
Normal file
@@ -0,0 +1,45 @@
|
||||
/*------------------------------------------------------------------------
|
||||
this is a motor driver for the Risoe motor controllers within the
|
||||
ECB system. The motor is controlled through functions invoked in the
|
||||
Z80 processor of the ECB system which is connected through a GPIB
|
||||
bus to the wider world. This driver has to do a lot of extra things:
|
||||
- it has to convert from physical values to motor steps.
|
||||
- Quite a few parameters, such as ramping parameters,
|
||||
have to be downloaded to the ECB
|
||||
- Risoe motors may have a virtual encoder or a real encoder.
|
||||
- The motor may have to control air cushions as well.
|
||||
- Tricky backlash handling. Backlash handling ensures that a position is
|
||||
always arrived at from a defined direction. If backlash is applied
|
||||
a restart flag is set in ECBRunTo. ECBGetStatus checks for that and
|
||||
causes the motor to drive back to the position actually desired.
|
||||
|
||||
This driver support only P2048a motor controllers, as these are the
|
||||
only ones which seem to have arrived at PSI. The P1648 and Tridynamic
|
||||
things are not supported.
|
||||
|
||||
Multiplexed motors: Originally the ECB supported 24 motors. This did
|
||||
prove to be not enough. Therefore another device called P2234e was
|
||||
introduced which allowed to run 8 motors from one controller port. In this
|
||||
case the motor parameters have to be copied to the ECB before
|
||||
driving the motor. Multiplexing is selected through the parameter MULT.
|
||||
MULT 0 means no multiplexing, MULT > 0 makes MULT the number of the
|
||||
motor in the multiplexer. MULT is now also used to flag a download of
|
||||
parameters to the ECB. In such a case MULT is -1.
|
||||
|
||||
|
||||
Some of this code was taken from the tascom driver for the ECB.
|
||||
|
||||
copyright: see file COPYRIGHT
|
||||
|
||||
Mark Koennecke, January 2003
|
||||
|
||||
--------------------------------------------------------------------------*/
|
||||
#ifndef ECBDRIV
|
||||
#define ECBDRIV
|
||||
|
||||
MotorDriver *CreateECBMotor(SConnection *pCon, int argc, char *argv[]);
|
||||
void KillECBMotor(void *driver);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user