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.