第3章s7-300指令系统_第1页
第3章s7-300指令系统_第2页
第3章s7-300指令系统_第3页
第3章s7-300指令系统_第4页
第3章s7-300指令系统_第5页
已阅读5页,还剩282页未读 继续免费阅读

下载本文档

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

文档简介

1、第3章 西门子S7-300系列PLC基本指令系统第3章S7-300系列PLC编程语言与编程语言与基本指令系统3.1 编程语言编程语言3.2 指令及其结构指令及其结构3.3 位逻辑指令位逻辑指令3.4 定时器与计数器指令定时器与计数器指令3.5 数据处理功能指令数据处理功能指令3.6 数据运算指令数据运算指令3.7 控制指令控制指令思考与练习题思考与练习题第3章 西门子S7-300系列PLC基本指令系统3.1 s7-300/400编程语言编程语言3.1.1 PLC编程语言的国际标准IEC(国际电工委员会)是为电子技术制定全球标准的世界性组织,IEC61131是PLC的国际标准。它由5部分组成:通

2、用信息、设备要求和测试、编程语言、用户指南、通信服务规范。其中IEC61131-3是PLC的编程语言标准。STEP7 是s7-300/400系列PLC编程软件,软件包中配备了三种基本编程语言1.梯形图(LAD)2. 语句表(STL)3.功能块图(FBD)除此之外,选件包里提供了一些更高级的编程语言4.顺序功能图(SFC):对应于西门子的s7 Graph,用来编制顺序控制程序。5.结构文本(ST):是一种专用的高级语言,类似于PASCAL和C,适合于复杂计算任务和最优化算法。第3章 西门子S7-300系列PLC基本指令系统6. S7 HiGraph编程语言使用状态图来描述异步、非顺序过程的编程语

3、言。系统被分为几个功能单元,每个单元呈现不同状态,各功能单元的同步信息可以在图形之间交换,需要为不同之间的切换定义转换条件,用类似于语句表的语言描述指定状态的动作和状态之间的转换条件。7. S7 CFC(Continuous Funtion Chart )编程语言以图形方式连接程序库中以块的形式提供的各种功能,包括从简单的逻辑操作到复杂的闭环和开环控制等领域。编程时将这些块拷贝到图中并用线连接起来。第3章 西门子S7-300系列PLC基本指令系统编程语言编程语言用户类用户类应用应用语句表(STL)愿意用类似于机器码语言编程的用户程序在运行时间和存贮空间要求上最优梯形图(LAD)习惯电路图的用户

4、编写逻辑控制程序功能图(FBD)熟悉布尔代数逻辑图的用户编写逻辑控制程序SCL(结构控制语言)可选软件包用高级语言。如PASCAL或C语言编程的用户数据处理任务程序S7 Graph(顺序控制)可选软件包有技术背景,没有PLC编程经验的用户以顺序过程的描述很方便S7 HiGraph(状态图形)可选软件包有技术背景,没有PLC编程经验的用户以异步非顺序过程的描述很方便CFC(连续功能图)可选软件包有技术背景,没有PLC编程经验的用户适用于连续过程的描述第3章 西门子S7-300系列PLC基本指令系统3.1.2 STEP7 编程语言的程序结构为了容易阅读和理解,程序常常被分成若干部分。我们称之为块。

5、程序包括用户块和系统块。3-1第3章 西门子S7-300系列PLC基本指令系统背景DB共享DBFB/SFB背景DBFB/SFBOB操作系统FC/SFCFC/SFC共享DB块的调用关系如下:第3章 西门子S7-300系列PLC基本指令系统系统启动过程中,CPU动态工作过程上电初始化程序 OB100刷新过程映刷新过程映像输入表像输入表主程序主程序OB1刷新过程映刷新过程映像输出表像输出表注:对于数字量模块不一定要进行硬件注:对于数字量模块不一定要进行硬件组态,而对于模拟量模块一定要进行硬件组态,而对于模拟量模块一定要进行硬件组态。组态。第3章 西门子S7-300系列PLC基本指令系统数据类型决定了

6、你以什么方式或格式理解或访问存储区中的数据。基本数据类型:定义不超过32位的数据 复式数据类型:定义超过32位或由其它数据类型组成的数据数据类型 参数类型:定义传给FB块和FC块的参数3.1.3 数据类型第3章 西门子S7-300系列PLC基本指令系统1. 基本数据类型基本数据类型见表常数的表示可以是字节、字、或双字,也可以是十进制、十六进制ASCII或浮点数形式表示。如B#16#FF, W#16#FFFF,DW#16#FFFF_FFFF,2#1101_1010, L#+5 (32位双整数)P#为地址指针常数,如P#M2.0 是M2.0的地址S5T#aD_bH_cM_dS_eMS, a,b,c

7、,d,e分别是日、小时、分、秒、毫秒的数值,时间增量是10MS。C#为计数器的常数(BCD码),如C#250B(b1,b2) 、B(b1,b2,b3,b4)分别用来表示2B、4B常数。第3章 西门子S7-300系列PLC基本指令系统数据类型描述常用符号举例表 基本数据类型BOOL位TRUE,FALSEBYTE字节B#16#FFCHAR 字符AWORD 字W#16#FFFF,2#1111_1111_1111_1111, C#999, B(255,255)DWORD 双字DW#16#FFFF_FFFFF, B(255,255,255,255)INT DINT16位定点数32位定点数REAL S5T

