timohei.net / 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.