程序 数据类型 监控初值 对应关系
L 0 int 0
T #RET_Ual_receive int 0
L #iLADDR int 160 变频器I地352
L 8
+I 168
T #Startadr word 168
L DBNO 0
T #Rett_DB word 0
LAR2 P##APrec Any 0
L P##PDB_L2 pointer 87000080
LAR1 87000080
L D[AR1,P#2.0] 84000000
我一直以来都没有搞清楚“L P##PDB_L2 pointer 87000080”的监控初值等于 “87000080”是什么意义,而“L D[AR1,P#2.0] 84000000 ” 的监控初值却是 “84000000”,好困惑,希望得到大侠指导,谢谢!
最佳答案
1、 87000080”的监控初值等于 “87000080”是什么意义?
、首先弄清:0000 0000 0000 0BBB BBBB BBBB BBBB BXXX
其0-2bit,指定bit位,3-18bit指定byte字节。例:当AR=D4(hex)=0000 0000 0000 0000 0000 0000 1101 0100(b),实际上就是等于26.4。
、再弄清:
在区域间寄存器间接寻址中,由于要寻址的区域也要在AR中指定,
AR的数据形式:
1000 0YYY 0000 0BBB BBBB BBBB BBBB BXXX
AR内容,用HEX表示的话,那么就有:
当是对P区域寻址时,AR=800xxxxx
当是对I区域寻址时,AR=810xxxxx
当是对Q区域寻址时,AR=820xxxxx
当是对M区域寻址时,AR=830xxxxx
当是对DB区域寻址时,AR=840xxxxx
当是对DI区域寻址时,AR=850xxxxx
当是对L区域寻址时,AR=870xxxxx
、综上所述: 87000080是1000 0111 0000 0000 0000 0000 1000 0000 为L128.0。
、L P##PDB_L2
LAR1
即将L128.0存入AR1中。
2、84000000为DBX0.0.。
3、建议看看下述资料就全明白了:
、《关于S7-300和S7-400指针寻址的说明与例程(更新版)(2008.03.04) 》下载:
http://www.ad.siemens.com.cn/download/searchResult.aspx?searchText=F0215
、《step7编程之地址概念详解》连接:
http://ishare.iask.sina.com.cn/f/22746895.html
http://www.gongkong365.com/bbs/job.php?action=download&aid=96
、《西门子STL间接寻址常问问题集》
http://www.ad.siemens.com.cn/download/docMessage.aspx?
ID=6175&loginID=&srno=&sendtime=
提问者对于答案的评价:
解释的让人服气,之所以有程序问题4,就是因为其他的解释版本让我更糊涂了。非常谢谢!
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc220024.html