Skip to main content

HVAC-kirjasto

HVAC kirjasto

Sisältää monia perusfunktioita ja pistetyyppejä LVIO automaatiota ajatellen.

Pistetyypit ja funktiot:

 * hvacPIDController

    Säädin piste. Voi sisältää vapaan määrän säätöportaita. Virittämiseen on
    porraskohtainen suhdealue, ja säädinkohtainen integrointi- ja derivointiaika.

    Jotta säädin toimisi, se tarvitsee toimiakseen kutsun hvac_runPID() funktiolle.

    Funktio: hvac_runPID (idPID [, input, en])

    Funktiokutsu tarvitsee pakollisesti

        idPOID       (string) säädin pisteen nimi tietokannassa (tyyppi vacPIDController)

        input       (valinnainen, real) säätimen feedback, eli mittauksen arvo real lukuna

        en          ( valinnainen, int) säätimen tila, eli vaikkapa pumpun käyntitila

    Palauttaa true jos kutsu onnistui, muuten false

    Esimerkki (suoraan vacPIDController pisteen script kentässä):

        hvac_runPID (id)

 * hvacCurve

    Yleiskäyttöinen muunnoskäyrä, jota voi käyttää esimerkiksi lämpötilan säätöön.

    Voi sisältää täysin vapaan määrän pisteitä. Muunnos käyrästöllä tehdään
    hvac_curve() funktiolla.

    Funktio: hvac_curve (idCurve, dataIn)

        idCurve         (string) pakollinen. Käyrän tietokantapisteen nimi.

        dataIn          (real) pakollinen. Käyrälle vietävä (muunnettava) lukuarvo.

    Funktio palauttaa käyrältä muunnetun arvon.

 * hvacSchedule

    Viikko pohjainen aikaohjelma piste.

    Jokainen päivä voi sisältää vapaan määrän tapahtumia. Käytetään yhdessä
    hvac_scheduler() funktion kanssa.

    Funktio: hvac_scheduler (idSch [, tEpoch] )

        idSch       (string) Aikaohjelmapisteen nimi tietokannassa

        tEpoch      (int, valinnainen) jos halutaan, että ajastusta ei tehdä
                    oikean kellonajan mukaan, tällä voidaan viedä haluttu
                    aika funktiolle unix epookkina.

 * hvacTimer

    Piste kuvailee yleiskäyttöisen viiveen. Käytetään yhdessä
    hvac_timer() funktion kanssa.

    Toimii siten, että seuraa pisteen input kenttää (tai kutsussa rValue parametria)
    ja mikäli siinä havaitaan nouseva tai laskeva reuna (eli sen arvo muuttuu),
    asettaa funktio pisteen output kentän samaan arvoon kuin input kenttä
    annettujen viiveiden kuluttua.

    Eli jos input muuttuu arvosta 0 arvoon 2, muuttaa funktio pisteen output kentän
    arvoon kaksi onDelay (nouseva reuna) millisekunnin kuluttua. Jos viiveen aikana
    input palaa takaisin arvoon 0, resetoituu viiveen laskenta alkuun.

    Samaa logiikkaa käytetään myös, kun input kentän arvo pienenee, eli siinä
    havaitaan laskeva reuna.

    hvacTimer pisteellä oleva stepSize parametri määrää, kuinka paljon output voi
    yhden viivekierroksen jälkeen muuttua. Eli jos ..

        stepSize = 1 ja output = 0

    .. ja input muuttuu 0 -> 3, ja onDelay = 2000

    Oletuksella että hvactimer() funktiota kutsutaan ainakin kerran kahdessa
    sekunnissa, muuttuu pisteen output kahden sekunnin päästä arvoon 1, ja
    jälleen kahden sekunnin päästä arvoon 2. Tällä ajastimella on siis mahdollisa
    tehdä myös ramppeja (vaikkapa analogi pisteisiin), asettamalla stepSize arvoksi
    sopiva luku.

    Funktio: hvac_timer (idtimer [, rValue, rOnDelay, rOffDelay] )

        idtimer     (string) ajastin pisteen nimi tietokannassa.

        rValue      (real, valinnainen) Haluttu input arvo ajastimelle. Jos tätä
                    ei anneta kutsussa, funktio käyttää tietokantapisteen
                    input kenttässä olevaa arvoa.

        rOnDelay    (real, valinnainen) Haluttu päällemeno viive millisekunteina.
                    Jos tätä ei anneta, funktio käyttää pisteessä onDelay kentässä
                    olevaa arvoa.

        rOffDelay   (real, valinnainen) Haluttu poismeno viive millisekunteina.
                    Jos tätä ei anneta, funktio käyttää pisteessä offDelay kentässä
                    olevaa arvoa.

 * Funktio: hvac_limit (pointId [, hiLimit, loLimit] )

    Tämä kutsu rajoittaa pisteen pv kentän haluttujen rajojen väliin. Tämä
    funktio ei liity mihinkään tiettyyn pistetyyppiin, vaan sitä voi käyttää kaikkiin
    sellaisiin pisteisiin, joilla on pv kenttä.

        pointId     (string, pakollinen) Rajoitettavan pisteen nimi

        hiLimit     (real, valinnainen) pisteen pv kentä numeraalisen arvon
                    yläraja.

        loLimit     (real, valinnainen) pisteen pv kentä numeraalisen arvon
                    alaraja.

    Mikäli hiLimit tai loLimit parametreja ei anneta kutsussa, funktio koettaa löytää
    annetulta pisteeltä highLimit tai lowLimit kenttiä, ja käyttää niissä olevia
    arvoja rajoituksen tekemiseen.

    HUOM! Nykyisessä slcenginen versiossa tehdään pisteen pv kentän rajoitus
    automaattisesti, jos pisteelle on luotu highLimit ja/tai lowLimit kentät.
    Tätä funktiota tarvitaan siis vain erikoistapauksissa.