第3章-S7-1200-PLC的用户程序结构与故障诊断ppt课件.ppt

上传人:飞****2 文档编号:28414945 上传时间:2022-07-28 格式:PPT 页数:84 大小:904KB
返回 下载 相关 举报
第3章-S7-1200-PLC的用户程序结构与故障诊断ppt课件.ppt_第1页
第1页 / 共84页
第3章-S7-1200-PLC的用户程序结构与故障诊断ppt课件.ppt_第2页
第2页 / 共84页
点击查看更多>>
资源描述

《第3章-S7-1200-PLC的用户程序结构与故障诊断ppt课件.ppt》由会员分享,可在线阅读,更多相关《第3章-S7-1200-PLC的用户程序结构与故障诊断ppt课件.ppt(84页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物1第第 3 章章S7-1200 PLC的用户程序结构的用户程序结构与故障诊断与故障诊断我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物23.1 用户程序结构简介用户程序结构简介模块化编程模块化编程 1/3 模块化编程将复杂的自动化任务划分为对应于生产过程的技术功模块化编程将复杂的自动化任务划分为对应于生产过程的技术功能的较小的子任务,每个子任务对应于一个称为能的较小的子任务

2、,每个子任务对应于一个称为“块块”的子程序,的子程序,可以通过块与块之间的相互调用来组织程序。这样的程序易于修可以通过块与块之间的相互调用来组织程序。这样的程序易于修改、查错和调试。改、查错和调试。块块简要描述简要描述组织块组织块(OB)操作系统与用户程序的接口,决定用户程序的结构操作系统与用户程序的接口,决定用户程序的结构功能块功能块(FB)用户编写的包含经常使用的功能的子程序,有专用的背景数用户编写的包含经常使用的功能的子程序,有专用的背景数据块据块功能功能(FC)用户编写的包含经常使用的功能的子程序,没有专用的背景用户编写的包含经常使用的功能的子程序,没有专用的背景数据块数据块背景数据块

3、背景数据块(DB)用于保存用于保存FB的输入变量、输出变量和静态变量,其数据在编的输入变量、输出变量和静态变量,其数据在编译时自动生成译时自动生成全局数据块全局数据块(DB) 存储用户数据的数据区域,供所有的代码块共享存储用户数据的数据区域,供所有的代码块共享我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物33.1 用户程序结构简介用户程序结构简介模块化编程模块化编程 2/3 块结构显著增加了块结构显著增加了PLC程序的组织透明性、可理解性和易维护性。程序的组织透明性、可理解性和易维护性。OB、FB、FC都

4、包含代码,统称为代码块都包含代码,统称为代码块(Code)块。块。被调用的代码块又可以调用别的代码块,这种调用称为嵌套调用。被调用的代码块又可以调用别的代码块,这种调用称为嵌套调用。在块调用中,调用者可以是各种代码块,被调用的块是在块调用中,调用者可以是各种代码块,被调用的块是OB之外之外的代码块。调用功能时需要为它指定一个背景数据块。的代码块。调用功能时需要为它指定一个背景数据块。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物43.1 用户程序结构简介用户程序结构简介模块化编程模块化编程 3/3 编程时

5、被调用的块应该是已经存在的块,即应先创建被调用的编程时被调用的块应该是已经存在的块,即应先创建被调用的块及其背景数据块。块及其背景数据块。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物53.1 用户程序结构简介用户程序结构简介组织块组织块 1/6 组织块组织块(Organization Block,OB)是操作系统与用户程序的接口,是操作系统与用户程序的接口,由操作系统调用由操作系统调用,用于控制循环扫描和中断程序的执行、,用于控制循环扫描和中断程序的执行、PLC的启动和错误处理等。的启动和错误处理等。组

6、织块的程序是用户编写的。组织块的程序是用户编写的。每个组织块必须有唯一的每个组织块必须有唯一的OB编号,编号,200之前的某些编号是保留之前的某些编号是保留的,其他的,其他OB的编号应大于等于的编号应大于等于200.没有可以调用没有可以调用OB的指令,的指令,S7-1200 CPU具有基于具有基于事件事件的特性,的特性,只有发生了某些特定事件,相应的只有发生了某些特定事件,相应的OB才会被执行。不要试图在才会被执行。不要试图在OB/FC/FB中调用某个中调用某个OB,除非用户触发与此,除非用户触发与此OB相关的相关的OB。例如用户可以在例如用户可以在OB1中通过中通过SRT_DINT指令设置延

7、迟时间,当指令设置延迟时间,当延迟时间到达时,延迟中断延迟时间到达时,延迟中断OB被触发。被触发。当特定事件发生时,相应当特定事件发生时,相应OB被调用,无论其是否包含程序代码。被调用,无论其是否包含程序代码。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物63.1 用户程序结构简介用户程序结构简介组织块组织块 2/6 l 程序循环组织块程序循环组织块(Program cycle OB):OB1是用户程序中的主程序,是用户程序中的主程序,CPU循环执行操作系统程序,在循环执行操作系统程序,在每一次循环中,操

8、作系统调用一次每一次循环中,操作系统调用一次OB1。因此。因此OB1中的程序也中的程序也是循环执行的。是循环执行的。允许有多个程序循环允许有多个程序循环OB,默认的是,默认的是OB1,其他程序循环,其他程序循环OB的的编号应大于等于编号应大于等于200。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物73.1 用户程序结构简介用户程序结构简介组织块组织块 3/6 l 启动组织块启动组织块(Startup OB):当当CPU的工作模式从的工作模式从STOP切换到切换到RUN时,执行一次启动时,执行一次启动(S

9、tartup)组织块,来初始化程序循环组织块,来初始化程序循环OB中的某些变量。中的某些变量。执行完启动执行完启动OB后,开始执行程序循环后,开始执行程序循环OB。可以有多个启动可以有多个启动OB,默认的为,默认的为OB100,其他启动,其他启动OB的编号应大的编号应大于等于于等于200。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物83.1 用户程序结构简介用户程序结构简介组织块组织块 4/6 l 中断组织块中断组织块(Interrupt OB):中断组织块用来实现对特殊内部事件或外部事件的快速响应。中

10、断组织块用来实现对特殊内部事件或外部事件的快速响应。如果没有中断事件出现,如果没有中断事件出现,CPU循环执行组织块循环执行组织块OB1。如果出现。如果出现中断事件,例如诊断中断和时间延迟中断等,因为中断事件,例如诊断中断和时间延迟中断等,因为OB1的中断的中断优先级最低,操作系统在执行完当前程序的当前指令后,立即优先级最低,操作系统在执行完当前程序的当前指令后,立即响应中断。响应中断。CPU暂停正在执行的程序块,自动调用一个分配给暂停正在执行的程序块,自动调用一个分配给该事件的组织块该事件的组织块(即中断程序即中断程序)来处理中断事件。执行完中断组来处理中断事件。执行完中断组织块后,返回被中

11、断的程序的断点处继续执行原来的程序。织块后,返回被中断的程序的断点处继续执行原来的程序。这意味着部分用户程序不必在每次循环中处理,而是在需要时这意味着部分用户程序不必在每次循环中处理,而是在需要时才被及时处理。处理中断事件的程序放在该事件驱动的才被及时处理。处理中断事件的程序放在该事件驱动的OB中。中。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物93.1 用户程序结构简介用户程序结构简介组织块组织块 5/6 时间延迟中断组织块时间延迟中断组织块(Time-delay OB):此此OB可以通过可以通过SR

12、T_DINT指令设置其延迟时间,当延迟时间到指令设置其延迟时间,当延迟时间到达时,延迟中断达时,延迟中断OB被触发。被触发。 周期中断组织块周期中断组织块(Cyclic interrupt OB):将在指定间隔之间被执行。将在指定间隔之间被执行。 硬件中断组织块硬件中断组织块(Hardware interrupt OB):将在指定的硬件事件发生时被执行,例如数字量输入信号的上将在指定的硬件事件发生时被执行,例如数字量输入信号的上升沿或下降沿。升沿或下降沿。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物10

13、3.1 用户程序结构简介用户程序结构简介组织块组织块 6/6 时间错误中断组织块时间错误中断组织块(Time-error interrupt OB):此此OB将在检测到时间错误将在检测到时间错误(程序循环扫描程序循环扫描OB执行时间超出了执行时间超出了CPU属性中定义的最大扫描时间属性中定义的最大扫描时间)时被执行,此时被执行,此OB的编号只能的编号只能是是OB80。当。当CPU中没有此中没有此OB时,用户可以指定当时间错误发时,用户可以指定当时间错误发生时生时CPU是忽略此错误还是转换到是忽略此错误还是转换到STOP模式。模式。 诊断错误中断组织块诊断错误中断组织块(Diagnostic e

14、rror interrupt OB):此此OB将在检测到诊断错误时被执行,此将在检测到诊断错误时被执行,此OB的编号只能是的编号只能是OB82。当当CPU中没有此中没有此OB时,用户可以指定当诊断错误发生时时,用户可以指定当诊断错误发生时CPU是忽略此错误还是转换到是忽略此错误还是转换到STOP模式。模式。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物113.1 用户程序结构简介用户程序结构简介功能功能 功能功能(Function,FC)是用户程序编写的子程序,它包含完成特是用户程序编写的子程序,它包含完

15、成特定任务的代码和参数。定任务的代码和参数。FC和和FB有与调用它的块共享的输入参有与调用它的块共享的输入参数和输出参数。执行完数和输出参数。执行完FC和和FB后,返回调用它的代码块。后,返回调用它的代码块。功能是快速执行的代码块,用于执行下列任务:完成标准的和功能是快速执行的代码块,用于执行下列任务:完成标准的和可重复使用的操作,例如算术运算;完成技术功能,例如使用可重复使用的操作,例如算术运算;完成技术功能,例如使用位逻辑运算的控制。位逻辑运算的控制。可以在程序的不同位置多次调用同一个可以在程序的不同位置多次调用同一个FC,这可以简化重复执,这可以简化重复执行的任务的变成。行的任务的变成。

16、功能没有固定的存储区,执行结束后,其临时变量中的数据就功能没有固定的存储区,执行结束后,其临时变量中的数据就丢失了。可以用全局数据块或丢失了。可以用全局数据块或M存储区来存储那些在功能执行存储区来存储那些在功能执行结束后需要保持的数据。结束后需要保持的数据。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物123.1 用户程序结构简介用户程序结构简介功能块功能块 功能块功能块(Function Block,FB)是用户程序编写的子程序。调用功是用户程序编写的子程序。调用功能块时,需要制定背景数据块,是功能块专

17、用的存储区。能块时,需要制定背景数据块,是功能块专用的存储区。CPU执执行行FB中的程序代码,将块的输入、输出参数和局部静态变量保中的程序代码,将块的输入、输出参数和局部静态变量保存在背景数据块中,以便可以从一个扫描周期到下一个扫描周期存在背景数据块中,以便可以从一个扫描周期到下一个扫描周期快速访问它们。快速访问它们。FB的典型应用是执行不能在一个扫描周期结束的操作。的典型应用是执行不能在一个扫描周期结束的操作。在调用在调用FB时,打开了对应的背景数据块,后者的变量可以供其时,打开了对应的背景数据块,后者的变量可以供其他代码块使用。他代码块使用。调用同一个功能块时使用不同的背景数据块,可以控制

18、不同的设调用同一个功能块时使用不同的背景数据块,可以控制不同的设备。例如用来控制水泵和阀门的功能使用包含特定的操作参数的备。例如用来控制水泵和阀门的功能使用包含特定的操作参数的不同的背景数据块,可以控制不同的水泵和阀门。不同的背景数据块,可以控制不同的水泵和阀门。S7-1200的部分指令的部分指令(例如例如IEC标准的定时器和计数器指令标准的定时器和计数器指令)实际上实际上是功能块,在调用它们时需要指定配套的背景数据块。是功能块,在调用它们时需要指定配套的背景数据块。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个

19、活的生物133.1 用户程序结构简介用户程序结构简介数据块数据块 数据块数据块(Data block,DB)是用于存放执行代码块时所需的数据的是用于存放执行代码块时所需的数据的数据区,有两种类型的数据块:数据区,有两种类型的数据块:全局全局(Global)数据块:存储供所有的代码块使用的数据,所有的数据块:存储供所有的代码块使用的数据,所有的OB、FB和和FC都可以都可以 访问。访问。背景数据块:存储供特定的背景数据块:存储供特定的FB使用的数据。使用的数据。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物

20、143.2 PLC的工作原理的工作原理操作系统与用户程序操作系统与用户程序 CPU的操作系统用来组织与具体的控制任务无关的所有的的操作系统用来组织与具体的控制任务无关的所有的CPU功功能,包括:处理暖启动、刷新输入能,包括:处理暖启动、刷新输入/输出过程映像、调用用户程序、输出过程映像、调用用户程序、检测中断事件和调用中断组织块等。检测中断事件和调用中断组织块等。用户程序:处理具体的最大化任务必须的所有功能,包括:用户程序:处理具体的最大化任务必须的所有功能,包括:1)检查是否满足暖启动需要的条件,例如限位开关是否在正确的检查是否满足暖启动需要的条件,例如限位开关是否在正确的位置,安全继电器是

