我读到一段程序,其中有一句是:
程序 数据类型 监控初值 对应关系
L P##PDB_L2 pointer 87000080
我问87000080到底是什么类型的数据,等于10进制多少,“阿鸣”大师说表示对L区域寻址,87000080是1000 0111 0000 0000 0000 0000 1000 0000 为L128.0。而“我心飞翔”资深顾问说是87000080表示V16.0,我查找到的资料是“87”表示对V区寻址, 87000080到底是10进制多少,我没找到资料,请问,他们谁说的是真的呢?为什么?
问题补充:
以下是我查到的资料,我不知道87000080是不是符合这样划定区域的(资料来自于西门子网站链接):
16进制代码 数据区 简单描述
B#16#86 L 区域数据
B#16#87 V 上一级赋值的区域数据
我的邮箱是:13477738647@163.com,如果阿鸣大师愿意的话,请用邮箱回复,我把这个项目的文件传给你,请你完整地看看。谢谢。
最佳答案
1、有关资料:
、《关于S7-300和S7-400指针寻址的说明与例程(更新版)》下载:
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
2、再重复一遍:
、AR:
1000 0YYY 0000 0BBB BBBB BBBB BBBB BXXX
里的第31bit被固定为1,同时,第24、25、26位有了可以取值的范围。
26、25、24位 :当是对L区域寻址时,AR=870xxxxx。
、再看其他位:
0000 0000 0000 0BBB BBBB BBBB BBBB BXXX
当作为双字指针时,就应该按照3-18bit指定byte,0-2bit指定bit来确定最终指令要操作的地址,因此:
1000 0111 0000 0000 0000 0000 1000 0000 为L16.0。
注意3-18bit为十六进制的10,即十进制的16。
3、如果我在你的答案中写为128,可能是笔误,抱歉。只要你掌握了上述的格式,自己会判断出正确与否。
提问者对于答案的评价:
我的邮箱是:13477738647@163.com,如果阿鸣大师愿意的话,请用邮箱回复,我把这个项目的文件传给你,请你完整地看看。谢谢。
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc218885.html