Difference between revisions of "Motion Control Applications"

From GlueXWiki
Jump to: navigation, search
(Newport XPS based)
(Wiring of the encoder)
 
(12 intermediate revisions by the same user not shown)
Line 44: Line 44:
 
== Newport XPS based ==  
 
== Newport XPS based ==  
  
* A new [http://search.newport.com/?q=*&x2=sku&q2=XPS-C6 module for controlling multiple motor drivers from Newport] with [http://search.newport.com/?x2=sku&q2=XPS-DRV00 analog XPS-DRV00 ]] and [http://search.newport.com/?x2=sku&q2=XPS-DRV00p pulse and direction XPS-DRV00p] Newport  pass-through cards can be used.  
+
* A universal [http://search.newport.com/i/1/nav/1/q2/Motion+Control/q3/Motion%2520Controllers%2520%2526%2520Drivers/q4/Universal%252C%2520High%2520Performance%252C%2520Motion%2520Controller%2520and%2520Driver%252C%2520XPS%2520Series/x2/section/x3/chapter/x4/family chassis for controlling multiple motor drivers from Newport] with [http://search.newport.com/?x2=sku&q2=XPS-DRV00 analog XPS-DRV00 ] and [http://search.newport.com/?x2=sku&q2=XPS-DRV00p pulse and direction XPS-DRV00p] Newport  pass-through cards can be used for external driver control, or a [http://search.newport.com/?x2=sku&q2=XPS-DRV01 Newport PWM amplified modules] can be used to control DC brushless motors and stepper motors requiring 3Amps or less.  
 
* This approached apparently is not used in JLab.  
 
* This approached apparently is not used in JLab.  
 
* Mark Rivers uses these devices at APS and he developed EPICS support for this. In fact his SNL applications is probably directly usable for us, so little software development would be needed for this.  He is using the pulse output from XPS to strobe the scaler module, and keeps the positions of the motors (encoders) in XPS to later synchronize with the scaler FIFO values. This is exactly what we are looking for.  
 
* Mark Rivers uses these devices at APS and he developed EPICS support for this. In fact his SNL applications is probably directly usable for us, so little software development would be needed for this.  He is using the pulse output from XPS to strobe the scaler module, and keeps the positions of the motors (encoders) in XPS to later synchronize with the scaler FIFO values. This is exactly what we are looking for.  
Line 53: Line 53:
  
 
=== Installation of Newport XPS controller ===
 
=== Installation of Newport XPS controller ===
* I ordered an 8-axis XPS controller XPS-C8 from Newport with one pass-through card and one XPS-DRV01 card for ~$8.5K.  
+
* I ordered an 8-axis XPS controller [[media:XPS-C8_manual.pdf | XPS-C8 from Newport]] with one pass-through card and one XPS-DRV01 card for ~$8.5K.  
 
* Mark S. installed it in the controls test stand. We gave it <i>halldxps1</i> IP name. Using the web interface I setup a non-admin user <b>halld</b> with our regular password.  I did not change the administrative account settings.  
 
* Mark S. installed it in the controls test stand. We gave it <i>halldxps1</i> IP name. Using the web interface I setup a non-admin user <b>halld</b> with our regular password.  I did not change the administrative account settings.  
 
* Both cards were installed. Slot 1 is occupied by the pass-through card, slot 2 is occupied by the all-in-one card. The plan is to use it to run the stage that Lyubomir gave us for microscope beam tests using XPS-DRV01.  
 
* Both cards were installed. Slot 1 is occupied by the pass-through card, slot 2 is occupied by the all-in-one card. The plan is to use it to run the stage that Lyubomir gave us for microscope beam tests using XPS-DRV01.  
* It turned out that the XPS-DRV00 pass-through card can only produce analog outputs, but not Puls/Direction. For Pulse/Direction output feature we need to buy XPS-DRV00p version of the pass-through card which is more expensive.  
+
* It turned out that the XPS-DRV00 pass-through card can only produce analog outputs, but not Puls/Direction. For Pulse/Direction output feature we need to buy XPS-DRV00p version of the pass-through card which is more expensive.
  
 
=== Studies of the XPS controller ===  
 
=== Studies of the XPS controller ===  
Line 93: Line 93:
 
<br/>
 
<br/>
  
Note that Pitch and Roll stages were "special items" custom-made by Newport to meet our requirements for vacuum. The electrical characteristics of these stages match those of the standard versions of these Newport stages.
+
Note that <i>Pitch</i> and <i>Roll</i> stages were <b>special items</b> custom-made by Newport to meet our requirements for vacuum. The electrical characteristics of these stages match those of the standard versions of these Newport stages.
  
Control of the five stages is achieved using XPS-Q8 controller from Newport with five XPS-DRV01 driver modules. These were preconfigured by Newport and sent to us. When connecting the cables we had to be careful to use exactly the right cables to connect each stage, otherwise the controller fail to initialized. We will have to remake the cables to go from the controller into the vacuum using feedthroughs on the vacuum chamber.
+
Control of the five stages is achieved using [[media:XPS-Q8_Manual.pdf | XPS-Q8 controller from Newport]] with five XPS-DRV01 driver modules. These were preconfigured by Newport and sent to us. When connecting the cables we had to be careful to use exactly the right cables to connect each stage, otherwise the controller fail to initialized. We will have to remake the cables to go from the controller into the vacuum using feedthroughs on the vacuum chamber.
  
 
To control the goniometer we used motor modules, version 7-1 (with Vanik's modifications for PCO signals although those are not needed). Five motor records were defined and five sets of the "extra" analog records were defined in the substitution file. In the IOC script file we only need to define a controller, load the substitution file and load the five axes with the scales to compensate the scales define for the motor MRES fields. This worked just fine for the linear stages, but for the angular motion the motion profile changed. The desired velocity was reached much slower with EPICS control even when the speed setting was set to the same number as from the XPS webpage. Actually after a stage was driven once using EPICS the desired velocity was reached slow even when we went back and try to move the angular stage from the XPS web page. Most likely some parameters related to the motion profile were modified when EPICS started moving the stage. This issue with the velocity of the rotational stages needs to be studied.  
 
To control the goniometer we used motor modules, version 7-1 (with Vanik's modifications for PCO signals although those are not needed). Five motor records were defined and five sets of the "extra" analog records were defined in the substitution file. In the IOC script file we only need to define a controller, load the substitution file and load the five axes with the scales to compensate the scales define for the motor MRES fields. This worked just fine for the linear stages, but for the angular motion the motion profile changed. The desired velocity was reached much slower with EPICS control even when the speed setting was set to the same number as from the XPS webpage. Actually after a stage was driven once using EPICS the desired velocity was reached slow even when we went back and try to move the angular stage from the XPS web page. Most likely some parameters related to the motion profile were modified when EPICS started moving the stage. This issue with the velocity of the rotational stages needs to be studied.  
Line 133: Line 133:
 
= Collimator table =
 
= Collimator table =
  
No plans yet
+
Collimator table is based on a stage MLP6-14-10/GB100 (15 mm OD ground ballscrew with .100" pitch) from American Linear MotionProducts (ALM).  Some of the specs of the stage are listed below:
  
 +
# Maximum breakaway torque no load, Ground Ballscrew 20 oz-in.
 +
# Torque required for 400 pounds on ballscrew 7.49 in-lbs,  with 672 pounds on ballscrew 12.58 in-lbs.
 +
# The photo optical limit switch we use are of [[media:omron_ee_sx670.pdf | EE-SX670A type from Omron, standard, NPN type]].
 +
# There are three switches on the stage , motor end , out board end and home
 +
 +
The collimator table is positioned [[media:collimator_position.pdf | at the beginning of the collimator cave and provides three basic positions]] of the [[media:collimator3d.jpg | primary collimator in the Hall D beamline]].
 +
 +
== Wiring of the stage ==
 +
 +
The Omron EE-SX670A limit switches have 4 wires each, they require 5V-24V input voltage wire, ground wire, signal output wire that is designed for open collector input, and another wire that can be shorted with the 5V wire to be used in Light-On mode (otherwise it should be in Dark-On mode). We need to connect the 5V wire to the +5V-pin to provide the power although the limit pins are already pulled to 5V through pull-up resistor. Below is how to wire the Omron limit and home switches on MLP6-14-10/GB100 stage to the DSUB25 connector on the XPS-DRV01 driver board.
 +
 +
<pre>
 +
Black (Travel Limit +) - Pin 17
 +
Black (Travel Limit -) - Pin 18
 +
Black (Home switch) - Pin 13
 +
Blue for all bundles - Pin 16
 +
Brown for all bundles - Pin 21
 +
Pink for all bundles - None for now
 +
</pre>
 +
 +
== Wiring of the motor ==
 +
 +
Below is how to wire the leads of the bipolar Lin Engineering 5718L-05PD-01RO motor based on the [[media:lin5718wiring.pdf | data-sheet from Lin Engineering 5718L-05PD-01RO motor]]:
 +
 +
<pre>
 +
GREEN - Pin 1 or Pin 2
 +
BLACK - Pin 3 or Pin 4
 +
READ - Pin 5 or Pin 6
 +
BLUE - Pin 7 or Pin 8
 +
Shield Ground - Pin 14
 +
</pre>
 +
 +
Note that we had to swap A and B coils with respect to what we used on our test stage because the A, B, and I signals do not seem to be standard for encoders, their interpretation is probably manufacture-dependent. For US Digital E5 and E6 encoders and XPS-DRV01 control boards we need the motor to rotate clockwise when looking from the side of the shaft when asked to move the stage in the positive direction according to XPS.
 +
 +
== Wiring of the encoder ==
 +
 +
Below is how to wire the 10-pin standard connector on the [[media:e5_encoder.pdf | E5-1000-250-IE-D-D-D-B encoder from US Digital with differential output]] to the DSUB25 connector on the XPS-DRV01 driver board.
 +
 +
<pre>
 +
Encoder A - Pin 19
 +
Encoder A/ - Pin 23
 +
Encoder B - Pin 20
 +
Encoder B/ - Pin 24
 +
Z Index - Pin 15
 +
Z Index/ - Pin 25
 +
+5V - Pin 21
 +
+5V - Pin 21
 +
Encoder Ground - Pin 22
 +
Encoder Ground - Pin 22
 +
</pre>
 +
 +
The encoder technical specification say that it provides 1000 CPR, but when configuring the stage I had to specify encoder resolution of 0.05 units when specifying the full step of the motor (1.8deg) as 1 unit. This is factor of 4 smaller than what I expected from our test stage using the motor with an encoder from Krister.
 
<br/>
 
<br/>
 +
 
= Converter/photon harp =
 
= Converter/photon harp =
  

Latest revision as of 18:47, 19 December 2013


Motor Applications Introduction


Scope

We need to plan for the following motor-based applications:

  • Goniometer (5 axis)
  • Tagger harp/amorphous radiators (1 axis)
  • Tagger dump harp (1 axis)
  • Tagger microscope (3 axis)
  • Tagger fixed array (? axis)


  • Collimator table (1 axis)
  • Converter/photon harp (1 axis)
  • TAC (1 axis) ?
  • Gamma profiler (1 axis) ?


This means 10+ axis in tagger hall, 3+ axes in Hall D. We can consider the three options shown below. Most likely the 5 axis for the goniometer will be separate.


VME based

  • This approach would require two VME crate with a controller in each (one in tagger hall and one in Hall D) and OMS motor driver cards. This is a common way of doing it at Jefferson Lab.
  • Currently we are trying to avoid VME based systems, but harp applications need to have a VME scaler module. Therefore, for harp systems this would be a convenient way of doing it since the motor and the scaler module can be easily synchronized through a single VME bus.
  • The hardware cost can be high ~ $26K for the two VME crates (2x$6000), CPUs (2x$3400 each) and the 4 OMS VS4-040 cards (4x$1800).
  • Software from other halls and accelerator division can be used saving us on labor cost.



PLC based

  • PLC may be the cheapest way of doing it from point of view of hardware. For 18 axes of motion we will need about $14K; $10K for 9 AMCI 3202 modules for 1756, and approximately $4K for two 1756 chassis with communication modules.
  • I have not been able to find a true Allen-Bradley stepper motor drive card for ControlLogix PLC, AMCI was the only one I could Google. Allen-Bradley has expensive and sophisticated system for ControLogix.
  • We will need to develop the software nearly from scratch. This option also creates the usual extra layer of PLC/EPICS communications.
  • Implementing harp scans can be problematic because of the synchronization issue between the scalers and the motor read-backs. The bandwidth limitations of the EtherIP EPICS interface may cause problems in harp scan applications, but it would be possible to have some simpler applications to be controlled by PLC-based system.


Newport XPS based

  • A universal chassis for controlling multiple motor drivers from Newport with analog XPS-DRV00 and pulse and direction XPS-DRV00p Newport pass-through cards can be used for external driver control, or a Newport PWM amplified modules can be used to control DC brushless motors and stepper motors requiring 3Amps or less.
  • This approached apparently is not used in JLab.
  • Mark Rivers uses these devices at APS and he developed EPICS support for this. In fact his SNL applications is probably directly usable for us, so little software development would be needed for this. He is using the pulse output from XPS to strobe the scaler module, and keeps the positions of the motors (encoders) in XPS to later synchronize with the scaler FIFO values. This is exactly what we are looking for.
  • Mark Rivers is working on changing this application to work without state code, and some of the general features of his current and future implementation are briefly described in an e-mail exchange.
  • The low-power motors can be controlled using XPS-DRV01 card, which is more expensive that pass-through cards, $571. But this would allow us to skip building of the driver box for applications like microscope counter and LED positioning.
  • This is an expensive option. The price for 3 XPS-C6 units fully equipped with six XPS-DRV00 cards would cost us $23K.
  • Software development cost is probably going to be low since we can nearly copy APS' application.

Installation of Newport XPS controller

  • I ordered an 8-axis XPS controller XPS-C8 from Newport with one pass-through card and one XPS-DRV01 card for ~$8.5K.
  • Mark S. installed it in the controls test stand. We gave it halldxps1 IP name. Using the web interface I setup a non-admin user halld with our regular password. I did not change the administrative account settings.
  • Both cards were installed. Slot 1 is occupied by the pass-through card, slot 2 is occupied by the all-in-one card. The plan is to use it to run the stage that Lyubomir gave us for microscope beam tests using XPS-DRV01.
  • It turned out that the XPS-DRV00 pass-through card can only produce analog outputs, but not Puls/Direction. For Pulse/Direction output feature we need to buy XPS-DRV00p version of the pass-through card which is more expensive.

Studies of the XPS controller

  • Vanik's performed detailed studies of the XPS controller, including feature that may allow us perform various scans.



Goniometer Application

Hall D goniometer consist of five stages to position the diamond radiators in two linear directions perpendicular to the beam axis and three angles to orient the diamond symmetry plane in the desired direction.

The goniometer is manufactured by Newport according to our specs. The Newport quote won the contract, and the goniometer was delivered to JLab in the beginning of March of 2013. They also included a document with the results of their control measurements for four of the five stages. Note that the controller was changed from XPS-C8 in the quote to the newer version XPS-Q8. The notation of Newport is different from what we usually use in the hall.

Motion Axis meaning Motion Axis (Newport) Stage type Stage travel Limits Minimal increment Unidirectional Repeatability Comments
X-translation X MTM200PE1V6 200mm [-100;+100]mm 0.001mm 0.0015mm
Y-translation Y MTM100PE1V6 200mm [-50;+50]mm 0.001mm 0.0015mm
Yaw rZ URS75BPPV6 360deg [0;360]deg 0.2mdeg 4.0mdeg
Pitch rX BGS80PP-V6 90deg [-45;+45]deg 0.1mdeg 1.0mdeg Special Item
Roll rY URS150BPP-V6 360deg [-170;+170]deg 0.2mdeg 10.0mdeg Special Item


Note that Pitch and Roll stages were special items custom-made by Newport to meet our requirements for vacuum. The electrical characteristics of these stages match those of the standard versions of these Newport stages.

Control of the five stages is achieved using XPS-Q8 controller from Newport with five XPS-DRV01 driver modules. These were preconfigured by Newport and sent to us. When connecting the cables we had to be careful to use exactly the right cables to connect each stage, otherwise the controller fail to initialized. We will have to remake the cables to go from the controller into the vacuum using feedthroughs on the vacuum chamber.

To control the goniometer we used motor modules, version 7-1 (with Vanik's modifications for PCO signals although those are not needed). Five motor records were defined and five sets of the "extra" analog records were defined in the substitution file. In the IOC script file we only need to define a controller, load the substitution file and load the five axes with the scales to compensate the scales define for the motor MRES fields. This worked just fine for the linear stages, but for the angular motion the motion profile changed. The desired velocity was reached much slower with EPICS control even when the speed setting was set to the same number as from the XPS webpage. Actually after a stage was driven once using EPICS the desired velocity was reached slow even when we went back and try to move the angular stage from the XPS web page. Most likely some parameters related to the motion profile were modified when EPICS started moving the stage. This issue with the velocity of the rotational stages needs to be studied.

Ken Livingston was able to setup his goni program set on gluon20, turning the tagger scaler readout off and beam-on requirements, and he was able to make a fake scan using the five records controlling the Hall D goniometer stages. On 14:12, 25 April 2013 (EDT) is a standalone program and uses its own build scheme. It would be better to move it to Hall D controls tree and intigrate with the EPICS build scheme.

Yi designed a laser system that will allow us to make measurements of the capabilities of te goniometer. In particular, we would like to verify that the incremental motion of 0.1mdeg, 0.2mdeg and 0.2mdeg are possible with these rotational stages.

Tagger Harp

Tagger harp mechanical hardware exists within the accelerator group's scope. They will installed the vacuum system and the motor, but we probably will have to instrument the harp stick and decide what readout we will need. In order to achieve 10^{{4}} dynamic range we need to instrument it with PMT-based readout, which accelerator division usually does not do. It is also not defined who will be responsible for the control software, but it would be logical if we use our readout method then we also build the controls for this harp.

The tagger harp will consist of a pair of thin wires (we can use more than one pair with different thicknesses), for instance 25μm iron wire, which will be positioned at 450 with respect to the stick and 900 with respect to each other. One of these wires would measure the x-profile of the beam, the other one the y-profile of the beam. The overall scanning range is expected to be on the order of 6cm.

The motor will be moving at a slow speed of ~0.5 mm/sec, resulting in a full scan lasting about 2-3 minutes. While the motors is moving we will need to strobe a scaler module either internally or externally to measure the number of hits in three PMT-based detectors mounted near the electron beam dump versus the displacement of the stick. The measured numbers are recorded on the disc and analyzed after the full scan is complete. If we use VME-based application then the motor controlling board and the SIS3820 or the JLab new discriminator/scaler modules are on the same bus, therefore synchronizing the reading of the two devices is easy. This setup exists and works very well in Hall B. If the scaler and the motor controlling card are not on the same bus then there is an issue of synchronizing the motor position and scaler readings over the network. One of the possibilities is to use the XPS module from Newport which can output 200 ns pulses on traveling equal interval (this intervals are either in space or time, the manual says they can be both, while Mark Rivers claims they can be only in time). The output pulses (there is such a trigger output per axis controlled by XPS) can be used to strobe the scaler advancing it to the next buffer element, while the XPS device records the position of the motor at that point in time. When the scan is over both the scaler buffer and the XPS buffer are read from EPICS. The FIFO length in the SIS3820 scaler can hold well over 10K readings even if all channels are used, and it can be increased by installing more memory. The JLab discriminator/scaler in its current design may not have enough FIFO memory. The XPS buffer is not limited for any practical purposes. We will only need about 10000 readings per scan (Hall B did ~4000 points per good scan and ~1500 points per quick scan), so the XPS+SIS3820 setup should work as well. The XSP module has EPICS support and a similar application was used at APS and is available for download, which could be a good starting point for us.

The analyzing software should be able to recognize the two peaks in the enhancements in the data and fit them to obtain the centroids x and y and their resolutions σx and σy. The analyzing software exists and can in principle be copied from the accelerator division or other halls. The scanning software may have to be rewritten based on what hardware we choose for this application.


Vanik implemented the PCO signal control into the EPICS support provided by Mark Rivers. We had to buy a 6-pin LEMO connector for the PCO output and pull up the two PCO output pins on that connector to +5V using 250 Ohm resistors and the +5V pin of that connector. Note that by mistake we first installed 50 Ohm resistors and the pulses were really ugly with a lot of ringing. Also we found out that the widths of the signals should be on the order of one microsecond for it to work properly. With 200ns pulse length the difference between the numbers of counts in two equal (according to the encoder) distance intervals would be somewhat different, although less than 1%. Also we found out that in order to be able to use PCO output signals we have to have an encoder installed on that motor. Otherwise, the stage could not be properly configured on the XPS controller.



Tagger Dump Harp

The main purpose of this harp is to monitor/measure electron beam energy by measuring the position and the profile of the electron beam after the tagger dipole magnet. The measurement should be done without any radiator in the beam-line. The full width of the beam in the x-direction will be on the order of 1 mm, while in the y-direction the width of the beam will be similar to what it was at the radiator location < 400 μm. The required precision of the measurement of the peak position to achieve 2 MeV resolution is about 800 μm, which is an achievable precision for a harp. The tagger dump harp will be located about two or three meters upstream of the first labyrinth wall, while the detectors will be located near the labyrinth wall. The mechanical design, control and application software will be nearly identical to tagger harp. There will be an higher level analysis procedure and software to extract the beam energy from the harp scan results which will be addressed by the beam-line group.


Tagger Microscope

No plans yet


Collimator table

Collimator table is based on a stage MLP6-14-10/GB100 (15 mm OD ground ballscrew with .100" pitch) from American Linear MotionProducts (ALM). Some of the specs of the stage are listed below:

  1. Maximum breakaway torque no load, Ground Ballscrew 20 oz-in.
  2. Torque required for 400 pounds on ballscrew 7.49 in-lbs, with 672 pounds on ballscrew 12.58 in-lbs.
  3. The photo optical limit switch we use are of EE-SX670A type from Omron, standard, NPN type.
  4. There are three switches on the stage , motor end , out board end and home

The collimator table is positioned at the beginning of the collimator cave and provides three basic positions of the primary collimator in the Hall D beamline.

Wiring of the stage

The Omron EE-SX670A limit switches have 4 wires each, they require 5V-24V input voltage wire, ground wire, signal output wire that is designed for open collector input, and another wire that can be shorted with the 5V wire to be used in Light-On mode (otherwise it should be in Dark-On mode). We need to connect the 5V wire to the +5V-pin to provide the power although the limit pins are already pulled to 5V through pull-up resistor. Below is how to wire the Omron limit and home switches on MLP6-14-10/GB100 stage to the DSUB25 connector on the XPS-DRV01 driver board.

Black (Travel Limit +)	- Pin 17
Black (Travel Limit -)	- Pin 18
Black (Home switch)	- Pin 13
Blue for all bundles	- Pin 16
Brown for all bundles	- Pin 21
Pink for all bundles	- None for now

Wiring of the motor

Below is how to wire the leads of the bipolar Lin Engineering 5718L-05PD-01RO motor based on the data-sheet from Lin Engineering 5718L-05PD-01RO motor:

GREEN 		- Pin 1 or Pin 2 
BLACK		- Pin 3 or Pin 4
READ		- Pin 5 or Pin 6
BLUE		- Pin 7 or Pin 8
Shield Ground	- Pin 14

Note that we had to swap A and B coils with respect to what we used on our test stage because the A, B, and I signals do not seem to be standard for encoders, their interpretation is probably manufacture-dependent. For US Digital E5 and E6 encoders and XPS-DRV01 control boards we need the motor to rotate clockwise when looking from the side of the shaft when asked to move the stage in the positive direction according to XPS.

Wiring of the encoder

Below is how to wire the 10-pin standard connector on the E5-1000-250-IE-D-D-D-B encoder from US Digital with differential output to the DSUB25 connector on the XPS-DRV01 driver board.

Encoder A	- Pin 19
Encoder A/	- Pin 23
Encoder B	- Pin 20
Encoder B/	- Pin 24
Z Index		- Pin 15
Z Index/	- Pin 25
+5V		- Pin 21
+5V		- Pin 21
Encoder Ground	- Pin 22 
Encoder Ground	- Pin 22 

The encoder technical specification say that it provides 1000 CPR, but when configuring the stage I had to specify encoder resolution of 0.05 units when specifying the full step of the motor (1.8deg) as 1 unit. This is factor of 4 smaller than what I expected from our test stage using the motor with an encoder from Krister.

Converter/photon harp

No plans yet


Gamma profiler

No plans yet


Total Absorption Counter

No plans yet