21、否处于正常的工作状态;位置,安全继电器是否处于正常的工作状态;2)处理过程数据,例如用读取的输入信号来控制输出信号等;处理过程数据,例如用读取的输入信号来控制输出信号等;3)用用OB中的程序对中断事件作出反应,例如在诊断错误中断组织中的程序对中断事件作出反应,例如在诊断错误中断组织块块OB82中发出报警信号;中发出报警信号;4)在程序执行中处理错误。在程序执行中处理错误。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物153.2 PLC的工作原理的工作原理CPU的工作模式的工作模式 1/4CPU 有三种工作

22、模式:有三种工作模式: STOP 模式、模式、STARTUP 模式和模式和 RUN 模模式。式。CPU 前面的状态前面的状态 LED 指示当前工作模式。指示当前工作模式。 l 在在 STOP 模式下,模式下,CPU 不执行任何程序,而用户可以下载项不执行任何程序,而用户可以下载项目。目。 l在在 STARTUP 模式下,执行一次启动模式下,执行一次启动OB(如果存在如果存在)。在。在RUN 模模式的启动阶段,不处理任何中断事件。式的启动阶段,不处理任何中断事件。 l在在RUN模式下,重复执行扫描周期。中断事件可能会在程序循模式下,重复执行扫描周期。中断事件可能会在程序循环阶段的任何点发生并进行

