回复:变量表加到LB15再增加一行就报错了

已锁定

zbhdm

  • 帖子

    1908
  • 精华

    2
  • 被关注

    18

论坛等级:至圣

注册时间:2007-05-30

钻石 钻石 如何晋级?

发布于 2023-09-09 08:32:15

14楼

展开查看
以下是引用芳季在2023-09-08 11:18:06的发言 >12楼

随便写个:

SUBROUTINE_BLOCK 表平均:SBR1

TITLE=一次调用,可对表格里面的全体数据进行平均计算。

VAR_INPUT

起始指针:DWORD;

连续数:WORD;

END_VAR

VAR_OUTPUT

平均值:WORD; //  地址

END_VAR

VAR

过程数:DWORD;

首址:DWORD;

循环数:WORD;

域和:DWORD;

END_VAR

BEGIN

Network 1 

LD     SM0.0

MOVD   LD0, LD12

MOVD   0, LD18

MOVD   0, LD8

Network 2 

LD     SM0.0

FOR    LW16, 1, LW4

Network 3 

LD     SM0.0

ITD    *LD12, LD8

+D     2, LD12

Network 4 

LD     SM0.0

+D     LD8, LD18

Network 5 

NEXT

Network 6 

LD     SM0.0

ITD    LW4, AC0

DTR    AC0, AC0

DTR    LD18, AC2

/R     AC0, AC2

ROUND  AC2, AC2

DTI    AC2, LW6

END_SUBROUTINE_BLOCK

这个程序虽然是一个平均计算。但是主要要理解其中——通过一个指针可以找到任意参数的方法。

上面程序复制粘贴到txt编辑器,保存成*.awl文件。然后向程序导入。即可出现子程序。

程序主要观察网络3 4。重点是“首址加2”,这句。

谢谢芳季老师的多次帮助。复制了程序,并改了后缀名,导入出现“导入失败”。由于我不懂STL,您看看是不是我复制的内容不对,我复制的内容如下:

SUBROUTINE_BLOCK 表平均:SBR1

TITLE=一次调用,可对表格里面的全体数据进行平均计算。

VAR_INPUT

起始指针:DWORD;

连续数:WORD;

END_VAR

VAR_OUTPUT

平均值:WORD; //  地址

END_VAR

VAR

过程数:DWORD;

首址:DWORD;

循环数:WORD;

域和:DWORD;

END_VAR

BEGIN

Network 1 

LD     SM0.0

MOVD   LD0, LD12

MOVD   0, LD18

MOVD   0, LD8

Network 2 

LD     SM0.0

FOR    LW16, 1, LW4

Network 3 

LD     SM0.0

ITD    *LD12, LD8

+D     2, LD12

Network 4 

LD     SM0.0

+D     LD8, LD18

Network 5 

NEXT

Network 6 

LD     SM0.0

ITD    LW4, AC0

DTR    AC0, AC0

DTR    LD18, AC2

/R     AC0, AC2

ROUND  AC2, AC2

DTI    AC2, LW6

END_SUBROUTINE_BLOCK


努力学习西门子
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8946条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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