S7-300400PLC ANY指针使用详解_第1页
S7-300400PLC ANY指针使用详解_第2页
S7-300400PLC ANY指针使用详解_第3页
S7-300400PLC ANY指针使用详解_第4页
S7-300400PLC ANY指针使用详解_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、ANY 指针讲解  STEP 7以10个字节存储参数类型ANY。当构造类型为ANY的参数时,必须确保所有10个字节都被占用,因为调用块估计参数整个内容的值。例如,如果以字节4指定DB编号,也必须以字节6明确地指定存储器区。     STEP 7管理基本和复杂数据类型的数据与参数类型的数据不同。     数据类型的ANY格式     对于基本和复杂数据类型,STEP 7存储下列数据:· 数据类型· 重复因子&

2、#183; DB编号· 信息存储的存储区域· 数据的起始地址  重复因子识别由参数类型ANY传送的指示数据类型的数量。这意味着可以指定数据区,也可以和参数类型ANY结合使用数组和结构。STEP 7将数组和结构识别为数据类型的编号(借助重复因数)。例如,如果要传送10个字,必须为重复因子输入数值10,并且必须为数据类型输入数值04。     地址以格式Byte.Bit存储,此处字节寻址存储在字节7的位0 - 2,节字8的位0 - 7,节字9的位3 - 7。位地址存储在字节9的位0 - 2。 

3、60;   对于类型NIL的空指针,所有来自字节1的字节设置为0。    下表给出参数类型ANY的数据类型或存储区域的编码。 数据类型的编码 十六进制代码数据类型描述b#16#00NIL空指针b#16#01BOOL位b#16#02BYTE字节(8位)b#16#03CHAR字符(8位)b#16#04WORD字(16位)b#16#05INT整数(16位)B#16#06DWORD字(32位)b#16#07DINT双整数(32位)b#16#08REAL浮点数(32位)b#16#09DATE日期b#16#0ATIM

4、E_OF_DAY (TOD)时间b#16#0BTIME时间b#16#0CS5TIME数据类型S5TIMEb#16#0EDATE_AND_TIME (DT)日期和时间(64位)b#16#13STRING字符串 存储器区的编码 十六进制代码区域描述b#16#80PI/O区域b#16#81I输入区域b#16#82Q输出区域b#16#83M位存储区域b#16#84DB数据块b#16#85DI背景数据块b#16#86L本地的数据(L堆栈)b#16#87V先前的本地数据参数类型的ANY格式    对于参数类型,STEP 7存储数据类型和参数的地址

5、。重复因子始终是1。字节4、5和7始终是0。字节8和9指示定时器、计数器或块的编号。 下表为参数类型显示参数类型ANY的数据类型编码。十六进制代码数据类型描述b#16#17BLOCK_FBFB编号b#16#18BLOCK_FCFC编号b#16#19BLOCK_DBDB编号b#16#1ABLOCK_SDBSDB编号b#16#1CCOUNTER计数器编号b#16#1DTIMER定时器编号 使用参数类型ANY    可以为适合于任何数据类型的实际参数的块定义形式参数。当调用块是未知或可以改变时(和当允许任何数据类型时),已提供了实际参数的数

6、据类型时,这尤其有用。在块的变量声明中,可以声明参数为数据类型ANY。然后可以在STEP 7中分配任何数据类型的实际参数。        STEP 7为ANY数据类型的变量分配存储器的80个位。如果分配实际参数给此形式参数,STEP 7在80个位中编码起始地址、数据类型和实际参数的长度。调用块为ANY参数分析保存数据的80个位,并获取进一步处理所需的信息。分配实际参数给ANY参数     如果为参数声明数据类型ANY,可以分配任何数据类型的实际参数给形式参数。在ST

7、EP 7中,可以指定下列数据类型为实际参数:· 基本数据类型:指定实际参数的绝对地址或符号名称。· 复杂数据类型:指定复杂数据类型的数据符号名称(例如,数组和结构)。· 定时器、计数器和块:指定编号(例如,T1、C20或FB6)。· 下图说明数据如何传送到具有ANY数据类型参数的FC。     在此实例中,FC100具有三个参数(in_par1、in_par2和in_par3),声明为ANY数据类型。· 当FB10调用FC100时,FB10传送一个整数(静态变量speed)、一个字(MW100)

8、和一个双字到DB10 (DB10.DBD40)。· 当FB11调用FC100时,FB11传送一个实数数组(临时变量"Thermo")、一个布尔值(M 1.3)和一个定时器(T2)。为ANY参数指定数据区    不仅可以分配各个地址(例如,MW100)给ANY参数,而且可以指定数据区。如果希望指定数据区为实际参数,使用下列常数格式指定要传送的数据总量:        p# 区域标识符 Byte.Bit 数据类型