23、处理。处于环阶段的任何点发生并进行处理。处于RUN模式下时,无法下载模式下时,无法下载任何项目。任何项目。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物163.2 PLC的工作原理的工作原理CPU的工作模式的工作模式 2/4在在 STOP 模式下,模式下,CPU 处理所有通信请求(如果适用)并处理所有通信请求(如果适用)并 执行自诊断。执行自诊断。 在在STOP模式下,模式下,CPU不执行用户程序,过程映像也不会自动更不执行用户程序,过程映像也不会自动更新。新。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,

24、为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物173.2 PLC的工作原理的工作原理CPU的工作模式的工作模式 3/4上电后上电后CPU进入进入STARTUP模式,进行上电诊断和系统初始化,模式,进行上电诊断和系统初始化,检查到某些错误时,将禁止检查到某些错误时,将禁止CPU进入进入RUN模式,保持在模式,保持在STOP。STARTUP:A 复位复位I 存储区存储区 B 使用上一次使用上一次RUN模式最后的值或替换值初始化输出模式最后的值或替换值初始化输出 C 执行启动执行启动 OB D 将物理输入的状态复制到将物理输入的状态复制到 I 存储器

25、存储器 E 将所有中断事件存储到要在将所有中断事件存储到要在 RUN模式下处理的队列中模式下处理的队列中 F 将过程映像输出区将过程映像输出区(Q区区)的值写到物理输出的值写到物理输出 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物183.2 PLC的工作原理的工作原理CPU的工作模式的工作模式 4/4启动阶段结束后,进入启动阶段结束后,进入 RUN 模式,模式,CPU 执行下图所示的任务:执行下图所示的任务:RUN 将过程映像输出区将过程映像输出区(Q区区)的值写到物理输出的值写到物理输出 将物理输入的

