您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 03S7-1200PLC程序设计基础
PLC程序设计基础3.1PLC工作原理PLC采用循环执行用户程序的方式,称为循环扫描工作方式。一个扫描过程周期可分为输入采样、程序执行、输出刷新三个阶段。启动组织块上电后执行一次循环监视时间开始读取输入信号状态,并存储在输入映像区执行OB1程序包括中断程序将输出映像区状态写到实际输出设备一个扫描周期输入采样阶段依次地读入所有输入状态和数据,并将它们存入I/O映象区中的相应单元内。输入采样结束后,转入用户程序执行和输出刷新阶段。在这两个阶段中,即使输入状态和数据发生变化,I/O映象区中的相应单元的状态和数据也不会改变。因此,如果输入是脉冲信号,则该脉冲信号的宽度必须大于一个扫描周期,才能保证在任何情况下,该输入均能被读入。一个扫描周期中与用户有关的三阶段用户程序执行阶段PLC总是按由上而下的顺序依次地扫描用户程序。在扫描每一条梯形图时,并按先左后右、先上后下的顺序进行逻辑运算,逻辑运算的结果存于映象区。上面的逻辑运算其运算结果会对下面的逻辑运算起作用;相反,下面的逻辑运算其运算结果只能到下一个扫描周期才能对上面的逻辑运算起作用。输出刷新阶段当扫描用户程序结束后,PLC就进入输出刷新阶段。在此期间,CPU按照存在I/O映象区的运算结果,刷新所有对应的输出锁存电路,再经输出电路驱动相应的外设。这时,才是PLC的真正输出。PLC的工作特点所有输入信号在程序处理前统一读入,并在程序处理过程中不再变化。而程序处理的结果也是在扫描周期的最后时段统一输出。其工作特点是将一个连续的过程分解成若干静止的状态。PLC仅在扫描周期的起始时段读取外部输入状态,该时段相对较短,抗输入信号串入的干扰极为有利。这种方式对于高速变化的过程可能漏掉变化的信号,也会带来系统响应的滞后。为克服上述问题,可利用立即输入输出、脉冲捕获、高速计数器或中断技术。扫描工作方式对程序执行的影响I0.1代表外部的按纽,当按纽动作后,左面的程序只需要一个扫描周期就可完成对M0.4的刷新,而右面的程序要经过四个扫描周期才能完成对M0.4的刷新。在扫描周期极为短的情况下(100ms),无时序配合要求,感觉不到这两段程序执行的的差异。在有时序配合的情况下,这种差异要引起注意。思考,Q0.0如何S7-1200CPU有以下三种工作模式:STOP(停止)模式、STARTUP(启动)模式和RUN(运行)模式。CPU的状态LED指示当前工作模式。在STOP模式下,CPU处理所有通信请求(如果有的话)并执行自诊断,但不执行用户程序,过程映像也不会自动更新。只有在CPU处于STOP模式时,才能下载项目。在STARTUP模式下,执行一次启动组织块(如果存在的话)。在RUN模式的启动阶段,不处理任何中断事件。在RUN模式下,重复执行扫描周期,即重复执行程序循环组织块OB1。中断事件可能会在程序循环阶段的任何点发生并进行处理。处于RUN模式下时,无法下载任何项目。CPU支持通过暖启动进入RUN模式。在暖启动时,所有非保持性系统及用户数据都将被复位为来自装载存储器的初始值,保留保持性用户数据。3.2存储器及其寻址S7CPU的存储区包括三个基本区域,即装载存储器,工作存储器RAM和系统存储器RAM。装载存储器动态装载存储器RAM可保持装载存储器EEPROM工作存储器RAM用户程序,如逻辑块、数据块系统存储器RAM过程映像I/O表位存储器、定时器、计数器局域数据堆栈、块堆栈中断堆栈、中断缓冲区3.2.1CPU的存储区装载存储器,用于非易失性地存储用户程序、数据和组态。项目被下载到CPU后,首先存储在装载存储器中。每个CPU都具有内部装载存储器。该内部装载存储器的大小取决于所使用的CPU。该内部装载存储器可以用外部存储卡来替代。如果未插入存储卡,CPU将使用内部装载存储器;如果插入了存储卡,CPU将使用该存储卡作为装载存储器。但是,可使用的外部装载存储器的大小不能超过内部装载存储器的大小,即使插入的存储卡有更多空闲空间。该非易失性存储区能够在断电后继续保持。(1)装载存储器工作存储器是易失性存储器,用于在执行用户程序时存储用户项目的某些内容。CPU会将一些项目内容从装载存储器复制到工作存储器中。该易失性存储区将在断电后丢失,而在恢复供电时由CPU恢复。(2)工作存储器系统存储器是CPU为用户程序提供的存储器组件,被划分为若干个地址区域。使用指令可以在相应的地址区内对数据直接进行寻址。系统存储器用于存放用户程序的操作数据,例如过程映像输入/输出、位存储器、数据块、局部数据,I/O输入输出区域和诊断缓冲区等。(3)系统存储器系统存储区的地址区地址区说明输入过程映像I输入映像区每一位对应一个数字量输入点,在每个扫描周期的开始,CPU对输入点进行采样,并将采样值存于输入映像寄存器中。CPU在接下来的本周期各阶段不再改变输入过程映像寄存器中的值,直到下一个扫描周期的输入处理阶段进行更新输出过程映像Q输出映像区的每一位对应一个数字量输出点,在扫描周期的末尾,CPU将输出映像寄存器的数据传送给输出模块,再由后者驱动外部负载位存储区M用来保存控制继电器的中间操作状态或其他控制信息定时器T定时器相当于继电器系统中的时间继电器,用定时器地址(T和定时器号,如T5)来存取当前值和定时器状态位,带位操作数的指令存取定时器状态位,带字操作的指令存取当前值计数器C用计数器地址(C和计数器号,如C20)来存取当前值和计数器状态位,带位操作数的指令存取计数器状态位,带字操作的指令存取当前值局部数据L可以作为暂时存储器或给子程序传递参数,局部变量只在本单元有效数据块DB在程序执行的过程中存放中间结果,或用来保存与工序或任务有关的其它数据存储区说明强制保持性I过程映像输入I_:P(物理输入)在扫描周期开始时从物理输入复制否否立即读取CPU、SB和SM上的物理输入点是否Q过程映像输出Q_:P(物理输出)在扫描周期开始时复制到物理输出无否立即写入CPU、SB和SM的物理输出点是否M位存储器控制和数据存储器否是L临时存储器存储块的临时数据,这些数据仅在该块的本地范围内有效否否DB数据块数据存储器,同时也是FB的参数存储器否是S7-1200存储区的保持性3.2.2寻址二进制数的1位(bit)只有0和1两种不同的取值,可用来表示开关量(或称数字量)的两种不同的状态,如触点的断开和接通,线圈的通电和断电等。如果该位为1,则表示梯形图中对应的编程元件的线圈“通电”,其常开触点接通,常闭触点断开,反之相反。位数据的数据类型为BOOL(布尔)型。两个字节组成1个字(Word),两个字组成1个双字(DoubleWord)。8位二进制数组成1个字节(Byte),其中的第0位为最低位(LSB)、第7位为最高位(MSB)。MB200LSB0MSB7MB200LSB低有效字节0MSB15高有效字节MB201MB200LSB最低有效字节0MSB31最高有效字节MB201MB202MB203MW200MD200MW200MW202078位数据字节0MB0数据字节1MW0数据字节***数据字节2MD0数据字节3M4.1SIMATICS7CPU中可以按照位、字节、字和双字对存储单元进行寻址。Byte5…Byte0Byte1Byte2Byte3Byte476543210MSBLSBI区位存储单元的地址由字节地址和位地址组成,如I3.2,其中的区域标识符“I”表示输入(Input),字节地址为3,位地址为2,这种存取方式称为“字节.位”寻址方式。I字节的位或位号8位中的第5位(0~7)字节地址与位号之间的分隔符字节地址,字节3存储器标志符.23输入字节IB3(B是Byte的缩写)由I3.0-I3.7这8位组成。相邻的两个字节组成一个字,MW200表示由MB200和MB201组成的1个字,MW200中的M为区域标识符,W表示字(Word),200为起始字节的地址。MD200表示由MB200~MB203组成的双字,M为区域标示符,D表示存取双字(DoubleWord),200为起始字节的地址。MB200LSB0MSB7MB200LSB低有效字节0MSB15高有效字节MB201MB200LSB最低有效字节0MSB31最高有效字节MB201MB202MB203MW200MD200MW200MW2021、M200.2,MB200,MW200和MD200等地址有重叠现象,在使用时一定注意,以免引起错误。2、S7PLC中的“高地址,低字节”的规律,如果将16#12送入MB200,将16#34送入MB201,则MW200=16#1234。注意:3.3数据格式与数据类型数制二进制数:100101十进制:37D十六进制数:25HBCD码:25十进制BCD数数00000100012001030011401005010160110701118100091001101112131415数据格式110011017000000001580128+64841符号位数据类型整型例如205+++十进制值:070158000000000000000000000000000000023163124指数(8位)尾数(23位)数据类型实数例如45.6789符号位数据格式(16位)BCD整数BCD28=256+0000000100101000151413121110987654321025=32+23=8=2960000001010010110296符号(+)1111010000010011413符号(-)W#16#F41327=128+1111111001100011151413121110987654321023=8+22=4=41228=256+24=16+-(412+1)=-413负数整数正数W#16#296+296-413PGCPU数据格式(32位)实数=+1,5*2126-127=0,75DW#16#296L#+296+0.75或+7.5E-10000000100101000000000000000000015141312111098765432103130292827262524232221201918171628=256+25=32+23=8=296整数(32位)=00000000000000000001111110100000实数符号151413121110987654321031302928272625242322212019181716e=指数(8Bit)f=底数(23Bit)实数的通用格式=(Sign)•(1.f)•(2e-127)20212223242526272-232-12-22-4.....2-30000000符号(+)00000010100101102960000000000000BCDDINTREALSTEP7基本数据类型数据类型长度(位)范围常量输入举例Bool10到1TRUE,FALSE,0,1Byte816#00到16#FF16#12,16#ABWord1616#0000到16#FFFF16#ABCD,16#0001DWord3216#00000000到16#FFFFFFFF16#02468ACEChar816#00到16#FF‘A’,‘t’,‘@’SInt8-128到127123,-123Int16-32768到32767123,-123DInt32-2147483648到2147483647123,-123USInt80到255123UInt160到65535123UDInt320到4294967295123Real32+/-1.18×10-38到+/-3.40×10-38123.456,-3.4,-1.2E+12LReal64+/-2.23×10-308到+/-1.79×10-30812345.123456789,-1.2E+40Time32T#-24d_20h_31m_23s_648ms到T#24d_20h_31m_23s_647ms存储形式:-2147483648到2147483647msT#5m_30s,T#-2d,T#1d_2h
本文标题:03S7-1200PLC程序设计基础
链接地址:https://www.777doc.com/doc-4508413 .html