Hirdetés
- AMD Navi Radeon™ RX 9xxx sorozat
- Fejhallgató erősítő és DAC topik
- OLED TV topic
- Két 16 GB-os GeForce gyártását szüntette meg az ASUS
- Soundbar, soundplate, hangprojektor
- Már itthon is kapható a Huawei legújabb „papírkijelzős” táblagépe
- Az elmúlt 30 év legjobb processzorai
- Kormányok / autós szimulátorok topikja
- Az AMD szerint Radeonokból nem lesz hiány
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
Új hozzászólás Aktív témák
-
moseras
tag
válasz
DP_Joci
#3602
üzenetére
Üdv!
(* deklarációk *)
FUNCTION_BLOCK Fb_AtlagoloSzuro
VAR_INPUT
rValue: REAL;
bBufferSize: BYTE := 10;
tPeriod: TIME := t#10s;
RESET: BOOL;
END_VAR
VAR_OUTPUT
rAverageValue: REAL;
END_VAR
VAR
Buffer: ARRAY[1..255] OF REAL;
tSampling: TIME;
FillTimer: TON;
I: WORD;
Tick: BOOL;
Init: BOOL := FALSE;
END_VAR
(* kód *)
tSampling := tPeriod / bBufferSize;
FillTimer(
IN := NOT Tick,
PT := tSampling,
Q => Tick
);
IF NOT init OR RESET OR bBufferSize = 0 THEN
Init := TRUE;
FOR I:= 1 TO bBufferSize DO
Buffer[I] := rValue;
END_FOR;
rAverageValue := rValue;
ELSIF Tick THEN
IF I >= bBufferSize THEN
I := 1;
ELSE
I := I + 1;
END_IF;
rAverageValue := rAverageValue + (rValue - Buffer[I]) / bBufferSize;
Buffer[I] := rValue;
END_IF;Az ötlet innen van: [oscat]
A FILTER_MAV_DW nevű blokkot módosítottam, úgy hogy REAL értékkel dolgozzon, továbbá, hogy időalapú legyen.
Ha működés közben módosítod a puffer méretét vagy a teljes periódusidőt, akkor teszteld le úgy is, mert arra nincs tesztelve !
Imi.
Új hozzászólás Aktív témák
- ÁRGARANCIA!Épített KomPhone i5 14400F 32/64GB DDR5 RTX 5060 Ti 8GB GAMER PC termékbeszámítással
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- MacBook, Apple M1 / M2 kompatibilis dokkolók, DisplayLink 4K, USB-C, Type-C
- Eladó XFX Radeon 7700 2GB videokártya
- LG 65" 4K wifis okos TV 65UR76003LL
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


