第6章 S7-1200 PLC的编程基础_第1页
第6章 S7-1200 PLC的编程基础_第2页
第6章 S7-1200 PLC的编程基础_第3页
第6章 S7-1200 PLC的编程基础_第4页
第6章 S7-1200 PLC的编程基础_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

郑海春2022年1月第六章S7-1200PLC的编程基础提纲电气控制与S7-1200应用技术教程郑海春2数制、编码和逻辑运算S7-1200的编程语言用户程序结构简介S7-1200PLC的工作模式系统存储区和数据类型数制、编码和逻辑运算电气控制与S7-1200应用技术教程郑海春3数制1.二进制2.十六进制二进制常数以2#开始,例如2#10111.01对应的十进制数为:2#10111.01=1×24+0×23+1×22+1×21+1×20+0×2-1+1×2-2=23.25例如2#10111.01对应的十六进制数为:2#10111.01=2#00010111.0100=16#17.4数制、编码和逻辑运算电气控制与S7-1200应用技术教程郑海春4数制B#16#、W#16#、DW#16#分别用来表示十六进制字节、字和双字常数,例如W#16#7A14。提示:1B=8bit;1W=2B;1DW=2W。B-Byte,W-Word,DW-DoubleWord。数制、编码和逻辑运算电气控制与S7-1200应用技术教程郑海春5编码1.原码原码表示法,符号位用数码0表示正号,用数码1表示负号,数值部分按一般二进制形式表示。例如,﹢77原=01001101,﹣77原

