您当前的位置:五五电子网电子知识电器控制PLC工业控制继电保护系统软PLC设计 正文
继电保护系统软PLC设计

继电保护系统软PLC设计

点击数:7959 次   录入时间:03-04 11:42:34   整理:http://www.55dianzi.com   PLC工业控制

   本设计提出了一种基于嵌入式实时操作系统、适用于电力系统继电保护装置的通用软件平台,使设计出的系统经过适当的接口软件就能运行于多种硬件环境。
  
  由于将软PLC技术应用于通用软件平台的设计中,使之具有保护逻辑在线编程的功能,使不熟悉继电保护装置编程语言的人能够利用图形化的编程语言,如功能块图( FBD)等,来描述需要完成的继电保护功能、进行在线编程,简化了电力系统继电保护产品的开发过程,大大提高了系统的稳定性、可靠性和可移植性。

  一、通用软件平台总体结构
  
  该通用软件平台由应用层、中间层和基础层组成,其结构如下图所示。
  
  其中,应用层主要由运行于PC机上的编辑器和编译器组成。本文借鉴软PLC的设计思想为软件平台设计了可组态的图形化的开发界面,以及类似于PLC的易掌握的指令系统及指令的解释系统,并使其具有将图形化的保护逻辑示意图和用户编制的指令程序自动转化为对应的二进制编码序列,并将其下载到继电保护装置的程序存储器的功能。借助于这个软件平台,产品的开发人员不需要掌握具体处理器的编程语言,只需要关注需实现的保护逻辑,就可以利用编辑器在线编写出各种适宜的保护算法。
  
  中间层由基于嵌入式实时操作系统NCIOS-Ⅱ的运行子系统、电力系统专用构件库和专用数据接口组件组成。其中,运行子系统是采用标准C++语言开发的,运行于继电保护装置中的嵌入式软件。它将继电保护装置需要完成的保护任务按照功能需求模块化,并将其划分为上的若干个任务,然后采用顺序解释和执行指令代码的方法,将其实现;专用数据接口组件定义了电力系统中常用的数据结构;专业构件库是实现针对电力系统应用的参数计算的主要功能函数。该构件库可作为产品单独发布,并且易于升级。
  
  基础层,即支撑软件平台运行的继电保护装置的硬件环境。该平台通过提供针对不同微处理器的设备驱动程序包(BSP),可实现对多种主流32位处理器的支持。

通用软件平台

  二、在线编程系统
  
  在线编程系统是使通用软件平台具有在线编程功能的关键,主要由前面所述的编辑器、编译器和程序运行子系统组成。
  
  本文结合软PLC的设计思想,依据PLC方面的国际标准IEC61131-3.为通用软件平台提供r功能块图FBD和指令语言IL两种编程语言。用户在编辑器中,可以使用这两种语言来编写需要的保护算法。编译器对编辑器中的功能块图和指令语言程序进行编译,找出其中的语法错误,生成二进制目标代码。最后将所生成的目标代码作为一个独立的功能模块,下载到继电保护装置的程序存储器中,以备调用。
  
  程序运行子系统是面向继电保护装置的,运行于通用软件平台中间层的嵌入式实时操作系统中。嵌入式操作系统以调用任务的方式,根据编译器解析的目标程序从专业构建库中调用相应的功能模块,即以16bits为一个单位,从指定存储区依次读取该功能模块的二进制编码,并进行逐行解析执行,然后把所得结果保存到输出映像区或暂存区,直至该功能模块执行完毕。最后由继电保护装置中的处理器将输出映像区中的结果输出到指定通道,完成用户所需的逻辑运算和控制功能。其工作流程图见下图。

程序流程图

 



