Lib.Mervis.v1_0.AnalogToDiscrete
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
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ů |
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 |
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í
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].
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.