发明内容
本发明所要解决的技术问题是克服上述现有技术存在的缺陷,提供一种多厂家继电保护测试仪自动测试接口兼容方法,本发明遵循接口规范具备通用性、不依赖于具体测试仪生产商及型号的原则,从而使任何型号的测试仪可无缝接入微机保护自动测试软件系统。
为此,本发明采用如下的技术方案:多厂家继电保护测试仪自动测试接口兼容方法,其提供标准和统一的测试仪控制接口和控制参数表,所用的控制接口包括联机接口、启动测试接口、触发测试接口、停止测试接口、扫描试验结果接口和异常信息接口,所述的控制参数表包括交直流测试控制参数表、谐波测试控制参数表和状态序列测试控制参数表,其特征在于所述接口函数的调用步骤如下:加载接口链接库DLL文件,调用联机接口函数与测试仪下位机建立连接,测试仪下位机接受到该联机指令后,通过输入地址参数与接口链接库建立连接;联机成功后,准备测试参数,调用启动测试接口函数,开始输出,接口链接库接收到该输出指令后,开始对控制参数表进行解析,解析无误后指示测试仪按照参数表的要求加载电气量;调用扫描试验结果接口函数,持续性的发送结果扫描命令到接口链接库,获取当前试验是否已经产生结果数据,通过该结果数据决定下一步的操作;试验过程中,通过异常信息接口函数查询得到的试验是否已经发生异常,发生异常后,立即停止试验,并且提示错误信息。
本发明的接口主要用于微机保护测试仪与自动测试软件系统的数据交互及控制,实现自动测试软件系统支持各个厂家不同型号的测试仪。
上述的多厂家继电保护测试仪自动测试接口兼容方法,触发测试接口发送试验触发命令到接口链接库,测试仪接收到该命令后,执行下一步输出。
上述的多厂家继电保护测试仪自动测试接口兼容方法,停止测试接口发送停止命令到接口链接库,测试仪放弃当前测试,撤掉所加载的电气量并返回。
本发明通过提供标准和统一的测试仪控制接口和控制参数表,使自动测试软件系统能够兼容不同厂家测试仪,减少了开发、实施、维护等方面成本。
下面结合说明书附图和具体实施方式对本发明作进一步说明。
具体实施方式
本发明提供标准的、统一的测试仪控制接口规范以及标准的统一的控制参数表。控制接口以动态链接库(DLL文件)的方式实现,主要包括:启动联机、启动测试、触发测试、停止测试、扫描结果、异常信息;控制参数表主要包括:交直流测试控制参数表、谐波测试控制参数表、状态序列测试控制参数表。
(1)控制参数表
1)交直流测试控制参数表:
顺序 |
参数名称 |
字节数 |
参数描述 |
0 |
模块类型 |
4 |
数据为int32类型,交流实验时,该值固定为1 |
1 |
幅值数组 |
4*13 |
13相幅值,数据类型为float数组,依次为UA、UB、UC、UX、IA、IB、IC、Ua、Ub、Uc、Ia、Ib、Ic,默认0A、0V |
2 |
相位数组 |
4*13 |
13相相位;数据类型为float数组,依次为UA、UB、UC、UX、IA、IB、IC、Ua、Ub、Uc、Ia、Ib、Ic,默认0度 |
3 |
频率数组 |
4*13 |
13相频率;数据类型为float数组,依次为UA、UB、UC、UX、IA、IB、IC、Ua、Ub、Uc、Ia、Ib、Ic,默认50Hz |
4 |
输出时间 |
4 |
输出时间;数据为float类型,单位为秒,描述该次输出的最长时间 |
5 |
开人量逻辑 |
4 |
开人量逻辑;数据为int32类型,值0为逻辑或,值1为逻辑与 |
6 |
开人量使能 |
4 |
8对开人量使能;数据为int32类型,定义开入量1至开入量8由低位至高位按位编码,依次为:1、2、3、4、5、6、7、8;值0为该开入量无效,值1为有效 |
7 |
动作时间 |
4 |
动作时间;数据为float类型,单位为秒,记录该次输出的动作时间,该变量以试验结果的方式输出,当值小于0时,表示试验无动作情况 |
2)谐波测试控制参数表:
顺序 |
参数名称 |
字节数 |
参数描述 |
0 |
模块类型 |
4 |
模块类型;数据为int32类型,谐波实验时,该值固定为2 |
1 |
谐波幅值数组 |
4*7*21 |
谐波幅值;数据类型为float二维数组,7相21次谐波,7相依次为UA、UB、UC、UX、IA、IB、IC,默认0A、0V |
2 |
谐波相位数组 |
4*7*21 |
谐波相位;数据类型为float二维数组,7相21次谐波,7相依次为UA、UB、UC、UX、IA、IB、IC,默认0度 |
3 |
基波频率 |
4 |
基波频率;数据类型为float数组 |
4 |
输出时间 |
4 |
输出时间;数据为float类型,单位为秒,描述该次输出的最长时间 |
5 |
开人量逻辑 |
4 |
开人量逻辑;数据为int32类型,值0为逻辑或,值1为逻辑与 |
6 |
开人量使能 |
4 |
8对开人量使能;数据为int32类型,定义开入量1至开入量8由低位至高位按位编码,依次为:1、2、3、4、5、6、7、8;值0为该开入量无效,值1为有效 |
7 |
动作时间 |
4 |
动作时间;数据为float类型,单位为秒,记录该次输出的动作时间,该变量以试验结果的方式输出,当值小于0时,表示试验无动作情况 |
3)状态序列测试控制参数表:
其中STATE_SIZE为单状态结构的参数表存贮空间大小。
单状态参数表结构为:
顺序 |
参数名称 |
字节数 |
参数描述 |
0 |
幅值数组 |
4*13 |
13相幅值,数据类型为float数组,依次为UA、UB、UC、UX、IA、IB、IC、Ua、Ub、Uc、Ia、Ib、Ic,默认0A、0V |
1 |
相位数组 |
4*13 |
13相相位;数据类型为float数组,依次为UA、UB、UC、UX、IA、IB、IC、Ua、Ub、Uc、Ia、Ib、Ic,默认0度 |
2 |
频率数组 |
4*13 |
13相频率;数据类型为float数组,依次为UA、UB、UC、UX、IA、IB、IC、Ua、Ub、Uc、Ia、Ib、Ic,默认50Hz |
3 |
输出时间 |
4 |
输出时间;数据为float类型,单位为秒,描述该次输出的最长时间 |
4 |
开人量逻辑 |
4 |
开人量逻辑;数据为int32类型,值0为逻辑或,值1为逻辑与 |
5 |
开人量使能 |
4 |
8对开人量使能;数据为int32类型,定义开入量1至开入量8由低位至高位按位编码,依次为:1、2、3、4、5、6、7、8;值0为该开入量无效,值1为有效 |
6 |
触发条件 |
4 |
状态触发条件;数据为int32类型,值0为时间触发,值1为时间加开人量触发,值2为开入量,值3为按键 |
7 |
开出量初始状态 |
4 |
开出量初始状态;数据为int32类型,定义开出量1至开出量4由低位至高位按位编码,单值0表示开出断开(无开出信号),值1表示开出合上 |
8 |
开出保持时间 |
4 |
开出保持时间;数据为float类型,单位为秒,表示开出量初始状态的保持时间 |
9 |
动作时间 |
4 |
动作时间;数据为float类型,单位为秒,记录该次状态的动作时间,该变量以试验结果的方式输出,当值小于0时,表示试验无动作情况 |
所用的控制接口由联机接口、启动测试接口、触发测试接口、停止测试接口、扫描试验结果接口和异常信息接口构成,所述的控制参数表包括交直流测试控制参数表、谐波测试控制参数表和状态序列测试控制参数表,其特征在于所述接口函数的调用步骤如下:加载接口链接库DLL文件,调用联机接口函数与测试仪下位机建立连接,测试仪下位机接受到该联机指令后,通过输入地址参数与接口链接库建立连接;联机成功后,准备测试参数,调用启动测试接口函数,开始输出,接口链接库接收到该输出指令后,开始对控制参数表进行解析,解析无误后指示测试仪按照参数表的要求加载电气量;调用扫描试验结果接口函数,持续性的发送结果扫描命令到接口链接库,获取当前试验是否已经产生结果数据,通过该结果数据决定下一步的操作;试验过程中,通过异常信息接口函数查询得到的试验是否已经发生异常,发生异常后,立即停止试验,并且提示错误信息。
下面对各个接口进行详细描述。
1) 联机接口
调用联机接口函数与测试仪下位机建立连接,测试仪下位机接受到该联机指令后,通过输入地址参数与接口链接库建立连接;接口链接库一次联机完成,通过接口函数返回值返回联机结果。另外,可能通过循环调用该接口函数直到联机成功为止,在阻塞调用期间确保用户界面响应正常。
输入输出:输入参数为联机IP地址,即测试仪的网络IP地址;
接口返回:返回真值表示联机成功;否则表示联机失败;
原型样例:bool CommConnect(char* pAddress)。
2)启动测试接口
接口功能:非阻塞方式,接口链接库接收到该输出指令后,开始对参数表进行解析,解析无误后指示测试仪按照参数表的要求加载电气量。函数调用过程中应检查参数表的合理性及是否超出测试仪输出范围等,并据此设定函数返回值。
输入输出:输入参数1为试验控制参数,为接口控制参数表的实例指针;输入参数2为该实例测数据大小(字节数);
接口返回:返回真值表示输出成功;否则表示输出失败,可调用异常信息接口取得错误信息;
原型样例:bool DeviceOutput(char* pParam, int nSize)。
3)触发测试接口
接口功能:发送试验触发(按键)命令到接口链接库,测试仪接收到该命令后,执行下一步输出。
输入输出:无;
接口返回:返回真值表示触发成功;否则表示触发失败,可调用异常信息接口取得错误信息;
原型样例:bool DeviceTrigger()。
4)停止测试接口
接口功能:阻塞方式,发送停止命令到接口链接库,测试仪放弃当前测试,撤掉所加载的电气量并返回。
输入输出: 无;
接口返回:返回真值表示停止成功;否则表示停止失败,可调用异常信息接口取得错误信息;
原型样例:bool DeviceInterrupt()。
5)扫描试验结果接口
接口功能:阻塞方式,试验过程中,持续性的发送结果扫描命令到接口链接库,获取当前试验是否已经产生结果数据,通过该结果数据决定下一步的操作。产生试验结果两种情况:(1)开关量动作,产生动作时间;(2)该次输出时间到。
输入输出: 无;
接口返回:返回真值表示试验产生了结果数据;否则表示试验还没有产生结果数据;
原型样例:bool DeviceScan()。
6)异常信息接口
接口功能:接口链接库接收到该输出指令后,返回当前试验过程中首次产生的异常及错误信息。试验过程中,通过该接口函数查询得到试验是否已经发生异常。发生异常后,应该立即停止试验,并且提示错误信息。
输入输出:输入参数1为指向错误信息存储空间的头部指针,调用后该参数返回错误信息字符串;输入参数2为该错误信息存储空间大小(字节数);
接口返回:返回真值表示试验产生了异常;否则表示试验正常进行,没有产生异常;
原型样例:bool GetErrorMSG(char* pParam, int nSize)。
下面为接口的控制实例
1)交流动作值测试样例
某线路保护的A相差动启动电流定值为I0,整定时间为T0,要求在0.95倍定值至1.05倍定值之间通过扫描方式测得该保护的A相差动的实际启动电流In,测试精度(即扫描步长)为0.05倍的定值,最大试验时间1.2倍的整定时间(T0)。
接口函数调用流程如图2所示,该流程图详细描述了交流动作值测试时接口函数的调用流程,其中谐波试验的接口调用流程与此流程一样。
)状态序列测试样例
某线路保护的接地距离1段阻抗定值为Z1、灵敏角为Phi、整定时间为T1,要求测试A相故障、故障电流为Ix时距离保护的动作情况。
接口函数调用流程图如图3所示。