微型机与应用
MICROCOMPUTER & ITS APPLICATIONS
2000　Vol.19　No.4　P.49-51



工程化计算机远程测控系统的研究
蓝悦
摘 要： 从工程化的角度对计算机远程测控系统进行了研究，讨论了系统硬件及软件的研制，阐述了提高系统性能的关键技术。
关键词： 工程化设计 测控系统 定时自动巡测
　　近年来，计算机远程测控系统在电力系统、水文观测、交通运输等多种领域都得到了广泛应用。随着用户对系统需求的不断深入、细化，系统也变得越来越庞大，复杂度不断提高。在旧的设计方法下，系统不具备良好的移植性、复用性，开发人员面对相似的需求仍然需要重新设计，浪费人力、物力，而且很多系统设计的个体化特征使它们随着时间的推移越来越难于维护。经过30多年的软件工程实践，国际上已经形成了多种较成熟的软件工程方法，为系统开发提供了一整套提高效率的途径，并使所开发的系统具有良好的结构及较高的可靠性、复用性和可维护性。由此可见，工程化设计是解决问题的关键。
1　系统开发模型
　　现在比较成熟的开发模型有瀑布模型、演化模型、螺旋模型、增量模型、喷泉模型等。
　　一般来说在系统开发前，通过需求分析和调研，我们未必能了解用户的全部需求。通常用户会给出待开发系统的核心需求，当核心需求实现后，再通过有效反馈逐步完善。另外，当设计开发时间不充足又必须短期内占领市场时，通常我们会采用增量开发，即首先完整地开发系统的1个核心子集，继之周期性地进行增量开发，不断精化产品，以完成系统最终设计和实现。因此，根据模型特征和该系统的实际情况，我们对增量模型和螺旋模型进行结合、裁剪，提出了符合工程实际要求的开发结构，如图1所示。沿着螺线旋转，在笛卡尔坐标的4个象限上分别表达了系统不同开发时期的活动，从螺旋中心自内向外每旋转1圈便根据用户的信息反馈开发出1个更为完善的系统版本。

图1　系统开发模型
2　系统需求分析
2．1　系统的用户分类
　　系统在应用中会面向不同的用户群，合理地进行分类，了解用户群结构以及各类用户掌握专业知识的程度和操作习惯才能使开发出的系统适合需求。按照不同的应用对象，对用户可以进行如下分类：
　　（1）按使用计算机系统频度，可分为偶然型用户、间歇型用户、经常型用户；
　　（2）按使用计算机的熟练程度，可分为生疏型用户、熟练型用户和专家型用户；
　　（3）按使用计算机系统的目的，可分为事务处理用户、应用开发用户和系统开发用户等。
　　进行分析调研时应注意收集经常型用户意见，照顾到偶然型、间歇型用户；人机交互中对于生疏型用户注意提供在线帮助、软件向导，而对于熟练型、专家型用户则应设计快捷操作方式以满足其需要；对于某些专业力量强的用户可能对系统进行二次开发，因此在系统初期设计时就应尽量降低该部分与核心系统的耦合度，并提供必要的接口。
2．2　系统功能需求
　　（1）遥控功能：要求系统具有远程控制测控对象，设置设备各项参数、定值，实时显示设备状态的功能。
　　（2）遥测功能：要求系统具有实时远程获取设备各项数据及设置相关参数的功能。
　　（3）定时自动巡测：系统按用户设定时间自动获取部分或所有测控对象的有效数据存入数据库作为历史数据备档。
　　（4）报表处理：将实时或历史数据处理加工成相应报表提交系统管理人员或上报上级管理机构。
　　功能需求的数据流图如图2所示。

