-
Notifications
You must be signed in to change notification settings - Fork 2
Beckhoff commissioning
Wiki > The Backend System > IOCs > Motor IOCs > Beckhoff > Beckhoff commissioning
These steps are for commissioning a Beckhoff on a beamline.
Beckhoffs are connected to NDX machines via private networks, in much the same way as the Galils. By convention Beckhoffs live in the 192.168.1.22X range, starting at 1 for the first controller (192.168.1.221)
To actually communicate via the ADS transport layer you will need to set up a route on the instrument PC. To do so:
- Install the XAR tools if not already installed. A copy of these will be hosted on
<public share>\third_party_installers\special_drivers\beckhoff\. All of the defaults are fine so this should be a case of just clicking through the wizard and installing the drivers that show up. - Set up an ADS route on the NDX:
-
Right-click TwinCAT icon in system tray -> Router -> Edit Routes -> Add...with these settings:- Advanced settings ticked, click the IP Address radio button, then enter the IP address (mentioned above) on box at top. Press the return key after entering this in the box - this seems to work better than pressing the refresh button.
- Static Target routes and remote routes (default)
- Everything else can be left as defaults
- To confirm that this has been set up remote into the controller itself on the aforementioned IP address and check that the route to the NDX has been added automatically. You should not need to manually add a route in the controller.
The IOC should be able to talk via ADS at this point but will need setting up in the respective configs.
A.tpyfile will be used fortCiocto actually talk to the hardware via ADS - this should be placed in the instrument's twincat config area- A
MTRCTRLnumber will need to be given - this is the normal controller number -
Beckhoff_plc_codeshould be specified as a macro, this may be removed in future releases, more information on this is available below however it should be set to1for instruments running the latest code.
Although commissioning a Beckhoff is far simpler than a Galil from an IBEX perspective, there are some fields that need to be set manually for each axis. These are:
- Number of axes (
NUM_AXESmacro) - the
IPandAMSnetIDof the controller - Engineering units (
.EGU) - ticket to populate - Axis description (
.DESC) - ticket to populate - Soft limits
These can be set via a caput and will be autosaved thereafter.
These are loaded in the usual way, you'll need to put your axes.cmd and motionSetpoints.cmd files alongside the tpy file (in the twincat config directory)
Jaws controlled by Beckhoffs don't actually require any logic to calculate gaps & centres, as this is done on the controller using virtual axes for the gaps and centres, so instead we load in a $(JAWS)/db/jaws_alias.db file instead of the usual jaws.db. This takes macros for the (virtual) axes to use as the gaps and centres.
If a controller with more than 8 axes is going to be used, the TC IOC will alias records to the next controller number so they are shown in the GUI. For this to work you need to make sure that the next available controller number is not (and never will be, so long as the TC IOC uses it) used.
It was decided during A meeting with the motion team that extra fields, for example LARMOR's air signals + bump strips will be exposed via a separate PROG file within the PLC. We should load these in from a motorExtensions .cmd file. Examples for LARMOR and SANS2D can be found in the settings directory of motorExtensions\master\settings