1.6.2 用户程序的结构
创建用于自动化任务的用户程序时,需要将程序的指令插入程序块中:
1.组织块(OB)
OB块对应于CPU中的特定事件,并可中断用户程序的执行。OB 1是用于循环执行用户程序的默认组织块,为用户程序提供基本结构,是唯一一个用户必需的程序块。如果程序中包括其他OB,这些OB会中断OB1的执行。其他OB可执行特定功能,如用于启动任务、用于处理中断和错误用于按特定的时间间隔执行特定的程序代码。
2.功能块(FB)
FB是从另一个程序块(OB、FB或FC)进行调用时执行的子例程。调用块将参数传递到FB,并标识可存储特定调用数据或该FB实例的特定数据块(DB)。更改背景DB可使通用FB控制一组设备的运行。例如,借助包含每个泵或阀门的特定运行参数的不同背景DB,一个FB可控制多个泵或阀。
3.功能(FC)
FC是从另一个程序块(OB、FB或FC)进行调用时执行的子例程。与FB不同,FC不具有相关的背景DB。调用块将参数传递给FC。FC中的输出值必须写入存储器地址或全局DB中。
根据实际应用要求,可选择线性结构或模块化结构用于创建用户程序(见图1-61)。
图1-61 用户程序的结构
线性结构程序按顺序逐条执行用于自动化任务的所有指令,通常,线性程序将所有程序指令都放入用于循环执行程序的OB中(即OB 1)。
模块化结构程序调用可执行特定任务的特定程序块。要创建模块化结构,需要将复杂的自动化任务划分为与过程的工艺功能相对应的更小的次级任务,每个程序块都为每个次级任务提供程序段,通过从另一个块中调用其中一个程序块来构建程序。
通过创建可在用户程序中重复使用的通用程序块,可简化用户程序的设计和实现。使用通用程序块具有许多优点:
1)可为标准任务创建能够重复使用的程序块,如用于控制电机或泵。也可以将这些通用程序块存储在可由不同的应用或解决方案使用的库中。
2)将用户程序构建到与功能任务相关的模块化组件中,可使程序的设计更易于理解和管理。模块化组件不仅有助于标准化程序设计,也有助于使更新或修改程序代码更加快速和容易。
3)创建模块化组件可简化程序的调试。通过将整个程序构建为一组模块化程序段,可在开发每个程序块时测试其功能。
4)创建与特定工艺功能相关的模块化组件,有助于简化对已完成应用程序的调试,并减少调试过程中所用的时间。