恭喜,你发布的帖子
发布于 2023-09-09 08:32:15
14楼
随便写个:
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
请填写推广理由:
分享
只看
楼主