step_regulator

Funkce

Krokový regulátor, který podle dvou vstupních numerických výrazů — žádaná a regulovaná hodnota — vypočítá akční zásah — přičítací a odečítací výstup.

Syntax

  step_regulator step_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_minus = real_dataelement;
    output_plus = real_dataelement;
    receivers = [ identifier, . . . ];
    inverse;
    divergence_minus = real;
    divergence_plus = real;
    inactive_hit = integer;
    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_step_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

Poznámky

Příklad

Příklad nastavení parametrů přístroje step_regulator:

  window step_regulator reg;
    timer = 1;
    owner = background;
    position = 217, 34, 345, 108;
    wish_value = w;
    expression = vystup_ze_soustavy;
    output_minus = minus;
    output_plus = plus;
    condition = start;
    active_hit = 2;
    output_section
      view_position = 3;
      mode = flow_graph;
      range_from = -1;
      range_to = 1;
      low_limit = -1;
      high_limit = 1;
      history = 50;
    end_output_section;
    wish_value_section
      mode = flow_graph;
      history = 50;
    end_wish_value_section;
    value_section
      view_position = 1;
      mode = flow_graph;
      history = 50;
    end_value_section;
    colors
      paper = white;
      low_limit = dgray;
      high_limit = dgray;
    end_colors;
  end_step_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 );
SetInactiveHit( active_hit : real );
GetDivergenceMinus( VAR div_minus : real );
GetDivergencePlus( VAR div_plus : real );
GetInactiveHit( VAR inactive_hit : real );

Metody slouží ke změně parametrů krokového regulátoru. Parametry div_minus, div_plus a inactive_hit odpovídají parametrům regulátoru divergence_plus, divergence_minus a inactive_hit nastavovatelným v popisu přístroje. Více informací je možné získat v referenční příručce krokové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( &PlusActive, &MinusActive : 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. Parametry PlusActive a MinusActive obsahují aktuální hodnoty výstupu regulátoru, přičemž tyto hodnoty v okamžiku volání procedury ještě nejsou zapsány do výstupních datových elementů. Procedura proto může výstup regulátoru ovlivnit upravením parametrů PlusActive a MinusActive na libovolnou hodnotu. Teprve takto upravené (případně nezměněné) hodnoty budou zapsány na výstup regulátoru.

OnOutputChange( &PlusActive, &MinusActive : 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. Parametry PlusActive a MinusActive obsahují aktuální hodnoty výstupu regulátoru, přičemž tyto hodnoty v okamžiku volání procedury ještě nejsou zapsány do výstupních datových elementů. Procedura proto může výstup regulátoru ovlivnit upravením parametrů PlusActive a MinusActive na libovolnou hodnotu. Teprve takto upravené (případně nezměněné) hodnoty budou zapsány na výstup regulátoru.