基于OPC协议的可扩展软件系统测试框架的测试方法

文档序号:35657414发布日期:2023-10-06 14:24阅读:39来源:国知局
基于OPC协议的可扩展软件系统测试框架的测试方法

本发明属于软件系统测试领域,具体说是一种基于opc协议的可扩展软件系统测试框架的测试方法。


背景技术:

1、随着计算机与通信技术在民用、航天等领域的应用与发展,现场总线控制系统的功能和结构日益复杂,对每个独立设备或模块开发测试软件已经渐渐显得力不从心,难以满足测试需求,同时又会增加测试成本。

2、目前,市场上较为成熟的工业产品都具备独立的开发测试平台,例如,baslerpylon,tmcl-ide等。其可满足同平台下各型号设备(如baslerace/ace2/scout系列以太网相机,trinamicqsh/qbl系列步进电机等)间的开发测试。但由于各产品间接口及通信协议的限制,这些测试平台不具备跨平台产品间的系统测试,这大大降低了测试平台的通用性。当多个不同平台的产品集成到一个模块或系统时,上述测试平台可以独立完成其产品的测试工作,这降低了测试复杂度,但也降低了产品间测试的覆盖率,降低了测试结果的可靠性。

3、因此,设计一种接口和通信协议同时可扩展的软件系统测试框架,以满足测试设备或测试项的变更,是非常必要的。


技术实现思路

1、本发明目的是提供一种基于opc协议的可扩展软件系统测试框架的测试方法。当新增不同通信协议的设备时,只需要对下层数据库中的协议文件进行装订,下层数据库和上层测试平台的代码不会变更;当对已有设备的测试项进行变更时,只需要对上层平台对应测试模块gui进行修改。这增强了软件集成测试平台对不同测试设备和测试功能的适应能力,提高了软件测试的效率,降低了代码维护的成本。

2、本发明为实现上述目的所采用的技术方案是:一种基于opc协议的可扩展软件系统测试框架的测试方法,包括以下步骤:

3、1)对数据库初始化,将gui集成测试平台与数据库连接;中间层的数据库与下层的被测对象相连接;被测对象根据通信协议要求,完成应用层握手流程,数据库与被测对象握手成功,建立通信通道;

4、2)数据库与被测对象数据库建立通信通道后,数据库采集被测对象的工参指令;

5、3)数据库的消息处理模块,对采集到的被测对象的工参指令进行解析,得到工参属性值,并将工参属性值写入数据库中,同时将工参属性值转化为工参信息传输至gui集成测试平台;

6、4)gui集成测试平台读取数据库中工参信息,并根据测试需求在gui界面实时显示;同时,gui集成测试平台根据测试需求将对被测对象的控制信息写入数据库,并将控制信息转化为指令属性值传递给数据库的消息处理模块;

7、5)数据库的消息处理模块读取数据库中指令属性值,并按照通信协议,组包为控制指令,数据库将控制指令发送给被测对象;评估本轮测试结果,完成测试。

8、所述数据库,包括:opc服务器、通信协议修订模块、消息处理模块、串口服务端和tcp服务端;

9、opc服务器,包括:指令库和工参库;

10、其中,指令库,用于存储gui集成测试平台opc客户端下发的被测对象控制信息,通过opc协议将控制信息转化为指令属性值传递给数据库的消息处理模块;

11、工参库,用于存储数据库的消息处理模块输入的工参属性值,通过opc协议将工参属性值转化为工参信息传递给gui集成测试平台的opc客户端;

12、通信协议修订模块,用于读取解析数据库的配置文件和通信协议配置文件;

13、所述数据库配置文件的内容,包括:被测对象信息、通信协议配置文件名、串口信息、tcp服务端信息;

14、所述通信协议配置文件的内容,包括:应用层握手协议、工参通信协议、指令通信协议;

15、消息处理模块,用于载入握手协议、工参协议和指令协议,接收并处理串口/tcp服务端传入的工参指令、握手指令和握手指令反馈,接收并处理opc服务器传入的指令属性值,向opc服务器发送工参属性值,向串口/tcp服务端发送工参查询指令、控制指令和握手指令反馈;

