PLC程序设计,常用的结构有三种:线性化编程、模块化编程、结构化编程。下面我们就以西门子PLC为例,对这三种程序结构展开叙述。 线性化编程是将整个用户程序放在组织块OB1(主程序)中,在CPU循环扫描时执行OB1中的全部指令。其特点是结构简单,但效率低下。另一方面,某些相同或相近的操作需多次执行,这样会造成不必要的编程工作。再者,由于程序结构不清晰,会造成管理和调试的不方便。所以在编写大型程序时,避免线性化编程。 模块化编程是将程序根据功能分为不同的逻辑块,且每一逻辑块完成的功能不同。在OB1(主程序)中可以根据条件调用不同的功能或功能块。其特点是易于分工合作,调试方便。由于逻辑块是有条件的调用,所以可以提高CPU的利用率(图中FC类似子程序)。 结构化编程是将过程中要求类似或相关的任务归类,在功能或功能块中编程,形成通用解决方案。通过不同的参数调用相同的功能或通过不同的背景数据块调用相同的功能块。其特点是结构化编程必须对系统功能进行合理分析、分解和综合,所以对设计人员的要求较高,另外,当使用结构化编程方法时,需要对数据进行管理[1]。 第一种线性化编程,即不采用分支的形式,在一个页面中从头写到尾; 第二种模块化编程,即把程序分为例如手动、自动、初始化、数据换算等子程序; 第三种结构化编程,即把控制过程中分为独立的部分,再来调用,比如可以做成多个独立的单步流程动作。 说完程序结构的三种方式后,再来说说程序设计中的一些技巧。 1.简单性 使PLC程序尽可能简单。简单的含义就是尽可能的使用标准化的程序框架,尽可能使用简单的指令。 要想程序简单,从大的方面讲,要优化程序结构,用流程控制指令简化程序,从小的方面讲还要用功能强的指令取代功能单一的指令,以及注意指令的安排顺序等。 2.可读性 要求设计的程序可读性要好,以便于调试、维护,利己利人。 要使程序可读性好,所设计的程序就要尽可能清晰。要注意层次,实现模块化。 如遇特殊情况下采用语言编程,多数情况下请使用梯形图编程,方便阅读。 再就是I/O分配和内部寄存器要有规律性,以及做好注释,便于记忆与理解。 3.可靠性 有的PLC程序,在正常的工作条件下或合法操作时能正确工作,而出现非正常工作条件(如临时停电,又很快再通电)或进行非法操作(如一些按钮不按顺序按,或同时按若干按钮)后,程序就不能正常工作了。这种程序,就不大可靠,或说不稳定,就是不好的程序。