STL语言中的第一句 LAR1 P##Source 是什么意思?

LAR1这条指令我看了帮助文件,是将ACCU1内容装载到地址寄存器AR1中,我的疑问在于LAR1后面不跟任何东西,但在标题中的语句中LAR1后面却跟了 P##Source(其中#Source为ANY类型),这条语句到底是什么意思呢?

最佳答案

可能你看到的语句表程序是从SCL转换过来的,在STL的编程里都是这么写的:
L  P##Source
LAR1  
程序的意思是将Source里指针数据传递给地址寄存器里里,如果是ANY指针的话,包括了数据的类型,数据的长度,DB块号和指针地址的信息;一般还要进行以下的应用:
L    W[AR1,P#2.0]
T    LW0          //数据长度
L    W[AR1,P#4.0]
T    LW2        //DB块号
L    D[AR1,P#6.0]
T    LD4           //地址指针
 https://support.industry.siemens.com/cs/document/79632832/s7-300和s7-400寻址?dti=0&lc=zh-CN

提问者对于答案的评价:
对于 LAR1  P##Source这条语句,#Source是局部临时变量,而P#后面不是应该是比如P#26.2或者P#M26.2这种格式的吗?那就是说#Source代表的是26.2或者M26.2,而#Source是ANY类型的,那是不是就可以认为ANY格式可以“变成”指针格式?但在ANY帮助文件里ANY格式没有“变成”指针格式的啊。。?

最佳答案作者回复:
链接里的资料有说明,可以看下。我的理解是P#就是取指针地址的,ANY指针包含的信息还是比较多的,一个比较经典的使用就是利用ANY指针实现两个DB块数据的数据的拷贝;比如,写一个FC块,IN数据里定义两个ANY指针,在调用这个FC块的时候,赋值给IN定义的两个ANY指针。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月10日 下午9:21
下一篇 2017年6月10日 下午9:21

相关推荐