Knihovna WebGraphLib



Podobné dokumenty
Knihovna DataBoxLib TXV první vydání prosinec 2010 změny vyhrazeny

Knihovna CanvasObjectsLib

Knihovna EpsnetLib TXV první vydání září 2012 změny vyhrazeny

Knihovna XmlLib TXV druhé vydání říjen 2012 změny vyhrazeny

Knihovna XmlLib TXV první vydání prosinec 2010 změny vyhrazeny

Knihovna SolarMonitorLib

Knihovna GalaxyLib TXV druhé vydání srpen 2012 změny vyhrazeny

Knihovna TecoRouteLib

Knihovna LightsLib TXV první vydání prosinec 2011 změny vyhrazeny

Knihovna ConvertLib TXV první vydání září 2013 změny vyhrazeny

Knihovna DebugComLib

Knihovna XBMCLib TXV druhé vydání květen 2014 změny vyhrazeny

Knihovna AstroLib TXV první vydání listopad 2010 změny vyhrazeny

Knihovna ServoLib Řízení servopohonu bez zpětné vazby. TXV první vydání březen 2009 změny vyhrazeny

Knihovna RecDBXLib ZÁZNAMY V DATABOXU TXV

Knihovna XmlLibEx TXV druhé vydání prosinec 2013 změny vyhrazeny

Knihovna MeteoGiom3000Lib TXV první vydání Prosinec 2010 změny vyhrazeny

Knihovna EnergyLib TXV čtvrté vydání červen 2012 změny vyhrazeny

Knihovna FlashLib TXV první vydání listopad 2009 změny vyhrazeny

Knihovna JablotronLib TXV druhé vydání květen 2014 změny vyhrazeny

Knihovna DMX512lib Komunikace protokolem DMX512. TXV prvé vydání srpen 2010 změny vyhrazeny

Knihovna ParadoxLib TXV druhé vydání březen 2013 změny vyhrazeny

Aplikační profily v PLC Tecomat

Knihovna EnergyLib TXV páté vydání červen 2012 změny vyhrazeny

Knihovna ComLib TXV osmé vydání červenec 2013 změny vyhrazeny

Knihovna LG_HVAC_Lib

Knihovny pro programování PLC Tecomat podle IEC

Knihovna pro GSM TXV šesté vydání Prosinec 2010 změny vyhrazeny

Knihovna CFoxLib TXV první vydání červen 2012 změny vyhrazeny

Knihovna WeatherLib TXV první vydání srpen 2012 změny vyhrazeny

Programování v C++, 2. cvičení

Průvodní zpráva k projektu

Komunikace modulu s procesorem SPI protokol

UniLog-D. v1.01 návod k obsluze software. Strana 1

Knihovna icontrollib

1 Seznámení s prostředím MOSAIC

Práce s paměťovou kartou v systémech Tecomat

K8055D.DLL v Technická příručka. Úvod. Obecné. Konvence volání. Nastavení adresy karty

Knihovna icontrollib

Programování PLC Tecomat podle normy IEC TXV osmé vydání březen 2006 změny vyhrazeny

Knihovna CoolMasterLib

Programování PLC podle normy IEC v prostředí Mosaic

Knihovna pro modelování procesů TXV čtvrté vydání září 2012 změny vyhrazeny

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

CIB VOICE MODULE HLM390/CIB. Technická dokumentace

Knihovna KnxLib TXV první vydání prosinec 2012 změny vyhrazeny

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Homer. prvky. délka. přední 0 zadní 4. Použití fronty BUS STOP. 3 Lisa. 2 Bart. 4 Maggie. 1 Marge. Grafické znázornění předchozí animace:

Knihovna ModbusRTUlib Komunikace protokolem Modbus RTU master. TXV vydání únor 2010 změny vyhrazeny

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

Knihovna DaliLibEx Komunikace protokolem DALI. TXV vydání Řijen 2014 změny vyhrazeny

Knihovna WeatherLib TXV druhé vydání prosinec 2014 změny vyhrazeny

PODOBÁ SE JAZYKU C S NĚKTERÝMI OMEZENÍMI GLOBÁLNÍ PROMĚNNÉ. NSWI162: Sémantika programů 2

PCKEYB JEDNOTKA PRO OBSLUHU KLÁVESNICE TYPU PC AT. Příručka uživatele a programátora

Jazyk VHDL konstanty, signály a proměnné. Jazyk VHDL paralelní a sekvenční doména. Kurz A0B38FPGA Aplikace hradlových polí

Úlohy PLC programování

CDH-420. Měřič vodivosti

Knihovna BuildingLib TXV

X37SGS Signály a systémy

Implementace LL(1) překladů

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

Knihovna CanvasLib TXV první vydání prosinec 2014 změny vyhrazeny

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Popis programu řádkové kamery USB Video Interface

Datové typy a struktury

Knihovna InternetLib

Popis funkcí exportovaných z knihovny nddbe.dll

Uživatelská příručka. Internet Map Server verze 1.5.4

MQL4 COURSE. By Coders guru -5 Smyčky & Rozhodnutí Část 2

Abstraktní datové typy

Popis prostředí MOSAIC Programové prostředí MOSAIC nastavení prostředí. Po spuštění Mosaiku se objeví okno Výběr skupiny projektů

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

KNIHOVNA LETNI_CAS. edice verze 1.0. Knihovna letni_cas. Ing. Zdeněk Rozehnal MICROPEL s.r.o. 2008

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Propojení systému MICROPEL a inteligentní elektroinstalace ABB Ego-n