26、状态复制到将物理输入的状态复制到 I 存储器存储器 执行程序循环执行程序循环 OB 处理通信请求和进行自诊断处理通信请求和进行自诊断 在扫描周期的任何阶段处理中断和通信在扫描周期的任何阶段处理中断和通信 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物193.2 PLC的工作原理的工作原理工作模式的切换工作模式的切换CPU模块上没有切换工作模式的模式选择开关,只能用模块上没有切换工作模式的模式选择开关,只能用STEP 7 Basic在线工具中的在线工具中的CPU操作员面板,或工具栏上的按钮,来切操作员面板,

27、或工具栏上的按钮,来切换换STOP或或RUN工作模式。工作模式。也可以在程序中用也可以在程序中用STP指令使指令使CPU进入进入STOP模式。模式。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物203.3 功能与功能块功能与功能块功能的特点功能的特点功能功能(Function, FC)和功能块和功能块(Function Block, FB)是用户编写的是用户编写的子程序,他们包含完成特定任务的程序。子程序,他们包含完成特定任务的程序。FC和和FB有与调用它的块共享的输入、输出参数,执行完有与调用它的块共享

28、的输入、输出参数,执行完FC和和FB后,将执行结果返回给调用它的代码块。后,将执行结果返回给调用它的代码块。功能没有固定的存储区,功能执行结束后,其局部变量中的临时功能没有固定的存储区,功能执行结束后,其局部变量中的临时数据就丢失了。可以用全局变量来存储那些在功能执行结束后需数据就丢失了。可以用全局变量来存储那些在功能执行结束后需要保存的数据。要保存的数据。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物213.3 功能与功能块功能与功能块生成功能生成功能设压力变送器量程的下限为设压力变送器量程的下限为0M

