Skip to content

hongxinGuo/DACView

Repository files navigation

简介

DACView是一个组态软件内核,包括了数据的采集、处理和展示。其核心功能—部件(Component),实现了控制的聚合、封装和隔离,使得用户构建大型控制系统成为可能。

已实现功能:

控制部分

  1. 控制单元的建立和设置,控制单元之间的动态数据连接。
  2. 部件(单元容器)的建立、设置和其内部单元序列的设置。
  3. 部件的封装。
  4. 控制部分的编译和运行时单元序列的建立。
  5. 控制的执行。

展示部分

  1. 数据输入型展示对象(表、图形、位置等)与控制部分单元数据的动态链接。
  2. 数据输出型展示对象(按钮、滚动条等)与控制单元之间的数据动态链接。

概念定义

控制部分

  1. 单元(unit)。控制的最基本单元是单元(unit),每个单元实现其不同功能,如加减乘除运算、布尔值的与或非运算、PID等。单元之间的数据链接由用户生成,运行时选定。
  2. 部件(Component)。部件是一个可容纳多个简单单元和部件的容器。部件可被封装,封装后的部件其外部表现与单元一样。
  3. 动态链接。单元(或部件)之间通过动态链接进行数据交换。单元部件之间允许相互链接,封装后的部件其表现形式与单元相类似,未封装的部件实际所链接的是其内部的单元。
  4. 部件的封装(Encapsulation)。可封装部件在编译后其内部实现细节被隐藏起来。封装后的部件其外部表现形式与单元完全一样,不再允许动态链接其内部的单元。未封装时与其他单元(或部件)之间产生的动态链接,系统自动转移至部件自身处。
  5. 数据截断(cutoff)。当进行数据的动态链接时,有可能形成回路,此时执行的起点是无法确认的,故而需要用户明确指定运算起始点。运算起始点的单元拥有数据截断功能。

展示部分

  1. 对象(Object)。展示的基本单元是对象(Object),如文字、按钮、滚动条等。对象与控制部分的单元之间可以形成数据的动态链接。
  2. 符号(Symbol)。符号是对象的聚合体,其显示的是内部对象的实时形态。符号不允许查看内部。
  3. 部件(Component)。部件是对象的容器,其不显示内部对象的形态。部件允许查看内部,此时显示的是其内部对象的实时形态。
  4. 动态链接。对象与单元之间允许建立数据的动态链接。输出型对象(如按钮、滚动条等)其数据输出至单元的输入型参数中;输入型对象(如图形等)其数据从单元的输出型参数中获得。

目前的状态和尚待完成的功能

目前状态

  1. 控制部分的编译引擎已完成,处于黑箱测试阶段。
  2. 控制系统架构已完成。部件类的实现是本软件的关键,目前已完成所有的功能(封装前和封装后的操作、封装时的操作)。
  3. 二十多个不同类型控制单元(布尔操作、高通低通、PID等)的范例。编写新的控制单元的过程很简单,只需要实现若干个虚拟函数。
  4. 十数个不同类型的展示对象(按钮、滚动条、表、图)范例。与单元的范例相同,编写新的展示对象的过程很简单,只需要实现若干个虚拟函数。
  5. 展示符号和展示部件的操作。
  6. 编译后文件的运行系统。

尚待实现的功能

  1. DACView的帮助文件。
  2. 更多类型的控制单元和展示对象。
  3. 更完整的单元测试。目前正在添加单元测试,关键的测试(如封装和编译)已初步完成,各单元类和各对象类的测试文件已初步添加。
  4. 网络功能。

About

DACView is a core of SCADA.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published