trend_viewer

Funkce

Zobrazování, prohlížení a tisk historických trendů a statistických hodnot analogových signálů. Přístroj je nečasovatelný a jeho činnost lze řídit prostřednictvím nativních procedur.


Syntax

  trend_viewer trend_viewer_name;
    rem = string;
    bubble = string;
    timer = timer_name;
    owner = owner_name;
    position = integer, integer, integer, integer;
    win_disable = win_disable_list;
    win_title = string;
    access = integer;
    tab_select = integer;
    driver_exception = driver_name;
    title = string;
    legend_title = string;
    title_font = font_identifier, integer, style_identifier;
    font = font_identifier, integer, style_identifier;
    h_grid = integer
    v_grid = integer
    show_grid;
    grid_style = line_style_identifier;
    content = content_identifier_list
    file_mask = string;
    graph_length = cardinal;
    date_item_name = string;
    time_item_name = string;
    odbc
      enable;
      dsn = string;
      user_name = string;
      password = string;
    end_odbc;
    print
      margins = real, real, real, real;
      graph = real, real;
      units = identifier;
      bw_print;
      landscape;
    end_print
    statistics
      range = boolean, string, integer, integer;
      sum = boolean, string, integer, integer;
      arithmetic_average = boolean, string, integer, integer;
      minimum = boolean, string, integer, integer;
      maximum = boolean, string, integer, integer;
      span = boolean, string, integer, integer;
      dispersion = boolean, string, integer, integer;
      standard_deviation = boolean, string, integer, integer;
      average_deviation = boolean, string, integer, integer;
      relative_deviation = boolean, string, integer, integer;
    end_statistics;
    item
      name = string;
      dec_places = integer;
      label = string
      units = string
      range_from = real
      range_to = real
      color = color
      line_style = line_style_identifier, line_style_identifier;
       status = identifier_list
    end_item;
    item
      ...
    end_item;
    colors
      text = color;
      title = color;
      border = color;
      grid = color;
      background = color;
      selected= color;
      sheet= color;
      line= color;
      value= color;
    end_colors;
  end_trend_viewer;

Specifické parametry přístroje


Poznámky

Vzhled přístroje

DataView

Některé parametry mají implicitní nastavení

  position = 0, 0, 300, 150;
  access = <none>
  tab_select = <none>
  legend_title = 'Legenda';
  h_grid = 9;
  v_grid = 9;
  grid_style = full;
  content = title, left_axis, right_axis, x_axis;
  graph_length = 10;
  date_item_name = 'DATE';
  time_item_name = 'TIME';
  print
    margins = 1.5, 1.5, 2, 2;
    graph = 15, 10;
    units = centimeters;
  end_print;
  statistics
    range = false, 'Rozsah', 5, 1;
    sum = false, 'Součet', 5, 1;
    arithmetic_average = false, 'Průměr', 5, 1;
    minimum = false, 'Minimum', 5, 1;
    maximum = false, 'Maximum', 5, 1;
    span = false, 'Rozpětí', 5, 1;
    dispersion = false, 'Rozptyl', 5, 1;
    standard_deviation = false, 'Směr. odch.', 5, 1;
    average_deviation = false, 'Prům. odch.', 5, 1;
    relative_deviation = false, 'Rel. odch.', 5, 1;
  end_statistics;
  colors
    text = black;
    title = black;
    border = white;
    grid = dgray;
    background = black;
    selected = black;
    sheet = white;
    line = black;
    value = black;
  end_colors;

Příklad

Příklad nastavení přístroje

  trend_viewer TVI;
    owner = background;
    position = 24, 48, 436, 244;
    title = 'Trend';
    title_font = 'Arial', 18, normal;
    v_grid = 18;
    grid_style = dot;
    content = title, left_axis, right_axis, x_axis, legend;
    file_mask = 'tvi*.dbf';
    item
      name = 'CHANNEL1';
      dec_places = 1;
      label = 'Voltage';
      units = 'V';
      range_from = 0;
      range_to = 100;
      color = lgreen;
      line_style = full, full;
      status = select;
    end_item;
    item
      name = 'CHANNEL2';
      dec_places = 1;
      label = 'Current';
      units = 'mA';
      range_from = 0;
      range_to = 100;
      color = lyellow;
      line_style = full, dot;
    end_item;
    item
      name = 'CHANNEL3';
      dec_places = 1;
      label = 'Power';
      units = 'W';
      range_from = 0;
      range_to = 10;
      color = lred;
      line_style = full, dashed;
    end_item;
    colors
      title = blue;
    end_colors;
  end_trend_viewer;

