History of motor home

Why this project ?

This project is an evolution of the homing PLC generator motorhome.py from Diamond Light Source’s pmacUtil module.

The rationale for a new approach was:

  • To provide a terse and simple approach to defining a PLC

    • More readable

    • Easier to create and maintain for non-developers

  • To provide a mechanism for easily creating custom homing sequences

  • To implement a more structured approach (using jinja) in order that:

    • the library code is more readable and maintainable

    • it is far easier to extend

PLC code output

The original design of the PLCs that motorhome.py outputs was deemed to be legible and efficient so this has been preserved in the new project.

Hence the generated homing plcs should use same API as those generated by motorhome.py, and the standard homeing sequences generate exactly the same PLC code

For the standard homing sequences supported by the original motorhome.py this module will create exactly the same PLC code.

This is to the extent that existing homing PLCs have been imported into this project’s test area and used for system tests that generate the same code.