boolean_regulator
Funkce
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.
Syntax
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;
Specifické parametry přístroje
- condition
Obsahuje podmínku spuštění regulace. Dokud není
výraz condition = true, regulátor nevysílá žádnou logickou hodnotu.
- wish_value
Číselný výraz určující žádanou hodnotu, které
se regulátor bude snažit dosáhnout.
- expression
Číselný výraz s hodnotou aktuálního stavu
regulované veličiny, tuto veličinu regulátor reguluje.
- output
Obsahuje datový element, tj. proměnnou nebo kanál,
na který bude regulátor posílat vypočtený regulační zásah. Dvoustavový
regulátor vytváří akční zásah jako logickou hodnotu, symbolizující stav
zapnuto, nebo vypnuto. Pomocí parametru inverse je možné měnit význam
logických hodnot regulačního zásahu.
- inverse
Je-li zadán, pak regulátor bude posílat akční
zásah output v negované podobě, neboli stavu sepnuto bude odpovídat
logický výstup false a stavu vypnuto logický výstup true.
- receivers
Seznam přístrojů, kterým se budou posílat
zprávy o akcích regulátoru. Podle nastavení parametru
send_same_data se regulátor chová dvěma způsoby — buď volá přístroje
uvedené v receivers jen při změně akční hodnoty (parametr
send_same_data není nastaven), nebo (send_same_data nastaven je)
v každém časovém kroku bez ohledu na stav nebo změnu stavu akční
veličiny.
- divergence_minus a divergence_plus
jsou
hodnoty hystereze regulátoru. Je-li žádaná hodnota větší než skutečná,
regulátor sepne až když tato odchylka překročí divergence_plus. Naopak,
je-li žádaná hodnota menší než skutečná, regulátor vypne až když rozdíl těchto
veličin překročí pod divergence_minus.
- show_description
je klíčové slovo, které určuje, zda se
má zobrazit popis jednotlivých sekcí regulátoru.
- section a end_section
jsou klíčová slova,
mezi kterými jsou umístěny parametry ovlivňující vzhled vykreslování výstupní a
dvou vstupních hodnot.
- ratio
Vyjadřuje poměrnou část šířky plochy, která bude
nastavena této sekci vzhledem k celkové šířce regulátoru.
- view_position
Má hodnotu 1, 2, nebo 3, která udává pořadí
sekce v regulátoru při zobrazování.
- mode
určuje grafickou podobu přístroje uvedením jednoho
z názvů módu:
- pointer — ručkový přístroj
- digital — digitální výstup bodový
- dot_digital — digitální výstup
- vertical_bar — poměrná svislá barevná plocha
- horizontal_bar — poměrná vodorovná barevná plocha
- flow_graph — posunující se graf
- sweep_graph — stojící graf
- text_display — návěští s aktuální hodnotou
- double_graph — kombinace žádané a vstupní hodnoty
- content
má rovněž vliv na grafickou podobu přístroje.
Může nabývat tří hodnot: max, med a min. Pro všechny módy
znamená nastavení content = max zobrazení kompletní podoby přístroje.
Některé módy navíc umožňují schovat jednu ze svých částí, a to nastavením
parametru content = med, popř. content = min.
- range_from a range_to
jsou parametry
udávající rozsah přístroje. Bude-li hodnota vstupního výrazu přístroje menší,
než je hodnota range_from, přístroj se nastaví právě na hodnotu uvedenou
v range_from, stejně tak bude-li hodnota vstupního výrazu
přesahovat range_to, přístroj se nastaví právě na hodnotu uvedenou
v range_to.
- low_limit a high_limit
jsou parametry
ovlivňující barevné zobrazení vykreslované hodnoty. Je–li hodnota menší než
low_limit, vykresluje se barva uvedená v parametru
colors–low_limit, přesáhne–li hodnota high_limit, pak je aktuální
barva parametru colors–high_limit. V rozsahu mezi limitami se
hodnota vykresluje barvou colors–value. Podle zvoleného módu se bude
měnit např. barva pozadí přístroje, popř. se danými barvami vykreslí hodnoty
obou limit v grafu.
- history
udává počet zobrazených hodnot v grafu.
U jiných módů nemá význam.
- dec_places
je počet zobrazovaných desetinných míst pro
módy s číselným vykreslováním hodnoty.
- real_step
je parametr důležitý pro nastavování limitů
přístroje pomocí numerického řádku. Jeho numerická velikost udává přírůstek
hodnoty při použití inkrementálních a dekrementálních šipek numerického řádku.
- h_grid a v_grid
jsou parametry určující
zobrazení vodorovných a svislých čar do grafu jako jeho pomocné síťování.
Velikost parametrů h_grid a v_grid udává počet zobrazených
vodorovných a svislých čar.
- font
je parametr určující font při vykreslování hodnoty
módem text_display. Má vždy tři části. První z nich font_identifier určuje
typ písma (např. TIMES, SYSTEM, SWISS, FIXED aj.), druhý určuje jeho velikost a
třetí parametr style_identifier rozhoduje o tom, zda bude písmo normální
(normal), tučné (bold) nebo skloněné (italic).
- mask
je šablona pro vypisování libovolného textu současně
s numerické hodnotou přístroje. Parametr má význam při mode =
text_display;. V textovém režimu se zadává v apostrofech,
v inspektoru přístroje bez nich. Může mít např. tvar mask = 'rychlost =
##.## m/s'; , kde znak "&" udává umístění a velikost
zobrazované numerické hodnoty.
Poznámky
- Více informací o použitých regulačních mechanismech a regulátorech
samotných je možné nalézt v kapitole Regulátory a regulace manuálu.
- Význam barev i módů je totožný s přístrojem meter.
- Implicitně jsou nastaveny následující parametry:
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
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;
Nativní procedury
přístroje
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.
Událostní procedury přístroje
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.
Specifické událostní procedury přístroje
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.