• 理解西门子PLC间接寻址和指针


    学习PLC,我们必须熟悉PLC各存储器的符号、地址,我们日常所说的西门子PLC地址,都是直接寻址,如I2.2,MB20、VW34等,表面说它是各存储器的地址,实际表示是它的数据,如VW34是50,VW34可直接参加运算,VW34+20=VW34,这时VW34的数据就变成了70。

    PLC应用时,我们所说的各地址,实际目的是说它的数据是多少或什么状态。

    而间接寻址,是各存储器背后的实际地址,是一开始设计好的,就像人的姓名与身份证号一样,用姓名和身份证号都可找到同一个人。用实际的地址指向VW34,就可以取出它的数据70,这就是间接寻址。

    200SmartPLC 规定是存储器符号前加“&”符号,来取得它的地址,如&MB10,以“双字”的格式来取它的地址。如下图

    轻松理解西门子PLC间接寻址和指针

    取MB10实际地址到VD504,这时VD504就是地址指针

    这样,就把MB10的实际地址以双字格式,存入了VD504,这时VD504内就代表了MB10的实际地址,同时VD504就代表了M区的地址指针。也就是说把VD504定义成了M区的一个地址指针.。

    怎样取出这个地址所指的MB10内的数据呢,PLC规定,是把VD504前加“*”号,来取出它的数据,这时“*VD504“就表示是MB10,

    因此*VD504就是MB10,*VD504=MB10。

    通过以下实测来说明:

    轻松理解西门子PLC间接寻址和指针

     

    轻松理解西门子PLC间接寻址和指针

     

    可以看出:&IB10=VD500=16#0000000A

    &MB10=VD504=16#0200000A

    &VB10=VD508=16#0800000A

    以上是它们的实际地址,A---就是十进制10,,

    我们要注意:【VD504+10】,与【*VD504+10】含义是不一样,前者是地址加10,表示这时的指针地址指向了MB20,而后者是表示MB内的数据再加10.

    如状态表:

    轻松理解西门子PLC间接寻址和指针

    表中表示VB的 各初始值

    轻松理解西门子PLC间接寻址和指针

    VB10地址到VD508,

    如上图VB10=1,V区指针定义成了VD508,这时的VD508 就是VB10的地址,

    把它的值取出来*VD508与VB10比较,如下图可看出*vd508=VB10=1

    轻松理解西门子PLC间接寻址和指针

     

    如果执行以下程序2次,VD508+1+1=VD508,这时地址是16#0800000C,指针从VB10就指向了VB12,它的数据*VD508=VB12=3.如下图

    轻松理解西门子PLC间接寻址和指针

     

    通过以上实验,如果大批取数据或改变数据,我们就通过指针变址的方法,多次或循环执行以下程序,就可达到所要的目的。

    轻松理解西门子PLC间接寻址和指针

     

    下次试验说明FOR指令与指针的用法。

  • 相关阅读:
    备忘
    跨域问题思考
    个人理解的Lambda表达式的演化过程
    MySql 事务与锁
    Python连接MySQL
    将python虚拟环境移植到无法联网的电脑
    PyQt5+QtDesigner+fbs+python创建桌面程序
    Pycharm+Anaconda安装及配置
    一个极好的JavaScript学习网址
    Python GUI工具Tkinter以及拖拉工具Page安装
  • 原文地址:https://www.cnblogs.com/laoxiongzhijia/p/14433982.html
Copyright © 2020-2023  润新知