=11001101。2.反码和补码正数的原码、反码和补码的表示是相同的,例如,﹢77原=﹢77反=﹢77补=01001101;负数的反码:负数的原码的符号位保持不变,数值位按位取反(0变1,1变0),例如,﹣77反=10110010;负数的补码:负数的反码加1,例如,﹣77补=10110011。数制、编码和逻辑运算电气控制与S7-1200应用技术教程郑海春6编码3.BCD码实际中,人们习惯用十进制表示数据,而计算机内部是二进制表示,为解决这一问题,人们为计算机设计了BCD(BinaryCodedDecimal)码。BCD码用4位二进制数来表示1位十进制数,即二进制编码十进制数。每一位BCD码的数值范围为2#0000~2#1001,对应于十进制数0~9。BCD码表示带符号数时,最高位二进制数用来表示符号,负数为1,正数为0。一般令负数和正数的最高4位二进制数分别为1111或0000。例如,BCD码2#1111100000101001表示的十进制数是-829。TIAPortal用BCD码来显示日期和时间值,例如,用BCD码2#0010000000100001表示2021(年)这个十进制数。数制、编码和逻辑运算电气控制与S7-1200应用技术教程郑海春7逻辑运算使用传统的继电器电路或PLC的梯形图可以实现开关量的逻辑运算。梯形图中,触点的串联对应“与”运算,触点的并联对应“或”运算,用常闭触点对应“非”运算。多个触点的串、并联电路可以实现复杂的逻辑运算。S7-1200的编程语言电气控制与S7-1200应用技术教程郑海春8IEC61131是国际电工委员会(internationalelectrotechnicalcommission,IEC)制定的PLC的国际标准,其中第三部分IEC61131-3是PLC的编程语言标准。IEC61131-3的5种编程语言:(1)指令表(InstructionList,IL);(2)结构文本(StructuredText,ST),S7-1200为结构化控制语言(StructuredControlLanguage,SCL);(3)梯形图(LadderDiagram,LD),西门子PLC的梯形图简称为LAD;(4)功能块图(FunctionBlockDiagram,FBD);(5)顺序功能图(SequentialFunctionChart,SFC)。S7-1200使用梯形图LAD、功能块图FBD和结构化控制语言SCL这三种编程语言。S7-1200的编程语言电气控制与S7-1200应用技术教程郑海春9梯形图S7-1200的编程语言电气控制与S7-1200应用技术教程郑海春10功能块图S7-1200的编程语言电气控制与S7-1200应用技术教程郑海春11结构化控制语言TIA博途软件支持结构化控制语言(SCL),SCL语言类似计算机高级语言,如果你有C、Java、C++、Python这种高级语言的学习经历,再学习SCL就会容易很多。在用SCL语言编程时,主要用IF...THEN/CASE/FOR/WHILE语句去构造分支、循环这样的结构。所有程序的编写都是在纯文本的环境下编辑,不像梯形图那么直观。借助SCL,可以简化控制领域复杂的计算、算法、数据管理和数据组织等编程工作。S7-1200的编程语言电气控制与S7-1200应用技术教程郑海春12结构化控制语言以第5.3.3节的“启-保-停”控制实例为控制需求,采用SCL语言编写程序。注意:只能在“添加新块”对话框中选择SCL编程语言。S7-1200的编程语言电气控制与S7-1200应用技术教程郑海春13结构化控制语言注意:在函数FC中要注意接口变量的类型,一定要把MOTOR变量定义成InOut类型而不是Output类型,如果定义成Output类型将导致无法实现自保持,因为函数FC没有背景数据块。此例如果采用函数块FB来实现,则MOTOR变量可以定义成Output类型,因为函数块FB有背景数据块。S7-1200的编程语言电气控制与S7-1200应用技术教程郑海春14结构化控制语言用户程序结构简介电气控制与S7-1200应用技术教程郑海春15S7-1200PLC的用户程序结构分为OB(组织块),FC(函数),FB(函数块)以及DB(数据块)。其中的OB、FB、FC都包含程序,统称为代码块。用户程序结构的划分有利于实现模块化编程。在块调用中,调用者可以是各种代码块,被调用的块是OB之外的代码块。调用函数块FB时需要为它指定一个背景数据块(InstanceDB)。用户程序结构简介电气控制与S7-1200应用技术教程郑海春16组织块组织块(organizationblock,OB)是系统程序和用户程序之间的接口,由系统程序调用。组织块OB的调用是由事件触发的,不能在代码块中进行OB的调用。组织块中的程序是用户编写的。常用的组织块主要有以下三种。1.程序循环组织块OB1是程序循环(Programcycle)组织块,也称为主程序,也是唯一的用户程序中必须具备的代码块。系统程序循环调用OB1,因此OB1中的程序是循环执行的。用户程序结构简介电气控制与S7-1200应用技术教程郑海春17组织块2.启动组织块启动(Startup)组织块,在PLC的工作模式从STOP切换为RUN时仅执行一次。完成后,将开始执行主程序循环OB1。启动组织块主要用来初始化,是可选的。3.中断组织块中断(Interrupt)组织块实现对内部事件或外部事件的快速响应。当出现中断事件,如硬件中断,CPU暂停正在执行的程序块,自动调用一个分配给该事件的中断组织块,来处理中断事件。执行完中断组织块后,返回被中断的程序的断点处继续执行原来的程序。用户程序结构简介电气控制与S7-1200应用技术教程郑海春18函数函数(function,FC)是用户编写的没有固定的存储区的代码块,函数执行结束后,其局部变量在内存中分配的空间释放,里面的数据丢失。函数FC可用于完成标准的和可重复使用的操作。函数FC实现程序代码的复用。用户程序结构简介电气控制与S7-1200应用技术教程郑海春19函数块函数块(functionblock,FB)是用户编写的带有专用存储区的块,该专用存储区称为背景数据块。FB与FC相比,每次调用函数块都必须为之分配背景数据块。每调用一次分配一个背景数据块,用来存放函数块的Input、Output、InOut参数变量及Static静态变量(Temp类型除外)的值和运算结果。一个函数块的背景数据块,也可包含多个函数块的背景数据块(多重背景数据块)。背景数据块是根据FB接口区定义自动生成的。用户程序结构简介电气控制与S7-1200应用技术教程郑海春20函数块注意:S7-1200的某些指令(例如符合IEC标准的定时器和计数器指令)实际上是函数块FB,在调用它们时需要指定配套的背景数据块。总结:函数与函数块的区别,①函数块FB有背景数据块,函数FC没有背景数据块。②FB和FC均为用户编写的子程序。接口区中均有Input、Output、InOut参数和Temp数据。函数FC没有静态变量(Static),函数块FB有保存在背景数据块中的静态变量。③只能在函数内部访问它接口区中定义的变量。而函数块由于有背景数据块,所以外部代码或HMI可以访问FB的背景数据块中的变量。④如果代码块有执行完后需要保存的数据,应使用函数块,而不是函数。⑤函数块接口区定义的局部变量(不包括Temp)有默认值(初始值),函数的局部变量没有默认值。用户程序结构简介电气控制与S7-1200应用技术教程郑海春21数据块数据块(datablock,DB)用于存储程序数据,分为全局数据块和背景数据块。与代码块不同,数据块没有指令。全局数据块存储供所有的代码块使用的数据,所有的OB、FB、FC都可以访问它们。背景数据块与函数块FB相关联,注意FB的临时数据(Temp)是不在背景数据块中保存的。提示:无论是全局数据块,还是背景数据块,都是全局变量,可以被所有程序访问。用户程序结构简介电气控制与S7-1200应用技术教程郑海春22数据块S7-1200PLC的工作模式电气控制与S7-1200应用技术教程郑海春23三种工作模式介绍S7-1200PLC有三种工作模式:STOP(停止)、STARTUP(启动)、RUN(运行)。CPU面板上的RUN/STOP状态LED用来指示当前的工作模式。S7-1200CPU未提供用于更改工作模式的物理开关,可以通过双击“项目树”中的“在线和诊断”工具,然后单击工具栏上的命令注意:只有CPU处于STOP模式时,才能下载项目。S7-1200PLC的工作模式电气控制与S7-1200应用技术教程郑海春24冷启动与暖启动下载了用户程序和硬件组态后,由STOP模式切换到RUN模式,CPU执行冷启动。冷启动之后,在下一次下载之前的STOP到RUN模式的切换均为暖启动。冷启动会复位保持性存储器,暖启动不对保持性存储器复位。可以用TIAPortal编程软件“在线工具”->“CPU操作面板”上的“MRES”命令按钮来复位存储器,使CPU回到初始状态。S7-1200PLC的工作模式电气控制与S7-1200应用技术教程郑海春25CPU“上电后启动”项的设置系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春26S7-1200的系统存储区系统存储区也被称为数据存储区。“S7-1200的系统存储区提供了过程映像输入区(I)、过程映像输出区(Q)、位存储器区(M)、定时器区、计数器区等各种专用存储区,所有代码块可以无限制地访问该存储区,属于全局存储区。此外,系统存储区还包括数据块(DB)、临时(局部)数据区(L)。提示:因TIA博途不允许无符号名称的变量出现,所以即使用户没有为变量定义符号名称,TIA博途也会自动为其分配符号名称,默认从“Tag_1”开始分配。系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春27S7-1200的系统存储区1.过程映像输入区(I)过程映像输入I是CPU用于接收外部输入信号的,比如按钮、开关、行程开关等。CPU会在扫描开始时从输入模块上读取外部输入信号的状态,并将这些状态记录到过程映像输入区中,当程序执行的时候从这个过程映像输入区读取对应的状态进行运算。如果我们给地址或变量后面加上“:P”这个符号的话,就可以立即访问外设输入。它的数值是直接从与其连接的现场设备接收数值,而不是过程映像输入区。使用地址标识符“I”访问过程映像输入区,可以按位I、字节IB、字IW或双字ID进行访问。系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春28S7-1200的系统存储区2.过程映像输出区(Q)过程映像输出Q是将程序执行的运算结果输出驱动外部负载的,比如指示灯、接触器、继电器、电磁阀等。如果需要把运算结果直接写入到物理输出点,需要在地址或变量名称后面加上“:P”这个符号。使用地址标识符“Q”访问过程映像输出区,在程序中表示方法与输入信号类似。注意:在使用输出Q的时候需要注意避免双线圈的情况。系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春29S7-1200的系统存储区3.位存储区(M)位存储区(M)又称内部辅助继电器,用于实现中间逻辑,存储中间状态或其他控制信息。位存储区的访问方法与访问输入、输出映像区的方法类似。M区中掉电保持区的大小可以在“PLC变量”->“保持性存储器”中设置。系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春30S7-1200的系统存储区3.位存储区(M)注意:因为系统存储器和时钟存储器不是保留的存储器,用户程序或通信可能改写这些存储单元,破坏其中的数据。指定了系统存储器和时钟存储器字节后,这两个字节不能再作其他用途,否则将会使用户程序运行出错,甚至造成设备损坏或人身伤害。系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春31S7-1200的系统存储区4.临时(局部)数据区(L)临时存储器与M存储器类似,主要区别是M存储器在“全局”范围内有效,数据可以全局性地用于用户程序中的所有元素,任何OB、FC或FB都可以访问M存储器中的数据。而临时存储器在“局部”范围内有效,只有创建或声明了临时存储单元的OB、FC或FB才可以访问临时存储器中的数据。例如:当OB调用FC时,FC无法访问对其进行调用的OB的临时存储器。注意:只能通过符号寻址的方式访问临时存储器。系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春32S7-1200的系统存储区5.数据块(DB)数据块(DB)有全局数据块DB和背景数据块DB两种类型。用户程序中的任何代码块OB、FB或FC都可以访问全局数据块DB中的数据。每次添加一个新的全局数据块DB时,其默认类型为优化的块访问DB。可以取消勾选复选框“优化的块访问”,修改DB的类型为非优化的块访问DB。系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春33S7-1200的系统存储区5.数据块(DB)提示:勾选“优化的块访问”后,只能用符号地址访问生成的块中定义的变量,不能使用绝对地址访问。这种访问方式可以提高存储器的利用率。未勾选“优化的块访问”,能用符号地址和绝对地址访问数据块中的变量,数据块中才会显示“偏移量”。系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春34S7-1200的系统存储区5.数据块(DB)每个FB(函数块)都有一个对应的背景数据块,一个FB(函数块)也可以使用不同的背景数据块。背景数据块的优化属性是由其所属的FB(函数块)决定的,如果该FB(函数块)为优化的块访问,则其背景DB就是优化的块访问,否则就是非优化的块访问。系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春35S7-1200的基本数据类型在TIAPortal中设计程序时,用于建立变量的区域有:变量表、DB块、FB块、FC块、OB块的接口区。系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春36S7-1200的基本数据类型1.位和位序列位数据的数据类型为Bool(布尔)型,在编程软件中,Bool变量的值1和0用TRUE(真)和FALSE(假)来表示。位存储单元的地址由字节地址和位地址组成,如I3.2,其中的区域标识符“I”表示输入(Input),字节地址为3,位地址为2,这种存取方式称为“字节.位”寻址方式。系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春37S7-1200的基本数据类型1.位和位序列图6-15字节、字、双字的寻址系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春38S7-1200的基本数据类型2.整数所有整数的符号中均有Int。符号中带S的为8位整数(短整数),带D的为32位双整数,不带S和D的为16位整数。带U的为无符号整数,不带U的为有符号整数。系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春39S7-1200的基本数据类型3.浮点数举例:浮点数x的二进制存储格式为(41360000)16,求其32位浮点数的十进制值。系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春40S7-1200的基本数据类型举例:浮点数x的二进制存储格式为(41360000)16,求其32位浮点数的十进制值。解答:十六进制数展开,可得32位二进制数01000001001101100000000000000000

