西门子PLC编程基础课件_第1页
西门子PLC编程基础课件_第2页
西门子PLC编程基础课件_第3页
西门子PLC编程基础课件_第4页
西门子PLC编程基础课件_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

PLC编程基础13.1PLC的基本结构从结构形式上PLC可分为整体式和模块式两大类。不论哪种类型的PLC,其基本结构都是相同的。CPU输入接口输出接口存储器电源外围接口编程设备2CPU存储器输入输出电路编程装置电源外围接口33.2PLC工作原理PLC采用循环执行用户程序的方式,称为循环扫描工作方式。

一个循环扫描过程周期可分为输入采样、程序执行、输出刷新三个阶段。4启动组织块上电后执行一次循环监视时间开始读取输入信号状态,并存储在输入映像区执行OB1程序包括中断程序将输出映像区状态写到实际输出设备一个循环扫描周期5执行OB1中的程序

(循环执行)事件(日期时间中断、硬件中断等)调用其他

OB,FB,FC输出

模块AI0.1AI0.2=Q8.0块OB1循环监视时间的开始启动块

(OB100)上电后执行一次从模块读信号状态,并保存到过程映象区(PII)把过程映象输出表(PIQ)写到输出模块CPU循环输入

模块循环程序执行6过程映象字节0字节1字节2:::

CPU存储器区字节0字节1字节2:::

PIIPIQ用户程序

CPU存储器区 : :A I 2.0= Q 4.3 : : : :117输入采样阶段依次地读入所有输入状态和数据,并将它们存入I/O映象区中的相应单元内。输入采样结束后,转入用户程序执行和输出刷新阶段。在这两个阶段中,即使输入状态和数据发生变化,I/O映象区中的相应单元的状态和数据也不会改变。因此,如果输入是脉冲信号,则该脉冲信号的宽度必须大于一个扫描周期,才能保证在任何情况下,该输入均能被读入。一个扫描周期中与用户有关的三阶段8用户程序执行阶段PLC总是按由上而下的顺序依次地扫描用户程序。在扫描每一条梯形图时,并按先左后右、先上后下的顺序进行逻辑运算,逻辑运算的结果存于映象区。上面的逻辑运算其运算结果会对下面的逻辑运算起作用;相反,下面的逻辑运算其运算结果只能到下一个扫描周期才能对上面的逻辑运算起作用。9输出刷新阶段当扫描用户程序结束后,PLC就进入输出刷新阶段。在此期间,CPU按照存在I/O映象区的运算结果,刷新所有对应的输出锁存电路,再经输出电路驱动相应的外设。这时,才是PLC的真正输出。10PLC的工作特点所有输入信号在程序处理前统一读入,并在程序处理过程中不再变化。而程序处理的结果也是在扫描周期的最后时段统一输出。其工作特点是将一个连续的过程分解成若干静止的状态,极类似放映电影的原理。便于面向对象的思维。PLC仅在扫描周期的起始时段读取外部输入状态,该时段相对较短,抗输入信号串入的干扰极为有利。这种方式对于高速变化的过程可能漏掉变化的信号,也会带来系统响应的滞后。为克服上述问题,可利用立即输入输出、脉冲捕获、高速计数器或中断技术。11扫描工作方式对程序执行的影响I0.0代表外部的按纽,当按纽动作后,左面的程序只需要一个扫描周期就可完成对M0.4的刷新,而右面的程序要经过四个扫描周期才能完成对M0.4的刷新。在扫描周期极为短的情况下(100ms),无时序配合要求,感觉不到这两段程序执行的的差异。在有时序配合的情况下,这种差异要引起注意。123.3存储器及其寻址S7CPU的存储区包括三个基本区域,即装载存储器,工作存储器RAM和系统存储器RAM。装载存储器动态装载存储器RAM可保持装载存储器EEPROM工作存储器RAM用户程序,如逻辑块、数据块系统存储器RAM过程映像I/O表位存储器、定时器、计数器局域数据堆栈、块堆栈中断堆栈、中断缓冲区13系统存储区的地址区地址区说明输入过程映像I输入映像区每一位对应一个数字量输入点,在每个扫描周期的开始,CPU对输入点进行采样,并将采样值存于输入映像寄存器中。CPU在接下来的本周期各阶段不再改变输入过程映像寄存器中的值,直到下一个扫描周期的输入处理阶段进行更新输出过程映像Q输出映像区的每一位对应一个数字量输出点,在扫描周期的末尾,CPU将输出映像寄存器的数据传送给输出模块,再由后者驱动外部负载位存储区M用来保存控制继电器的中间操作状态或其他控制信息定时器T定时器相当于继电器系统中的时间继电器,用定时器地址(T和定时器号,如T5)来存取当前值和定时器状态位,带位操作数的指令存取定时器状态位,带字操作的指令存取当前值计数器C用计数器地址(C和计数器号,如C20)来存取当前值和计数器状态位,带位操作数的指令存取计数器状态位,带字操作的指令存取当前值局部数据L可以作为暂时存储器或给子程序传递参数,局部变量只在本单元有效数据块DB在程序执行的过程中存放中间结果,或用来保存与工序或任务有关的其它数据14CPU中的寄存器(1)累加器(ACCUx)32位累加器是用于处理字节、字或双字的寄存器。S7-300有两个累加器ACCU1和ACCU2,S7-400有4个累加器ACCU1~ACCU4。(2)地址寄存器2个地址寄存器作为指针用于寄存器间接寻址。(3)数据块寄存器DB和DI寄存器分别用来保存打开的共享数据块和背景数据块的编号。(4)诊断缓冲区(5)状态字寄存器状态字是一个16位的寄存器,用于存储CPU执行指令的状态15STEP7的可能寻址范围设计的地址区访问区域缩写加在一起的最大区域过程映象I/Q输入/输出位I/Q0.0---65,535.7输入/输出字节I/QB0---65,535输入/输出字IW/QW0---65,534输入/输出双字ID/QD0---65,532存储器标志存储器位M0.0---255.7存储器字节MB0---255存储器字MW0---254存储器双字MD0---252I/Q外部输入/输出I/Q字节,外设PIB/PQB0---65,535I/Q字,外设PIW/PQW0---65,534I/Q双字,外设PID/PQD0---65,532定时器定时器(T)T0---255计数器计数器(C)C0---255数据块数据块(DB)DB1---65,532数据块用OPNDB打开位,字节,字,双字DBX,DBBDBW,DBD0---65,532用OPNDI打开位,字节,字,双字DIX,DIBDIW,DID0---65,53216数据在存储器中存取的方式二进制数的1位(bit)只有0和1两种不同的取值,可用来表示开关量(或称数字量)的两种不同的状态,如触点的断开和接通,线圈的通电和断电等。如果该位为1,则表示梯形图中对应的编程元件的线圈“通电”,其常开触点接通,常闭触点断开,反之相反。位数据的数据类型为BOOL(布尔)型。(1)位、字节、字和双字I5I0I1I2I3I476543210MSBLSB17MB200LSB0MSB7MB200LSB低有效字节0MSB15高有效字节MB201MB200LSB最低有效字节0MSB31最高有效字节MB201MB202MB203两个字节组成1个字(Word),两个字组成1个双字(DoubleWord)。一般用二进制补码表示有符号数,其最高位为符号位,最高位为0时为正数,为1时为负数,最大的16位正数为7FFFH,H表示十六进制数。8位二进制数组成1个字节(Byte),其中的第0位为最低位(LSB)、第7位为最高位(MSB)。MW200MD200MW200MW20218字节、字和双字的取值范围见表数据的位数无符号数有符号整数十进制十六进制十进制十六进制B(字节),8位值0~2550~FF-128~12780~7FW(字),16位值0~655350~FFFF-32768~327678000~7FFFFD(双字),32位值0~42949672950~FFFFFFFF2147483648~214748364780000000~7FFFFFFF19

