从西门子网站下下来的资料中有这样一段程序和解释:
L P#20.0 //将地址指针P#20.0装载到MD24中。
T MD24
L 320 //320转换指针为P#40.0并装载到MD28中。
T MD28
我的问题是:1、“L 320 ” 中的这个320是什么进制的数,是怎么转换为P#40.0的?
2、指针是32位的,P#40.0不是超界了吗?
3、如果320是常数,转换为指针应该左移的,这里没有左移,能说明不是常数吗?
最佳答案
1. 320是十进制的数;是怎么转换为P#40.0的?这个与指针的定义和P#指令有关,简单来说,就是320乘以8, 表示40个字节
2.指针是32位的,P#40.0不是超界了吗?指针是32位的,表示这个类型的指针共占了32个位,4个字节,两个字;而不是只能代表32个字节;
3.如果320是常数,转换为指针应该左移的,这里没有左移,能说明不是常数吗?这里呢,编程时就考虑了要40个字节的变量提前做了乘以8个计算,
也可以写成
L 40
SLW 3
楼主不妨看看:S7-300和S7-400寻址
https://support.industry.siemens.com/cs/document/79632832/s7-300和s7-400寻址?dti=0&lc=zh-CN
提问者对于答案的评价:
谢谢。我所举例就是西门子网站的寻址的学习内容。不知道是不是笔误,你里面说是320乘以8,是不是应该为320除以8。其次,装载了320怎么去理解为转换为了指针呢?
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc187948.html