Satunnaislukugeneraattori
461 531 626
Tässä esimerkissä luodaan välillä 0..3000 oleva satunnaisluku ja käytetään sitä viiveen pituutena 0..3 s. Satunnaisluku ja viive generoidaan OB30-lohkossa (Cyclic Interrupt), jossa se suoritetaan vain 100 ms välein. Tällöin se ei turhaan kuluta PLC:n resursseja niin kuin OB1:een sijoitettuna.
Ohjelmalohko OB30 (kuten muutkin OB:t) sisältää Block interfacen. Sen Temp-osioon lisätään muuttujat aika (tyyppiä DTL), aikaStatus (tyyppiä Int) ja random0_3000 (tyyppiä DInt). DTL-tyyppinen muuttuja sisältää automaattisesti jäsenet YEAR, MONTH jne, joita ei tarvitse siis lisätä käsin.
Satunnaisluku generoidaan tässä järjestelmäajan nanosekunneista. Järjestelmäaika luetaan RD_SYS_T-lohkolla (Instructions > Extended instructions > Date and time-of-day > RD_SYS_T). Ajan nanosekuntiosio on UDInt-muotoinen kokonaisluku välillä 0..999 999 999. Jakamalla se luvulla 333 333, saadaan DInt-tyyppiseen muuttujaan #random0_3000 luku välillä 0..3000. Tätä voidaan käyttää suoraan TON-toimilohkon viiveen pituutena PT.