FC中如何传递ANY指针

问题描述:
在STEP7函数FC1中调用SFC14和SFC15,程序结构如图1,如何将FC1接口中定义的ANY指针 RD_RECORD及WR_RECORD(图2)分别传递给SFC14及SFC15 ?

FC中如何传递ANY指针
图 1

FC中如何传递ANY指针
图 2

解决方法:
如图3所示,由于FC接口参数中定义的ANY类型参数RD_RECORD 无法作为其调用函数SFC14 RECORD参数的实参,而在临时变量区中定义的ANY类型变量却可以作为SFC14 RECORD参数的实参,所以可采取通过临时变量中转的方式来传递ANY指针。

FC中如何传递ANY指针
图 3

附件提供的样例程序中在FC1函数的临时变量区中定义两个ANY类型变量 RD_Temp和 WR_Temp,分别作为SFC14和SFC15的RECORD参数。
FC1中的Network 1通过1个WORD和2个DWORD逐字段传递的方式将RD_RECORD的内容传递给 RD_Temp;
FC1中的Network 2通过在LOOP循环中逐字节传递的方式将WR_RECORD的内容传递给WR_Temp;

测试环境 版本
PC操作系统 Microsoft Windows XP, SP3
STEP 7 V5.5, SP2

关于指针结构及寻址编程参考下载中心文档《S7-300和S7-400寻址》文档编号“F0215”

样例程序:FC中如何传递ANY指针Registrierung notwendig nestedfc.zip (867,6 KB)

下载此文档:FC中如何传递ANY指针 F0670_FCANY.pdf (104,9 KB)

关键词
函数,ANY,嵌套,SFC14,SFC15

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc322739.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2021年4月12日

相关推荐

发表回复

登录后才能评论