8、IME浮点数S5格式时间值TIME DATEIEC格式时间值日期TIME_OF_DAY时间日期1位8位8位16位32位16位32位32位16位32位16位32位-32768+32767-2 147 483 648+2 147 483 6471.234E+02S5T#0ms, S5TIME #2h46m30s (最大值)T# -24d20h31m23s6ms ,TIME#24d20h31m23s6msD#1990_01_01 ,Date #2089_12_31TOD#00:00:00:000 ,TIME_OF_DAY#23:59:59.999第3章 西门子S7-300系列PLC基本指令系统2.复

9、合数据类型(1)数组(ARRAY)将同一类型的数据合成一组,形成一个单元。(2)结构(STRUCT)将不同类型的数据合成一组,形成一个单元。(3)字符串(STRING) 将多个字符(CHAR)组成一维数组,形成字符串。(4)其它日期和时间类型、用户定义的数据类型UDT。其中UDT类型在FB块中也常常使用。3. 参数类型参数类型为逻辑块之间传递形参而设定的。(1)TIMER和COUNT,如T3,C21(2)BLOCK,如FB,第3章 西门子S7-300系列PLC基本指令系统()POINTER(指针)指针指向一个变量的地址,即用地址作实参,如p#m50.0是指向M50.0双字地址指针。 (4)AN

10、Y 用于实参的数据类型未知或实参可以使用任意数据类型的情况。占用10B,如p#DB1.DBX0.0 BYTE 30,表示DB1中以0地址为起始地址的30个字节。4.1.3 CPU的存储区装载存储器工作存储器RAM 系统存储器RAM动态装载存储器RAM可保持的装载存储器FEPROM用户程序,如逻辑块,数据块位存储器,定时器,计数器局部数据堆栈,块堆栈中断堆栈,中断缓冲区过程映像I/O表第3章 西门子S7-300系列PLC基本指令系统 装载存储器装载存储器是是RAM和和FEPROM,用于保存不包含地址和注释的用户程序和系统数据(组态、连接和模块参数等)。有的CPU有集成装载存储器,有的可以用微存储

11、卡(MMC)来扩展。断电时数据保存在MMC存储器中,因此数据块的内容基本上被永久保存。下载程序时,用户程序(逻辑块和数据块)被下载到CPU的装载存储器中,CPU把可执行的部分复制到工作存储器,符号表和注释保存在编程设备中。工作存储器工作存储器是集成的高速存取的RAM存储器,用于存储CPU运行时的用户程序和数据,如组织块、功能块、功能、数据块。复位CPU的存储器时,RAM中的程序被清除,FEPROM中的程序不会被清除。系统存储器系统存储器为用户提供的存储器组件,被划分为若干个地址区域,如过程映像输入I、过程映像输出Q、位存储器M、定时器T、计数器C、块堆栈(B堆栈)、中断堆栈(I中断)和诊断缓冲

12、区等。第3章 西门子S7-300系列PLC基本指令系统外设I/O存储区输出输入位存储区定时器计数器CPU利用外设(P)存储区直接读/写总线上的模块这些系统存储区的大小由CPU的型号决定可执行用户程序:逻辑块(OB、FB、FC)数据块(DB)临时本地数据存储区(L堆栈)PQIMTC系统存储区工作存储区累加器 1(ACCU1)累加器 2(ACCU2)累加器32位地址寄存器 1(AR1)地址寄存器32位地址寄存器 2(AR2)可选的固定装载存储区(FEPROM):存放用户程序装载存储区打开的共享数据块号 DB32位状态位状态字寄存器16位动态装载存储区(RAM):存放用户程序数据块地址寄存器打开的背

13、景数据块号 DB(DI)S7-300 PLC存储区存储区图 S7- 300存储区示意图第3章 西门子S7-300系列PLC基本指令系统表表 程序可访问的存储区及功能程序可访问的存储区及功能名 称 存储区 存储区功能 输入(I) 过程输入映像表 扫描周期开始,操作系统读取过程输入值并录入表中,在处理过程中,程序使用这些值。每个 CPU 周期,输入存储区在输入映像表中存放输入状态值。输入映像表是外设输入存储区首 128 B 的映像 输出(Q) 过程输出映像表 在扫描周期中,程序计算输出值并存储在该表中;在扫描周期结束后,操作系统从表中读取输出值,并传送到过程输出口。过程输出映像表是外设输出存储区的

14、首 128 B 的映像 位存储区(M) 存储位 存放程序运算的中间结果 外设输入(PI) 外设输出(PQ) I/O:外设输入 I/O:外设输出 外设存储区允许直接访问现场设备(物理的或外部的输入和输出),外设存储区可以以字节、字和双字格式访问,但不可以以位方式访问 定时器(T) 定时器 为定时器提供存储区,计时时钟访问该存储区中的计时单元,并以减法更新计时值。定时器指令可以访问该存储区和计时单元 计数器(C) 计数器 为计数器提供存储区,计数指令访问该存储区 临时本地数据(L) 本地数据堆栈 (L 堆栈) 在 FB、FC 或 OB 运行时设定,将在块变量声明表中声明的暂时变量存在该存储区中,提

15、供空间以传送某些类型参数和存放梯形图中间结果。块结束执行时,临时本地存储区再行分配,不同的 CPU提供不同数量的临时本地存储区 数据块(DB) 数据块 存放程序数据信息,可被所有逻辑块公用(“共享”数据块)或被FB 特定占用“背景”数据块 第3章 西门子S7-300系列PLC基本指令系统3.2 指令及其结构指令及其结构3.2.1 指令的组成指令的组成 1. 语句指令语句指令语句指令用助记符表示PLC要完成的操作。指令:操作码操作数操作码用来指定要执行的功能,告诉该进行什么操作;操作数内包含为执行该操作所必需的信息,告诉用什么地方的数据来执行此操作。例如:A I 1.0该指令是一条位逻辑操作指令

