基础知识–ANY指针使用的疑问

示例:ANY指针的使用。
编写一个计算功能的函数,输入参数“In_Data”为一个数组变量,如果数组元素为浮点数,输出所有元素的平均值“OUT_VAL”,如果数组元素为其他数据类型,不执行计算功能。OB1中调用函数的程序如下:
CALL   FC13
In_Data:=P#DB1.DBX0.0 REAL 8
OUT_VAL:=MD20

完成的计算功能相当于MD20=(DB1.DBD0+..+..+DB1.DBD28)/8。在函数(fc13)的接口参数中定义输入,输出变量及临时变量见表

IN       In_Data       ANY    
OUT     OUT_VAL     REAL
TEMP    DATA_LEN    INT     0.0
TEMP    BLOCK_NO   INT      2.0
TEMP    ADD_TEMP    REAL    4.0
TEMP    DATA_NO     INT      8.0


FC13中的示例程序如下:

L       0    //初始化临时变量#ADD_TEMP
T       #ADD_TEMP

L       P##In_Data   //指向存储地址指针In_Data首地址,并装载到地址存储器AR1中
LAR1


问题:将In_Data装载至AR1后,AR1中的32位值分别是多少?AR1中是不是只装载DBX0.0,而DB1和REAL 8不装载至AR1中啊?
望解答

问题补充:
ANY指针格式为10字节的数据,而AR1为4字节的数据,any数据装载至ar1中只装载any前4字节的信息吗?是这个意思吗?

最佳答案

ar1中存的是any指针的首地址,是一个存储区域的起始地址,这个地址的第0字节是10,第2字节是数据类型,也就是浮点数,第三、四字节为8,第五、六字节为DB1,后边四个字节为dbd0

提问者对于答案的评价:
谢谢了

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

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

相关推荐