故事作者:空果仁

最近创作

看看TA的故事

【2】16位地址指针——从S7-300_400到S7-1500看变址寻址的改变系列故事之二

已锁定

空果仁

官方工程师 西门子1847工业学习平台

  • 帖子

    210
  • 精华

    47
  • 被关注

    326

论坛等级:侠圣

注册时间:2011-07-11

普通 普通 如何晋级?

【2】16位地址指针——从S7-300_400到S7-1500看变址寻址的改变系列故事之二

12914

10

2020-03-04 12:33:31

star star star

1. 存储器间接寻址

        顾名思义,存储器间接寻址就是将指针存储于存储器中。存储于存储器中的地址指针分为16位地址指针和32位地址指针,允许存储地址指针的存储器为M(标志位)、L(区域数据)及数据块(DB或DI),过程影像区是不能存储地址指针的,即使没有连接实际的I/O模块。

1.1 存储器16位地址指针

        16位地址指针用于定时器、计数器、程序块(DB、FC、FB)的寻址,16位指针被看作一个无符号整数(取值范围0~65535),它指向定时器(T)、计数器(C)、数据块(DB、DI)或程序块(FB、FC)的号,16位指针的格式如图2。






图2

        所有的定时器、计数器及程序块都可以使用间接寻址访问,访问时需要使用T、C、DB、DI、FB、FC的等区域标识符,寻址的指针存储于一个16位的字中,地址寻址表示格式为:  

区域标识符[16位地址指针]

        例如打开一个DB块表示为:



        使用16位地址指针访问一个定时器和计数器的示例程序如下:

      L     11                //将11传送到累加器1中。

      T     MW    20                 //将累加器1中的数值传送到MW20中。

      A     I      2.1                  //如果I2.1为1,将预置值10秒装载到T11中。

      L     S5T#10S

      SE    T [MW 20]

      L     MW    20

      L     1

      +I   

      T     MW    22                   //MW20再加1。

      A     I      2.2                    //如果I2.2为1,C12向上计数一次。

      CU    C [MW 22]

        数据块可以使用DB打开也可以使用DI打开,如果地址指针为0,CPU不会报错,使用16位地址指针访问数据块的示例程序如下:

      L     20

      T     MW    40

      OPN   DB [MW 40]                      //打开DB20。

      L     1

      +I   

      T     MW    42

          OPN   DI [MW 42]             //打开DI 21。

          L     DBW20               //装载DB20.DBW20

L     DIW20                //装载DB21.DBW20

 

+I                          //相加

T     DBW40              //结果存储于DB20.DBW40中

 

        使用16位地址指针调用程序块FB、FC时只能使用UC(无条件调用)或CC(有条件调用),而不能使用CALL指令,函数块中不能带有任何接口参数或静态变量,使用指针调用函数及函数块的示例程序如下:

      L     12

      T     LW    20

      UC    FC [LW 20]         //无条件调用FC12

      L     13

      T     MW    20

      A     I      2.3

      CC    FB [MW 20]                        //如果I2.3为1,调用FB13。

 

        FC12和FB13不能带有形参,这是由CC和UC调用指令决定的。

       上面就是16位地址指针应用的简单介绍。假设一个控制对象需要使用两个定时器,有20个相同的控制对象,那么我们想一个如何使用16位地址指针进行循环调用?


-----------------------------------------------------------------------------------------------------------

上一篇:【1】看变址寻址的改变——从S7-300_400到S7-1500系列故事之一

下一篇:【3】16位地址指针使用示例——从S7-300/400到s7-1500系列故事之三

汇总帖:技术Π活动故事、视频与案例分享汇总

【2】16位地址指针——从S7-300_400到S7-1500看变址寻址的改变系列故事之二 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

西家技术派

共有64条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。