16、,其中:“A”是操作码,它表示执行“与”操作;“I 1.0”是操作数,它指出这是对输入继电器I 1.0进行的操作。第3章 西门子S7-300系列PLC基本指令系统 有些语句指令不带操作数。它们操作的对象是惟一的,故为简便起见,不再特别说明。例如:NOT /是对逻辑操作结果(RLO)取反SET /把RLO置1。第3章 西门子S7-300系列PLC基本指令系统 2. 梯形逻辑指令梯形逻辑指令 梯形逻辑指令用图形元素表示PLC要完成操作。在梯形逻辑指令中,其操作码是用图素表示的,该图素形象表明CPU做什么,其操作数的表示方法与语句指令相同。如:例如: 该梯形图中:( )可认为是操作码,表示一个二进制

17、赋值操作。Q 0.0是操作数,表示赋值的对象。 梯形逻辑指令也可不带操作数。 |NOT| 是对逻辑操作结果取反的操作。 第3章 西门子S7-300系列PLC基本指令系统4.2.2 操作数操作数 1. 标识符及标识参数标识符及标识参数主标识符(操作数存放的存储器的区域): I、Q、PI、PQ、M、T、C、L、DB 辅助标识符 (操作数的位数长度):X、B、W、D 标识符 标识参数 (操作数在该存储区域内的具体位置) 操作数 注释:注释: I:输入过程映像存储区 Q:输出过程映像存储区 PI:外部输入 PQ:外部输出M:位存储区 T:定时器 C:计数器 L:本地数DB:数据X:位B:字W:D:双字

18、注意:注意:PLC物理存储器是以字节为 单位的。当操作数长度是字或双字时,标识符后给出的标识参数是字或双字内的最低字节单元号。 当使用宽度是字或双字的地址时,应保证没有生成任何重叠的字节分配,以免造成数据读写错误。第3章 西门子S7-300系列PLC基本指令系统一般情况下,指令的操作数在PLC的存储器中,此时操作数由操作数标识符和参数组成。操作数标识符告诉处理器操作数放在存储器的哪个区域及操作数位数;标识参数则进一步说明操作数在该存储区域内的具体位置。 操作数标识符由主标识符和辅助标识符组成。主标识符表示操作数所在的存储区,辅助标识符进一步说明操作数的位数长度。若没有辅助标识符指操作数的位数是

19、一位。第3章 西门子S7-300系列PLC基本指令系统 主标识符有:I(输入过程映像存储区),Q(输出过程映象存储区),M(位存储区),PI(外部输入),PQ(外部输入),T(定时器),C(计数器),DB(数据块),L(本地数据);辅助标识符有:X(位),B(字节),W(字2字节),D(双字4字节)。 PLC物理存储器是以字节为单位的,所以存储单元规定为字节单元。位地址参数用一个点与字节地址分开。如:M 10.1 当操作数长度是字或双字时,标识符后给出的标识参数是字或双字内的最低字节单元号。图3.1给出了字节、字、双字的相互关系及表示方法。当使用宽度为字或双字的地址时,应保证没有生成任何重叠的

20、字节分配,以免造成数据读写错误。第3章 西门子S7-300系列PLC基本指令系统图3.1 以字节单元为基准标记存储器存储单元位 7 6 5 4 3 2 1 0 MB 10 10.7 10.1 10.0 MB 11 MW 10 MB 12 MW 11 MB 13 MW 12 MD 10 MB 14 位存储区M第3章 西门子S7-300系列PLC基本指令系统表表3.2 存储区及其功能存储区及其功能 区域名称 区域功能 访问区域的单位 标识符 最大地址范围 输入过程映像存储区 (I) 在循环扫描的开始, 操作系统从过程中读取输入信号存入本区域,供程序使用 输入位 输入字节 输入字 输入双字 I IB

21、 IW ID 065 535.7 065 535 065 534 065 532 输入过程映像存储区 (Q) 在循环扫描期间、 程序运算得到的输出值存入本区域。 在循环扫描的末尾, 操作系统从中读出输出值并将其传送至输出模板 输出位 输出字节 输出字 输出双字 Q QB QW QD 065 535.7 065 535 065 534 065 532 位存储器 (M) 本区域提供的存储器用于存储在程序中运算的中间结果 存储器位 存储器字节 存储器字 存储器双字 M MB MW MD 0255.7 0255 0254 0252 外部输入 (PI) 外部输出 (PQ) 通过本区域, 用户程序能够直接

22、访问输入和输出模板(即外部输入和输出信号) 外部输入字节 外部输入字 外部输入双字 外部输出字节 外部输出字 外部输出双字 PIB PIW PID PQB PQW PQD 065 535 065 534 065 532 065 535 065 534 065 532 第3章 西门子S7-300系列PLC基本指令系统定时器(T) 定时器指令访问本区域可得到定时剩余时间 定时器(T) T 0255 计数器(C) 计数器指令访问本区域可得到当前计数器值 计数器(C) C 0255 数据块(DB) 本区域包含所有数据块的数据。 如果需要同时打开两个不同的数据块,可用“OPN DB”打开一个,用“OPN

