首页 历史故事结构化编程的优点与方法

结构化编程的优点与方法

【摘要】:结构化编程具有如下一些优点:1)各单个任务块的创建和测试可以相互独立地进行。图3-17 结构化编程示意图3)块可以根据需要在不同的地方以不同的参数数据记录进行调用。建议用户在编程时可以根据实际工程特点采用结构化编程方式,通过传递参数使程序块重复调用,使其结构清晰、调试方便。结构化编程中用于解决单个任务的块使用局部变量来实现对其自身数据的管理。模块化编程和结构化编程的详细内容将在6.5节介绍。

结构化编程是通过抽象的方式将复杂的任务分解成一些能够反映过程的工艺、功能或可以反复使用的可单独解决的小任务,这些任务由相应的程序块(或称逻辑块)来表示,程序运行时所需的大量数据和变量存储在数据块中。某些程序块可以用来实现相同或相似的功能。这些程序块是相对独立的,它们被OB1或其它程序块调用。

在块调用中,调用者可以是各种逻辑块,包括用户编写的组织块(OB)、FB、FC和系统提供的SFB与SFC,被调用的块是OB之外的逻辑块。调用FB时需要为它指定一个背景数据块,后者随FB的调用而打开,在调用结束时自动关闭,如图3-17所示。

模块化编程不同,结构化编程中通用的数据和代码可以共享。结构化编程具有如下一些优点:

1)各单个任务块的创建和测试可以相互独立地进行。

2)通过使用参数,可将块设计得十分灵活。例如,可以创建一个钻孔程序块,其坐标和钻孔深度可以通过参数传递进来。

978-7-111-34922-8-Chapter03-37.jpg

图3-17 结构化编程示意图

3)块可以根据需要在不同的地方以不同的参数数据记录进行调用。

4)在预先设计的库中,能够提供用于特殊任务的“可重用”块。

建议用户在编程时可以根据实际工程特点采用结构化编程方式,通过传递参数使程序块重复调用,使其结构清晰、调试方便。

结构化编程中用于解决单个任务的块使用局部变量来实现对其自身数据的管理。它仅通过其块参数来实现与“外部”的通信,即,与过程控制传感器和执行器,或者与用户程序中的其它块之间的通信。在块的指令段中,不允许访问如输入、输出、位存储器或DB中的变量这样的全局地址

局部变量分为临时变量和静态变量。临时变量是当块执行时,用来暂时存储数据的变量,局部变量可以应用于所有的块(OB、FC、FB)中。那些在块调用结束后还需要保持原值的变量则必须存储为静态变量,静态变量只能用于FB中。

当块执行时,临时变量被用来临时存储数据,当退出该块时这些数据将丢失,这些临时数据都存储在局部数据堆栈(L Stack)中。

临时变量的定义是在块的变量声明表中定义的,在“temp”行中输入变量名和数据类型,临时变量不能赋初值。当块保存后,地址栏中将显示该临时变量在局部数据堆栈中的位置。可以采用符号地址和绝对地址来访问临时变量,但为了使程序可读性强,最好采用符号地址来访问。

程序编辑器可以自动地在局部变量名前加上#号进行标识以区别于全局变量,局部变量只能在变量表中对其进行定义的块中使用。

在给FB编程时使用的是“形参”(形式参数),调用它时需要将“实参”(实际参数)赋值给形参。形式参数有三种类型:输入参数In类型、输出参数Out类型和输入/输出参数In_Out类型。In类型参数只能读,Out类型参数只能写,In_Out类型参数可读可写。在一个项目中,可以多次调用同一个块,例如在调用控制电动机的块时,将不同的实参赋值给形参,就可以实现对类似但是不完全相同的被控对象(如水泵1、水泵2等)的控制。

模块化编程和结构化编程的详细内容将在6.5节介绍。