System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及一种cms协议的一致性测试方法,属于变电站电力自动化通信技术测试领域。
技术介绍
1、随着计算机和网络通信技术的不断发展,尤其是以太网和面向对象技术的广泛应用,国际电工委员会第57技术委员会提出了实现变电站内智能电子设备无缝通信的一个全球范围标准—iec 61850,并得到了广泛的应用。变电站二次系统通信报文规范cms协议定义了将iec 61850标准中抽象通信服务接口直接映射到传输控制协议/网际协议tcp/ip进行数据交换的方法,通信协议一致性测试是电力自动化产品投入使用前的必经阶段,国家电网公司最新的继电保护及安全自动装置专业检测已将多客户端通信能力纳入考察范围,对多客户端并发操作时的性能指标、通信稳定性和远方操作逻辑互斥性提出了明确的要求。
2、目前现有的cms通信报文规范一致性测试方法需要对iec 61850原有模型和服务分别进行映射,为了提高测试效率的同时,也为了测试通信连接后的冲突性问题,需要对acsi中多个服务与iec 61850中模型分别建立多个客户端。每个客户端都需要多台计算机分别加载完整的scd模型和对象空间,通过这样的方式同时启用多个客户端必然会占用庞大的计算机资源、硬件成本大,同时加载多个模型创建多个对象空间也会造成内存资源的浪费。
技术实现思路
1、本专利技术的目的是提供一种cms协议的一致性测试方法,用于解决现有技术中同时启用多个客户端占用庞大的计算机资源、硬件成本大的问题。
2、为实现上述目的,本专利技术提供的技术
3、本专利技术提供了一种cms协议的一致性测试方法,该测试方法包括以下步骤:
4、1.通过一个客户端来加载解析测试所需的模型文件以及创建对象空间;
5、2.通过其他客户端创建用于启动多客户端线程的线程类,通过调用相应函数启动待测功能服务与多客户端建立连接;
6、3.在建立起各客户端与待测功能服务的连接后通过调用启动函数使其他子客户端在基于线程类commthread新建立的线程中运行;
7、4.在新线程运行过程中根据解析模型文件、配置参数以及待测功能服务,发送相关报文进行测试。
8、本专利技术通过一个客户端加载解析测试所需的模型文件以及创建对象空间,然后通过调用线程的方式实现cms协议各功能服务的测试,这样既可以实现多客户端的测试需求,同时又不需要同时启用多个客户端。与现有技术相比,本专利技术有效地解决了同时启用多个客户端占用庞大的计算机资源、硬件成本大的问题。
9、进一步地,所述步骤2)中采用qt技术创建线程类。
10、本专利技术采用qt技术创建线程类,qt技术具有良好的跨平台性,开发效率高,可以快速地构建应用程序。
11、进一步地,所述待测功能服务包括关联服务、控制服务和定值组服务。
12、进一步地,所述关联服务测试的流程为:判断客户端是否在运行中,如果客户端在运行中,则根据装置id调用关联服务类的remoteexecute()函数启动关联服务多客户端连接,并创建一个用于关联服务的otherclient对象,执行线程类并作为新的线程,打包发送与关联服务相关的报文,调用otherclient的start()函数启动关联请求,并判断关联是否成功,所述装置id是程序代码中定义的变电站装置的唯一标识变量,根据唯一标识实现与装置对应的连接,所述remoteexecute()函数是关联服务类下的成员函数,用于为关联服务新启动一个客户端,所述otherclient是程序代码中用于实现多客户端连接测试所创建的类,其中的成员函数用于实现多个客户端与装置的启动连接、异常中断处理和关闭断开连接的功能。
13、进一步地,所述关联服务在测试过程中还包括释放的流程:调用remoteexecute函数创建一个多客户端连接对象otherclient,执行start()函数判断是否连接,执行closesock()函数并根据装置id关闭关联服务连接的线程,所述start()函数是程序代码中定义的多客户端类otherclient中的用于启动其他子客户端连接的成员函数,所述closesock()函数是程序代码中定义的多客户端类otherclient中用于断开相应子客户端连接的成员函数。
14、进一步地,所述控制服务测试的流程为:根据装置id调用控制服务类的remoteexecute()函数启动控制服务多客户端连接,判断服务类型是否是控制服务,如果是控制服务,创建一个多客户端连接对象otherclient并调用start()函数建立多客户端关联;获取当前装置id,通过读取控制服务获取对象的实际状态更新对象空间;获取当前控制值,根据当前服务控制操作类型发送相关的报文,报文发送后释放相应控制服务的内存空间,等待控制命令响应,接收响应报文,解析报文后执行控制服务命令,所述装置id是程序代码中定义的变电站装置的唯一标识变量,根据唯一标识实现与装置对应的连接,所述remoteexecute()函数是关联服务类下的成员函数,用于为关联服务新启动一个客户端,所述otherclient是程序代码中用于实现多客户端连接测试所创建的类,其中的成员函数用于实现多个客户端与装置的启动连接、异常中断处理和关闭断开连接的功能。
15、进一步地,所述服务控制操作类型包括带值选择、执行和撤销。
16、进一步地,所述定值组服务测试的流程为:根据装置id调用定值组服务类的remoteexecute()函数启动定值组服务多客户端连接,判断服务类型是否是定值组服务,如果是定值组服务,创建一个多客户端连接对象otherclient并调用start()函数建立多客户端关联;获取定值组服务所需的参数,发送定值组服务命令报文,报文发送后释放相应定值组服务的内存空间,等待定值组服务命令响应,接收响应报文,解析报文后执行定值组服务命令,所述装置id是程序代码中定义的变电站装置的唯一标识变量,根据唯一标识实现与装置对应的连接,所述remoteexecute()函数是关联服务类下的成员函数,用于为关联服务新启动一个客户端,所述otherclient是程序代码中用于实现多客户端连接测试所创建的类,其中的成员函数用于实现多个客户端与装置的启动连接、异常中断处理和关闭断开连接的功能。
本文档来自技高网...【技术保护点】
1.一种CMS协议的一致性测试方法,其特征在于,该测试方法包括以下步骤:
2.根据权利要求1所述的CMS协议的一致性测试方法,其特征在于,所述步骤2)中采用QT技术创建线程类。
3.根据权利要求1所述的CMS协议的一致性测试方法,其特征在于,所述待测功能服务包括关联服务、控制服务和定值组服务。
4.根据权利要求3所述的CMS协议的一致性测试方法,其特征在于,所述关联服务测试的流程为:判断客户端是否在运行中,如果客户端在运行中,则根据装置ID调用关联服务类的RemoteExecute()函数启动关联服务多客户端连接,并创建一个用于关联服务的OtherClient对象,执行线程类并作为新的线程,打包发送与关联服务相关的报文,调用OtherClient的start()函数启动关联请求,并判断关联是否成功,所述装置ID是程序代码中定义的变电站装置的唯一标识变量,根据唯一标识实现与装置对应的连接,所述RemoteExecute()函数是关联服务类下的成员函数,用于为关联服务新启动一个客户端,所述OtherClient是程序代码中用于实现多客户端连接测试所
5.根据权利要求4所述的CMS协议的一致性测试方法,其特征在于,所述关联服务在测试过程中还包括释放的流程:调用RemoteExecute()函数创建一个多客户端连接对象OtherClient,执行start()函数判断是否连接,执行closeSock()函数并根据装置ID关闭关联服务连接的线程,所述start()函数是程序代码中定义的多客户端类OtherClient中的用于启动其他子客户端连接的成员函数,所述closeSock()函数是程序代码中定义的多客户端类OtherClient中用于断开相应子客户端连接的成员函数。
6.根据权利要求3所述的CMS协议的一致性测试方法,其特征在于,所述控制服务测试的流程为:根据装置ID调用控制服务类的RemoteExecute()函数启动控制服务多客户端连接,判断服务类型是否是控制服务,如果是控制服务,创建一个多客户端连接对象OtherClient并调用start()函数建立多客户端关联;获取当前装置ID,通过读取控制服务获取对象的实际状态更新对象空间;获取当前控制值,根据当前服务控制操作类型发送相关的报文,报文发送后释放相应控制服务的内存空间,等待控制命令响应,接收响应报文,解析报文后执行控制服务命令,所述装置ID是程序代码中定义的变电站装置的唯一标识变量,根据唯一标识实现与装置对应的连接,所述RemoteExecute()函数是关联服务类下的成员函数,用于为关联服务新启动一个客户端,所述OtherClient是程序代码中用于实现多客户端连接测试所创建的类,其中的成员函数用于实现多个客户端与装置的启动连接、异常中断处理和关闭断开连接的功能。
7.根据权利要求6所述的CMS协议的一致性测试方法,其特征在于,所述服务控制操作类型包括带值选择、执行和撤销。
8.根据权利要求3所述的CMS协议的一致性测试方法,其特征在于,所述定值组服务测试的流程为:根据装置ID调用定值组服务类的RemoteExecute()函数启动定值组服务多客户端连接,判断服务类型是否是定值组服务,如果是定值组服务,创建一个多客户端连接对象OtherClient并调用start()函数建立多客户端关联;获取定值组服务所需的参数,发送定值组服务命令报文,报文发送后释放相应定值组服务的内存空间,等待定值组服务命令响应,接收响应报文,解析报文后执行定值组服务命令,所述装置ID是程序代码中定义的变电站装置的唯一标识变量,根据唯一标识实现与装置对应的连接,所述RemoteExecute()函数是关联服务类下的成员函数,用于为关联服务新启动一个客户端,所述OtherClient是程序代码中用于实现多客户端连接测试所创建的类,其中的成员函数用于实现多个客户端与装置的启动连接、异常中断处理和关闭断开连接的功能。
...【技术特征摘要】
1.一种cms协议的一致性测试方法,其特征在于,该测试方法包括以下步骤:
2.根据权利要求1所述的cms协议的一致性测试方法,其特征在于,所述步骤2)中采用qt技术创建线程类。
3.根据权利要求1所述的cms协议的一致性测试方法,其特征在于,所述待测功能服务包括关联服务、控制服务和定值组服务。
4.根据权利要求3所述的cms协议的一致性测试方法,其特征在于,所述关联服务测试的流程为:判断客户端是否在运行中,如果客户端在运行中,则根据装置id调用关联服务类的remoteexecute()函数启动关联服务多客户端连接,并创建一个用于关联服务的otherclient对象,执行线程类并作为新的线程,打包发送与关联服务相关的报文,调用otherclient的start()函数启动关联请求,并判断关联是否成功,所述装置id是程序代码中定义的变电站装置的唯一标识变量,根据唯一标识实现与装置对应的连接,所述remoteexecute()函数是关联服务类下的成员函数,用于为关联服务新启动一个客户端,所述otherclient是程序代码中用于实现多客户端连接测试所创建的类,其中的成员函数用于实现多个客户端与装置的启动连接、异常中断处理和关闭断开连接的功能。
5.根据权利要求4所述的cms协议的一致性测试方法,其特征在于,所述关联服务在测试过程中还包括释放的流程:调用remoteexecute()函数创建一个多客户端连接对象otherclient,执行start()函数判断是否连接,执行closesock()函数并根据装置id关闭关联服务连接的线程,所述start()函数是程序代码中定义的多客户端类otherclient中的用于启动其他子客户端连接的成员函数,所述closesock()函数是程序代码中定义的多客户端类otherclient中用于断开相应子客户端连接的成员函数。
6.根据权利要求3所述的cms协议的一致性测试方法,其特征在于,所述控制服务测试的流程为:根据装...
【专利技术属性】
技术研发人员:凌路加,温东旭,杨辉,陈明强,肖亮,陈强,万首丰,陈豆,徐涛,汪强,周晓娟,方正,侍文博,应占煌,王亚强,
申请(专利权)人:许昌许继软件技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。