This is the DLS version of the tpmac support module. The official release is at tpmac. The two PMAC drivers that DLS uses are pmacAsynMotor and pmacAsynMotorPort. For ethernet PMACs the pmacAsynIPPort Asyn interpose layer is needed. Example IOCs for both drivers are provided.

The pmacAsynMotorPort driver is based on asynPortDriver and will eventually replace pmacAsynMotor. At the moment it can act as a drop in replacement for the old driver. Several new features for this driver are planned.




Version iconSource Code iconDocumentation
3-11dls5 icontpmac-3-11dls5.tgz iconindex
3-10dls12 icontpmac-3-10dls12.tgz iconindex
3-10dls11 icontpmac-3-10dls11.tgz iconindex
3-10dls10 icontpmac-3-10dls10.tgz iconindex
3-10dls9 icontpmac-3-10dls9.tgz iconindex
3-10dls8 icontpmac-3-10dls8.tgz iconindex

Release Notes

Release 3-11dls5

Changes since 3-10dls12:
  • Added patches from Mark Rivers. The main problems were missing LIB_LIBS in Makefiles and #include <epicsExport.h> in the wrong place in source files. Parallel make also failed on Linux because of missing rules in tsubSrc/Makefile. Adding control of CNEN field to support module. Also removed ability of EPICS to control PID gains (see comment in code for rationale)
  • Fixes to simulation - also making it less verbose. Added support for the !> and !< operators. Added support for the control commands.
  • Fix problem of motor record DMOV sometimes not being set TRUE, after a motor has hit a real limit switch.a
  • The fix is to make sure the record process routine is called back when sitting on the limit.
  • Implemented polling capability for the case where the PMAC speed is increased and interrupts fail.
  • Merged with APS 3-11

Release 3-10dls12

Changes since 3-10dls11:
  • General tidy up of pmacController and pmacAxis:
  • Removed use of printf and custom logging function and replaced both with asynPrint.
  • Used strncat rather than strcat (could not use snprintf due to VxWorks compiler issues).
  • Removed some magic numbers from the code and used static const class data members instead.
  • Improved error message throttling to use a proper timer rather than a simple counter.
  • Added in polling of global feedrate (%). This is disabled by default, but can be enabled and controlled using the new template pmacController.template. There is also an associated EDM file. If enabled, and the pmacController driver detects a feedrate problem, the motor records for the axes on that controller are placed into MAJOR/STATE alarm. An error message is also printed on the IOC shell.
  • Forced the use of asyn addresses 1 and above for pmacAxis objects. Address 0 is now reserved for pmacController parameters.

Release 3-10dls11

Changes since 3-10dls10:
  • pmacAsynMotor, pmacAsynMotorPort and non-asyn code: Changes from Mark Rivers so that tpmac builds on Windows and Cygwin.
  • pmacAsynMotorPort: Mark Rivers added support for killing and enabling an axis using the motor record CNEN field. This sends a K or a J/ to an axis.
This release has been tested with a modified version of motor 6-7-1. A few changes from the APS motor trunk have been pulled in to get tpmac to build. The next release of motor should also be ok to build against.

Release 3-10dls10

Changes since 3-10dls9:
  • pmacAsynMotor and pmacAsynMotorPort: fixed bug in poller that printed error messages about disabled limits too often.
  • pmacAsynMotorPort: Added a function pmacCreateAxes to set up all axes at once.
  • pmacAsynMotorPort: Fixed an off by one error when setting up the number of axes.

Release 3-10dls9

Changes since 3-10dls8:
    pmacAsynMotor: Patch from J. Lewis Muir that signals the polling thread when we change polling rate.
This release has been tested with motor 6-7-1.

Release 3-10dls8

This is based on tpmac version 3-10, with the following changes:
  • pmacAsynMotor: added check for disabled limit switches.
  • pmacAsynMotor: improved error reporting.
  • pmacAsynMotorPort: initial version of this asynPortDriver based driver.
This release has been tested with motor 6-7-1.