当前位置: 主页 > PLC控制

stl语句中有一句L PID[#adress]不是很懂。。。

STl语句中有一句LPID[#adress]不是很懂。。。

ASs='html_titleimg_p' style='text-align:center;'>

问题补充:
不好意思,问题没有问全啊,这段程序全部:
L#PID_start
ITD
SLW3
T#adress
LPID[#adress]
T#Buffer
(其中PID_start为模拟量输入的地址)这段程序中我理解adress应该为这个模拟量的数值是这样吗?如果是的话后面的LPID[#adress]该如何解释?多谢

最佳答案

由于楼主的问题补充,这个问题的答案完全要重新作答:
1、首先建议系统看看下述资料,以便清楚了解有关间接寻址的方法:
、《关于S7-300S7-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
2、针对问题补充:
首先要了解32位指针的格式规定:
32bit的结构:其0-2bit,指定bit位,3-18bit指定byte字节。其第31bit固定为0。 即: 
  AR:  0000000000000BBBBBBBBBBBBBBBBXXX  
  这样规定,就意味着AR的取值只能是:0.0——65535.7  
  例如:当AR=D4(hex)=00000000000000000000000011010100(b),实际上就是等于26.4。
3、楼主给出的程序:
L#PID_start//取#PID_start表示的数值。例如,256。
ITD//转换为32位双字
SLW3//右移3位,注意!这就是要形成上述的32位指针的格式(即0000000000000BBBBBBBBBBBBBBBBXXX)。例如形成了256.0。
T#adress//将上述的32位指针地址存入#adress中
LPID[#adress]//按adress中的地址取数,例如就是取PID256的值
T#Buffer//存入结果。
总之,一个常数要想形成地址指针必须右移3位,形成指针的0000000000000BBBBBBBBBBBBBBBBXXX格式。

提问者对于答案的评价:
谢谢,讲解的挺细

专家置评

已阅,最佳答案正确。

  • 关注微信

猜你喜欢

微信公众号