• 3773阅读
  • 1回复

工业自动化软件设计之一 序 [复制链接]

上一主题 下一主题
离线myer
 

只看楼主 倒序阅读 楼主  发表于: 2011-11-11
关键词: scada监控组态
适逢11、11,先祝程序员朋友们多走向社会、亲近自然、身体健康、生活愉快。刚好最近工作告一段落,就借此机会将最近编写代码的一些设计心得、体会写出来,一来整理一下思路,加深自己的印象,二来也好与论坛的朋友们分享交流。

假设我们刚完成一个项目不久,客户告诉我们,或者功能需求有变,比如:
界面要换一个logo————我们更换一个图片,ok;
界面需要全屏显示————我们添加配置文件的某一处,ok;
需要增加一个新的功能————我们新写一段脚本,添加进去,ok;
数据类型需要增加新的字段(添加新功能)————没问题,配置数据类型,更新相关的模块,ok;
需要增加一个原来不曾考虑到的功能————麻烦些,我们新编译一个插件,添加进去,也ok了。

假如我们做第二个类似的项目:
将前一个项目的配置参数略作修改,ok;

假如我们做第二个行业不太相关的项目:
我们定义新的数据类型;
我们编写新的脚本逻辑;
我们绘制新的UI元件、功能块;
调试、运行,ok;
再做类似的项目,略作配置即可;

再假如我们做的是单网不冗余的系统,需要做出冗余的系统,修改配置即可;

我们做了几个独立的监控项目,现在需要建立集控站;
非常简单,一切都不用变,在集控站配置几台工作站即可;

然而现实可能是,一个小小的功能改动,好则我们只修改代码的某一处,重新rebuildall,然后更新程序,复杂点的,我们更改代码的好几个地方,甚至还有可能引入新的bug,再调试,等等,最后的代码维护变得越来越难以继续下去,看到代码我们就想回避,到最后,不堪重负,推倒一切重来,再遇上核心设计人员变动,再重复开头的一切。

先简单介绍一下最近设计编制的软件系统:

PANS,Platform of Automation Network System(磐石自动化网络系统平台),是全可视化的集监控、仿真、控制为一体的系统平台。
PANS可以采用面向对象或者针对数据点的方法对数据模型进行快速组态,集成了脚本处理、动态页面监控、实时事件告警、实时曲线趋势、历史事件和曲线、报表查询等常用的过程监控、历史数据处理方法;同时兼容matlab/simulink进行系统仿真和控制,对于工业控制时限要求不很严格(>10毫秒)的控制逻辑可以采用监控系统本身的脚本实现,对于要求严格的(20us---1ms)的可以采用linux实时操作系统+PCI接口的IO板卡;PANS的远景是成为集成自动化系统软硬件解决方案提供者。

PANS,首先是一个平台,一个适用于实时数据收集、显示、告警等处理的一个平台。PANS内核仅仅提供了一个与应用无关的(冗余的、分布式的)参数数据库、实时数据库、历史数据库,提供基本的数据模型配置、事件处理、用户管理、进程管理、连接管理等,以及一个可靠的数据订阅机制,而基于此,对于不同行业应用的快速实现与扩充提供强有力的支撑,甚至,大部分情况下,不需要编写代码,仅仅通过配置便可完成大部分默认的数据处理功能,例如最大、最小值统计、越限告警等等;对于控制逻辑、动态图元可以通过编写简单的脚本来实现;而数据采集,支持常见modbus、dde、opc、103、104等等一些常见的规约,对于暂不支持的规约,可以通过平台接口进行集成扩充。

PANS系统设计精巧、配置灵活,可以单机运行、可以多机冗余运行、同样可以组成分布式的集群服务,适用于从几个数据点到上百万、上千万数据点的采集和处理,适用于所有跟数据收集与处理(SCADA)相关的场合,例如污水处理监控、钢厂的过程控制,电力系统监控,变电站监控、西电东送、地铁监控、电力系统调度等等。

PANS基于图形化组态软件,不仅仅适用于监控画面的编辑、运行,也可以配置数据点、组织数据对象,生成代码进行拓扑分析、逻辑设计等,可以编译为标准C代码,生成运行于powerpc、arm、dsp等等硬件平台之上。

基于自己这一段对于PANS的反复设计、编码,我将对该过程中出现的典型设计问题、一些方法、技巧,总结成一个系列文章,希望与论坛的朋友们交流,也鞭策自己继续前行。
http://user.qzone.qq.com/56430808
离线shaoshuai898

只看该作者 1楼 发表于: 2012-01-02
快速回复
限100 字节
 
上一个 下一个