Notes

Soubor TXT ZÁPISNÍK - v rámci programování sklouznete, ať chcete nebo nechcete do rutiny a vytvoříte si svůj styl. Následně nad nějakými problémy neuvažujete a řešíte je automaticky. Je potřeba nějaký impuls, abyste se dostali jinam. Sem-tam narazím na takovou věc, která mě zavede na lepší nebo přinejmenším jinou kolej a donutí mě zamyslet se nad mým a jiným řešením problému. Tyto věci jsem si soukromě porůznu poznamenával a až teď jsem se rozhodl psát si je na jedno místo, kde budou ležet pro další zpracování. Následně jsem si řekl, že pokud „nakopnou“ mě, tak by mohli pomoci i ostatním, proto jsem se rozhodl tento soubor umístit na web. Je to můj pomocný"sešit", proto příspěvky budou přidávány a odebírány podle toho, jak je budu zpracovávat a to bezVAROVÁNÍ! Berte to jen jako nástřel k zamyšlení a případné dotazy rád zodpovím.


*** (OK) zpracováno, použito, odzkoušeno ***

*Jak AND z OR?  (OK)

---<NOT>----|OR|
                      |      |---<NOT>-------(ST)
---<NOT>----|OR|

*Prostřídání od bitu?  (OK)
--- Zavedeme si LONG proměnnou. Pokud je nějaký bit v jedničce, tak provedeme např. prostřídání a následně vynulování proměnné.
--- 19bit v LONG -> cca. 6 dní
--- 20bit v LONG -> cca. 12 dní


*Jak udělat pokud je jiná doba přeběhu ventilu při otevírání a zavírání?
--- PřeběhX          MF [2,1]              např.35,8        otevírá;zavírá;perioda 0,1s
--- Let        PŘEBĚH = PřeběhX[int(AKCE < POLOHA), 0]
--- Valve      AKCE, PŘEBĚH, POLOHA, ZAVÍRÁ, OTVÍRÁ


*Jak udělat teplotní integrál?
--- Integrál          F                     inicializovat při teplém startu
--- IntegrálX        MF [3,1]         např.3,300,300   rozdíl teplot,integrály
--- ODCHYLKA  F                     odchylka žádané od zkutečné
--- Let        Integrál = if( ODCHYLKA > IntegrálX[0,0], Integrál + ODCHYLKA, 0)
--- Let        Vyhodnocení integrálu
***tv_2_a_102_dso ->libSwitchHC


*Jak vyhodnotit poruchu snímače?
--- ix                  I                     pomocná proměnná
--- Fax              F                     pomocná proměnná
--- Fbx              F                     pomocná proměnná

--- Ni1000 #0.0,AI0_okamzita[0, 0], 6180   první snímač
--- Ni1000 #0.1,AI0_okamzita[1, 0], 6180   druhý snímač atd.

--- For ix, 0.000, 8.000 [počet snímačů], 1.000, :NONE    *věrohodnost měření
---   Let AI0_F.(ix) = (AI0_okamzita[ix, 0] < Ti_Ameze[0, 0]) or (AI0_okamzita[ix, 0] > Ti_Ameze[0, 1])
--- EndFor
--- Let @poruchaSNÍMAČE = AI0_F != 0                      *porucha snímače

--- Přepočty, filtrace jednotlivé snímače
--- If AI0_F.0, :NONE                                     *první snímač
---    Let VYSLEDNA[0, 0] = AI0_okamzita[0, 0]            *špatná teplota jen zobraz
--- Else :NONE
---    Let Fax = AI0_okamzita[0, 0] + Filtr[0, 1]         *úprava hodnoty snímače
---    Filtr1R Fax, Fbx, Filtr[0, 0]
--- EndIf
--- Let VYSLEDNA[0, 0] = INT(Fbx * 10)/10                 *na jedno desetinné místo

--- If AI0_F.1, :NONE                                     *druhý snímač atd.
---    Let VYSLEDNA[1, 0] = AI0_okamzita[1, 0]            *špatná teplota jen zobraz
--- Else :NONE
---    Let Fax = AI0_okamzita[1, 0] + Filtr[1, 1]         *úprava hodnoty snímače
---    Filtr1R Fax, Fbx, Filtr[1, 0]
--- EndIf
--- Let VYSLEDNA[1, 0] = INT(Fbx * 10)/10                 *na jedno desetinné místo


Jak vytvořit efektně programovou negaci digitálních vstupů?  (OK)
--- DigIn #0, Ix0, 0x0000                   * Digitální vstupy
--- Let  DI0 = Ix0 ^  DI0_Neg             * Negace digitálních vstupů podle DIO_Neg (1 = negované)


Jak realizovat průměr z několika snímačů jen pokud nejsou v poruše? (OK)
--- Let suma = 0; citac = 0
--- For Ix, 0.000, 2.000, 1.000  // druhá konstanta je (počet.průměrovaných.hodnot - 1)
---   Let suma = if (not Porucha.(Ix), suma+Hodnoty[Ix,0], suma)
---   Let citac = if (not Porucha.(Ix), citac+1, citac)
--- EndFor
--- Let Prumer = if(citac =! 0, suma/citac, implicitní hodnota)