FUNCTION_BLOCK Tcasovac  //casovani - odecteni casu
  VAR_IN_OUT
    cas : UINT;
  END_VAR
  IF (cas > odecteni_casovace) THEN
    cas := (cas - odecteni_casovace);
  ELSE
    cas := 0;
  END_IF;
END_FUNCTION_BLOCK
VAR_GLOBAL  //promenne - instance funkcnich bloku
  casovac : Tcasovac;
END_VAR

//******************************************************************************
// pomocny program (casovacu)
//******************************************************************************

PROGRAM casovani  //proces P0
  VAR_TEMP
    poc1 : INT;
  END_VAR

//******************************************************************************
// obsluha rychlych casovacu (10 ms)
//******************************************************************************
  odecteni_casovace := USINT_TO_UINT(%S3);  //pro casovani - kolik desitek ms vyprselo od minuleho cyklu
  IF (odecteni_casovace > 0) THEN  //vyprsela doba minimalne 10 ms
    casovac(cas := otvor.cas_primazavani);  //odecteni casovace
    casovac(cas := otvor.cas);  //odecteni casovace
    casovac(cas := cas_koncovka);  //odecteni casovace
    casovac(cas := cas_hydraulika);  //odecteni casovace

  END_IF;

END_PROGRAM  //pro casovani