指数e=E-127=10000010-01111111=00000011=(3)10

包含隐藏整数位1的尾数1.M=1.01101100000000000000000=1.011011

于是有,

x=(-1)S×1.M×2e=+(1.011011)×23=+1011.011=(11.375)10系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春41S7-1200的基本数据类型4.日期和时间系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春42S7-1200的基本数据类型4.日期和时间系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春43S7-1200的基本数据类型4.日期和时间系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春44S7-1200的基本数据类型4.日期和时间应用:1)设定每天晚上7点开灯,早上7点30分关灯;2)设定2030-01-01-12:00:00执行某个操作。系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春45S7-1200的基本数据类型5.字符系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春46S7-1200的基本数据类型5.字符例,在PLC中创建一个DB块,并将属性设置为标准DB块(非优化的块访问),在DB1块中创建如下的字符串和字符,并赋予起始值。系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春47S7-1200的基本数据类型5.字符系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春48S7-1200的基本数据类型5.字符例,在PLC中创建一个DB块,并将属性设置为标准DB块(非优化的块访问),在DB1块中创建如下的汉字字符串和汉字字符,并赋予起始值。系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春49S7-1200的基本数据类型5.字符系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春50S7-1200的其他数据类型1.用户自定义数据类型(UDT)系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春51S7-1200的其他数据类型1.用户自定义数据类型(UDT)系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春52S7-1200的其他数据类型1.用户自定义数据类型(UDT)提示:Struct类型相对于UDT类型有一些缺点,建议需使用Struct类型时,可以使用UDT类型代替。UDT是Struct类型的升级替代,功能基本完全兼容Struct类型。系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春53S7-1200的其他数据类型2.数组数据类型(Array)Array类型是由数目固定且数据类型相同的元素组成的数据结构。系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春54S7-1200的其他数据类型2.数组数据类型(Array)提示:通讯中传递的数组数据经常是预先不知道数组长度的,这时可以使用变长数组的定义,例如Array[*]ofInt为Int类型的可变长度的数组。梯形图中通过“基本指令”->“移动操作”->“ARRAY[*]”下面的“LOWER_BOUND”和“UPPER_BOUND”指令可以获取变长数组的下标和上标。这里需要注意变长数组只能在函数FC的接口区中定义,不能在FB的接口区中定义。系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春55S7-1200的其他数据类型3.参数数据类型(Variant)Variant类型是一个参数数据类型。Variant类型的形参是一个可以指向不同数据类型变量的指针,对应实参不能是常数。它可以指向基本数据类型,也可以指向复杂数据类型、UDT等。调用某个块时,可以将该块的Variant参数连接任何数据类型的变量。除了传递变量的指针外,还会传递变量的类型信息。系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春56S7-1200的其他数据类型3.参数数据类型(Variant)Variant指向的实参,可以是符号寻址,也可以是绝对地址寻址,还可以是形如P#DB1.DBX0.0BYTE10这种指针形式的寻址。P#DB1.DBX0.0BYTE10的解释:指向从DB1.DBX0.0开始的10个字节,并且DB1必须是非优化的DB块,并包含有10字节长度的变量。P#指针举例,P#I0.0Bool8,P#Q0.0Word20,P#M100.0Int50系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春57S7-1200的其他数据类型4.系统数据类型(SDT)系统数据类型由系统提供具有预定义的结构,结构由固定数目的具有各种数据类型的元素构成,不能更改该结构。系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春58使用AT覆盖变量S7-1200要访问声明变量内的数据区域,可以通过附加声明来覆盖所声明的变量。这样可以选择对已声明变量使用不同数据类型进行寻址,例如,可以使用BOOL的ARRAY对WORD数据类型变量的各个位寻址。系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春59使用AT覆盖变量系统存储区和数据类型电气控制与S7-1200应用技术教程郑海春60使用AT覆盖变量

温馨提示

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

评论

0/150

提交评论