source: MML/trunk/machine/SOLEIL/doc_html/machine/Soleil/common/synchro/switchsynchro.html @ 4

Last change on this file since 4 was 4, checked in by zhangj, 10 years ago

Initial import--MML version from SOLEIL@2013

File size: 17.9 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
2                "http://www.w3.org/TR/REC-html40/loose.dtd">
3<html>
4<head>
5  <title>Description of switchsynchro</title>
6  <meta name="keywords" content="switchsynchro">
7  <meta name="description" content="switchsynchro - Switch timing for using the Machine study kickers (KEM) or Normal injection mode">
8  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
9  <meta name="generator" content="m2html v1.5 &copy; 2003-2005 Guillaume Flandin">
10  <meta name="robots" content="index, follow">
11  <link type="text/css" rel="stylesheet" href="../../../../m2html.css">
12</head>
13<body>
14<a name="_top"></a>
15<div><a href="../../../../index.html">Home</a> &gt;  <a href="#">machine</a> &gt; <a href="#">Soleil</a> &gt; <a href="../index.html">common</a> &gt; <a href="index.html">synchro</a> &gt; switchsynchro.m</div>
16
17<!--<table width="100%"><tr><td align="left"><a href="../../../../index.html"><img alt="<" border="0" src="../../../../left.png">&nbsp;Master index</a></td>
18<td align="right"><a href="index.html">Index for machine/Soleil/common/synchro&nbsp;<img alt=">" border="0" src="../../../../right.png"></a></td></tr></table>-->
19
20<h1>switchsynchro
21</h1>
22
23<h2><a name="_name"></a>PURPOSE <a href="#_top"><img alt="^" border="0" src="../../../../up.png"></a></h2>
24<div class="box"><strong>switchsynchro - Switch timing for using the Machine study kickers (KEM) or Normal injection mode</strong></div>
25
26<h2><a name="_synopsis"></a>SYNOPSIS <a href="#_top"><img alt="^" border="0" src="../../../../up.png"></a></h2>
27<div class="box"><strong>function switchsynchro(varargin) </strong></div>
28
29<h2><a name="_description"></a>DESCRIPTION <a href="#_top"><img alt="^" border="0" src="../../../../up.png"></a></h2>
30<div class="fragment"><pre class="comment"> switchsynchro - Switch timing for using the Machine study kickers (KEM) or Normal injection mode
31
32  INPUTS
33  Injection - Mode for standard injection into the storage ring
34  KEM       - Mode for kicking the beam with a soft event 
35  Init      - For first use, set the delay for both machine study kickers</pre></div>
36
37<!-- crossreference -->
38<h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="../../../../up.png"></a></h2>
39This function calls:
40<ul style="list-style-image:url(../../../../matlabicon.gif)">
41</ul>
42This function is called by:
43<ul style="list-style-image:url(../../../../matlabicon.gif)">
44</ul>
45<!-- crossreference -->
46
47<h2><a name="_subfunctions"></a>SUBFUNCTIONS <a href="#_top"><img alt="^" border="0" src="../../../../up.png"></a></h2>
48<ul style="list-style-image:url(../../../../matlabicon.gif)">
49<li><a href="#_sub1" class="code">function checktimingconfig(value, varargin)</a></li></ul>
50
51<h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="../../../../up.png"></a></h2>
52<div class="fragment"><pre>0001 <a name="_sub0" href="#_subfunctions" class="code">function switchsynchro(varargin)</a>
530002 <span class="comment">% switchsynchro - Switch timing for using the Machine study kickers (KEM) or Normal injection mode</span>
540003 <span class="comment">%</span>
550004 <span class="comment">%  INPUTS</span>
560005 <span class="comment">%  Injection - Mode for standard injection into the storage ring</span>
570006 <span class="comment">%  KEM       - Mode for kicking the beam with a soft event</span>
580007 <span class="comment">%  Init      - For first use, set the delay for both machine study kickers</span>
590008
600009 <span class="comment">%</span>
610010 <span class="comment">%  Written by Laurent S. Nadolski</span>
620011 <span class="comment">%  22 July 2008: Display and group added</span>
630012
640013 SynchroFlag = <span class="string">'Injection'</span>;
650014 DisplayFlag = 1;
660015 InitFlag = 0;
670016
680017 <span class="comment">% Input parser</span>
690018 <span class="keyword">for</span> i = length(varargin):-1:1,
700019     <span class="keyword">if</span> strcmpi(varargin{i},<span class="string">'Injection'</span>) || strcmpi(varargin{i},<span class="string">'Inj'</span>)
710020         SynchroFlag = <span class="string">'Injection'</span>;
720021         varargin(i) = [];
730022     <span class="keyword">elseif</span> strcmpi(varargin{i},<span class="string">'KEM'</span>)
740023         SynchroFlag = <span class="string">'KEM'</span>;
750024     <span class="keyword">elseif</span> strcmpi(varargin{i},<span class="string">'Display'</span>)
760025         DisplayFlag = 1;
770026         varargin(i) = [];
780027     <span class="keyword">elseif</span> strcmpi(varargin{i},<span class="string">'NoDisplay'</span>)
790028         DisplayFlag = 0;
800029         varargin(i) = [];
810030     <span class="keyword">elseif</span> strcmpi(varargin{i},<span class="string">'Init'</span>)
820031         InitFlag = 1;
830032     <span class="keyword">end</span>
840033 <span class="keyword">end</span>
850034
860035 <span class="comment">% delay 179010 µs to have the same time for BPM as for injection</span>
870036 <span class="comment">% the idea is to keep the same delays for the bpms</span>
880037 <span class="keyword">if</span> InitFlag <span class="comment">% delay for first quarter filled up</span>
890038 <span class="comment">%     tango_write_attribute2('ANS-C01/SY/LOCAL.EP.1','k-h.trigTimeDelay',179010.537);</span>
900039 <span class="comment">%     tango_write_attribute2('ANS-C01/SY/LOCAL.EP.1','k-v.trigTimeDelay',179010.537);</span>
910040 <span class="comment">%     tango_write_attribute2('ANS-C01/SY/LOCAL.EP.1','k-h.trigTimeDelay',151271.472);</span>
920041 <span class="comment">%     tango_write_attribute2('ANS-C01/SY/LOCAL.EP.1','k-v.trigTimeDelay',151271.502);</span>
930042 <span class="keyword">end</span>
940043
950044 <span class="comment">% switchyard for injection</span>
960045 <span class="keyword">switch</span> SynchroFlag
970046     <span class="keyword">case</span> <span class="string">'KEM'</span> <span class="comment">% Switch Timing system for using KEMs</span>
980047         event = 16;
990048         tango_write_attribute2(<span class="string">'ANS/SY/CENTRAL'</span>,<span class="string">'softEventAdress'</span>,int32(event));
1000049         tango_write_attribute2(<span class="string">'ANS-C01/SY/LOCAL.DG.2'</span>,<span class="string">'bpm.trigEvent'</span>,int32(event));
1010050         tango_write_attribute2(<span class="string">'ANS-C02/SY/LOCAL.DG.1'</span>,<span class="string">'bpm.trigEvent'</span>,int32(event));
1020051         tango_write_attribute2(<span class="string">'ANS-C03/SY/LOCAL.DG.1'</span>,<span class="string">'bpm.trigEvent'</span>,int32(event));
1030052         tango_write_attribute2(<span class="string">'ANS-C04/SY/LOCAL.DG.1'</span>,<span class="string">'bpm.trigEvent'</span>,int32(event));
1040053         tango_write_attribute2(<span class="string">'ANS-C05/SY/LOCAL.DG.1'</span>,<span class="string">'bpm.trigEvent'</span>,int32(event));
1050054         tango_write_attribute2(<span class="string">'ANS-C06/SY/LOCAL.DG.1'</span>,<span class="string">'bpm.trigEvent'</span>,int32(event));
1060055         tango_write_attribute2(<span class="string">'ANS-C07/SY/LOCAL.DG.1'</span>,<span class="string">'bpm.trigEvent'</span>,int32(event));
1070056         tango_write_attribute2(<span class="string">'ANS-C08/SY/LOCAL.DG.1'</span>,<span class="string">'bpm.trigEvent'</span>,int32(event));
1080057         tango_write_attribute2(<span class="string">'ANS-C09/SY/LOCAL.DG.1'</span>,<span class="string">'bpm.trigEvent'</span>,int32(event));
1090058         tango_write_attribute2(<span class="string">'ANS-C10/SY/LOCAL.DG.1'</span>,<span class="string">'bpm.trigEvent'</span>,int32(event));
1100059         tango_write_attribute2(<span class="string">'ANS-C11/SY/LOCAL.DG.1'</span>,<span class="string">'bpm.trigEvent'</span>,int32(event));
1110060         tango_write_attribute2(<span class="string">'ANS-C12/SY/LOCAL.DG.1'</span>,<span class="string">'bpm.trigEvent'</span>,int32(event));
1120061         tango_write_attribute2(<span class="string">'ANS-C13/SY/LOCAL.DG.1'</span>,<span class="string">'bpm.trigEvent'</span>,int32(event));
1130062         tango_write_attribute2(<span class="string">'ANS-C14/SY/LOCAL.DG.1'</span>,<span class="string">'bpm.trigEvent'</span>,int32(event));
1140063         tango_write_attribute2(<span class="string">'ANS-C15/SY/LOCAL.DG.1'</span>,<span class="string">'bpm.trigEvent'</span>,int32(event));
1150064         tango_write_attribute2(<span class="string">'ANS-C16/SY/LOCAL.DG.1'</span>,<span class="string">'bpm.trigEvent'</span>,int32(event));
1160065         tango_write_attribute2(<span class="string">'ANS-C01/SY/LOCAL.EP.1'</span>,<span class="string">'k-h.trigEvent'</span>,int32(event));
1170066         tango_write_attribute2(<span class="string">'ANS-C01/SY/LOCAL.EP.1'</span>,<span class="string">'k-v.trigEvent'</span>,int32(event));
1180067         pause(1)
1190068         <a href="#_sub1" class="code" title="subfunction checktimingconfig(value, varargin)">checktimingconfig</a>(event, <span class="string">'KEM'</span>);
1200069         
1210070         <span class="comment">%% timing BPM</span>
1220071 <span class="comment">%         tango_write_attribute2('ANS-C01/SY/LOCAL.DG.2','bpm.trigTimeDelay',151262.5274);</span>
1230072 <span class="comment">%         tango_write_attribute2('ANS-C02/SY/LOCAL.DG.1','bpm.trigTimeDelay',151262.44);</span>
1240073 <span class="comment">%         tango_write_attribute2('ANS-C16/SY/LOCAL.DG.1','bpm.trigTimeDelay',151262.24);</span>
1250074     <span class="keyword">case</span> <span class="string">'Injection'</span>  <span class="comment">% Switch back for injection</span>
1260075         eventInj = 3;
1270076         tango_write_attribute2(<span class="string">'ANS/SY/CENTRAL'</span>,<span class="string">'softEventAdress'</span>,int32(5));
1280077         tango_write_attribute2(<span class="string">'ANS-C01/SY/LOCAL.DG.2'</span>,<span class="string">'bpm.trigEvent'</span>,int32(eventInj));
1290078         tango_write_attribute2(<span class="string">'ANS-C02/SY/LOCAL.DG.1'</span>,<span class="string">'bpm.trigEvent'</span>,int32(eventInj));
1300079         tango_write_attribute2(<span class="string">'ANS-C03/SY/LOCAL.DG.1'</span>,<span class="string">'bpm.trigEvent'</span>,int32(eventInj));
1310080         tango_write_attribute2(<span class="string">'ANS-C04/SY/LOCAL.DG.1'</span>,<span class="string">'bpm.trigEvent'</span>,int32(eventInj));
1320081         tango_write_attribute2(<span class="string">'ANS-C05/SY/LOCAL.DG.1'</span>,<span class="string">'bpm.trigEvent'</span>,int32(eventInj));
1330082         tango_write_attribute2(<span class="string">'ANS-C06/SY/LOCAL.DG.1'</span>,<span class="string">'bpm.trigEvent'</span>,int32(eventInj));
1340083         tango_write_attribute2(<span class="string">'ANS-C07/SY/LOCAL.DG.1'</span>,<span class="string">'bpm.trigEvent'</span>,int32(eventInj));
1350084         tango_write_attribute2(<span class="string">'ANS-C08/SY/LOCAL.DG.1'</span>,<span class="string">'bpm.trigEvent'</span>,int32(eventInj));
1360085         tango_write_attribute2(<span class="string">'ANS-C09/SY/LOCAL.DG.1'</span>,<span class="string">'bpm.trigEvent'</span>,int32(eventInj));
1370086         tango_write_attribute2(<span class="string">'ANS-C10/SY/LOCAL.DG.1'</span>,<span class="string">'bpm.trigEvent'</span>,int32(eventInj));
1380087         tango_write_attribute2(<span class="string">'ANS-C11/SY/LOCAL.DG.1'</span>,<span class="string">'bpm.trigEvent'</span>,int32(eventInj));
1390088         tango_write_attribute2(<span class="string">'ANS-C12/SY/LOCAL.DG.1'</span>,<span class="string">'bpm.trigEvent'</span>,int32(eventInj));
1400089         tango_write_attribute2(<span class="string">'ANS-C13/SY/LOCAL.DG.1'</span>,<span class="string">'bpm.trigEvent'</span>,int32(eventInj));
1410090         tango_write_attribute2(<span class="string">'ANS-C14/SY/LOCAL.DG.1'</span>,<span class="string">'bpm.trigEvent'</span>,int32(eventInj));
1420091         tango_write_attribute2(<span class="string">'ANS-C15/SY/LOCAL.DG.1'</span>,<span class="string">'bpm.trigEvent'</span>,int32(eventInj));
1430092         tango_write_attribute2(<span class="string">'ANS-C16/SY/LOCAL.DG.1'</span>,<span class="string">'bpm.trigEvent'</span>,int32(eventInj));
1440093         pause(1)
1450094         <a href="#_sub1" class="code" title="subfunction checktimingconfig(value, varargin)">checktimingconfig</a>(eventInj);
1460095         <span class="comment">%% timing BPM</span>
1470096 <span class="comment">%         tango_write_attribute2('ANS-C01/SY/LOCAL.DG.2','bpm.trigTimeDelay',31922.5274);</span>
1480097 <span class="comment">%         tango_write_attribute2('ANS-C02/SY/LOCAL.DG.1','bpm.trigTimeDelay',31922.44);</span>
1490098 <span class="comment">%         tango_write_attribute2('ANS-C16/SY/LOCAL.DG.1','bpm.trigTimeDelay',31923.24);</span>
1500099 <span class="keyword">end</span>
1510100
1520101 <span class="comment">% Diagnostics for checking evering thing is OK</span>
1530102
1540103 devName={<span class="string">'ANS-C01/SY/LOCAL.DG.2'</span>
1550104          <span class="string">'ANS-C02/SY/LOCAL.DG.1'</span>
1560105          <span class="string">'ANS-C03/SY/LOCAL.DG.1'</span>
1570106          <span class="string">'ANS-C04/SY/LOCAL.DG.1'</span>
1580107          <span class="string">'ANS-C05/SY/LOCAL.DG.1'</span>
1590108          <span class="string">'ANS-C06/SY/LOCAL.DG.1'</span>
1600109          <span class="string">'ANS-C07/SY/LOCAL.DG.1'</span>
1610110          <span class="string">'ANS-C08/SY/LOCAL.DG.1'</span>
1620111          <span class="string">'ANS-C09/SY/LOCAL.DG.1'</span>
1630112          <span class="string">'ANS-C10/SY/LOCAL.DG.1'</span>
1640113          <span class="string">'ANS-C11/SY/LOCAL.DG.1'</span>
1650114          <span class="string">'ANS-C12/SY/LOCAL.DG.1'</span>
1660115          <span class="string">'ANS-C13/SY/LOCAL.DG.1'</span>
1670116          <span class="string">'ANS-C14/SY/LOCAL.DG.1'</span>
1680117          <span class="string">'ANS-C15/SY/LOCAL.DG.1'</span>
1690118          <span class="string">'ANS-C16/SY/LOCAL.DG.1'</span>
1700119     };
1710120
1720121 <span class="keyword">if</span> DisplayFlag
1730122     val =[];
1740123     <span class="keyword">for</span> k=1:length(devName)
1750124         val(k) = readattribute([devName{k} <span class="string">'/bpm.trigEvent'</span>]);
1760125     <span class="keyword">end</span>
1770126
1780127     figure
1790128     bar(val)
1800129     title(<span class="string">'Trigger Event Value for BPM timing board'</span>)
1810130     xlabel(<span class="string">'Cell number'</span>)
1820131     ylabel(<span class="string">'Event value'</span>)
1830132 <span class="keyword">end</span>
1840133
1850134 <span class="comment">% subfunction</span>
1860135 <a name="_sub1" href="#_subfunctions" class="code">function checktimingconfig(value, varargin)</a>
1870136
1880137 <span class="comment">% Defaul flag</span>
1890138 KEMFlag = 0;
1900139
1910140 <span class="keyword">for</span> i = length(varargin):-1:1
1920141     <span class="keyword">if</span> strcmpi(varargin{i},<span class="string">'NoKEM'</span>)
1930142         KEMFlag = 0;
1940143         varargin(i) = [];
1950144     <span class="keyword">else</span> strcmpi(varargin{i},<span class="string">'KEM'</span>)
1960145         KEMFlag = 1;
1970146         varargin(i) = [];
1980147     <span class="keyword">end</span>
1990148 <span class="keyword">end</span>
2000149
2010150
2020151 <span class="keyword">if</span> KEMFlag
2030152     val = ones(1,19)*NaN;
2040153 <span class="keyword">else</span>
2050154     val = ones(1,17)*NaN;
2060155 <span class="keyword">end</span>
2070156
2080157 val(1) = readattribute([<span class="string">'ANS/SY/CENTRAL'</span>,<span class="string">'/softEventAdress'</span>]);
2090158 val(2) = readattribute([<span class="string">'ANS-C01/SY/LOCAL.DG.2'</span>,<span class="string">'/bpm.trigEvent'</span>]);
2100159 val(3) = readattribute([<span class="string">'ANS-C02/SY/LOCAL.DG.1'</span>,<span class="string">'/bpm.trigEvent'</span>]);
2110160 val(4) = readattribute([<span class="string">'ANS-C03/SY/LOCAL.DG.1'</span>,<span class="string">'/bpm.trigEvent'</span>]);
2120161 val(5) = readattribute([<span class="string">'ANS-C04/SY/LOCAL.DG.1'</span>,<span class="string">'/bpm.trigEvent'</span>]);
2130162 val(6) = readattribute([<span class="string">'ANS-C05/SY/LOCAL.DG.1'</span>,<span class="string">'/bpm.trigEvent'</span>]);
2140163 val(7) = readattribute([<span class="string">'ANS-C06/SY/LOCAL.DG.1'</span>,<span class="string">'/bpm.trigEvent'</span>]);
2150164 val(8) = readattribute([<span class="string">'ANS-C07/SY/LOCAL.DG.1'</span>,<span class="string">'/bpm.trigEvent'</span>]);
2160165 val(9) = readattribute([<span class="string">'ANS-C08/SY/LOCAL.DG.1'</span>,<span class="string">'/bpm.trigEvent'</span>]);
2170166 val(10) = readattribute([<span class="string">'ANS-C09/SY/LOCAL.DG.1'</span>,<span class="string">'/bpm.trigEvent'</span>]);
2180167 val(11) = readattribute([<span class="string">'ANS-C10/SY/LOCAL.DG.1'</span>,<span class="string">'/bpm.trigEvent'</span>]);
2190168 val(12) = readattribute([<span class="string">'ANS-C11/SY/LOCAL.DG.1'</span>,<span class="string">'/bpm.trigEvent'</span>]);
2200169 val(13) = readattribute([<span class="string">'ANS-C12/SY/LOCAL.DG.1'</span>,<span class="string">'/bpm.trigEvent'</span>]);
2210170 val(14) = readattribute([<span class="string">'ANS-C13/SY/LOCAL.DG.1'</span>,<span class="string">'/bpm.trigEvent'</span>]);
2220171 val(15) = readattribute([<span class="string">'ANS-C14/SY/LOCAL.DG.1'</span>,<span class="string">'/bpm.trigEvent'</span>]);
2230172 val(16) = readattribute([<span class="string">'ANS-C15/SY/LOCAL.DG.1'</span>,<span class="string">'/bpm.trigEvent'</span>]);
2240173 val(17) = readattribute([<span class="string">'ANS-C16/SY/LOCAL.DG.1'</span>,<span class="string">'/bpm.trigEvent'</span>]);
2250174
2260175 <span class="keyword">if</span> KEMFlag
2270176     val(18) = readattribute([<span class="string">'ANS-C01/SY/LOCAL.EP.1'</span>,<span class="string">'/k-h.trigEvent'</span>]);
2280177     val(19) = readattribute([<span class="string">'ANS-C01/SY/LOCAL.EP.1'</span>,<span class="string">'/k-v.trigEvent'</span>]);
2290178 <span class="keyword">end</span>
2300179
2310180 <span class="keyword">if</span> mean(val(2:end)) ~= value
2320181     fprintf(<span class="string">'At least one timing board is not set properly to %d soft address \n'</span>, value);
2330182 <span class="keyword">end</span>
2340183</pre></div>
235<hr><address>Generated on Fri 23-Jul-2010 00:42:07 by <strong><a href="http://www.artefact.tk/software/matlab/m2html/" title="Matlab Documentation in HTML">m2html</a></strong> &copy; 2005</address>
236</body>
237</html>
Note: See TracBrowser for help on using the repository browser.