L P##…是什么意思

语句表
L  P##_InverterStatus
T   #Punt
这个P##看不懂了。

问题补充:
这个指针是在TEMP区的结构数据

图片说明:

L  P##…是什么意思   

最佳答案

你可以认为是指针的指针,常用于向FC、FB传递  ANY、或 POINTER 指针类型的参数。 
以传递 ANY 类型参数为例:下面的截取的一段程序,出自第一个链接《西门子STL间接寻址常问问题集》1.5如何在程序中使用ANY 型指针?
L   P##Input     //指向存储地址指针Input首地址
                        //这个参数是一个Any类型,P##Input指向参数Input的值所在
                        //地址,这就是指针的指针
LAR1              //装载到地址寄存器AR1中。
L    W [AR1,P#4.0]
                //为了打开DB块,取数据块号
                // 由Any类型结构知道Any类型的Byte4、Byte5存放的数据块号
T     #BLOCK_NO
OPN   DB [#BLOCK_NO]  //如果是DB块,打开指定的DB块。
L     W [AR1,P#2.0]            //判断ANY指针中数据长度
                                           // Any类型的Byte2、Byte3是重复系数,
                                           //如 P#DB1.DBX0.0 Byte 8后面的Byte 8
_001:T             #DATA_LEN                     //通常此处做loop循环!!
L                 D [AR1,P#6.0]                         //找出需要计算数据区的开始地址
// Any类型Byte6~Byte9是32位区域地址
理解Pointer、Any的类型的数据结构,对于正确使用指针有很大帮助。
为正确使用指针,应仔细阅读如下内容:
"SIMATIC Programming with STEP 7 V5.5" 05/2010 第27.3.4章 参数类型
《西门子STL间接寻址常问问题集》
https://support.industry.siemens.com/cs/document/76492353
另外结合间接寻址手册中 ANY 类型的数据结构,以及STL 指令手册
S7-300S7-400寻址
https://support.industry.siemens.com/cs/document/79632832
SIMATIC S7-300和S7-400编程的语句表
https://support.industry.siemens.com/cs/document/109751814

提问者对于答案的评价:
额看明白了。以前只用P#这样的指针。
这段程序,应该是将PIW3500,3502,3504的值赋值给接口区TEMP下的LW0,LW2,LW4

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月30日 下午11:36
下一篇 2020年10月30日 下午11:36

相关推荐