16、所述串口服务端,包括:串口数据发送线程、串口数据接收线程、串口数据发送缓存区以及串口缺失数据缓存区;

17、串口数据发送线程,用于定时读取消息发送缓存区中数据,并存入串口数据发送缓存区;

18、串口数据接收线程,用于定时读取串口数据接收缓存区中数据,并存入消息接收缓存区;

19、串口数据发送缓存区,用于存储串口发送数据;串口数据接收缓存区,用于存储串口接收数据;

20、串口缺失数据缓存区,用于存储串口接收到的不完整数据;

21、所述tcp服务端,包括:tcp数据发送线程、tcp数据接收线程、tcp数据发送缓存区、tcp数据接收缓存区以及tcp缺失数据缓存区;

22、tcp数据发送线程,用于定时读取消息发送缓存区中数据,并存入tcp数据发送缓存区;

23、tcp数据接收线程,用于定时读取tcp数据接收缓存区中数据,并存入消息接收缓存区;

24、tcp数据发送缓存区,用于存储tcp服务端发送数据;

25、tcp数据接收缓存区,用于存储tcp服务端接收数据;

26、tcp缺失数据缓存区,用于存储tcp服务端接收到的不完整数据。

27、步骤1)中,所述应用层握手协议的执行步骤,具体为:

28、1-1)被测对象通过串口或以太网接口连接数据库,被测对象向数据库发送握手指令,指令格式由被测对象定义;

29、1-2)数据库接收到握手指令后,验证其正确性,如果正确,则数据库在接收到握手指令的3s内向被测对象发送握手指令反馈;否则数据库认为本次握手过程无效,等待下一次握手指令;

30、1-3)被测对象接收到握手指令反馈后,验证其正确性,如果正确且被测对象握手指令发送与握手指令反馈接收的时间间隔不大于5s,则被测对象在接收到握手指令反馈的3s内向数据库发送握手指令确认;否则被测对象认为本次握手过程无效,并在被测对象发送握手指令的5s后重新发送握手指令;

31、1-4)数据库接收到握手指令确认后,验证其正确性,如果正确且数据库握手指令反馈发送与握手指令确认接收的时间间隔不大于5s,则数据库认为与被测对象间的通信通道建立成功,数据库周期性向被测对象发送工参查询指令;否则数据库认为本次握手过程无效,等待下一次握手指令;

32、1-5)如果被测对象发送握手指令确认后5s内未接收到工参查询指令,则被测对象认为本次握手过程无效,并在被测对象发送握手指令确认的5s后重新发送握手指令;否则被测对象认为与数据库间的通信通道建立成功,并在被测对象接收工参查询指令的3s内向数据库发送工参指令;

33、1-6)数据库与被测对象间的通信通道建立成功后,如果数据库连续3s内未接收到被测对象的工参指令,则数据库断开与被测对象间的通信通道,等待下一次握手指令;否则数据库与被测对象正常通信;

34、1-7)被测对象与数据库间的通信通道建立成功后,如果被测对象连续5s内未接收到数据库的工参查询指令,则被测对象断开与数据库间的通信通道,重新进行流程1);否则被测对象与数据库正常通信。

35、所述消息处理模块,包括:指令解析线程、工参采集定时器、工参解析线程、指令组包线程、消息发送缓存区、消息接收缓存区和工程数据缓存区;

36、其中,指令解析线程,用于载入握手协议和工参协议,读取消息接收缓存区中数据,按照握手协议解析握手指令和握手指令确认,将握手指令反馈存入消息发送缓存区,握手成功后,握手状态标识置握手成功,启动工参采集定时器和工参解析线程,并按照工参协议解析工参指令,将正确工参指令存入工程数据缓存区;

37、工参采集定时器,用于载入工参通信协议,并设置工参采集周期,同时判断数据库与被测对象的握手状态,如果握手状态为失败,则数据库断开与被测对象通信通道,工参查询连续未回应计数置为0,结束工参采集定时器;如果握手状态为成功,则定时向消息发送缓存区写入工参查询指令,工参查询连续未回应计数为+1,当工参查询连续未回应计数≥6时,握手状态置失败,数据库断开与被测对象通信通道,工参查询连续未回应计数置为0,结束工参采集定时器;