23、 DI”打开另一个。用指令L DBWi和L DIWi进一步确定被访问数据块中的具体数据,在用“OPN DI”指令打开一个数据时,打开的是与功能块(FBs)和系统功能块(SFBs)相关联的背景数据块 用 “OPN DB” 打开数据块: 数据位 数据字节 数据字 数据双字 用 “OPN DI” 打开数据块: 数据位 数据字节 数据字 数据双字 DBX DBB DBW DBD DIX DIB DIW DID 065 535.7 065 535 065 534 065 532 065 535.7 065 535 065 534 065 532 本地数据(L) 本区域存放逻辑块(OB, FB或FC)中使

24、用的临时数据, 也称为动态本地数据。 一般用作中间暂存器。当逻辑块结束时,数据丢失, 因为这些数据是存储在本地数据堆栈(L堆栈)中的 临时本地数据位 临时本地数据字节 临时本地数据字 临时本地数据双字 L LB LW LD 065 535.7 065 535 065 534 065 532 表表3.2 存储区及其功能存储区及其功能 第3章 西门子S7-300系列PLC基本指令系统2. 操作数的表示法操作数的表示法操作数的表示法 物理地址(绝对地址)符号地址(必须先定义后使用,而且符号名必须是唯一的)关于定义符号地址的几点说明:当你在表中输入符号地址时,应注意以下几点:列列注意注意符号在整个符号

25、表中名字必须唯一。当你确认该区域的输入或退出该区域时,不唯一的符号则被标定出来。符号名最长可达24个字符。引号(“”)不允许使用。地址当你确认该区域的输入或退出该区域时,程序会自动检查该地址输入是否是允许的。数据类型当你确认或退出地址时,该区域被自动地赋予一个缺省数据类型。如果你修改这个缺省类型,程序会检查你的数据类型是否与地址相匹配。注释你可以输入注释简单地解释该符号的功能(最多80个字符)。第3章 西门子S7-300系列PLC基本指令系统在STEP7中,操作数有两种表示方法:一是物理地址(绝对地址)表示法;二是符号地址表示法。为一个物理地址定义有意义的符号名,可使程序的可读性增强,降低编程

26、时由于笔误而造成的程序错误。 用物理地址表示操作数时,要明确指出操作数的所在存储区,该操作数的位数具体位置。例如:Q 4.0是用物理地址表示的操作数,其中Q表示这是一个在输出过程映像区中的输出位,具体位置是第四个字节的第0位。 STEP7 允许用符号地址表示操作数,如Q 4.0可用符号名MOTOR_ON替代表示,符号名必须先定义后使用,而且符号名必须是惟一的,不能重名。定义符号时,需要指明操作数所在的存储区,操作数的位数、具体位置及数据类型。第3章 西门子S7-300系列PLC基本指令系统3. 局域(块定义)符号和共享符号 共享符号共享符号局域符号局域符号有效性在整个用户程序中有效可以被所有的

27、块使用在所有的块中含义是一样的在整个用户程序中是唯一的只在定义的块有效相同的符号可在不同的块中用于不同的目的允许使用的字符字母、数字及特殊字符。除0X00,0XFF及引号以外的强调号如使用特殊字符,则符号须写出在引号内。字母数字下划线(_)(注意:不允许使用两个连续的下划线)使用你可以为以下各项定义共享符号:I/O信号(I,IB,IW,ID,Q,QB,QW,QD)I/O输入与输出(PI,PQ)存储位(M,MB,MW,MD)定时器(T)/计数器(C)逻辑块(FB,FC,SFB,SFC)数据块(DB)用户定义数据类型(UDT)变量表(VAT)你可以为以下各项定义局域符号:块参数(输入,输出和输入输

28、出参数)块的静态数据块的临时数据在哪里定义符号表块的变量声明表第3章 西门子S7-300系列PLC基本指令系统符号表中定义的符号(共享)显示在引号内。块变量声明表中的符号(局域)显示时前面加上“#”。提示:使用菜单命令ViewDisplaySymbolic Representation,你可以在所有声明的符号地址和绝对地址之间进行切换。第3章 西门子S7-300系列PLC基本指令系统3.2.3 寻址方式寻址方式 操作数是指令的操作或运算对象。所谓寻址方式是指令得到操作数的方式,可以直接给出或间接给出。可用作STEP7指令操作对象的有:常数;S7状态字中的状态位;S7的各种寄存器、数据块;功能块

29、FB,FC和系统功能块SFB,SFC;S7的各存储区中的单元。 S7有四种寻址方式,它们分别是:立即寻址、存储器直接寻址、存储器间接寻址和寄存器间接寻址。立即寻址:操作数本身直角接包含在指令中直接寻址:指令中直接给出操作数的存储单元地址 存储器间接寻址寄存器间接寻址 S7寻址方式第3章 西门子S7-300系列PLC基本指令系统 1. 立即寻址立即寻址 这是对常数或常量的寻址方式。操作数本身直接包含在指令中。有些指令中的操作数是惟一的,为方便起见不再在指令中特别写出。下面是立即寻址的例子:SET /把RLO置1OW W#16#A320 /将常量W#16#A320与累加器1“或”运算L 27 /把

30、整数27装入累加器1L ABCD /把ASCII码字符ABCD装入累加器1L C#0100 /把BCD码常数0100装入累加器1 第3章 西门子S7-300系列PLC基本指令系统 2. 直接寻址直接寻址 包括对寄存器和存储器的直接寻址。在直接寻址的指令中,直接给出操作数的存储单元地址。例如:A I 0.0 /对输入位I 0.0进行“与”逻辑操作S L 20.0 /把本地数据位L 20.0置1= M 115.4 /使存储区位M 115.4的内容等于RLO的内容L IB 10 /把输入字节IB 10的内容装入累加器1T DBD 12 /把累加器1中的内容传送给数据双字DBD 12中第3章 西门子S

