FC中参数传递

各位老师,
有几个参数传递的问题想请教下:
1. 西门子高级编程PPT中说,在被调FC中,必须写输出参数(避免使用指令如S和R)? 为什么?
2. 如何用指针将一个数组(bits)写到另一个数组(bits),并且应该置位第二个数组,即 A array[0]   S array1[0],应该怎么写?
谢谢

问题补充:
1. 您说的我理解,问题在于为什么说不能用S 和R
2.FC如图所示,该FC在模拟器中正常,但是用SFC51将数据写入DB作为该FC的输入,不能够正常输出

图片说明:

FC中参数传递   

最佳答案

1、FC的输入输出是没有实际地址对应的,只有的程序调用时,才会和实际的地址产生对应关系。FC参数传递的是数据的地址。
2、需要对数组进行拆分后传送。
参见:FC中如何传递ANY指针
http://www.ad.siemens.com.cn/download/docMessage.aspx?ID=6731&loginID=&srno=&sendtime=

输出变量每次执行扫描后必须都要对其赋值,否则就会输出一个随机值。这就是不用S、R指令的原因,因为FC中没有保存输出状态的地址。
至于你的程序不能够正常输出,原因也在与此。其实你用字节、字传送也可以的,或用A、=,这样保证每次执行时都对输出赋值了。

提问者对于答案的评价:
谢谢大家,基本清楚了情况。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 下午3:15
下一篇 2018年12月1日 下午3:16

相关推荐