位存储单元的地址由字节地址和位地址组成,如I3.2,其中的区域标识符“I”表示输入(Input),字节地址为3,位地址为2。这种存取方式称为“字节.位”寻址方式。(2)数据的存取方式

输入字节IB3(B是Byte的缩写)由I3.0-I3.7这8位组成。相邻的两个字节组成一个字,MW200表示由MB200和MB201组成的1个字,MW200中的M为区域标识符,W表示字(Word),200为起始字节的地址。MD200表示由MB200~MB203组成的双字,M为区域标示符,D表示存取双字(DoubleWord),200为起始字节的地址。20区域区域功能访问区域单位标识符最大地址范围输入过程映像存储区(I)在循环扫描开始时,从过程中读取输入信号至过程映像存储区输入位输入字节输入字输入双字IIBIWID0~65535.70~655350~655340~65532输出过程映像存储区(Q)在循环扫描期间,将过程映像存储区中的输出值传至输出模块输出位输出字节输出字输出双字QQBQWQD0~65535.70~655350~655340~65532位存储区(M)此存储区用于存储控制逻辑的中间状态存储器位存储器字节存储器字存储器双字

MMBMWMD0~255.70~2550~2540~252存储区及功能见下表:

21外部输入(PI)外部输出(PQ)用户可通过此区域直接访问输入和输出模块外部输入字节外部输入字外部输入双字外部输出字节外部输出字外部输出双字PIBPIWPIDPQBPQWPQD0~655350~655340~655320~655350~655340~65532定时器(T)访问此区域可以得到定时剩余时间定时器(T)T0~255计数器(C)访问此区域可以得到当前计数值计数器(C)C0~25522数据块(DB)用“OPENDB”打开数据块,用“OPENDI”打开背景数据块数据位数据字节数据字数据双字DB(I)XDB(I)BDB(I)WDB(I)D0~65535.70~655350~655340~65532本地数据(L)此区域存放逻辑块中的临时数据,当逻辑块结束时,数据丢失临时本地数据位临时本地数据字节临时本地数据字临时本地数据双字LLBLWLD0~65535.70~655350~655340~65532233.4数据格式与数据类型数制

