DATA_BLOCK DB 1
TITLE =
VERSION : 0.1
STRUCT
Regulator1 : STRUCT
LowComparison : REAL ;
HiComparison : REAL ;
OutputLevel : REAL ; //when LowComparison >= Percent < HighComparison
EndIndicator : INT ; //-1 indicates end of list
END_STRUCT ;
Regulator2 : STRUCT
LowComparison : REAL ;
HiComparison : REAL ;
OutputLevel : REAL ; //when LowComparison >= Percent < HighComparison
EndIndicator : INT ; //-1 indicates end of list
END_STRUCT ;
Regulator3 : STRUCT
LowComparison : REAL ;
HiComparison : REAL ;
OutputLevel : REAL ; //when LowComparison >= Percent < HighComparison
EndIndicator : INT ; //-1 indicates end of list
END_STRUCT ;
END_STRUCT ;
BEGIN
Regulator1.LowComparison := 0.000000e+000;
Regulator1.HiComparison := 5.000000e+000;
Regulator1.OutputLevel := 1.000000e+003;
Regulator1.EndIndicator := 0;
Regulator2.LowComparison := 5.000000e+000;
Regulator2.HiComparison := 1.000000e+002;
Regulator2.OutputLevel := 2.000000e+003;
Regulator2.EndIndicator := 0;
Regulator3.LowComparison := 1.000000e+002;
Regulator3.HiComparison := 1.000000e+003;
Regulator3.OutputLevel := 3.000000e+000;
Regulator3.EndIndicator := -1;
END_DATA_BLOCK
FUNCTION FC 1 : VOID
TITLE =
VERSION : 0.1
BEGIN
NETWORK
TITLE =loop around a list of comparisons
OPN DB 1;
LAR1 P#DBX 0.0; //point to start of list of comparisons
cmp: A( ;
L MD 100;
L D [AR1,P#0.0]; //low level comparison
>=R ;
) ;
TAK ;
A( ;
L D [AR1,P#4.0]; //hi level comparison
<R ;
) ;
JCN skp; //if comparison not met then skip
L D [AR1,P#8.0]; //else output level required
T MD 104;
BEU ; //end exit
skp: L W [AR1,P#12.0]; //check for end of list
L -1; //indicated by -1
==I ;
BEC ;
+AR1 P#14.0; //point at next set of comparisons
JU cmp;
END_FUNCTION