29、Pa,上限为,上限为High MPa,经,经A/D转转换后得到换后得到0 27648的整数。数字的整数。数字N和压力和压力P之间的计算公式:之间的计算公式:27648/NHighP双击我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物223.3 功能与功能块功能与功能块功能的局部数据功能的局部数据 1/3在界面区中生成局部变量,只能在它所在的块中使用。局部变量在界面区中生成局部变量,只能在它所在的块中使用。局部变量的名字有字符的名字有字符(包括汉字包括汉字)和数字组成。和数字组成。1)Input(输入参数输入

30、参数):由调用它的块提供的输入数据。:由调用它的块提供的输入数据。2)Output(输出参数输出参数):返回给调用它的块的程序执行结果。:返回给调用它的块的程序执行结果。3)InOut(输入输入_输出参数输出参数):初值有调用它的块提供,块执行后将:初值有调用它的块提供,块执行后将它的返回值返回给调用它的块。它的返回值返回给调用它的块。4)Temp(临时数据临时数据):暂时保存在局部数据堆栈中的数据。只是在:暂时保存在局部数据堆栈中的数据。只是在执行块时使用临时数据,执行完后,不在保存临时数据的数值,执行块时使用临时数据,执行完后,不在保存临时数据的数值,它可能被别的块的临时数据覆盖。它可能被