REG10 návod k instalaci a použití 2.část Univerzální časovač a čítač AVC/ 02

25. TVORBA HTML DIALOGŮ PRO PEVNÉ TVARY

Nástroj WebMaker TXV první vydání Únor 2009 změny vyhrazeny

Excel Board příprava. ProExcel.cz Excel Board výuková a prezentační tabule pro Excel 1

Řízení systému Foxtrot přes webové rozhraní Laboratorní cvičení (Předmět - MPSD)

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná.

Konstruktory a destruktory

6 Příkazy řízení toku

BALISTICKÝ MĚŘICÍ SYSTÉM

Činnost: 1) Vyhodnotí se výraz E. 2) Jeho hodnota se uloží do proměnné V.

LZ77 KNIHOVNA PRO KOMPRESI A DEKOMPRESI DAT POMOCÍ ALGORITMU LZ77. Příručka uživatele a programátora

Programování dle normy IEC Strukturovaný text (ST)

UniLog-L. v0.81 návod k obsluze software. Strana 1

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

PES lib (C + PASCAL) KNIHOVNY KOMUNIKAÈNÍCH FUNKCÍ 03/ PESlib KOMUNIKAČNÍ KNIHOVNY C, PASCAL 03/ stran 1

CZ.1.07/1.1.30/

Průvodce programováním AMiNi-E jazykem STL Dipl. Ing. Pavel Votrubec

V této aplikaci si ukážeme jakým způsobem zobrazovat čas a datum. Pro ovládání zobrazení času a datumu se naučíme využívat nabídku.

Návrh ovládání zdroje ATX

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

Práce s binárními soubory. Základy programování 2 Tomáš Kühr

Sada 1 - PHP. 03. Proměnné, konstanty

T-Mobile ProfiNet: Statistiky datových služeb

Služba TecoRoute TXV druhé vydání listopad 2013 změny vyhrazeny

Transkript:

Knihovna WebGraphLib TXV 003 58.01 první vydání květen 2010 změny vyhrazeny 1 TXV 003 58.01

Historie změn Datum Vydání Popis změn Březen 2010 1 První vydání, popis odpovídá WebGraphLib_v10 OBSAH 1 Úvod...3 2 Datové typy...4 3 Konstanty...5 4 Globální proměnné...5 5 Funkce...6 5.1 Funkce InsertToGraphInt...7 5.2 Funkce InsertToGraphReal...8 5.3 Funkce SwitchRollGraphInt...9 5.4 Funkce SwitchRollGraphReal...10 6 Funkční bloky...11 6.1 Funkční blok fbsimplegraph1int_32c...12 6.2 Funkční blok fbsimplegraph1real_32c...16 6.3 Funkční blok fbsimplegraph1real_64c...19 6.4 Funkční blok fbsimplegraph2real_32c...23 7 Příklad použití...27 2 TXV 003 58.01

1 ÚVOD Knihovna WebGraphLib je standardně dodávaná jako součást programovacího prostředí Mosaic. Knihovna obsahuje funkce a funkční bloky podporující zobrazení jednoduchých grafů ve web stránce, vytvořené nástrojem WebMaker. Následují obrázek ukazuje strukturu knihovny WebGraphLib v prostředí Mosaic Pokud chceme funkce z knihovny WebGraphLib použít v aplikačním programu PLC, je třeba nejprve přidat tuto knihovnu do projektu. Knihovna je dodávaná jako součást instalace prostředí Mosaic od verze v2.0.23. Pro zobrazení grafu se využívá objekt sloupec ovládaný proměnnou, který je podporovám nástrojem WebMaker od Mosaic v2.0.22. Knihovna WebGraphLib nevyžaduje žádnou speciální podporu ze stranu firmwaru procesorového modulu PLC. Zobrazení grafů ve webovém prohlížeči je podmíněno web serverem v centrálním modulu. Ten je součástí firmaru v centrálních jednotkách řady K (TC700 CP-7004, všechny varianty systému Foxtrot). Doporučená verze FW je v5.0 nebo vyšší. 3 TXV 003 58.01

2 DATOVÉ TYPY V knihovně WebGraphLib jsou definovány následující datové typy: Datový typ TBufInt TBufInt64 TBufReal TBufReal64 TDescAxisY TGraphView1Int TGraphView1Real TGraphView2Real Popis Pole 32 prvků typu INT Pole 64 prvků typu INT Pole 32 prvků typu REAL Pole 64 prvků typu REAL Pole 11 prvků typu REAL používané pro popis osy Y v grafu Struktura používaná pro jednu hodnotu typu INT vynášenou do grafu. Obsahuje položku val s hodnotou proměnné a položku valpx, kde je odpovídající velikost sloupcového bloku v pixelech. Struktura používaná pro jednu hodnotu typu REAL vynášenou do grafu. Obsahuje položku val s hodnotou proměnné a položku valpx, kde je odpovídající velikost sloupcového bloku v pixelech. Struktura používaná pro dvě hodnotu typu REAL vynášené do grafu. Obsahuje položky val1 a val2 s hodnotami proměnných a položky valpx1 a valpx2, kde jsou odpovídající velikosti sloupcových bloků v pixelech. 4 TXV 003 58.01

3 KONSTANTY V knihovně WebGraphLib jsou definovány následující konstanty: Konstanta NULL_PTR se používá pro inicializaci proměnných typu PTR_TO v případě, že pointer neukazuje na žádnou proměnnou. Identifikátor Typ Hodnota Význam NULL_PTR UDINT 16#FFFF_FFFF Neplatný pointer 4 GLOBÁLNÍ PROMĚNNÉ V knihovně WebGraphLib nejsou definovány žádné globální proměnné. 5 TXV 003 58.01

