技术论坛

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

返回主题列表
作者 主题
空果仁
侠圣

经验值: 4927
发帖数: 210
精华帖: 47
楼主    2020-03-04 12:33:31
主题:【2】16位地址指针——从S7-300_400到S7-1500看变址寻址的改变系列故事之二 精华帖 

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系列故事之三

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

来自西门工业子技术支持 高级专家
木头515
侠圣

经验值: 2157
发帖数: 254
精华帖: 0
3楼    2020-03-05 07:47:22
主题:回复:从S7-300_400到S7-1500看变址寻址的改变-2

 研究的思路值得学习,有成长方法。

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