折线表查询例子(数学查表)例子 SCL

已锁定

柳叶飘飘

  • 帖子

    95
  • 精华

    7
  • 被关注

    194

论坛等级:侠圣

注册时间:2016-12-08

黄金 黄金 如何晋级?

折线表查询例子(数学查表)例子 SCL

1050

2

2016-12-27 21:52:16

//该程序修改可实现各种数学查表,可添加数组维度来实现。


//#################################################################################

//用于单室平衡容器液位计算(查表法)

//EBC LW

//#################################################################################

FUNCTION_BLOCK LTDS


TITLE ='LTDS'

AUTHOR:   EBC_LW

NAME:     LTDS

VERSION:      '0.01'

FAMILY:   EBC

KNOW_HOW_PROTECT



VAR_INPUT

    

DifPre

    : STRUCT

       Value: REAL;

       ST : BYTE:=16#80;

      END_STRUCT;//差压

Pre

    : STRUCT

       Value: REAL;

       ST : BYTE:=16#80;

         

     END_STRUCT;//补偿压力

H:REAL;//水气管中心距离

A: REAL;//平衡容器正常水位“0”的距离




  

END_VAR


// Block Parameters




VAR_IN_OUT

    // I/O Parameters

END_VAR







VAR

TB:ARRAY[0..10,0..2] OF REAL:=

                        0.1,0.0292,1.043602,

                        1.0,0.1001,1.132699,

                        2.0,0.1369,1.188710,

                        2.5,0.1514,1.213106,

                        3.0,0.1644,1.236277,

                        3.5,0.1764,1.258796,

                        4.0,0.1876,1.280902,

                        4.5,0.1982,1.302847,

                        5.0,0.2083,1.324749,

                        5.5,0.2181,1.346965,

                        6.0,0.2275,1.369263;//表格  

                         


 F1X:REAL;

 F2X:REAL;    

 I:INT; 

 AP:REAL;  //绝对压力               

END_VAR





VAR_OUTPUT

   

  OUT

     : STRUCT

        Value: REAL;

        ST : BYTE:=16#80;

         

       END_STRUCT;//水位

  

END_VAR





//#######################################################################

//通过压力查表获得相应的值

//#######################################################################

//计算绝对压力

AP:=Pre.Value + 0.1013;


  FOR I:= 1 TO 10 BY 1 DO


     //通过绝对压力查询

    IF (AP <=TB[I,0]) & (AP >=TB[I-1,0]) THEN

        //Y=Y0+(X-X0)/(X1-X0)*(Y1-Y0)  线性插值算法

           F1X:=TB[I-1,1] +(AP - TB[I-1,0])/(TB[I,0]-TB[I-1,0])*(TB[I,1]-TB[I-1,1]);

           F2X:=TB[I-1,2] +(AP - TB[I-1,0])/(TB[I,0]-TB[I-1,0])*(TB[I,2]-TB[I-1,2]);


     END_IF;

        

   END_FOR; 


//####################################################################

//差压计算液位

//####################################################################


//OUT.VALUE:=F1X;

OUT.VALUE:=A-((DifPre.VALUE /0.980655 - H * F1X)/F2X);


END_FUNCTION_BLOCK

//原创程序请多交流 QQ 275578306


折线表查询例子(数学查表)例子 SCL 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54622条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。