S7300400PLC ANY指针使用详解Word文档下载推荐.docx

上传人:b****2 文档编号:832883 上传时间:2023-04-29 格式:DOCX 页数:24 大小:1.84MB
下载 相关 举报
S7300400PLC ANY指针使用详解Word文档下载推荐.docx_第1页
第1页 / 共24页
S7300400PLC ANY指针使用详解Word文档下载推荐.docx_第2页
第2页 / 共24页
S7300400PLC ANY指针使用详解Word文档下载推荐.docx_第3页
第3页 / 共24页
S7300400PLC ANY指针使用详解Word文档下载推荐.docx_第4页
第4页 / 共24页
S7300400PLC ANY指针使用详解Word文档下载推荐.docx_第5页
第5页 / 共24页
S7300400PLC ANY指针使用详解Word文档下载推荐.docx_第6页
第6页 / 共24页
S7300400PLC ANY指针使用详解Word文档下载推荐.docx_第7页
第7页 / 共24页
S7300400PLC ANY指针使用详解Word文档下载推荐.docx_第8页
第8页 / 共24页
S7300400PLC ANY指针使用详解Word文档下载推荐.docx_第9页
第9页 / 共24页
S7300400PLC ANY指针使用详解Word文档下载推荐.docx_第10页
第10页 / 共24页
S7300400PLC ANY指针使用详解Word文档下载推荐.docx_第11页
第11页 / 共24页
S7300400PLC ANY指针使用详解Word文档下载推荐.docx_第12页
第12页 / 共24页
S7300400PLC ANY指针使用详解Word文档下载推荐.docx_第13页
第13页 / 共24页
S7300400PLC ANY指针使用详解Word文档下载推荐.docx_第14页
第14页 / 共24页
S7300400PLC ANY指针使用详解Word文档下载推荐.docx_第15页
第15页 / 共24页
S7300400PLC ANY指针使用详解Word文档下载推荐.docx_第16页
第16页 / 共24页
S7300400PLC ANY指针使用详解Word文档下载推荐.docx_第17页
第17页 / 共24页
S7300400PLC ANY指针使用详解Word文档下载推荐.docx_第18页
第18页 / 共24页
S7300400PLC ANY指针使用详解Word文档下载推荐.docx_第19页
第19页 / 共24页
S7300400PLC ANY指针使用详解Word文档下载推荐.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

S7300400PLC ANY指针使用详解Word文档下载推荐.docx

《S7300400PLC ANY指针使用详解Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《S7300400PLC ANY指针使用详解Word文档下载推荐.docx(24页珍藏版)》请在冰点文库上搜索。

S7300400PLC ANY指针使用详解Word文档下载推荐.docx

b#16#01

BOOL

b#16#02

BYTE

字节(8位)

b#16#03

CHAR

字符(8位)

b#16#04

WORD

字(16位)

b#16#05

INT

整数(16位)

B#16#06

DWORD

字(32位)

b#16#07

DINT

双整数(32位)

b#16#08

REAL

浮点数(32位)

b#16#09

DATE

日期

b#16#0A

TIME_OF_DAY(TOD)

时间

b#16#0B

TIME

b#16#0C

S5TIME

数据类型S5TIME

b#16#0E

DATE_AND_TIME(DT)

日期和时间(64位)

b#16#13

STRING

字符串

存储器区的编码

区域

b#16#80

P

I/O区域

b#16#81

I

输入区域

b#16#82

Q

输出区域

b#16#83

M

位存储区域

b#16#84

DB

数据块

b#16#85

DI

背景数据块

b#16#86

L

本地的数据(L堆栈)

b#16#87

V

先前的本地数据

参数类型的ANY格式

对于参数类型,STEP7存储数据类型和参数的地址。

重复因子始终是1。

字节4、5和7始终是0。

字节8和9指示定时器、计数器或块的编号。

下表为参数类型显示参数类型ANY的数据类型编码。

b#16#17

BLOCK_FB

FB编号

b#16#18

BLOCK_FC

FC编号

b#16#19

BLOCK_DB

DB编号

b#16#1A

BLOCK_SDB

SDB编号

b#16#1C

COUNTER

计数器编号

b#16#1D