5 FUNKCE Knihovna WebGraphLib obsahuje následující funkce: Funkce InsertToGraphInt InsertToGraphReal SetDescAxisX SetDescAxisY SetViewIndx SwitchRollGraphInt Popis Vloží hodnotu typu INT do pole hodnot, které jsou zobrazovány v grafu Vloží hodnotu typu REAL do pole hodnot, které jsou zobrazovány v grafu Nastaví popisy osy X pro graf. SetDescAxisX je interní funkce, kterou využívají funkční bloky z knihovny WebGraphLib. Nastaví popisy osy Y pro graf. SetDescAxisY je interní funkce, kterou využívají funkční bloky z knihovny WebGraphLib. Nastaví index v poli hodnot, od kterého budou hodnoty zobrazeny v grafu. SetViewIndx je interní funkce, kterou využívají funkční bloky z knihovny WebGraphLib. Přepnutí grafu mezi stavem, kdy se graf automaticky posouvá v okamžiku zápisu nové hodnoty a stavem, kdy je možné prohlížet v grafu všechny dosud zachycené hodnoty. Funkce je určena pro grafy pracující s hodnotami typu INT. SwitchRollGraphReal Přepnutí grafu mezi stavem, kdy se graf automaticky posouvá v okamžiku zápisu nové hodnoty a stavem, kdy je možné prohlížet v grafu všechny dosud zachycené hodnoty. Funkce je určena pro grafy pracující s hodnotami typu REAL. 6 TXV 003 58.01

5.1 Funkce InsertToGraphInt Knihovna : WebGraphLib Funkce InsertToGraphInt uloží hodnotu vstupní proměnné newval do pole hodnot, které je zobrazováno v grafu. Nová hodnota je uložena na konec pole pokud má proměnná save hodnotu TRUE. Před uložením nové hodnoty je obsah pole posunut o jeden vzorek zpět, takže vypadne nejstarší prvek v poli (první prvek pole). Adresa pole se zadává v proměnné livebuf, počet prvků pole je dán proměnnou sizebuf. Pole musí mít prvky typu INT. Funkce je určena pro grafy pracující s hodnotami typu INT (viz například funkční blok fbsimplegraph1int_32c). Popis proměnných : Proměnná Typ Význam VAR_INPUT save BOOL Pokud je TRUE, funkce posune obsah pole o jeden prvek zpět a uloží hodnotu newval na konec pole. Pokud je FALSE, funkce nedělá nic. newval INT Nová hodnota, která má být uložena do pole hodnot livebuf PTR_TO INT Adresa pole, na konec kterého se uloží nová hodnota sizebuf INT Velikost pole (počet prvků) InsertToGraphInt Návratová hodnota BOOL Při uložení nové hodnoty vrátí TRUE, jinak FALSE Příklad programu s voláním funkce InsertToGraphInt je uveden v kapitole 6.3 Funkční blok fbsimplegraph1real_64c. Dále viz také Funkce InsertToGraphReal 7 TXV 003 58.01

5.2 Funkce InsertToGraphReal Knihovna : WebGraphLib Funkce InsertToGraphReal uloží hodnotu vstupní proměnné newval do pole hodnot, které je zobrazováno v grafu. Nová hodnota je uložena na konec pole pokud má proměnná save hodnotu TRUE. Před uložením nové hodnoty je obsah pole posunut o jeden vzorek zpět, takže vypadne nejstarší prvek v poli (první prvek pole). Adresa pole se zadává v proměnné livebuf, počet prvků pole je dán proměnnou sizebuf. Pole musí mít prvky typu REAL. Funkce je určena pro grafy pracující s hodnotami typu REAL (viz například funkční bloky fbsimplegraph1real_32c, fbsimplegraph1real_64c a fbsimplegraph2real_32c). Popis proměnných : Proměnná Typ Význam VAR_INPUT save BOOL Pokud je TRUE, funkce posune obsah pole o jeden prvek zpět a uloží hodnotu newval na konec pole. Pokud je FALSE, funkce nedělá nic. newval REAL Nová hodnota, která má být uložena do pole hodnot livebuf PTR_TO REAL Adresa pole, na konec kterého se uloží nová hodnota sizebuf INT Velikost pole (počet prvků) InsertToGraphReal Návratová hodnota BOOL Při uložení nové hodnoty vrátí TRUE, jinak FALSE Příklad programu s voláním funkce InsertToGraphReal je uveden v kapitole 6.3 Funkční blok fbsimplegraph1real_64c Dále viz také Funkce InsertToGraphInt 8 TXV 003 58.01