31、7-300系列PLC基本指令系统 3. 存储器间接寻址存储器间接寻址 在存储器间接寻址的指令中,给出一个存储器(必须是表3.1中的存储器),该存储器的内容是操作数所在存储单元的地址,该地址又被称为地址指针。存储器间接寻址方式的优点是,当程序执行时,能改变操作数的存储器地址,这对程序中的循环尤为重要。以下是使用存储器双字指针间接寻址的例子: A IMD 2 /对由MD 2指出的输入位进行“与”逻辑操作。如:MD 2的值为 /2#0000 0000 0000 0000 0000 0000 0101 0110,则是对I 10.6进行“与”操作。 = DIXDBD 2 /将RLO赋值给数据位,具体数据

32、由数据双字DBD 2指出。第3章 西门子S7-300系列PLC基本指令系统 L IBDID 4 /将由数据双字DID 4指出的输入字节装入累加器1。如:DID 4的值为2#0000 0000 0000 0000 0000 0000 / 0101 0000,则是对IB 10进行装入操作。 O QLD 3 /对由本地数据双字指出的输出位进行“或”逻辑操作。第3章 西门子S7-300系列PLC基本指令系统 依据要描述的地址复杂程度,地址指针可以是字或双字的,存储指针的存储器大小也应是字的或双字的,由于定时器(T)、计数器(C)、数据块(DB)、功能块(FB或FC)的编号范围在0到65 535之内,所

33、以用字指针就足够了,相应的也只需字存储器存储指针。其它的地址,如:输入位、输出位,则要用到双字指针,并用双字存储器存储指针。指针的两种格式如图3.2所示。如果要用双字格式的指针访问一个字、字节或双字存储器,必须保证指针中的位编号为0。第3章 西门子S7-300系列PLC基本指令系统图3.2 存储器间接寻址的指针格式 15 8 7 0 字指针格式 nnnn nnnn nnnn nnnn 位 0至 15(范围 0至 65535):用于定时器(T)、计数器(C)、数据块(DB)、功能块(FB与 FC)的编号 31 24 23 16 15 8 7 0 双字指针格式 0000 0000 0000 0bb

34、b bbbb bbbb bbbb b 位3至18(范围0至65535):被寻址字节的字节编号 位0至2(范围0至7):被寻址位的位编号第3章 西门子S7-300系列PLC基本指令系统下面的例子显示如何产生字或双字指针并用其寻址:L +5 /将整数+5装入累加器1T MW 2 /将累加器1的内容传送给存储字MW 2,此时MW 2的内容为5OPN DBMW 2 /打开由MW 2指出的数据块,即,打开数据块5L P#8.7 /将2#0000 0000 0000 0000 0000 0000 0100 0111(二进制数)装入累加器1T MD 2 /将累加器1的内容传送给存储字MD 2,此时MD 2的

35、内容为/2#0000 0000 0000 0000 0000 0000 0100 0111L P#4.0 /将2#0000 0000 0000 0000 0000 0000 0010 0000装入累加器1,累/加器1原内容被装入累加器2第3章 西门子S7-300系列PLC基本指令系统+I /将累加器1和累加器2内容相加,在累加器1中得到的“和”为 /2#0000 0000 0000 0000 0000 0000 0110 0111T MD 4 /将累加器1的当前内容传送给存储字MD 4A IMD 2 /对输入位I 8.7进行“与”逻辑操作= QMD 4 /将RLO赋值给输出位Q 12.7第3章

36、 西门子S7-300系列PLC基本指令系统 4. 寄存器间接寻址寄存器间接寻址 在S7中有两个地址寄存器,它们是AR1和AR2。通过地址寄存器,可以对各存储区的存储器内容实现寄存器间接寻址。地址寄存器的内容加上偏移量形成地址指针,该指针指向数值所在的存储单元。第3章 西门子S7-300系列PLC基本指令系统 地址寄存器存储的地址指针有两种格式,其长度均为双字。图3.3给出了这两种格式的细节及其差别。其中,第一种地址指针格式包括被寻址数值所在存储单元地址的字节编号和位编号,至于对哪个存储区寻址,则必须在指令中明确直接给出。这种指针格式适用于在确定的存储区内寻址,即区内寄存器间接寻址。而第二种地址

37、指针格式中还包含了数值所在存储区的说明位(存储区域标志位),这样,就可通过改变这些位,实现跨区寻址,这种指针格式用于区域间寄存器间接寻址。区域标识位的组合状态见表3.2。第3章 西门子S7-300系列PLC基本指令系统图3.3 寄存器间接寻址的指针格式 000 0r r r 0000 0bbb bbbb bbbb bbbb b 31 24 23 16 15 8 7 0位31=0表明是区域内寄存器间接寻址;=1表明是区域间寄存器间接寻址。位24、25和26(r r r):区域标识(见表3.2)位3至18(bbbb bbbb bbbb bbbb):被寻址位的字节编号(范围0至65535)位0至2(

38、):被寻址的位编号(范围0至7)第3章 西门子S7-300系列PLC基本指令系统表表3.3 地址指针区域标识位含义地址指针区域标识位含义区域标识符 存储区 位 26、25 和 24 的二进制内容 P I/O,外设 I/O 000 I 输入过程暂存区 001 Q 输出过程暂存区 010 M 位存储区 011 DBX 共享数据块 100 DIX 背景数据块 101 L 本地数据 111 第3章 西门子S7-300系列PLC基本指令系统 如果要用到寄存器指针格式访问一个字节、字或双字,则必须保证指针中位地址编号为0。下面的例子分别说明如何使用这两种指针格式实现间接寻址:L P#8.6 /将2#000