TIMER

定时器编号

使用参数类型ANY

可以为适合于任何数据类型的实际参数的块定义形式参数。

当调用块是未知或可以改变时(和当允许任何数据类型时),已提供了实际参数的数据类型时,这尤其有用。

在块的变量声明中,可以声明参数为数据类型ANY。

然后可以在STEP7中分配任何数据类型的实际参数。

STEP7为ANY数据类型的变量分配存储器的80个位。

如果分配实际参数给此形式参数,STEP7在80个位中编码起始地址、数据类型和实际参数的长度。

调用块为ANY参数分析保存数据的80个位,并获取进一步处理所需的信息。

分配实际参数给ANY参数

如果为参数声明数据类型ANY,可以分配任何数据类型的实际参数给形式参数。

在STEP7中,可以指定下列数据类型为实际参数:

∙基本数据类型:

指定实际参数的绝对地址或符号名称。

∙复杂数据类型:

指定复杂数据类型的数据符号名称(例如,数组和结构)。

∙定时器、计数器和块:

指定编号(例如,T1、C20或FB6)。

∙下图说明数据如何传送到具有ANY数据类型参数的FC。

在此实例中,FC100具有三个参数(in_par1、in_par2和in_par3),声明为ANY数据类型。

∙当FB10调用FC100时,FB10传送一个整数(静态变量speed)、一个字(MW100)和一个双字到DB10(DB10.DBD40)。

∙当FB11调用FC100时,FB11传送一个实数数组(临时变量"

Thermo"

)、一个布尔值(M1.3)和一个定时器(T2)。

为ANY参数指定数据区

不仅可以分配各个地址(例如,MW100)给ANY参数,而且可以指定数据区。

如果希望指定数据区为实际参数,使用下列常数格式指定要传送的数据总量:

p# 

区域标识符 

Byte.Bit 

数据类型 

重复因数

对于数据类型元素,可以为常数指定所有基本数据类型和数据类型DATE_AND_TIME的格式。

如果数据类型不是BOOL,必须指定位地址0(x.0)。

下表为指定要传送的存储区域给ANY参数的格式的实例。

实际参数

p#M50.0BYTE10

指定字节存储区域中的10个字节:

MB50到MB59。

p#DB10.DBX5.0S5TIME3

指定数据类型S5TIME的数据的3个单元,它们位于DB10:

DB字节5到DB字节10。

p#Q10.0BOOL4

在输出区指定4个位

Q10.0到Q10.3.

主题:

西门子S7-300指针学习记录

一、Step7寻址方式

1直接寻址

直接寻址就是我们对要使用的编程地址的直接调用,这里我们又可以把直接寻址分为绝对地址寻址和符号寻址两种方式。

在我们编程过程中大部分的运用都是直接寻址的运用,间接寻址通常我们只会应用在少数控制比较复杂牵扯到算法的程序的编写中。

1)绝对地址寻址

绝对地址寻址就是对我们编程要使用的控制点位的直接调用,例如I0.0、Q0.0、MW10

2)符号寻址

通常情况下我们在编写程序之前为了方便都会给每个点位在符号表中进行定义,这样我们在编写程序的过程中,就可以直接使用我们已经定义的符号名进行编程,比如我们把I0.0定义为电机启动信号,符号名为I_Motor_Start。

那么我们编程的过程中就可以直接使用I_Motor_Start这个便于记忆的符号名,而不用去使用I0.0这个点位的绝对地址,这样的方法我们就称之为符号寻址。

2间接寻址

1)指针

说到间接寻址我们必须要先掌握一个概念那就是指针。

要了解指针的概念我们就必须要了解指针的两个特性存储性和指向性。

存储性:

存储性指的是指针也是一段存储空间,它的存储内容是地址。

指向性:

因为指针存放的内容是地址,那么指针中存放的是哪一个地址,我们就说指针指向了这个地址所对应的存储空间,这就是指针的指向性。

通过这样的解释大家可能对指针还不是十分理解,相信大家都有过住旅店的经历,那么我们就可以把指针的这两个特性和我们住店要用到的房卡联系到一起进行讲解,让大家对指针有一个充分的理解。