31、别的块的临时数据覆盖。5)Return中的中的Ret_Val(返回值返回值),属于输出参数。,属于输出参数。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物233.3 功能与功能块功能与功能块功能的局部数据功能的局部数据 2/3我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物243.3 功能与功能块功能与功能块功能的局部数据功能的局部数据 3/3生成局部变量时,不需要指定存储器地址,根据各变量的类型,生成局部变量时,不需

32、要指定存储器地址,根据各变量的类型,程序编辑器自动地为所有变量指定存储器地址。程序编辑器自动地为所有变量指定存储器地址。返回值返回值Ret_Val属于输出参数,默认的数据类型为属于输出参数,默认的数据类型为Void,该数据,该数据类型不保存数据,用于功能不需要返回值的情况,在调用类型不保存数据,用于功能不需要返回值的情况,在调用FC1时,时,看不到看不到Ret_Val。如果将它设置为如果将它设置为Void之外的数据类型,在之外的数据类型,在FC1内部编程时可以使内部编程时可以使用该变量,调用用该变量,调用FC1时可以在方框的右边看到作为输出参数的时可以在方框的右边看到作为输出参数的Ret_Va

33、l。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物253.3 功能与功能块功能与功能块FC1的程序设计的程序设计STEP 7 Basic自动地在局部变量的前面添加自动地在局部变量的前面添加#号。号。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物263.3 功能与功能块功能与功能块在在OB1中调用中调用FC1在在FC的界面区中定义的参数称为的界面区中定义的参数称为FC的形式参数,简称为形参,的形式参数,简称为形参,形参

34、在形参在FC内部的程序中使用,在别的逻辑块调用内部的程序中使用,在别的逻辑块调用FC时,需要为时,需要为每个形参指定实际的参数,简称为实参。每个形参指定实际的参数,简称为实参。实参与它对应的形参应具有相同的数据类型。实参与它对应的形参应具有相同的数据类型。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物273.3 功能与功能块功能与功能块调用功能的实验调用功能的实验我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物283.

35、3 功能与功能块功能与功能块为块提供密码保护为块提供密码保护选中生产的选中生产的FC1,执行菜单命令:,执行菜单命令:“编辑编辑”“专有技术保护专有技术保护” “启用专有技术保护启用专有技术保护”,在打开的对话框中输入密码并确认,在打开的对话框中输入密码并确认,项目树中的项目树中的FC1图标上出现锁的符号,表示图标上出现锁的符号,表示FC1受保护。双击打受保护。双击打开开FC1,可以看到界面区的变量,但是看不到程序区的程序。,可以看到界面区的变量,但是看不到程序区的程序。也可修改或禁用专有技术保护。也可修改或禁用专有技术保护。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的

36、世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物293.3 功能与功能块功能与功能块功能块的特点功能块的特点功能块功能块(FB)是用户编写的有自己的存储区是用户编写的有自己的存储区(背景数据块背景数据块)的块的块。FB的典型应用是执行不能在一个扫描周期结束的操作。的典型应用是执行不能在一个扫描周期结束的操作。每次调用功能块是,都需要指定一个背景数据块,背景数据块每次调用功能块是,都需要指定一个背景数据块,背景数据块随功能块的调用而打开,在调用结束时自动关闭。随功能块的调用而打开,在调用结束时自动关闭。功能块的输入、输出和静态变量功能块的输入、输出和静态变量(Static)用

37、指定的背景数据块保用指定的背景数据块保存,但是不会保存临时局部变量存,但是不会保存临时局部变量(Temp)中的数据。中的数据。功能块执行后,背景数据块中的数据不会丢失。功能块执行后,背景数据块中的数据不会丢失。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物303.3 功能与功能块功能与功能块功能块的局部变量功能块的局部变量 1/2FB1的界面区FB1的背景数据块我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物313.3

