FC中参数传递
刘玉蓉
发布于2014-12-09 17:22
41
0
标签:
有几个参数传递的问题想请教下:
1. 西门子高级编程PPT中说,在被调FC中,必须写输出参数(避免使用指令如S和R)? 为什么?
2. 如何用指针将一个数组(bits)写到另一个数组(bits),并且应该置位第二个数组,即 A array[0] S array1[0],应该怎么写?
问题补充:
1. 您说的我理解,问题在于为什么说不能用S 和R
2.FC如图所示,该FC在模拟器中正常,但是用SFC51将数据写入DB作为该FC的输入,不能够正常输出
图片说明: 1,11
佳答案
1、FC的输入输出是没有实际地址对应的,只有的程序调用时,才会和实际的地址产生对应关系。FC参数传递的是数据的地址。
2、需要对数组进行拆分后传送。
参见:FC中如何传递ANY指针
https://www.ad.siemens.com.cn/download/docMessage.aspx?ID=6731&loginID=&srno=&sendtime=
输出变量每次执行扫描后必须都要对其赋值,否则就会输出一个随机值。这就是不用S、R指令的原因,因为FC中没有保存输出状态的地址。
至于你的程序不能够正常输出,原因也在与此。其实你用字节、字传送也可以的,或用A、=,这样保证每次执行时都对输出赋值了。