当我们去旅店住宿的时候前台都会给我们一张房卡,这张房卡中就存储了我们即将要入住的房间的号码,对于PLC来说PLC中的存储空间就像旅店中的房间一样,指针就是这些房间的房卡,当房卡中更改了存放的房号后,房卡就会指向不同的房间,同理当修改指针中的内容的时候该指针也会指向PLC中不同存储空间。

所以说正是因为指针存储的是PLC存储空间的编号,所以指针有了指向性。

二、16位与32位指针

116位指针寻址

1)16位指针存储空间

16位指针存储空间是16位,2个字节,通过这2个字节的空间来存放变量的地址。

2)16位指针寻址范围

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位指针寻址程序示例

例1

L2//将2进行装载

TMW0//将2传送到MW0

AI0.0//如果I0.0=True

LS5T#10S//装载时间

SDT[MW0]//T开始计时

例2

L1//将1进行装载

TMW0//将1传送到MW0

OPNDB[MW0]//打开DB1

L10//将10进行装载

TDBW0//将10传送到DB1.DBW0中

LDBW0//将DB1.DBW0进行装载

TMW2//将DB1.DBW0传送到MW2中

232位指针寻址

1)32位指针存储空间

32位指针存储空间是32位,4个字节,通过这四个字节的空间来存放变量的地址。

2)32位指针寻址范围

32位指针能对I、Q、M、L、数据块的位、字节、字、双字进行寻址。

3)32位指针存储格式

4) 

32位指针寻址格

32位指针寻址表示格式为:

地址存储器标示符[32位地址指针]

5) 

32位指针寻址示例

当MD0中存储的是33的时候I[MD0]指向I4.1

L32//对32进行装载

TMD20//将32传送到MD20

L48//对48进行装载

TMD24//将48传送到MD24

L10//对10进行装载

TMW[MD20]//将10传送到mw4

L15//对15进行装载

TMW[MD24]//将15传送到MW6

LMW[MD20]//装载MW4

LMW[MD24]//装载MW6

+I//MW4+MW6

TMW10//将MW4+MW6的结果存放在MW10

例3

LP#10.0//装载P#10.0

TMD0//将P#10.0传送到MD0

LP#12.0//装载P#12.0

TMD4//将P#12.0传送到MD4

LMW[MD0]//装载MW10

LMW[MD4]//装载MW12

+I//MW10+MW12

TMW14//将MW10+MW12的结果存放到MW14

三、寄存器间接寻址

在S7-300PLC中有两个专门存放地址的寄存器AR1和AR2通过这两个寄存器进行寻址的方式我们称之为寄存器间接寻址

1内部区域寄存器间接寻址

1)存储格式

交叉区域寄存器间接寻址在地址寄存器中的排列可分为三个区域,分别是存储位信息的区域,存储字节、字、双字信息区域,和无效区域。

2)寻址格式

地址存储器标示符[AR1/AR2,P#X]

在内部区域寄存器间接寻址中,地址存储器标示符表示的是要寻址的所在的区域,如M区、I区、Q区,AR1/AR2表示指针自身所占用的存储空间是AR1(地址寄存器1)或者AR2(地址寄存器2),P#X表示偏移量,表示在地址寄存器中地址的基础上进行偏移的幅度。

3)程序示例

LAR1P#2.0//装载地址2.0到AR1