38、工参解析线程,用于载入工参通信协议,判断当前数据库与被测对象的握手状态,若握手失败,则结束工参解析线程;若握手成功,且工程数据缓存区不为无效时,读取工程数据缓存区工参数据,并清空工程数据缓存区,按照工参通信协议解析工参数据,并将解析后的工参属性值更新到opc服务器的工参库中;

39、指令组包线程,用于载入指令通信协议,读取opc服务器的指令库;并判断当前数据库与被测对象的握手状态;如果握手状态为失败,则等待握手成功;如果握手状态为成功,则遍历指令库目录中的指令参数值和指令发送标识;当指令发送标识为1,则按照指令通信协议将对应指令参数值组包为被测对象控制指令,存入消息发送缓存区。

40、消息发送缓存区,用于存储指令解析线程、工参采集定时器和指令组包线程传入的被测对象指令;

41、消息接收缓存区,用于存储串口/tcp服务端传入的被测对象指令;

42、工程数据缓存区,用于存储指令解析线程传入的被测对象工参指令中的工参数据部分。

43、步骤3)中,所述数据库的消息处理模块启动工参解析线程,对采集到的被测对象的工参指令进行解析,得到工参属性值,包括以下步骤:

44、通过工参指令格式,通过字节对比方式,判断工参指令的正确性;

45、如果工参指令格式错误,则结束工参属性值解析;如果工参指令格式正确,则将工参通信协议中所有定义的工参属性的内容存入到工参属性目录中,并遍历工参属性目录,对工参指令进行解析,得到工参属性值。

46、所述工参通信协议的内容包括被测对象发送给数据库的工参指令格式和定义的工参属性;

47、所述工参指令格式由被测对象定义,包括:指令包头、工参数据和指令校验位;

48、所述定义的工参属性由数据库定义的参数,用于解析工参数据,包括:序号、参数代号、参数子代号、参数名、参数数据类型、参数显示类型、参数转换公式、参数单位、opc可写性、参数值类型、起始位、结束位、参数原码值、下限、上限、参数含义、参数说明、参数显示值。

49、所述遍历工参属性目录,对工参指令进行解析,得到工参属性值,具体为:

50、2-1)遍历工参属性目录,按照目录索引提取该索引下的工参属性结构体;

51、2-2)按照工参属性结构体中参数序号,提取工参指令对应的参数字节;若工参属性结构体中参数数据类型与参数字节数对应,则将提取的参数以十六进制值形式存储,否则执行步骤2-11);

52、2-3)判断工参属性结构体中参数值类型;如果参数值类型为字节/值,则将参数十六进制值赋值给参数原码值,否则执行步骤2-6);

53、2-4)根据参数显示类型,将参数原码值解析为参数显示值,并在工参属性结构体寻找相同的参数显示值;

54、如果存在相同的参数显示值,则找出参数显示值对应的参数含义、参数说明,否则将参数显示值、参数含义和参数说明置为无效;

55、2-5)更新参数原码值、参数显示值、参数含义和参数说明,写入opc服务器工参库,执行步骤2-11);

56、2-6)如果参数值类型为位/值,则将十六进制参数转化为二进制,按起始位和结束位解析二进制参数,并赋值给参数原码值,执行步骤2-4),否则执行步骤7);

57、2-7)如果参数值类型为字节/范围,则将参数十六进制值赋值给参数原码值,否则执行步骤2-10);

58、2-8)如果参数转换公式格式正确,则根据参数显示类型和参数转换公式将参数原码值解析为参数显示值,否则将参数显示值、参数含义和参数说明置为无效,并执行步骤2-5);

59、2-9)如果参数显示值在上限与下限区间内,则更新参数原码值、参数显示值,写入opc服务器工参库,执行步骤2-11),否则将参数显示值、参数含义和参数说明置为无效,并执行步骤2-5);