9、0;重复因数    对于数据类型元素,可以为常数指定所有基本数据类型和数据类型DATE_AND_TIME的格式。如果数据类型不是BOOL,必须指定位地址0 (x.0)。下表为指定要传送的存储区域给ANY参数的格式的实例。实际参数描述p# M 50.0 BYTE 10指定字节存储区域中的10个字节:MB50到MB59。p# DB10.DBX5.0S5TIME 3指定数据类型S5TIME的数据的3个单元,它们位于DB10:DB字节5到DB字节10。p# Q 10.0 BOOL 4在输出区指定4个位Q 10.0到Q 10.3.主题:西门子S7-300指针学习记

10、录一、Step7寻址方式1 直接寻址直接寻址就是我们对要使用的编程地址的直接调用,这里我们又可以把直接寻址分为绝对地址寻址和符号寻址两种方式。在我们编程过程中大部分的运用都是直接寻址的运用,间接寻址通常我们只会应用在少数控制比较复杂牵扯到算法的程序的编写中。1) 绝对地址寻址绝对地址寻址就是对我们编程要使用的控制点位的直接调用,例如I0.0、Q0.0、MW102) 符号寻址通常情况下我们在编写程序之前为了方便都会给每个点位在符号表中进行定义,这样我们在编写程序的过程中,就可以直接使用我们已经定义的符号名进行编程,比如我们把I0.0定义为电机启动信号,符号名为I_Motor_Start。那么我们

11、编程的过程中就可以直接使用I_Motor_Start这个便于记忆的符号名,而不用去使用I0.0这个点位的绝对地址,这样的方法我们就称之为符号寻址。2 间接寻址1) 指针说到间接寻址我们必须要先掌握一个概念那就是指针。要了解指针的概念我们就必须要了解指针的两个特性存储性和指向性。存储性:存储性指的是指针也是一段存储空间,它的存储内容是地址。指向性:因为指针存放的内容是地址,那么指针中存放的是哪一个地址,我们就说指针指向了 这个地址所对应的存储空间,这就是指针的指向性。通过这样的解释大家可能对指针还不是十分理解,相信大家都有过住旅店的经历,那么我们就可以把指针的这两个特性和我们住店要用到的房卡联系

12、到一起进行讲解,让大家对指针有一个充分的理解。  当我们去旅店住宿的时候前台都会给我们一张房卡,这张房卡中就存储了我们即将要入住的房间的号码,对于PLC来说PLC中的存储空间就像旅店中的房间一样,指针就是这些房间的房卡,当房卡中更改了存放的房号后,房卡就会指向不同的房间,同理当修改指针中的内容的时候该指针也会指向PLC中不同存储空间。所以说正是因为指针存储的是PLC存储空间的编号,所以指针有了指向性。二、16位与32位指针  1 16位指针寻址1) 16位指针存储空间16位指针存储空间是16位,2个字节,通过这2个字节的空间来存放变量的地址。2) 16位

13、指针寻址范围16位指针只能对计时器(T)、计数器(C)、数据块(DB、DI)的号,程序块(FB、FC)的号进行寻址,也就是这两个字节的存储空间中只能存放计时器的编号、计数器的编号、数据块的编号、程序块的编号。3) 16位指针寻址格式16位指针寻址表示格式为:区域标示符16位存储空间示例:DB MW0 /表示对DB块进行寻址,MW0中如果存储的是1,那么该寻址结果为DB1,也就是通过该指令找到了DB1数据块。T MW2 /表示对计时器进行寻址,MW2中如果存放的是2,那么该寻址结果为T2,也就是通过该指令找到了计时器T2。4) 16位指针寻址程序示例例1L 2 /将2进行装载T MW 0 /将2

14、传送到MW0A I 0.0 /如果I0.0 = TrueL S5T#10S /装载时间SD T MW0 /T开始计时例2L 1 /将1进行装载T MW 0 /将1传送到MW0OPN DB MW 0 /打开DB1L 10 /将10进行装载T DBW 0 /将10传送到DB1.DBW0中L DBW 0 /将DB1.DBW0进行装载T MW 2 /将DB1.DBW0传送到MW2中2 32位指针寻址1) 32位指针存储空间32位指针存储空间是32位,4个字节,通过这四个字节的空间来存放变量的地址。2) 32位指针寻址范围32位指针能对I、Q、M、L、数据块的位、字节、字、双字进行寻址。3) 32位指针

15、存储格式4) 32位指针寻址格32位指针寻址表示格式为: 地址存储器标示符32位地址指针5) 32位指针寻址示例例1当MD0中存储的是33的时候IMD0指向I4.1例2L 32 /对32进行装载T MD 20 /将32传送到MD20L 48 /对48进行装载T MD 24 /将48传送到MD24L 10 /对10进行装载T MW MD 20 /将10传送到mw4L 15 /对15进行装载T MW MD 24 /将15传送到MW6L MW MD 20 /装载MW4L MW MD 24 /装载MW6+I /MW4+MW6T MW 10 /将MW4+MW6的结果存放在MW10例3

