发明内容
针对上述问题,本发明提供一种仿真模型状态控制方法与装置,以解决现有技术中下位机与上位机只能建立点对点握手联接,即一个仿真机只能由一个上位机中的人机交互软件控制的问题。技术方案如下:
基于本发明的一方面,提供一种仿真模型状态控制方法,应用于仿真系统中,所述仿真系统包括上位机、下位机和对象请求代理ORB,其中,所述下位机通过所述ORB与所述上位机通信,所述方法包括:接收所述上位机发送的状态控制命令;
从所述状态控制命令中获取下位机参数,依据所述下位机参数,匹配与所述上位机通信的所述下位机;
发送所述状态控制命令至匹配到的所述下位机。
优选地,所述发送所述状态控制命令至匹配到的所述下位机包括:在匹配到的下位机预设有执行所述状态控制命令的接口模块的情况下,将所述状态控制命令发送至该接口模块。
优选地,所述接口模块预设在所述下位机的接口处。
优选地,还包括:
接收所述下位机返回的模型状态信息;
从所述模型状态信息中获取上位机参数,依据所述上位机参数,匹配与所述下位机通信的所述上位机;
发送所述模型状态信息至匹配到的所述上位机。
优选地,一个所述下位机至少连接一个所述ORB,并通过一个所述ORB与至少一个所述上位机通信;
从所述状态控制命令中获取下位机参数,依据所述下位机参数,匹配与所述上位机通信的所述下位机包括:所述状态控制命令中携带下位机参数,依据所述下位机参数,直接匹配连接的下位机。
基于本发明的另一方面,提供一种仿真模型状态控制装置,应用于仿真系统中,所述仿真系统包括上位机、下位机和对象请求代理ORB,其中,所述下位机通过所述ORB与所述上位机通信,所述装置包括:
第一接收单元,用于接收所述上位机发送的状态控制命令;
第一匹配单元,用于从所述状态控制命令中获取下位机参数,依据所述下位机参数,匹配与所述上位机通信的所述下位机;
第一发送单元,用于发送所述状态控制命令至匹配到的所述下位机的接口。
优选地,所述第一发送单元包括:
判断子单元,用于判断所述下位机的接口处是否预设有执行所述状态控制命令的接口模块;
发送子单元,用于在所述判断子单元判断所述下位机的接口处预设有执行所述状态控制命令的接口模块的情况下,将所述状态控制命令发送至该接口模块。
优选地,还包括:
预设单元,用于在所述下位机的接口处预设具有执行所述状态控制命令的接口模块。
优选地,还包括:
第二接收单元,用于接收所述下位机返回的模型状态信息;
第二匹配单元,用于从所述模型状态信息中获取上位机参数,依据所述上位机参数,匹配与所述下位机通信的所述上位机;
第二发送单元,用于发送所述模型状态信息至匹配到的所述上位机。
优选地,一个所述下位机至少连接一个所述ORB,并通过一个所述ORB与至少一个所述上位机通信;
所述状态控制命令中携带下位机参数;
所述第一匹配单元,具体用于从所述状态控制命令中获取下位机参数,依据所述下位机参数,直接匹配连接的下位机。
应用上述技术方案,本发明提供的仿真系统包括上位机、下位机和实现上位机和下位机通信的ORB(Object Request Broker,对象请求代理),ORB接收上位机发送的状态控制命令后,从状态控制命令中获取下位机参数,依据下位机参数,匹配与上位机通信的下位机,将状态控制命令发送至匹配到的下位机。
在本发明中,上位机与下位机之间的通讯通过ORB实现,多个上位机发送状态控制命令控制多个下位机动作时,只需利用ORB将状态控制命令发送至与状态控制命令中下位机参数相匹配的下位机,便完成发送状态控制命令至下位机的过程,不再拘束于上位机与下位机之间的通讯协议,实现多个上位机同时控制多个下位机的功能。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的主要思想之一可以包括:上位机与下位机之间采用远程服务调用的仿真模型状态控制方法,利用CORBA(Common Object Request BrokerArchitecture,公共对象请求代理体系结构)中间件技术中的ORB实现上位机与下位机之间的信息通讯。即ORB作为上位机与下位机之间联系的中间件,实现建立一个上位机到下位机的通讯机制。
一个实施例
请参见图1,其示出了本发明提供的一种仿真模型状态控制方法的流程图,该仿真模型状态控制方法应用于一个仿真系统中,该仿真系统包括上位机、下位机和ORB。其中,下位机与上位机可以通过ORB实现通讯。上述仿真模型状态控制方法包括:
步骤101:接收上位机发送的状态控制命令。
其中,人机交互软件运行在上位机,上位机包括上位机操作页面。在上位机操作页面上显示下位机的运行状态以及各种状态控制命令,用户通过上位机操作页面上提供的信息,可以实时监控下位机的运行状态,并发送状态控制命令控制下位机进行状态切换动作。在实际应用中,上位机操作页面上可以设置有对应不同状态控制命令的不同按钮,提供用户选择不同的状态控制命令。在本实施例中,状态控制命令可以包括:初始化命令、启动命令、恢复命令、停止命令、暂停命令等状态控制命令。当用户点击相应的按钮,则上位机将该按钮对应的状态控制命令发出。
本发明中的远程服务调用方法应用CORBA中间件技术通过ORB实现上位机与下位机之间的通讯。首先,上位机访问CORBA命令服务,并接收CORBA命令服务返回的一个与上位机关联的ORB,由ORB建立上位机到下位机之间的通讯机制,上位机发出状态控制命令后,ORB会自动截获该状态控制命令。
需要说明的是:CORBA命令服务返回的一个与上位机关联的ORB可以建立上位机到下位机之间的通讯机制,该通讯机制可以是多个上位机对应相同的ORB与多个下位机进行通讯的通讯机制,也可以是一个上位机对应一个ORB,与多个下位机进行通讯的通讯机制,还可以是一个上位机对应一个ORB,与一个下位机进行通讯的通讯机制。本发明对于由ORB建立的上位机到下位机之间的通讯机制的类型不做限定,凡是依据本思想由ORB携带上位机发送的状态控制命令发送至相应的下位机而建立的上位机到下位机之间的通讯机制,都属于本发明的保护范围。
步骤102:从状态控制命令中获取下位机参数,依据下位机参数,匹配与上位机通信的下位机。
在本实施例中,一个下位机至少连接一个ORB,并通过一个ORB与至少一个上位机通信。其中,ORB自动截获上位机发送的状态控制命令后,该状态控制命令中还携带有下位机参数,ORB依据下位机参数直接匹配上位机想要控制的下位机,在找到匹配的下位机后,将状态控制命令发送至相应的下位机。
其中,下位机参数可以包括表示下位机属性的序列号,例如,设置不同的下位机的序列号为NO00X,X为1、2、3等自然数,NO001表示序列号为1的下位机,NO002表示序列号为2的下位机,多个下位机通过不同的序列号进行区分。用户通过上位机向下位机发送状态控制命令时,会先选中欲控制的下位机再点击相应的按钮将状态控制命令发出,此时,发出的状态控制命令中不仅包括控制下位机动作的状态控制命令,还包括预控制的下位机的序列号。ORB自动截获该状态控制命令,并读取出该状态控制命令中预控制的下位机的序列号信息,找到相应的下位机。
步骤103:发送状态控制命令至匹配到的下位机。
其中,在下位机的接口处采用C++语言描述下位机的接口,并在下位机的接口处定义用于描述下位机可提供的服务功能的接口模块,上位机可以根据该接口模块描述的服务功能向下位机提出状态控制命令。在本实施例中,下位机的接口处定义的接口模块中的服务功能可以包括:初始化命令、启动命令、恢复命令、停止命令、暂停命令等服务功能。因此上位机可以将状态控制命令发送到下位机的接口模块中。具体过程请参阅图2。
其中,图2示出了本发明提供的一种仿真模型状态控制方法的一种子流程图,具体描述了ORB将状态控制命令发送至匹配到的下位机的过程,该方法可以包括:
步骤1031:判断下位机是否预设有执行状态控制命令的接口模块,若预设有,执行步骤1032,若未预设有,执行步骤1033。
其中,接口模块为预设在下位机的接口处,且可以执行状态控制命令的接口模块。该接口模块中包括初始化命令、启动命令、恢复命令、停止命令、暂停命令等服务功能。这些服务功能通过程序的汇编语言保存在接口模块中。只有在上位机发送的状态控制命令与下位机的接口模块中设置的服务功能一样的情况下,下位机才能接收上位机发送的状态控制命令,进而实现相应的状态切换动作。
步骤1032:发送状态控制命令至接口模块。
步骤1033:返回错误信息。
在本实施例中,ORB将状态控制命令发送至匹配到的下位机,判断下位机是否预设有执行状态控制命令的接口模块。若预设有,表示该下位机可以执行该状态控制命令,满足上位机的控制要求,ORB将携带的状态控制命令发送至匹配到的下位机;若未预设有,表示该下位机没有定义该状态控制命令的功能,不能执行上位机发送的状态控制命令,返回一个错误信息至上位机。
需要说明的是:在上述实施例中,ORB依据上位机发送的状态控制命令中携带的下位机参数匹配相应的下位机的方法中,ORB对应一个上位机的同时可以对应多个不同的下位机。基于本发明的思想,还可以设置ORB对应一个上位机和一个下位机,即建立上位机与下位机一一对应的通讯机制。不同的上位机与不同的下位机之间的中间件ORB不一样,每一个ORB只负责一个上位机与一个下位机之间的通讯。那么,上位机在发送状态控制命令至欲控制的下位机时,属于上位机与欲控制的下位机之间的ORB便自动截获该状态控制命令,直接将该状态控制命令发送至欲控制的下位机的接口模块。
还需要说明的是:在下位机运行过程中,如果某一台或多台下位机出现故障需要立即停止工作时,只需将需要停止工作的下位机关闭,相应的在上位机操作页面上删除该下位机的参数信息即可,或在下位机运行过程中,需要加入一台或多台新的下位机时,只需要通过ORB建立该新加入的下位机与上位机的通讯机制,即实现下位机与上位机通讯。同理,停止某一台或多台上位机只需将需要停止工作的上位机关闭,相应的与该上位机关联的ORB会自动删除,加入一台或多台新的上位机只需让该新加入的上位机访问CORBA命令服务,并接收CORBA命令服务返回的一个与该新加入的上位机关联的ORB,由ORB建立该新加入的上位机与下位机的通讯机制。因此本发明支持在下位机运行过程中,随时加入或删除上位机或下位机,且不影响其他上位机和下位机工作的功能。
在本实施例中,ORB接收上位机发送的状态控制命令后,从状态控制命令中获取下位机参数,依据下位机参数,匹配与上位机通信的下位机,将状态控制命令发送至匹配到的下位机。可以将具有执行状态控制命令的接口模块预设在下位机的接口处,ORB判断下位机是否预设有执行状态控制命令的接口模块,并在下位机预设有执行状态控制命令的接口模块的情况下,发送状态控制命令至下位机的接口模块。在下位机未预设有执行状态控制命令的接口模块时,上位机发送的状态控制命令对该下位机无效,ORB返回一个错误信息至上位机。
应用上述技术方案,上位机与下位机之间的信息通信通过ORB实现,多个上位机发送状态控制命令控制多个下位机动作时,只需利用ORB将状态控制命令发送至与状态控制命令中下位机参数相匹配的下位机,便完成发送状态控制命令至下位机的过程,不再拘束于上位机与下位机之间的通讯协议,实现多个上位机同时控制多个下位机的功能。
此外,下位机的接口处预设有具有一种服务功能的接口模块,且不同下位机的接口模块之间的服务功能不同,如下位机A的接口模块的服务功能为时间测量,下位机B的接口模块的服务功能为风速测量,因此状态控制命令中的下位机参数可以为功能参数,如时间参数或者风速参数,进而将状态控制命令发送至具有该服务功能的下位机。并且下位机的接口处预设有具有一种服务功能的接口模块的情况下,可以强化下位机中执行该服务功能的硬件,如在下位机中使用性能优于其他使用性能的硬件。
另一个实施例
请参阅图3,其示出了本发明提供的一种仿真模型状态控制方法的另一种流程图,在图1基础上还包括:
步骤104:接收下位机返回的模型状态信息。
步骤105:从模型状态信息中获取上位机参数,依据上位机参数,匹配与下位机通信的上位机。
步骤106:发送模型状态信息至匹配到的上位机。
在本实施例中,上位机发送状态控制命令控制下位机进行状态切换后,下位机将状态切换后的当前模型状态信息返回至上位机。ORB自动截获该模型状态信息,并依据该模型状态信息中的上位机参数,找到与下位机通信匹配的上位机,将模型状态信息发送至匹配到的上位机。
需要说明的是:当上位机与下位机之间建立一一对应的通讯机制时,ORB截获模型状态信息后直接将该模型状态信息发送至相应的上位机。
应用上述技术方案,下位机将当期模型状态信息返回至上位机,可以实现上位机实时监控下位机模型状态的功能。当然,下位机不仅仅可以将模型状态信息返回至一个上位机,还可将模型状态信息发送至所有上位机,同步更新所有上位机中显示的下位机模型状态信息,实现对所有上位机控制状态的同步更新。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
同时,本发明公开了一种仿真模型状态控制装置,该仿真模型状态控制装置应用于一个仿真系统中,该仿真系统包括上位机、下位机和ORB。其中,下位机与上位机可以通过ORB实现通讯。请参阅图4,其示出了本发明提供的一种仿真模型状态控制装置的结构示意图,包括:第一接收单元100、第一匹配单元200和第一发送单元300。其中,
第一接收单元100,用于接收上位机发送的状态控制命令。
其中,状态控制命令可以包括:初始化命令、启动命令、恢复命令、停止命令、暂停命令等状态控制命令。用户通过上位机界面选择相应的状态控制命令发出,第一接收单元100自动接收该状态控制命令。
第一匹配单元200,用于从状态控制命令中获取下位机参数,依据下位机参数,匹配与上位机通信的下位机。
在本实施例中,一个下位机至少连接一个ORB,并通过一个ORB与至少一个上位机通信。其中,第一接收单元100接收上位机发送的状态控制命令后,该状态控制命令中还携带有下位机参数,第一匹配单元200依据下位机参数直接匹配上位机想要控制的下位机,在找到匹配的下位机后,将状态控制命令发送至相应的下位机。
其中,下位机参数可以包括表示下位机属性的序列号,例如,设置不同的下位机的序列号为NO00X,X为1、2、3等自然数,NO001表示序列号为1的下位机,NO002表示序列号为2的下位机,多个下位机通过不同的序列号进行区分。用户通过上位机向下位机发送状态控制命令时,会先选中欲控制的下位机再点击相应的按钮将状态控制命令发出,此时,发出的状态控制命令中不仅包括控制下位机动作的状态控制命令,还包括预控制的下位机的序列号。第一接收单元100接收该状态控制命令,并读取出该状态控制命令中预控制的下位机的序列号信息,通过第一匹配单元200找到相匹配的下位机。
第一发送单元300,用于发送状态控制命令至匹配到的下位机。
其中,在下位机的接口处采用C++语言描述下位机的接口,并在下位机的接口处定义用于描述下位机可提供的服务功能的接口模块,上位机可以根据该接口模块描述的服务功能向下位机提出状态控制命令。在本实施例中,下位机的接口处定义的接口模块中的服务功能可以包括:初始化命令、启动命令、恢复命令、停止命令、暂停命令等服务功能。因此上位机可以将状态控制命令发送到下位机的接口模块中。第一发送单元300的结构示意图请参阅图5。
其中,图5示出了本发明提供的一种仿真模型状态控制装置的第一发送单元的结构示意图,可以包括:判断子单元301和发送子单元302,其中,
判断子单元301,用于判断下位机是否预设有执行状态控制命令的接口模块。
其中,接口模块为预设在下位机的接口处,具有执行状态控制命令的接口模块。该接口模块中包括初始化命令、启动命令、恢复命令、停止命令、暂停命令等服务功能。这些服务功能通过程序的汇编语言保存在接口模块中。只有在上位机发送的状态控制命令与下位机的接口模块中设置的服务功能一样的情况下,下位机才能接收上位机发送的状态控制命令,进而实现相应的状态切换动作。
发送子单元302,用于在判断子单元301判断下位机预设有执行状态控制命令的接口模块的情况下,发送状态控制命令至接口模块。
在本实施例中,判断子单元301判断下位机是否预设有执行状态控制命令的接口模块。若预设有,表示该下位机可以执行该状态控制命令,满足上位机的控制要求,发送子单元302将该状态控制命令发送至匹配到的下位机;若未预设有,表示该下位机没有定义该状态控制命令的功能,不能执行上位机发送的状态控制命令,发送子单元302返回一个错误信息至上位机。
需要说明的是:在上述实施例中,第一匹配单元200,用于从状态控制命令中获取下位机参数,依据下位机参数,匹配与上位机通信的下位机。其中,ORB对应一个上位机的同时可以对应多个不同的下位机。基于本发明的思想,还可以设置ORB对应一个上位机和一个下位机,即建立上位机与下位机一一对应的通讯机制。不同的上位机与不同的下位机之间的中间件ORB不一样,每一个ORB只负责一个上位机与一个下位机之间的通讯。那么,此时第一匹配单元200还可以用于从状态控制命令中获取下位机参数,依据下位机参数,直接匹配连接的下位机。
对于上述实施例中的下位机,在其接口处预设有接口模块,以实现下位机提供相应的服务功能。请参阅图6,其示出了本发明提供的一种仿真模型状态控制装置的另一种结构示意图,在图4的基础上还包括:预设单元400,用于在下位机的接口处预设具有执行状态控制命令的接口模块。
在本实施例中,通过预设单元400在下位机的接口处预设具有执行状态控制命令的接口模块,用于描述下位机可提供的服务功能。其中,接口模块中预设的服务功能可以包括:初始化命令、启动命令、恢复命令、停止命令、暂停命令等服务功能。这些服务功能通过程序的汇编语言保存在下位机的接口模块中。只有在上位机发送的状态控制命令与下位机的接口模块中预设的服务功能一样的情况下,下位机才能接收上位机发送的状态控制命令,进而实现相应的状态切换动作。
再一个实施例
请参阅图7,其示出了本发明提供的一种仿真模型状态控制装置的再一种结构示意图,在上述实施例的基础上还包括:第二接收单元500、第二匹配单元600和第二发送单元700。其中,
第二接收单元500,用于接收下位机返回的模型状态信息。
第二匹配单元600,用于从模型状态信息中获取上位机参数,依据上位机参数,匹配与下位机通信的上位机。
第二发送单元700,用于发送模型状态信息至匹配到的上位机。
在本实施例中,上位机发送状态控制命令控制下位机进行状态切换后,下位机将状态切换后的当前模型状态信息返回至上位机。第二接收单元700接收下位机返回的模型状态信息,第二匹配单元800依据该模型状态信息中的上位机参数,找到与下位机通信匹配的上位机,由第二发送单元900将模型状态信息发送至匹配到的上位机。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种仿真模型状态控制方法与装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。