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

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

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

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 MeteoGiom3000Lib TXV první vydání Prosinec 2010 změny vyhrazeny

Knihovna WebGraphLib

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

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

Knihovna DebugComLib

Knihovna SolarMonitorLib

Knihovny pro programování PLC Tecomat podle IEC

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

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

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

Knihovna TecoRouteLib

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

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

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

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

Knihovna XmlLibEx TXV druhé vydání prosinec 2013 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

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

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

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

Knihovna RecDBXLib ZÁZNAMY V DATABOXU TXV

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

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

Knihovna InternetLib

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

CIB VOICE MODULE HLM390/CIB. Technická dokumentace

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

Knihovna CanvasObjectsLib

Knihovna icontrollib

Průvodní zpráva k projektu

Vyčtení / zapsání hodnot z/do OMC8000 pomocí protokolu UDP

18A - PRINCIPY ČÍSLICOVÝCH MĚŘICÍCH PŘÍSTROJŮ Voltmetry, A/D převodníky - principy, vlastnosti, Kmitoměry, čítače, fázoměry, Q- metry

Zápis programu v jazyce C#

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

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

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

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

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

Knihovna icontrollib

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

Algoritmy a datové struktury

Formátová specifikace má tvar (některé sekce nemají smysl pro načítání) %

Moduly MicroUnit serie. všechny typy s výjimkou řady MU-43x, MU-44x a MU-84x

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

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

