总线网络双计算机主站的制作方法

文档序号:18465895发布日期:2019-08-17 02:27阅读:268来源:国知局
总线网络双计算机主站的制作方法

本发明涉及一种数据交换网络,特别涉及一种总线网络双计算机主站。



背景技术:

近年来,总线网络已广泛应用。在总线网络中,所有设备都通过总线相互连接进行数据交换。总线网络的一种形式是主从式结构,即网络中有一个主站,属于控制设备,其它为从站,属于被控设备。这种主从式结构如附图4所示,这种总线网络进行集中控制,即一个主站控制多个从站。主站一般是计算机等有计算和逻辑控制功能的设备。从站可能是传感器、执行器或是二者的综合体。主站的任务是通过总线读取所有从站的信息,然后根据控制算法产生控制命令,最后通过总线将命令分别发送给各个从站,从而完成系统功能。由此可见,主站担负着整个系统的核心控制任务,若主站发生故障,则导致整个系统的失效。

因此,人们发明了多种技术用来减少主站故障所带来的负面影响,目前常用的是双核冗余方法。例如名称为“用于卡件的基于双核控制器的双冗余高速io网络系统”,专利号:cn200810100765的专利公开了一种用于卡件的基于双核控制器的双冗余高速io网络系统,它包括双核控制器和两条冗余总线,双核控制器包括主cpu、从cpu和双口ram,主cpu和从cpu通过双口ram进行数据交互;正常情况下,两条冗余总线周期轮流通讯,当一条损坏时,就使用另外一条继续通讯,并给出报警信息;如果两条都损坏,则给出报警信息并每间隔一定时间执行一次总线探测,如果这时总线硬件恢复正常,则继续进行正常通讯,否则继续进行下一个间隔时间的总线探测;主cpu处理具体通讯协议;从cpu负责链路层的数据传输。但是,现有专利技术采用封闭一体式主站结构,这种结构没有通用产品,若要在总线网络中实现双核主站,必须进行特殊设计,包括电路设计、绘制电路板和软件开发。设计过程工作量大,周期长。设计出来的主站通用性差,很难应用到不同场合,很难形成批量化。这造成整个工作投入大,产出小,综合效率低、综合成本高。



技术实现要素:

本发明要解决的问题是克服背景技术的不足,提供一种总线网络双计算机主站。

本发明是通过以下技术方案来实现的:

一种总线网络双计算机主站,包括主控计算机和冗余计算机,主控计算机包括计算机接口a、本地输入接口、总线接口、本地输出接口、输入模块、处理模块a和输出模块,总线接口与总线连接;冗余计算机包括计算机接口b和处理模块b,所述主控计算机和冗余计算机通过计算机接口a和计算机接口b连接;所述主控计算机还包括仲裁模块,

其中:

输入模块:将来自本地输入接口和总线接口的输入数据进行解析汇总,并将数据发送到处理模块a进行处理,同时将数据通过计算机接口a和计算机接口b发送到处理模块b进行处理;

处理模块a:处理模块a对数据进行处理后,将数据处理结果发送给仲裁模块;

处理模块b:接收输入模块发送过来的数据,按照与主控计算机相同的算法对数据进行处理,并将数据处理结果发送给仲裁模块;

仲裁模块:将来自主控计算机的数据处理结果和来自冗余计算机的数据处理结果进行检查和对比,若数据处于正确范围内且二者差别也在所规定的范围内,则认为主站对此数据的处理正确,否则产生错误报告;仲裁模块对仲裁错误和输出数据进行记录,并判断是否完成了全部数据的仲裁;将处理结果发送给输出模块;

输出模块:将仲裁模块的处理结果按类别分别通过总线接口发送到总线上和本地输出接口,其中仲裁后得到的输出数据发送到总线上,仲裁错误通过本地输出接口进行输出。

所述主控计算机和冗余计算机采用不同的主板和中央处理器。

所述处理模块a和处理模块b采用不同的编程语言进行编写、采用不同的编译软件进行编译。

所述仲裁模块包括数据有效性规则库和差异性规则库,规则由用户提前输入,对应处理模块a和处理模块b数据处理结果中的每一个数据变量有一个数据有效性规则和一个差异性规则;有效性规则定义某个数据的有效范围,若数据超出所规定有效范围,则判定此数据错误;差异性规则定义某个数据由主控计算机和冗余计算机得到的数据处理结果的差别范围,若数据各自在有效范围内,但二者的差别超过所规定的差别范围,则判定此处理结果数据不可靠,仲裁模块不会将处理结果输出,而是将预定义的安全数据进行输出,或不输出。

