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



远程通信技术在计算机监控系统中的应用
陈祥光　薛锦诚
摘 要： 在生产现场的计算机监控系统中，利用调制解调器和电话线构成拨号网络，采用Ｖｉｓｕａｌ Ｂａｓｉｃ语言编程，把生产现场检测数据传送到厂部信息管理中心；在厂部管理系统中，采用Ｄｅｌｐｈｉ语言建立数据库，实时处理和保存远程数据。从而解决了某些计算机控制系统或ＤＣＳ系统与远程管理系统数据传送的技术难题。
关键词： 远程通信技术 ＴＣＰ／ＩＰ协议 ＦＴＰ协议 ＶＢ语言 ＤＥＬＰＨＩ语言 远程数据库
　　在工业生产过程中，通常要求计算机控制系统完成数据的采集、远程传输、处理及储存等工作。然而，目前有些工业控制机系统或集散型计算机控制系统不具备远程通信的功能。因此，对于远在几十公里以外的生产现场（如油田采油、集输过程），难于达到领导管理层可视现场生产状况进行决策的现代化生产水平。其主要原因有：①从生产现场铺设专用电缆至信息管理中心，造价太高；②由于远程通信涉及到上、下位机通信协议的设置、传输线路的连接及故障的检测、实时数据文件的产生与传送及保存、删除等，要求计算机监控系统管理软件具有高可靠性和坚固性，否则在数据传输过程中主机易出故障而导致整个系统崩溃。
1　远程通信的基本内容
　　基于上述原因，本文利用调制解调器和电话线构成拨号网络，以实现远程通信功能的基本硬件条件（如图1所示）。然而，在远程数据传送与处理过程中，应该考虑到以下几个方面：

图1　上、下微机远程通信示意图
　　（1）下位机（生产现场的计算机）需定时产生1个检测、控制系统动态参数的数据文本文件，并经过一段时间（如30s）将用新产生的数据文件覆盖旧的文件；
　　（2）远程数据传送软件应根据要求定时累加和保存下位机产生的数据文件，在确定传输成功后，删除旧文件，以避免数据丢失、重叠或占用大量的存储空间；
　　（3）上位机（厂部信息中心的计算机）与下位机都安装调制解调器，通过调制解调器将累加的数据文件定时地从下位机上载至上位机。上位机是管理层局域网的1个服务器，装有Windows NT Server网络操作系统；
　　（4）文件传送到上位机时，能自动累加在上次传送的文件之后，以供数据库管理软件读取和处理；
　　（5）在文件传输过程中，能检测传送线路连接是否正常，并将检测信息显示在主窗体的界面上。如果出现问题必须能马上断开连接，准备累加文件和等待下一次拨号连接；
　　（6）文件传输软件与系统监控软件同时在Windows95下运行。因此，在文件传输过程中，不能影响系统监控程序的正常运行；
　　（7）上位机数据库（远程数据库）应能自动打开传送文件，输入并保存数据文件，以供工程师和管理人员随时查阅；（8）上位机管理系统应能对远程数据进行实时处理并维护数据库各种功能的实现。
　　根据以上对文件传输软件的要求，本文采用Visual Basic可视化编程语言进行程序设计，并利用VB中的ActiveX控件，通过拨号网络与远程主机实现连接，由FTP文件传输协议进行文件的上载。对上位机数据库管理软件，采用可视化编程语言Delphi4．0编写，实现了远程数据传送及数据库建立与管理技术的应用。
2　文件传输软件设计方案的确定
2．1　程序设计的基本思想
　　利用VB下的Internet Transfer控件进行文件传输。在程序中，通过拨号网络服务拨号连接到上位机服务器并登录网络。在上位机的Windows NT操作系统中安装FTP网络服务器程序来接收下位机的FTP服务请求，由下位机控制上载整个文件，文件的传送是在相关的FTP协议控制下实现的，安全性、准确性比较高。用FTP的SEND命令，当文件传送到服务器时会自动累加到指定文件结尾处。因此，程序设计的基本思路是：①利用VB的集成开发环境与其丰富的“可视化”控件完成应用程序中Windows风格的界面；②利用Mscomm控件进行拨号连接；③利用Internet Transfer控件进行文件传输；④定时传送、定时累加文件的功能用VB的定时器Timer控件实现。
2．2　建立FTP文件传输协议的连接
　　在使用FTP协议时，首先要建立起控制连接。这就要用到服务器的公认端口号21，客户控制进程在本地申请得到1个随机分配的本地端口，用此端口号就可以和服务器的公认端口号21建立一个相关（一个相关包括5项内容：协议、本地地址、本地端口、远地地址、远地端口）。这样就建立了控制连接。由于建立数据连接要由服务器提出申请，但是在控制连接的条件下客户机发出数据请求的命令时服务器才会发出这个申请。服务器收到来自客户机控制进程的数据请求命令后，首先生成1个传输子程序。传输子程序再去申请1个端口号形成自己的半相关，这个端口号一般使用保留断口号20。此外，因为还需要客户机的半相关才能形成一个相关，而客户机的半相关还是服务器传输进程要申请建立数据连接的对象。这个半相关是从客户控制进程那里得来的。这是由于服务器数据传输子程序已经申请了1个新端口，客户机传输进程就不需要申请新的端口了。服务器传输进程就利用由控制进程转过来的客户地址和端口建立起一个相关，从而具备了向客户机申请数据连接的条件。因此，客户机的“协议、地址、端口号”这一半相关，分别和服务器的控制端口、传输形成的二个半相关成了二个完全不同的相关，用以建立控制连接和数据连接。这个过程和相关的形成如图2所示。