二进制数十六进制数BCD码24STEP7数据类型概述基本数据类型(到32位)复杂数据类型(长于32位)用户定义数据类型(长于32位)•位数据类型(BOOL,BYTE,WORD,DWORD,CHAR)•数学数据类型(INT,DINT,REAL)•定时器类型(S5TIME,TIME,DATE,TIME_OF_DAY)•时间(DATE_AND_TIME)•矩阵(ARRAY)•结构(STRUCT)•字符串(STRING) 数据类型

UDT(用户定义数据类型)25STEP7基本数据类型BOOL 1 True或False(1或0)BYTE 8 B#16#A9WORD 16 W#16#12AFDWORD 32 DW#16#ADAC1EF5CHAR 8 'w'S5TIME 16 S5T#5s_200ms INT 16 123DINT 32 L#65539REAL 32 1.2或34.5E-12TIME 32 T#2D_1H_3M_45S_12MSDATE 16 D#1993-01-20TIME_OF_DAY 32 TOD#12:23:45.12关键字长度(位)该类型的常数举例26复杂数据类型关键字 长度(位) 举例

DATE_AND_TIME 64 DT#97-09-24-12:14:55.0

STRING 8*(字符个数+2) ´Thisisastring´

(最多254个字符的字符串) ´SIEMENS´

ARRAY

用户定义

测量值:

ARRAY[1..20]

(相同数据类型的元素组) INT

STRUCT

用户定义

Motor:STRUCT

(不同数据类型的元素组)

Speed:INT

Current:REAL

END_STRUCTUDT UDTasblockUDTasarrayelement

(用户定义数据类型= 用户定义

基本或复杂数据类型组成的

STRUCT Drive:ARRAY[1..4]

模板)

Speed:INT UDT1

Current:REAL

END_STRUCT 27程序块类型故障FBFBFBFCSFCSFBFB带背景数据块阴影:

OB组织块循环定时过程OB =组织块FB =功能块FC =功能SFB =系统功能块SFC =系统功能

操作系统3.5程序结构28

块类型 特性

组织块 -操作系统和用户程序的接口

(OB) -各层次的优先级(1~26) -局部数据堆栈中的特殊启动信息

功能块(FB) -带参数/数据保持

-不带参数/数据保持 -不带参数/数据不保持

功能(FC) -只传递一个返回值

(调用时必须分配参数) -数据不保持 -可带参数数据块(DB) -结构化,局部存储(背景DB) -结构化,全局数据存储

(在整个程序中均有效)用户定义的块29用户块包括组织块、功能块、功能和数据块。组织块(OB)

组织块是操作系统和用户程序之间的接口。组织块只能由操作系统来启动。各种组织块由不同的事件启动,且具有不同的优先级,而循环执行的主程序则在组织块OB1中。

注意:各种块(除组织块外)的数目和代码的长度是与CPU不相关的,而组织块的数目则与CPU的操作系统相关。

30功能块(FB)

功能块是通过数据块参数而调用的。它们有一个放在数据块中的变量存储区,而数据块是与其功能块相关联的,称为背景数据块。特点:每一个功能块可以有不同的数据块。这些数据块虽然具有相同的数据结构,但具体数值可以不同。功能(FC)

功能没有指定的数据块,因而不能存储信息。功能常常用于编制重复发生且复杂的自动化过程。数据块(DB)数据块中包含程序所使用的数据。

31块类型 特点

系统功能 -存储在CPU的操作系统中(SFC) -用户可以调用此功能 (不需要存储器)系统功能块 -存储在CPU的操作系统中(SFB) -用户可以调用此功能 (需要存储器)

系统数据块 -用于组态数据和参数的数据块(SDB)

系统块32数据块类型和结构数据字节0数据字节81918位CPU314中块的大小是8K字节数据块提供的最大存储空间依赖于CPU的型号0733

调用程序块调用程序块被调用的块(OB,FB,FC)(FB,FC,SFB,SFC)程序执行程序执行调用另一个块的指令块结束34STEP7为设计程序提供三种方法。基于这些方法,可以选择最适合于你的应用的程序设计方法。线性化模块化结构化线性化编程:所有的指令都在一个块(OB1)内。模块化编程:每个设备的控制指令都在各自的块内。

OB1按顺序调用每个块。结构化编程:不同的块调用可重复利用的代码。

OB1(或其他块)调用这些块并传递相应的参数。OB1OB1OB1配方A配方B混合器排空泵排空3.6编程方法35线性化编程OB1Network1Network2Network3电机控制信息取得操作的小时数36模块化编程电机控制信息取得操作小时数OB1FC1FC2FC337主程序子块程序处理程

温馨提示

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

评论

0/150

提交评论