39、0 0000 0000 0000 0000 0000 0100 0110装入累加器1LAR1 /将累加器1的内容传送至地址寄存器1A IAR1,P#0.0 /地址寄存器1加偏移量结果为2#0000 0000 0000 0000 / / / 0000 0000 0100 0110,指明是对输入位I 8.6进行“与”操作= QAR1,P#4.1 /地址寄存器1加偏移量结果为2#0000 0000 0000 0000 / / / 0000 0000 01100111,指明对输出位Q12.7进行赋值操作L P#8.0 /将2#0000 0000 0000 0000 0000 0000 0100 000

40、0装入累加器1第3章 西门子S7-300系列PLC基本指令系统LAR2 /将累加器1的内容传送至地址寄存器2L IBAR2,P#2.0 /将输入字节IB 10的内容装入累加器1T MWAR2,P#200.0 /将累加器1的内容传送至存储字MW 208L P#I8.7 /将2#1000 0001 0000 0000 0000 0000 0100 0111装入累加器1LAR1 /将累加器1的内容传送至地址寄存器1L P#Q8.7 /将2#1000 0010 0000 0000 0000 0000 0100 0111装入累加器1LAR2 /将累加器1的内容传送至地址寄存器2A AR1,P#0.0 /

41、对输入位I 8.7进行“与”逻辑操作= AR2,P#1.1 /赋值给输出位Q10.0 L P#I8.0 /将输入位I 8.0的双字指针装入累加器1第3章 西门子S7-300系列PLC基本指令系统LAR2 /将累加器1的内容传送至地址寄存器2L P#M8.0 /将存储位M 8.0的双字指针装入累加器1LAR1 /将累加器1的内容传送至地址寄存器1L BAR2,P#2.0 /把输入字节IB 10装入累加器1,输入字节10为8(AR2)加2(偏移量)T DAR1,P#56.0 /把存储双字MD 64装入累加器1,存储双字64为8(AR1)/加56(偏移量)第3章 西门子S7-300系列PLC基本指令

42、系统3.2.4 状态字状态字 状态字用于表示CPU执行指令时所具有的状态。一些指令是否执行或以何方式执行可能取决于状态字中的某些位;执行指令时也可能改变状态字中的某些位;你也能在位逻辑指令或字逻辑指令中访问并检测它们。图3.4显示了状态字的结构。图3.4 状态字的结构 BR CC1 CC0 OS OV OR STA RLO FC 15 9 8 7 6 5 4 3 2 1 0第3章 西门子S7-300系列PLC基本指令系统 (1)首次检测位(FC) 状态字的位0称为首次检测位。若FC位的状态为0,则表明一个梯形逻辑网络的开始,或指令为逻辑串第一条指令。CPU对逻辑串第一条指令的检测(称为首次检测

43、)产生的结果直接保存在状态字的RLO位中,经过首次检测存放在RLO中的0或1被称为首次检测结果。FC位在逻辑串的开始时总是0,在逻辑串指令执行过程中FC位为1,输出指令或与逻辑运算有关的转移指令(表示一个逻辑串结束的指令)将FC清0。 第3章 西门子S7-300系列PLC基本指令系统 (2)逻辑操作结果(RLO) 状态字的位1称为逻辑操作结果RLO(Result of Logic Operation)。该位存储位逻辑指令或算术比较指令的结果。在逻辑串中,RLO位的状态能够表示有关信号流的信息。RLO的状态为1,表示有信号流(通);为0,表示无信号流(断)。可用RLO触发跳转指令。第3章 西门子

44、S7-300系列PLC基本指令系统 (3)状态位(STA) 状态字的位2称为状态位。状态位不能用指令检测,它只是在程序测试中被CPU解释并使用。如果一条指令是对存储区操作的位逻辑指令,则无论是对该位的读与写操作,STA总是与该位的值取得一致;对不访问存储区的位逻辑指令来说,STA没有意义,此时它总被置为1。 (4)或位(OR) 状态字的位3称为或位(OR)。在先逻辑“与”后逻辑“或”的逻辑串中,OR位暂存逻辑“与”的操作结果,以便进行后面的逻辑“或”运算。其它指令将OR位清0。第3章 西门子S7-300系列PLC基本指令系统 (5)溢出位(OV) 状态字的位4称为溢出位,溢出位被置1,表明一个

45、算术运算或浮点数比较指令执行时出现错误(错误:溢出、非法操作、不规范格式)。后面的算术运算或浮点数比较指令执行结果正常的话OV位就被清0。 (6)溢出状态保持位(OS) 状态字的位5称为溢出状态保持位(或称为存储溢出位)。OV被置1时OS也被置1;OV被清0时OS仍保持。所以它保存了OV位,可用于指明在先前的一些指令执行中是否产生过错误。只有下面的指令才能复位OS位:JOS(OS=1时跳转);块调用指令和块结束指令。第3章 西门子S7-300系列PLC基本指令系统 (7)条件码1(CC1)和条件码0(CC0) 状态字的位7和位6称为条件码1和条件码0。这两位结合起来用于表示在累加器1中产生的算

46、术运算或逻辑运算结果与0的大小关系;比较指令的执行结果或移位指令的移出位状态。详见表3.4和表3.5。第3章 西门子S7-300系列PLC基本指令系统表表3.4 算术运算后的算术运算后的CC1和和CC0CC1 CC0 算术运算无溢出 整数算术运算有溢出 浮点数算术运算有溢出 0 0 结果=0 整数加时产生负范围溢出 平缓下溢 0 1 结果0 乘、除时正溢出;加、减时负溢出 正范围溢出 1 1 在除时除数为0 非法操作 表3.5 比较、移位和循环移位、字逻辑指令后的CC1和CC0CC1 CC0 比较指令 移位和循环移位指令 字逻辑指令 0 0 累加器 2=累加器 1 移出位=0 结果=0 0 1

