作为一个自动化行业的从业者,你或多或少应该听过结构化编程。那么什么是结构化编程呢?它是将复杂自动化任务分割成与过程工艺功能相对应或可重复使用的更小的子任务,将更易于对这些复杂任务进行处理和管理。这些子任务在用户程序中以块来表示。因此,每个块是用户程序的独立部分。
在进行PLC编程的时候,我们常用的方式有,线性化编程、模块化编程以及结构化编程。线性化编程只使用一个主程序,所有的程序指令都在主程序中执行,适合小型自动化项目。模块化编程是将一个自动化项目分割成不同的功能模块,比如一个自动化项目可以分成手动、自动、报警等不同的功能,这些不同的功能然后再统一被主程序调用。结构化编程与模块化有些类似,都是使用多个子程序,但是结构化编程将某些可重复性的任务,做成可复用的程序块,方便移植使用。为了直观的理解这三种编程方式的区别,下面以两条流水线的起保停控制作为举例说明。使用的硬件信号表1所示:
表1:IO信号表
01、线性化编程
线性化的编程方式,所有的程序都在OB1中,如图1所示:
▲ 图1 线性化编程
02、模块化编程
模块化的编程方式,将两条流水线分别在不同的子程序中进行调用,如图2、图3所示:
▲ 图2 主程序调用子程序
▲ 图3 流水线1执行程序
▲ 图4 流水线2执行程序
03、结构化编程
结构化编程,则是通过建立FB程序块,内部的功能在FB中实现,该FB块可重复使用,当进行FB程序块调用的时候,会自动生产对应的DB数据块,程序进行控制的时候,定义具体的管脚即可。具体的结构化编程如图所示:
▲ 图5 OB1的程序调用
▲ 图6 流水线1的程序
▲ 图7 流水线2的程序
▲ 图8 流水线功能的背景块
总结
在上文中,对两个流水线的起保停控制,分别用不同的编程方式进行了举例。每种编程方式大致有了一定的认识,由于举例的程序比较简单,所以程序的优缺点不是那么的明显,但是随着项目的程序越来越复杂,编程的工作量越来越大,结构化的编程方式优势会更加明显,它的易读性、复用性可以提高工作的效率。在PLC的编程过程中,推荐大家使用结构化和模块化的混合编程方式。