All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Added support for the motor record MRES field. It must always be set the same as
microstepPerStep
, that is the value of microstepping set on the controller. After that, all the other fields of the record (velocities, distances, etc...) must be considered in microstep unit.
- Fix a problem with the direction of the first homing after IOC reboot.
- Updated CI build to use darcato/epicsmng image
- More verbose output to signal some failures
- Fix crash when the IP port is disconnected
- Homing procedure does not stop in wrong position when starting from LS
- Stop is now working also during homing procedures
- Latching positions readings to avoid false readings
- Setting the target position with both registers always to be more robust
- The first movement after the IOC is started may begin on the wrong direction. When a limit switch is hit, the motor record adjusts it and bring the motor to desired position.
- When homing is started from a limit switch, the movement is not continuous. This is because the driver actually does a first movement to exit LS and then starts the homing.
- Check the actual available number of controllers on the beckDriver port to avoid errors when using incorrect parameters
- Restrict axis ranges for the shell commands to the available ones
- Fix soft and hard reset
- Using epicsmng
- Fixed compiler errors with older compilers
- Fixed wrong error print at startup with encoders and microstep set to 1
- Fixed crash when beckhoff not connected
- Support for encoders
- Support for jog movements (moveVelocity) - the motor moves with a certain velocity in one direction until stopped
- Added documentation for motor record usage
- Performace improvements on the config commands when used on axis ranges.
- Using new asynPortDriver constructor for asyn >= 4.32. This removes compiling warnings/errors depending on your EPICS base version.
- Removed compile warnings for unused variables
- Fixed wrong position after homing procedure in some cases
- HUGE performance inprovements, especially when using multiple axes. The poll method has been completely rewritten to minimize network access. Now a single modbus I/O is executed per each poll (in the controller poll) to update the position and status of all the axes, requiring just about 15-20ms, instead of about 70-100ms per axis. This enables much faster movement startup.
- beckDriver now implements asynInt32Array to read/write values from multiple modules at the same time.
- now using modbus absolute addressing to have syncronous readings.
- fixed wrong record value at startup
- fixed multiple errors printings at startup
- fixed moving reporting to motor record to set polling period
- other bug fixes
- Implemented STOP function
- Small efficiency improvements
- First release
- Position control movements
- Limit switches control
- Homing
- Startup commands for configuration
- Separate module from epics motor