LMW[AR1,P#0.0]//装载MW2

LMW[AR1,P#2.0]//装载MW4

+I//MW2+MW4

TMW[AR1,P#4.0]//将加法结果存放到MW6

2交叉区域寄存器间接寻址

交叉区域寄存器间接寻址在地址寄存器中的排列可分为五个区域,分别是存储位信息的区域,存储字节、字、双字信息区域,存储区域地址标示符信息区域,交叉区域指针标识位和无效区域。

此处我们需要将区域地址标识位和相对应的地址信息向大家一一列举如图2-2所示

访问宽度[AR1/AR2,P#X]

在内部区域寄存器间接寻址中,访问宽度表示寻址数据的长度W表示长度是字D表示长度是双字,AR1/AR2表示指针自身所占用的存储空间是AR1(地址寄存器1)或者AR2(地址寄存器2),P#X表示偏移量,表示在地址寄存器中地址的基础上进行偏移的幅度。

此处需要注意由于地址寄存器中已经包含区域标识符信息所以在寻址时只需要访问宽度信息,不需要区域标识符信息,具体使用方法参照下面例子。

LAR1P#M12.0//装载M12.0到地址寄存器1

LW[AR1,P#0.0]//装载MW12

LW[AR1,P#2.0]//装载MW14

+I//MW12+MW14

TW[AR1,P#4.0]//将结果存放到MW16

四、Pointer参数类型

1Pointer参数类型概念

Pointer参数类型主要是在交叉区域寄存器间接寻址存储方式上变化而来的,当我们对数据块(DB、DI)进行寻址的时候地址寄存器AR1或者AR2是没有空间来存放数据块编号的,因此我们需要更大的48位的空间来对数据块进行寻址,这就是Pointer参数类型的由来,图1-1所示为交叉区域寄存器间接寻址的储存格式,由图1-2可以看出Pointer参数类型要比交叉区域寄存器间接寻址的指针多出一个字的空间,这个空间就是专门存放数据块编号信息。

当寻址为全局数据块DB时地址标识位的内容为100如图1-3所示,当寻址为背景数据块DI时地址标识位的内容为101如图1-4所示。

2Pointer参数类型详解

图2-1至图2-3所示程序的作用是将DB1.DBX0.0偏移2.0后的字的空间存放整数100也就是给DB1.DBW2赋值100,本身程序非常简单,也没有什么实际意义,但是从这个程序中大家必须搞清楚两个问题,第一图2-3中红框中的地址V21.0是什么意思。

第二Pointer参数类型是48位存储空间的指针,48位的空间到底位于PLC的哪个存储区。

只要我们把这两个问题搞懂了,就可以说对Pointer参数类型彻底搞懂了。

1)V21.0的含义

很多人看见V就会联想到S7-200PLC的V区,实际上在S7-300中出现的这个V区和S7-200的V区是没有任何关系的,在Step7中对V区的解释是之前的本地数据那么这个之前的本地数据就应该指的是主调程序中的本地数据L区,拿本程序举例,那么FC1中出现的V21.0指的就是OB1中的L21.0。

2)Pointer48位指针的存储位置

上面我们已经分析出来FC1中的V21.0实际指的就是OB1中的L21.0因此我们可以判定Pointer参数类型的48位指针就是存放在OB1的L区中并且起始地址就是L21.0,由于是48位的空间所以Pointer参数类型的48位指针占用的就是OB1中的L21.0到L26.7共48位空间,其中LB21和LB22是存放DB块编号信息的,LB23~LB26是存放地址信息的。

五、ANY参数类型

1ANY参数类型概念

在Pointer参数类型中我们已经告诉大家Pointer参数类型是基于交叉区域寄存器间接寻址发展而来的,由于交叉区域寄存器间接寻址无法存放数据块编号信息,所以我们为了可以对数据块进行寻址,在交叉区域寄存器间接寻址的存储空间中增加了一个字的空间来存放数据块编号信息,但是这样也只能一次寻址一个存储区域,如果我们想对连续的几个存储空间进行寻址比如对MW0、MW2、MW4一起进行寻址,无论是寄存器寻址还是Pointer参数类型都是无法完成的。

此时我们引进ANY参数类型,ANY参数类型在Pointer参数类型的基础上又增加了两个字的存储空间。

ANY参数类型中第0字节是ANY参数类型的标识位,无论何时只要是ANY参数类型第0字节就是16进制的10。

第1字节是数据类型信息,确定每个存储空间的数据类型,图1-4是每种数据类型对应的16进制代码,第2第3字节重复因子表示由几个存储空间构成的这段指针。

2ANY参数类型举例

下面我们用P#DB1.DBX0.0WORD3这个ANY类型指针来给大家具体举例,首先我们要明确指针P#DB1.DBX0.0WORD3是由DB1.DBW0、DB1.DBW2、DB1.DBW4、三个连续的存储空间构成同时这三个存储空间的数据类型是WORD。

3程序示例

首先要告诉大家我们这个程序的功能是将ANY指针规定的空间的数值相加求和。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2