找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
你可以认为是指针的指针,常用于向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-300和S7-400寻址
https://support.industry.siemens.com/cs/document/79632832
SIMATIC S7-300和S7-400编程的语句表
https://support.industry.siemens.com/cs/document/109751814
如果下面有这么用的
L MB[#Punt,p#0.0],好像是这样用法,记不很清楚了,这个就是把MB100里面的数据加载到累加器1里面
因为#Punt,是100.0,P#0.0是便宜地址,设的是0,前面MB已经强制限定为M存储区,就是加载MB100了
这是间接寻址的内容,关于间接寻址可以参考:
间接寻址
http://www.ad.siemens.com.cn/productportal/Prods/published/Prog/Prog_2.4/Prog_2.4.html
西门子STL间接寻址常问问题集
https://support.industry.siemens.com/cs/cn/zh/view/76492353
使用间接寻址编写循环程序
https://support.industry.siemens.com/cs/cn/zh/view/19345564
如何使用间接寻址访问I/O地址区,当使用SFC20时应注意什么?
https://support.industry.siemens.com/cs/cn/zh/view/22783999
功能与实例:搜索最小/最大值(从站指针)并平均
https://support.industry.siemens.com/cs/cn/zh/view/16772536
用ANY指针进行平均值运算
https://support.industry.siemens.com/cs/cn/zh/view/19345299
手册:
SIMATIC 用STEP 7 V5.5 编程 手册
https://support.industry.siemens.com/cs/cn/zh/view/45531107
604页 27.3.4.2 参数类型POINTER的格式
也有详细的介绍
补充:
不管什么区域,意思是一个意思啊,反正就是#_InverterStatus这个变量所在的存储区域的地址。
根据你的截图
L p###_InverterStatus,那指向的就是L0.0这个地址
T #Punt,#Punt这里面存储的就是L0.0这个地址信息
在下面有
L PIW[#PuntInput]
T LW[#Punt],这个#punt在上面有个加了P#2.0,这时候地址就是L0.0+L2.0,变成L2.0了
这两句的意思,如果#PuntInput里面的数是512,那就相当于
L PIW512
T LW2
不知道你能看明白不....
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!