一种工业现场总线虚拟化系统、方法和装置与流程

文档序号:16263171发布日期:2018-12-14 21:44阅读:243来源:国知局
一种工业现场总线虚拟化系统、方法和装置与流程
本发明涉及工业现场总线
技术领域
,尤其涉及一种工业现场总线虚拟化系统、方法和装置。
背景技术
随着工业互联网的发展,对于工业总线的业务需求会越来越多,如何利用现有的工业总线满足快速增长的市场需求是工业总线发展面临的一个重要问题。而总线虚拟化技术的引入不仅可以解决现场总线业务需求的快速部署,还能从一定规模上节省成本降低能源消耗。软件定义plc以及软件定义dcs的发展也使得总线虚拟化技术必然会受到越来越多的重视和应用。现有的虚拟总线化技术多采用的是基于设备内部的多条物理总线采用控制器或者判优器进行虚拟化处理,这种虚拟化总线技术受限于现有的物理总线实现,对于工业现场如果采用多条物理总线会明显增加现场的维护成本等,而且针对不同的物理总线需要单独设计控制器或判优器,并不具有通用性。因此,如何在基于一条物理总线实现多种业务数据的独立传输是亟待解决的技术问题之一。技术实现要素:本发明实施例提供一种工业现场总线虚拟化系统、方法和装置,用以基于一条物理总线实现多种业务数据的独立传输。第一方面,本发明实施例提供一种工业现场总线虚拟化系统,包括:主站设备和至少一个从站设备,所述从站设备中设置有至少两个虚拟模块;所述主站设备通过一条物理总线分别与所述至少一个从站设备相连接,其中:所述主站设备包含至少两种业务模块,每一业务模块对应一条虚拟总线,基于所述主站设备的业务模块的划分规则,将所述物理总线虚拟化为相应数量的虚拟总线;所述主站设备,用于在需要从站设备中的虚拟模块处理至少一个业务模块产生的业务数据时,对所述业务数据进行多载波调制得到业务数据的调制信号;并根据所述业务数据的业务类型,确定用于处理所述业务数据的从站设备中的虚拟模块的逻辑地址;将所述调制信号通过业务模块对应的虚拟总线发送给包含确定出的逻辑地址对应的虚拟模块的从站设备;所述从站设备,用于在从接收到的调制信号中解调出所述业务数据后,将所述业务数据分发给确定出的逻辑地址对应的虚拟模块,由所述虚拟模块处理所述业务数据。通过对主站设备中至少一个业务模块产生的业务数据进行多载波调制,每一业务模块对应一条虚拟总线,基于多载波调制自身的调制原理,可以得到各种业务数据的调制信号,并通过业务模块各自对应的虚拟总线发送至从站设备;此外,通过在从站设备上设置的至少两个虚拟模块,可以利用从站设备中的虚拟模块处理接收到的各种业务模块产生的业务数据,不仅实现了物理总线的虚拟化,同时提高了业务数据的处理效率。优选地,所述主站设备,具体用于根据业务类型、逻辑地址与从站设备的媒体访问控制mac地址三者之间的对应关系,确定所述业务数据的业务类型对应的逻辑地址为用于处理所述业务数据的从站设备中的虚拟模块的逻辑地址。通过设置上述对应关系,可以保证将调制信息准确下发至从站设备的虚拟模块。较佳地,所述虚拟模块具有至少一个逻辑地址;所述逻辑地址由域身份标识id、模块身份标识id和子模块身份标识id构成;以及所述逻辑地址满足以下至少一个配置规则:不同虚拟总线对应不同的域id、同一从站设备中的虚拟模块的模块id相同、同一从站设备中的虚拟模块的子模块id不同、用于处理同一业务类型的虚拟模块的域id相同。通过对虚拟模块配置多个逻辑地址,使得虚拟模块能够处理更多的业务数据,提高了系统的业务处理能力。可选地,所述业务模块包括实时业务模块和非实时业务模块;以及所述从站设备包括用于处理实时业务的实时虚拟模块和用于处理非实时业务的非实时虚拟模块;所述业务数据包含实时业务数据和非实时业务数据;以及所述业务数据包含实时业务数据和非实时业务数据。优选地,所述从站设备设置有共享缓冲区,以及为每一个虚拟模块分别配置有独立缓冲区;以及所述从站设备中的虚拟模块,用于若所述业务数据为实时业务数据,则利用与其对应的独立缓冲区进行实时业务数据的处理;若所述业务数据为非实时业务数据,则利用共享缓冲区进行非实时业务数据的处理。较佳地,各个业务模块产生的业务具有不同的业务周期。第二方面,本发明实施例提供一种工业现场总线虚拟化方法,应用于主站设备中,所述主站设备通过一条物理总线分别与至少一个从站设备相连接,其中:所述主站设备包含至少两种业务模块,每一业务模块对应一条虚拟总线,基于所述主站设备的业务模块的划分规则,将所述物理总线虚拟化为相应数量的虚拟总线;以及所述方法,包括:在需要从站设备中的虚拟模块处理至少一个业务模块产生的业务数据时,对所述业务数据进行多载波调制得到业务数据的调制信号;根据所述业务数据的业务类型,确定用于处理所述业务数据的从站设备中的虚拟模块的逻辑地址;将所述调制信号通过业务模块对应的虚拟总线发送给包含确定出的逻辑地址对应的虚拟模块的从站设备。优选地,根据所述业务数据的业务类型,确定用于处理所述业务数据的从站设备中的虚拟模块的逻辑地址,具体包括:根据业务类型、逻辑地址与从站设备的媒体访问控制mac地址三者之间的对应关系,确定所述业务数据的业务类型对应的逻辑地址为用于处理所述业务数据的从站设备中的虚拟模块的逻辑地址。较佳地,所述虚拟模块具有至少一个逻辑地址;所述逻辑地址由域身份标识id、模块身份标识id和子模块身份标识id构成;以及所述逻辑地址满足以下至少一个配置规则:不同虚拟总线对应不同的域id、同一从站设备中的虚拟模块的模块id相同、同一从站设备中的虚拟模块的子模块id不同、用于处理同一业务类型的虚拟模块的域id相同。可选地,所述业务模块包括实时业务模块和非实时业务模块;以及所述从站设备包括用于处理实时业务的实时虚拟模块和用于处理非实时业务的非实时虚拟模块;所述业务数据包含实时业务数据和非实时业务数据;以及所述业务数据包含实时业务数据和非实时业务数据。较佳地,各个业务模块产生的业务具有不同的业务周期。第三方面,本发明实施例提供一种工业现场总线虚拟化装置,包括:调度器,用于在需要从站设备中的虚拟模块处理至少一个业务模块产生的业务数据时,对所述业务数据进行多载波调制得到业务数据的调制信号;调度器,还用于根据所述业务数据的业务类型,确定用于处理所述业务数据的从站设备中的虚拟模块的逻辑地址;数据分发器,用于将所述调制信号通过业务模块对应的虚拟总线发送给包含确定出的逻辑地址对应的虚拟模块的从站设备。优选地,所述调度器单元,具体用于根据业务类型、逻辑地址与从站设备的媒体访问控制mac地址三者之间的对应关系,确定所述业务数据的业务类型对应的逻辑地址为用于处理所述业务数据的从站设备中的虚拟模块的逻辑地址。第四方面,本发明实施例提供一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行本申请提供的工业现场总线虚拟化方法。第五方面,本发明实施例提供一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请提供的工业现场总线虚拟化方法。本发明有益效果:本发明实施例提供的工业现场总线虚拟化系统、方法和装置,在需要从站设备中的虚拟模块处理至少一个业务模块产生的业务数据时,对所述业务数据进行多载波调制得到业务数据的调制信号;根据所述业务数据的业务类型,确定用于处理所述业务数据的从站设备中的虚拟模块的逻辑地址;将所述调制信号通过业务模块对应的虚拟总线发送给包含确定出的逻辑地址对应的虚拟模块的从站设备以使从站设备在从接收到的调制信号中解调出业务数据后,将所述业务数据分发给确定出的逻辑地址对应的虚拟模块,由该虚拟模块处理解调出的业务数据。这样,由于每一业务模块对应一条虚拟总线,通过本发明提供的方法可以将各个业务模块产生的业务数据分别通过各个业务模块对应的虚拟总线发送至从站设备;此外,在发送过程中,由于本发明采用了多载波调制技术,将各类业务的业务数据调制到子载波上然后再进行传输,而每一子载波相当于一条传输信道,可以将业务数据在每一子载波上进行传输,由于各个子载波间相互正交,这样也就保证了各个子载波上业务数据的独立传输,互不干扰;另外,本发明中从站设备中包含至少两个虚拟模块,这样可以使得虚拟模块能够处理更多的业务数据,提高了业务数据的处理效率。本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1为本发明实施例提供的基于工业现场总线的业务处理系统的场景示意图;图2为本发明实施例提供的工业现场总线虚拟化方法的流程示意图;图3为本发明实施例提供的主站设备中的高速总线芯片的内部结构示意图;图4为本发明实施例提供的主站设备和从站设备的内部结构示意图;图5为本发明实施例提供的实时业务和非实时业务的虚拟总线网络拓扑示意图;图6为本发明实施例提供的对所述业务数据进行多载波调制得到业务数据的调制信号的流程示意图;图7为本发明实施例提供的基于逻辑业务功能rt1业务模块的虚拟总线网络拓扑示意图;图8为本发明实施例提供的基于相同业务循环周期的各个业务的总线调度效果示意图;图9为本发明实施例提供的基于图3所示的高速总线芯片内部数据转发通道示意图;图10为本发明实施例提供的工业现场总线虚拟化装置的结构示意图;图11为实施本发明提供的工业现场总线虚拟化方法的计算装置的结构示意图。具体实施方式本发明实施例提供的工业现场总线虚拟化系统、方法和装置,用以基于一条物理总线实现多种业务数据的独立传输。以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。为了便于理解本发明,本发明涉及的技术术语中:1、主站设备,为工业现场总线通信主站,也称为管理节点(mn),其内设置有高速总线芯片,该高速总线芯片提供多通道数据传输能力,并采用高速缓存方式实现业务数据虚拟化分区,对于不同的虚拟化分区配置不同的信道资源传输,在满足业务需求的前提下,可以进行动态随机接入虚拟总线业务,不同虚拟总线的信道资源独享物理带宽。其中,虚拟总线的资源和逻辑地址需要在主站设备上提前配置。2、从站设备,为工业现场总线通信从站,也可以称为受控节点(cn),其内设置有至少两个虚拟模块,通过设置多个虚拟模块可以在从站设备不变的情况下处理更多主站设备下发的业务数据,不仅节省成本而且也能够降低能源消耗。3、虚拟总线,虚拟总线不是实际存在的,可以理解为:主站设备在向从站设备下发各类业务模块产生的业务数据之前,会将各类业务数据进行多载波调制,而每一个业务模块对应一条虚拟总线,这样可以将各个业务模块产生的业务数据进行多载波调制后,将各个业务模块对应的调制信号通过各自的虚拟总线发送给从站设备。为了解决现有技术中存在的总线虚拟化不具备通用性,维护成本高的问题,本发明提供了一种基于工业现场总线的业务处理系统,基于该系统可以利用一条物理总线实现多种业务数据的独立传输,不仅实现了总线虚拟化而且保证了各业务间传输互不干扰,通用性较强。本发明实施例提供的基于工业现场总线的业务处理系统的场景示意图可以参考图1所示,该系统包括主站设备(dev0)和至少一个从站设备(dev1~dev6),所述从站设备中设置有至少两个虚拟模块,例如图1中的从站设备dev1中设置两个虚拟模块,记为vd1和vd2,……,从站设备dev6中设置两个虚拟模块,记为vd11和vd12;所述主站设备通过一条物理总线分别与所述至少一个从站设备相连接,主站设备包含至少两种业务模块,每一业务模块对应一条虚拟总线,基于所述主站设备的业务模块的划分规则,将所述物理总线虚拟化为相应数量的虚拟总线。主站设备在需要从站设备中的虚拟模块处理至少一个业务模块产生的业务数据时,对上述业务数据进行多载波调制得到业务数据的调制信号;并根据上述业务数据的业务类型,确定用于处理所述业务数据的从站设备中的虚拟模块的逻辑地址;将所述调制信号通过业务模块对应的虚拟总线发送给包含确定出的逻辑地址对应的虚拟模块的从站设备;从站设备在接收到调制信号后,从调制信号中解调出所述业务数据后,将业务数据分发给确定出的逻辑地址对应的虚拟模块,由该虚拟模块处理该业务数据。通过对需要处理的至少一个业务模块产生的业务数据进行多载波调制,保证了利用同一物理总线虚拟化出的各个业务模块对应的虚拟总线上传输业务模块产生的业务数据,而多载波调制技术本身具有隔离干扰的优势,因此在传输多种业务数据时能够保证业务数据的独立传输。下面结合图1的场景,参考图2-图10来描述根据本发明示例性实施方式提供的工业现场总线虚拟化方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。如图2所示,为本发明实施例提供的工业现场总线虚拟化方法的流程示意图,包括以下步骤:s11、主站设备在需要从站设备中的虚拟模块处理至少一个业务模块产生的业务数据时,对所述业务数据进行多载波调制得到业务数据的调制信号。本步骤中,主站设备中设置用于产生各种业务数据的业务模块,而每一业务模块对应一条虚拟总线,具体可以根据业务模块的划分规则,将物理总线虚拟化出与业务模块具有相同数量的虚拟总线。当各个业务模块产生的业务数据经多载波调制后,将得到的调制信号经各个业务模块对应的虚拟总线发送至从站设备。具体地,当产生的业务数据需要从站设备中的虚拟模块来处理时,主站设备利用其内设置的高速总线芯片对至少一个业务模块产生的业务数据进行多载波调制得到调制信号。本发明中的高速总线芯片的内部结构示意图可以参考图3所示,高速总线芯片包括高速串行计算机扩展总线标准(pcie)接口、缓冲区、调度器、数据分发器、串口uart、can接口和以太网ethernet接口,其中,pcie接口为用于提供虚拟化能力的内部总线接口,基于pcie接口的虚拟化满足相应的接口规范,使得上层应用或系统对同一块芯片的多pcie地址访问和操作;缓冲区,用于区分虚拟总线业务的数据缓冲区;调度器,用于实现数据分发和根据业务的优先级进行业务调度等处理;数据分发器,用于基于信道资源实现数据分发处理;uart串口,为外部串行接口,用于对接hart或profbus等总线;can接口,用于对接can总线;ethernet接口,用于对接以太网总线。此外,本发明中的高速总线芯片还提供了双口ram的虚拟化,双口ram的虚拟化,用于对数据的分区处理,以及对不同虚拟总线的数据实现多通道并行传输。通过在高速总线芯片中集成上述接口等部件,可以保证得到业务数据的调制信号。另外,高速总线芯片的内部状态机可以实现对不同虚拟总线上的数据的自动分发,不需要额外配置,非实时调度用于对非实时业务的调度,将该非实时调度实时处理,不影响应用层非实时业务处理。高速总线芯片内部基于预先配置的总线周期对实时和非实时业务数据进行调度处理,调度器基于不同信道资源将数据分发至对应不同虚拟总线的缓冲区。较佳地,本发明中的业务数据可以但不限于包括实时业务数据和非实时业务数据等。主站设备可以将至少一种实时业务模块产生的实时业务数据进行多载波调制得到调制信号;例如,参考图4所示,主站设备中设置有用于产生各种业务的业务模块,分别为产生第一种实时业务的业务模块rt1、产生第二种实时业务的业务模块rt2、产生第三种实时业务的业务模块rt3和产生非实时业务的业务模块nrt等,由于主站设备中包含4个业务模块,则将物理总线虚拟化出4条虚拟总线,分别与这四个业务模块相对应,例如nrt对应虚拟总线1、rt3对应虚拟总线2、rt2对应虚拟总线3,以及rt1对应虚拟总线4。而且这四个业务模块基于同一物理介质的总线拓扑方式相互连接。基于图4,一种可能的实施方式中,主站设备可以将rt1产生的实时业务的业务数据和rt2产生的实时业务的业务数据进行多载波调制得到调制信号,然后按照本发明提供的方法将调制信号发送至从站设备中的虚拟模块,由虚拟模块对调制信号进行解调并处理解调出的业务数据。另一种可能的实施方式中,主站设备可以将实时业务的业务数据和非实时业务的业务数据共同进行多载波调制得到调制信号,参考图4所示,主站设备可以将rt1产生的实时业务的业务数据和nrt产生的非实时业务的业务数据共同进行多载波调制得到调制信号。但考虑到实时业务的实时性要求较高,本发明不建议将实时业务数据和非实时业务数据共同进行多载波调制并发送,参考图5所示,建议将实时业务和非实时业务分开发送,但本发明能够实现这种实施方式,只是需要在从站设备设置相应的处理机制。再一种可能的实施方式中,本发明提供的主站设备还可以将同一业务模块中产生的一个或多个业务数据进行多载波调制得到调制信号,并按照本发明提供的方法发送至能够处理该业务数据的从站设备中的虚拟模块,由该虚拟模块对调制信号解调后处理解调出的业务数据。还参考图4,主站设备可以将rt1产生的两个实时业务的业务数据共同进行多载波调制得到调制信号,同理,主站设备还可以将rt1产生的一个实时业务的业务数据进行多载波调制得到调制信号。较佳地,本发明可以按照图6所示的流程对所述业务数据进行多载波调制得到业务数据的调制信号,可以包括以下步骤:s21、根据预设的子载波的数量,将业务数据划分成相应数量的子数据。在实施本发明提供的方法之前,主站设备可以与从站设备预先预定好实施多载波调制的子载波的数量和各个子载波的频率等,当主站设备向从站设备发送调制信号后,从站设备可以利用预先约定的子载波信息从调制信号中解调出业务数据,并由虚拟模块对业务数据进行处理。在此基础上,执行本步骤时,可以按照子载波的数量,将至少一个业务模块产生的业务数据划分成相应数量的子数据,若子载波的数量为n个,则需要将上述业务数据划分成n个子数据。s22、将划分得到的子数据分别调制到预设的子载波上,得到各个子数据的调制信号。具体地,先将子载波按照频率进行由小到大排序,然后可以采用正序的方法,利用第一个子载波对划分得到的第一个子数据进行调制处理得到第一个子数据的调制信号,然后依次类推得到各个子数据的调制信号。当然也可以采用倒序的方法,即:第n个子载波对划分得到的第一个子数据进行调制处理得到第一个子数据的调制信号,依次类推可以得到各个子数据的调制信号。显然也可以采用其他方法利用n个子载波对n个子数据进行调制得到n个子数据的调制信号,本发明对此不进行限定。s23、将各个子数据的调制信号进行求和处理得到业务数据的调制信号。具体地,将n个子数据的调制信号进行叠加处理,叠加结果即为业务数据的调制信号。需要说明的是,本发明中的多载波调制方法可以为正交频分复用(orthogonalfrequencydivisionmultiplexing,ofdm)。通过采用ofdm技术将业务数据进行多载波调制得到ofdm调制信号,使得ofdm调制信号在传输过程中由于子载波间的正交性,保证了各个子载波调制的各个子数据的调制信号在一个发送周期内是正交的,从而使得传输过程中不会发送串扰,就相当于存在多个独立的信道来传输各个子载波调制的各个子数据的调制信号,各个信道互不相关。s12、主站设备根据所述业务数据的业务类型,确定用于处理所述业务数据的从站设备中的虚拟模块的逻辑地址。较佳地,本发明主站设备业务模块可以但不限于包括实时业务模块和非实时业务模块等,基于此划分规则产生的业务数据可以但不限于包括:实时业务数据和非实时业务数据等。本发明从站设备中的虚拟模块可以但不限于包括:用于处理实时业务的实时虚拟模块和用于处理非实时业务的非实时虚拟模块等等。虽然本发明中业务模块分实时业务模块和非实时业务模块,但实时业务模块产生的业务也是具有不同类型的,同时得到的业务数据也是具有不同类型的。为了能够处理主站设备下发的各种类型的业务的业务数据,在对从站设备中配置任一虚拟模块时,可以允许该虚拟模块处理若干种业务的业务数据,然后让另一虚拟模块处理其他类型的业务数据,当然各个虚拟模块之间处理的业务的业务类型可以有重叠。例如,有5种类型的业务,在配置过程中,可以允许从站设备dev1中的虚拟模块vd1处理第一类业务~第三类业务,允许从站设备中dev1中的虚拟模块vd2处理第四类业务~第五类业务等。若某一类业务的业务量较大,如果只有一个虚拟模块来处理这类业务,可能会导致该虚拟模块负荷较高,为了避免这一问题的发生,可以在配置过程中设置其他虚拟模块也处理这类业务,例如第三类业务的业务量较大,则可以在配置从站设备dev2中的虚拟模块时,可以配置虚拟模块vd3处理第三类业务,这样可以保证各个虚拟模块之间负载均衡。具体实施时,可以根据实际业务需要来配置各个从站设备中处理哪类业务的权限。本步骤中,在预先对各个虚拟模块的处理权限进行配置后,为了方便查找处理某一类业务的虚拟模块,本发明引入了虚拟模块的逻辑地址,主站设备可以根据业务数据的业务类型,确定出用于处理该业务数据的虚拟模块的逻辑地址。较佳地,预先可以在主站设备中创建业务类型与虚拟模块的逻辑地址、从站设备的mac地址之间的对应关系,参考表1所示:表1表1中各个从站设备中的虚拟模块的逻辑地址可以不止一个,且各个虚拟模块的逻辑地址互不相同。需要说明的是,表1只是列举了一种业务类型、mac地址和逻辑地址的对应关系,并不构成对上述对应关系的限定,实际应用中可以对这个对应关系进行配置,本发明对此不进行限定。基于上述描述,可以按照下述过程执行步骤s12,包括:根据业务类型、逻辑地址与从站设备的媒体访问控制mac地址的对应关系,确定所述业务数据的业务类型对应的逻辑地址为用于处理所述业务数据的从站设备中的虚拟模块的逻辑地址。具体实施时,例如表1中的业务类型1对应的是rt1模块产生的实时业务的业务类型,主站设备在rt1模块产生实时业务后,若确定出该实时业务的业务数据的业务类型为业务类型1,则可以从表1查找到能够处理业务类型1的实时业务的从站设备的mac地址和各个从站设备中能够处理业务类型1的实时业务的虚拟模块的逻辑地址,例如,确定出逻辑地址1、逻辑地址2、逻辑地址n和逻辑地址n+1对应的虚拟模块允许处理业务类型1的实时业务。s13、主站设备将所述调制信号通过业务模块对应的虚拟总线发送给包含确定出的逻辑地址对应的虚拟模块的从站设备。基于步骤s12确定出能够处理业务类型1的实时业务的虚拟模块后,将步骤s11得到的调制信号通过业务模块的虚拟总线发送给包含上述逻辑地址的虚拟模块的从站设备。在一种可能的实施方式中,在发送调制信号时,可以携带包含有确定出的虚拟模块的从站设备的mac地址及用于处理上述实时业务的业务数据的虚拟模块的逻辑地址,并通过主站设备的端口发送所述调制信号和上述从站设备的mac地址和虚拟模块的逻辑地址。在另一种的可能实时方式中,在发送调制信号的同时可以只发送处理业务数据的从站设备的mac地址。由于从站设备对自身的虚拟模块处理的业务类型和虚拟模块的逻辑地址是知道的,即使只发送从站设备的mac地址,从站设备也能将业务数据分配给能够处理该业务数据的虚拟模块。基于上述两种可能的实施方式,还可以携带主站设备的mac地址和主站设备中产生实时业务的业务模块的逻辑地址,由于虚拟模块在处理完业务数据后可能需要返回处理结果,故本发明提出携带主站设备中产生实时业务的业务模块的逻辑地址,以便虚拟模块将处理结果返回至相应的业务模块。s14、从站设备在从接收到调制信号中解调出所述业务数据后,将所述业务数据分发给确定出的逻辑地址对应的虚拟模块,由所述虚拟模块处理所述业务数据。本步骤中,与主站设备相连的物理总线上的从站设备在监测到物理总线上有信号传输时,当从物理总线上获取的是调制信号和mac地址时,若确定出获取的mac地址与从站设备自身的mac地址一致,则按照与主站设备约定的子载波的相关信息,利用子载波解调出业务数据,然后从站设备确定解调出的业务数据的业务类型,然后将业务数据发送给从站设备中能够处理该业务类型的业务数据的虚拟模块。若从站设备获取到的mac地址与自身的mac地址不一致,则不对该调制信号做任何处理,由其他从站设备处理该调制信号。参考图4所示,图4中的rt1产生的业务数据可以由从站设备dev1中的虚拟模块vd1、从站设备dev2中的虚拟模块vd4、从站设备dev4中的虚拟模块vd7和从站设备dev5中的虚拟模块vd10来处理。而从站设备dev3不对调制信号做任何处理。当虚拟模块对业务数据处理完成后,若需要向主站设备返回业务处理结果则在返回业务处理结果时基于虚拟模块所属的从站设备的端口号发送至主站设备,同时可以携带该业务数据的业务模块的逻辑地址和主站设备的mac地址,以保证业务处理结果正确返回至主站设备的业务模块。若任一从站设备在获取调制信号的同时,也获取到了mac地址和逻辑地址,则首先判断获取的mac与自身的mac地址是否一致,若一致则对获取到的调制信号进行解调,并将解调出的业务数据发送给获取到的逻辑地址对应的虚拟模块,由该虚拟模块处理该业务数据。较佳地,当从接收到的业务数据中只解析出mac地址时,主站设备下发业务数据以及从站设备将业务数据下发至对应的虚拟模块的处理方式可以分为以下几种:第一种:若业务数据为至少一个业务模块产生的业务数据,主站设备在将至少一个业务模块产生的业务数据进行多载波调制时,可以通过设置明显的标识来区分各类业务数据,然后通过各个业务模块对应的虚拟总线发送至从站设备。主站设备在确定从站设备虚拟模块的逻辑地址时,例如确定出能够处理至少一类业务的虚拟模块的逻辑地址,当然这种逻辑地址是预先配置好的,这样从站设备在获取到这类业务的业务数据的调制信号时,可以直接将解调出的业务数据下发至该上述确定出的逻辑地址对应的虚拟模块,由该虚拟模块对该类业务数据进行处理。第二种:在对业务数据进行多载波调制时,考虑各个从站设备的虚拟模块处理的业务类型,可以将从站设备中虚拟模块能够处理的若干类业务的业务数据进行多载波调制然后发送给该从站设备中的虚拟模块,这样可以保证由一个从站设备中虚拟模块处理若干类业务的业务数据,操作方便。第三种:在不区分业务类型对业务数据进行多载波调制时,从站设备在接收到调制信号后,同样在确定出获取的mac地址与自身的mac地址一致时,将解调出的业务数据中从站设备中的虚拟模块能够处理的一类业务数据下发至对应的虚拟模块,而对于从站设备内虚拟模块均不能处理的那类业务数据则不做任何处理,由其他从站设备中能够处理那类业务数据的虚拟模块进行处理,保证从站设备中的虚拟模块能够处理主站设备产生的各类业务数据即可。图4中,对于所有从站设备,也会根据逻辑业务功能区分虚拟模块,图4中从站设备中都存在虚拟模块,虽然主站设备根据逻辑业务被划分为不同的业务模块,及从站设备根据逻辑业务被划分为不同的虚拟模块,以虚拟模块方式接入对应的虚拟总线网络,但实际的从站设备对外接口形式不变,但基于逻辑业务的虚拟模块总是以独立虚拟总线功能实现数据通信和传输,参考图7所示,业务模块rt1产生的业务数据在进行多载波调制后,最终也是以独立信道的形式下发至从站设备dev1中的虚拟模块vd1、从站设备dev2中的虚拟模块vd4、从站设备dev4中的虚拟模块vd7和从站设备dev5中的虚拟模块vd10。需要说明的是,本发明中从站设备中虚拟模块的逻辑地址和主站设备中业务模块的逻辑地址均是由域身份标识id、模块身份标识id和子模块身份标识id构成,且虚拟模块具有至少一个逻辑地址;具体地,逻辑地址寻址中采用了域id区分不同的虚拟总线,可以实现基于不同虚拟总线的业务统一编排,具体可以参考表2所示的逻辑地址格式:表2域id模块id子模块id8bits16bits8bits表2中,域id,也称domainid,占8位,标识各类业务所属虚拟总线,该字段有如下定义值:0x00:标识业务不属于任何虚拟总线;0x01-0xdf:标识一条虚拟总线的域id,即各类业务的域id;0xe0-0xef:标识一个域id范围,是一个组播类型值,表征多条虚拟总线组成的一个虚拟总线组,可以理解为多个业务的域id组成一个虚拟总线组;0xf0-0xfe:域id保留值;0xff:广播类型域id,标识所有总线域。表2中,模块id,也称moduleid,占16位,标识从站设备的编号,对于该字段存在如下定义值:0x0000:标识从站设备的初始化模块id;0x0001-0xdfff:标识模块id的有效编号;0xe000-0xe0ff:标识虚拟模块或业务模块在本总线域所属的组播组编号;0xffff:广播类型的模块id,标识域内所有虚拟模块。表2中,子模块id,也称sub-moduleid,占8位,标识从站设备中虚拟模块的编号,有效值为0x01-0xfe;0x00是对于从站设备中没有虚拟模块时的默认值;0xff为保留值,标识所有虚拟模块。较佳地,上述逻辑地址满足以下至少一个配置规则:不同虚拟总线对应不同的域id、同一从站设备中的虚拟模块的模块id相同、同一从站设备中的虚拟模块的子模块id不同、用于处理同一业务类型的虚拟模块的域id相同。需要说明的是,本发明由于不同的域id对应不同的虚拟总线,故可以得出能够利用不同的域id来区分不同的虚拟总线,而每一业务模块对应一条虚拟总线,每一业务模块对应一类业务,可以得出虚拟总线与业务类型也是一一对应的,而不同的虚拟总线对应不同的域id,从而可以得出不同的域id也对应不同的业务类型。基于该逻辑地址配置规则,可以对同一个物理总线上的从站设备实现虚拟化处理,即,在同一个从站设备,基于业务的功能模块或业务需求可以实现多个逻辑地址的分配。结合图4,参考表3所示的主站设备、从站设备和从站设备中的虚拟模块的逻辑地址:表3设备或模块逻辑地址说明rt10x01000000实时虚拟总线1对应虚拟主站节点逻辑地址rt20x02000000实时虚拟总线2对应虚拟主站节点逻辑地址rt30x03000000实时虚拟总线3对应虚拟主站节点逻辑地址nrt0x0f000000非实时虚拟总线对应虚拟主站节点逻辑地址dev10x0f000100物理设备1上对应非实时虚拟总线的逻辑地址vd10x01000101物理设备1上虚拟模块1对应虚拟总线rt1的逻辑地址vd20x02000102物理设备1上虚拟模块2对应虚拟总线rt2的逻辑地址dev20x0f000200物理设备2上对应非实时虚拟总线的逻辑地址vd40x01000202物理设备2上虚拟模块4对应虚拟总线rt1的逻辑地址dev40x0f000400物理设备4上对应非实时虚拟总线的逻辑地址vd70x01000401物理设备4上虚拟模块7对应虚拟总线rt1的逻辑地址dev50x0f000500物理设备5上对应非实时虚拟总线的逻辑地址vd100x01000501物理设备5上虚拟模块10对应虚拟总线rt1的逻辑地址表3中,以rt1的逻辑地址为“0x01000000”为例进行说明,逻辑地址中“0x01”为域id,中间4个0表征模块id,最后两位表征子模块id,由于业务模块rt1没有子模块所以子模块id为“00”。从表3中可以看出,不同业务对应的域id不同,同一从站设备中的虚拟模块具有不同的子模块id等等。基于上述配置规则可以对主站设备中的业务模块和从站设备及其内的虚拟模块的逻辑地址进行配置。较佳地,所述从站设备设置有共享缓冲区,以及为每一个虚拟模块分别配置有独立缓冲区;以及所述从站设备中的虚拟模块,用于若所述业务数据为实时业务数据,则利用与其对应的独立缓冲区进行实时业务数据的处理;若所述业务数据为非实时业务数据,则利用共享缓冲区进行非实时业务数据的处理。具体地,本发明采用的数据访问方式为:同一从站设备上的虚拟模块之间,根据逻辑业务需求,采用独立或共享缓冲区的方式实现数据访问,例如对于从站设备dev1中的虚拟模块vd1和vd2,在处理非实时数据的访问时可以采用共享缓冲区方式实现对业务数据的处理,当在处理不同类型的业务数据时,则虚拟模块vd1和vd2分别采用各自的独立缓冲区实现对业务数据的处理。本发明采用的业务数据处理方法,各个业务模块产生的业务具有不同的业务周期。具体地,由于对至少一个业务模块产生的业务数据进行了多载波调制,每一类型的业务都有自己独立的业务周期,即业务处理的循环周期,而这些业务周期总是满足总线循环周期(如高速总线芯片的数据处理循环周期)的整数倍的要求,参考图8所示,图8中的vbusx为各个虚拟总线业务周期,虚拟总线1对应的业务循环周期为2t,即在2t时间段内进行数据处理,而虚拟总线4对应的业务循环周期为t,即在每个循环周期t内总是会处理业务数据;因为所有的虚拟总线采用不同的物理信道进行数据传输,互不干扰和影响,所以时域上的重叠并不会影响虚拟总线的数据传输,即在同一循环周期时间,可以实现多条虚拟总线的同步传输,而实际可以支持的虚拟总线数目取决于物理带宽和信道资源限制。为了更好的说明本发明提供的工业现场总线虚拟化方法实现利用同一物理总线传输多种业务数据的可靠性和通用性,图9给出了基于图3所示的高速总线芯片内部数据转发通道示意图,图9中相关部件的功能如下:物理总线数据:物理总线介质上传输的数据帧;总线接口:能够区分不同传输信道的物理接口;数据分发器:对数据帧的封装和解析,基于不同信道完成与物理总线接口的数据分发处理,同时基于逻辑地址完成与缓冲区的数据交互,数据分发器与缓冲区的数据交互使用逻辑地址进行处理,具体的处理方式由调度器下发完成;缓冲区控制单元:下发对各个缓冲区的管理和数据处理指令;共享缓冲区:用于为虚拟模块处理非实时业务时缓冲数据。独立缓冲区:用于为虚拟模块处理实时业务时缓冲数据。基于图9的数据转发示意图,不同的虚拟总线能基于不同物理信道完成数据传输,在物理层实现数据隔离;高速总线芯片内部的数据分发器和调度器完成不同虚拟总线上的数据与数据缓冲区的映射处理,从而满足应用层不同的业务需求,数据分发器和调度器在对数据进行处理时采用地址描述符的方式处理,避免了数据的多次拷贝对实时性的影响,从而可以进一步满足多条虚拟总线实时同步传输的要求。结合图3和图9,本发明对高速总线芯片中内部数据转发流程进行说明,首先主站设备中的至少两种业务模块产生业务数据后,分别通过pcie接口将各个业务模块产生的业务数据缓存到相应的缓存区内,如业务数据为非实时业务数据则将业务数据缓存到共享缓存区内,若业务数据为实时业务数据,则将每一业务模块产生的业务数据缓存到该业务模块对应的独立缓冲区内。调度器根据业务数据的优先级对优先级比较高业务模块产生的业务数据进行多载波调制处理,然后得到调制信号,然后确定根据该业务数据的业务类型确定用于处理所述业务数据的从站设备中的虚拟模块的逻辑地址,同时将调制信号和确定出的逻辑地址通知给数据分发器,这样数据分发器方可将调制信号通过优先级比较高的业务模块对应的虚拟总线发送给包含确定出的逻辑地址对应的虚拟模块的从站设备。例如,非实时业务优先级高于非实时业务,则调度器将共享缓冲区内非实时业务模块产生的业务数据进行多载波调制处理得到调制信号,然后基于该业务数据的业务类型确定出能够处于该业务数据的虚拟模块的逻辑地址,然后将该调制信号在共享缓冲区内的存储地址和确定出的虚拟模块的逻辑地址发送给数据分发器,数据分发器根据上述存储地址可以从共享缓冲区内读取上述调制信号,然后将该调制信号经信道1即非实时业务模块对应的虚拟总线1发送给包含上述逻辑地址的从站设备,以使从站设备将从上述调制信号解调出的业务数据发送给上述逻辑地址对应的虚拟模块,由该虚拟模块处理上述业务数据。通过实施本发明提供的工业现场总线虚拟化方法,将至少一个业务模块产生的业务数据进行多载波调制得到调制信号,然后根据业务数据的业务类型确定出能够处理该类业务数据的虚拟模块的逻辑地址,并将调制信号基于一条物理总线下发至包含确定出的虚拟模块的从站设备,以使从站设备在从接收到的调制信号中解调出业务数据后,将所述业务数据分发给确定出的逻辑地址对应的虚拟模块,由该虚拟模块处理解调出的业务数据。这样,由于每一业务模块对应一条虚拟总线,通过本发明提供的方法可以将各个业务模块产生的业务数据分别通过各个业务模块对应的虚拟总线发送至从站设备;此外,在发送过程中,由于本发明由于采用了多载波调制技术,可以将各类业务的业务数据调制到子载波上然后再进行传输,而每一子载波相当于一条传输信道,将业务数据在每一子载波上进行传输,由于各个子载波间相互正交,这样也就保证了各个子载波上业务数据的独立传输,互不干扰;另外,本发明中从站设备中包含至少两个虚拟模块,这样可以使得虚拟模块能够处理更多的业务数据,提高了业务数据的处理效率。基于同一发明构思,本发明实施例中还提供了一种工业现场总线虚拟化装置,由于上述装置解决问题的原理与工业现场总线虚拟化方法相似,因此上述装置的实施可以参见方法的实施,重复之处不再赘述。如图10所示,为本发明实施例提供的工业现场总线虚拟化装置的结构示意图,本发明提供的装置设置于主站设备中,所述主站设备通过一条物理总线分别与至少一个从站设备相连接,其中:所述主站设备包含至少两种业务模块,每一业务模块对应一条虚拟总线,基于所述主站设备的业务模块的划分规则,将所述物理总线虚拟化为相应数量的虚拟总线;以及所述装置,包括:调度器31,用于在需要从站设备中的虚拟模块处理至少一个业务模块产生的业务数据时,对所述业务数据进行多载波调制得到业务数据的调制信号;调度器31,还用于根据所述业务数据的业务类型,确定用于处理所述业务数据的从站设备中的虚拟模块的逻辑地址;数据分发器32,用于将所述调制信号通过业务模块对应的虚拟总线发送给包含确定出的逻辑地址对应的虚拟模块的从站设备。优选地,所述调度器31,具体用于根据业务类型、逻辑地址与从站设备的媒体访问控制mac地址三者之间的对应关系,确定所述业务数据的业务类型对应的逻辑地址为用于处理所述业务数据的从站设备中的虚拟模块的逻辑地址。较佳地,所述虚拟模块具有至少一个逻辑地址;所述逻辑地址由域身份标识id、模块身份标识id和子模块身份标识id构成;以及所述逻辑地址满足以下至少一个配置规则:不同虚拟总线对应不同的域id、同一从站设备中的虚拟模块的模块id相同、同一从站设备中的虚拟模块的子模块id不同、用于处理同一业务类型的虚拟模块的域id相同。可选地,所述业务模块包括实时业务模块和非实时业务模块;以及所述从站设备包括用于处理实时业务的实时虚拟模块和用于处理非实时业务的非实时虚拟模块;所述业务数据包含实时业务数据和非实时业务数据;以及所述业务数据包含实时业务数据和非实时业务数据。为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本发明时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。在介绍了本发明示例性实施方式的工业现场总线虚拟化系统、方法和装置之后,接下来,介绍根据本发明的另一示例性实施方式的计算装置。所属
技术领域
的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。在一些可能的实施方式中,根据本发明的计算装置可以至少包括至少一个处理单元、以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述描述的根据本发明各种示例性实施方式的工业现场总线虚拟化方法中的步骤。例如,所述处理单元可以执行如图2所示的步骤s11~s14的工业现场总线虚拟化方法。下面参照图11来描述根据本发明的这种实施方式的计算装置40。图11显示的计算装置40仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。如图11所示,计算装置40以通用计算设备的形式表现。计算装置40的组件可以包括但不限于:上述至少一个处理单元41、上述至少一个存储单元42、连接不同系统组件(包括存储单元42和处理单元41)的总线43。总线43表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。存储单元42可以包括易失性存储器形式的可读介质,例如随机存取存储器(ram)421和/或高速缓存存储器422,还可以进一步包括只读存储器(rom)423。存储单元42还可以包括具有一组(至少一个)程序模块424的程序/实用工具425,这样的程序模块424包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。计算装置40也可以与一个或多个外部设备44(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与计算装置4交互的设备通信,和/或与使得该计算装置40能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口45进行。并且,计算装置40还可以通过网络适配器46与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器46通过总线43与用于计算装置40的其它模块通信。应当理解,尽管图中未示出,可以结合计算装置40使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。在一些可能的实施方式中,本发明提供的工业现场总线虚拟化方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算机设备上运行时,所述程序代码用于使所述计算机设备执行本说明书上述描述的根据本发明各种示例性实施方式的工业现场总线虚拟化方法中的步骤,例如,所述计算机设备可以执行如图2所示的步骤s11~s14的工业现场总线虚拟化方法。所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。本发明的实施方式的用于工业现场总线虚拟化方法的程序产品可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在计算设备上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、rf等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1