图2　FTP二个连接及二个半相关
3　远程文件传输程序的设计
3．1　创建应用程序的窗体
　　窗体是VB应用程序的1个基本平台，几乎所有的控件都要添加在窗体上，而大多数的应用程序也是从窗体开始的。本程序由3个窗体组成：主窗体（mainform）、属性设置窗体（frmproperties）和传送过程窗体（frmcancel）。在创建VB的新工程时，系统自动在工程中添加1个窗体Form1。改变Form1的“名称”属性为“mainform”，将它作为程序的主窗体。利用窗体编辑器和属性编辑器对窗体的属性进行更改以确定窗体的状态与行为。
　　为实现应用程序的各种功能，要在窗体上添加各种控件。主窗体如图3所示。

图3　主窗体界面
　　添加的主要控件有：SSTab控件：命令按钮控件（CommandButton）、文本框控件（TextBox）、选择钮控件（OptionButton）、状态条控件（StatusBar）、定时器控件（Timer）、串行通信控件（Mscomm）、网络传输控件（Internet Transfer）。
　　传输过程窗体较简单，只有1个文本控件来显示提示，还有1个用来中断本次传输过程的按钮。
3．2　程序中主要控件的使用
3．2．1 定时器的应用
　　每个定时器都必须依附在窗体上，但是它在运行时是不可见的。定时器最主要的二个属性是Enabled和Interval。在“远程文件传输程序”中，由于要完成“自动文件传输”的功能，总共用了6个定时器。它们在程序中的作用如下：
　　定时器StandardTimer被设置成1个标准的计时器，Interval属性设置为60000ms，即标准的1min。由于定时器的时间间隔最多为65535ms，而程序中文件的累加、自动拨号、自动登录传送等功能均在分钟级以上，所以在StandardTimer的Timer事件中再设置1个分钟计数器——全局变量Minutes。每次StandardTimer产生Timer事件时，处理Minutes自加，并根据要求启动文件的累加、自动拨号、自动登录传送等定时开始的工作。
3．2．2　Mscomm控件
　　Mscomm控件提供了一系列标准通信命令的使用界面。使用它可以建立与串行端口的连接，通过串行端口连接到其它通信设备（例如调制解调器），发出命令，交换数据，并监视和响应串行连接中发生的事件和错误。利用Mscomm控件控制调制解调器拨号连接上位机进行通信。
　　正确地设置属性之后，编写OnComm事件的处理代码是至关重要的。CommEvent属性返回最近发生的通信事件和错误的代码值。依据不同的CommEvent属性值进行不同的处理。主要的处理如下：
　　（1）当发生错误时，无论是手动还是自动传送状态，都要进行以下几步操作：①显示错误信息；②断开Internet控件的FTP连接（Intel．Close）；③向端口输出挂线命令“ATH0”（Mscomm1．OutPut＝“ATH0”）；④设PortOpen属性为False，关闭端口（Mscomm1．PortOpen＝“False”）；⑤等待下一次的拨号。
　　（2）当自动拨号成功连接时（在接收的字符中检测到连接成功的回报码），启动自动传送定时器AutoSendTimer，准备建立网络的FTP连接。
3．2．3　Internet Transfer控件
　　Internet Transfer控件支持超文本传输协议（HTTP）和文件传输协议（FTP），它们是Internet网上使用最广泛的二种协议。使用HTTP协议，可以连接全球信息网（World Wide Web）服务器，以检索HTML文档。使用FTP协议可以在FTP服务器上登录，以下载和加载文件。在此，利用文件传输协议FTP来上载文件，并完成以下几方面的工作：①设置控件的属性；②在程序中用Execute方法来执行对远程服务器的请求；③在StateChanged事件中，处理连接中的状态和错误，当返回值为12时，说明文件上载成功，在自动和手动传送二种不同情况下，各自进行不同的处理，也存在相同的任务，如删除下位机上用于传送的旧文件，准备累加新的数据文件；关闭FTP文件服务的连接和串行接口。
3．3　远程文件传输软件的主要功能
　　（1）该软件在Windows95下，与系统监控软件同时运行，定时自动拨号连接和自动传送文件。
　　（2）可进行自动和手动二种方式的文件传输。在数据文件的传送过程中，从主窗体上可显示状态信息；
　　（3）单击主窗体的“端口设置”按钮会弹出“属性”窗体，用户可以对串行端口的参数进行设置；
　　（4）可按用户的要求定时进行数据文件的累加和传送；
　　（5）主窗体上，用户可以对如下内容进行输入设置，即：①自动和手动的选择；②服务器IP地址；③被传送的文件路径；④传送时间间隔（用1个全局变量来保存）； ⑤拨打的电话号码。
　　（6）对上述用户的设置（包括对串行端口的设置），每当用户重新设置时，程序都用注册表操作函数SaveSetting将它们保存在Windows操作系统的注册表中。在下一次使用应用程序时，主窗体载入引发的Form＿load事件中，用注册表操作函数GetSetting将存储的值取回，恢复用户上次结束应用程序前的设置值。
4　Delphi数据库应用程序的设计
　　利用Delphi的客户／服务器功能，可以在本地数据库上或远程数据库服务器上开发客户／服务器模式的应用程序。Delphi的一个强有力的功能是可以将基于本地桌面数据库系统的应用程序很容易地修改成客户／服务器模式的应用。1个Delphi数据库应用程序访问的是本地数据库还是远程SQL数据库服务器上的数据库，这对于最终用户是完全透明的，即数据库的物理位置对最终用户是透明的。当数据库的物理位置发生变化时，用户界面不必随之变化。
4．1　远程数据库的程序设计
　　程序要求建立服务器端数据库，自动输入现场上传的数据，实现数据的处理、保存、修改及查询功能。程序调用Delphi4．0中的可视组件，并使用Object Pascal编写程序代码。
　　程序分为3个模块：程序主窗体、数据的自动插入及文件删除和数据查询。主窗体（mainform）起到枢纽的作用，既可以观察数据库的状态，又可以调用另2个模块。数据的自动输入及文件删除模块（form3）为最主要的模块，它实现了文本文件的自动打开和输入、多组数据的输入、文本文件的删除和数据库的编辑与储存。查询模块（Form1）提供了查询功能，在编辑框内输入指定格式的日期就可以显示该时间所存储的数据。程序流程图如图4所示。

