PLC的CPU运行两种程序,即系统程序和用户程序。
系统程序主要负责更新输入过程映像表,输出过程映像表;调用用户程序,采集中断信息,调用中断OB;识别错误并进行错误处理;管理存储区域;与编程设备和其他通信设备进行通信等功能。
用户程序是用户为处理特定自动化任务所要求的功能编制的程序。用户程序完成的任务包括:处理过程数据;响应中断、处理正常程序周期中的干扰。
在STEP 7软件中,程序的基本单元是“块”。每个块是一个单个、独立的程序段。块间可以相互调用。调用块的类型不限,被调用块只能是功能块(OB除外的其他块)。在STEP 7用户程序内可使用多种类型的块如:
1)组织块(OB):确定用户程序的结构。
2)系统功能块(SFB)和系统功能(SFC):SFB和SFC集成在S7CPU中,提供一些重要的系统功能。
3)功能块(FB):FB是带有用户可自行编程的“存储器”的块。
4)功能(FC):FC包含频繁使用的功能的例行程序。
5)数据块(DB):DB是用于存储用户数据的数据区。DB分为背景DB和共享DB。背景DB是属于特定的FB的,在创建时需要确定它所属的FB。共享数据块为用户程序提供一个可保存的数据区,可由任何一个块来定义和使用。
OB、SFB、SFC、FB、FC包含程序段,因此也称为逻辑块。每种块类型许可的块的数目和块的长度由CPU型号决定。
S7-300 PLC程序各部分的关系如图4-1所示,本节我们只简单介绍,如需详细了解,请查看本书第5章内容。
图4-1 程序组成关系(www.xing528.com)
主程序中,组织块(OB)确定单个程序段执行的顺序(启动事件)。一个OB调用可以中断另一个OB的执行。哪个OB允许中断另一个OB取决于其优先级。高优先级的OB可以中断低优先级的OB。背景OB的优先级最低。
1.功能块
功能块由两部分组成,一部分是变量声明表,用来声明这个块的局部数据(详见4.1.2节内容);另一部分是指令代码组成的程序,程序使用变量表中定义的局部数据。
当要调用一个功能块时,要给它提供参数,称为参数传递。这些参数值赋给变量表中的变量,块程序执行时会使用它们。功能块具有通用性,不同的参数值会产生不同的运行结果。所以功能块可以被其他块调用,完成多个类似的任务。
变量声明表中的局部数据分为参数和局部变量两类,局部变量又分为静态变量和临时变量。参数指调用块与被调用块间传递的数据,局部变量是只供块本身使用的数据。FC和FB是用户自己编写的程序块,它们都可以带有参数,参数类型见表4-1。
表4-1 FB与FC的参数类型
FC与FB的区别在于数据存储区。FB拥有数据存储区,即背景DB。而FC没有自己的数据区。就是说,在参数类型中,静态变量(stat)只能存在于FB中。功能块(FB)的参数存储在它的背景DB中,其内容可以保持,所以在调用时如果不给它的形式参数赋值,它会自动读取背景DB中的参数值。功能(FC)在调用时必须给其形式参数赋值。
系统功能(SFC)和系统功能块(SFB)是系统提供的编制好的FC和FB,可供用户程序调用。SFC和SFB固化在系统程序中,通常提供一些系统级的功能调用。
2.组织块
组织块(OB)是操作系统和用户程序之间的接口。用户程序一般由启动程序、主程序和各种中断响应程序等模块组成,这些模块就是组织块。组织块由操作系统调用,控制循环、中断、驱动的程序执行以及PLC启动特性和错误处理等。可以对组织块进行编程来确定CPU的工作特性,不同型号的CPU支持不同的OB。OB1是一个特殊的组织块,操作系统在每次程序循环运行中,都会调用主程序中的组织块OB1,即循环执行OB1中的用户程序,是STEP 7程序的主干部分。其他的OB对应启动程序、背景程序及各类中断处理程序。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。