38、 功能与功能块功能与功能块功能块的局部变量功能块的局部变量 2/2功能块的数据永久性地保存在它的背景数据块中,在功能块执行功能块的数据永久性地保存在它的背景数据块中,在功能块执行完后也不会丢失,以供下次执行时使用。完后也不会丢失,以供下次执行时使用。其他代码块可以访问背景数据块中的变量。其他代码块可以访问背景数据块中的变量。不能直接删除和修改背景数据块中的变量,只能在它的功能块的不能直接删除和修改背景数据块中的变量,只能在它的功能块的界面区中删除和修改这些变量。界面区中删除和修改这些变量。生成功能块的输入、输出参数和静态变量时,它们被自动指定一生成功能块的输入、输出参数和静态变量时,它们被自动

39、指定一个默认值,可以修改这些默认值。变量的默认值被传送给个默认值,可以修改这些默认值。变量的默认值被传送给FB的的背景数据块,作为同一个变量的初始值。背景数据块,作为同一个变量的初始值。可以在背景数据块中修改变量的初始值。可以在背景数据块中修改变量的初始值。调用调用FB时没有指定实参的形参使用背景数据块中的初始值。时没有指定实参的形参使用背景数据块中的初始值。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物323.3 功能与功能块功能与功能块编写编写FB1的程序的程序我吓了一跳,蝎子是多么丑恶和恐怖的东西,

40、为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物333.3 功能与功能块功能与功能块在在OB1中调用中调用FB1 1/2我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物343.3 功能与功能块功能与功能块在在OB1中调用中调用FB1 2/2如果没有给功能块如果没有给功能块 (FB) 的输入、输出或输入的输入、输出或输入/输出参数赋值,将输出参数赋值,将使用背景数据块使用背景数据块 (DB) 中存储的值。中存储的值。 可以给可以给FB接口中的参数赋初值。这些值将

41、传送到相关的背景接口中的参数赋初值。这些值将传送到相关的背景 DB 中。如果未分配参数,将使用当前存储在背景中。如果未分配参数,将使用当前存储在背景 DB 中的值。中的值。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物353.3 功能与功能块功能与功能块处理调用错误处理调用错误FB1最初没有输入参数最初没有输入参数“定时时间定时时间”。在在OB1中调用符号名为中调用符号名为“Motor”的的FB1后,在后,在FB1的界面区增加的界面区增加了输入参数了输入参数“定时时间定时时间”,OB1中被调用的中被调用

42、的FB1的方框和字符变的方框和字符变为红色。为红色。点击工件栏上的点击工件栏上的 (更新不一致的块调用更新不一致的块调用) ,出现,出现“界面更新界面更新”对话框,显示出原有的块界面和新的界面。对话框,显示出原有的块界面和新的界面。点击确定,点击确定,OB1中被调用的中被调用的FB1被修改为新的界面,被修改为新的界面,FB1中的红中的红色错误标记消失。色错误标记消失。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物363.3 功能与功能块功能与功能块FC与与FB的区别的区别1)功能块有背景数据块,功能没有背

43、景数据块。功能块有背景数据块,功能没有背景数据块。2)只能在功能内部访问它的局部变量,其他代码块或只能在功能内部访问它的局部变量,其他代码块或HMI可以访可以访问功能块的背景数据块中的变量。问功能块的背景数据块中的变量。3)功能没有静态变量,功能块有保存在背景数据块中的静态变量。功能没有静态变量,功能块有保存在背景数据块中的静态变量。功能如果有执行完后需要保存的数据,只能存放在全局变量中功能如果有执行完后需要保存的数据,只能存放在全局变量中(如全局数据块和如全局数据块和M去去),但这样会影响功能的可移植性。,但这样会影响功能的可移植性。4)功能块的局部变量功能块的局部变量(不包含不包含Temp

44、)有默认值有默认值(初始值初始值),功能的局,功能的局部变量没有初始值。在调用功能块时如果没有设置某些输入、输部变量没有初始值。在调用功能块时如果没有设置某些输入、输出参数的实参,将使用背景数据块中的初始值。调用功能时应给出参数的实参,将使用背景数据块中的初始值。调用功能时应给所有的形参指定实参。所有的形参指定实参。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物373.3 功能与功能块功能与功能块OB与与FC和和FB的区别的区别1)对应的事情发生时,由操作系统调用组织块,对应的事情发生时,由操作系统调用组

