回复:s7-300如何实现地址递增

askab

  • 帖子

    405
  • 精华

    5
  • 被关注

    34

论坛等级:侠圣

注册时间:2005-07-24

黄金 黄金 如何晋级?

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

4楼

FUNCTION_BLOCK FB4

VAR_INPUT

    // Input Parameters

data_input:INT:=0;  //输入数据,此处定位为INT型,如果需要浮点型,则改为real

transfer_enable:BOOL:=false;  //允许存储

FP_1Sec:BOOL:=false;  //定制的1S脉冲波

END_VAR

VAR_OUTPUT

    // Output Parameters

data_output:ARRAY[0..5] OF INT:=0;   //假设定义6组数据 存储组

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 >=6) THEN

        count:=0;

END_IF;    

 FOR i:= 0 TO 5 BY 1 DO

        IF transfer_enable THEN    

           data_output[count]:= data_input;

           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

共有54765条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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