设为首页收藏本站

腾控科技论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 680|回复: 0

PID内部实现(ST)

[复制链接]
steelen 发表于 2020-6-19 10:14:15 | 显示全部楼层 |阅读模式
为了更好理解PID功能块,我把内部实现的ST语言粘贴给大家
(* 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


腾控T919宽温以太网PLC上市,集成4路热电阻(PT100),同时集成8路DI,4路DO(晶体管输出),8路AI,3个串口
您需要登录后才可以回帖 登录 | 注册

本版积分规则

产品样机试用申请

QQ|小黑屋|手机版|Archiver|腾控科技|腾控科技 ( 京ICP备09109731号  

GMT+8, 2020-9-29 00:02 , Processed in 0.108613 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表