60、2-10)如果参数值类型为位/范围,则将十六进制参数转化为二进制,按起始位和结束位解析二进制参数,并赋值给参数原码值,执行步骤2-8),否则,将参数原码值、参数显示值、参数含义和参数说明置为无效,并执行步骤5);

61、2-11)如果遍历工参属性list完成,则结束工参属性值解析,否则返回步骤2-1)。

62、所述串口服务端,执行以下步骤:

63、3-1)根据数据库配置文件中的串口信息启动串口,建立串口数据接收线程和串口数据发送线程;

64、3-2)当串口数据接收缓存区不为无效时,串口数据接收线程读取串口数据接收缓存区中数据和串口缺失数据缓存区中数据,清空两个缓存区,并将串口缺失数据缓存区中数据置于串口数据接收缓存区中数据前,如果组合后数据的数据大小小于通信协议中最小数据传输大小,则将组合后的数据存入串口缺失数据缓存区;否则将组合后的数据存入消息接收缓存区;

65、3-3)当消息发送缓存区不为无效时,串口数据发送线程读取list中指令及指令长度,按指令长度将数据存入串口数据发送缓存区;

66、3-4)当关闭串口时,结束串口数据接收线程和串口数据发送线程,清空串口数据发送缓存区、串口数据接收缓存区和串口缺失数据缓存区,等待串口打开。

67、所述tcp服务端,执行以下步骤:

68、4-1)根据数据库配置文件中的tcp服务端信息建立tcp监听服务,阻塞等待;

69、4-2)当有客户端发起连接,解除阻塞,为当前接入客户端建立tcp数据接收线程和tcp数据发送线程;

70、4-3)当tcp数据接收缓存区不为无效时,tcp数据接收线程读取tcp数据接收缓存区中数据和tcp缺失数据缓存区中数据,清空两个缓存区,并将tcp缺失数据缓存区中数据置于tcp数据接收缓存区中数据前,如果组合后数据的数据大小小于通信协议中最小数据传输大小,则将组合后的数据存入tcp缺失数据缓存区;否则将组合后的数据存入消息接收缓存区;

71、4-4)当消息发送缓存区不为无效时,tcp数据发送线程读取list中指令及指令长度,按指令长度将数据存入tcp数据发送缓存区;

72、4-5)当接入客户端断开连接后,结束该客户端的tcp数据接收线程和tcp数据发送线程,清空tcp数据发送缓存区、tcp数据接收缓存区和tcp缺失数据缓存区,等待下一个客户端发起连接。

73、本发明具有以下有益效果及优点:

74、1.现有的应用于航空航天自动化控制领域的集成测试平台少,通用性及可扩展性不强。本发明针对上述原因,提出一种基于opc协议的可扩展软件系统测试框架及测试方法,使其对测试内容的多样性提供支撑。

75、2.本发明通用性强,本发明下层被测对象与数据库间采用串口/tcp通信协议,数据库支持串口设备和tcp客户端设备的接入;上层gui集成测试平台与数据库间采用opc协议,数据库支持opc客户端设备的接入。这使得本发明的上下层结构都支持跨语言、跨平台的开发。

76、3.本发明可扩展性强,本发明中层数据库采用配置文件的形式导入配置参数及通信协议,可以更灵活的配置测试框架上中下层间的交互协议。如果被测对象变更,则根据测试需求变更数据库与被测对象间的通信协议,中上层软件代码无需变更;如果gui集成测试平台变更,则根据测试需求变更数据库与gui集成测试平台间的通信协议,中下层软件代码无需变更。这使得本发明的中层软件的维护和上下层功能的变更变的极为方便。

77、4.本发明测试结果可靠性高,本发明中层数据库采用tcp服务端和opc服务器连接上下层设备。数据库tcp服务端可同时接入多个tcp客户端被测对象;数据库opc服务器可同时接入多个opc客户端gui集成测试平台。本发明可实现一对一测试,针对被测对象的每个测试项进行充分测试;本发明可实现一对多测试,针对多个被测对象间的关联性进行充分测试;本发明可实现多对多测试,并行测试多个被测对象。这大大提高了测试结果的可靠性,并节约了测试时间。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1