图2　系统需求数据流图
2．3　系统性能需求
　　目前该系统一般应用于比较重要的部门，因此在系统设计中必需保证其可靠性和安全性，在条件允许的范围内尽量提高系统效率。
　　（1）可靠性（reliability）：指程序按要求的精度完成预期功能的程度，包括一致性、容错性、准确性、简单性。
　　（2）安全性（security）：指未经许可的人员接近系统和对数据加以控制的程度，包括存取控制、存取审查。
　　（3）效率（efficiency）：指程序完成预期功能所需的资源及代码数量，包括执行效率、存储效率。
3　系统总体结构
　　远程测控系统中与测控对象直接相联系的终端设备往往与中心站距离较远。因此整个系统呈以中心站为核心，以各个站点（终端）为从机的主从问答式结构。中心站与点站之间可以通过无线信道（载波或微波）连接，也可以通过电话线形成有线网络。系统结构如图3所示。由于测控现场环境往往会对设备造成一定影响，如瞬变干扰、共模干扰等，加入太多的数据处理会降低系统可靠性；另外，终端功能越繁杂，远程维护就越困难。因此，我们在设计中减轻了终端设备的负担，它只负责将现场信息转化为有效数据短期存储，并在一定时刻应答中心站将数据传回。这样在一定程度上提高了系统的复用性和可维护性，保证了数据的准确。系统软件结构如图4所示。

图3　系统体系结构

图4　系统软件结构
4　系统实现
4．1　系统硬件实现
　　中心站系统网络采用标准以太网结构。中心服务器负责管理、存储数据。为了提高系统可靠性一般选用小型局域网专用服务器，如HP NetServer LH Pro系列，存储器为双硬盘镜像。定时巡测数据量较大时系统会长时间处于忙状态，信道和网络也被占用，因而会影响用户对点站的实时测控操作。鉴于此，定时巡测专门由采集工作站（前置机）来完成，而实时测控和数据处理则由管理工作站（后台机）完成。中心站作为整个系统的核心其稳定性尤为重要，为此我们采用了双机热备份。平时2套设备中任1套设置为主机拥有信道控制权，主机损坏时，系统将发出警报，自动启动备机维持正常工作。中心站系统结构如图5所示。

