一个系统的控制功能是由用户程序决定的。为完成特定的控制任务,需要编写用户程序,使得PLC能以循环扫描的工作方式执行用户程序。在SIMATIC S7系列中,为适应用户程序的不同需求,STEP7为用户提供了3种程序设计方法,其程序结构分别为:线性化编程、分部式编程和结构化编程。
1.程序结构
(1)线性化编程 所谓线性化编程就是将用户程序连续放置在一个指令块内,这个指令块在SIMATIC的PLC中,通常称为组织块(OB1)。CPU周期性地扫描OB1,使用户程序在OB1内顺序执行每条指令。
由于线性化编程将全部指令都放在一个指令块中,它的程序结构具有简单、直接的特点,适合由一个人编写用户程序。S7-200 PLC就是采用线性化编程方法。
(2)分部式编程 所谓分部式编程就是将一项控制任务分成若干个指令块,每个指令块用于控制一套设备或者完成一部分工作。每个指令块的工作内容与其他指令块的工作内容无关,一般没有子程序的调用,这些指令块的运行是通过组织块(OB1)内的指令来调用。例如,一个分部式程序可能包含以下指令块:
①用于控制设备每一部分的功能块FC(如FC10);
②用于控制设备每一工作状态的功能块FC(如FC20);
③用于控制操作员接口的功能块FC(如FC30);
④用于处理诊断逻辑的功能块FC(如FC40)。
在分部式程序中,既无数据交换也无重复利用的代码,因此分部式编程允许多个设计人员同时编写用户程序,而不会发生内容冲突。分部式编程的程序调用结构如图2-13所示。
(3)结构化编程 所谓结构化编程是将整个用户程序分成一些具有独立功能的指令块,其中有若干个子程序块,然后再按照要求调用各个独立的指令块,从而构成一个完整的用户程序。结构化编程的特点:编程简单,结构清晰,可以采用子程序技术使部分程序标准化,调试方便。一般比较大型的控制程序,均采用结构化编程。结构化编程的程序调用结构如图2-14所示。
图2-13 分部式编程的程序调用结构
(www.xing528.com)
图2-14 结构化编程的程序调用结构
2.S7-200 PLC的程序结构
S7-200 PLC的程序结构属于线性化编程,其用户程序一般由3部分构成:用户程序、数据块和参数块。
(1)用户程序 一个完整的用户程序一般是由一个主程序、若干子程序和若干个中断处理子程序组成的。对线性化编程,主程序应安排在程序的最前面,其次为子程序和中断程序,如图2-15所示。
如果用工业编程软件STEP 7-Micro/WIN32在计算机上编程,可以用两种方法组织程序结构,一种方法是利用编程软件的程序结构窗口,分别双击主程序、子程序和中断程序的图标,即可进入各个程序块的编程窗口。编译时编程软件自动对各个程序段进行连接。另一种方法是只进入主程序窗口,将主程序、子程序和中断程序按顺序依次安排在主程序窗口。
图2-15 S7-200 PLC的程序结构
(2)数据块 S7-200 PLC中的数据块,一般为DB1,主要用来存放用户程序运行所需的数据。在数据块中允许存放的数据类型为:布尔型、十进制、二进制、十六进制、字母、数字和字符型。
(3)参数块 在S7-200 PLC中,参数块中存放的是CPU组态数据,如果在编程软件或其他编程工具上未进行CPU的组态,则系统以默认值进行自动配置。
(4)主程序 主程序(OB1)是程序的主体,每一个项目都必须并且只能有一个主程序。在主程序中可以调用子程序和中断程序。
主程序通过指令控制整个应用程序的执行,每次CPU扫描都要执行一次主程序。STEP 7-Micro/WIN的程序编辑器窗口下部的标签用来选择不同的程序。因为各个程序已被分开,各程序结束时不需要加入无条件结束指令或无条件返回指令。
(5)子程序 子程序是一个可选的指令的集合,仅在被其他程序调用时执行。同一子程序可以在不同的地方被多次调用,使用子程序可以简化程序代码和减少扫描时间。设计得好的子程序容易移植到别的项目中去。
(6)中断程序 中断程序是指令的一个可选集合,中断程序不是被主程序调用,它们在中断事件发生时由PLC的操作系统调用。中断程序用来处理预先规定的中断事件,因为不能预知何时会出现中断事件,所以不允许中断程序改写可能在其他程序中使用的存储器。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。