Beckhoff

Beckhoff motor controllers are the most complex in use at ISIS and will be the standard going forward. A Beckhoff controller is basically a generic PLC that includes a number of useful functions out of the box for running motors. The generality of a Beckhoff means that it will most likely be used in the future for measuring and controlling other hardware outside of motion. A more detailed presentation has been given about Beckhoffs in a Code Chat entitled Layers, Onions and Ogres.

Current Beckhoff installations are:

Instrument

Device

LARMOR

Rotation Bench

IMAT

Large sample bench, controlling rotation and height

SANS2D

Guides (5 in total) - note apertures are still Galil-controlled

CHIPIR

Filter set

SANDALS

Jaws and Sample changer

CRISP

Jaws (running old firmware for now)

MUONFE

Barn doors (in progress)

INTER

Secondary flight path upgrade (INTER tank)

SURF

Critical axis (in progress)

Code on the controller

Unlike most other devices (except the Galil) the computing group has some oversight over the PLC code written on the controller. It has been agreed that this code will mostly be written by IDD, with oversight from computing to guide good programming practices, assist in debugging etc. Code running on the PLC is kept in source control here.

The Axis and Controller Commissioning Guide document describing setting up a controller and TwinCAT solution for a new system and configuring real and virtual axes within TwinCAT environment.

Commissioning a new Beckhoff on a beamline

see Beckhoff Commissioning

IOC

Note

we no longer use tcIOC for numerous reasons, the most important being the dependence on the unreliable .tpy file format which was preventing us from integrating the new motion standard library code. We now use AdsDriver in conjunction with TwincatMotor.**

See Beckhoff IOC Architecture for more information.

Troubleshooting

see Beckhoff troubleshooting

Testing

See Beckhoff testing

Updating

Some discussion has been had on how we handle updates to the Beckhoff PLC code and twincatMotor etc. this is documented here

Further Information