47、 累加器 2=累加器 1 1 0 累加器 2=累加器 1 结果0 1 1 不规范(只用于浮点数比较) 移出位=1 第3章 西门子S7-300系列PLC基本指令系统 (8)二进制结果位(BR) 状态字的位8称为二进制结果位。它将字处理程序与位处理联系起来,在一段既有位操作又有字操作的程序中,用于表示字操作结果是否正确(异常)。将BR位加入程序后,无论字操作结果如何,都不会造成二进制逻辑链中断。在LAD的方块指令中,BR位与ENO有对应关系,用于表明方块指令是否被正确执行:如果执行出现了错误,BR位为0,ENO也为0;如果功能被正确执行,BR位为1,ENO也为1。 在用户编写的FB和FC程序中,必

48、须对BR位进行管理,当功能块正确运行后使BR位为1,否则使其为0。使用STL指令SAVE或LAD指令(SAVE),可将RLO存入BR中,从而达到管理BR位的目的。当FB或FC执行无错误时,使RLO为1并存入BR,否则,在BR中存入0。第3章 西门子S7-300系列PLC基本指令系统3.3 位逻辑指令位逻辑指令 位逻辑指令主要包括位逻辑运算指令、位操作指令和位测试指令,它们可以对布尔操作数(BOOL)的信号映态扫描并完成逻辑操作。逻辑操作结果(RLO)用以赋值、置位、复位布尔操作数,也控制定时器和计数器的运行。第3章 西门子S7-300系列PLC基本指令系统3.3.1 位逻辑运算指令位逻辑运算指

49、令 位逻辑运算指令是“与”(AND)、“或”(OR)、“异或”(XOR)指令及其组合。它对“0”或“1”这些布尔操作数扫描,经逻辑运算后将逻辑操作结果送入状态字的RLO位。l 语句指令 第3章 西门子S7-300系列PLC基本指令系统助记符助记符指令指令指令前指令前RLORLO地址状态地址状态RLORLO结果结果A A与与0 00 01 11 10 01 10 01 10 00 00 01 1ANAN与非与非0 00 01 11 10 01 10 01 10 00 01 10 0O O或或0 00 01 11 10 01 10 01 10 01 11 11 1布尔逻辑串内的真值表(根据下列表可

50、以确定第二条布尔位操作后的RLO)第3章 西门子S7-300系列PLC基本指令系统ONON或非或非 0 00 01 11 10 01 10 01 11 10 01 11 1X X异或异或 0 00 01 11 10 01 10 01 10 01 11 10 0XNXN异或异或非非0 00 01 11 10 01 10 01 11 10 00 01 1第3章 西门子S7-300系列PLC基本指令系统助记符助记符指令指令地址状态地址状态RLORLO结果结果A A与与0 01 10 01 1ANAN与非与非0 01 11 10 0O O或或0 01 10 01 1ONON或非或非0 01 11 10

51、 0X X异或异或0 01 10 01 1XNXN异或非异或非0 01 11 10 0布尔逻辑串开始的真值表 第3章 西门子S7-300系列PLC基本指令系统l 梯形图逻辑指令常开接点(动合触点)元素和参数常闭接点(动断触点)元素和参数第3章 西门子S7-300系列PLC基本指令系统 1. “与与”和和“与非与非”(A,AN)指令指令 逻辑“与”在梯形图里是用串联的触点回路表示的,被扫描的操作数则表示为触点符 号,操作数标在触点上方。如果触点是常开触点(动合触点),则对“1”扫描相应操作数。在PLC中规定:若操作数是“1”,则常开触点“动作”,即认为是“闭合”的;若操作数是“0”,则常开触点“

52、不动作”,即触点仍然打开。如果触点是常闭触点(动断触点),则对“0”扫描相应操作数。在PLC中规定:若操作数是“1”,则常闭触点“动作”,即触点“断开”;若操作数是“0”,则常闭触点“不动作”,即触点仍保持闭合。第3章 西门子S7-300系列PLC基本指令系统 如果串联回路里的所有触点皆闭合,该回路就通“电”了。在图3.5的回路中,如果所有触点闭合,即当输入I 0.0和输出Q 4.1的信号状态都是“1”(触点闭合)、且位存储器M 10.1为“0”(该触点仍保持原闭合位置)时,输出Q 4.0才为“1”;如果有一个或多个触点是打开的,则输出Q 4.0的信号状态就为“0”(继电器触点打开)。 上述梯

53、形逻辑图,可用语句表指令完全表示。对应的语句表为:A I0.0 A Q 4.1AN M10.1 Q4.0 第3章 西门子S7-300系列PLC基本指令系统图3.5 “与”逻辑梯形图 ( )I0.0 Q4.1 M10.1 Q4.0 第3章 西门子S7-300系列PLC基本指令系统 在上面的语句表中,操作数是被依次扫描的,其扫描的结果再逻辑“与”。对信号状态进行“1”扫描,并做逻辑”与”运算,则用助记符“A”来标识,相关的操作数指定了要扫描对象。当操作数的信号状态是“1”时,其扫描结果也是“1”。如果操作数的信号状态是“0”,则扫描结果也是“0”。对信号状态进行“0”扫描,并做逻辑“与”运算,则用