DataView Trend

DataView Trend slouží pro zobrazování, vyhodnocování a tisk historických trendů a statistických hodnot analogových veličin.

Data pro trend lze získávat z jednoho nebo více databázových souborů - v tomto případě jsou soubory napojeny za sebe (jsou seřazeny podle jmen) a k záznamům je přistupováno tak, jakoby byly všechny obsaženy v jednom souboru. Pokud se v databázových souborech vyskytují položky, které obsahují datum a čas, mohou být tyto zobrazovány na x-ové ose. Pomocí časového kursoru se lze pohybovat po jednotlivých záznamech a odečítat hodnoty na pozici kursoru. Pro průběh každé série lze definovat barvu, druh čáry, rozsah, jednotky a název. Kliknutím na název série v legendě lze snadno přepínat cejchování levé y-ové osy. Samozřejmostí je funkce zoom, vyhledání a zobrazení dat v zadaném časovém intervalu a uživatelské nastavení vzhledu DataView v přehledném dialogovém okně. Veškerá nastavení DataView jsou uložena v logicky členěném textovém popisovém souboru.

Vzhled DataView Trend

DataView

Rozšířené ovládání DataView Trend pomocí myši

Pokud není zobrazen časový kursor, lze při stisknutém levém tlačítku myši v ploše grafu označit část grafu, která bude po jeho puštění zvětšena do celé plochy grafu. Návrat k původnímu grafu lze provést volbou příkazu 'Zpět' v menu 'Editace'. Pokud je zobrazen časový kursor a podržíme-li stisknuté levé tlačítko myši v průsečíku kursoru a průběhu série, jsou po chvíli zobrazeny dostupné hodnoty bodu. Pokud je zobrazena legenda, lze přepínat popis levé y-ové osy kliknutím levým tlačítkem nad textem série.


Nativní procedury přístroje

Clear()

Vymaže obsah přístroje (resp. DataView) a připraví jej pro nové použití.

Open( Path : string; &Result : boolean )

Načte popisový soubor (*.tvi) Path do přístroje a výsledek operace vrátí v parametru Result.

Save( Path : string; &Result : boolean )

Uloží stávající konfiguraci přístroje do popisového souboru Path a výsledek operace vrátí v parametru Result.

SetDatabase( Path : string; &Result : boolean )

Nastaví databázový soubor nebo masku (podle DOSovských zvyklostí) pro databázové soubory uvedené v parametru Path jako zdroj záznamů a výsledek operace vrátí v parametru Result.

SetContent( Title, LeftAxis, RightAxis, XAxis, Legend, Values, Statistics : boolean )

Určuje vzhled, resp. jednotlivé části přístroje, které budou v přístroji obsaženy.

Title - nadpis grafu
LeftAxis - levá (jednotková) y-ová osa
RightAxis - pravá (procentuální) y-ová osa
XAxis - x-ová (časová) osa
Legend - legenda
Values - hodnoty na pozici časového kurzoru
Statistics - zobrazení statistických hodnot

SetTitle( Title : string )

Zobrazí Title jako nadpis grafu.

SetLegendTitle( Title : string )

Zobrazí Title jako nadpis legendy.

SetTitleFont( FontName : string; FontSize : number; FontType : string )

Nastavení písma pro nadpis grafu. Typ písma je určen třemi parametry. První z nich FontName určuje typ písma (např. Times, Arial, aj.), druhý určuje jeho velikost v tiskových bodech a třetí parametr FontType rozhoduje o tom, zda bude písmo normální (normal), tučné (bold) nebo skloněné (italic).