5.3 Funkce SwitchRollGraphInt Knihovna : WebGraphLib Funkce SwitchRollGraphInt ošetří zapnutí a vypnutí rolování grafu pro jednu osu. Pokud má vstupní proměnná rollstat hodnotu TRUE vrací funkce adresu, kterou dostává v proměnné livebuf. To je adresa pole, do kterého jsou ukládány nové vzorky hodnot (např. funkcí InsertToGraphInt). Jak jsou ukládány nové vzorky, tak se budou posouvat hodnoty zobrazované v grafu graf bude rolovat s každou novou hodnotou. Pokud má vstupní proměnná rollstat hodnotu FALSE vrací funkce adresu, kterou dostává v proměnné staticbuf. To je adresa pole, do kterého funkce SwitchRollGraphInt překopíruje všechny hodnoty z pole livebuf v okamžiku, kdy dojde k vypnutí rolování grafu, což říká vstupní proměnná rolloff. Pokud je rolování grafu vypnuté, je tedy možné prohlížet uložené hodnoty bez toho, že by zápis nové hodnoty ovlivňoval zobrazení grafu. Funkce je určena pro grafy pracující s hodnotami typu INT (viz například funkční blok fbsimplegraph1int_32c). Popis proměnných : Proměnná Typ Význam VAR_INPUT rollstat BOOL Pokud je TRUE, je rolování grafu zapnuto, pokud je FALSE, je rolování grafu vypnuto (viz stejnojmenný výstup funkčního bloku fbsimplegraph1int_32c) rolloff BOOL TRUE na dobu jednoho cyklu při vypnutí rolování grafu (viz stejnojmenný výstup funkčního bloku fbsimplegraph1int_32c) livebuf PTR_TO INT Adresa pole, kam jsou ukládány hodnoty pro graf (např. funkcí InsertToGraphInt) staticbuf PTR_TO INT Adresa pole, do kterého se překopíruje pole livebuf v případě vypnutí rolování grafu sizebuf INT Velikost pole hodnot pro graf (počet prvků) SwitchRollGraphInt Návratová hodnota UDINT Pokud je vstupní proměnná rollstat TRUE, vrací hodnotu livebuf, jinak vrací hodnotu staticbuf Příklad programu s voláním funkce SwitchRollGraphInt je uveden v kapitole 6.3 Funkční blok fbsimplegraph1real_64c. Dále viz také Funkce InsertToGraphInt, Funkční blok fbsimplegraph1int_32c 9 TXV 003 58.01

5.4 Funkce SwitchRollGraphReal Knihovna : WebGraphLib Funkce SwitchRollGraphReal ošetří zapnutí a vypnutí rolování grafu pro jednu osu. Pokud má vstupní proměnná rollstat hodnotu TRUE vrací funkce adresu, kterou dostává v proměnné livebuf. To je adresa pole, do kterého jsou ukládány nové vzorky hodnot (např. funkcí InsertToGraphInt). Jak jsou ukládány nové vzorky, tak se budou posouvat hodnoty zobrazované v grafu graf bude rolovat s každou novou hodnotou. Pokud má vstupní proměnná rollstat hodnotu FALSE vrací funkce adresu, kterou dostává v proměnné staticbuf. To je adresa pole, do kterého funkce SwitchRollGraphReal překopíruje všechny hodnoty z pole livebuf v okamžiku, kdy dojde k vypnutí rolování grafu, což říká vstupní proměnná rolloff. Pokud je rolování grafu vypnuté, je tedy možné prohlížet uložené hodnoty bez toho, že by zápis nové hodnoty ovlivňoval zobrazení grafu. Funkce je určena pro grafy pracující s hodnotami typu REAL (viz například funkční bloky fbsimplegraph1real_32c, fbsimplegraph1real_64c a fbsimplegraph2real_32c). Popis proměnných : Proměnná Typ Význam VAR_INPUT rollstat BOOL Pokud je TRUE, je rolování grafu zapnuto, pokud je FALSE, je rolování grafu vypnuto (viz např. stejnojmenný výstup funkčního bloku fbsimplegraph1real_32c) rolloff BOOL TRUE na dobu jednoho cyklu při vypnutí rolování grafu (viz např. stejnojmenný výstup funkčního bloku fbsimplegraph1real_32c) livebuf PTR_TO INT Adresa pole, kam jsou ukládány hodnoty pro graf (např. funkcí InsertToGraphReal) staticbuf PTR_TO INT Adresa pole, do kterého se překopíruje pole livebuf v případě vypnutí rolování grafu sizebuf INT Velikost pole hodnot pro graf (počet prvků) SwitchRollGraphReal Návratová hodnota UDINT Pokud je vstupní proměnná rollstat TRUE, vrací hodnotu livebuf, jinak vrací hodnotu staticbuf Příklad programu s voláním funkce SwitchRollGraphReal je uveden v kapitole 6.3 Funkční blok fbsimplegraph1real_64c Dále viz také Funkce InsertToGraphInt, Funkční blok fbsimplegraph1int_32c 10 TXV 003 58.01

6 FUNKČNÍ BLOKY V knihovně WebGraphLib jsou definovány následující funkční bloky: Funkční blok fbsetminmaxy fbsimplegraph1int_32c Popis Najde minimální a maximální hodnotu zobrazenou v grafu. fbsetminmaxy je interní funkční blok, který využívají ostatní funkční bloky z knihovny WebGraphLib. Podpora pro graf jedné proměnné typu INT Maximální počet zobrazených vzorků je 32 fbsimplegraph1real_32c Podpora pro graf jedné proměnné typu REAL Maximální počet zobrazených vzorků je 32 fbsimplegraph1real_64c Podpora pro graf jedné proměnné typu REAL Maximální počet zobrazených vzorků je 64 fbsimplegraph2real_32c Podpora pro graf dvou proměnné typu REAL Maximální počet zobrazených vzorků je 32 pro každou proměnnou 11 TXV 003 58.01

