1 / 76

模块三之任务一 编程基础知识

模块三之任务一 编程基础知识. 包头轻工职业技术学院 任课教师 : 张晓晖. 编程基础知识. 学习目标: 学会 PLC 的编程语言与程序结构 数据在存储器中存取方式 CPU 的存储区域 指令寻址方式. 一、 PLC 的编程语言与程序结构. 1 PLC 的编程语言 2 S7-200 的程序结构 3 编程的一般规约. 1 编程语言.

gamada
Download Presentation

模块三之任务一 编程基础知识

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 模块三之任务一编程基础知识 包头轻工职业技术学院 任课教师:张晓晖

  2. 编程基础知识 学习目标: 学会 • PLC的编程语言与程序结构 • 数据在存储器中存取方式 • CPU的存储区域 • 指令寻址方式

  3. 一、 PLC的编程语言与程序结构 • 1 PLC的编程语言 • 2 S7-200的程序结构 • 3 编程的一般规约

  4. 1 编程语言 PLC中的程序由两部分组成,一是操作系统;二是应用程序。操作系统由PLC的生产厂家提供;用户程序是用户为完成特定的控制任务而编写的应用程序。 要开发应用程序,就要用到PLC操作系统提供的编程语言,STEP 7标准软件包是西门子公司为S7-200系列PLC开发的系统程序。他提供了非常丰富编程语言,有十几种,我们主要讲其中三种常用的语言,LD(梯形图语言)、STL(语句表语言)、FDB(功能图语言)。

  5. 1)梯形图(LD)语言 梯形图程序设计语言是最常用的一种程序设计语言。它来源于继电器逻辑控制系统的描述。在工业过程控制领域,电气技术人员对继电器逻辑控制技术较为熟悉,因此,由这种逻辑控制技术发展而来的梯形图受到了欢迎,并得到了广泛的应用。梯形图与操作原理图相对应,具有直观性和对应性;与原有的继电器逻辑控制技术的不同点是,梯形图中的能流(Power Fl№ow)不是实际意义的电流,内部的继电器也不是实际存在的继电器,因此,应用时,需与原有继电器逻辑控制技术的有关概念区别对待。

  6. 电器控制图 PLC梯形图 类似于电器控制图的一种图形语言。它沿用 了继电器、触点、串并联等术评语,使用的图形 符号,也类似于电器控制符号。通常各厂家都把梯 形图语言作为各型号PLC的第一语言。

  7. PLC梯形图语言的编程原则 • 1、梯形图由多个梯级组成,每个线圈可构成一个梯级, 每个梯级有多条支路,每个梯级代表一个逻辑方程; • 2、梯形图中的继电器继电器、接点、线圈不是物理的, 是PLC存储器中的位(1=ON;0=OFF);编程时常开/ 常闭接点可无限次引用,线圈输出只能是一次; • 3、梯形图中流过的不是物理电流而是“概念电流”,只 能从左向右流; • 4、用户程序的运算是根据PLC的输入/输出映象寄存器中 的内容,逻辑运算结果可以立即被后面的程序使用; • 5、PLC的内部继电器不能做控制用,只能存放逻辑控制 的中间状态; • 6、输出线圈不能直接驱动现场的执行元件,通过I/O模 块上的功率器件来驱动。

  8. 2)语句表(STL)语言 是用助记符来表达PLC控制功能的一种语言。它类是于计算机的汇编语言,但比汇编语言直观、易懂、易编程。一般与梯形图配合使用,互为补充。目前大多数PLC都有语句表功能,不过不同厂家生产的PLC语句表所用的助记符互不相同。 语句表 PLC梯形图

  9. 3)功能块图(FBD)语言 是用数字电路的逻辑框图来表达PLC控制功能的一种语言。框图的符号与连接关系表达了PLC的功能。 功能块图语言 PLC梯形图

  10. 功能块图程序设计语言是采用逻辑门电路的编程语言,有数字电路基础的人很容易掌握。功能块图指令由输入、输出段及逻辑关系函数组成。用STEP7-Micro/Win32编程软件将梯形图转换为FBD程序,方框的左侧为逻辑运算的输入变量,右侧为输出变量,输入输出端的小圆圈表示“非”运算,信号自左向右流动。功能块图程序设计语言是采用逻辑门电路的编程语言,有数字电路基础的人很容易掌握。功能块图指令由输入、输出段及逻辑关系函数组成。用STEP7-Micro/Win32编程软件将梯形图转换为FBD程序,方框的左侧为逻辑运算的输入变量,右侧为输出变量,输入输出端的小圆圈表示“非”运算,信号自左向右流动。

  11. 4) 顺序功能流程图(Sequential Function Chart) 顺序功能流程图程序设计是近年来发展起来的一种程序设计。采用顺序功能流程图的描述,控制系统被分为若干个子系统,从功能入手,使系统的操作具有明确的含义,便于设计人员和操作人员设计思想的沟通,便于程序的分工设计和检查调试。顺序功能流程图的主要元素是步、转移、转移条件和动作。

  12. 顺序功能流程图程序设计的特点是 • 以功能为主线,条理清楚, 便于对程序操作的理解和沟通 • 对大型的程序,可分工设计,采用较为灵活的程序结构,可节省程序设计时间和调试时间 • 常用于系统的规模校大,程序关系较复杂的场合 • 只有在活动步的命令和操作被 执行后,才对活动步后的转换 进行扫描,因此,整个程序的 扫描时间要大大缩短

  13. 5) 结构文本(ST) 结构文本(ST)是为IECll31—3标准创建的一种专用的高级编程语言。与梯形图相比,它能实现复杂的数学运算,编写的程序非常简洁和紧凑。

  14. 2 S7-200的程序结构 S7-200CPU的控制程序包括三部分: 主程序: OB1是程序的主体,每个项目必须有只 且有一个。可调用子程序和终中断程序 子程序:一个可选指令的集合,在被其他程序调 用时执行 中断程序:指令的一个可选集合,中断事件发生 时被操作系统调用

  15. 3 编程的一般规约 1)网络 在梯形图(LAD)中,程序被分成称为网络的一些程序段。每个梯形图网络是由一个或多个梯级组成。 功能块图(FBD)中,使用网络概念给程序分段。 语句表(STL)程序中,使用“NETWORK'’这个关键词对程序分段。 对梯形图、功能块图、语句表程序分段后,就可通过编程软件实现它们之间的相互转换。

  16. 2)梯形图(LAD)/功能块图(FBD) 梯形图中左、右垂直线称为左、右母线。 STEP7-Micro/WIN32梯形图编辑器在绘图时,通常将右母线省略。在左、右母线之间是由触点、线圈或功能框组合的有序排列。梯形图的输入总是在图形的左边,输出总是在图形的右边,因而触点与左母线相连,线圈或功能框终止右母线,从而构成一个梯级。在一个梯级中,左、右母线之间是一个完整的“电路”,不允许“短路”、“开路”,也不允许“能流”反向流动。 功能块图中输入总是在框图的左边,输出总是在框图的右边。

  17. 3)允许输入端、允许输出端 在梯形图(LAD)、功能块图(FBD)中,功能框的EN端是允许输入端,功能框的允许输入端必须存在“能流”,才能执行该功能框的功能。 在语句表(STL)程序中没有EN允许输入端,但是允许执行STL指令的条件是栈顶的值必须是“1”。 在梯形图(LAD)、功能块图(FBD)中,功能框的ENO端是允许输出端,允许功能框的布尔量输出。用于指令的级联。 如果功能框允许输入端(EN)存在“能流”,且功能框准确无误地执行了其功能,那么允许输出端(ENO)将把“能流”传到下一个功能框,此时,ENO=I。如果执行过程中存在错误,那么“能流”就在出现错误的功能框终止,即ENO=0。 在语句表(STL)程序中用AENO(ANDENO)指令访问,可以产生与功能框的允许输出端(ENO)相同的效果。

  18. 4)条件输入、无条件输入 条件输入:在梯形图(LAD)、功能块图(FBD)中,与“能 流”有关的功能框或线圈不直接与左母线连 接。 无条件输入:在梯形图(LAD)、功能块图(FBD)中,与 “能流”无关的线圈或功能框直接与左母 线连接。例如LBL、NEXT、SCR、SCRE 等。

  19. 5)无允许输出端的指令 在梯形图(LAD)、功能块图(FBD)中,无允许输出端(ENO)的指令方框,不能用于级联。如CALLSBR N(N1,…)子程序调用指令和LBL、SCR等。

  20. 二、数据在存储器中存取方式 1、数据长度 在计算机中使用的都是二进制数,其最基本的存储单位是位(bit),8位二进制数组成1个字节(Byte),其中的第0位为最低位(LSB),第7位为最高位(MSB),两个字节(16位)组成1个字(Word),两个字(32位)组成1个双字(Double word),把位、字节、字和双字占用的连续位数称为长度。

  21. 2 存储器的数据类型 S7-200系列PLC的数据类型可以是字符串、布尔型(0或1)、整数型和实数型(浮点数)。布尔型数据指字节型无符号整数;整数型数包括16位符号整数(INT)和32位符号整数(DINT)。实数型数据采用32位单精度数来表示。数据类型、长度及数据范围如表2-7所示。

  22. 表2-7 数据类型、长度及数据范围

  23. 3 用一位二进制数表示开关量 二进制数的“位”只有 0和1两种的取值,开关量(或数字量)也只有两种不同的状态,如触点的断开和接通,线圈的失电和得电等。在S7-200梯型图中,可用“位”描述它们,如果该位为1则表示对应的线圈为得电状态,触点为转换状态(常开触点闭合、常闭触点断开);如果该位为0,则表示对应线圈,触点的状态与前者相反。

  24. 4 多位二进制数 可以用多位二进制数表示数据。 二进制数遵循“逢2进1”的运算规则,每一位都有一个固定的权值,从右往左的第n位(最低位为0位)的权值为2n,第3位至第0位的权值分别为8,4,2,1,所以二进制数又称为8421码。

  25. 5 十六进制数 十六进制数的16位数字分别用0-9和A-F来表示,遵循“逢16进1”的运算规则,每一位都有一个固定的权值,从右往左的第n位(最低位为0位)的权值为16n,十六进制数可以用数字后面加“H”来表示。例2FH。

  26. 6 常数 在编程中经常会使用常数。常数数据长度可为字节、字和双字,在机器内部的数据都以二进制存储,但常数的书写可以用二进制、十进制、十六进制、ASCII码或浮点数(实数)等多种形式。几种常数形式分别如表3.9所示。

  27. 7 负数 PLC一般用二进制补码来表示有符号数,其最高位为符号位,最高位为0时为正数,为1时为负数,最大的16位正数为16#7FFF(即32 767)。正数的补码是它本身,将正数的补码逐位取反后加1,得到绝对值与它相同的负数的补码。将负数的补码的各位求反后加1,便得到了它的绝对值。例如十进制数35对应的二进制补码为0010 0011,十进制数-35对应的二进制数补码为1101 1101。

  28. 8 BCD码 BCD是二进制编码的十进制数的缩写。 BCD码用4位二进制数的组合来表示一位十进制数。 BCD码常用于输入输出设备。

  29. 三、 CPU的存储区域 PLC存储区域分三个区:程序区、系统区、 数据区。 程序区:存放应用程序,存储器为EEPROM。 系统区:存放PLC配置结构的参数,如PLC主机及扩展机的I/O配置和地址等,存储器为EEPROM。 数据区:存放应用程序执行过程中所需的数据,存储器为EEPROM和RAM,RAM是EEPROM的备份。数据区又根据存放的数据类型分为若干存储区域。如下:常用数据区域。

  30. 1常用数据存储区 S7-200系列PLC的数据存储区按存储数据的长短可划分为字节存储器、字存储器和双字存储器3大类。 字节存储器有7个:I 输入映像寄存器区 Q 输出映像寄存器区 V 变量存储器区 M 内部标位寄存器区 SM 特殊标志位存储区 S 顺序控制继电器存区 L 局部存储器区 字存储器有4个: T 定时器存储器区 C 计数器存储器区 AI 模拟量存储器区 AQ 模拟量存储器区 双字存储器有2个:AC 累加器存储器区 HC 高速计数器存储器区

  31. 2 S7-200数据存储区及元件的功能 1)输入映像寄存器I(输入继电器) (1)输入映像寄存器的工作原理 输入继电器是PLC用来接收用户设备输入信号的接口。PLC中的“继电器”与继电器控制系统中的继电器有本质性的差别,是“软继电器”,它实质是存储单元。每一个“输入继电器”线圈都与相应的PLC输入端相连(如“输入继电器”I0.0的线圈与PLC的输入端子0.0相连),当外部开关信号闭合,则“输入继电器的线圈”得电,在程序中其常开触点闭合,常闭触点断开。由于存储单元可以无限次的读取,所以有无数对常开、常闭触点供编程时使用。编程时应注意,“输入继电器”的线圈只能有外部信号来驱动,不能在程序内部用指令来驱动,因此,在用户编制的梯形图中只应出现“输入继电器”的触点,而不应出现“输入继电器”的线圈。

  32. (2)输入映像寄存器的地址分配 S7-200输入映像寄存器区域有IB0 ~IB15共16个字节的存储单元。系统对输入映像寄存器是以字节(8位)为单位进行地址分配的。输入映像寄存器可以按位进行操作,每一位对应一个数字量的输入点。如CPU224的基本单元输入为14点,需占用2×8=16位,即占用IB0和IB1两个字节。而I1.6、I1.7因没有实际输入而未使用,用户程序中不可使用。但如果整个字节未使用如IB3~IB15,则可作为内部标志位(M)使用。 输入继电器可采用位,字节,字或双字来存取。输入继电器位存取的地址编号范围为I0.0 ~I15.7。

  33. 2)输出映像寄存器 (1)工作原理 “输出继电器”是用来将输出信号传送到负载的接口,每一个“输出继电器”线圈都与相应的PLC输出相连,并有无数对常开和常闭触点供编程时使用。除此之外,还有一对常开触点与相应PLC输出端相连(如输出继电器Q0.0有一对常开触点与PLC输出端子0.0相连)用于驱动负载。输出继电器线圈的通断状态只能在程序内部用指令驱动。

  34. (2)输出映像寄存器的地址分配 S7-200输出映像寄存器区域有QB0~QB15共16个字节的存储单元。系统对输出映像寄存器也是以字节(8位)为单位进行地址分配的。输出映像寄存器可以按位进行操作,每一位对应一个数字量的输出点。如CPU224的基本单元输出为10点,需占用2×8=16位,即占用QB0和QB1两个字节。但未使用的位和字节均可在用户程序中作为内部标志位使用。 输出继电器可采用位,字节,字或双字来存取。输出继电器位存取的地址编号范围为Q0.0~Q15.7。

  35. 以上介绍的两种软继电器都是和用户有联系的 ,因而是PLC 与外部联系的窗口 。下面所介绍的则是与外部设备没有联系的内部软继电器。它们既不能用来接收用户信号,也不能用来驱动外部负载,只能用于编制程序,即线圈和接点都只能出现在梯形图中。

  36. 3)变量存储器V 变量存储器主要用于存储变量。用以存储用户程序执行过程中控制逻辑操作运算的中间结果,也可以用来保存与工序或任务有关的其他数据。在进行数据处理时,变量存储器会被经常使用。 变量存储器可以是位寻址,也可按字节、字、双字为单位寻址,其位存取的编号范围根据CPU的型号有所不同,CPU221/222为V0.0~V2047.7共2KB存储容量,CPU224/226为V0.0~V5119.7共5KB存储容量。 变量存储器V的变化范围根据 CPU的信号不同而不同。CPU 224有VB0.0~VB5119.7的5K存储字节。可按位、字节、字或双字使用。

  37. 4)内部标志位(M)存储区 内部标志位存储器,用来保存控制继电器的中间操作状态,其作用相当于继电器控制中的中间继电器,内部标志位存储器在PLC中没有输入/输出端与之对应,其线圈的通断状态只能在程序内部用指令驱动,其触点不能直接驱动外部负载,只能在程序内部驱动输出继电器的线圈,再用输出继电器的触点去驱动外部负载。 内部标志位存储器可采用位、字节、字或双字来存取。内部标志位存储器位存取的地址编号范围为M0.0~M31.7共32个字节。

  38. 5)特殊标志位(SM)存储器 PLC中还有若干特殊标志位存储器, 特殊标志位存储器位提供大量的状态和控制功能,用来在CPU和用户程序之间交换信息,特殊标志位存储器能以位、字节、字或双字来存取,CPU224的SM的位地址编号范围为SM0.0~SM179.7共180个字节。其中SM0.0~SM29.7的30个字节为只读型区域。

  39. SMB0为状态位字节,在每次扫描循环结尾由S7-200 CPU更新,定义如下: SM0.0 运行监视,PLC运行RUN状态,该位始终为 1 PLC在运行时利用其触点驱动输出继电器。 SM0.1 初始化脉冲。仅在执行用户程序的第一个 扫描周期时为1。 SM0.2 当RAM中数据丢失时,导通一个扫描周期,用 于出错处理。 SM0.3 PLC上电进入RUN方式,ON一个扫描周期。

  40. SM0.4 分脉冲,该位输出一个占空比为50%的分时钟 脉冲。用作时间基准或简易延时。 SM0.5 秒脉冲,该位输出一个占空比为50%的秒时钟 脉冲。可用作时间基准。 SM0.6 扫描时钟,一个扫描周期为ON(高电平),另 一为OFF(低电平)循环交替。 SM0.7 工作方式开关位置指示,0为TERM位置,可同 编程设备通讯。1为RUN位置。为1时,使自由 端口通讯方式有效。

  41. ②SMB1为指令状态位字节,常用于表及数学操作,提供不同指令的错误提示。部分位定义如下: SM1.0 零标志,运算结果为0时,该位置1。 SM1.1 溢出标志,运算结果溢出或查出非法数值 时,该位置1 。 SM1.2 负数标志,数学运算结果为负时,该位为 1。

  42. 6) 局部变量存储器(L) • 局部变量存储器L用来存放局部变量,局部变量存储器L和变量存储器V十分相似,主要区别在于全局变量是全局有效,即同一个变量可以被任何程序(主程序、子程序和中断程序)访问。而局部变量只是局部有效,即变量只和特定的程序相关联。 • S7-200有64个字节的局部变量存储器,其中60个字节可以作为暂时存储器,或给子程序传递参数。后4个字节作为系统的保留字节。PLC在运行时,根据需要动态地分配局部变量存储器,在执行主程序时,64个字节的局部变量存储器分配给主程序,当调用子程序或出现中断时,局部变量存储器分配给子程序或中断程序。 • 局部存储器可以按位、字节、字、双字直接寻址,其位存取的地址编号范围为L0.0~L63.7。 • L可以作为地址指针。

  43. 7)高速计数器HC • 一般计数器的计数频率受扫描周期的影响,不能太高。而高速计数器可用来累计比CPU 的扫描速度更快的事件。高速计数器的当前值是一个双字长(32位)的整数,且为只读值。 • 高速计数器的地址编号范围根据CPU的型号有所不同,CPU221/222各有4个高速计数器,CPU224/226各有6个高速计数器,编号为HC0~HC5。

  44. 8)累加器AC 累加器是用来暂存数据的寄存器,它可以用来存放运算数据、中间数据和结果。CPU提供了4个 32位的累加器,其地址编号为AC0~AC3。累加器的可用长度为32位,可采用字节、字、双字的存取方式,按字节、字只能存取累加器的低8位或低16位,双字可以存取累加器全部的32 位。

  45. 9)定时器(相当于时间继电器) • PLC所提供的定时器作用相当于继电器控制系统中的时间继电器。每个定时器可提供无数对常开和常闭触点供编程使用。其设定时间由程序设置。 • 每个定时器有一个16位的当前值寄存器,用于存储定时器累计的时基增量值(1~32767),另有一个状态位表示定时器的状态。若当前值寄存器累计的时基增量值大于等于设定值时,定时器的状态位被置“1”,该定时器的常开触点闭合。

  46. 定时器的定时精度分别为1ms 、10ms和100ms三种,CPU222、CPU224及CPU226的定时器地址编号范围为T0~T225,它们分辨率、定时范围并不相同,用户应根据所用CPU型号及时基,正确选用定时器的编号。 • S7-200 CPU中的定时器是对内部时钟累计时间增量的设备,用于时间控制。编址范围T0~T255(22X);T0~T127(21X)。

  47. 10)计数器 计数器用于累计计数输入端接收到的由断开到接通的脉冲个数。计数器可提供无数对常开和常闭触点供编程使用,其设定值由程序赋予。 计数器的结构与定时器基本相同,每个计数器有一个16位的当前值寄存器用于存储计数器累计的脉冲数,另有一个状态位表示计数器的状态,若当前值寄存器累计的脉冲数大于等于设定值时,计数器的状态位被置“1”,该计数器的常开触点闭合。计数器的地址编号范围为C0~C255。

  48. 11)模拟量输入/输出映像寄存器(AI/AQ) • S7-200的模拟量输入电路是将外部输入的模拟量信号转换成1个字长的数字量存入模拟量输入映像寄存器区域,区域标志符为AI。 • 模拟量输出电路是将模拟量输出映像寄存器区域的1个字长(16位)数值转换为模拟电流或电压输出,区域标志符为AQ。 • 在PLC内的数字量字长为16位,即两个字节,故其地址均以偶数表示,如 AIW0、AIW2…..;AQW0、AQW2…..。

More Related