SetTitleColor( Color : number )

Nastavení barvy nadpisu.

Hodnoty parametru Color a odpovídající barvy:

SetTitleColor( R, G, B : number )

Nastavení barvy nadpisu ve složkách R, G, B.

R (červená) - rozsah hodnot 0-255
G (zelená) - rozsah hodnot 0-255
B (modrá) - rozsah hodnot 0-255

SetLegendFont( FontName : string; FontSize : number; FontType : string )

Nastavení písma pro popis os a legendu. Hodnoty parametrů viz SetTitleFont.

SetLegendColor( Color : number )

Nastavení barvy písma popisu os a legendy. Hodnoty parametru Color viz SetTitleColor.

SetLegendColor( R, G, B : number )

Nastavení barvy písma popisu os a legendy ve složkách R, G, B. (viz SetTitleColor)

SetGrid( On : boolean )

V závislosti na hodnotě parametru On zapíná nebo vypíná zobrazování mřížky.

SetGridLines( Horizontal, Vertical : number )

Nastavení počtu vodorovných (parametr Horizontal) a svislých (parametr Vertical) čar mřížky.

SetGridColor( Color : number )

Nastavení barvy čar mřížky. Hodnoty parametru Color viz SetTitleColor.

SetGridColor( R, G, B : number )

Nastavení barvy čar mřížky ve složkách R, G, B. (viz SetTitleColor)

SelectSerie( ItemName : string )

Vybere sérii určenou jménem databázové položky ItemName.

SelectSerie( ItemNumber : number )

Vybere sérii určenou pořadím ItemNumber. První sérii odpovídá číslo 1.

SetSerie( ItemName : string; Invisible : boolean )

Podle hodnoty parametru Invisible zobrazí nebo skryje sérii určenou parametrem ItemName. ItemName je jméno databázové položky.

SetSerie( ItemNumber : number; Invisible : boolean )

Podle hodnoty parametru Invisible zobrazí nebo skryje sérii určenou parametrem ItemNumber. ItemNumber je pořadí série. První sérii odpovídá číslo 1.

SetSerieRange( ItemName : string; RangeFrom, RangeTo : real )

Nastavení rozsahu y-ové osy série určené parametrem Item

RangeFrom - rozsah od
RangeTo - rozsah do

SetSerieColor( ItemName : string; Color : number )

Nastavení barvy série určené parametrem ItemName. Hodnoty parametru Color viz SetTitleColor.

SetSerieColor( ItemName : string; R, G, B : number )

Nastavení barvy série určené parametrem Item ve složkách R, G, B. (viz SetTitleColor)

SetSerieLabel( ItemName, Label : string )

Nastavení textového popisu série určené parametrem ItemName na hodnotu v parametru Label.

Undo()

Návrat k původnímu (tj. před použitím funkce zoom) zobrazení grafu.

SetZoom( On : boolean )

Pokud má parametr On hodnotu true, je funkce zoom povolena.

GetMaxGraphLength( &Length : real )

V parametru Length vrátí maximální počet zobrazitelných vzorků.

SetGraphLength( Length : number )

Parametr Length určuje počet zobrazovaných vzorků v grafu.

SetGraphSampleInterval( FirstSample, LastSample : number )

Zobrazí data v grafu od vzorku FirstSample až do vzorku LastSample.

SetGraphTimeInterval( FromDate, FromTime, ToDate, ToTime : string )

Zobrazí data v grafu v časovém intervalu určeném parametry FromDate, FromTime, ToDate, ToTime. Formát zadávaného data a času musí odpovídat systémovému nastavení.

SetCursor( On : BOOLEAN )

V závislosti na hodnotě parametru On zapíná nebo vypíná zobrazování časového kursoru.

MoveCursor( ToLeft, ByPage : BOOLEAN )

Přesun časového kurzoru doleva (ToLeft má hodnotu true) nebo doprava (ToLeft má hodnotu false) o jednu hodnotu. Má-li parametr ByPage hodnotu true, pak je kurzor přesunut o Length vzorků (viz SetGraphLength).

SetGraphColor( Color : number )