Znaky. IAJCE Přednáška č. 10. každému znaku je nutné přiřadit nějaké číslo (nezáporné přímé mapování znak <->

Knihovna BuildingLib TXV

Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz

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

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

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Programování v jazyce JavaScript

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

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Sada 1 - Základy programování

Programovací jazyk Pascal

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

Knihovna LG_HVAC_Lib

Knihovna CoolMasterLib

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

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Příklad : String txt1 = new String( Ahoj vsichni! ); //vytvoří instanci třídy String a přiřadí ji vnitřní hodnotu Ahoj vsichni!

Úvod do programování 6. hodina

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

Knihovna WeatherLib TXV třetí vydání duben 2016 změny vyhrazeny

PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky.

NumToStr JEDNOTKA PRO PŘEVODY ČÍSEL, DATUMU A ČASU A JINÝCH DATOVÝCH STRUKTUR NA ŘETĚZCE A ZPĚT. Příručka uživatele a programátora

Jazyk C# a platforma.net

MQL4 COURSE. By Coders guru -3 DATA TYPES. Doufám, že předchozí lekce SYNTAX se vám líbila. V té jsme se pokoušeli zodpovědět:

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Skripty základy VB, vestavěné objekty, příklady

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

Úlohy PLC programování

Přednáška - Čítače. 2013, kat. měření, ČVUT - FEL, Praha J. Fischer. A3B38MMP, 2013, J.Fischer, ČVUT - FEL, kat. měření 1

VY_32_INOVACE_08_2_04_PR

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

Příkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky -

- jak udělat konstantu long int: L long velka = 78L;

- speciální symboly + - * / =., < > <> <= >= a další. Klíčová slova jsou chráněnými útvary, které nelze použít ve významu identifikátorů.

ADT/ADS = abstraktní datové typy / struktury

ALGORITMIZACE A PROGRAMOVÁNÍ

Úvod. Instalace měřícího programu. Nastavení parametrů a konstant měřícího programu

Poslední nenulová číslice faktoriálu

První kapitola úvod do problematiky

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

Knihovna ModbusRTUlib

Úvod do programování. Lekce 1

UNIVERZITA OBRANY. Knihovna HLAGate. Programátorská dokumentace. Petr Františ

Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

PŘETĚŽOVÁNÍ OPERÁTORŮ

Instrukční soubor 32 bit

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

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty.

Transkript:

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

Historie změn Datum Vydání Popis změn Září 2013 1 První vydání, popis odpovídá ConvertLib_v16 OBSAH 1 Úvod...3 2 Datové typy...3 3 Konstanty...3 4 Globální proměnné...3 5 Funkce...4 5.1 Funkce ANGLE_TO_DEGREES...5 5.2 Funkce DEGREES_TO_ANGLE...6 5.3 Funkce CELSIUS_TO_FAHRENHEIT...7 5.4 Funkce FAHRENHEIT_TO_CELSIUS...8 5.5 Funkce DEG_TO_RAD...9 5.6 Funkce RAD_TO_DEG...10 5.7 Funkce DT_TO_DT_RFC822...11 5.8 Funkce DT_RFC822_TO_DT...13 5.9 Funkce ISO8859_2_TO_CP1250...14 5.10 Funkce REPLACE_CHAR...16 5.11 Funkce STRING_HEX_TO_UDINT...17 5.12 Funkce STRING_TO_LOWER...18 5.13 Funkce STRING_TO_UPPER...19 5.14 Funkce WindDirectionT115Deg...20 5.15 Funkce WindDirectionT115StringCs...21 5.16 Funkce WindDirectionT115StringEn...22 6 Funkční bloky...24 6.1 Funkční blok fbmeterpulse...25 6.2 Funkční blok fbmetercounter...28 2 TXV 003 82.01

1 ÚVOD Knihovna ConvertLib je standardně dodávaná jako součást programovacího prostředí Mosaic. Knihovna obsahuje funkce a funkční bloky pro převod hodnot a formátů. Objednací číslo dokumentace ke knihovně ConvertLib je TXV 003 82.01 2 DATOVÉ TYPY V knihovně ConvertLib nejsou definovány žádné datové typy. 3 KONSTANTY V knihovně ConvertLib nejsou definovány žádné konstanty. 4 GLOBÁLNÍ PROMĚNNÉ V knihovně ConvertLib je definována globální proměnná MonthsNamesRFC822. Proměnná Typ Popis MonthsNamesRFC822 ARRAY [1..12] OF STRING[3] Trojpísmenné anglické zkratky měsíců popsané v RFC822 3 TXV 003 82.01

5 FUNKCE Knihovna ConvertLib obsahuje následující funkce: Funkce ANGLE_TO_DEGREES DEGREES_TO_ANGLE CELSIUS_TO_FAHRENHEIT FAHRENHEIT_TO_CELSIUS DEG_TO_RAD RAD_TO_DEG DT_RFC822_TO_DT DT_TO_DT_RFC822 ISO8859_2_TO_CP1250 REPLACE_CHAR STRING_HEX_TO_UDINT STRING_TO_LOWER STRING_TO_UPPER WindDirectionT115Deg WindDirectionT115StringCs WindDirectionT115StringEn Popis Převod úhlu ve stupních na stupně/minuty/sekundy Převod úhlu ze stupňů, minut a sekund na stupně Převod teploty ze stupňů Celsia na stupně Fahrenheita Převod teploty ze stupňů Fahrenheita na stupně Celsia Převod úhlových stupňů na radiány Převod radiánů na úhlové stupně Převod data a času ve formátu podle RFC822 na IEC formát DATE_AND_TIME Vrací datum a čas dle RFC822 Převod znaků kódovaných podle ISO 8859-2 na kódování CP 1250 Nahradí všechny znaky C1 znakem C2 Převod STRING (pouze hexadecimální číslice) na UDINT Převod všech znaků v řetězci na malá písmena. Vrací délku převedeného řetězce Převod všech znaků v řetězci na velká písmena. Vrací délku převedeného řetězce Převod odporu měřeného na ukazateli směru větru T115 na úhlové stupně Převod odporu měřeného na ukazateli směru větru T115 na české označení směru Převod odporu měřeného na ukazateli směru větru T115 na anglické označení směru 4 TXV 003 82.01

5.1 Funkce ANGLE_TO_DEGREES Funkce ANGLE_TO_DEGREES převádí úhel ve stupních na stupně/minuty/vteřiny. VAR_INPUT angle LREAL Úhel ve stupních VAR_IN_OUT degrees INT Stupně minutes INT Minuty seconds INT Vteřiny ANGLE_TO_DEGREES Návratová hodnota BOOL Vždy TRUE Příklad programu s voláním funkce ANGLE_TO_DEGREES : PROGRAM prgangletodegrees VAR angle : LREAL := 25.755; degrees, minutes, seconds : INT; text : STRING; ANGLE_TO_DEGREES(angle := angle, degrees := degrees, minutes := minutes, seconds := seconds); text := INT_TO_STRING(degrees) + ' ' + INT_TO_STRING(minutes) + '$'' + INT_TO_STRING(seconds) + '"'; END_PROGRAM 5 TXV 003 82.01

5.2 Funkce DEGREES_TO_ANGLE Funkce DEGREES_TO_ANGLE převádí úhel ve stupních/minutách/vteřinách na stupně. VAR_INPUT degrees INT Stupně minutes INT Minuty seconds INT Vteřiny DEGREES_TO_ANGLE Návratová hodnota LREAL Úhel ve stupních Příklad programu s voláním funkce DEGREES_TO_ANGLE : PROGRAM prgdegreestoangle VAR seconds : INT := 18; minutes : INT := 45; degrees : INT := 25; angle : LREAL; text : STRING; angle := DEGREES_TO_ANGLE(degrees := degrees, minutes := minutes, seconds := seconds); text := LREAL_TO_STRING(angle) + ' '; END_PROGRAM 6 TXV 003 82.01

5.3 Funkce CELSIUS_TO_FAHRENHEIT Funkce CELSIUS_TO_FAHRENHEIT realizuje převod teploty ze stupňů Celsia na stupně Fahrenheita dle vzorce: CELSIUS_TO_FAHRENHEIT= 9 5 temp+32 VAR_INPUT temp REAL Teplota ve stupních Celsia CELSIUS_TO_FAHRENHEIT Návratová hodnota REAL Teplota ve stupních Fahrenheita Příklad programu s voláním funkce CELSIUS_TO_FAHRENHEIT : 7 TXV 003 82.01

5.4 Funkce FAHRENHEIT_TO_CELSIUS Funkce FAHRENHEIT_TO_CELSIUS realizuje převod teploty ze stupňů Fahrenheita na stupně Celsia dle vzorce: CELSIUS_TO_FAHRENHEIT= 5 9 (temp 32) VAR_INPUT temp REAL Teplota ve stupních Fahrenheita FAHRENHEIT_TO_CELSIUS Návratová hodnota REAL Teplota ve stupních Celsia Příklad programu s voláním funkce FAHRENHEIT_TO_CELSIUS : 8 TXV 003 82.01

5.5 Funkce DEG_TO_RAD Funkce DEG_TO_RAD převede úhel ve stupních na radiány. VAR_INPUT angle LREAL Úhel ve stupních DEG_TO_RAD Návratová hodnota STRING Úhel v radiánech Příklad programu s voláním funkce DEG_TO_RAD : PROGRAM prgconvertangle1 VAR angle : LREAL := 90.0; sin1 : LREAL; sin1 := SIN(DEG_TO_RAD(angle)); END_PROGRAM 9 TXV 003 82.01

5.6 Funkce RAD_TO_DEG Funkce RAD_TO_DEG převede úhel ve stupních na radiány. VAR_INPUT angle LREAL Úhel v radiánech RAD_TO_DEG Návratová hodnota STRING Úhel ve stupních Příklad programu s voláním funkce RAD_TO_DEG : PROGRAM prgconvertangle2 VAR sin1 : LREAL := 1.0; angle : LREAL; angle := RAD_TO_DEG(ASIN(sin1)); END_PROGRAM 10 TXV 003 82.01

5.7 Funkce DT_TO_DT_RFC822 Funkce pro převod časového údaje zapsaného v textovém řetězci ve formátu podle RFC822 na IEC formát DATE_AND_TIME Datum a čas podle RFC822: datum a čas datum rok měsíc datum čas den měsíc rok 4 čísla jméno-měsíce Jméno-měsíce "Jan" / "Feb" / "Mar" / "Apr" / "May" / "Jun" / "Jul" / "Aug" / "Sep" / "Oct" / "Nov" / "Dec" den čas čas-ve-dni hodina minuta sekunda zóna Příklad: 15 Jul 2013 08:12:00 +0100 VAR_INPUT 1-2 čísla čas-ve-dni zóna hodina ":" minuta ":" sekunda 2 čísla 2 čísla 2 čísla (( "+" / "-" ) 4 čísla) datetime DATE_AND_TIME Datum a čas ve formátu IEC DATE_AND_TIME DT_TO_DT_RFC822 Návratová hodnota STRING Datum a čas podle RFC822 11 TXV 003 82.01

Příklad programu s voláním funkce DT_RFC822_TO_DT : PROGRAM prgconvertdt_rfc822 VAR DtString : STRING; DtString := DT_TO_DT_RFC822(dateTime := GetDateTime(), UtcOff := 60); END_PROGRAM 12 TXV 003 82.01

5.8 Funkce DT_RFC822_TO_DT Funkce DT_RFC822_TO_DT převede datum a čas ve formátu podle RFC822 na IEC formát DATE_AND_TIME. VAR_INPUT datetime STRING Datum a čas podle RFC822 DT_RFC822_TO_DT Návratová hodnota DATE_AND_TIME Datum a čas ve formátu IEC DATE_AND_TIME Příklad programu s voláním funkce DT_RFC822_TO_DT : PROGRAM prgconvertrfc822_dt VAR DtString : STRING := '15 Jul 2013 08:12:00 +0100'; Dt1 : DATE_AND_TIME; Dt1 := DT_RFC822_TO_DT(dateTime := DtString); END_PROGRAM 13 TXV 003 82.01

5.9 Funkce ISO8859_2_TO_CP1250 Funkce ISO8859_2_TO_CP1250 slouží pro převod znaků kódovaných podle ISO 8859-2 na kódování CP-1250. Na vstupu src se očekává první byte řetězce pro převod. Funkce převede všechny znaky až do koncové nuly. Pokud je řetězec uložen v typu STRING je zajištěna koncová nula datovým typem. Pokud je řetěz uložen v jiném datovém typu je nutné koncovou binární nulu doplnit před voláním funkce. VAR_IN_OUT src STRING První byte řetězce pro převod ISO8859_2_TO_CP1250 Návratová hodnota UDINT Počet znaků převedeného řetězce 14 TXV 003 82.01

Příklad programu s voláním funkce ISO8859_2_TO_CP1250. První volání podmíněné proměnnou Test, pouze ověřuje zda funkce pracuje správně. Druhé volání je příklad převodu textu přijatého z komunikace včetně ošetření koncové nuly. PROGRAM prgconvertiso8859_2 VAR Test : BOOL; TestString : STRING := 'Přílią ľlu»oučký kůň pěl ďábelské ódy'; RecvFrom : fbrecvfrom; RecvBuff : ARRAY [0..255] OF USINT; IF Test THEN ISO8859_2_TO_CP1250(src := void(teststring)); Test := false; END_IF; RecvFrom(rq := 1, chancode := ETH1_uni0, lenrx := 255, data := void(recvbuff)); IF RecvFrom.lenData <> 0 THEN RecvBuff[RecvFrom.lenData] := 0; ISO8859_2_TO_CP1250(src := RecvBuff[0]); END_IF; END_PROGRAM 15 TXV 003 82.01

5.10 Funkce REPLACE_CHAR Funkce REPLACE_CHAR slouží k nahrazení všech výskytů znaku v řetězci input s ASCII hodnotou danou vstupem C1 za znak daný hodnotu vstupu C2. Návratová hodnota je délka řetězce na vstupu input. VAR_INPUT C1 BYTE ASCII hodnota znaku, který má být nahrazen C2 BYTE ASCII hodnota znaku, kterým bude náhrada provedena VAR_IN_OUT input STRING[255] Řetězec ve kterém bude provedena náhrada REPLACE_CHAR Návratová hodnota UDINT Počet znaků řetězce na vstupu input čárku Příklad programu s voláním funkce REPLACE_CHAR, převod desetinné tečky na PROGRAM prgreplacechar VAR Message : STRING; Temp : REAL; Message := REAL_TO_STRINGF(in := Temp, format := 'Teplota je %.1f C'); REPLACE_CHAR(C1 := 16#2E, C2 := 16#2C, input := Message); END_PROGRAM 16 TXV 003 82.01

5.11 Funkce STRING_HEX_TO_UDINT Funkce STRING_HEX_TO_UDINT slouží k převodu hexadecimálního čísla zapsaného ve STRINGu na UDINT. Ve STRINGu jsou očekávána pouze hexadecimální číslice. Povolené znaky: '0132456789abcdefABCDEF' VAR_IN_OUT input STRING Řetězec s hexadecimálním číslem STRING_HEX_TO_UDINT Návratová hodnota UDINT Převedená hodnota hexadecimálního čísla Příklad programu s voláním funkce STRING_HEX_TO_UDINT. PROGRAM prgconverthexnumber VAR HexString : STRING := 'a0'; Value : UDINT; Value := STRING_HEX_TO_UDINT(input := HexString); END_PROGRAM 17 TXV 003 82.01

5.12 Funkce STRING_TO_LOWER Funkce STRING_TO_LOWER slouží k převodu všech znaků v řetězci na malá písmena. Vrací délku převedeného řetězce. VAR_IN_OUT input STRING[255] Řetězec ve kterém bude provedena náhrada STRING_TO_LOWER Návratová hodnota UDINT Počet znaků řetězce na vstupu input Příklad programu s voláním funkce STRING_TO_LOWER. Proměnná Ok se nastaví na TRUE v případě, že uživatel vloží do řetězce input slovo 'ok' bez ohledu na velikost písmen. PROGRAM prgteststringtolower VAR input : STRING; Ok : BOOL; STRING_TO_LOWER(input); Ok := input = 'ok'; END_PROGRAM 18 TXV 003 82.01

5.13 Funkce STRING_TO_UPPER Funkce STRING_TO_UPPER slouží k převodu všech znaků v řetězci na velká písmena. Vrací délku převedeného řetězce. VAR_IN_OUT input STRING[255] Řetězec ve kterém bude provedena náhrada STRING_TO_UPPER Návratová hodnota UDINT Počet znaků řetězce na vstupu input Příklad programu s voláním funkce STRING_TO_UPPER. Proměnná Ok se nastaví na TRUE v případě, že uživatel vloží do řetězce input slovo 'ok' bez ohledu na velikost písmen. PROGRAM prgteststringtoupper VAR input : STRING; Ok : BOOL; STRING_TO_UPPER(input); Ok := input = 'OK'; END_PROGRAM 19 TXV 003 82.01

5.14 Funkce WindDirectionT115Deg Funkce WindDirectionT115Deg slouží k převodu odporu měřeného na ukazateli směru větru T115 na úhlové stupně VAR_INPUT R REAL Odpor měřený na ukazateli směru větru T115 STRING_HEX_TO_UDINT Návratová hodnota UDINT Směr větru v úhlových stupních Příklad programu s voláním funkce WindDirectionT115Deg viz Funkce WindDirectionT115StringEn. 20 TXV 003 82.01

5.15 Funkce WindDirectionT115StringCs Funkce WindDirectionT115StringCs slouží k převodu odporu měřeného na ukazateli na zkratku vyjadřující směr větru. Návratové hodnoty Význam Hodnota ve stupních S sever 0 SV severovýchod 45 V východ 90 JV jihovýchod 135 J jih 180 JZ jihozápad 225 Z západ 270 SZ severozápad 315 VAR_INPUT R REAL Odpor měřený na ukazateli směru větru T115 WindDirectionT115StringCs Návratová hodnota STRING[2] Dvoupísmenná zkratka směru větru Příklad programu s voláním funkce WindDirectionT115StringCs viz Funkce Wind DirectionT115StringEn. 21 TXV 003 82.01

5.16 Funkce WindDirectionT115StringEn Funkce WindDirectionT115StringCs slouží k převodu odporu měřeného na ukazateli na anglickou zkratku vyjadřující směr větru. Návratové hodnoty Význam Hodnota ve stupních N north 0 NE northeast 45 E east 90 SE southeast 135 S south 180 SW southwest 225 W west 270 NW northwest 315 VAR_INPUT R REAL Odpor měřený na ukazateli směru větru T115 WindDirectionT115StringEn Návratová hodnota STRING[2] Anglická dvoupísmenná zkratka směru větru 22 TXV 003 82.01

Příklad programu s voláním funkcí WindDirectionT115Deg, WindDirectionT115StringCs a WindDirectionT115StringEn. PROGRAM prgwinddirection VAR Ohms : REAL; Direction : REAL; DirectionEn : STRING; DirectionCs : STRING; Direction := WindDirectionT115Deg(R := Ohms); DirectionCs := WindDirectionT115StringCs(R := Ohms); DirectionEn := WindDirectionT115StringEn(R := Ohms); END_PROGRAM 23 TXV 003 82.01

6 FUNKČNÍ BLOKY V knihovně ConvertLib jsou definovány následující funkční bloky: Funkční blok fbmeterpulse fbmetercounter Popis Počítá pulzy a jejich frekvenci Počítá pulzy a jejich frekvenci (s využitím čítače) 24 TXV 003 82.01

6.1 Funkční blok fbmeterpulse Funkční blok fbmeterpulse slouží k čítání a určování frekvence pulzů přicházejících na binární vstup. Čítány jsou náběžné hrany na vstupu Pulse. Na výstupu PulseOut je kopie vstupních hran. Hodnota na vstupu MaxPeriod určuje jaká nejdelší doba mezi pulzy je ještě považována za nenulovou frekvenci. Při zastavení pulzů, určená frekvence klesá k hodnotě dané převrácenou hodnotou MaxPeriod. Pokud nepřijde do doby MaxPeriod pulz je frekvence prohlášena za nulovou. Pokud je k dispozici informace o zastavení pulzů, je možné frekvenci vynulovat okamžitě nastavení vstupu Freeze na TRUE. Během doby, kdy je Freeze nastaven na TRUE se příchozí pulzy ignorují. Hodnota vstupu Base určuje základ pro určování frekvence. Jednotky výstupu Frequency jsou pak dány převrácenou hodnotou hodnoty Base. Pro Base rovno 1 sekunda jsou jednotky sekundy na mínus první, tedy hertzy. Pokud je nastaven vstup Filter na nenulovou hodnotu, je výstup Frequency dále upraven filtrem prvního řádu. Celkový počet pulzů je uchováván v proměnné na vstupu Counter jako počet pulzů. Maximální celkový počet je 4294967295 pulzů. Po dosažení této hodnoty je nastaven pří znak Overflow a čítání se zastaví. Pro většinu aplikací by neměl limit čítače být překážkou. Čítat celkového počtu pulzů je možné vynulovat náběžnou hranou na vstupu Reset. Pro zachování hodnoty celkového počtu pulzů během výpadků napájení je nutné proměnnou na vstupu Counter definovat jako VAR_GLOBAL RETAIN. VAR_INPUT Pulse Reset BOOL R_EDGE BOOL R_EDGE Pulzy Nulování počítadla pulzů 25 TXV 003 82.01

Freeze BOOL Zastaví čítání a nastaví frekvenci na nulu Filter TIME Časová konstanta filtru frekvence MaxPeriod TIME Maximální perioda mezi pulzy Base TIME Základní časová perioda pro určování frekvence VAR_IN_OUT Counter UDINT Počítadlo pulzů (musí být RETAIN!) VAR_OUTPUT PulseOut BOOL Kopie vstupních pulzů Overflow BOOL Přetečení čítače pulzů, nastavte Reset do logické 1 Frequency REAL Frekvence [1/Base] Příklad programu s funkčním blokem fbmeterpulse měření rychlosti větru pro anemometr T114, který dává jeden pulz za sekundu pro rychlost větru 2,4 km/h. Proměnná Counter v tomto případě není remanentní, protože celkový počet pulzů není důležitý. r0_p3_di.di0 je vstupem základního modulu. V proměnné Velocity bude rychlost v kilometrech za hodinu. PROGRAM prgwindspeed VAR MeterPulse : fbmeterpulse; Counter : UDINT; MeterPulse(Pulse := r0_p3_di.di0, MaxPeriod := T#1m, Base := T#2.4s, Counter := Counter Frequency => Velocity); END_PROGRAM 26 TXV 003 82.01

Příklad programu s funkčním blokem fbmeterpulse měření celkového úhrnu srážek pro srážkoměr, který dává jeden puls na 0,2794 mm srážek. Proměnná TotalRainFall udává celkový úhrn srážek v milimetrech a proměnná LastHour přibližnou intenzitu srážek v milimetrech za hodinu. Proměnná MI_CIB1_IN.ID1_IN.DI.DI1 představuje binární vstup CFox jednotky. VAR_GLOBAL RETAIN RainfallCounter : UDINT; PROGRAM prgrainfall VAR MeterPulse : fbmeterpulse; TotalRainfall : REAL; LastHour : REAL; VAR CONSTANT OnePulse : REAL := 0.2794; // mm/pulse MeterPulse(Pulse := MI_CIB1_IN.ID1_IN.DI.DI1, MaxPeriod := T#1h, Base := T#1h, Counter := RainfallCounter); LastHour := MeterPulse.Frequency * OnePulse; TotalRainfall := UDINT_TO_REAL(RainfallCounter) * OnePulse; END_PROGRAM 27 TXV 003 82.01

6.2 Funkční blok fbmetercounter Funkční blok fbmetercounter slouží k čítání a určování frekvence pulzů přicházejících na binární vstup vybavený čítačem. Čítány jsou rozdíly stavů čítače. Na výstupu Change je příznak změny stavu vstupního čítače. Změna čítače mezi dvěma voláními bloku nesmí být větší než 50. Větší rozdíly jsou považovány za chybu a ignorovány. Hodnota na vstupu MaxPeriod určuje jaká nejdelší doba mezi pulzy je ještě považována za nenulovou frekvenci. Při zastavení pulzů, určená frekvence klesá k hodnotě dané převrácenou hodnotou MaxPeriod. Pokud nepřijde do doby MaxPeriod pulz je frekvence prohlášena za nulovou. Pokud je k dispozici informace o zastavení pulzů, je možné frekvenci vynulovat okamžitě nastavení vstupu Freeze na TRUE. Během doby, kdy je Freeze nastaven na TRUE se změny čítače ignorují. Hodnota vstupu Base určuje základ pro určování frekvence. Jednotky výstupu Frequency jsou pak dány převrácenou hodnotou hodnoty Base. Pro Base rovno 1 sekunda jsou jednotky sekundy na mínus první, tedy hertzy. Pokud je nastaven vstup Filter na nenulovou hodnotu, je výstup Frequency dále upraven filtrem prvního řádu. Celkový počet pulzů je uchováván v proměnné na vstupu Counter jako počet pulzů. Maximální celkový počet je 2147483647 pulzů. Po dosažení této hodnoty je nastaven pří znak Overflow a čítání se zastaví. Pro většinu aplikací by neměl limit čítače být překážkou. Čítat celkového počtu pulzů je možné vynulovat náběžnou hranou na vstupu Reset. Pro zachování hodnoty celkového počtu pulzů během výpadků napájení je nutné proměnnou na vstupu Counter definovat jako VAR_GLOBAL RETAIN. 28 TXV 003 82.01

Proměnná Typ VAR_INPUT Význam Cnt UINT Čítač pulzů Reset BOOL R_EDGE Nulování počítadla pulzů Freeze BOOL Zastaví čítání a nastaví frekvenci na nulu Filter TIME Časová konstanta filtru frekvence MaxPeriod TIME Maximální perioda mezi pulzy Base TIME Základní časová perioda pro určování frekvence VAR_IN_OUT Counter DINT Počítadlo pulzů (musí být RETAIN!) VAR_OUTPUT Change BOOL Čítač pulzů změnil hodnotu Overflow BOOL Přetečení čítače pulzů, nastavte Reset do logické 1 Frequency REAL Frekvence [1/Base] 29 TXV 003 82.01

Příklad programu s funkčním blokem fbmetercounter, pro měření průtoku. Blok počítá pulzy ze vstupu základního modulu r0_p3_cnt_in1.vala. Tento vstup má 32 bitový čítač, proto je použita ještě konverze UDINT_TO_UINT. Napočítané pulzy jsou přes kon stantu udávající jaké proteklé množství odpovídá jednomu metru krychlovému, převeden na celkový proteklý objem (celkobjem). Frekvence udávající pulzy za hodinu je tou samou konstantou převedena na průtok v metrech krychlových za hodinu (aktprutok). VAR_GLOBAL RETAIN FCounter3 : DINT; PROGRAM prgexampleflowcounter VAR FMeter : fbmetercounter; aktprutok : REAL; celkobjem : REAL; VAR CONSTANT meterperpulse : REAL := 0.01; FMeter( Cnt Filter Base MaxPeriod Counter := UDINT_TO_UINT(r0_p3_CNT_IN1.VALA), := T#2s, := T#1h, := T#120s, := FCounter3); celkobjem := DINT_TO_REAL(FCounter3) * meterperpulse; aktprutok := FMeter.Frequency * meterperpulse; END_PROGRAM 30 TXV 003 82.01

31 TXV 003 82.01

TXV 003 82.01 Výrobce si vyhrazuje právo na změny dokumentace. Poslední aktuální vydání je k dispozici na internetu www.tecomat.com 32 TXV 003 82.01