6.1 Funkční blok fbsimplegraph1int_32c Knihovna : WebGraphLib Funkční blok fbsimplegraph1int_32c slouží jako podpora pro graf jedné proměnné typu INT. Maximální počet zobrazených vzorků je 32. Popis proměnných : Proměnná Typ Význam VAR_INPUT refr BOOL R_EDGE Náběžná hrana na tomto vstupu způsobí přepočítání výstupních proměnných pro graf home BOOL R_EDGE Ovládání grafu z web stránky Graf zobrazí 32 hodnot od začátku pole bck BOOL R_EDGE Ovládání grafu z web stránky Posun grafu o 16 hodnot směrem k začátku pole prv BOOL R_EDGE Ovládání grafu z web stránky Posun grafu o 1 hodnotu směrem k začátku pole center BOOL R_EDGE Ovládání grafu z web stránky 12 TXV 003 58.01

Proměnná Typ Význam Graf zobrazí 32 hodnot ve středu pole nxt BOOL R_EDGE Ovládání grafu z web stránky Posun grafu o 1 hodnotu směrem ke konci pole fwd BOOL R_EDGE Ovládání grafu z web stránky Posun grafu o 16 hodnot směrem ke konci pole end BOOL R_EDGE Ovládání grafu z web stránky Graf zobrazí 32 hodnot před koncem pole fit BOOL Ovládání grafu z web stránky TRUE nastaví rozsah osy Y podle aktuálně nejmenší a největší hodnoty zobrazené v grafu, FALSE nastaví rozsah osy Y podle vstupních proměnných miny a maxy roll BOOL Ovládání grafu z web stránky TRUE zapne rolování grafu, FALSE rolování vypne miny REAL Minimální hodnota na ose Y maxy REAL Maximální hodnota na ose Y numcolumn INT Počet sloupců grafu ve web stránce (max. 32) numviewcol INT Počet aktuálně zobrazených sloupců grafu (max. 32) columnsize UINT Max. velikost jednoho sloupce grafu v pixelech bufy PTR_TO INT Adresa pole hodnot, které budou zobrazeny v ose Y grafu. Pole musí být typu ARRAY[] OF INT. bufx PTR_TO INT Adresa pole hodnot, které budou zobrazeny v ose X grafu. Pole musí být typu ARRAY[] OF INT. bufsize INT Počet prvků pole, které je zobrazováno v grafu VAR_OUTPUT descaxisx ARRAY OF INT Popis osy X pro graf descaxisy TDescAxisY Popis osy Y pro graf graphview ARRAY OF TGraphView1Int rollstat BOOL Stav vstupu roll Hodnoty zobrazené v grafu spolu s velikostí sloupců v pixelech rollon BOOL TRUE pokud se stav vstupu roll mění z FALSE na TRUE, jinak FALSE rolloff BOOL TRUE pokud se stav vstupu roll mění z TRUE na FALSE, jinak FALSE 13 TXV 003 58.01

Následující příklad ukazuje zobrazení proměnné, jejíž hodnota lineárně osciluje v intervalu <10, 40> (pilový průběh). Web stránka pro graf může vypadat například následovně: Ovládací tlačítka ve web stránce jsou navázána na vstupní proměnné funkčního bloku grafu. Tlačítko fit ovládá proměnnou SawCurve.graphSample.fit, tlačítko roll ovládá proměnnou SawCurve.graphSample.roll, atd. Maximální počet hodnot, které lze v grafu prohlížet je 256 (viz konstanta NUM_SAMPLES ). Příklad programu s funkčním blokem fbsimplegraph1int_32c : PROGRAM prgsawcurve VAR CONSTANT NUM_SAMPLES : INT := 256; END_VAR VAR // buffer pro ulozeni hodnot, ktere budou zobrazeny v grafu samplebuf : ARRAY[0..NUM_SAMPLES-1] OF INT; // pomocny buffer pro prohlizeni grafu samplebufcopy : ARRAY[0..NUM_SAMPLES-1] OF INT; // funkcni blok grafu graphsample : fbsimplegraph1int_32c; refresh : BOOL; // prekresleni grafu data : UDINT; // adresa pole hodnot pro graf sample : INT; // aktualni vzorek 14 TXV 003 58.01

upflg : BOOL; END_VAR VAR_EXTERNAL AT %S20.0 : BOOL; // casova zakladna pro ukladani vzorku END_VAR // simulace piloveho prubehu pro graf IF %S20.0 THEN IF upflg THEN IF sample < 40 THEN sample := sample + 1; ELSE sample := sample - 1; upflg := 0; END_IF; ELSE IF sample > 10 THEN sample := sample - 1; ELSE sample := sample + 1; upflg := 1; END_IF; END_IF; END_IF; // ukladani vzorku dat do bufferu, ktery je zobrazen jako graf refresh := InsertToGraphInt( save := %S20.0, newval := sample, livebuf := ADR(sampleBuf), bufsize := NUM_SAMPLES); // osetrit zapnuti / vypnuti rolovani grafu data := SwitchRollGraphInt( rollstat := graphsample.rollstat, rolloff := graphsample.rolloff, livebuf := ADR(sampleBuf), staticbuf := ADR(sampleBufCopy), bufsize := NUM_SAMPLES); // spocitat hodnoty pro graf graphsample( refr := refresh, miny := 0.0, maxy := 50.0, numcolumn := 32, numviewcol := 32, columnsize := 300, bufy := UDINT_TO_PTR( data), bufx := NULL_PTR, bufsize := NUM_SAMPLES); END_PROGRAM Viz také Funkce InsertToGraphInt, Funkce SwitchRollGraphInt 15 TXV 003 58.01

