source: MML/trunk/mml/doc_html/mml/maxpv.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: 14.0 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 maxpv</title>
6  <meta name="keywords" content="maxpv">
7  <meta name="description" content="MAXPV - Maximum value of a process variable">
8  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
9  <meta name="generator" content="m2html &copy; 2003 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="index.html">mml</a> &gt; maxpv.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 mml&nbsp;<img alt=">" border="0" src="../right.png"></a></td></tr></table>-->
19
20<h1>maxpv
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>MAXPV - Maximum value of a process variable</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 [Data, ErrorFlag] = maxpv(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">MAXPV - Maximum value of a process variable
31  [MaxPV, ErrorFlag] = maxpv(Family, Field, DeviceList)
32  [MaxPV, ErrorFlag] = maxpv(Family, DeviceList)      (Field will default to 'Setpoint')
33
34  INPUTS
35  1. Family - Family Name
36              Data Structure
37              Accelerator Object
38  2. Field - Accelerator Object field name ('Monitor', 'Setpoint', etc) {'Monitor'}
39  3. DeviceList ([Sector Device #] or [element #]) {Default: whole family}
40  4. 'Physics'  - Use physics  units (optional override of units)
41     'Hardware' - Use hardware units (optional override of units)
42  5. 'Numeric' - Numeric output {Default}
43     'Struct'  - Data structure output
44
45  OUTPUTS
46  1. MaxPV = Maximum value corresponding to the Family, Field, and DeviceList
47 
48  NOTES
49  1. If Family is a cell array, then DeviceList and Field can also be a cell arrays
50
51  Also see minpv, getfamilydata(Family, Field, 'Range')
52
53  Written by Greg Portmann</pre></div>
54
55<!-- crossreference -->
56<h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
57This function calls:
58<ul style="list-style-image:url(../matlabicon.gif)">
59<li><a href="family2datastruct.html" class="code" title="function [DataStruct, ErrorFlag] = family2datastruct(varargin)">family2datastruct</a>  FAMILY2DATASTRUCTURE - Returns a datastructure corresponding to a Family</li><li><a href="getfamilydata.html" class="code" title="function [Data, ErrorFlag] = getfamilydata(Family, Field1, Field2, DeviceList)">getfamilydata</a>     GETFAMILYDATA - Gets data associated with the accelerator control</li><li><a href="getunits.html" class="code" title="function [Units, UnitsString] = getunits(Family, Field)">getunits</a>     GETUNITS - Return the present family units and units string</li><li><a href="hw2physics.html" class="code" title="function S = hw2physics(Family, Field, value, DeviceList, Energy)">hw2physics</a>     HW2PHYSICS - Converts from 'Hardware' units to 'Physics' units</li><li><a href="inputparsingffd.html" class="code" title="function [Family, Field, DeviceList, UnitsFlag, ModelFlag] = inputparsingffd(varargin)">inputparsingffd</a>   INPUTPARSINGFFD - Parses the typical input line of Family, Field, DeviceList</li><li><a href="maxpv.html" class="code" title="function [Data, ErrorFlag] = maxpv(varargin)">maxpv</a>   MAXPV - Maximum value of a process variable</li></ul>
60This function is called by:
61<ul style="list-style-image:url(../matlabicon.gif)">
62<li><a href="checklimits.html" class="code" title="function [LimitFlag, LimitList] = checklimits(varargin)">checklimits</a>     CHECKLIMITS - Checks if the setpoint will exceed a limit</li><li><a href="maxpv.html" class="code" title="function [Data, ErrorFlag] = maxpv(varargin)">maxpv</a>       MAXPV - Maximum value of a process variable</li><li><a href="maxsp.html" class="code" title="function [Data, ErrorFlag] = maxsp(varargin)">maxsp</a>    MAXSP - Maximum value of the setpoint</li></ul>
63<!-- crossreference -->
64
65
66<h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
67<div class="fragment"><pre>0001 <a name="_sub0" href="#_subfunctions" class="code">function [Data, ErrorFlag] = maxpv(varargin)</a>
680002 <span class="comment">%MAXPV - Maximum value of a process variable</span>
690003 <span class="comment">%  [MaxPV, ErrorFlag] = maxpv(Family, Field, DeviceList)</span>
700004 <span class="comment">%  [MaxPV, ErrorFlag] = maxpv(Family, DeviceList)      (Field will default to 'Setpoint')</span>
710005 <span class="comment">%</span>
720006 <span class="comment">%  INPUTS</span>
730007 <span class="comment">%  1. Family - Family Name</span>
740008 <span class="comment">%              Data Structure</span>
750009 <span class="comment">%              Accelerator Object</span>
760010 <span class="comment">%  2. Field - Accelerator Object field name ('Monitor', 'Setpoint', etc) {'Monitor'}</span>
770011 <span class="comment">%  3. DeviceList ([Sector Device #] or [element #]) {Default: whole family}</span>
780012 <span class="comment">%  4. 'Physics'  - Use physics  units (optional override of units)</span>
790013 <span class="comment">%     'Hardware' - Use hardware units (optional override of units)</span>
800014 <span class="comment">%  5. 'Numeric' - Numeric output {Default}</span>
810015 <span class="comment">%     'Struct'  - Data structure output</span>
820016 <span class="comment">%</span>
830017 <span class="comment">%  OUTPUTS</span>
840018 <span class="comment">%  1. MaxPV = Maximum value corresponding to the Family, Field, and DeviceList</span>
850019 <span class="comment">%</span>
860020 <span class="comment">%  NOTES</span>
870021 <span class="comment">%  1. If Family is a cell array, then DeviceList and Field can also be a cell arrays</span>
880022 <span class="comment">%</span>
890023 <span class="comment">%  Also see minpv, getfamilydata(Family, Field, 'Range')</span>
900024 <span class="comment">%</span>
910025 <span class="comment">%  Written by Greg Portmann</span>
920026
930027
940028 <span class="comment">% Input parsing</span>
950029 UnitsFlagCell = {};
960030 StructOutputFlag = 0;
970031 <span class="keyword">for</span> i = length(varargin):-1:1
980032     <span class="keyword">if</span> isstruct(varargin{i})
990033         <span class="comment">% Ignor structures</span>
1000034     <span class="keyword">elseif</span> iscell(varargin{i})
1010035         <span class="comment">% Ignor cells</span>
1020036     <span class="keyword">elseif</span> strcmpi(varargin{i},<span class="string">'struct'</span>)
1030037         StructOutputFlag = 1;
1040038         varargin(i) = [];
1050039     <span class="keyword">elseif</span> strcmpi(varargin{i},<span class="string">'numeric'</span>)
1060040         StructOutputFlag = 0;
1070041         varargin(i) = [];
1080042     <span class="keyword">elseif</span> strcmpi(varargin{i},<span class="string">'simulator'</span>) || strcmpi(varargin{i},<span class="string">'model'</span>) || strcmpi(varargin{i},<span class="string">'Online'</span>) || strcmpi(varargin{i},<span class="string">'Manual'</span>)
1090043         <span class="comment">% Remove and ignor</span>
1100044         varargin(i) = [];
1110045     <span class="keyword">elseif</span> strcmpi(varargin{i},<span class="string">'physics'</span>)
1120046         UnitsFlagCell = {<span class="string">'Physics'</span>};
1130047         varargin(i) = [];
1140048     <span class="keyword">elseif</span> strcmpi(varargin{i},<span class="string">'hardware'</span>)
1150049         UnitsFlagCell = {<span class="string">'Hardware'</span>};
1160050         varargin(i) = [];
1170051     <span class="keyword">end</span>
1180052 <span class="keyword">end</span>
1190053
1200054 <span class="keyword">if</span> isempty(varargin)
1210055     error(<span class="string">'Must have at least a family name input'</span>);
1220056 <span class="keyword">end</span>
1230057
1240058
1250059 <span class="comment">%%%%%%%%%%%%%%%%%%%%%</span>
1260060 <span class="comment">% Cell Array Inputs %</span>
1270061 <span class="comment">%%%%%%%%%%%%%%%%%%%%%</span>
1280062 <span class="keyword">if</span> iscell(varargin{1})
1290063     <span class="keyword">for</span> i = 1:length(varargin{1})
1300064         <span class="keyword">if</span> length(varargin) &lt; 2
1310065             [Data{i}, ErrorFlag{i}] = <a href="maxpv.html" class="code" title="function [Data, ErrorFlag] = maxpv(varargin)">maxpv</a>(varargin{1}{i}, UnitsFlagCell{:});
1320066         <span class="keyword">elseif</span> length(varargin) &lt; 3
1330067             <span class="keyword">if</span> iscell(varargin{2})
1340068                 [Data{i}, ErrorFlag{i}] = <a href="maxpv.html" class="code" title="function [Data, ErrorFlag] = maxpv(varargin)">maxpv</a>(varargin{1}{i}, varargin{2}{i}, UnitsFlagCell{:});
1350069             <span class="keyword">else</span>
1360070                 [Data{i}, ErrorFlag{i}] = <a href="maxpv.html" class="code" title="function [Data, ErrorFlag] = maxpv(varargin)">maxpv</a>(varargin{1}{i}, varargin{2}, UnitsFlagCell{:});
1370071             <span class="keyword">end</span>
1380072         <span class="keyword">else</span>
1390073             <span class="keyword">if</span> iscell(varargin{3})
1400074                 [Data{i}, ErrorFlag{i}] = <a href="maxpv.html" class="code" title="function [Data, ErrorFlag] = maxpv(varargin)">maxpv</a>(varargin{1}{i}, varargin{2}{i}, varargin{3}{i}, UnitsFlagCell{:});
1410075             <span class="keyword">else</span>
1420076                 [Data{i}, ErrorFlag{i}] = <a href="maxpv.html" class="code" title="function [Data, ErrorFlag] = maxpv(varargin)">maxpv</a>(varargin{1}{i}, varargin{2}{i}, varargin{3}, UnitsFlagCell{:});
1430077             <span class="keyword">end</span>
1440078         <span class="keyword">end</span>
1450079     <span class="keyword">end</span>
1460080     <span class="keyword">return</span>
1470081 <span class="keyword">end</span>
1480082
1490083
1500084 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
1510085 <span class="comment">% Parse Family, Field, DeviceList %</span>
1520086 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
1530087 [Family, Field, DeviceList, UnitsFlag] = <a href="inputparsingffd.html" class="code" title="function [Family, Field, DeviceList, UnitsFlag, ModelFlag] = inputparsingffd(varargin)">inputparsingffd</a>(varargin{:});
1540088
1550089
1560090 <span class="comment">% Units flag</span>
1570091 <span class="keyword">if</span> isempty(UnitsFlagCell)
1580092     <span class="comment">% For structure inputs, use the units in the structure (from inputparsingffd)</span>
1590093     <span class="comment">% Else, get the default family value</span>
1600094     <span class="keyword">if</span> isempty(UnitsFlag)
1610095         UnitsFlag = <a href="getunits.html" class="code" title="function [Units, UnitsString] = getunits(Family, Field)">getunits</a>(Family);
1620096     <span class="keyword">end</span>
1630097 <span class="keyword">else</span>
1640098     <span class="comment">% Input override has priority</span>
1650099     UnitsFlag = UnitsFlagCell{1};
1660100 <span class="keyword">end</span>
1670101
1680102
1690103 <span class="comment">% Default field is Setpoint</span>
1700104 <span class="keyword">if</span> isempty(Field)
1710105     Field = <span class="string">'Setpoint'</span>;
1720106 <span class="keyword">end</span>
1730107
1740108
1750109 <span class="comment">%%%%%%%%%%%%</span>
1760110 <span class="comment">% Get data %</span>
1770111 <span class="comment">%%%%%%%%%%%%</span>
1780112 [Data, ErrorFlag] = <a href="getfamilydata.html" class="code" title="function [Data, ErrorFlag] = getfamilydata(Family, Field1, Field2, DeviceList)">getfamilydata</a>(Family, Field, <span class="string">'Range'</span>, DeviceList);
1790113 <span class="keyword">if</span> isempty(Data)
1800114     <span class="comment">% Try the .Setpoint range (this maynot be such a good ideal)</span>
1810115     [Data, ErrorFlag] = <a href="getfamilydata.html" class="code" title="function [Data, ErrorFlag] = getfamilydata(Family, Field1, Field2, DeviceList)">getfamilydata</a>(Family, <span class="string">'Setpoint'</span>, <span class="string">'Range'</span>, DeviceList);
1820116     <span class="keyword">if</span> isempty(Data)
1830117         <span class="comment">% Could check HOPR here if using epics</span>
1840118         error(sprintf(<span class="string">'%s.%s maximum setpoint limit not known, .Range field missing.'</span>, Family, Field));
1850119     <span class="keyword">end</span>
1860120 <span class="keyword">end</span>
1870121 Data = Data(:,2);
1880122
1890123
1900124 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
1910125 <span class="comment">% Change to physics units if requested %</span>
1920126 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
1930127 <span class="keyword">if</span> strcmpi(UnitsFlag,<span class="string">'Physics'</span>)
1940128     Data = <a href="hw2physics.html" class="code" title="function S = hw2physics(Family, Field, value, DeviceList, Energy)">hw2physics</a>(Family, Field, Data, DeviceList);
1950129 <span class="keyword">end</span>
1960130
1970131
1980132 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
1990133 <span class="comment">% Return a data structure if requested %</span>
2000134 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
2010135 <span class="keyword">if</span> StructOutputFlag
2020136     DataNumeric = Data;
2030137     Data = <a href="family2datastruct.html" class="code" title="function [DataStruct, ErrorFlag] = family2datastruct(varargin)">family2datastruct</a>(Family, Field, DeviceList, UnitsFlag);
2040138     Data.Data = DataNumeric;
2050139     Data.DataDescriptor = sprintf(<span class="string">'%s.%s Minimum'</span>, Family, Field);
2060140     Data.CreatedBy = <span class="string">'maxpv'</span>;
2070141 <span class="keyword">end</span></pre></div>
208<hr><address>Generated on Mon 21-May-2007 15:29:18 by <strong><a href="http://www.artefact.tk/software/matlab/m2html/">m2html</a></strong> &copy; 2003</address>
209</body>
210</html>
Note: See TracBrowser for help on using the repository browser.