16、L P#10.0 /装载P#10.0T MD 0 /将P#10.0传送到MD0L P#12.0 /装载P#12.0T MD 4 /将P#12.0传送到MD4L MW MD 0 /装载MW10L MW MD 4 /装载MW12+I /MW10+MW12T MW 14 /将MW10+MW12的结果存放到MW14三、寄存器间接寻址 在S7-300PLC中有两个专门存放地址的寄存器AR1和AR2通过这两个寄存器进行寻址的方式我们称之为寄存器间接寻址1 内部区域寄存器间接寻址1) 存储格式交叉区域寄存器间接寻址在地址寄存器中的排列可分为三个区域,分别是存储位信息的区域,存储字节、字、双字信息区

17、域,和无效区域。2) 寻址格式地址存储器标示符AR1/AR2,P#X在内部区域寄存器间接寻址中,地址存储器标示符表示的是要寻址的所在的区域,如M区、I区、Q区,AR1/AR2表示指针自身所占用的存储空间是AR1(地址寄存器1)或者AR2(地址寄存器2),P#X表示偏移量,表示在地址寄存器中地址的基础上进行偏移的幅度。3) 程序示例例1LAR1 P#2.0 /装载地址2.0到AR1L MW AR1,P#0.0 /装载MW2L MW AR1,P#2.0 /装载MW4+I /MW2+MW4T MW AR1,P#4.0 /将加法结果存放到MW62 交叉区域寄存器间接寻址1) 存储格式交叉区域寄存器间接

18、寻址在地址寄存器中的排列可分为五个区域,分别是存储位信息的区域,存储字节、字、双字信息区域,存储区域地址标示符信息区域,交叉区域指针标识位和无效区域。此处我们需要将区域地址标识位和相对应的地址信息向大家一一列举如图 2-2所示2) 寻址格式访问宽度AR1/AR2,P#X在内部区域寄存器间接寻址中,访问宽度表示寻址数据的长度W表示长度是字D表示长度是双字,AR1/AR2表示指针自身所占用的存储空间是AR1(地址寄存器1)或者AR2(地址寄存器2),P#X表示偏移量,表示在地址寄存器中地址的基础上进行偏移的幅度。此处需要注意由于地址寄存器中已经包含区域标识符信息所以在寻址时只需要访问宽度信息,不需

19、要区域标识符信息,具体使用方法参照下面例子。3) 程序示例例1LAR1 P#M 12.0 /装载M12.0到地址寄存器1L W AR1,P#0.0 /装载MW12L W AR1,P#2.0 /装载MW14+I /MW12+MW14T W AR1,P#4.0 /将结果存放到MW16四、Pointer参数类型 1 Pointer参数类型概念Pointer参数类型主要是在交叉区域寄存器间接寻址存储方式上变化而来的,当我们对数据块(DB、DI)进行寻址的时候地址寄存器AR1或者AR2是没有空间来存放数据块编号的,因此我们需要更大的48位的空间来对数据块进行寻址,这就是Pointer参数类型的

20、由来,图 1-1所示为交叉区域寄存器间接寻址的储存格式,由图 1-2可以看出Pointer参数类型要比交叉区域寄存器间接寻址的指针多出一个字的空间,这个空间就是专门存放数据块编号信息。当寻址为全局数据块DB时地址标识位的内容为100如图 1-3所示,当寻址为背景数据块DI时地址标识位的内容为101如图 1-4所示。2 Pointer参数类型详解图 2-1至图 2-3所示程序的作用是将DB1.DBX0.0偏移2.0后的字的空间存放整数100也就是给DB1.DBW2赋值100,本身程序非常简单,也没有什么实际意义,但是从这个程序中大家必须搞清楚两个问题,第一图 2-3中红框中的地址V21.0是什么

21、意思。第二Pointer参数类型是48位存储空间的指针,48位的空间到底位于PLC的哪个存储区。只要我们把这两个问题搞懂了,就可以说对Pointer参数类型彻底搞懂了。1) V21.0的含义很多人看见V就会联想到S7-200PLC的V区,实际上在S7-300中出现的这个V区和S7-200的V区是没有任何关系的,在Step 7中对V区的解释是之前的本地数据那么这个之前的本地数据就应该指的是主调程序中的本地数据L区,拿本程序举例,那么FC1中出现的V21.0指的就是OB1中的L21.0。2) Pointer48位指针的存储位置上面我们已经分析出来FC1中的V21.0实际指的就是OB1中的L21.0因此我们可以判定Pointer参数类型的48位指针就是存放在OB1的L区中并且起始地址就是L21

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论