lib/pid_st.txt
author Manuele Conti <conti.ma@alice.it>
Mon, 30 Jul 2012 22:59:00 +0200
changeset 622 eaa49b276e17
parent 276 1679f514f38a
permissions -rwxr-xr-x
Add check bison version in configure.ac file.
To build correctly matiec we need bison greater or equals than 2.4 version.
Now the "configure" script is able to check if system has correctly requirements.
(* Following taken directly from the IEC 61131.3 draft standard *)

(*
 * An IEC 61131-3 IL and ST compiler.
 *
 * Based on the
 * FINAL DRAFT - IEC 61131-3, 2nd Ed. (2001-12-10)
 *
 *)

 FUNCTION_BLOCK PID
   VAR_INPUT
     AUTO : BOOL ;        (* 0 - manual , 1 - automatic *)
     PV : REAL ;          (* Process variable *)
     SP : REAL ;          (* Set point *)
     X0 : REAL ;          (* Manual output adjustment - *)
                          (* Typically from transfer station *)
     KP : REAL ;          (* Proportionality constant *)
     TR : REAL ;          (* Reset time *)
     TD : REAL ;          (* Derivative time constant *)
     CYCLE : TIME ;       (* Sampling period *)
   END_VAR
   VAR_OUTPUT XOUT : REAL; END_VAR
   VAR ERROR : REAL ;        (* PV - SP *)
       ITERM : INTEGRAL ;    (* FB for integral term  *)
       DTERM : DERIVATIVE ;  (* FB for derivative term *)
   END_VAR
   ERROR := PV - SP ;
   (*** Adjust ITERM so that XOUT := X0 when AUTO = 0 ***)
   ITERM (RUN := AUTO, R1 := NOT AUTO, XIN := ERROR,
          X0 := TR * (X0 - ERROR), CYCLE := CYCLE) ;
   DTERM (RUN := AUTO, XIN := ERROR, CYCLE := CYCLE) ;
   XOUT := KP * (ERROR + ITERM.XOUT/TR + DTERM.XOUT*TD) ;
 END_FUNCTION_BLOCK