回复:如何简单编程逐次读取15个浮点数据显示在HMI上,保证先进先出原则

askab

  • 帖子

    401
  • 精华

    5
  • 被关注

    34

论坛等级:侠圣

注册时间:2005-07-24

黄金 黄金 如何晋级?

发布于 2015-10-30 11:40:48

10楼

FUNCTION_BLOCK FB4

VAR_INPUT

data_input:INT:=0;  //输入数据 整型

transfer_enable:BOOL:=false; //允许刷新

FP_1Sec:BOOL:=false;   //定制一秒脉冲波

END_VAR

VAR_OUTPUT

    // Output Parameters

data_output:ARRAY[0..14] OF INT:=0;   //定义15组数据

data_out:INT:=0;  //当前输出数据,如果只记录,则可以不用

END_VAR

VAR

i:INT;

Impls_1Sec_Aux,Impls_1Sec:BOOL;

count:INT;   //定制计数器

END_VAR

    

Impls_1Sec:= FP_1Sec AND (NOT Impls_1Sec_Aux); 

Impls_1Sec_Aux:= FP_1Sec;


IF Impls_1Sec  AND transfer_enable   THEN 

        count:= count +1; 

ELSIF  NOT transfer_enable  OR ( count >=16) THEN  //刷新次数到达最大15次或者禁止刷新,则计                                                    //数器清零

        count:=0;

END_IF;    

 FOR i:= 0 TO 14 BY 1 DO

        IF transfer_enable THEN    //如果允许存储 

           data_output[count]:= data_input;  //存储数据到0-14 

           //data_output[count-1]:= 0;  //存储当前数据,清零上个数据 ,如果不需要,则删除此                                         //语句

        ELSE

            data_output[i]:=0;     //如果禁止存储,存储组数据全部清零

            END_IF;                    

    END_FOR;

    data_out:=data_output[i];

  //如果仅仅是存储数据,则以下语句删除即可

  IF data_input <> data_out THEN    

      data_out:= data_input;

    END_IF;

     

END_FUNCTION_BLOCK


大家同行,you ok ? me !
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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