CN101599869A - 一种基于网络的仿真测试远程控制方法 - Google Patents
一种基于网络的仿真测试远程控制方法 Download PDFInfo
- Publication number
- CN101599869A CN101599869A CNA2008101238223A CN200810123822A CN101599869A CN 101599869 A CN101599869 A CN 101599869A CN A2008101238223 A CNA2008101238223 A CN A2008101238223A CN 200810123822 A CN200810123822 A CN 200810123822A CN 101599869 A CN101599869 A CN 101599869A
- Authority
- CN
- China
- Prior art keywords
- function
- call
- client
- library
- interface
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于网络的仿真测试远程控制方法,本发明由于简化实现方法,采用动态编译技术和注册函数库方法实现了远程调用核心技术,抛弃了COM/DCOM、CORBA庞大复杂的接口描述语言(IDL),主要工作模块采用C++语言编写,能够跨平台运行,支持Windows、Linux和VxWorks等操作系统。同时,在本地调用旁路、Python和Java接口等多处考虑到实时性、轻量化和可扩展要求,做了优化处理,特别适用于嵌入式系统,满足实时性要求。
Description
技术领域
本发明涉及一种控制方法,尤其是涉及一种基于网络的仿真测试远程控制方法。
背景技术
变电站自动化系统涉及到各种各样的通信规约,规约一致性测试显得尤为重要,特别是最新的IEC 61850标准,将一致性测试单独作为一个章节做了详细规定,给互操作试验打下了坚实基础。规约一致性测试软件采用远程仿真控制方式,实现测试装置各项功能的控制运行。由于需要在不同平台的嵌入式装置中运行,因此已有的远程控制方法,例如COM/DCOM、CORBA等实现复杂,难于裁减,不能满足实时性要求。
在嵌入式Linux邮件组中,目前远程调用在嵌入式平台运行的主要问题在于两个方面的问题,其一是没有轻量级的C语言XML解析器,其二是安全上的考虑。《嵌入式环境下RPC的设计与实现》(袁菲等,计算机工程,33(9),266-268,2007.5)分析了RPC系统结构的基础上,结合嵌入式环境设计了一个通用的RPC系统,并在一个具体的平台上实现了该RPC设计。该文比较专业的实现了RPC,但其设计目标是传递消息机制,并且没有考虑跨平台、多个IP地址绑定、批量打包、支持Java和Python等编程语言接口、安全等方面的问题。
发明内容
1、发明目的
本发明的目的是为了实现变电站自动化通信规约仿真测试的远程控制方法,能够跨平台运行,支持Linux、VxWorks等嵌入式平台,满足实时性要求,同时支持Java和Python语言接口。
2、技术方案
主要接口包括:
1)参数打包和解包。整个调用过程包括复杂的函数名、输入参数、输出参数的打包和解包过程,如附图1所示。调用方只须了解参数的打包过程,参数解包和结果解析自动完成。支持的参数类型包括INT8、INT16、INT32、INT64、BOOL32、FLOAT32、FLOAT64、字符串、字节数组和可序列化对象。调用函数按照规范的函数名称匹配。参数打包可以批量完成,即在缓冲区空间允许的条件下,一次性打包多个函数。
2)本地旁路接口(如附图2所示)。负责监视本地调用请求,绕过网络通讯,直接调用本地函数,提高效率。
3)连接管理。连接管理负责多网卡的绑定,网卡发生故障时自动切换连接,支持TCP普通连接模式和SSL安全连接模式。
4)函数库接口。为了方便扩展函数库,设计了标准的扩展接口。为了满足实时性要求,函数库采用静态连接的注册模式。采用XML文件,灵活配置需要加载的函数库。
5)网络通讯。网络通讯包括服务端和调用端,调用端打包参数,发送调用请求,等候远程调用返回。服务端接收调用请求,解包参数,调用函数,然后打包输出参数,发送输出结果。
6)Java语言接口。为了提高效率,用Java语言实现了参数打包和解包接口,远程调用通过JNI接口完成。
7)Python语言接口。变电站通讯规约多种多样,不同的规约有不同的测试流程,因此需要用脚本做远程控制,为此实现了Python语言的远程调用接口。
基于以上的接口,本发明所实现的仿真测试远程控制方法步骤如下:
1)服务端增加函数库。函数库编译成共享库,函数库分为2层。底层是功能实现。上层是远程控制封装接口,主要工作是从参数解包对象中依次解包、检查输入和输出参数,调用函数库中的相应函数,并将结果写入输出参数。封装接口与功能函数是一一对应的,即函数库需要输出的函数,必须封装相应的远程控制接口,远程控制核心模块自动调用封装接口,封装接口调用功能函数。另外,最重要的是,封装接口必须提供注册函数,该函数负责注册函数名和函数入口地址。
2)服务端注册函数库。注册函数库是在config.xml文件中增加函数库配置。
3)服务端运行远程控制监护程序。监护程序启动时,首先读取并解析config.xml,config.xml语法简单,解析是由内部代码实现的。监护程序调用函数库的注册函数,建立函数名与函数入口地址之间的映射关系。
4)客户端创建远程控制接口对象。该对象负责打包函数名和输入输出参数。
5)客户端定义函数调用参数。通过上一步创建的对象,依次定义函数名、输入参数和输出参数。
6)客户端请求调用。请求调用后,核心模块负责触发调用过程。
7)客户端返回结果。检查调用是否成功,如果成功,输出结果自动赋值给输出变量,客户端直接使用输出变量;如果失败,检查失败原因。
3、有益效果
本发明由于简化实现方法,采用动态编译技术和注册函数库方法实现了远程调用核心技术,抛弃了COM/DCOM、CORBA庞大复杂的接口描述语言(IDL),主要工作模块采用C++语言编写,总共196KB,能够跨平台运行,支持Windows、Linux和VxWorks等操作系统。同时,在本地调用旁路、Python和Java接口等多处考虑到实时性、轻量化和可扩展要求,做了优化处理,特别适用于嵌入式系统,满足实时性要求。与现有远程调用技术相比,本发明性能大大提高。测试表明,DCOM每秒最多能够实现300次远程调用,3000次本地调用;而本发明每秒最多能够实现1300次远程调用,7000次本地调用。
本发明避免使用XML解析器,因为CORBA是基于XML配置远程接口的,而本发明是基于动态编译技术的,采用函数注册机制,用于嵌入式装置,实现简单、运行效率高、维护方便。基于安全方面的考虑,本发明支持SSL安全连接,并且可以跨平台运行,在运行速度方面有一些影响,特别是连接开始的时候。对于两台互连的测试机器,建议不用SSL连接模式。本发明另外还考虑了支持多个IP地址绑定,常见的是两个IP地址,互为备份连接,一个连接中断时,自动切换。
附图说明
图1是远程控制过程示意图;
图2是远程控制本地旁路过程示意图;
图3是远程控制实现流程图。
具体实施方式
远程控制在通用规约测试和通用组态项目中有具体的应用。在通用规约测试项目中,测试用例管理软件采用Python远程控制接口,通过运行不同的Python脚本,远程控制测试装置,自动完成不同通讯规约的测试任务。在通用组态项目中,组态软件运行Java远程控制接口,通过远程控制接口,实现远方数据库的读写和各种诊断等控制操作。
远程控制服务端主要工作是扩展函数库,按照标准的函数库扩展接口实现库函数接口,然后编译生成动态链接库(Windows是.dll文件,Linux是.so文件,VxWorks是.a文件),修改config.xml文件,增加函数库条目。运行远程控制核心模块,自动加载和解析配置文件,加载相应的函数库,监听远程控制服务端口,发现客户端有控制调用时,建立连接,接收和解包远程控制参数,函数调用,返回结果打包,最后将输出打包参数发送给客户端,整个实施过程完毕。实际编程时,需要远程控制核心模块及其头文件和config.xml文件及其配置方法。
远程控制C++客户端首先需要详细的服务端函数库接口清单,了解函数库名称和输入、输出参数类型。按照C++客户端编程规范,定义一个远程控制对象,注册服务器,并绑定其网卡IP地址(支持多个IP地址),打包函数名及其输入、输出参数,触发远程控制调用。远程控制核心模块负责完成参数打包、发送,返回结果接收、解包、解析过程,返回结果自动写入输出变量,整个实施过程完毕。实际编程实现时,需要远程控制核心模块及其头文件(Windows平台需要.lib符号库)。
远程控制Java客户端与C++客户端实施过程类似,只不过客户端参数打包、解包和输出结果解析过程不是由C++模块完成,而是由RPCPacker.jar包完成的,输出结果最后自动写入Java数据对象。整个过程需要远程控制核心模块、远程控制JNI接口模块和RPCPacker.jar包的支持。实际编程时,需要远程控制核心模块、JNI接口包和RPCPacker.jar包。
远程控制Python客户端需要PyRPC.pyd标准C语言扩展库文件,引入PyRPC模块,其它过程与C++客户端接口类似。
服务端实现步骤如下:
1、采用C++编程语言,按照扩展库接口定义,写函数库代码,编译生成动态库。函数库就是开放给远方调用的函数集合;
2、在config.xml文件中增加相应的函数库条目。例如Linux系统:
<MethodRegistry>libRPCDemoMethod.so</MethodRegistry>
3、运行远程调用控制服务端守护进程RPCService,该进程加载config.xml配置文件中的函数库,监听RPC请求端口,将请求参数解包,调用本地函数,并将结果打包,发送到远方客户端。
客户端实现步骤如下:
1、引入远程调用客户端编程库,Python语言是PyRPC.pyd,Java语言为RPCPacker.jar;
2、注册远程调用模块,用于客户端身份识别;
3、绑定IP地址;
4、创建远程调用接口对象;
5、打包函数名;
6、打包输入参数;
7、打包输出参数;
8、调用多个函数重复5~7步;
9、函数调用;
10、判断返回结果,若成功提取返回参数,若失败提取失败原因。
Claims (3)
1、一种基于网络的仿真测试远程控制方法,其特征在于,包括以下步骤:
1)服务端增加函数库,函数库编译成共享库,函数库分为两层,底层是功能实现,上层是远程控制封装接口,用于从参数解包对象中依次解包、检查输入和输出参数,调用函数库中的相应函数,并将结果写入输出参数;
2)服务端注册函数库,注册函数库是在config.xml文件中增加函数库配置;
3)服务端运行远程控制监护程序;
4)客户端创建远程控制接口对象。该对象负责打包函数名和输入输出参数;
5)客户端定义函数调用参数,通过上一步创建的对象,依次定义函数名、输入参数和输出参数;
6)客户端请求调用,请求调用后,核心模块负责触发调用过程;
7)客户端返回结果,检查调用是否成功,如果成功,输出结果自动赋值给输出变量,客户端直接使用输出变量;如果失败,检查失败原因。
2、根据权利要求1所述的一种基于网络的仿真测试远程控制方法,其特征在于,步骤1)进一步包括:
1)函数库输出的函数封装相应的远程控制接口,远程控制核心模块自动调用封装接口,封装接口调用功能函数,用于一一对应封装接口与功能函数;
2)封装接口提供注册函数,用于注册函数名和函数入口地址。
3、根据权利要求1所述的一种基于网络的仿真测试远程控制方法,其特征在于,步骤3)进一步包括:
1)监护程序启动时,首先读取并解析config.xml;
2监护程序调用函数库的注册函数,用于建立函数名与函数入口地址之间的映射关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101238223A CN101599869A (zh) | 2008-06-05 | 2008-06-05 | 一种基于网络的仿真测试远程控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101238223A CN101599869A (zh) | 2008-06-05 | 2008-06-05 | 一种基于网络的仿真测试远程控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101599869A true CN101599869A (zh) | 2009-12-09 |
Family
ID=41421132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008101238223A Pending CN101599869A (zh) | 2008-06-05 | 2008-06-05 | 一种基于网络的仿真测试远程控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101599869A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102611567A (zh) * | 2011-12-19 | 2012-07-25 | 北京星网锐捷网络技术有限公司 | 一种双机备份的组网系统及报文传输方法 |
CN102750183A (zh) * | 2012-07-03 | 2012-10-24 | 山东大学 | 电力系统数值仿真开放式应用程序接口 |
CN102780731A (zh) * | 2011-05-13 | 2012-11-14 | 易程(苏州)软件股份有限公司 | 客户端通信方法和装置 |
CN103019820A (zh) * | 2012-12-06 | 2013-04-03 | 厦门市美亚柏科信息股份有限公司 | 基于boost的出站式rfi/rmi服务实现方法及通信系统 |
CN103544049A (zh) * | 2012-07-10 | 2014-01-29 | 百度在线网络技术(北京)有限公司 | 测试环境的自动处理方法、测试的自动化实现方法及装置 |
CN103885881A (zh) * | 2014-04-03 | 2014-06-25 | 北京航空航天大学 | 一种基于VxWorks系统多任务机制的高实时并发测试方法 |
CN104111633A (zh) * | 2013-04-16 | 2014-10-22 | 国家电网公司 | 控制组态在仿真与控制系统间相互直接使用方法及dpu |
CN105607914A (zh) * | 2016-01-20 | 2016-05-25 | 浪潮集团有限公司 | 一种定制IPMItool功能函数的方法 |
CN106292336A (zh) * | 2016-10-10 | 2017-01-04 | 上海航天控制技术研究所 | 基于嵌入式VxWorks的卫星姿轨控系统的故障模拟系统及方法 |
CN107025115A (zh) * | 2017-05-05 | 2017-08-08 | 北京英诺威尔科技股份有限公司 | 一种适配多种接口采集的方法 |
CN108334365A (zh) * | 2017-08-23 | 2018-07-27 | 中国电子科技集团公司第四十研究所 | 一种实现自动测试系统软件中仪器参数界面动态配置方法 |
CN111767033A (zh) * | 2020-05-21 | 2020-10-13 | 江苏中科重德智能科技有限公司 | 用于机械臂程序开发的编程系统及功能扩展方法 |
-
2008
- 2008-06-05 CN CNA2008101238223A patent/CN101599869A/zh active Pending
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102780731A (zh) * | 2011-05-13 | 2012-11-14 | 易程(苏州)软件股份有限公司 | 客户端通信方法和装置 |
CN102611567A (zh) * | 2011-12-19 | 2012-07-25 | 北京星网锐捷网络技术有限公司 | 一种双机备份的组网系统及报文传输方法 |
CN102611567B (zh) * | 2011-12-19 | 2016-03-30 | 北京星网锐捷网络技术有限公司 | 一种双机备份的组网系统及报文传输方法 |
CN102750183A (zh) * | 2012-07-03 | 2012-10-24 | 山东大学 | 电力系统数值仿真开放式应用程序接口 |
CN103544049A (zh) * | 2012-07-10 | 2014-01-29 | 百度在线网络技术(北京)有限公司 | 测试环境的自动处理方法、测试的自动化实现方法及装置 |
CN103019820B (zh) * | 2012-12-06 | 2015-10-07 | 厦门市美亚柏科信息股份有限公司 | 基于boost的出站式rfi/rmi服务实现方法及通信系统 |
CN103019820A (zh) * | 2012-12-06 | 2013-04-03 | 厦门市美亚柏科信息股份有限公司 | 基于boost的出站式rfi/rmi服务实现方法及通信系统 |
CN104111633B (zh) * | 2013-04-16 | 2016-12-28 | 国家电网公司 | 控制组态在仿真与控制系统间相互直接使用方法及dpu |
CN104111633A (zh) * | 2013-04-16 | 2014-10-22 | 国家电网公司 | 控制组态在仿真与控制系统间相互直接使用方法及dpu |
CN103885881B (zh) * | 2014-04-03 | 2016-08-03 | 北京航空航天大学 | 一种基于VxWorks系统多任务机制的高实时并发测试方法 |
CN103885881A (zh) * | 2014-04-03 | 2014-06-25 | 北京航空航天大学 | 一种基于VxWorks系统多任务机制的高实时并发测试方法 |
CN105607914A (zh) * | 2016-01-20 | 2016-05-25 | 浪潮集团有限公司 | 一种定制IPMItool功能函数的方法 |
CN106292336A (zh) * | 2016-10-10 | 2017-01-04 | 上海航天控制技术研究所 | 基于嵌入式VxWorks的卫星姿轨控系统的故障模拟系统及方法 |
CN107025115A (zh) * | 2017-05-05 | 2017-08-08 | 北京英诺威尔科技股份有限公司 | 一种适配多种接口采集的方法 |
CN107025115B (zh) * | 2017-05-05 | 2020-06-26 | 北京英诺威尔科技股份有限公司 | 一种适配多种接口采集的方法 |
CN108334365A (zh) * | 2017-08-23 | 2018-07-27 | 中国电子科技集团公司第四十研究所 | 一种实现自动测试系统软件中仪器参数界面动态配置方法 |
CN108334365B (zh) * | 2017-08-23 | 2021-04-13 | 中国电子科技集团公司第四十一研究所 | 一种实现自动测试系统软件中仪器参数界面动态配置方法 |
CN111767033A (zh) * | 2020-05-21 | 2020-10-13 | 江苏中科重德智能科技有限公司 | 用于机械臂程序开发的编程系统及功能扩展方法 |
CN111767033B (zh) * | 2020-05-21 | 2023-08-25 | 江苏中科重德智能科技有限公司 | 用于机械臂程序开发的编程系统及功能扩展方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101599869A (zh) | 一种基于网络的仿真测试远程控制方法 | |
US7562352B2 (en) | Data format conversion method and equipment, and controller management system using data format conversion equipment | |
CN108023952B (zh) | 一种基于云雾结合的模块化物联网应用快速构建平台 | |
CN105389222B (zh) | 一种动态调用原生接口的方法、装置和系统 | |
CN100353714C (zh) | 一种实现Web服务自动化测试的方法 | |
CN104063425B (zh) | 通过数据库中间件查询数据的方法和数据库中间件 | |
CN102403034B (zh) | Dsp控制单板设备及其远程升级方法和服务器 | |
CN104854558A (zh) | 用于使用编译和部署服务进行软件构建和负载处理的系统、方法和计算机程序产品 | |
CN101114953A (zh) | 一种宽带接入服务器自动化测试的方法 | |
CN102594618A (zh) | 实现存储局域网络存储设备测试的方法及装置 | |
CN105224753A (zh) | 非能动核电厂多专业设计验证平台 | |
CN101145982A (zh) | 一种基于对象模型与协议组态配置的通用网关设计方法 | |
CN112084008A (zh) | 一种基于容器技术快速部署云管系统的方法 | |
CN109766278A (zh) | 基于osgi框架的网关设备web后台自动测试方法 | |
CN106951357B (zh) | 一种基于守护进程的服务器端应用发布监控方法及装置 | |
CN1929399A (zh) | 嵌入式Web网管系统及其交互方法 | |
CN102377506A (zh) | 测试报文处理系统 | |
CN112688800B (zh) | 基于脚本技术的智能电网智能设备远程维护方法和系统 | |
CN113315681B (zh) | 一种基于智能家庭网关插件的自动化测试方法及系统 | |
CN102664952B (zh) | 一种对嵌入式设备集群管理及监控的方法 | |
US7302474B2 (en) | Remote device diagnostics | |
CN113794782A (zh) | 一种基于中间件和mqtt协议的物联网通信系统和方法 | |
CN100470472C (zh) | 一种基于解释器和解析器实现地理信息服务的系统及方法 | |
CN101969442B (zh) | 基于进程运行环境感知与迁移的网络模拟框架实现方法 | |
CN104717249A (zh) | 远程操作应用发布的方法、代理服务器和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20091209 |