图4　远程数据库程序框图
4．2　数据库应用程序主窗体
　　程序的主窗体实现数据库的显示以及调用数据输入和查询模块。它是由3个TSpeedButton、TDatasource、TTable和TDBGrid组成，如图5所示。

图5　数据库应用程序主窗体
4．3　读入文本文件中的数据及旧文件的删除
　　为了实现对文本文件中数据的读入功能，使用Dialogs标签页中的TOpendialog组件，并设置它的默认目录为C＼bishe。同时，在窗体中放上2个TMemo组件和几个TSpeedButton组件，把TMemo的属性“lines”设置为空。
　　（1）数据的插入、修改及删除
　　在窗体上放上TDBNavigator及19个TDBEdit控件，并设置TDBNavigator和TDBEidt的Datasource属性为MainForm．Datasourcel，设置TDBEidt的DataField属性为相应的字段名。其功能实现如图6所示。

图6　数据读入、保存及文件删除示意图
　　（2）查询功能的实现
　　由于数据库预设的主键为“时间”，所以，通过输入对比主键（时间）的值，联合使用Findkey和Gotonearest方法，可以实现查询功能。程序运行过程如图7所示。

图7　数据查询功能示意图
　　（3）程序的扩充修改
　　首先，在Delphi的Object Inspector中打开Bishe工程。修改所有Database Name、Table Name属性为空，且Active属性为false。然后，打开Database Desktop，打开名为Bishe的表格。使用Restructure修改表格，添加字段名、数据类型、数据长度。存储后退出。
　　在Form1和Form3中添加相应数目的TDBEidt，并仿照原来的属性修改，同时，修改所有Database Name的属性为DefaultDD，Table Name属性为Bishe，且Active属性为true。在Form3的原代码中添入代码：DBEidti．text＝Memol．lines［1］；
5　结束语
　　在工业生产过程中，对于生产现场与管理层之间相距较远的情况，远程数据传送技术的应用具有十分重要的意义。本文对上、下位机进行相应参数的设定并配置调制解调器，利用电话线构成计算机远程自动拨号网络。采用VB语言编制传输软件，实现了远程数据传送。上位机采用DELPHI4．0语言编程，数据库采用PARADOX格式，具有可修改、可扩充功能。该软件实现了文本文件中的多组数据自动读入、数据格式化、数据自动写入数据库的功能，并可对数据库中的数据自动查询以及对旧文本文件进行删除。由于考虑到现场的实际应用情况，该软件具有较高的可靠性和坚固性。本文将其应用在油田联合站计算机监控系统中，将现场生产过程的检测数据及时地上报管理层，使厂部领导迅速掌握生产情况并进行合理的决策，为实现油田生产自动化管理做了必要的准备。
　　该软件可适用于奔腾以上的PC机及服务器，操作系统为Windows95／98／NT的环境
陈祥光（北京理工大学化工与材料学院100081）
薛锦诚（北京理工大学化工与材料学院100081）
参考文献
１，魏源源．Ｖｉｓｕａｌ Ｂａｓｉｃ５．０中文版程序设计教程．北京：电子工业出版社，１９９８
２，ＭＩＬＬＥＲ Ｔ．ＤＥＬＰＨＩ ３．０开发指南．北京：机械工业出版社，１９９８
３，新思维创作室．ＤＥＬＰＨＩ ４．０应用编程．北京：人民邮电出版社，１９９８
收稿日期：１９９９－１２－１９