6.2 Funkční blok fbsimplegraph1real_32c Knihovna : WebGraphLib Funkční blok fbsimplegraph1real_32c slouží jako podpora pro graf jedné proměnné typu REAL. Maximální počet zobrazených vzorků je 32. Popis proměnných : Proměnná Typ Význam VAR_INPUT refr BOOL R_EDGE Náběžná hrana na tomto vstupu způsobí přepočítání výstupních proměnných pro graf home BOOL R_EDGE Ovládání grafu z web stránky Graf zobrazí 32 hodnot od začátku pole bck BOOL R_EDGE Ovládání grafu z web stránky Posun grafu o 16 hodnot směrem k začátku pole prv BOOL R_EDGE Ovládání grafu z web stránky Posun grafu o 1 hodnotu směrem k začátku pole center BOOL R_EDGE Ovládání grafu z web stránky 16 TXV 003 58.01

Proměnná Typ Význam Graf zobrazí 32 hodnot ve středu pole nxt BOOL R_EDGE Ovládání grafu z web stránky Posun grafu o 1 hodnotu směrem ke konci pole fwd BOOL R_EDGE Ovládání grafu z web stránky Posun grafu o 16 hodnot směrem ke konci pole end BOOL R_EDGE Ovládání grafu z web stránky Graf zobrazí 32 hodnot před koncem pole fit BOOL Ovládání grafu z web stránky TRUE nastaví rozsah osy Y podle aktuálně nejmenší a největší hodnoty zobrazené v grafu, FALSE nastaví rozsah osy Y podle vstupních proměnných miny a maxy roll BOOL Ovládání grafu z web stránky TRUE zapne rolování grafu, FALSE rolování vypne miny REAL Minimální hodnota na ose Y maxy REAL Maximální hodnota na ose Y numcolumn INT Počet sloupců grafu ve web stránce (max. 32) numviewcol INT Počet aktuálně zobrazených sloupců grafu (max. 32) columnsize UINT Max. velikost jednoho sloupce grafu v pixelech bufy PTR_TO REAL Adresa pole hodnot, které budou zobrazeny v ose Y grafu. Pole musí být typu ARRAY[] OF REAL. bufx PTR_TO REAL Adresa pole hodnot, které budou zobrazeny v ose X grafu. Pole musí být typu ARRAY[] OF REAL. bufsize INT Počet prvků pole, které je zobrazováno v grafu. VAR_OUTPUT descaxisx ARRAY OF REAL Popis osy X pro graf descaxisy TDescAxisY Popis osy Y pro graf graphview ARRAY OF TGraphView1Real rollstat BOOL Stav vstupu roll Hodnoty zobrazené v grafu spolu s velikostí sloupců v pixelech rollon BOOL TRUE pokud se stav vstupu roll mění z FALSE na TRUE, jinak FALSE rolloff BOOL TRUE pokud se stav vstupu roll mění z TRUE na FALSE, jinak FALSE 17 TXV 003 58.01

Jednotlivé sloupce grafu jsou řízené proměnnými DailyTemp.SimpleGraph1.graphView[0].valPx DailyTemp.SimpleGraph1.graphView[23].valPx Hodnoty zobrazené v záhlaví grafu jsou řízené proměnnými DailyTemp.SimpleGraph1.graphView[0].val DailyTemp.SimpleGraph1.graphView[23].val Popisy osy Y jsou zobrazeny z proměnných DailyTemp.SimpleGraph1.descAxisY[0] DailyTemp.SimpleGraph1.descAxisY[10]. Příklad programu s funkčním blokem fbsimplegraph1real_32c : VAR_GLOBAL temp_2009_12_21 : ARRAY[1..24] OF REAL := [ -10.3, -9.3, -7.8, -9.6, -10.8, -11.9, -5.6, -3.6, -3.7, -3.5, -2.8, -2.1, -1.3, -1.1, -0.2, -1.6, -3.3, -3.3, -4.0, -4.3, -5.0, -7.4, -7.4, -7.1]; END_VAR PROGRAM prgdailytemp VAR SimpleGraph1 : fbsimplegraph1real_32c; END_VAR // spocitat hodnoty pro graf SimpleGraph1( miny := -15.0, maxy := 5.0, numcolumn := 24, numviewcol := 24, columnsize := 150, bufy := ADR( temp_2009_12_21), bufx := NULL_PTR, bufsize := 24); END_PROGRAM Viz také Funkce InsertToGraphReal, Funkce SwitchRollGraphReal 18 TXV 003 58.01

6.3 Funkční blok fbsimplegraph1real_64c Knihovna : WebGraphLib Funkční blok fbsimplegraph1real_64c slouží jako podpora pro graf jedné proměnné typu REAL. Maximální počet zobrazených vzorků je 64. Popis proměnných : Proměnná Typ Význam VAR_INPUT refr BOOL R_EDGE Náběžná hrana na tomto vstupu způsobí přepočítání výstupních proměnných pro graf home BOOL R_EDGE Ovládání grafu z web stránky Graf zobrazí 64 hodnot od začátku pole bck BOOL R_EDGE Ovládání grafu z web stránky Posun grafu o 32 hodnot směrem k začátku pole prv BOOL R_EDGE Ovládání grafu z web stránky Posun grafu o 1 hodnotu směrem k začátku pole center BOOL R_EDGE Ovládání grafu z web stránky Graf zobrazí 64 hodnot ve středu pole 19 TXV 003 58.01