Nastavení barvy pozadí grafu. Hodnoty parametru Color viz SetTitleColor.

SetGraphColor( R, G, B : number )

Nastavení barvy pozadí grafu ve složkách R, G, B. (viz SetTitleColor)

SetBorderColor( Color : number )

Nastavení barvy okraje grafu. Hodnoty parametru Color viz SetTitleColor.

SetBorderColor( R, G, B : number )

Nastavení barvy okraje grafu ve složkách R, G, B. (viz SetTitleColor)

GetStatisticValue( ItemName, ValueId : string; &Value : number; &Result : boolean )

Vrátí v parametru Value statistickou hodnotu určenou parametrem ValueId série určené parametrem ItemName z tabulky statistických hodnot. Pokud je hodnota platná, vrací v parametru Result hodnotu true.
Dostupné statistické hodnoty pro parametr ValueId:

range - rozsah
sum - součet
arithmetic_average - aritmetický průměr
minimum - minimální hodnota
maximum - maximální hodnota
span - variační rozpětí
dispersion - rozptyl
standard_deviation - směrodatná odchylka
average_deviation - průměrná odchylka
relative_deviation - relativní průměrná odchylka

ShowStatisticValue( ValueId : string )

Povolí zobrazování statistických hodnot série určené parametrem ValueId v tabulce statistických hodnot. Hodnoty parametru ValueId viz GetStatisticValue.

HideStatisticValue( ValueId : string )

Zakáže zobrazování statistických hodnot série určené parametrem ValueId v tabulce statistických hodnot. Hodnoty parametru ValueId viz GetStatisticValue.

SetSheetColor( Color : number )

Nastavení barvy pozadí tabulky statistických hodnot. Hodnoty parametru Color viz SetTitleColor.

SetSheetColor( R, G, B : number )

Nastavení barvy pozadí tabulky statistických hodnot ve složkách R, G, B. (viz SetTitleColor)

SetLineColor( Color : number )

Nastavení barvy dělících čar tabulky statistických hodnot. Hodnoty parametru Color viz SetTitleColor.

SetLineColor( R, G, B : number )

Nastavení barvy dělících čar tabulky statistických hodnot ve složkách R, G, B. (viz SetTitleColor)

SetValueColor( Color : number )

Nastavení barvy statistických hodnot v tabulce. Hodnoty parametru Color viz SetTitleColor.

SetValueColor( R, G, B : number )

Nastavení barvy statistických hodnot v tabulce ve složkách R, G, B. (viz SetTitleColor)

SetPaperOrientation( Landscape : boolean )

Nastavení orientace tisku. Má-li parametr Landscape hodnotu true, bude se tisknout naležato.

SetGraphPrintSize( Width, Depth : real; Inch : boolean )

Nastavení rozměrů tiskového výstupu. Má-li parametr Inch hodnotu true, předpokládají se rozměry v palcích. Má-li parametr Inch hodnotu false, předpokládají se rozměry v centimetrech.

Hide()

Skrytí zobrazeného přístroje.

Show()

Zobrazení skrytého přístroje.

Print()

Vytiskne obsah přístroje na tiskárnu.

NewRect( x, y, w, d : number )

Nastavení nové pozice a rozměrů přístroje. Parametry x a y určují pozici levého horního rohu přístroje vzhledem k jeho vlastníkovi a parametry w a d určují rozměry přístroje.

ShowSettingsBox()

Zobrazí dialogové okno pro nastavení všech parametrů prohlížeče trendů.

Událostní procedury přístroje

Přístroj může volat standardní událostní procedury:

OnActivate()
OnMouseDown( MouseX, MouseY : integer; LeftButton, MiddleButton, RightButton : boolean ) 
OnMouseDoubleClick( MouseX, MouseY : integer; LeftButton, MiddleButton, RightButton : boolean ) 
OnMouseUp( MouseX, MouseY : integer; LeftButton, MiddleButton, RightButton : boolean ) 
OnMouseMove( MouseX, MouseY : integer; LeftButton, MiddleButton, RightButton : boolean ) 
OnSelect() 
OnDeselect() 
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.