www.55dianzi.com

  1.功能块图FBD编程语言的实现
  
  IEC61131-3标准提供了五种编程语言,功能块图FBD是其中的一种图形化编程语言。功能块作为功能块图的基本元素,是一段包装好的程序模块,它可以采用IEC61131-3标准中的任何一种语言来编写,并可以在其他程序或相同程序的不同部分中使用。因此,使用功能块图编程语言不仅可以提高系统的可靠性,有利于结构化程序设计,而且能够有效地实现程序代码的复用,加速应用程序的开发。
  
  本文将功能块图编程语言应用于通用软件平台的设计中,使其具有图形化的在线编程功能。
  
  功能块图由功能块单元、连接线和文字组成。功能块单元以矩形表示,矩形内的文字表示功能块的种类名称;功能块单元的左端为输入端,右端为输出端;连接线是从一个功能块的输出端到另一个功能块的输入端的一条直线;文字部分在图中起注释说明的作用。功能块图在编辑器中进行编辑。
  
  (1)编辑功能的实现
  
  本文设计的编辑器为功能块图的输入和编辑提供r创建、移动、删除和改变其尺寸大小,以及图无控制属性的设置等操作,如下图所示。图元的操作是功能块图编辑阶段最主要的部分,是直接面向用户的.也是用户创建功能块图的必经之路,因此需要正确、完整和规范地没计各种图元的操作。

编辑器示意露天


  
  为此,采用完全面向对象的设计思想,建立r具有统一构建方式的图形对象,并定义1r对它们进行统一操作的方法。一方面,把每一种具体图形(如直线、矩形、圆角矩形等)都抽象成一个图形基类,在这个基类中提供公共的属性和接口(通过定义虚函数来实现)。其中,基类继承自MFC类库中的COBject类,这样可以直接使用它的存储特性。另一方面,由于PC机上的软件平台是构建存WINDOWS操作系统上的,用户对图彤的操作都反映为对鼠标或者键盘消息的响应。因此,本文为每种图形对象都提供了一组对象操作类,让它们负责指定某一图形对象在特定消息F的行为。这样.j三凋方对每个对象都使用一种形式上相同的调用指令,而每个对象对于这一调用指令却可以根据自己的情况做出不同的响应。例如,对于鼠标点击事件,主调方使用一个共同的调用接口,而每个对象对产生的事件可以做出不同的响应,从而实现多态性。
  
  这样,系统中对无元对象的操作就可以通过接收鼠标或键艋发送的消息,在其消息响应函数中调用相应命令类的函数来完成了。
  
  (2)编译功能的实现
  
  本软件平台是在编泽器中对所设计的功能块图进行编译,并生成IL程序的。本文采用树结构中的孩子兄弟表示法(又称二叉链表表示法)来存储每一个功能块的数据和逻辑关系等信息。链表中结点的两个链域分别指向该结点的第一个孩子结点和F一个兄弟结点,分别命名为FCH域和NSIB域,其存储结构如下图a所示。

链表


  
  下图c是下图b中的树的孩子兄弟链表,这种存储结构便于实现各种树的操作,、例如,找结点孩子的操作,如果要访问结点×的第i个孩子,只要先从FCH域找到第1个孩子结点+上,然后沿着孩子结点的NSIB域连续走i-l步,便可找到×的第i个孩子,其过程如下图c中的虚线所示,.此外,为r能更灵活、快速地遍历树,本文还增设了PARENT域(指向该结点的双亲结点)和CHQ域(该结点的孩子数量)。链表实现方式如下:

  本文使用树的叶子结点代表具体的逻辑输入或输出元件,而用非叶子结点表示其子树的结合方式即逻辑控制运算。这样,每一个功能块图都可以表示成一棵树,而整个用户程序就是树的有序排列。因此,对树进行一次遍历,就得出了用户程序对应的IL程序。下图表示了功能块图、树结构图和IL程序三者之间的对应关系。
  
  从下图中可以看出,功能块图的编译过程是以从左至右为主、从上至下为辅的方法来进行遍历的。得到功能块图的树结构图之后,再通过对树的中序遍历就可以将其翻译成中间代码,即IL程序。

功能图



www.55dianzi.com

  2.IL编程语言的实现
  
  指令是告知控制器要做什么,以及怎样去做的代码或符号。
  
  为了使用户便于记忆和理解,本文参照标准的PLC语言,采用英文文字的缩写和数字代表各相应指令。每条指令由操作码和操作数组成。操作码表示功能类型,操作数表示操作的对象,操作数由地址码和参数组成。
  
  指令的语法格式为:
  
  <opcode>{<shifer_operand>}
  

[1] [2]  下一页


本文关键字:暂无联系方式PLC工业控制电器控制 - PLC工业控制