回复:请教前辈如何将DB块中多个报警位地址同时输出

askab

  • 帖子

    405
  • 精华

    5
  • 被关注

    34

论坛等级:侠圣

注册时间:2005-07-24

黄金 黄金 如何晋级?

发布于 2015-10-30 17:31:49

4楼

FUNCTION_BLOCK FB1

CONST

db_max:=100 ;   //假设你定位的最大报警个数=100

END_CONST

VAR_INPUT

data1_group:ARRAY[1..db_max] OF BOOL; //你定义的报警数组块

END_VAR

VAR_OUTPUT

compare_output:ARRAY[1..db_max] OF BOOL:=false;//存储有报警点的DB块

END_VAR

VAR_TEMP

i:INT;

data2_group:ARRAY[1..db_max] OF BOOL;   //比较存储区

END_VAR

    FOR i:= 1 TO db_max BY 1 DO

      data2_group[i]:=true;  

      compare_output[i]:= data1_group[i] AND data2_group[i];  

    END_FOR;

END_FUNCTION_BLOCK

DATA_BLOCK DB1  FB1   //为FB1 创建的DB块

//

// Block Comment...

//

BEGIN


END_DATA_BLOCK


在OB1里面

  CALL  "BLKMOV"

       SRCBLK :=P#DB1.DBX 0.0 BOOL 100

       RET_VAL:=MW2

       DSTBLK :=P#DB33.DBX 0.0 BOOL 100

      NOP   0

  CALL  FB     1 , DB33

       data1_group   :=

       compare_output:=

      NOP   0

DB33.DBX14.0 ------DB33.DBX26.3 为比较输出结果

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

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54775条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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