版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、S7-1200PLC用户程序结构与故障 诊断 1 第第 3 章章 S7-1200 PLC的用户程序结构的用户程序结构 与故障诊断与故障诊断 S7-1200PLC用户程序结构与故障 诊断 2 3.1 用户程序结构简介用户程序结构简介模块化编程模块化编程 1/3 模块化编程将复杂的自动化任务划分为对应于生产过程的技术功模块化编程将复杂的自动化任务划分为对应于生产过程的技术功 能的较小的子任务,每个子任务对应于一个称为能的较小的子任务,每个子任务对应于一个称为“块块”的子程序,的子程序, 可以通过块与块之间的相互调用来组织程序。这样的程序易于修可以通过块与块之间的相互调用来组织程序。这样的程序易于修
2、 改、查错和调试。改、查错和调试。 块块简要描述简要描述 组织块组织块(OB)操作系统与用户程序的接口,决定用户程序的结构操作系统与用户程序的接口,决定用户程序的结构 功能块功能块(FB) 用户编写的包含经常使用的功能的子程序,有专用的背景数用户编写的包含经常使用的功能的子程序,有专用的背景数 据块据块 功能功能(FC) 用户编写的包含经常使用的功能的子程序,没有专用的背景用户编写的包含经常使用的功能的子程序,没有专用的背景 数据块数据块 背景数据块背景数据块(DB) 用于保存用于保存FB的输入变量、输出变量和静态变量,其数据在编的输入变量、输出变量和静态变量,其数据在编 译时自动生成译时自动
3、生成 全局数据块全局数据块(DB) 存储用户数据的数据区域,供所有的代码块共享存储用户数据的数据区域,供所有的代码块共享 S7-1200PLC用户程序结构与故障 诊断 3 3.1 用户程序结构简介用户程序结构简介模块化编程模块化编程 2/3 块结构显著增加了块结构显著增加了PLC程序的组织透明性、可理解性和易维护性。程序的组织透明性、可理解性和易维护性。 OB、FB、FC都包含代码,统称为代码块都包含代码,统称为代码块(Code)块。块。 被调用的代码块又可以调用别的代码块,这种调用称为嵌套调用。被调用的代码块又可以调用别的代码块,这种调用称为嵌套调用。 在块调用中,调用者可以是各种代码块,被
4、调用的块是在块调用中,调用者可以是各种代码块,被调用的块是OB之外之外 的代码块。调用功能时需要为它指定一个背景数据块。的代码块。调用功能时需要为它指定一个背景数据块。 S7-1200PLC用户程序结构与故障 诊断 4 3.1 用户程序结构简介用户程序结构简介模块化编程模块化编程 3/3 编程时被调用的块应该是已经存在的块,即应先创建被调用的编程时被调用的块应该是已经存在的块,即应先创建被调用的 块及其背景数据块。块及其背景数据块。 S7-1200PLC用户程序结构与故障 诊断 5 3.1 用户程序结构简介用户程序结构简介组织块组织块 1/6 组织块组织块(Organization Block
5、,OB)是操作系统与用户程序的接口,是操作系统与用户程序的接口, 由操作系统调用,用于控制循环扫描和中断程序的执行、由操作系统调用,用于控制循环扫描和中断程序的执行、PLC 的启动和错误处理等。组织块的程序是用户编写的。的启动和错误处理等。组织块的程序是用户编写的。 每个组织块必须有唯一的每个组织块必须有唯一的OB编号,编号,200之前的某些编号是保留之前的某些编号是保留 的,其他的,其他OB的编号应大于等于的编号应大于等于200. 没有可以调用没有可以调用OB的指令,的指令,S7-1200 CPU具有基于事件的特性,具有基于事件的特性, 只有发生了某些特定事件,相应的只有发生了某些特定事件,
6、相应的OB才会被执行。不要试图在才会被执行。不要试图在 OB/FC/FB中调用某个中调用某个OB,除非用户触发与此,除非用户触发与此OB相关的相关的OB。 例如用户可以在例如用户可以在OB1中通过中通过SRT_DINT指令设置延迟时间,当指令设置延迟时间,当 延迟时间到达时,延迟中断延迟时间到达时,延迟中断OB被触发。被触发。 当特定事件发生时,相应当特定事件发生时,相应OB被调用,无论其是否包含程序代码。被调用,无论其是否包含程序代码。 S7-1200PLC用户程序结构与故障 诊断 6 3.1 用户程序结构简介用户程序结构简介组织块组织块 2/6 l 程序循环组织块程序循环组织块(Progr
7、am cycle OB): OB1是用户程序中的主程序,是用户程序中的主程序,CPU循环执行操作系统程序,在循环执行操作系统程序,在 每一次循环中,操作系统调用一次每一次循环中,操作系统调用一次OB1。因此。因此OB1中的程序也中的程序也 是循环执行的。是循环执行的。 允许有多个程序循环允许有多个程序循环OB,默认的是,默认的是OB1,其他程序循环,其他程序循环OB的的 编号应大于等于编号应大于等于200。 S7-1200PLC用户程序结构与故障 诊断 7 3.1 用户程序结构简介用户程序结构简介组织块组织块 3/6 l 启动组织块启动组织块(Startup OB): 当当CPU的工作模式从的
8、工作模式从STOP切换到切换到RUN时,执行一次启动时,执行一次启动 (Startup)组织块,来初始化程序循环组织块,来初始化程序循环OB中的某些变量。中的某些变量。 执行完启动执行完启动OB后,开始执行程序循环后,开始执行程序循环OB。 可以有多个启动可以有多个启动OB,默认的为,默认的为OB100,其他启动,其他启动OB的编号应大的编号应大 于等于于等于200。 S7-1200PLC用户程序结构与故障 诊断 8 3.1 用户程序结构简介用户程序结构简介组织块组织块 4/6 l 中断组织块中断组织块(Interrupt OB): 中断组织块用来实现对特殊内部事件或外部事件的快速响应。中断组
9、织块用来实现对特殊内部事件或外部事件的快速响应。 如果没有中断事件出现,如果没有中断事件出现,CPU循环执行组织块循环执行组织块OB1。如果出现。如果出现 中断事件,例如诊断中断和时间延迟中断等,因为中断事件,例如诊断中断和时间延迟中断等,因为OB1的中断的中断 优先级最低,操作系统在执行完当前程序的当前指令后,立即优先级最低,操作系统在执行完当前程序的当前指令后,立即 响应中断。响应中断。CPU暂停正在执行的程序块,自动调用一个分配给暂停正在执行的程序块,自动调用一个分配给 该事件的组织块该事件的组织块(即中断程序即中断程序)来处理中断事件。执行完中断组来处理中断事件。执行完中断组 织块后,
10、返回被中断的程序的断点处继续执行原来的程序。织块后,返回被中断的程序的断点处继续执行原来的程序。 这意味着部分用户程序不必在每次循环中处理,而是在需要时这意味着部分用户程序不必在每次循环中处理,而是在需要时 才被及时处理。处理中断事件的程序放在该事件驱动的才被及时处理。处理中断事件的程序放在该事件驱动的OB中。中。 S7-1200PLC用户程序结构与故障 诊断 9 3.1 用户程序结构简介用户程序结构简介组织块组织块 5/6 时间延迟中断组织块时间延迟中断组织块(Time-delay OB): 此此OB可以通过可以通过SRT_DINT指令设置其延迟时间,当延迟时间到指令设置其延迟时间,当延迟时
11、间到 达时,延迟中断达时,延迟中断OB被触发。被触发。 周期中断组织块周期中断组织块(Cyclic interrupt OB): 将在指定间隔之间被执行。将在指定间隔之间被执行。 硬件中断组织块硬件中断组织块(Hardware interrupt OB): 将在指定的硬件事件发生时被执行,例如数字量输入信号的上将在指定的硬件事件发生时被执行,例如数字量输入信号的上 升沿或下降沿。升沿或下降沿。 S7-1200PLC用户程序结构与故障 诊断 10 3.1 用户程序结构简介用户程序结构简介组织块组织块 6/6 时间错误中断组织块时间错误中断组织块(Time-error interrupt OB):
12、 此此OB将在检测到时间错误将在检测到时间错误(程序循环扫描程序循环扫描OB执行时间超出了执行时间超出了 CPU属性中定义的最大扫描时间属性中定义的最大扫描时间)时被执行,此时被执行,此OB的编号只能的编号只能 是是OB80。当。当CPU中没有此中没有此OB时,用户可以指定当时间错误发时,用户可以指定当时间错误发 生时生时CPU是忽略此错误还是转换到是忽略此错误还是转换到STOP模式。模式。 诊断错误中断组织块诊断错误中断组织块(Diagnostic error interrupt OB): 此此OB将在检测到诊断错误时被执行,此将在检测到诊断错误时被执行,此OB的编号只能是的编号只能是OB8
13、2。 当当CPU中没有此中没有此OB时,用户可以指定当诊断错误发生时时,用户可以指定当诊断错误发生时CPU是是 忽略此错误还是转换到忽略此错误还是转换到STOP模式。模式。 S7-1200PLC用户程序结构与故障 诊断 11 3.1 用户程序结构简介用户程序结构简介功能功能 功能功能(Function,FC)是用户程序编写的子程序,它包含完成特是用户程序编写的子程序,它包含完成特 定任务的代码和参数。定任务的代码和参数。FC和和FB有与调用它的块共享的输入参有与调用它的块共享的输入参 数和输出参数。执行完数和输出参数。执行完FC和和FB后,返回调用它的代码块。后,返回调用它的代码块。 功能是快
14、速执行的代码块,用于执行下列任务:完成标准的和功能是快速执行的代码块,用于执行下列任务:完成标准的和 可重复使用的操作,例如算术运算;完成技术功能,例如使用可重复使用的操作,例如算术运算;完成技术功能,例如使用 位逻辑运算的控制。位逻辑运算的控制。 可以在程序的不同位置多次调用同一个可以在程序的不同位置多次调用同一个FC,这可以简化重复执,这可以简化重复执 行的任务的变成。行的任务的变成。 功能没有固定的存储区,执行结束后,其临时变量中的数据就功能没有固定的存储区,执行结束后,其临时变量中的数据就 丢失了。可以用全局数据块或丢失了。可以用全局数据块或M存储区来存储那些在功能执行存储区来存储那些
15、在功能执行 结束后需要保持的数据。结束后需要保持的数据。 S7-1200PLC用户程序结构与故障 诊断 12 3.1 用户程序结构简介用户程序结构简介功能块功能块 功能块功能块(Function Block,FB)是用户程序编写的子程序。调用功是用户程序编写的子程序。调用功 能块时,需要制定背景数据块,是功能块专用的存储区。能块时,需要制定背景数据块,是功能块专用的存储区。CPU执执 行行FB中的程序代码,将块的输入、输出参数和局部静态变量保中的程序代码,将块的输入、输出参数和局部静态变量保 存在背景数据块中,以便可以从一个扫描周期到下一个扫描周期存在背景数据块中,以便可以从一个扫描周期到下一
16、个扫描周期 快速访问它们。快速访问它们。 FB的典型应用是执行不能在一个扫描周期结束的操作。的典型应用是执行不能在一个扫描周期结束的操作。 在调用在调用FB时,打开了对应的背景数据块,后者的变量可以供其时,打开了对应的背景数据块,后者的变量可以供其 他代码块使用。他代码块使用。 调用同一个功能块时使用不同的背景数据块,可以控制不同的设调用同一个功能块时使用不同的背景数据块,可以控制不同的设 备。例如用来控制水泵和阀门的功能使用包含特定的操作参数的备。例如用来控制水泵和阀门的功能使用包含特定的操作参数的 不同的背景数据块,可以控制不同的水泵和阀门。不同的背景数据块,可以控制不同的水泵和阀门。 S
17、7-1200的部分指令的部分指令(例如例如IEC标准的定时器和计数器指令标准的定时器和计数器指令)实际上实际上 是功能块,在调用它们时需要指定配套的背景数据块。是功能块,在调用它们时需要指定配套的背景数据块。 S7-1200PLC用户程序结构与故障 诊断 13 3.1 用户程序结构简介用户程序结构简介数据块数据块 数据块数据块(Data block,DB)是用于存放执行代码块时所需的数据的是用于存放执行代码块时所需的数据的 数据区,有两种类型的数据块:数据区,有两种类型的数据块: 全局全局(Global)数据块:存储供所有的代码块使用的数据,所有的数据块:存储供所有的代码块使用的数据,所有的
18、OB、FB和和FC都可以都可以 访问。访问。 背景数据块:存储供特定的背景数据块:存储供特定的FB使用的数据。使用的数据。 S7-1200PLC用户程序结构与故障 诊断 14 3.2 PLC的工作原理的工作原理操作系统与用户程序操作系统与用户程序 CPU的操作系统用来组织与具体的控制任务无关的所有的的操作系统用来组织与具体的控制任务无关的所有的CPU功功 能,包括:处理暖启动、刷新输入能,包括:处理暖启动、刷新输入/输出过程映像、调用用户程序、输出过程映像、调用用户程序、 检测中断事件和调用中断组织块等。检测中断事件和调用中断组织块等。 用户程序:处理具体的最大化任务必须的所有功能,包括:用户
19、程序:处理具体的最大化任务必须的所有功能,包括: 1)检查是否满足暖启动需要的条件,例如限位开关是否在正确的检查是否满足暖启动需要的条件,例如限位开关是否在正确的 位置,安全继电器是否处于正常的工作状态;位置,安全继电器是否处于正常的工作状态; 2)处理过程数据,例如用读取的输入信号来控制输出信号等;处理过程数据,例如用读取的输入信号来控制输出信号等; 3)用用OB中的程序对中断事件作出反应,例如在诊断错误中断组织中的程序对中断事件作出反应,例如在诊断错误中断组织 块块OB82中发出报警信号;中发出报警信号; 4)在程序执行中处理错误。在程序执行中处理错误。 S7-1200PLC用户程序结构与
20、故障 诊断 15 3.2 PLC的工作原理的工作原理CPU的工作模式的工作模式 1/4 CPU 有三种工作模式:有三种工作模式: STOP 模式、模式、STARTUP 模式和模式和 RUN 模模 式。式。CPU 前面的状态前面的状态 LED 指示当前工作模式。指示当前工作模式。 l 在在 STOP 模式下,模式下,CPU 不执行任何程序,而用户可以下载项不执行任何程序,而用户可以下载项 目。目。 l在在 STARTUP 模式下,执行一次启动模式下,执行一次启动OB(如果存在如果存在)。在。在RUN 模模 式的启动阶段,不处理任何中断事件。式的启动阶段,不处理任何中断事件。 l在在RUN模式下,
21、重复执行扫描周期。中断事件可能会在程序循模式下,重复执行扫描周期。中断事件可能会在程序循 环阶段的任何点发生并进行处理。处于环阶段的任何点发生并进行处理。处于RUN模式下时,无法下载模式下时,无法下载 任何项目。任何项目。 S7-1200PLC用户程序结构与故障 诊断 16 3.2 PLC的工作原理的工作原理CPU的工作模式的工作模式 2/4 在在 STOP 模式下,模式下,CPU 处理所有通信请求(如果适用)并处理所有通信请求(如果适用)并 执行自诊断。执行自诊断。 在在STOP模式下,模式下,CPU不执行用户程序,过程映像也不会自动更不执行用户程序,过程映像也不会自动更 新。新。 S7-1
22、200PLC用户程序结构与故障 诊断 17 3.2 PLC的工作原理的工作原理CPU的工作模式的工作模式 3/4 上电后上电后CPU进入进入STARTUP模式,进行上电诊断和系统初始化,模式,进行上电诊断和系统初始化, 检查到某些错误时,将禁止检查到某些错误时,将禁止CPU进入进入RUN模式,保持在模式,保持在STOP。 STARTUP: A 复位复位I 存储区存储区 B 使用上一次使用上一次RUN模式最后的值或替换值初始化输出模式最后的值或替换值初始化输出 C 执行启动执行启动 OB D 将物理输入的状态复制到将物理输入的状态复制到 I 存储器存储器 E 将所有中断事件存储到要在将所有中断事
23、件存储到要在 RUN模式下处理的队列中模式下处理的队列中 F 将过程映像输出区将过程映像输出区(Q区区)的值写到物理输出的值写到物理输出 S7-1200PLC用户程序结构与故障 诊断 18 3.2 PLC的工作原理的工作原理CPU的工作模式的工作模式 4/4 启动阶段结束后,进入启动阶段结束后,进入 RUN 模式,模式,CPU 执行下图所示的任务:执行下图所示的任务: RUN 将过程映像输出区将过程映像输出区(Q区区)的值写到物理输出的值写到物理输出 将物理输入的状态复制到将物理输入的状态复制到 I 存储器存储器 执行程序循环执行程序循环 OB 处理通信请求和进行自诊断处理通信请求和进行自诊断
24、 在扫描周期的任何阶段处理中断和通信在扫描周期的任何阶段处理中断和通信 S7-1200PLC用户程序结构与故障 诊断 19 3.2 PLC的工作原理的工作原理工作模式的切换工作模式的切换 CPU模块上没有切换工作模式的模式选择开关,只能用模块上没有切换工作模式的模式选择开关,只能用STEP 7 Basic在线工具中的在线工具中的CPU操作员面板,或工具栏上的按钮,来切操作员面板,或工具栏上的按钮,来切 换换STOP或或RUN工作模式。工作模式。 也可以在程序中用也可以在程序中用STP指令使指令使CPU进入进入STOP模式。模式。 S7-1200PLC用户程序结构与故障 诊断 20 3.3 功能
25、与功能块功能与功能块功能的特点功能的特点 功能功能(Function, FC)和功能块和功能块(Function Block, FB)是用户编写的子是用户编写的子 程序,他们包含完成特定任务的程序。程序,他们包含完成特定任务的程序。 FC和和FB有与调用它的块共享的输入、输出参数,执行完有与调用它的块共享的输入、输出参数,执行完FC和和FB 后,将执行结果返回给调用它的代码块。后,将执行结果返回给调用它的代码块。 功能没有固定的存储区,功能执行结束后,其局部变量中的临时功能没有固定的存储区,功能执行结束后,其局部变量中的临时 数据就丢失了。可以用全局变量来存储那些在功能执行结束后需数据就丢失了
26、。可以用全局变量来存储那些在功能执行结束后需 要保存的数据。要保存的数据。 S7-1200PLC用户程序结构与故障 诊断 21 3.3 功能与功能块功能与功能块生成功能生成功能 设压力变送器量程的下限为设压力变送器量程的下限为0MPa,上限为,上限为High MPa,经,经A/D转转 换后得到换后得到0 27648的整数。数字的整数。数字N和压力和压力P之间的计算公式:之间的计算公式: 27648/NHighP 双击 S7-1200PLC用户程序结构与故障 诊断 22 3.3 功能与功能块功能与功能块功能的局部数据功能的局部数据 1/3 在界面区中生成局部变量,只能在它所在的块中使用。局部变量
27、在界面区中生成局部变量,只能在它所在的块中使用。局部变量 的名字有字符的名字有字符(包括汉字包括汉字)和数字组成。和数字组成。 1)Input(输入参数输入参数):由调用它的块提供的输入数据。:由调用它的块提供的输入数据。 2)Output(输出参数输出参数):返回给调用它的块的程序执行结果。:返回给调用它的块的程序执行结果。 3)InOut(输入输入_输出参数输出参数):初值有调用它的块提供,块执行后将:初值有调用它的块提供,块执行后将 它的返回值返回给调用它的块。它的返回值返回给调用它的块。 4)Temp(临时数据临时数据):暂时保存在局部数据堆栈中的数据。只是在:暂时保存在局部数据堆栈中
28、的数据。只是在 执行块时使用临时数据,执行完后,不在保存临时数据的数值,执行块时使用临时数据,执行完后,不在保存临时数据的数值, 它可能被别的块的临时数据覆盖。它可能被别的块的临时数据覆盖。 5)Return中的中的Ret_Val(返回值返回值),属于输出参数。,属于输出参数。 S7-1200PLC用户程序结构与故障 诊断 23 3.3 功能与功能块功能与功能块功能的局部数据功能的局部数据 2/3 S7-1200PLC用户程序结构与故障 诊断 24 3.3 功能与功能块功能与功能块功能的局部数据功能的局部数据 3/3 生成局部变量时,不需要指定存储器地址,根据各变量的类型,生成局部变量时,不需
29、要指定存储器地址,根据各变量的类型, 程序编辑器自动地为所有变量指定存储器地址。程序编辑器自动地为所有变量指定存储器地址。 返回值返回值Ret_Val属于输出参数,默认的数据类型为属于输出参数,默认的数据类型为Void,该数据,该数据 类型不保存数据,用于功能不需要返回值的情况,在调用类型不保存数据,用于功能不需要返回值的情况,在调用FC1时,时, 看不到看不到Ret_Val。 如果将它设置为如果将它设置为Void之外的数据类型,在之外的数据类型,在FC1内部编程时可以使内部编程时可以使 用该变量,调用用该变量,调用FC1时可以在方框的右边看到作为输出参数的时可以在方框的右边看到作为输出参数的
30、 Ret_Val。 S7-1200PLC用户程序结构与故障 诊断 25 3.3 功能与功能块功能与功能块FC1的程序设计的程序设计 STEP 7 Basic自动地在局部变量的前面添加自动地在局部变量的前面添加#号。号。 S7-1200PLC用户程序结构与故障 诊断 26 3.3 功能与功能块功能与功能块在在OB1中调用中调用FC1 在在FC的界面区中定义的参数称为的界面区中定义的参数称为FC的形式参数,简称为形参,的形式参数,简称为形参, 形参在形参在FC内部的程序中使用,在别的逻辑块调用内部的程序中使用,在别的逻辑块调用FC时,需要为时,需要为 每个形参指定实际的参数,简称为实参。每个形参指
31、定实际的参数,简称为实参。 实参与它对应的形参应具有相同的数据类型。实参与它对应的形参应具有相同的数据类型。 S7-1200PLC用户程序结构与故障 诊断 27 3.3 功能与功能块功能与功能块调用功能的实验调用功能的实验 S7-1200PLC用户程序结构与故障 诊断 28 3.3 功能与功能块功能与功能块为块提供密码保护为块提供密码保护 选中生产的选中生产的FC1,执行菜单命令:,执行菜单命令:“编辑编辑”“专有技术保护专有技术保护” “启用专有技术保护启用专有技术保护”,在打开的对话框中输入密码并确认,在打开的对话框中输入密码并确认, 项目树中的项目树中的FC1图标上出现锁的符号,表示图标
32、上出现锁的符号,表示FC1受保护。双击打受保护。双击打 开开FC1,可以看到界面区的变量,但是看不到程序区的程序。,可以看到界面区的变量,但是看不到程序区的程序。 也可修改或禁用专有技术保护。也可修改或禁用专有技术保护。 S7-1200PLC用户程序结构与故障 诊断 29 3.3 功能与功能块功能与功能块功能块的特点功能块的特点 功能块功能块(FB)是用户编写的有自己的存储区是用户编写的有自己的存储区(背景数据块背景数据块)的块的块。FB 的典型应用是执行不能在一个扫描周期结束的操作。的典型应用是执行不能在一个扫描周期结束的操作。 每次调用功能块是,都需要指定一个背景数据块,背景数据块随每次调
33、用功能块是,都需要指定一个背景数据块,背景数据块随 功能块的调用而打开,在调用结束时自动关闭。功能块的调用而打开,在调用结束时自动关闭。 功能块的输入、输出和静态变量功能块的输入、输出和静态变量(Static)用指定的背景数据块保用指定的背景数据块保 存,但是不会保存临时局部变量存,但是不会保存临时局部变量(Temp)中的数据。中的数据。 功能块执行后,背景数据块中的数据不会丢失。功能块执行后,背景数据块中的数据不会丢失。 S7-1200PLC用户程序结构与故障 诊断 30 3.3 功能与功能块功能与功能块功能块的局部变量功能块的局部变量 1/2 FB1的界面区 FB1的背景数据块 S7-12
34、00PLC用户程序结构与故障 诊断 31 3.3 功能与功能块功能与功能块功能块的局部变量功能块的局部变量 2/2 功能块的数据永久性地保存在它的背景数据块中,在功能块执行功能块的数据永久性地保存在它的背景数据块中,在功能块执行 完后也不会丢失,以供下次执行时使用。完后也不会丢失,以供下次执行时使用。 其他代码块可以访问背景数据块中的变量。其他代码块可以访问背景数据块中的变量。 不能直接删除和修改背景数据块中的变量,只能在它的功能块的不能直接删除和修改背景数据块中的变量,只能在它的功能块的 界面区中删除和修改这些变量。界面区中删除和修改这些变量。 生成功能块的输入、输出参数和静态变量时,它们被
35、自动指定一生成功能块的输入、输出参数和静态变量时,它们被自动指定一 个默认值,可以修改这些默认值。变量的默认值被传送给个默认值,可以修改这些默认值。变量的默认值被传送给FB的的 背景数据块,作为同一个变量的初始值。背景数据块,作为同一个变量的初始值。 可以在背景数据块中修改变量的初始值。可以在背景数据块中修改变量的初始值。 调用调用FB时没有指定实参的形参使用背景数据块中的初始值。时没有指定实参的形参使用背景数据块中的初始值。 S7-1200PLC用户程序结构与故障 诊断 32 3.3 功能与功能块功能与功能块编写编写FB1的程序的程序 S7-1200PLC用户程序结构与故障 诊断 33 3.
36、3 功能与功能块功能与功能块在在OB1中调用中调用FB1 1/2 S7-1200PLC用户程序结构与故障 诊断 34 3.3 功能与功能块功能与功能块在在OB1中调用中调用FB1 2/2 如果没有给功能块如果没有给功能块 (FB) 的输入、输出或输入的输入、输出或输入/输出参数赋值,将输出参数赋值,将 使用背景数据块使用背景数据块 (DB) 中存储的值。中存储的值。 可以给可以给FB接口中的参数赋初值。这些值将传送到相关的背景接口中的参数赋初值。这些值将传送到相关的背景 DB 中。如果未分配参数,将使用当前存储在背景中。如果未分配参数,将使用当前存储在背景 DB 中的值。中的值。 S7-120
37、0PLC用户程序结构与故障 诊断 35 3.3 功能与功能块功能与功能块处理调用错误处理调用错误 FB1最初没有输入参数最初没有输入参数“定时时间定时时间”。 在在OB1中调用符号名为中调用符号名为“Motor”的的FB1后,在后,在FB1的界面区增加的界面区增加 了输入参数了输入参数“定时时间定时时间”,OB1中被调用的中被调用的FB1的方框和字符变的方框和字符变 为红色。为红色。 点击工件栏上的点击工件栏上的 (更新不一致的块调用更新不一致的块调用) ,出现,出现“界面更新界面更新” 对话框,显示出原有的块界面和新的界面。对话框,显示出原有的块界面和新的界面。 点击确定,点击确定,OB1中
38、被调用的中被调用的FB1被修改为新的界面,被修改为新的界面,FB1中的红中的红 色错误标记消失。色错误标记消失。 S7-1200PLC用户程序结构与故障 诊断 36 3.3 功能与功能块功能与功能块FC与与FB的区别的区别 1)功能块有背景数据块,功能没有背景数据块。功能块有背景数据块,功能没有背景数据块。 2)只能在功能内部访问它的局部变量,其他代码块或只能在功能内部访问它的局部变量,其他代码块或HMI可以访可以访 问功能块的背景数据块中的变量。问功能块的背景数据块中的变量。 3)功能没有静态变量,功能块有保存在背景数据块中的静态变量。功能没有静态变量,功能块有保存在背景数据块中的静态变量。
39、 功能如果有执行完后需要保存的数据,只能存放在全局变量中功能如果有执行完后需要保存的数据,只能存放在全局变量中 (如全局数据块和如全局数据块和M去去),但这样会影响功能的可移植性。,但这样会影响功能的可移植性。 4)功能块的局部变量功能块的局部变量(不包含不包含Temp)有默认值有默认值(初始值初始值),功能的局,功能的局 部变量没有初始值。在调用功能块时如果没有设置某些输入、输部变量没有初始值。在调用功能块时如果没有设置某些输入、输 出参数的实参,将使用背景数据块中的初始值。调用功能时应给出参数的实参,将使用背景数据块中的初始值。调用功能时应给 所有的形参指定实参。所有的形参指定实参。 S7
40、-1200PLC用户程序结构与故障 诊断 37 3.3 功能与功能块功能与功能块OB与与FC和和FB的区别的区别 1)对应的事情发生时,由操作系统调用组织块,对应的事情发生时,由操作系统调用组织块,FB和和FC是用户程是用户程 序在代码块中调用。序在代码块中调用。 2)组织块没有输入参数、输出参数和静态变量,只有临时局部数组织块没有输入参数、输出参数和静态变量,只有临时局部数 据。有的组织块自动生成的临时局部数据包含了与启动组织块的据。有的组织块自动生成的临时局部数据包含了与启动组织块的 时间有关的信息,它们由操作系统提供。时间有关的信息,它们由操作系统提供。 S7-1200PLC用户程序结构
41、与故障 诊断 38 3.3 功能与功能块功能与功能块FB的多重背景数据块的多重背景数据块 1/4 每次调用定时器和计数器指令时,都需要指定一个背景数据块。每次调用定时器和计数器指令时,都需要指定一个背景数据块。 如果这类指令很多,将会生成大量的数据块如果这类指令很多,将会生成大量的数据块“碎片碎片”。 为了解决这个问题,在功能块中使用定时器、计数器指令时,可为了解决这个问题,在功能块中使用定时器、计数器指令时,可 以在功能块的界面区定义数据类型为以在功能块的界面区定义数据类型为IEC_Timer或或IEC_Counter 的静态变量,用这些静态变量来提供定时器和计数器的背景数据。的静态变量,用
42、这些静态变量来提供定时器和计数器的背景数据。 这种功能的背景数据块称为多重背景数据块。这种功能的背景数据块称为多重背景数据块。 这样多个定时器或计数器的背景数据块被包含在它们所在的功能这样多个定时器或计数器的背景数据块被包含在它们所在的功能 块的背景数据块中,而不需要为每个定时器或计数器设置一个单块的背景数据块中,而不需要为每个定时器或计数器设置一个单 独的背景数据块,减少了处理数据的时间,能更合理地利用存储独的背景数据块,减少了处理数据的时间,能更合理地利用存储 空间。空间。 在共享的多重背景数据块中,定时器、计数器的数据结构之间不在共享的多重背景数据块中,定时器、计数器的数据结构之间不 会
43、产生相互作用。会产生相互作用。 S7-1200PLC用户程序结构与故障 诊断 39 3.3 功能与功能块功能与功能块FB的多重背景数据块的多重背景数据块 2/4 调用定时器时 S7-1200PLC用户程序结构与故障 诊断 40 3.3 功能与功能块功能与功能块FB的多重背景数据块的多重背景数据块 3/4 只能以多重背景方式调用只能以多重背景方式调用STEP 7 Basic提供的库中包含的功能块,提供的库中包含的功能块, 不能以多种背景方式调用用户创建的功能块。不能以多种背景方式调用用户创建的功能块。 S7-1200PLC用户程序结构与故障 诊断 41 3.3 功能与功能块功能与功能块FB的多重
44、背景数据块的多重背景数据块 4/4 变量表中的变量:变量表中的变量: OB1中两次调用中两次调用FB2: S7-1200PLC用户程序结构与故障 诊断 42 3.4 全局数据块全局数据块类型类型 数据块数据块(DB)是用于存放执行代码时所需的数据的数据区。与代是用于存放执行代码时所需的数据的数据区。与代 码块不同,数据块没有指令,码块不同,数据块没有指令,STEP 7 Basic按数据生成的顺序自按数据生成的顺序自 动地为数据块中的变量分配地址。动地为数据块中的变量分配地址。 有两种类型数据块:有两种类型数据块: 全局数据块:存储供所有的代码块使用的数据,所有的全局数据块:存储供所有的代码块使
45、用的数据,所有的OB、FB 和和FC都可以访问;都可以访问; 背景数据块:存储的数据供特定的背景数据块:存储的数据供特定的FB使用。背景数据块中保存使用。背景数据块中保存 的是对应的的是对应的FB的的Input、Output、InOut和和Static变量,变量,Temp没没 有用背景数据块保存。有用背景数据块保存。 S7-1200PLC用户程序结构与故障 诊断 43 3.4 全局数据块全局数据块建立建立 可以修改块的编号 选择是全局DB或是某个 FB对应的的背景数据块 修改数据块的名称 只能用符号地址访 问生成的块中的变 量,不能使用绝对 地址,可以提高存 储器的利用率 S7-1200PLC
46、用户程序结构与故障 诊断 44 3.4 全局数据块全局数据块格式格式 全部监视全部监视 插入行插入行 添加行添加行 扩展模式扩展模式 结构和数组的结构和数组的“偏移量偏移量”它们在数据块中的起始地址它们在数据块中的起始地址 结构的元素的结构的元素的“偏移量偏移量”列是它们在结构中的地址偏移量列是它们在结构中的地址偏移量 S7-1200PLC用户程序结构与故障 诊断 45 3.4 全局数据块全局数据块访问访问 数据块可以按位数据块可以按位(例如例如DBX3.5)、字节、字节(DBB)、字、字(DBW)和双字和双字 (DBD)来访问。来访问。 在访问数据块中的数据时,应指明数据块的名称,可以用符号
47、在访问数据块中的数据时,应指明数据块的名称,可以用符号 地址或绝对地址访问:地址或绝对地址访问: “GloablDB1”.功率功率2,或绝对地址,或绝对地址 DB5.DBW14。 S7-1200PLC用户程序结构与故障 诊断 46 3.5 中断事件与中断指令中断事件与中断指令启动组织块的事件启动组织块的事件 事件类型事件类型OB编号编号 OB 个数个数 启动事件启动事件 队列队列 深度深度 OB 优先级优先级 优先优先 级组级组 程序循环程序循环1或或 200 1 启动或结束前一循环启动或结束前一循环OB11 1 启动启动100或或 200 0 从从STOP切换到切换到RUN11 时间延迟时间
48、延迟 200 4 延迟时间到延迟时间到83 2 循环中断循环中断 200 4 固定的循环时间到固定的循环时间到84 硬件中断硬件中断 200 50 上升沿上升沿( 16个个) 、下降沿、下降沿( 16个个) 325 HSC计数值计数值=设定值,计数方设定值,计数方 向编号,外部复位,最大分别向编号,外部复位,最大分别6 个个 166 诊断错误诊断错误820或或1 模块检测到错误模块检测到错误89 时间错误时间错误800或或1 超过最大循环时间,调用的超过最大循环时间,调用的OB 正在执行,队列溢出,因为中正在执行,队列溢出,因为中 断负荷过高丢失中断断负荷过高丢失中断 8263 S7-1200
49、PLC用户程序结构与故障 诊断 47 3.5 中断事件与中断指令中断事件与中断指令不会启动不会启动OB的事件的事件 事件级别事件级别事事 件件事件优先级事件优先级系统反应系统反应 插入插入/拔出拔出插入插入/拔出模块拔出模块21STOP 访问错误访问错误刷新过程映像的刷新过程映像的I/O访问错误访问错误22忽略忽略 编程错误编程错误块内的编程错误块内的编程错误23STOP I/O访问错误访问错误块内的块内的I/O访问错误访问错误24STOP 超过最大循环超过最大循环 时间的两倍时间的两倍 超过最大循环时间的两倍超过最大循环时间的两倍27STOP S7-1200PLC用户程序结构与故障 诊断 4
50、8 3.5 中断事件与中断指令中断事件与中断指令事件执行的优先级与中断队列事件执行的优先级与中断队列 优先级、优先级组合队列用来决定时间服务程序的处理顺序。优先级、优先级组合队列用来决定时间服务程序的处理顺序。 每个每个CPU事件都有它的优先级,不同优先级的事件分为事件都有它的优先级,不同优先级的事件分为3个优先个优先 级组。优先级的编号越大,优先级越高。级组。优先级的编号越大,优先级越高。 事件一般按优先级的高低来处理,先处理高优先级的事件。优先事件一般按优先级的高低来处理,先处理高优先级的事件。优先 级相同的事件按级相同的事件按“先来先服务先来先服务”的原则来处理。的原则来处理。 高优先级
51、组的事件可以中断低优先级组的事件的高优先级组的事件可以中断低优先级组的事件的OB的执行。一个的执行。一个 OB正在执行时,如果出现了另一个具有相同或较低优先级组的事正在执行时,如果出现了另一个具有相同或较低优先级组的事 件,后者不会中断正在处理的件,后者不会中断正在处理的OB,将根据它的优先级添加到对应,将根据它的优先级添加到对应 的中断队列排队等待。当前的的中断队列排队等待。当前的OB处理完后,再处理排队的事件。处理完后,再处理排队的事件。 不同的事件均有它自己的中断队列和不同的队列深度。对于特定不同的事件均有它自己的中断队列和不同的队列深度。对于特定 的事件类型,如果队列中的事件个数达到上
52、限,下一个事件将使的事件类型,如果队列中的事件个数达到上限,下一个事件将使 队列溢出,新的中断事件被丢弃,同时产生时间错误中断事件。队列溢出,新的中断事件被丢弃,同时产生时间错误中断事件。 S7-1200PLC用户程序结构与故障 诊断 49 3.5 中断事件与中断指令中断事件与中断指令程序循环组织块程序循环组织块 需要连续执行的程序应放在主程序需要连续执行的程序应放在主程序OB1中,中,CPU在在RUN模式时循模式时循 环执行环执行OB1,可以在,可以在OB1中调用中调用FC和和FB。 如果用户程序生成了其他程序循环如果用户程序生成了其他程序循环OB,CPU按按OB编号的顺序执编号的顺序执 行
53、它们,首先执行主程序行它们,首先执行主程序OB1,然后执行编号大于等于,然后执行编号大于等于200的程序的程序 循环循环OB。一般只需要一个程序循环组织块。一般只需要一个程序循环组织块。 S7-1200PLC用户程序结构与故障 诊断 50 3.5 中断事件与中断指令中断事件与中断指令启动组织块启动组织块 启动组织块用于初始化,启动组织块用于初始化,CPU从从STOP切换到切换到RUN时,执行一次时,执行一次 启动启动OB。执行完后,开始执行程序循环。执行完后,开始执行程序循环OB1。允许生成多个启。允许生成多个启 动动OB,默认的是,默认的是OB100,其他的启动,其他的启动OB的编号应大于等
54、于的编号应大于等于200。 一般只需要一个启动组织块。一般只需要一个启动组织块。 OB100的程序:的程序: OB201的程序:的程序: 将将CPU切换到切换到RUN后,后,QB0的数值为的数值为7,MB14和和MB16的值为的值为1, 说明只执行了一次说明只执行了一次OB100和和OB201。 S7-1200PLC用户程序结构与故障 诊断 51 3.5 中断事件与中断指令中断事件与中断指令循环中断组织块循环中断组织块 在设定的时间间隔,循环中断在设定的时间间隔,循环中断(cyclic interrupt)组织块被周期地执组织块被周期地执 行。最多可以组态行。最多可以组态4个循环中断事件,循环
55、中断个循环中断事件,循环中断OB的编号大于等于的编号大于等于 200。 S7-1200PLC用户程序结构与故障 诊断 52 3.5 中断事件与中断指令中断事件与中断指令硬件中断组织块硬件中断组织块 1/4 硬件中断组织块用于处理需要快速响应的过程事件。出现硬件中断组织块用于处理需要快速响应的过程事件。出现CPU内内 置的数字量输入的上升沿、下降沿和高速计数器事件时,立即中置的数字量输入的上升沿、下降沿和高速计数器事件时,立即中 止当前正在执行的程序,改为执行对应的硬件中断止当前正在执行的程序,改为执行对应的硬件中断OB(编号大于编号大于 等于等于200)。硬件中断组织块没有启动信息。硬件中断组
56、织块没有启动信息。 最多可以生成最多可以生成50个硬件中断个硬件中断OB: 1)上升沿事件:上升沿事件:CPU内置的数字量输入和内置的数字量输入和2点信号板的数字量输入点信号板的数字量输入 有有OFF变为变为ON时,产生上升沿事件。时,产生上升沿事件。 2)下降沿事件:上述数字量输入由下降沿事件:上述数字量输入由ON变变OFF时,产生下降沿事件。时,产生下降沿事件。 3)高速计数器高速计数器HSC1 6的实际计数值等于设定值的实际计数值等于设定值(CV=RV)。 4) HSC1 6的方向改变,计数值由增大变减小,或由减小变增大。的方向改变,计数值由增大变减小,或由减小变增大。 5) HSC1
57、6的外部复位,某些的外部复位,某些HSC的数字量外部复位输入从的数字量外部复位输入从OFF 变变ON时,将计数值复位为时,将计数值复位为0。 S7-1200PLC用户程序结构与故障 诊断 53 3.5 中断事件与中断指令中断事件与中断指令硬件中断组织块硬件中断组织块 2/4 硬件中断组织块的处理方法:硬件中断组织块的处理方法: 1)给一个事件指定一个硬件中断给一个事件指定一个硬件中断OB,这种方法最为简单方便,应,这种方法最为简单方便,应 优先采用;优先采用; 2)多个硬件中断多个硬件中断OB分时处理一个硬件中断事件,需要用分时处理一个硬件中断事件,需要用DETACH 指令取消原有的指令取消原
58、有的OB与事件的连接,用与事件的连接,用ATTACH指令将一个新的硬指令将一个新的硬 件中断件中断OB分配给硬件中断事件。分配给硬件中断事件。 S7-1200PLC用户程序结构与故障 诊断 54 3.5 中断事件与中断指令中断事件与中断指令硬件中断组织块硬件中断组织块 3/4 生成硬件中断组织块:生成硬件中断组织块: S7-1200PLC用户程序结构与故障 诊断 55 3.5 中断事件与中断指令中断事件与中断指令硬件中断组织块硬件中断组织块 4/4 建立一个新的建立一个新的OB用于用于 该硬件中断事件该硬件中断事件 将已有的将已有的OB203分配分配 给该硬件中断事件给该硬件中断事件 没有没有
59、OB连接到该连接到该 硬件中断事件硬件中断事件 组态硬件中断事件:组态硬件中断事件: S7-1200PLC用户程序结构与故障 诊断 56 3.5 中断事件与中断指令中断事件与中断指令中断连接与中断分离指令中断连接与中断分离指令 1/5 例:首先将硬件中断组织块例:首先将硬件中断组织块OB200分配给分配给I0.0的上升沿中断事件,的上升沿中断事件, 该中断事件出现时,调用该中断事件出现时,调用OB200。在。在OB200中,用中,用DETACH指令指令 断开断开I0.0上升沿事件与上升沿事件与OB200的连接,用的连接,用ATTACH指令建立指令建立I0.0上上 升沿事件与升沿事件与OB201
60、的连接。的连接。 下一次出现下一次出现I0.0上升沿事件时,调用上升沿事件时,调用OB201。在。在OB201中,用中,用 DETACH指令断开指令断开I0.0上升沿事件与上升沿事件与OB201的连接,用的连接,用ATTACH 指令建立指令建立I0.0上升沿事件与上升沿事件与OB200的连接。的连接。 用这样的方法,可以用用这样的方法,可以用OB200和和OB201轮流处理轮流处理I0.0的上升沿中断的上升沿中断 事件。事件。 S7-1200PLC用户程序结构与故障 诊断 57 3.5 中断事件与中断指令中断事件与中断指令中断连接与中断分离指令中断连接与中断分离指令 2/5 生成硬件中断组织块
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年唐山幼儿师范高等专科学校单招职业技能测试题库及答案详解(全优)
- 2026年嘉兴南洋职业技术学院单招职业适应性测试题库附答案详解(轻巧夺冠)
- 五官护理与季节变化
- 人力资源开发中心素质模型
- 经济学原理实习 2013.3.11
- 中医护理的常用器械
- 主题教育第四专题心得-1
- 食堂安全管理实施方案
- 中毒患者的出院指导
- 烹饪专业职业规划书
- 2026浙江台州市港航事业发展中心招聘2人考试备考试题及答案解析
- 2026年包头轻工职业技术学院单招职业技能测试题库附答案详解(研优卷)
- 腹膜透析护理实践指南(2025年版)
- GB/T 1535-2026大豆油
- 2026年春季学期人教版小学五年级语文教学计划
- 点金手丰年课件在线看
- 2026年课件-冀人版二年级下册科学全册新质教学课件(2026年春改版教材)-新版
- 2026年春季学期统编版一年级下册道德与法治教学计划附教学进度表
- 工程机械讲义
- 徐志摩简介专题知识
- TBSRS 005-2019 核电厂气态流出物中氚分析技术规范
评论
0/150
提交评论