所述仲裁模块包括有效性判断模块a、有效性判断模块b和差异性对比模块;来自主控计算机的数据有效性通过有效性判断模块a进行检验,来自冗余计算机的数据有效性通过有效性判断模块b进行检验,来自主控计算机和冗余计算机的数据处理结果之间的差异对比通过差异性对比模块完成。

所述仲裁模块的仲裁流程为:整个仲裁流程以循环方式运行,每一次循环处理一个数据;在每一个循环开始,仲裁模块接收处理模块a和处理模块b对同一个数据的数据处理结果,并判断这两个数据是否在有效范围内,若仅有一个数据超出有效范围,则记录此错误信息,并选择另外一个正确数据作为输出数据;若两个数据都超出有效范围,则记录此错误信息,并选择一个预先定义的安全数据作为输出数据,或不进行输出;若两个数据都在有效范围内,则进行后续的差异性判断,如果二者差别大于差别范围阈值,则记录此错误信息,并选择一个预先定义的安全数据作为输出数据,或不进行输出,若二者差别小于差别范围,则判定两个数据都有效,仲裁模块选择主控计算机的处理结果作为输出数据;上述有效性和差异性判断完成之后,仲裁模块对仲裁错误和输出数据进行记录,并判断是否完成了全部数据的仲裁,若没有,则进行下一个循环,对下一个数据进行仲裁处理,直至全部数据处理完成。

所述仲裁错误通过本地输出接口输出的形式为指示灯或计算机屏幕显示。

所述计算机接口a和计算机接口b的通信速率大于总线速率。

所述计算机接口a和计算机接口b为rs232,rs488,rs485,can,pcie,usb,firewire,pcie中任一种类型的数据接口。

本发明提出的总线网络双计算机主站方案可利用现有计算机等类似通用设备方便快捷地搭建高安全性总线网络主站。本发明的硬件设备可以直接从市场上购买、不需经过特殊设计和开发,并且本发明使用的计算机采用通用编程软件设计,有大量容易获取的通用软件资源,大大节省了建设双核主站的时间。并且,由于市售设备经过检验和认证,通用性和可靠性高,使得主站故障率低、维护方便。

本发明的仲裁模块能够对数据自身的有效性进行检验,也能对两个计算机产生的处理结果之间的差异进行检验。仲裁方法根据检验结果输出正确的或安全的数据,降低了错误数据的概率,从而减小了主站错误对整个总线网络的影响。

附图说明

图1为本发明总体结构框架图。

图2为本发明的仲裁模块框架图。

图3为本发明仲裁流程图。

图4为现有主从式总线网络结构示意图。

图中,1主控计算机,2冗余计算机,3总线,11计算机接口a,12输入模块,13处理模块a,14仲裁模块,15输出模块,16本地输入接口,17总线接口,18本地输出接口,21计算机接口b,23处理模块b。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

针对现有技术总线网络中的双核主站设计困难的缺点,本发明提出采用通用计算机组建双核主站的方法。本发明方法采用的计算机可从市场上直接购买,所需要的软件和硬件资源是已有通用技术。在单台计算机主站的网络基础上,进行本发明所提出的双核主站建设的工作仅需另外购买一台类似计算能力的通用计算机,通过计算机自带计算机接口进行互联,即可完成双核主站硬件的建设。主站与总线3的连接方式与采用单台计算机主站的总线网络相同。

下面对本发明的技术方案结合附图进行详细阐述:

参见附图1,本发明中采用两台计算机,分别命名为主控计算机1和冗余计算机2。这两台计算机的生产厂家不同,型号不同,采用不同的主板和中央处理器,以减小系统性故障导致的误判概率。主控计算机1包括计算机接口a11、输入模块12、处理模块a13、仲裁模块14、输出模块15、本地输入接口16、总线接口17和本地输出接口18。冗余计算机2包括计算机接口b21和处理模块b23。

主控计算机1总线接口17与外部总线3连接。输入模块12将来自本地输入接口16和总线接口17的输入数据进行解析汇总,并将所有数据发送到处理模块a13进行处理,同时通过计算机接口a11和计算机接口b21发送给冗余计算机2。本地输入接口16包括键盘或其它不经过总线3直接进入主控计算机1的数据。主控计算机1通过处理模块a13对数据进行处理后,将结果发送给仲裁模块14,仲裁模块14将主控计算机1的数据处理结果和来自冗余计算机2的数据处理结果进行检查和对比,若数据处于正确范围内且二者差别也在所规定的范围内,则认为主站对此数据的处理正确,否则产生错误报告。仲裁模块14的处理结果通过主控计算机1的输出模块15按类别分别通过总线接口17发送到总线3上和发送到本地输出接口18。