45、织块,FB和和FC是用户程是用户程序在代码块中调用。序在代码块中调用。2)组织块没有输入参数、输出参数和静态变量,只有临时局部数组织块没有输入参数、输出参数和静态变量,只有临时局部数据。有的组织块自动生成的临时局部数据包含了与启动组织块的据。有的组织块自动生成的临时局部数据包含了与启动组织块的时间有关的信息,它们由操作系统提供。时间有关的信息,它们由操作系统提供。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物383.3 功能与功能块功能与功能块FB的多重背景数据块的多重背景数据块 1/4每次调用定时器和计

46、数器指令时,都需要指定一个背景数据块。每次调用定时器和计数器指令时,都需要指定一个背景数据块。如果这类指令很多,将会生成大量的数据块如果这类指令很多,将会生成大量的数据块“碎片碎片”。为了解决这个问题,在功能块中使用定时器、计数器指令时,可为了解决这个问题,在功能块中使用定时器、计数器指令时,可以在功能块的界面区定义数据类型为以在功能块的界面区定义数据类型为IEC_Timer或或IEC_Counter的静态变量,用这些静态变量来提供定时器和计数器的背景数据。的静态变量,用这些静态变量来提供定时器和计数器的背景数据。这种功能的背景数据块称为多重背景数据块。这种功能的背景数据块称为多重背景数据块。

47、这样多个定时器或计数器的背景数据块被包含在它们所在的功能这样多个定时器或计数器的背景数据块被包含在它们所在的功能块的背景数据块中,而不需要为每个定时器或计数器设置一个单块的背景数据块中,而不需要为每个定时器或计数器设置一个单独的背景数据块,减少了处理数据的时间,能更合理地利用存储独的背景数据块,减少了处理数据的时间,能更合理地利用存储空间。空间。在共享的多重背景数据块中,定时器、计数器的数据结构之间不在共享的多重背景数据块中,定时器、计数器的数据结构之间不会产生相互作用。会产生相互作用。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测

48、没有错:表里边有一个活的生物393.3 功能与功能块功能与功能块FB的多重背景数据块的多重背景数据块 2/4调用定时器时我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物403.3 功能与功能块功能与功能块FB的多重背景数据块的多重背景数据块 3/4只能以多重背景方式调用只能以多重背景方式调用STEP 7 Basic提供的库中包含的功能块,提供的库中包含的功能块,不能以多种背景方式调用用户创建的功能块。不能以多种背景方式调用用户创建的功能块。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的

49、世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物413.3 功能与功能块功能与功能块FB的多重背景数据块的多重背景数据块 4/4变量表中的变量:变量表中的变量:OB1中两次调用中两次调用FB2:我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物423.4 全局数据块全局数据块类型类型数据块数据块(DB)是用于存放执行代码时所需的数据的数据区。与代是用于存放执行代码时所需的数据的数据区。与代码块不同,数据块没有指令,码块不同,数据块没有指令,STEP 7 Basic按数据生成的顺序自按数据生

50、成的顺序自动地为数据块中的变量分配地址。动地为数据块中的变量分配地址。有两种类型数据块:有两种类型数据块:全局数据块:存储供所有的代码块使用的数据,所有的全局数据块:存储供所有的代码块使用的数据,所有的OB、FB和和FC都可以访问;都可以访问;背景数据块:存储的数据供特定的背景数据块:存储的数据供特定的FB使用。背景数据块中保存使用。背景数据块中保存的是对应的的是对应的FB的的Input、Output、InOut和和Static变量,变量,Temp没没有用背景数据块保存。有用背景数据块保存。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com