Proměnná Typ Význam nxt BOOL R_EDGE Ovládání grafu z web stránky Posun grafu o 1 hodnotu směrem ke konci pole fwd BOOL R_EDGE Ovládání grafu z web stránky Posun grafu o 32 hodnot směrem ke konci pole end BOOL R_EDGE Ovládání grafu z web stránky Graf zobrazí 64 hodnot před koncem pole fit BOOL Ovládání grafu z web stránky TRUE nastaví rozsah osy Y podle aktuálně nejmenší a největší hodnoty zobrazené v grafu, FALSE nastaví rozsah osy Y podle vstupních proměnných miny a maxy roll BOOL Ovládání grafu z web stránky TRUE zapne rolování grafu, FALSE rolování vypne miny REAL Minimální hodnota na ose Y maxy REAL Maximální hodnota na ose Y numcolumn INT Počet sloupců grafu ve web stránce (max. 64) numviewcol INT Počet aktuálně zobrazených sloupců grafu (max. 64) columnsize UINT Max. velikost jednoho sloupce grafu v pixelech bufy PTR_TO REAL Adresa pole hodnot, které budou zobrazeny v ose Y grafu. Pole musí být typu ARRAY[] OF REAL. bufx PTR_TO REAL Adresa pole hodnot, které budou zobrazeny v ose X grafu. Pole musí být typu ARRAY[] OF REAL. bufsize INT Počet prvků pole, které je zobrazováno v grafu VAR_OUTPUT descaxisx ARRAY OF REAL Popis osy X pro graf descaxisy TDescAxisY Popis osy Y pro graf graphview ARRAY OF TGraphView1Real rollstat BOOL Stav vstupu roll Hodnoty zobrazené v grafu spolu s velikostí sloupců v pixelech rollon BOOL TRUE pokud se stav vstupu roll mění z FALSE na TRUE, jinak FALSE rolloff BOOL TRUE pokud se stav vstupu roll mění z TRUE na FALSE, jinak FALSE 20 TXV 003 58.01

Následující příklad ukazuje zobrazení proměnné (sinus). Web stránka pro graf může vypadat například následovně: Příklad programu s funkčním blokem fbsimplegraph1real_64c : VAR_GLOBAL graphsinus : fbsimplegraph1real_64c; END_VAR PROGRAM prgsinus VAR CONSTANT NUM_SAMPLES : INT := 128; END_VAR VAR livesinus : ARRAY[0..NUM_SAMPLES-1] OF REAL; // sin (axis Y) - live data liveargs : ARRAY[0..NUM_SAMPLES-1] OF REAL; // arg (axis X) - live data viewsinus : ARRAY[0..NUM_SAMPLES-1] OF REAL; // sin (axis Y) - roll OFF data viewargs : ARRAY[0..NUM_SAMPLES-1] OF REAL; // arg (axis X) - roll OFF data arg : REAL := 0.0; datay : UDINT; datax : UDINT; END_VAR VAR_EXTERNAL AT %S20.0 : BOOL; // time base END_VAR // prepare value for graph 21 TXV 003 58.01

IF %S20.0 THEN // axis Y InsertToGraphReal( save := TRUE, newval := sin( arg), livebuf := ADR(liveSinus), sizebuf := NUM_SAMPLES); // axis X InsertToGraphReal( save := TRUE, newval := arg, livebuf := ADR(liveArgs), sizebuf := NUM_SAMPLES); arg := arg + 0.15; IF arg > 157.0 THEN arg := 0.0; END_IF; END_IF; // switch roll ON/OFF datay := SwitchRollGraphReal( rollstat := graphsinus.rollstat, rolloff := graphsinus.rolloff, livebuf := ADR(liveSinus), staticbuf := ADR(viewSinus), sizebuf := NUM_SAMPLES); datax := SwitchRollGraphReal( rollstat := graphsinus.rollstat, rolloff := graphsinus.rolloff, livebuf := ADR(liveArgs), staticbuf := ADR(viewArgs), sizebuf := NUM_SAMPLES); // process graph values graphsinus( refr := %S20.0, sizebuf := NUM_SAMPLES, miny := -2.5, maxy := 2.5, numcolumn := 64, columnsize := 300, bufy := UDINT_TO_PTR(dataY), bufx := UDINT_TO_PTR(dataX)); END_PROGRAM Viz také Funkce InsertToGraphReal, Funkce SwitchRollGraphReal 22 TXV 003 58.01

6.4 Funkční blok fbsimplegraph2real_32c Knihovna : WebGraphLib Funkční blok fbsimplegraph1real_32c slouží jako podpora pro graf dvou proměnných typu REAL. Maximální počet zobrazených vzorků je 32. Popis proměnných : Proměnná Typ Význam VAR_INPUT refr BOOL R_EDGE Náběžná hrana na tomto vstupu způsobí přepočítání výstupních proměnných pro graf home BOOL R_EDGE Ovládání grafu z web stránky Graf zobrazí 32 hodnot od začátku pole bck BOOL R_EDGE Ovládání grafu z web stránky Posun grafu o 16 hodnot směrem k začátku pole prv BOOL R_EDGE Ovládání grafu z web stránky Posun grafu o 1 hodnotu směrem k začátku pole center BOOL R_EDGE Ovládání grafu z web stránky 23 TXV 003 58.01

