首页 理论教育 编制用户程序的逻辑块类型及添加方法

编制用户程序的逻辑块类型及添加方法

时间:2023-06-23 理论教育 版权反馈
【摘要】:表6-1是用于编制用户程序的逻辑块类型。表6-1 逻辑块类型编制用户程序时,通过在项目树中点击“添加新块”命令创建和管理用户程序的程序块,“添加新块”的窗口如图3-18所示。不同的组织块都有一个确定的编号,如程序循环组织块OB1、诊断错误中断组织块OB82等,程序循环组织块OB1具有主程序的概念,其他可认为是子程序。硬件中断可用于快速响应的过程事件。

编制用户程序的逻辑块类型及添加方法

逻辑块是包含操作系统功能和部分用户程序的程序块,程序块是用户程序的主程序和子程序的可装载代码块,包括组织块(OB)、功能(FC)、功能块(FB)和数据块(DB)。表6-1是用于编制用户程序的逻辑块类型。

表6-1 逻辑块类型

978-7-111-37326-1-Chapter06-1.jpg

编制用户程序时,通过在项目树中点击“添加新块”命令创建和管理用户程序的程序块,“添加新块”的窗口如图3-18所示。

1.组织块OB

组织块由操作系统调用,可以控制自动化系统的启动特性、循环程序处理、中断驱动的程序执行、错误处理等。组织块OB是由事件驱动的。事件(如诊断中断或时间间隔)会使CPU执行组织块OB。可以对组织块进行编程并同时确定CPU的特性。根据使用的CPU,有各种不同的组织块,包括启动组织块OB、程序循环组织块OB、延时中断组织块OB、循环中断组织块OB、处理时间错误中断组织块OB、硬件中断组织块OB和诊断错误中断组织块OB等。不同的组织块都有一个确定的编号,如程序循环组织块OB1、诊断错误中断组织块OB82等,程序循环组织块OB1具有主程序的概念,其他可认为是子程序。将这些组织块插入用户程序中后,需要为其设置参数。有些OB具有预定义的行为和启动事件,但也可以创建具有自定义启动事件的组织块OB。组织块OB的启动事件概貌如图6-1所示。

978-7-111-37326-1-Chapter06-2.jpg

图6-1 组织块OB的启动事件概貌(www.xing528.com)

在图6-1中可见,当CPU上电后,或模式选择器由STOP切换为RUN-P时;编程设备中的菜单命令发出请求后,在循环程序执行之前执行启动程序组织块OB100或OB200、OB201等,然后循环程序执行组织块OB1,根据启动事件、特定的CPU及其参数,将调用启动中断和事件组织块OB。

组织块OB1中的用户程序从第一条语句开始,执行执行完毕后,刷新映像区,开始一个新的循环。定期的程序执行组织块OB可以根据设定的延时中断、循环中断执行程序。延时中断可在一个过程事件出现后,延时一段时间响应。循环中断可每隔一段预定的时间(如100ms)执行一次。硬件中断可用于快速响应的过程事件。当事件发生后,马上打断循环程序并执行中断程序。延时中断可在一个过程事件出现后,延时一段时间响应。诊断错误组织块OB和时间错误组织块OB可以在出现错误时决定系统如何响应。

2.功能FC和功能块FB

功能FC和功能块FB包含与特定任务或参数组合相对应的程序代码,是可从组织块OB或其他功能FC或功能块FB调用的程序代码块,由用户自己编写,相当于用户子程序,可以定义自己的参数。每个功能FC或功能块FB都提供一组输入和输出参数,用于与调用块共享数据。功能块FB还使用相关联的数据块(称为背景数据块)来保存执行期间的值状态,程序中的其他块可以使用这些值状态。功能FC不与任何特定数据块DB相关联,而功能块FB与数据块DB直接相关并使用数据块DB来传送参数及存储中间值和结果。数据块DB存储程序块可以使用的数据。可以将具有相同控制过程的用户程序编写在功能FC和功能块FB中,然后在主程序组织块OB1或其他程序块中调用。用户程序中包含用户数据的数据区。

3.数据块DB

数据块DB分为可由所有代码块访问的全局数据块,以及分配给特定功能块调用的背景数据块。操作系统为参数及静态变量分配的存储空间是背景数据块。这样,参数变量在背景数据块中留有运行结果备份。在调用功能块FB时,若没有提供实参,则功能块FB使用背景数据块中的数值。操作系统在L堆栈中给功能块FB的临时变量分配存储空间,在L堆栈中给功能FC的临时变量分配存储空间。由于功能FC是“不带存储器”,没有背景数据块的逻辑块,功能FC的临时变量保存在本地数据堆栈中,因而不能使用静态变量。执行功能FC时,数据将丢失。为永久保存数据,功能FC也可使用全局数据块。由于功能FC本身没有存储器,因此,必须始终给它指定实参,必须将形参分配给这些功能FC,不能给功能FC的本地数据分配初始值。输入、输出、I/O参数以指向实参的指针形式存储在操作系统为参数传递而保留的额外空间中。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