您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 西门子PLC-编程基础
PLC编程基础3.1PLC的基本结构从结构形式上PLC可分为整体式和模块式两大类。不论哪种类型的PLC,其基本结构都是相同的。CPU输入接口输出接口存储器电源外围接口编程设备1.CPU2.存储器3.输入输出电路4.编程装置5.电源6.外围接口3.2PLC工作原理PLC采用循环执行用户程序的方式,称为循环扫描工作方式。一个循环扫描过程周期可分为输入采样、程序执行、输出刷新三个阶段。启动组织块上电后执行一次循环监视时间开始读取输入信号状态,并存储在输入映像区执行OB1程序包括中断程序将输出映像区状态写到实际输出设备一个循环扫描周期执行OB1中的程序(循环执行)事件(日期时间中断、硬件中断等)调用其他OB,FB,FC输出模块AI0.1AI0.2=Q8.0块OB1循环监视时间的开始启动块(OB100)上电后执行一次从模块读信号状态,并保存到过程映象区(PII)把过程映象输出表(PIQ)写到输出模块CPU循环输入模块循环程序执行过程映象字节0字节1字节2:::CPU存储器区字节0字节1字节2:::PIIPIQ用户程序CPU存储器区::AI2.0=Q4.3::::11输入采样阶段依次地读入所有输入状态和数据,并将它们存入I/O映象区中的相应单元内。输入采样结束后,转入用户程序执行和输出刷新阶段。在这两个阶段中,即使输入状态和数据发生变化,I/O映象区中的相应单元的状态和数据也不会改变。因此,如果输入是脉冲信号,则该脉冲信号的宽度必须大于一个扫描周期,才能保证在任何情况下,该输入均能被读入。一个扫描周期中与用户有关的三阶段用户程序执行阶段PLC总是按由上而下的顺序依次地扫描用户程序。在扫描每一条梯形图时,并按先左后右、先上后下的顺序进行逻辑运算,逻辑运算的结果存于映象区。上面的逻辑运算其运算结果会对下面的逻辑运算起作用;相反,下面的逻辑运算其运算结果只能到下一个扫描周期才能对上面的逻辑运算起作用。输出刷新阶段当扫描用户程序结束后,PLC就进入输出刷新阶段。在此期间,CPU按照存在I/O映象区的运算结果,刷新所有对应的输出锁存电路,再经输出电路驱动相应的外设。这时,才是PLC的真正输出。PLC的工作特点所有输入信号在程序处理前统一读入,并在程序处理过程中不再变化。而程序处理的结果也是在扫描周期的最后时段统一输出。其工作特点是将一个连续的过程分解成若干静止的状态,极类似放映电影的原理。便于面向对象的思维。PLC仅在扫描周期的起始时段读取外部输入状态,该时段相对较短,抗输入信号串入的干扰极为有利。这种方式对于高速变化的过程可能漏掉变化的信号,也会带来系统响应的滞后。为克服上述问题,可利用立即输入输出、脉冲捕获、高速计数器或中断技术。扫描工作方式对程序执行的影响I0.0代表外部的按纽,当按纽动作后,左面的程序只需要一个扫描周期就可完成对M0.4的刷新,而右面的程序要经过四个扫描周期才能完成对M0.4的刷新。在扫描周期极为短的情况下(100ms),无时序配合要求,感觉不到这两段程序执行的的差异。在有时序配合的情况下,这种差异要引起注意。3.3存储器及其寻址S7CPU的存储区包括三个基本区域,即装载存储器,工作存储器RAM和系统存储器RAM。装载存储器动态装载存储器RAM可保持装载存储器EEPROM工作存储器RAM用户程序,如逻辑块、数据块系统存储器RAM过程映像I/O表位存储器、定时器、计数器局域数据堆栈、块堆栈中断堆栈、中断缓冲区系统存储区的地址区地址区说明输入过程映像I输入映像区每一位对应一个数字量输入点,在每个扫描周期的开始,CPU对输入点进行采样,并将采样值存于输入映像寄存器中。CPU在接下来的本周期各阶段不再改变输入过程映像寄存器中的值,直到下一个扫描周期的输入处理阶段进行更新输出过程映像Q输出映像区的每一位对应一个数字量输出点,在扫描周期的末尾,CPU将输出映像寄存器的数据传送给输出模块,再由后者驱动外部负载位存储区M用来保存控制继电器的中间操作状态或其他控制信息定时器T定时器相当于继电器系统中的时间继电器,用定时器地址(T和定时器号,如T5)来存取当前值和定时器状态位,带位操作数的指令存取定时器状态位,带字操作的指令存取当前值计数器C用计数器地址(C和计数器号,如C20)来存取当前值和计数器状态位,带位操作数的指令存取计数器状态位,带字操作的指令存取当前值局部数据L可以作为暂时存储器或给子程序传递参数,局部变量只在本单元有效数据块DB在程序执行的过程中存放中间结果,或用来保存与工序或任务有关的其它数据CPU中的寄存器(1)累加器(ACCUx)32位累加器是用于处理字节、字或双字的寄存器。S7-300有两个累加器ACCU1和ACCU2,S7-400有4个累加器ACCU1~ACCU4。(2)地址寄存器2个地址寄存器作为指针用于寄存器间接寻址。(3)数据块寄存器DB和DI寄存器分别用来保存打开的共享数据块和背景数据块的编号。(4)诊断缓冲区(5)状态字寄存器状态字是一个16位的寄存器,用于存储CPU执行指令的状态STEP7的可能寻址范围设计的地址区访问区域缩写加在一起的最大区域过程映象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,532数据在存储器中存取的方式二进制数的1位(bit)只有0和1两种不同的取值,可用来表示开关量(或称数字量)的两种不同的状态,如触点的断开和接通,线圈的通电和断电等。如果该位为1,则表示梯形图中对应的编程元件的线圈“通电”,其常开触点接通,常闭触点断开,反之相反。位数据的数据类型为BOOL(布尔)型。(1)位、字节、字和双字I5I0I1I2I3I476543210MSBLSBMB200LSB0MSB7MB200LSB低有效字节0MSB15高有效字节MB201MB200LSB最低有效字节0MSB31最高有效字节MB201MB202MB203两个字节组成1个字(Word),两个字组成1个双字(DoubleWord)。一般用二进制补码表示有符号数,其最高位为符号位,最高位为0时为正数,为1时为负数,最大的16位正数为7FFFH,H表示十六进制数。8位二进制数组成1个字节(Byte),其中的第0位为最低位(LSB)、第7位为最高位(MSB)。MW200MD200MW200MW202字节、字和双字的取值范围见表数据的位数无符号数有符号整数十进制十六进制十进制十六进制B(字节),8位值0~2550~FF-128~12780~7FW(字),16位值0~655350~FFFF-32768~327678000~7FFFFD(双字),32位值0~42949672950~FFFFFFFF2147483648~214748364780000000~7FFFFFFF位存储单元的地址由字节地址和位地址组成,如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为起始字节的地址。区域区域功能访问区域单位标识符最大地址范围输入过程映像存储区(I)在循环扫描开始时,从过程中读取输入信号至过程映像存储区输入位输入字节输入字输入双字IIBIWID0~65535.70~655350~655340~65532输出过程映像存储区(Q)在循环扫描期间,将过程映像存储区中的输出值传至输出模块输出位输出字节输出字输出双字QQBQWQD0~65535.70~655350~655340~65532位存储区(M)此存储区用于存储控制逻辑的中间状态存储器位存储器字节存储器字存储器双字MMBMWMD0~255.70~2550~2540~252存储区及功能见下表:外部输入(PI)外部输出(PQ)用户可通过此区域直接访问输入和输出模块外部输入字节外部输入字外部输入双字外部输出字节外部输出字外部输出双字PIBPIWPIDPQBPQWPQD0~655350~655340~655320~655350~655340~65532定时器(T)访问此区域可以得到定时剩余时间定时器(T)T0~255计数器(C)访问此区域可以得到当前计数值计数器(C)C0~255数据块(DB)用“OPENDB”打开数据块,用“OPENDI”打开背景数据块数据位数据字节数据字数据双字DB(I)XDB(I)BDB(I)WDB(I)D0~65535.70~655350~655340~65532本地数据(L)此区域存放逻辑块中的临时数据,当逻辑块结束时,数据丢失临时本地数据位临时本地数据字节临时本地数据字临时本地数据双字LLBLWLD0~65535.70~655350~655340~655323.4数据格式与数据类型数制二进制数十六进制数BCD码STEP7数据类型概述基本数据类型(到32位)复杂数据类型(长于32位)用户定义数据类型(长于32位)•位数据类型(BOOL,BYTE,WORD,DWORD,CHAR)•数学数据类型(INT,DINT,REAL)•定时器类型(S5TIME,TIME,DATE,TIME_OF_DAY)•时间(DATE_AND_TIME)•矩阵(ARRAY)•结构(STRUCT)•字符串(STRING)数据类型UDT(用户定义数据类型)STEP7基本数据类型BOOL1True或False(1或0)BYTE8B#16#A9WORD16W#16#12AFDWORD32DW#16#ADAC1EF5CHAR8'w'S5TIME16S5T#5s_200msINT16123DINT32L#65539REAL321.2或34.5E-12TIME32T#2D_1H_3M_45S_12MSDATE16D#1993-01-20TIME_OF_DAY32TOD#12:23:45.12关键字长度(位)该类型的常数举例复杂数据类型关键字长度(位)举例DATE_AND_TIME64DT#97-09-24-12:14:55.0STRING8*(字符个数+2)´Thisisastring´(最多254个字符的字符串)´SIEMENS´ARRAY用户定义测量值:ARRAY[1..20](相同数据类型的元素组)INTSTRUCT用户定义Motor:STRUCT(不同数据类型的元素组)Speed:INTCurrent:REALEND_STRUCTUDTUDTasblockUDTasarrayelement(用户定义数据类型=用户定义基本或复杂数据类型组成的STRUCTDrive:ARRAY[1..4]模板)Speed:INTUDT1Current:REALEND_STRUCT程序块类型故障FBFBFBFCSFCSFBFB带背景数据块阴影:OB组织块循环定时过程OB=组织块FB=功能块FC=功能SFB=系统功能块SFC=系统功能操作系统3.5程序结构块类型特性组织块-操作系统和用户程序的接口(
本文标题:西门子PLC-编程基础
链接地址:https://www.777doc.com/doc-4012468 .html