Proměnná Typ Význam Graf zobrazí 32 hodnot ve středu pole nxt BOOL R_EDGE Ovládání grafu z web stránky Posun grafu o 1 hodnotu směrem ke konci pole fwd BOOL R_EDGE Ovládání grafu z web stránky Posun grafu o 16 hodnot směrem ke konci pole end BOOL R_EDGE Ovládání grafu z web stránky Graf zobrazí 32 hodnot před koncem pole fit BOOL Ovládání grafu z web stránky TRUE nastaví rozsah osy Y podle aktuálně nejmenší a největší hodnoty zobrazené v grafu, FALSE nastaví rozsah osy Y podle vstupních proměnných miny a maxy roll BOOL Ovládání grafu z web stránky TRUE zapne rolování grafu, FALSE rolování vypne miny REAL Minimální hodnota na ose Y maxy REAL Maximální hodnota na ose Y numcolumn INT Počet sloupců grafu ve web stránce (max. 32) columnsize UINT Max. velikost jednoho sloupce grafu v pixelech bufy1 PTR_TO REAL Adresa pole hodnot, které budou zobrazeny jako první průběh v ose Y grafu. Pole musí být typu ARRAY[] OF REAL. bufy2 PTR_TO REAL Adresa pole hodnot, které budou zobrazeny jako první průběh v ose Y grafu. Pole musí být typu ARRAY[] OF REAL. bufx PTR_TO REAL Adresa pole hodnot, které budou zobrazeny v ose X grafu. Pole musí být typu ARRAY[] OF REAL. bufsize INT Počet prvků pole, které je zobrazováno v grafu. VAR_OUTPUT descaxisx ARRAY OF REAL Popis osy X pro graf descaxisy TDescAxisY Popis osy Y pro graf graphview ARRAY OF TGraphView2Real rollstat BOOL Stav vstupu roll Hodnoty obou proměnných zobrazených v grafu spolu s velikostí sloupců v pixelech rollon BOOL TRUE pokud se stav vstupu roll mění z FALSE na TRUE, jinak FALSE 24 TXV 003 58.01

Proměnná Typ Význam rolloff BOOL TRUE pokud se stav vstupu roll mění z TRUE na FALSE, jinak FALSE Následující příklad ukazuje zobrazení dvou proměnných (sinus, cosinus). Web stránka pro graf může vypadat například následovně: Ovládací tlačítka ve web stránce jsou navázána na vstupní proměnné funkčního bloku grafu (DoubleLongGraph1). Tlačítko fit ovládá proměnnou DoubleLongGraph1.fit, tlačítko roll ovládá proměnnou DoubleLongGraph1.roll, atd. Maximální počet hodnot, které lze v grafu prohlížet je 128 (viz konstanta NUM_SAMPLES). Popisy osy Y jsou zobrazeny z proměnných DoubleLongGraph1.descAxisY[0] DoubleLongGraph1.descAxisY[10]. Podobně popis osy X obsahují proměnné DoubleLongGraph1.descAxisX[0] DoubleLongGraph1.descAxisX[31]. Příklad programu s funkčním blokem fbsimplegraph2real_32c : VAR_GLOBAL DoubleLongGraph1 : fbsimplegraph2real_32c; // function block of Graph clk AT %S20.1 : BOOL; // time clock END_VAR 25 TXV 003 58.01

PROGRAM prgtwocurves VAR CONSTANT NUM_SAMPLES : INT := 128; END_VAR VAR sinus : ARRAY[0..NUM_SAMPLES-1] OF REAL; // sin values cosinus : ARRAY[0..NUM_SAMPLES-1] OF REAL; // cos values arguments : ARRAY[0..NUM_SAMPLES-1] OF REAL; // arg viewsinus : ARRAY[0..NUM_SAMPLES-1] OF REAL; viewcosinus : ARRAY[0..NUM_SAMPLES-1] OF REAL; viewargs : ARRAY[0..NUM_SAMPLES-1] OF REAL; arg : REAL := 0.0; datasin : UDINT; datacos : UDINT; dataarg : UDINT; END_VAR // new values of graph IF clk THEN // axis Y - sin InsertToGraphReal( save := TRUE, newval := sin( arg), livebuf := ADR(sinus), sizebuf := NUM_SAMPLES); // axis Y - cos InsertToGraphReal( save := TRUE, newval := cos( arg), livebuf := ADR(cosinus), sizebuf := NUM_SAMPLES); // axis X InsertToGraphReal( save := TRUE, newval := arg, livebuf := ADR(arguments), sizebuf := NUM_SAMPLES); arg := arg + 0.15; IF arg > 157.0 THEN arg := 0.0; END_IF; END_IF; // switch roll ON/OFF datasin := SwitchRollGraphReal( rollstat := DoubleLongGraph1.rollStat, rolloff := DoubleLongGraph1.rollOFF, livebuf := ADR(sinus), staticbuf := ADR(viewSinus), sizebuf := NUM_SAMPLES); datacos := SwitchRollGraphReal( rollstat := DoubleLongGraph1.rollStat, rolloff := DoubleLongGraph1.rollOFF, livebuf := ADR(cosinus), staticbuf := ADR(viewCosinus), sizebuf := NUM_SAMPLES); dataarg := SwitchRollGraphReal( rollstat := DoubleLongGraph1.rollStat, rolloff := DoubleLongGraph1.rollOFF, livebuf := ADR(arguments), staticbuf := ADR(viewArgs), sizebuf := NUM_SAMPLES); // process graph values DoubleLongGraph1( refr := clk, sizebuf := NUM_SAMPLES, miny := -1.25, maxy := 1.25, numcolumn := 32, columnsize := 300, bufy1 := UDINT_TO_PTR(dataSin), bufy2 := UDINT_TO_PTR(dataCos), bufx := UDINT_TO_PTR(dataArg)); END_PROGRAM Viz také Funkce InsertToGraphReal, Funkce SwitchRollGraphReal 26 TXV 003 58.01

7 PŘÍKLAD POUŽITÍ 27 TXV 003 58.01