回复:SCL编程测试出错,你遇见了吗?(接口参数为结构体的功能或功能块调用注意事项)

N

  • 帖子

    767
  • 精华

    10
  • 被关注

    45

论坛等级:侠士

注册时间:2004-06-04

普通 普通 如何晋级?

发布于 2011-09-14 15:06:06

2楼

这个可以编译成功。是Struct参数定义的问题,结构中元素的符号名称必须要用原块定义的符号,而不光是长度一致。

//************ Symbol table definition ************
//DB1 DB 1 DB 1
//RD_SINFO SFC 6 SFC 6 Read OB Start Information
//************ Symbol table definition ************

//************
TYPE UDT1 :
STRUCT
EV_CLASS:BYTE;
EV_NUM:BYTE;
PRIORITY:BYTE;
NUM:BYTE;
TYP2_3:BYTE;
TYP1:BYTE;
ZI1:WORD;
ZI2_3:DWORD;
END_STRUCT
END_TYPE

//************
DATA_BLOCK DB1
STRUCT
S1 : UDT1;
S2 : UDT1;
END_STRUCT
BEGIN

END_DATA_BLOCK


//************
FUNCTION_BLOCK FB100

VAR
// Temporary Variables
TOP_SI1: UDT1;

START_UP_SI1: UDT1;

ERR:INT;

TOP_SI2: STRUCT
EV_CLASS:BYTE;
EV_NUM:BYTE;
PRIORITY:BYTE;
NUM:BYTE;
TYP2_3:BYTE;
TYP1:BYTE;
ZI1:WORD;
ZI2_3:DWORD;
END_STRUCT;

START_UP_SI2: STRUCT
EV_CLASS:BYTE;
EV_NUM:BYTE;
PRIORITY:BYTE;
NUM:BYTE;
TYP2_3:BYTE;
TYP1:BYTE;
ZI1:WORD;
ZI2_3:DWORD;
END_STRUCT;

END_VAR


begin

ERR := "RD_SINFO"( TOP_SI:= "DB1".S1,
START_UP_SI:= "DB1".S2 );

ERR :="RD_SINFO"( TOP_SI:= TOP_SI1,
START_UP_SI:= START_UP_SI1 );

ERR :="RD_SINFO"( TOP_SI:= TOP_SI2,
START_UP_SI:= START_UP_SI2 );

END_FUNCTION_BLOCK
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54617条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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