您现在的位置是:首页 > PLC技术 > PLC技术

施耐德Unity Pro的应用程序结构设计

来源:艾特贸易2017-06-04

简介在 PLC 主程序开始之前, CPU 先运行启动程序。在启动程序中,可以对程序进行规范设置,参数设定。主程序循环执行是 PLC 程序的标准运行方式。中断服务程序可以暂时中断主程序运行

    PLC主程序开始之前,CPU先运行启动程序。在启动程序中,可以对程序进行规范设置,参数设定。主程序循环执行是PLC程序的标准运行方式。中断服务程序可以暂时中断主程序运行。出错处理也是程序处理的一部分。    PLC的应用程序是设计和描述解决一类控制问题的过程。从理论上来说,任何一种应用程序结构均可以完成上述过程。但是它们对问题的解决方式是有所不同的。所以应该了解几种不同的应用程序结构设计方法。    应用程序结构设计通常有3种方法:线性化编程、模块化编程和结构化编程,如图3-25所示。用户可以选择最适合的应用程序设计方法。
3种应用程序结构设计图
    3-25    3种应用程序结构设计图    1.线性化编程    线性化编程是不带分支的简单结构,即就是一个简单的程序块包含系统的所有指令。线性编程类似于硬件接线的继电器逻辑。    顾名思义,线性化程序描述了一条一条执行的一组指令。所有的指令都在一个程序块内,比较适于单人编写程序的工程。由于仅有一个程序文件,软件管理的功能相对简单。程序块是连续执行的,在每个CPU扫描周期内都处理线性化程序,即使程序的某些部分并没有使用,每个扫描周期都要对所有的程序执行一次。如果有多个设备,其指令相同,但参数不同,只能用不同的参数重复编写这部分程序。    例如,传送带控制是适于线性化编程的典型应用。因为程序逻辑由一系列的简单指令组成,不需要存储数据,在一个块内可以监视所有的输入设备和控制输出设备。    对于线性化编程,在设计一个控制过程时,采用线性化编程的步骤如下:    ①描述过程的具体任务。    ②把任务分解成输入任务和输出任务。    ⑧每个任务的输入和输出。    ④编制每个任务的程序,直到完成所有的任务。    建立主程序,用必要的指令编制程序块,保存并调试程序。为了易于理解程序,应确保外设的I/O定义正确无误。    线性程序的结构简单,分析起来一目了然。这种结构适用于编写一些规模较小,运行过程比较简单的控制程序。    2.模块化编程    模块化编程是把程序分成若干个程序块,每个程序块含有一些设备和任务的逻辑指令。    主程序中的指令决定控制程序模块的执行。模块化程序段控制不同的过程任务,这些块相当于主循环程序的子程序。    在模块化编程中,主循环程序和被调用块之间仍然没有数据交换。但是,每个功能区被分成不同的块。这样就易于多人同时编程,而且相互之间没有冲突。另外,程序分成若干小块,易于程序调试和查找故障。主程序中包含调用不同块的指令,由于每次循环不是执行所有的程序块,只是在需要时才调用有关的程序块,这样,CPU资源得到更有效的利用。    监视一个慢速变化的过程不需要每次都进行扫描,可以每隔一定时间或根据需要处理,这样程序就更有效。例如:液位监视。    模块化编程是把一个总控制目标程序分成多个具有明确任务的子程序模块,分别编写和调试,最后组合成一个完整的总任务程序。各模块相对独立,相互连接关系简单,程序易于调试修改。模块化编程具有更大的灵活性,适用于比较复杂、规模较大的控制工程的程序设计。    3.结构化编程    在编程方法中,结构化编程是最受关注、使用最广泛的编程方法。    结构化编程把过程要求类似或相关的功能进行分类,并提供这一类的通用解决方案,以参数形式向指令块提供有关信息,以完成同一类不同的任务。结构化编程能够重复利用这些通用模块,以减少模块的重复性。    【例3.1  食品加工工艺。在选择产品添加剂时,需要决定哪个罐的成份加到混合罐内。由于罐的控制具有相似特点,可以建立一个任务,用于选择产品。在选择开关的基础上,任务段调用相应的程序块,分配当前的参数,控制混合罐的流入量。    ●结构化程序设计如下:    ①确定哪些部件和操作应用于所有罐和相关控制中。    ②建立任务段完成所要求的控制。    ③建立任务段的变量定义表,以便于对要操作的罐和相关控制分配地址。    ④设计一个程序,根据选择开关调用任务段。    ●解决方案:    ①建立一个任务段控制罐的流出量。    ②为相关的任务段建立变量定义表。注意参数的设计和地址。    ③建立一个任务段,根据选择开关调用其他任务段。在结构化编程中,调用功能的处理与在模块化编程中一样。    结构化程序可以简化程序设计过程,减少代码长度,提高编程效率,具有更大的灵活性和继承性,适用于比较复杂、规模较大的控制工程的程序设计。    应当注意的是:提高程序效率的根本途径是设计阶段应选择好的数据结构和算法,而不是依靠编程来调整程序语句。