S7-1200-PLC编程及应用第三版-廖常初-课件-第2章

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第2章S7-1200程序设计基础2.1S7-1200的编程语言1.PLC编程语言的国际标准IEC61131-3中有5种编程语言。S7-1200使用梯形图LAD、函数块图FBD和结构化控制语言SCL。输入程序时在地址前自动添加%,梯形图中一个程序段可以放多个独立电路。2.梯形图梯形图由触点、线圈和用方框表示的指令框组成。可以为程序段添加标题和注释,用按钮关闭注释。利用能流这一概念,可以借用继电器电路的术语和分析方法,帮助我们更好地理解和分析梯形图。能流只能从左往右流动。能流3.函数块图函数块图(FBD)使用类似于数字电路的图形逻辑符号来表示控制逻辑,国内很少有人使用。用鼠标右键单击项目树中的某个代码块,选中快捷菜单中的“切换编程语言”,LAD和FDB语言可以相互切换。4.结构化控制语言结构化控制语言SCL是一种基于PASCAL的高级编程语言。SCL特别适用于数据管理、过程优化、配方管理和数学计算、统计任务。只能在“添加新块”对话框中选择SCL语言。2.2PLC的工作原理与用户程序结构2.2.1逻辑运算用逻辑代数中的1和0来表示数字量控制系统中变量的两种相反的工作状态。线圈通电、常开触点接通、常闭触点断开为1状态,反之为0状态。在波形图中,用高、低电平分别表示1、0状态。图2-4中的“与”“或”“非”逻辑运算关系见表2-1。按下起动按钮SB1,电流经SB1的常开触点和SB2的常闭触点流过KM的线圈。KM的主触点闭合,电动机开始运行。KM的辅助常开触点同时接通。放开起动按钮,SB1的常开触点断开,电流经KM的辅助常开触点和SB2的常闭触点流过KM的线圈。KM常开触点的功能称为“自锁”或“自保持”。电动机运行时按下停止按钮SB2,KM的线圈失电,电动机停止运行,同时KM的辅助常开触点断开。热继电器FR用于过载保护。图2-5中的继电器电路称为起动-保持-停止电路,简称为起保停电路。逻辑代数式中的加号表示逻辑“或”,乘号或*号表示逻辑“与”,上划线表示逻辑“非”。逻辑运算的规则为先“与”后“或”。括号优先,先执行括号中的“或”运算。2.2.2用户程序结构简介1.模块化编程模块化编程将复杂的自动化任务划分为对应于生产过程的技术功能的子任务,每个子任务对应于一个称为“块”的子程序,通过块与块之间的相互调用来组织程序。这样的程序易于修改、查错和调试。块结构显著地增加了PLC程序的组织透明性、可理解性和易维护性。OB、FB、FC统称为代码块,被调用的代码块可以嵌套调用别的代码块。从程序循环OB或启动OB开始,嵌套深度为16;从中断OB开始,嵌套深度为6。2.组织块组织块OB是操作系统与用户程序的接口,由操作系统调用。(1)程序循环组织块OB1是用户程序中的主程序,在每一次循环中,操作系统程序调用一次OB1。允许有多个程序循环OB。(2)启动组织块CPU的工作模式从STOP切换到RUN时,执行一次启动组织块,来初始化程序循环OB中的某些变量。可以有多个启动OB,默认的为OB100。(3)中断组织块中断处理用来实现对特殊内部事件或外部事件的快速响应。如果出现中断事件,CPU暂停正在执行的程序块,自动调用一个分配给该事件的组织块(即中断程序)来处理中断事件。执行完中断组织块后,返回被中断的程序的断点处继续执行原来的程序。3.函数函数FC(Function)是用户编写的子程序。函数没有固定的存储区,函数执行结束后,其临时变量中的数据就丢失了。4.函数块函数块FB(FunctionBlock)是用户编写的子程序。调用函数块时,需要指定背景数据块,后者是函数块专用的存储区。FB的输入、输出参数和局部静态变量保存在背景数据块中。FB的典型应用是执行不能在一个扫描周期完成的操作。使用不同的背景数据块调用同一个函数块,可以控制不同的设备。5.数据块数据块DB是用于存放执行代码块时所需的数据的数据区。1)全局数据块存储供所有的代码块使用的数据。2)背景数据块存储的数据供特定的FB使用。2.2.3PLC的工作过程1.操作系统与用户程序PLC的操作系统使PLC具有基本的智能,能够完成PLC设计者规定的各种工作。用户程序由用户设计,它使PLC能完成用户要求的特定功能。2.CPU的工作模式CPU有3种工作模式:RUN、STOP与STARTUP。可以用编程软件改变CPU的工作模式。CPU内部的存储器中的过程映像输入区和过程映像输出区,用于存放输入信号和输出信号的状态。在启动阶段A~F,复位过程映像输入区,初始化输出区,执行启动OB,将非保持性M存储器和数据块初始化为其初始值,并启用组态的循环中断事件和时钟事件,将外设输入状态复制到过程映像输入区,过程映像输出区(Q区)的值写到外设输出。将中断事件保存到队列,以便在RUN模式进行处理。RUN模式CPU反复地分阶段处理各种不同的任务。阶段①将过程映像输出区的值写到输出模块。阶段②将输入模块处的输入传送到过程映像输入区。阶段③执行一个或多个程序循环OB,首先执行主程序OB1。阶段④处理通信请求和进行自诊断。3.工作模式的切换只能用STEP7在线工具中的CPU操作员面板,或工具栏上的按钮,来切换STOP或RUN工作模式。可以在用户程序中用STP指令使CPU进入STOP模式。4.冷启动与暖启动下载了用户程序的块和硬件组态后,下一次切换到RUN模式时,CPU执行冷启动。冷启动时复位输入,初始化输出;复位存储器,即清除工作存储器、非保持性存储区和保持性存储区,并将装载存储器的内容复制到工作存储器。冷启动后,在下一次下载之前的STOP到RUN模式的切换均为暖启动。暖启动时所有非保持的系统数据和用户数据被初始化,不会清除保持性存储区。可以用在线和诊断视图的“MRES”按钮来复位存储器。5.RUN模式CPU的操作(1)写外设输出操作系统将过程映像输出中的值写到输出模块并锁存起来。梯形图中某输出位的线圈“通电”时,对应的过程映像输出位中的二进制数为1。信号经输出模块隔离和功率放大后,继电器型输出模块中对应的硬件继电器的线圈通电,其常开触点闭合,使外部负载通电工作。可以用指令立即改写外设输出点的值,同时将刷新过程映像输出。(2)读外设输入CPU读取输入模块的输入,并传送到过程映像输入区。外接的输入电路闭合时,对应的过程映像输入位中的二进制数为1,梯形图中对应的输入点的常开触点接通,常闭触点断开。可以用指令立即读取数字量或模拟量的外设输入点的值,但是不会刷新过程映像输入。(3)执行用户程序读取输入后,从第一条指令开始,逐条顺序执行用户程序中的指令,包括程序循环OB调用FC和FB的指令,直到最后一条指令。程序执行过程中,各输出点的值被保存到过程映像输出,而不是立即写给输出模块。在程序执行阶段,即使外部输入信号的状态发生了变化,过程映像输入的状态也不会随之而变。2.3数据类型与系统存储区2.3.1物理存储器1.PLC使用的物理存储器RAM(随机存取存储器)可读写,其工作速度高、价格便宜、改写方便,断电后储存的信息丢失。ROM(只读存储器)只能读出,不能写入。断电后储存的信息不会丢失。快闪存储器(FlashEPROM)简称为FEPROM,可电擦除可编程的只读存储器简称为EEPROM。它们兼有ROM的非易失性和RAM的随机存取优点,写入数据的时间比RAM长,用来存放用户程序和断电时需要保存的重要数据。2.装载存储器与工作存储器(1)装载存储器装载存储器是非易失性的存储器,用于保存用户程序、数据和组态信息。项目下载到CPU时,保存在装载存储器中。装载存储类似于计算机的硬盘,工作存储器类似于计算机的内存条。(2)工作存储器工作存储器是集成在CPU中的RAM,为了提高运行速度,CPU将用户程序中与程序执行有关的部分,复制到工作存储器。CPU断电时,工作存储器中的内容将会丢失。3.保持性存储器保持性存储器用来防止在PLC电源关闭时丢失数据,暖启动后其中的数据保持不变,存储器复位时其值被清除。CPU提供了10KB的保持性存储器。在暖启动时,所有非保持的位存储器被删除,非保持的数据块的内容被复位为装载存储器中的初始值。4.存储卡存储卡用于在断电时保存用户程序和某些数据,不能用普通读卡器格式化存储卡。可以将存储卡作为程序卡、传送卡或固件更新卡。2.3.2数制与数据类型1.数制(1)二进制数二进制数的1位只能为0和1。用1位二进制数来表示开关量的两种不同的状态。如果该位为1,梯形图中对应的位编程元件的线圈通电、常开触点接通、常闭触点断开,称该编程元件为TRUE或1状态。该位为0则反之,称该编程元件为FALSE或0状态。二进制位的数据类型为BOOL(布尔)型。(2)多位二进制数多位二进制数用来表示大于1的数字。从右往左的第n位(最低位为第0位)的权值为2n。2#1100对应的十进制数为123+122+021+020=8+4=12。(3)十六进制数十六进制数用于简化二进制数的表示方法,16个数为0~9和A~F(10~15),1位十六进制数对应于4位二进制数,例如2#0001001110101111可以转换为16#13AF或13AFH。十六进制数“逢16进1”,第n位的权值为16n。16#2F对应的十进制数为2161+15160=47。2.数据类型数据类型用来描述数据的长度(即二进制的位数)和属性。3.位(Bool),二进制的1位,软件用TRUE/FALSE表示1和0。I3.2中的“I”表示输入,字节地址为3,位地址为2。4.位字符串数据类型Byte(字节)、Word(字)、Dword(双字)统称为位字符串。分别由8位、16位和32位二进制数组成。1)用组成双字的编号最小的字节MB100的编号作为双字MD100的编号。2)组成双字MD100的编号最小的字节MB100为MD100的最高位字节,编号最大的字节MB103为MD100的最低位字节。字也有类似的特点。5.整数SInt和USInt分别为8位的短整数和无符号短整数,Int和UInt分别为16位的整数和无符号整数,DInt和UDInt分别为32位的双整数和无符号的双整数。有符号整数的最高位为符号位,最高位为0时为正数,为1时为负数。有符号整数用补码来表示,二进制正数的补码就是它的本身,将一个正整数的各位取反后加1,得到绝对值与它相同的负数的补码。6.浮点数浮点数又称为实数(REAL),可表示为1.m2E,指数E是有符号数。ANSI/IEEE标准浮点数为1.m2e,e=E+127(0~255)。范围为±1.17549510-38~±3.4028231038。最高位为浮点数的符号位,正数时为0,负数时为1。规定尾数的整数部分总是为1,第0~22位为尾数的小数部分。8位指数加上偏移量127后(0~255),放在第23~30位。STEP7中用小数表示浮点数。LReal为64位的长浮点数,最高位为符号位。尾数的整数部分总是为1,第0~51位为尾数的小数部分。11位的指数加上偏移量1023后(0~1023),放在第52~62位。7.时间与日期Time是有符号双整数,其单位为ms,能表示的最大时间为24天多。Date(日期)为16位无符号整数,无符号双整数TOD(TIME_OF_DAY)为从指定日期的0时算起的毫秒数。数据类型DTL的12个字节为年(占2B)、月、日、星期的代码、小时、分、秒(各占1B)和纳秒(占4B),均为BCD码。星期日、星期一~星期六的代码分别为1~7。8.字符数据类型字符(Char)占一个字节,Char以ASCII格式存储。WChar(宽字符)占两个字节,可以存储汉字和中文的标点符号。字符常量用英语的单引号来表示,例如'A'。2.3.3全局数据块与其他数据类型1.生成全局数据块单击项目树中的“添加新块”,单击打开的对话框中的“数据块(DB)”按钮,生成一个数据块,可以修改其名称,其类型为默认的“全局DB”。右键单击项目树中新生成的数据块,执行快捷菜单命令“属性”,选中打开的对话框左边窗口中的“属性”,勾选右边窗口中的复选框“优化的块访问”,只能用符号地址访问生成的块中的变量,不能使用

1 / 45
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功