冗余计算机2通过计算机接口b21与主控计算机1的计算机接口a11连接,从主控计算机1接收同样的输入数据,并在处理模块b23中按照与主控计算机1相同的算法对数据进行处理。主控计算机1和冗余计算机2中的处理模块a13和处理模块b23分别采用不同的编程语言进行编写,并采用不同的编译软件进行编译,以减小编程错误导致的故障误判概率。处理结果通过计算机接口a11和计算机接口b21发送回主控计算机1,进行仲裁处理。

下面详细介绍本发明主控计算机1中的仲裁模块14,参照附图2和3对其具体功能和实现方法进行说明。

仲裁模块14包括数据有效性规则库和差异性规则库。规则由用户提前输入。对应处理模块a13和处理模块b23输出结果中的每一个数据变量有一个数据有效性规则和一个差异性规则。有效性规则定义某个数据的有效范围。若数据超出所规定有效范围,则判定此数据错误。差异性规则定义某个数据由主控计算机1和冗余计算机2得到的处理结果的差别范围。若数据各自在有效范围内,但二者的差别超过所规定的差别范围,则判定此处理结果数据不可靠,仲裁模块14不会将处理结果输出,而是将预定义的安全数据进行输出,或不输出。来自主控计算机1的数据有效性通过仲裁模块14中的子模块有效性判断模块a进行检验,来自冗余计算机2的数据有效性通过仲裁模块14中的子模块效性判断模块b进行检验。来自主控计算机1和冗余计算机2的处理模块a13和处理模块b23的处理结果之间的差异对比通过子模块差异性对比模块完成。仲裁结果分为两部分进行输出。仲裁后得到的总线数据通过总线接口17发送到总线3上,仲裁错误通过本地输出接口18进行输出,比如通过指示灯或计算机屏幕进行显示。

仲裁模块14的功能是对处理模块a13和处理模块b23产生的所有数据进行有效性和差异性判断。如附图3的仲裁流程,整个仲裁流程以循环方式运行,每一次循环处理一个数据。在每一个循环开始,仲裁模块14从主控计算机1内存读取来自主控计算机1处理模块a13和冗余计算机2处理模块b23的同一个数据的处理结果,并判断这两个数据是否在有效范围内。若仅有一个数据超出预先定义的有效范围,则记录此错误信息,并选择另外一个正确数据作为输出数据;若两个数据都超出预先定义的有效范围,则记录此错误信息,并选择一个预先定义的安全数据作为输出数据,或不进行输出;若两个数据都在有效范围内,则进行后续的差异性判断。如果二者差别大于预先定义的差别范围阈值,则记录此错误信息,并选择一个预先定义的安全数据作为输出数据,或不进行输出;若二者差别小于预先定义的差别范围阈值,则判定两个数据都有效,仲裁模块14选择主控计算机1的处理结果作为输出数据。上述有效性和差异性判断完成之后,仲裁模块14对仲裁错误和输出数据进行记录,并判断是否完成了全部数据的仲裁,若没有,则进行下一个循环,对下一个数据进行仲裁处理,直至全部数据处理完成。

在本实施例中总线3的通信协议为工业以太网ethercat。总线网络也可采用其它各种不同的标准协议,如rs485,can,profinet,sercos,internet/ip,以及光纤网络等。

主控计算机1连同其附属设备和冗余计算机2连同其附属设备以及键盘和显示器构成总线网络的主站。主站按照本发明所介绍的方法运行。主站与从站通过总线3连接。从站数量根据实际需要选取。

主控计算机1和冗余计算机2为市售通用工控机,计算机接口a11和计算机接口b21为pcie类型。计算机接口a11和计算机接口b21也可以根据技术需要选用其它各种类型,比如rs232,rs488,rs485,can,pcie,usb,firewire等串行或并行数据接口。计算机接口的通信速率应明显大于总线3速率,以保证冗余计算机2的处理过程不会对总线网络的运行速度造成影响。

为了进行仲裁处理,必须对主站发出的所有数据预先定义有效性规则库和差异性规则库。每个规则库中的规则数量等于主站发出的所有数据的数量。对不同的数据类型,规则有不同的形式和内容。例如对于电机转速命令,有效性规则可用转速的上限和下限两个参数进行定义,差异性规则可定义为速度差别小于1%为正确;对于开关命令,有效性规则中可定义所有开关状态为有效数据,而差异性规则要求二者必须完全一致;对于字符串命令,可定义字符串最大和最小长度、允许的字符种类等作为有效性规则参数,而差异性规则可根据具体情况要求必须完全相等或可有少量字符的差别。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;本领域的普通技术人员应当理解:其依然可以对上述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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