Převod Analog na Diskrétní hodnoty
Celé jméno
Lib.Mervis.v1_0.AnalogToDiscrete
Potřebné reference projektu
- Lib.Mervis
Popis
Použití v ST
program test var a2d: lib.mervis.v1_0.AnalogToDiscrete; end_var ad2(Value := ..., Weights := [1, 2, 4, 8, 0, 0, 0, 0], Output0 => D0, Output1 => D1); end_program
Vstupy
Jméno | Datový typ | Povolený rozsah | Retain | Nutno připojit | Význam |
---|---|---|---|---|---|
Value | real | Ne | Ano | Vstupní analogová hodnota | |
Weights | array[0..7] of real | Jednotlivé prvky větší rovny nule | Ne | Ne | Váhy jednotlivých vstupů. Musí být seřazeno vzestupně, nula na jakékoliv pozici ukončuje výpočet. |
Tolerance | real | 0..100 % | Ne | Ne | Tolerance pro porovnávání vah jednotlivých vstupů |
Výstupy
Jméno | Datový typ | Význam | |
Output0..Output7 | bool | Hodnoty jednotlivých bitů (0 - nejnižší váha = LSB, 7 - nejvyšší váha = MSB) | |
CombinedOutput | usint | Výstupy Output0..Output7 sloučenédo jednoho 8b čísla |
Podrobný popis funkce
Blok slouží k převodu spojité veličiny (např. napětí nebo odpor), která svojí velikostí kóduje binární hodnoty. Hlavní využití je při využití analogových vstupů pro rozšíření počtu digitálních vstupů nebo pro úsporu kabeláže mezi senzorem a regulátorem.
Příklady využití
- Modul 6 digitálních vstupů, který je převádí na napětí 0-10 V.
První vstup má váhu 5 V, druhý 2.5 V atd. poslední má váhu 0.15625 V. Výsledné napětí je poté dané součtem těchto vah. Pro zpětný převod na stavy digitálních vstupů lze použít tento funkční blok, kde vyplníme váhy od nejmenší, Weights = [0.15625, 0.3125, 0.625, 1.25, 2.5, 5, 0, 0].
- Další možností je přenos více digitálních kontaktů pouze po dvou vodičích pomocí vhodně zvolených hodnot rezistorů k daným kontaktům.
Pokud zvolíme např. hodnoty 120 Ohm, 240 Ohm, 390 Ohm a 820 Ohm jsme schopni rozlišit 16 různých hodnot odporu a tím pádem 4 spínací kontakty.