54、助记符“AN”来标识取反的“与”逻辑操作当操作数的信号状态是“0”时,其扫描结果就是“1”。如果操作数的信号状态是“1”,则扫描结果就是“0”。第3章 西门子S7-300系列PLC基本指令系统 在第一条语句里,CPU扫描的是输入I0.0本次扫描也被称为首次扫描。首次扫描的结果被直接保存在RLO(逻辑操作结果)中,在下一条语句中,扫描操作数输出Q 4.1;这次扫描的结果和RLO中保存的上一次结果相“与”,产生的新结果再存入RLO。如此逐一进行,在逻辑序列结束处的RLO可用作进一步处理。例如,用来激励一个输出信号。在上面的语句表中,把RLO的值赋给输出Q 4.0(Q 4.0)。 第3章 西门子S7

55、-300系列PLC基本指令系统 2. “或或”和和“或非或非”(O,ON)指令指令 逻辑“或”在梯形图里是用并联的触点回路表示的,被扫描的操作数标在触点上方。在 触点并联的情况下,若有一个或一个以上的触点闭合,则该回路就“通电”。在图3.6中,驱动信号通过并联触点回路加到输出Q 4.1。只要有一个触点闭合,输出4.1的信号状态就为“l”。如果所有的触点都是打开的,则输出Q 4.1就为“0”。在图3.6中,仅当输入I1.1和输出Q 4.0两者都为“0”,且M2.0为“1”时,输出Q 4.1才为“0”。第3章 西门子S7-300系列PLC基本指令系统图3.6 “或”逻辑梯形图 I1.1 M2.0

56、Q4.0 ( )Q4.1第3章 西门子S7-300系列PLC基本指令系统上述梯形逻辑图,也可用语句表指令表示。对应的语句表为: O I1.1 ON M2.0 O Q4.0 Q4.1 在上面的语句表中,操作数是依次被扫描的,其扫描的结果再逻辑“或”。对信号状态进行“1扫描,并做逻辑“或”运算,用助记符“O”来标识。当操作数的信号状态是“1”时,其扫描结果也是“1”。对信号状态进行“0”扫描,并做逻辑“或”运算,则用助记符“ON”来标识取反的“或”逻辑操作当操作数的信号状态是“0”时,其扫描结果就是“1”。如果操作数的信号状态是“1”,则扫描结果就是“0”。 第3章 西门子S7-300系列PLC基

57、本指令系统 在第一条语句里,处理器扫描的是输入I1.1首次扫描的结果被直接保存在RLO中,并和下一条语句的扫描结果相“或”,产生的新结果再存入RLO。如此逐一进行,在逻辑序列结束处的RLO可用作进一步处理。例如,用来激励一个输出信号。在上面的语句表中,把RLO的值赋给输出Q 4.1。第3章 西门子S7-300系列PLC基本指令系统 3. “异或异或”和和“异或非异或非”(X,XN)指令指令 图3.7是“异或”逻辑梯形图,下面是与梯形图对应的语句表。在的语句表中,使用了“异或”和“异或非”指令,分别用助记符“X”和“XN”来标识。它类似“或”和“或非”指令,用于扫描并联回路能否“通电”。 X I

58、 1.0 XN I 1.1 Q 4.0第3章 西门子S7-300系列PLC基本指令系统 当执行语句表中的第一条指令时,首次扫描的结果被直接保存在RLO中,然后RLO中的值和第二条指令的扫描结果进行“异或”操作,得到的新结果再存入RLO。如此扫描、“异或”并刷新RLO,直到赋值指令将RLO的值赋给输出Q 4.0 。 图中,仅当两个触点(输入I1.0和输入I1.1)的扫描结果不同,即只有一个为“1”时,RLO才为“1”,并赋值给输出使Q 4.0为“1”。若两个信号的扫描结果相同(均为“1”或“0”),则Q 4.0为“0”。与O和ON比较,X和XN排除了两个信号扫描结果为“1”时,使输出为“1”的可

59、能。 第3章 西门子S7-300系列PLC基本指令系统图3.7 “异或”逻辑梯形图 第3章 西门子S7-300系列PLC基本指令系统3.3.2 位操作指令位操作指令 1. 输出指令输出指令 逻辑串输出指令又称为赋值操作指令,该操作把状态字中RLO的值赋给指定的操作数(位地址)。若RLO为“1”,则操作数被置位,否则操作数被复位。表3.5列出了操作数的数据类型和所在的存储区。 逻辑串输出指令通过把首次检测位(FC位)置0,来结束一个逻辑串。当FC位为0时,表明程序中的下一条指令是一个新逻辑串的第一条指令,CPU对其进行首次扫描操作。这一点在梯形图中显示得很清楚。第3章 西门子S7-300系列PL

60、C基本指令系统表表3.6 输出指令输出指令LAD 指令 STL 指令 功能 操作数 数据类型 存储区 ( ) = 逻辑串赋值输出 BOOL I、Q、M、D、L ( # ) 中间结果赋值输出 BOOL I、Q、M、D、L 第3章 西门子S7-300系列PLC基本指令系统 LAD输出指令像继电器逻辑图中的线圈一样工作。如果电流能够流经电路到达线圈(即RLO为1)的话,则继电器线圈通电,其常开触点闭合,否则线圈不通电,常开触点断开。在LAD中,只能将输出指令放在逻辑符号串的最右端,但其前面必须有链路,不能将输出指令单独放在一个空网络中。 一个RLO可被用来驱动几个输出元件。在LAD中,输出线圈是上下

温馨提示

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

评论

0/150

提交评论