回复:要是做循环的时候PIW怎么做呢?

like821080

  • 帖子

    728
  • 精华

    0
  • 被关注

    7

论坛等级:侠圣

注册时间:2008-09-05

普通 普通 如何晋级?

发布于 2011-04-01 16:46:52

14楼

FUNCTION_BLOCK FB3

VAR_INPUT
DB_ANY : ANY; //Any-Pointer of the Data-Block / Any-Pointer des DB

END_VAR

VAR
START_ADR : Dword; //Start-Address in the Datablock / Startadresse des DB
START_ADR_int:DINT;
motor_out : ARRAY [0 .. 10 ] OF INT;


S : STRUCT //internal stucture / Interne Struktur
VALUE1 : WORD;
VALUE2 : REAL;
VALUE3 : BYTE;
VALUE4 : BYTE;
END_STRUCT;
END_VAR

VAR_TEMP
RET :INT;
SRC_ANY : ANY; // Anypointer for source / Anypointer der Quelle
AT_SRC_ANY AT SRC_ANY: STRUCT
BYTE0 :BYTE; // Byte 0
TYP :BYTE; // Byte 1 Data-/Parametertype / Daten- / Parametertyp
ANZ :WORD; // Byte 2+3 Lenth of data / Datenl鋘ge
DBNO :WORD; // Byte 4+5 DB-Number / DB-Nummer
BZ :DWORD; // Byte 6 to 10 Pointer/ Byte 6 bis 10 Bereichszeiger
END_STRUCT;
END_VAR

BEGIN
START_ADR_int:=DWORD_TO_DINT(START_ADR);
FOR START_ADR_int := 0 TO 10 BY 2 DO



md100 := (AT_SRC_ANY.BZ AND 16#FF000000) OR SHL(IN:= START_ADR, N:= 3); //这个相当于 L loopcount SLW 3 T MD100





mw[md100]:=piw[md100];//L PIW[MD100]

//T MW[MD100]

END_FOR;



END_FUNCTION_BLOCK

可为什么还是不行啊
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54621条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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