P指针问题

看别人程序里发现对指针上面有点不懂。
里面有语句
L P#50.0
LAR1
L P#M50.0
LAR2 
等类似的语句的,不知道L  P#50.0 和L P#M50.0 的具体区别是什么
执行之类的语句后AR1,AR2里面的值是多少了?

最佳答案

首先,你必须明白SIEMENS PLC 里面的间接寻址的用法。
在SIEMENS PLC 里面间接寻址大概分为3类用法。存取器间接寻址,区域内寄存器间接寻址和区域间寄存器间接寻址。
比如L MW[MD0] 就是存储器间接寻址。L MW[AR1,P#0.0]就是 区域内寄存器间接寻址,L W[AR1,P#0.0]就是区域间寄存器间接寻址

首先AR1和MD0 都是32位指针,里面类容既包括了 地址信息页包括了寻址的区域信息,地址寄存器的类容如下
区域类型+地址 具体请查看STEP7里的帮助文件(比如你可以搜索POINTER 找到POINTER 和ANY 类型里面就有关于指针和存储区域的说明
b#16#80     P            I/O area
 b#16#81      I         Input area
 b#16#82    Q         Output area
 b#16#83     M       Bit memory area
 b#16#84    DB      Data block
 b#16#85   DI       Instance data block
 b#16#86     L        Local data (L stack)
 b#16#87     V       Previous local data

然后就是P指针,P#50.0  就是一个指针常数。
你程序里面 L P#50.0  LAR1 指令执行后 AR1 类容为 16#xx000190 (xx代表不相干)
                           L P#M50.0 LAR1 指令执行后 AR1类容里除了地址信息 还多了区域信息16#83000190
比如 你要把 MB50 移到 MB100中去你 可以用三种方法实现
1:存取器寻址
L 50
SLD 3
T MD0
L MB[MD0]
T MB100
2:区域内寄存器间接寻址
L P#50.0
LAR1
L MB[AR1,P#0.0]
T MB100 
3:区域间寄存器间接寻址
L P#M50.0
LAR1
L B[AR1,P#0.0]  //注意由于AR1 里面包含了区域M的信息 所以可以省略M直接以B[AR1,P#0.0}
T MB100 
希望你能明白些了。

图片说明:

P指针问题  

提问者对于答案的评价:

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc200226.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年10月29日 下午11:25
下一篇 2017年10月29日 下午11:25

相关推荐

  • 关于opc items

    我在一台计算机上建立了1个opc服务器,并建立了50个标签,每个标签都有别名,现在在另外一台计算机上要从新建立opc服务器,如何将原来的标签i,tems导入到现在的服务器上。现在只…

    自动化系统综合 2021年7月5日
  • wincc flexible 2008 谁有库文件

    新安装的wincc flexible 2008(SP4),发现没有库。作画面的时候好不痛苦!求高人指点迷津,在哪能找到库,或下载到库。 最佳答案 打开wincc…

    自动化系统综合 2018年12月6日
  • CP5611版本问题

    原来有块CP5611卡,版本是2.2,现在能买到的是3.0版本的,不知道是否可以完全替代,谢谢 最佳答案 可以完全替代。 提问者对于答案的评价:谢谢!

    自动化系统综合 2020年11月1日
  • 安装s7300编程软件后,还能在安装s7200吗

    安装s7300编程软件后,还能在安装s7200吗 最佳答案 当然可以!我的安装顺序一般是的step7–>wincc–>simatic net,最后安装ST…

    自动化系统综合 2017年11月13日
  • wincc 二进制触发脚本动作

    wincc 二进制变量触发脚本动作是置1的时候执行还是有跳变就执行?谢谢 最佳答案 有跳变时执行脚本。 提问者对于答案的评价:又专门建了个内部变量试了下,呵呵 专家置评 …

    自动化系统综合 2018年12月6日
  • TP700怎样显示带符号的整数

    西门子TP700触摸屏与三菱FX3G通信,IO域显示不了PLC里面数据寄存器D的负数 问题补充:解决方法,把TP7000 的IO域数据格式改为REAL浮点数,三菱PLC里…

    自动化系统综合 2017年10月31日
  • wincc运行启动缓慢

    我装了WINCCV6.0和相关具体的程序,但激活WINCC时运行到TAG LOGGING RUNTIME 时WINCC就如同死了一样,运行不下去了,进…

    自动化系统综合 2020年10月31日
  • 西门子PLC在液位三冲量控制

    大家好,我需要西门子PLC在锅炉液位中三冲量控制的梯形图,谢谢!我的邮箱qfdq288@163.com 最佳答案 http://www.ad.siemens.com.cn/serv…

    自动化系统综合 2017年11月13日
  • S7-300软冗余系统与DCS 通讯问题

    以前做过一个300站点和DCS的DP通讯,没有做过软冗余系统,现在做软冗余系统的和DCS的DP通讯有以下疑问:1、DCS可以和冗余系统进行DP通讯吗?2、如果能做,是不是按非冗余系…

    2017年6月1日
  • 模拟量I/O与数字量I/O

    模拟量I/O与数字量I/O有什么区别,接线方式有什么不同,PLC运行的时候怎么传送的 最佳答案 1、模拟量I/O与数字量I/O有什么区别?连接这个文档,这个文档描述的较详细:htt…

    自动化系统综合 2020年10月31日