Dvoupolohový regulátor, který podle dvou vstupních numerických výrazů — žádaná a regulovaná hodnota — vypočítá akční zásah (výstup) — zapnuto / vypnuto.
boolean_regulator boolean_regulator_name;
rem = string;
bubble = string;
timer = timer_name;
owner = owner_name;
position = integer, integer, integer, integer;
win_disable = [ identifier, . . . ];
win_title = string;
access = integer;
tab_select = integer;
send_same_data;
condition = boolean_expression;
wish_value = real_expression;
expression = real_expression;
output = boolean_dataelement;
inverse;
receivers = [ identifier, . . . ];
divergence_minus = real;
divergence_plus = real;
show_description;
wish_value_section
BLOCK_SECTION
end_wish_value_section;
value_section
BLOCK_SECTION
end_value_section;
output_section
BLOCK_SECTION
end_output_section;
colors
border_ink = color;
border_paper = color;
top_shadow = color;
bottom_shadow = color;
ink = color;
paper = color;
value = color;
low_limit = color;
high_limit = color;
h_grid = color;
v_grid = color;
end_colors;
end_boolean_regulator;
BLOCK_SECTION
ratio = integer;
view_position = integer;
mode = identifier;
content = identifier;
range_from = real;
range_to = real;
low_limit = real;
high_limit = real;
history = integer;
dec_places = integer;
real_step = real;
h_grid = integer;
v_grid = integer;
font = font_identifier, integer, style_identifier;
mask = string;
position = 0, 0,100, 80;
access = 4294967295;
tab_select = 4294967295;
divergence_minus = 0;
divergence_plus = 0;
section
ratio = 1;
view_position = 1; {= 2; = 3; }
mode = pointer;
content = min;
range_from = 0;
range_to = 1;
low_limit = 0;
high_limit = 1;
history = 2;
dec_places = 2;
real_step = 1;
h_grid = 0;
v_grid = 0;
font = SYSTEM, 9, normal;
Příklad nastavení parametrů přístroje boolean_regulator:
window boolean_regulator id_2;
timer = 1;
owner = background;
position = 217, 29, 445, 208;
wish_value = w;
expression = vystup_ze_soustavy;
output = b;
condition = start;
output_section
view_position = 3;
mode = flow_graph;
history = 50;
end_output_section;
wish_value_section
view_position = 1;
mode = flow_graph;
history = 50;
mask = 'input ##.#';
end_wish_value_section;
value_section
ratio = 10;
view_position = 2;
mode = flow_graph;
history = 50;
font = TIMES, 12, normal;
end_value_section;
end_boolean_regulator;
Podrobnější informace k nativním procedurám je možné nalézt v kapitole Regulátory a regulace.
SetDivergenceMinus( div_minus : real )
SetDivergencePlus( div_plus : real )
GetDivergenceMinus( &div_minus :
real )
GetDivergencePlus( &div_plus : real );
Metody slouží ke změně parametrů dvoustavového regulátoru. Parametry div_minus a div_plus odpovídají parametrům regulátoru divergence_plus a divergence_minus nastavovatelným v popisu přístroje. Více informací je možné získat v referenční příručce dvoustavového regulátoru a v kapitole Regulátory a regulace.
Přístroj může volat standardní událostní procedury:
OnActivate()
OnShow()
OnHide()
OnNewPosition( RectX,
RectY, RectW, RectD : integer )
OnWindowMinimize()
OnWindowMaximize()
OnWindowRestore( WasMinimized,
WasMaximized : boolean )
OnWindowClose()
Podrobnější informace k těmto procedurám lze nalézt v kapitole Programování a procedury.
OnOutput( &Active : boolean )
Proceduru přístroj volá vždy při nastavení výstupu, ať již je jeho hodnota jakákoli. Procedura je proto volána v každém časovém kroku přístroje. Parametr Active obsahuje aktuální hodnotu výstupu regulátoru, přičemž tato hodnota v okamžiku volání procedury ještě není zapsána do výstupního datového elementu. Procedura proto může výstup regulátoru ovlivnit upravením parametru Active na libovolnou hodnotu. Teprve takto upravená (případně nezměněná) hodnota bude zapsána na výstup regulátoru.
OnOutputChange( &Active : boolean )
Proceduru přístroj volá vždy při nastavení výstupu, je-li jeho aktuální hodnota odlišná od hodnoty předchozí. Procedura proto nemusí být volána v každém časovém kroku přístroje. Parametr Active obsahuje aktuální hodnotu výstupu regulátoru, přičemž tato hodnota v okamžiku volání procedury ještě není zapsána do výstupního datového elementu. Procedura proto může výstup regulátoru ovlivnit upravením parametru Active na libovolnou hodnotu. Teprve takto upravená (případně nezměněná) hodnota bude zapsána na výstup regulátoru.