当前位置: 主页 > PLC控制

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

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

最佳答案

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

提问者对于答案的评价:
对于LAR1P##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指针。

  • 关注微信

猜你喜欢

微信公众号