timohei.net / Opintojaksot / Opintojaksot / Automaatiojärjestelmien perusteet / Valmet DNA (MetsoDNA) How-to /
Liuku- ja kokonaislukujen vertailu ("binääriarvoksi muuttaminen") tehdään cmp-toimilohkolla, laskenta calc-toimilohkolla, joista on olemassa useita versioita tulojen tietotyyppien sekä tulojen ja lähtöjen lukumäärien mukaan.
Vapaamuotoiset toimilohkot manuaalissa
Näiden toimilohkojen ohjesivut ovat sähköisessä Valmet DNA-manuaalissa omassa Vapaamuotoiset toimilohkot -tiedostossaan - eivät siis Toimilohkot-tiedostoissa:
Avaa Valmet DNA -manuaalit EAS-palvelimella 
Valitse englannin- tai suomenkieliset manuaalit ja klikkaa sitten kohdasta Sovelluskirjastot > Toimilohkot > PCS-toimilohkot 
Klikkaa Vapaamuotoiset toimilohkot 
Laskenta- / vertailukaava
Toimilohkon lähdöt asettuvat siihen syötetyn kaavan mukaan. Kaava on muotoa
LÄHDÖN_TUNNUS = TULON_TUNNUS OPERAATTORI [TULON_TUNNUS | VAKIO] [OPERAATTORI [TULON TUNNUS | VAKIO]] ... ;
missä
- LÄHDÖN_TUNNUS = toimilohkon lähdön yksilöivä kirjain tai kirjain-numero-yhdistelmä, esimerkiksi o tai o2
- TULON_TUNNUS = toimilohkon tulon yksilöivä kirjain, esimerkiksi a
- | = tai
- VAKIO = lukumuotoinen vakio, esimerkiksi 50 (kokonaisluku) tai 50.0 (desimaaliluku)
- OPERAATTORI = vertailu- (cmp) tai laskentaoperaatiota (calc) kuvaava symboli, esimerkiksi
- cmp-lohkon vertailuoperaattorit:
- <
- >
- <=
- >=
- == (yhtäsuuruus)
- != (erisuuruus)
o = a < b;
asetetaan lähtö o ykköseksi, kun tulon a arvo on pienempi kuin tulon b arvo; muussa tapauksessa lähtö o asetetaan nollaksi.
- cmp-lohkon vertailuoperaattorit:
- cmp-lohkon loogiset operaattorit:
- AND
- OR
- XOR
- NOT
o = a < b AND a > c;
asetetaan lähtö o ykköseksi, kun a on pienempi kuin b ja suurempi kuin c eli tulon a arvo on tuloarvojen b ja c välissä. - calc-lohkon laskentaoperaattorit
- +
- -
- *
- /
- ** (potenssiin korotus)
- trigonometriset ja logaritmifunktiot
- ; = puolipiste - kaava lopetetaan aina puolipisteeseen! Tämä mahdollistaa kaavan jakamisen useammalle riville:
o = (a + b) * 3.14 + 4 * (c + d);
cmp- ja calc-esimerkkejä

Kaavassa käytettävien vakioarvojen muuttaminen buggerilla
Mikäli edellisen esimerkin vakioarvoa 1.105 halutaan tarvittaessa muuttaa esim. buggerilla, tulee kyseinen parametri antaa vapaamuotoisen toimilohkon ulkopuolella. Huomaa ana-tyypin rakenne [vikabitit],[liukuluvun arvo-osa] - kaavan sisälle vikabittejä ei merkitä, rajapintaporttiin merkitään):
Vinkkejä virhetilanteisiin
Jos näiden toimilohkojen yhteydessä tulee virheilmoituksia, tarkista,
- että olet käyttänyt tuloista nimiä a, b, c,... ja lähdöstä nimeä o tai useampilähtöisen toimilohkon tapauksessa nimiä o1, o2, o3,...
- että kaikki kaavoissa käytetyt tulot ja lähdöt on kytketty johonkin
- että kaikkia johonkin kytkettyjä tuloja ja lähtöjä käytetään kaavoissa ainakin kerran
- että lopetat kaavan puolipisteeseen (;)
Kaavan saa jakaa useammalle riville. Puolipisteellä siis ilmoitetaan, mihin kaava loppuu.