- Newport XPS controller (motorApp/NewportSrc/XPSController.cpp, XPSAxis.cpp). This is a more complex driver that support complex coordinated motion and some other features.
The following is a list of all “.cpp” files in the motorApp directories, and I think these are all Model 3 drivers.
corvette:~/devel/motor>find . -name '*.cpp'
./motorApp/NPointSrc/C300MotorDriver.cpp
./motorApp/PhytronSrc/phytronAxisMotor.cpp
./motorApp/MicroMoSrc/MVP2001Driver.cpp
./motorApp/ImsSrc/ImsMDrivePlusMotorAxis.cpp
./motorApp/ImsSrc/ImsMDrivePlusMotorController.cpp
./motorApp/PIGCS2Src/PIE755Controller.cpp
./motorApp/PIGCS2Src/PIGCSPiezoController.cpp
./motorApp/PIGCS2Src/PIGCSMotorController.cpp
./motorApp/PIGCS2Src/PIGCS2_HexapodController.cpp
./motorApp/PIGCS2Src/PIE517Controller.cpp
./motorApp/PIGCS2Src/PIC702Controller.cpp
./motorApp/PIGCS2Src/PIasynAxis.cpp
./motorApp/PIGCS2Src/PIInterface.cpp
./motorApp/PIGCS2Src/PIasynController.cpp
./motorApp/PIGCS2Src/PIGCSController.cpp
./motorApp/PIGCS2Src/PIHexapodController.cpp
./motorApp/ACRSrc/ACRMotorDriver.cpp
./motorApp/SmarActMCSSrc/smarActMCSMotorDriver.cpp
./motorApp/MicosSrc/SMChydraDriver.cpp
./motorApp/HytecSrc/HytecMotorDriver.cpp
./motorApp/OmsAsynSrc/omsMAXv.cpp
./motorApp/OmsAsynSrc/omsMAXvEncFunc.cpp
./motorApp/OmsAsynSrc/omsMAXnet.cpp
./motorApp/OmsAsynSrc/omsBaseController.cpp
./motorApp/OmsAsynSrc/omsBaseAxis.cpp
./motorApp/NewportSrc/AG_CONEX.cpp
./motorApp/NewportSrc/SMC100Driver.cpp
./motorApp/NewportSrc/HXPDriver.cpp
./motorApp/NewportSrc/XPSController.cpp
./motorApp/NewportSrc/XPSAxis.cpp
./motorApp/NewportSrc/AG_UC.cpp
./motorApp/MicronixSrc/MMC200Driver.cpp
./motorApp/AcsSrc/MCB4BDriver.cpp
************************************************************************************************
Cheers,
Mark
From: Henrique Almeida [mailto:[email protected]]
Sent: Thursday, February 18, 2016 1:17 PM
2016-02-18 17:09 GMT-02:00 Mark Rivers <[email protected]>:
You may be able to just load another record that periodically writes to the STUP field? What are your requirements?
What driver are you using?
It's called "motorPXI", it's a proxy driver that communicates via shared memory with a LabView RT application, which contains the real driver.
If you want to switch to Model 3 then yes you need to rewrite the driver. Model 3 is quite a simple model. You
just need to implement some C++ methods like asynMotorAxis:: move(), asynMotorAxis::stop(), asynMotorAxis::poll(), etc.
Is there an example implementation or tutorial ?
Mark
From: Henrique Almeida [mailto:[email protected]]
Sent: Thursday, February 18, 2016 1:05 PM
To: Mark Rivers
Cc: [email protected] Talk
Subject: Re: Motor record with encoders
I believe the motor driver is using model 1 (motor*Com.cc) API. Is it necessary to rewrite the driver to support model 3 ?
2016-02-18 16:59 GMT-02:00 Mark Rivers <[email protected]>:
Yes the motor record can update REP when all motors are stopped. If you are using a “Model 2” or “Model 3” driver
that does callbacks when the motor is idle then the record will automatically process and update. If you are using a “Model 1” driver then you need to write to the STUP field to force the record to read the status.
Mark
From:
[email protected] [mailto:[email protected]]
On Behalf Of Henrique Almeida
Sent: Thursday, February 18, 2016 12:50 PM
To: [email protected] Talk
Subject: Motor record with encoders
Hello, is the motor record currently able to update the encoder position ("REP" PV) while all motors are stopped ?