图5　中心体系结构
　　终端设备由电台、调制解调器、传感器、CPU、存储器等组成。现场很多干扰都会影响到信号的传输，为此我们采用系统交流电源使用双层隔离，提高信号噪声比，输入信号光电隔离等方法。在器件选取上，采用HCMOS工艺的16位高性能单片机和大规模逻辑阵列ispLSI2064，降低了系统功能，提高了其可靠性和抗干扰能力，主板采用4层印刷板，有效地消除了电源和地之间的干扰和噪声。
4．2　系统软件实现
　　（1）开发工具的选取
　　在目前较先进的软件开发工具中Visual Basic、Delphi和Visual C＋＋是比较常用的，它们都是基于Windows的面向对象的可视化开发工具。相对来讲VC＋＋的代码运行效率较高，并可以使用ODBC和DAO作为访问各类数据库的引擎。它提供的组件库（COMPONENT GALLERY）、可定制的Appwizards以及MFC扩展有助于代码重用。因此我们采用VC＋＋作为实时测控和定时巡测子系统的开发平台，以最大限度地满足系统效率。
　　数据库我们采用了SQL Server，它具有彻底的C／S体系结构，支持完整性约束，具有比较好的安全性保护和故障恢复机制，并且实现开放互连支持网络环境下的分布式数据管理。这样就充分保证了系统数据管理的安全。
　　另外值得一提的是Excel在报表处理方面具有强大的功能。它是第一个将表处理软件与图形界面编程工具结合在一起的开发工具，具有样式丰富的表格和图表。VBA被嵌入在Excel表处理软件中，它所提供的用户以编程方式对数据分析功能的访问是所有表处理软件中最高级的。我们利用Excel在短期内就完成了报表子系统的开发。但在使用过程中也发现，当数据处理量较大时，子系统速度明显降低，在一定程度上影响了系统的性能。可以看出Excel在数据分析处理方面还存在着不足。这可以通过二种方式来解决，一是将复杂的数据处理移到上级系统，这种方法可以显著提高运行速度，但同时增加了数据管理的负担和子系统间的耦和度；另一种方法是使报表系统在系统空闲时将复杂数据预处理，并存入历史数据库中，这样就由系统间耦合变为系统内耦合，降低了耦合度，较好地解决了系统结构和性能之间的矛盾。实践中我们采用了后一种方法。
　　（2）系统工作原理
　　根据硬件结构，软件系统可以分为后台机上的后台子系统和前置机上的前置子系统二部分，系统间采用网络通信。后台子系统通过人机交互模块接收操作员指令，经编码模块处理成指令码，经由网络发送到前置系统。前置系统识别并接收指令后将其加入指令发送队列，通信模块将待发送的指令码分析处理成符合无线（有线）传输协议的帧（简称下行报文），通过信道发送给终端。终端应答后，前置系统校验并将应答帧（间称上行报文）通过网络发送给后台系统。后台系统识别后送消息给通信解码模块，经解码后显示并存入服务器的相关数据库中。定时巡测模块放在前置系统中，工作原理基本同上，只不过编码、发送、接收解码都由前置系统自行完成。时钟到达预定时间后向系统总控模块发送消息，定时巡测被启动，解码后的数据被存入相关数据库中。报表子系统嵌入在后台系统中，根据用户需求可以是数据集成、表示集成或控制集成。管理员可以通过它将数据分析处理后显示或通过有线信道上报。由于篇幅限制，具体模块流程不再赘述。
　　（3）关键技术
　　最初设计时，考虑到编码解码模块的复用，往往会把定时巡测模块也放到后台系统中。但通过性能测试发现，巡测量较大时分析处理工作会占用大量CPU和网络时间，导致其它功能如报表处理、人机交互以及动态画面显示速度明显降低，给用户带来不便。相对而言，前置子系统的负载较轻，并且对用户操作影响较小。因此将该模块放到前置子系统中更有利于系统负载平衡，提高效率。另外，定时巡测可能会长时间占用信道，这给后台用户进行实时测控操作带来不便。因此，实现中可以设置二个消息等待队列――巡测消息队列和操作消息队列，后者具有较高优先级，这样就能合理分配独占资源，及时响应用户操作。
　　后台系统的档案数据区负责显示、更新数据库中的设备参数，而实时测控中终端相应参数的设置和巡测也必将影响到档案数据区的数据显示。对此，使用VC＋＋中的记录集类（RecordSet Class）能够很好地将它们统一起来。如图6所示（图中箭头所指为数据流向），应用程序初始化（包括运行期窗体刷新的二次初始化）将数据库中参数通过记录集类读入档案数据区，用户更新档案数据区的参数时通过记录集类同时更新库中相应字段；主文档类数据区被作为主要的数据缓冲区，它可以临时存储部分档案数据和测控参数；测控操作部分的数据交互类可以从记录集中直接取得、修改数据或从主文档数据区中取得有关的索引及参数。

图6　数据存取机制
5　结束语
　　本文基于工程化的思想对计算机远程测控系统进行了研究，作为上述研究的载体和综合运用对象，我们开发的远程测控系统被多家用户选用。经长期实地运行，系统运行稳定、实时性好、数据精度高、抗干扰性强，对同类系统的设计和实现具有一定的借鉴作用。
蓝悦（北京大学应用文理学院100084）
参考文献
１，Ｒｏｂｅｒｔ Ｌ Ｇ．Ｂｕｓｉｎｅｓｓ Ａｐｐｌｉｃａｔｉｏｎｓ：Ｗｈａｔ ｓｈｏｕｌｄ ａ ｐｒｏｇｒａｍｍｉｎｇ ｌａｎｇｕａｇｅ ｏｆｆｅｒ？．Ｓｏｆｔｗａｒｅ ｐｒａｃｔｉｔｉｏｎｅｒ，１９９６
２，王常力．集散型控制系统的设计与应用．北京：清华大学出版社，１９９８
３，王立福．软件工程――技术、方法与环境．北京：北京大学出版社，１９９７
收稿日期：１９９９－１０－２０
