工控系统中的数据传输方法及工控子系统、工控系统的制作方法

文档序号:6319020阅读:273来源:国知局
专利名称:工控系统中的数据传输方法及工控子系统、工控系统的制作方法
技术领域
本发明涉及工业自动化控制领域,尤其涉及一种工控系统中的数据传输方法及工控子系统、工控系统。
背景技术
在现代工控系统中,系统的复杂度越来越高,整个系统的功能往往需要由多个子系统协同工作才能完成,每个子系统是一个相对独立的系统,有自己的微控制器和存储器,可能使用不同的开发工具和研发团队,使得各个子系统之间如何实现可靠交互成为工控系统的技术难点。举例来说,在现有技术方案中,人机界面子系统(Human Man-machineInterface,简称HMI)和主控子系统(Main Control System,简称MCS)之间需要进行许多交互来配合完成整个系统的功能,例如用户通过HMI输入机器的控制命令,需要把该命令通知MCS,MCS按照要求执行该命令,并把执行的结果反馈给HMI,同时把结果输出给用户。目前,诸如此类的交互往往采用具备可靠传输特性的硬件链路层,如控制器局域网总线(Controller Area Network,简称CAN),数据包的可靠发送由硬件链路层处理,上层软件按照硬件提供的接口发送数据包,虽然降低了软件的研发成本,但由于需要额外的硬件接口,提高了硬件成本。但是,采用硬件成本低的不可靠链路,如普通的并行总线或串行总线,又无法保证子系统之间数据包的可靠传输。

发明内容
本发明实施例提供一种工控系统中的数据传输方法及工控子系统、工控系统,用以解决现有技术中无法保证采用不可靠链路时工控子系统之间数据包可靠传输的问题。一方面,本发明实施例提供一种工控系统中的数据传输方法,包括:第一工控子系统将数据包通过不可靠链路发送给第二工控子系统,所述数据包的包头携带第一序号;若在预设时间内接收到所述第二工控子系统返回的确认包,且所述确认包携带所述第一序号,则将下一数据包发送给所述第二工控子系统。另一方面,本发明实施例提供一种工控系统中的数据传输方法,包括:第二工控子系统通过不可靠链路接收第一工控子系统发送的数据包,所述数据包的包头携带第一序号;生成所述数据包的确认包,所述确认包携带所述第一序号;将所述确认包发送给所述第一工控子系统,以使所述第一工控子系统发送下一数据包。另一方面,本发明实施例提供一种工控子系统,包括:第一发送模块,用于将数据包通过不可靠链路发送给另一工控子系统,所述数据包的包头携带第一序号;
第一接收模块,用于若在预设时间内接收到所述另一工控子系统返回的确认包,且所述确认包携带所述第一序号,则指示所述第一发送模块将下一数据包发送给所述另一工控子系统。另一方面,本发明实施例提供另一种工控子系统,包括:第二接收模块,用于通过不可靠链路接收另一工控子系统发送的数据包,所述数据包的包头携带第一序号;生成模块,用于生成所述数据包的确认包,所述确认包携带所述第一序号;第二发送模块,用于将所述确认包发送给所述另一工控子系统,以使所述另一工控子系统发送下一数据包。再一方面,本发明实施例提供一种工控系统,包括:上述的两种工控子系统,所述两种工控子系统之间通过不可靠链路连接。本发明实施例采用第一工控子系统将携带第一序号的数据包通过不可靠链路发送给第二工控子系统,若在预设时间内接收到所述第二工控子系统返回的携带所述第一序号的确认包,则将下一数据包发送给所述第二工控子系统的技术手段,使得工控子系统之间在不可靠的硬件通讯链路上实现可靠数据通讯,降低硬件成本,提高硬件通讯链路选择的灵活性。


图1为本发明实施例一提供的一种工控系统中的数据传输方法的流程示意图;图2为为本发明实施例二提供的一种工控系统中的数据传输方法的流程示意图;图3为本发明实施例三提供的一种工控子系统的结构示意图;图4为本发明实施例四提供的一种工控子系统的结构示意图;图5为本发明实施例五提供的一种工控系统的结构示意图;图6为本发明实施例的一种包格式的示意图;图7为本发明实施例的一种具体应用的流程示意图。
具体实施例方式下面通过附图和实施例,对本发明的技术方案做进一步的详细说明。图1为本发明实施例一提供的一种工控系统中的数据传输方法的流程示意图,如图1所示,该方法包括:步骤101、第一工控子系统将数据包通过不可靠链路发送给第二工控子系统,所述数据包的包头携带第一序号。举例来说,第一工控子系统可以是HMI或MCS,相应地,第二工控子系统可以是MCS或HMI。具体地,每个数据包可以有一个唯一的第一序号。不可靠链路可以是串行通信方式,如RS232,或并行通信方式,如基于FIFO的并行通信。步骤102、若在预设时间内接收到所述第二工控子系统返回的确认包,且所述确认包携带所述第一序号,则将下一数据包发送给所述第二工控子系统。具体地,所述确认包可以采用与所述数据包不同的包格式。可选地,所述确认包也可以采用与所述数据包一样的包格式,且通过包头中的包标志位区分。第一工控子系统可以根据不同的包格式或是包头中的包标志位确认接收到的是数据包还是确认包。进一步地,为了在不可靠链路上兼容可靠传输和不可靠传输,所述数据包的包头还包括可靠标志位,步骤101之前还包括:确定所述数据包需可靠传输;将所述可靠标志位置位,以使所述第二工控子系统接收到所述数据包后返回所述确认包。举例来说,若所述数据包需可靠传输,则将所述可靠标志位置为0,以使所述第二工控子系统接收到所述数据包后返回所述确认包。若所述数据包无需可靠传输,则将所述可靠标志位置为1,第二工控子系统在收到可靠标志位为I的数据包时不返回确认包。这样,当数据包无需可靠传输时,可以通过可靠标志位通知接收方无需返回确认包,适应高速大量的数据传输,提高通信响应速度。进一步地,为了使子系统进程之间点对点通信,所述数据包的包头还包括通道标识位,步骤101之前还包括:确定所述数据包对应的发送进程和接收进程;根据所述发送进程和接收进程确定所述数据包对应的通道标识;将所述通道标识添加到所述通道标志位。举例来说,第一工控子系统确定数据包的发送进程为A,接收进程为B,查找进程与通道的映射关系确定对应的通道标识为1,将通道标识I添加到包头的通道标识位,第二工控子系统接收数据包,根据通道标识确定对应的接收进程B来处理数据包,通过通道标识位,实现发送进程A与接收进程B的点对点通信,降低应用程序研发成本。进一步地,为了验证接收数据包的准确性,所述数据包的包头还包括包校验位,步骤101之前还包括:根据所述数据包,得到包校验码;将所述包校验码插入所述包校验位。对应地,举例来说,第二工控子系统在收到数据包之后,提取包校验码;第二工控子系统根据收到的数据包,得到包校验码;将提取的包校验码与得到的包校验码进行比较,若相同,则校验正确,返回确认包给第一工控子系统,否则校验错误,丢弃数据包,从而保证第一工控子系统收到正确的数据包。进一步地,为了快速校验出错误的数据包,所述数据包的包头还包括包头校验位,步骤101之前还包括:根据所述数据包的包头,得到包头校验码; 将所述包头校验码插入所述包头校验位。举例来说,第二工控子系统在收到数据包之后,提取包头校验码;第二工控子系统根据收到的数据包,得到包头校验码;将提取的包头校验码与得到的包头校验码进行比较,若不同,则第二工控子系统接收数据包失败,并无需再进一步校验数据包的准确性,从而可以快速有效的校验出错误的数据包。另外,步骤101之后,若第一工控子系统未在预设时间内接收到所述第二工控子系统返回的所述确认包,则再次发送所述数据包。进一步地,为了避免重复多次发送相同的数据包,可以设定数据包的发送次数阈值。具体地,所述再次发送所述数据包具体包括:若所述数据包的发送次数未超过预设的阈值,则再次发送所述数据包。若所述数据包的发送次数超过所述阈值,则确认发送所述数据包失败,发送所述下一数据包。本发明实施例采用第一工控子系统将携带第一序号的数据包通过不可靠链路发送给第二工控子系统,若在预设时间内接收到所述第二工控子系统返回的携带所述第一序号的确认包,则将下一数据包发送给所述第二工控子系统的技术手段,使得工控子系统之间在不可靠的硬件通讯链路上实现可靠数据通讯,降低硬件成本,提高硬件通讯链路选择的灵活性。进一步地,还可以兼容不可靠数据的传输,提高响应速度,提供应用程序进程间的点对点通讯,降低应用程序的研发成本。图2为为本发明实施例二提供的一种工控系统中的数据传输方法的流程示意图,如图2所示,该方法包括:步骤201、第二工控子系统通过不可靠链路接收第一工控子系统发送的数据包,所述数据包的包头携带第一序号。举例来说,第二工控子系统可以是HMI或MCS,相应地,第一工控子系统可以是MCS或HMI。具体地,每个数据包可以有一个唯一的第一序号。步骤202、生成所述数据包的确认包,所述确认包携带所述第一序号。所述确认包可以采用与所述数据包不同的包格式。可选地,所述确认包也可以采用与所述数据包一样的包格式,且通过包头中的包标识位区分。第二工控子系统可以根据不同的包格式或是包头中的包标识位确认接收到的是数据包还是确认包。步骤203、将所述确认包发送给所述第一工控子系统,以使所述第一工控子系统发送下一数据包。进一步地,为了在不可靠链路上兼容可靠传输和不可靠传输,所述数据包的包头还包括可靠标识位,在步骤202之前还包括:根据所述可靠标识位确定所述数据包需可靠传输。举例来说,若所述可靠标识位被置为0,则确定所述数据包需可靠传输,生成所述确认包并返回给第一工控子系统。若所述可靠标识位被置为1,则确定所述数据包无需可靠传输,不返回确认包。这样,当数据包无需可靠传输时,发送方可以通过可靠标识位通知接收方无需返回确认包,适应高速大量的数据传输,提高通信响应速度。进一步地,为了使子系统进程之间点对点通信,所述数据包的包头还包括通道标识位,步骤201之后还包括:根据所述通道标识位中的通道标识确定接收进程;调用所述接收进程处理所述数据包。举例来说,第二工控子系统在收到数据包之后,从通道标志位中提取通道标识1,查找进程与通道的映射关系确定通道标识I对应的接收进程为B,第二工控子系统将数据包交给对应的接收进程B去处理。进一步地,为了验证接收的数据包的准确性,所述数据包的包头还包括包校验位,在步骤202之前还包括:根据所述包校验位中的包校验码对所述数据包进行校验,确认校验通过。
举例来说,第二工控子系统在收到数据包之后,从包检验位提取包校验码,将提取的包校验码与根据数据包计算得到的包校验码进行比较,若不同,则确认接收到的数据包错误,若相同,则确认接收到的数据包正确,执行步骤202。进一步地,为了快速校验出错误的数据包,所述数据包的包头还包括包头校验位,在步骤202之前还包括:根据所述包头校验位中的包头校验码对所述数据包的包头进行校验,若对所述数据包的包头的校验通过,则根据所述包校验位对所述数据包进行校验,若对所述数据包的包头的校验不通过,则丢弃所述数据包。举例来说,第二工控子系统在收到数据包之后,从包头校验位提取包头校验码,将提取的包头校验码与根据数据包的包头计算得到的包头校验码进行比较,若不同,则确认接收到的数据包错误,无需再进一步根据包校验位进行校验,从而可以快速有效的校验出错误的数据包。进一步地,为了对端验证接收的确认包的准确性,所述确认包的包头还包括包校验位,在步骤203之前还包括:根据所述确认包,得到包校验码;将所述包校验码插入所述确认包的包校验位。对应地,举例来说,第一工控子系统在收到确认包之后,提取包校验码;第一工控子系统根据收到的确认包,计算得到包校验码;将提取的包校验码与计算得到的包校验码进行比较,若相同,则校验正确,第一工控子系统确认接收到确认包正确,否则校验错误,第一工控子系统丢弃确认包,从而保证第一工控子系统收到正确的确认包。进一步地,为了对端快速校验出错误的确认包,所述确认包的包头还包括包头校验位,在步骤203之前还包括:根据所述确认包的包头,得到包头校验码;将所述包头校验码插入所述确认包的包头校验位。对应地,举例来说,第一工控子系统在收到确认包之后,提取包头校验码;第一工控子系统根据收到的确认包,计算得到包头校验码;将提取的包头校验码与计算得到的包头校验码进行比较,若不同,则第一工控子系统接收确认包失败,并无需再进一步校验确认包的准确性,从而可以快速有效的校验出错误的确认包。本发明实施例采用第二工控子系统通过不可靠链路接收第一工控子系统发送的携带第一序号的数据包,将携带所述第一序号的确认包返回所述第一工控子系统以使所述第一工控子系统发送下一数据包的技术手段,使得工控子系统之间在不可靠的硬件通讯链路上实现可靠数据通讯,降低硬件成本,提高硬件通讯链路选择的灵活性。进一步地,还可以兼容不可靠数据的传输,提高响应速度,提供应用程序进程间的点对点通讯,降低应用程序的研发成本。图3为本发明实施例三提供的一种工控子系统的结构示意图,如图3所示,该工控子系统包括:第一发送模块31,用于将数据包通过不可靠链路发送给另一工控子系统,所述数据包的包头携带第一序号;第一接收模块32,用于若在预设时间内接收到所述另一工控子系统返回的确认包,且所述确认包携带所述第一序号,则指示所述第一发送模块将下一数据包发送给所述另一工控子统。进一步地,所述数据包的包头还包括可靠标识位,所述工控子系统还包括:第一确认模块,用于在第一发送模块31发送所述数据包之前,确定所述数据包需可靠传输;置位模块,用于将所述可靠标识位置位,以使所述另一工控子系统接收到所述数据包后返回所述确认包。进一步地,所述数据包的包头还包括通道标识位,所述工控子系统还包括:第一通道模块,用于在第一发送模块31发送所述数据包之前,确定所述数据包对应的发送进程和接收进程,根据所述发送进程和接收进程确定所述数据包对应的通道标识,将所述通道标识添加到所述通道标识位。进一步地,所述数据包的包头还包括包校验位,所述工控子系统还包括:第一校验模块,用于在第一发送模块31发送所述数据包之前,根据所述数据包,得到包校验码,将所述包校验码插入所述包校验位。进一步地,所述数据包的包头还包括包头校验位,所述第一校验模块还用于,在第一发送模块31发送所述数据包之前,根据所述数据包的包头,得到包头校验码,将所述包头校验码插入所述包头校验位。本实施例的具体实现参照本发明实施例一提供的一种工控系统中的数据传输方法。本发明实施例采用第一工控子系统将携带第一序号的数据包通过不可靠链路发送给第二工控子系统,若在预设时间内接收到所述第二工控子系统返回的携带所述第一序号的确认包,则将下一数据包发送给所述第二工控子系统的技术手段,使得工控子系统之间在不可靠的硬件通讯链路上实现可靠数据通讯,降低硬件成本,提高硬件通讯链路选择的灵活性。图4为本发明实施例四提供的一种工控子系统的结构示意图,如图4所示,该工控子系统包括:第二接收模块41,用于通过不可靠链路接收另一工控子系统发送的数据包,所述数据包的包头携带第一序号。生成模块42,用于生成所述数据包的确认包,所述确认包携带所述第一序号;第二发送模块43,用于将所述确认包发送给所述另一工控子系统,以使所述另一工控子系统发送下一数据包。进一步地,所述数据包的包头还包括可靠标识位,所述工控子系统还包括:第二确认模块,用于在生成模块42生成所述数据包的确认包之前,确认所述数据
包需可靠传输。进一步地,所述数据包的包头还包括通道标识位,所述工控子系统还包括:第二通道模块,用于第二接收模块41接收所述数据包之后,根据所述通道标识位中的通道标识确定接收进程;调用模块,用于所述接收进程处理所述数据包。进一步地,所述数据包的包头还包括包校验位,所述工控子系统还包括:第二校验模块,用于在生成模块42生成所述确认包之前,根据所述包校验位中的包校验码对所述数据包进行校验,确认校验通过。
进一步地,所述数据包的包头还包括包头校验位,所述第二校验模块还用于,根据所述包头校验位中的包头校验码对所述数据包的包头进行校验,若对所述数据包的包头的校验通过,则根据所述包校验位对所述数据包进行校验,若对所述数据包的包头的校验不通过,则丢弃所述数据包。本实施例的具体实现参照本发明实施例二提供的一种工控系统中的数据传输方法。本发明实施例采用第二工控子系统通过不可靠链路接收第一工控子系统发送的携带第一序号的数据包,将携带所述第一序号的确认包返回所述第一工控子系统以使所述第一工控子系统发送下一数据包的技术手段,使得工控子系统之间在不可靠的硬件通讯链路上实现可靠数据通讯,降低硬件成本,提高硬件通讯链路选择的灵活性。图5为本发明实施例五提供的一种工控系统的结构示意图,如图5所示,该工控系统包括:工控子系统51和工控子系统52,工控子系统51和工控子系统52之间通过不可靠链路连接,其中,工控子系统51和工控子系统52分别为如本发明实施例三和实施例四提供的工控子系统。图6为本发明实施例的一种包格式的示意图。应用中,本发明实施例中的数据包和确认包均可以采用如图6所示的包格式,如图6所示,头长度为16位,表示从包的起始位置到确认包序号结束位置的长度,用来确定包头校验码在整个数据包中的偏移位置。版本为4位,表示当前传输层协议的版本。标志为四位,第一位为包标识位,表示是确认包还是数据包,进一步地,如果是确认包,则数据内容的长度为O ;第二位为可靠标识位,表示传输类型,O表示可靠传输,I表示不可靠传输;第三位为复位标识,在发送方和接收方需要重新对数据通道进行同步时使用;第四位为保留位。通道标识位为16位,用于发送方填入与发送进程和接收进程对应的通道标识;包数据长度为16位,表示数据内容的长度;数据包序号为16位,用于发送方填入数据包的序号,以便接收方验证发送方是否重复发送数据包;确认包序号为16位,用于接收方填入确认包的序号,以便发送方确定与该确认包对应的数据包;包头校验位为16位,用来接收方快速验证数据包或发送方快速验证确认包的正确性;包校验位为16位,用来接收方验证数据包或发送方验证确认包的正确性。图7为本发明实施例的一种具体应用的流程示意图。如图7所示,包括:701、发送数据包。具体地,第一工控子系统通过不可靠链路向第二工控子系统发送数据包。702、判断是否可靠传输,若是执行704,若否执行703 ;703、发送结束。具体地,若为不可靠传输,则无需等待确认包,认为本次数据包的发送流程结束,可以发送下一数据包。704、等待确认包。具体地,如为可靠传输,发送数据包之后,需要等待确认包。705、判断在预设时间内是否接收到确认包,若是执行708,若否执行706。706、重发数据包。具体地,如果在预设时间内没有接收到确认包,则再次发送上一次的数据包。707、如果重发多次都未收到确认包,执行714。
708、从确认包提取包校验码。具体地,如果第一工控子系统收到确认包,则检查包中校验码。709、判断提取的包校验码是否与根据确认包计算得到的包校验码相同,若是执行710,否则执行713。710、提取确认包序号,判断确认包序号是否与本次发送的数据包的序号相同,若是则执行711,若否则执行712。711、确认发送成功,执行703。712、判断确认包序号是否与上次发送的数据包的序号相同,若是则执行713、若否则执行714。713、丢弃所述确认包,执行704。714、确认发送失败,执行703。
权利要求
1.一种工控系统中的数据传输方法,其特征在于,包括: 第一工控子系统将数据包通过不可靠链路发送给第二工控子系统,所述数据包的包头携带第一序号; 若在预设时间内接收到所述第二工控子系统返回的确认包,且所述确认包携带所述第一序号,则将下一数据包发送给所述第二工控子系统。
2.根据权利要求1所述的方法,其特征在于,所述数据包的包头还包括可靠标识位,所述第一工控子系统将数据包通过不可靠链路发送给第二工控子系统之前包括: 确定所述数据包需可靠传输; 将所述可靠标识位置位,以使所述第二工控子系统接收到所述数据包后返回所述确认包。
3.根据权利要求1或2所述的方法,其特征在于,所述数据包的包头还包括通道标识位,所述第一工控子系统将数据包通过不可靠链路发送给第二工控子系统之前还包括: 确定所述数据包对应的发送进程和接收进程; 根据所述发送进程和接收进程确定所述数据包对应的通道标识; 将所述通道标识添加到所述 通道标识位。
4.根据权利要求1所述的方法,其特征在于,所述数据包的包头还包括包校验位,所述第一工控子系统将数据包通过不可靠链路发送给第二工控子系统之前还包括: 根据所述数据包,得到包校验码; 将所述包校验码插入所述包校验位。
5.根据权利要求4所述的方法,其特征在于,所述数据包的包头还包括包头校验位,所述第一工控子系统将数据包通过不可靠链路发送给第二工控子系统之前还包括: 根据所述数据包的包头,得到包头校验码; 将所述包头校验码插入所述包头校验位。
6.根据权利要求1所述的方法,其特征在于,还包括: 若第一工控子系统未在预设时间内接收到所述第二工控子系统返回的所述确认包,则再次发送所述数据包。
7.根据权利要求6所述的方法,其特征在于,所述再次发送所述数据包具体包括: 若所述数据包的发送次数未超过预设的阈值,则再次发送所述数据包。
8.根据权利要求7所述的方法,其特征在于,还包括: 若所述数据包的发送次数超过所述阈值,则确认发送所述数据包失败,发送所述下一数据包。
9.一种工控系统中的数据传输方法,其特征在于,包括: 第二工控子系统通过不可靠链路接收第一工控子系统发送的数据包,所述数据包的包头携带第一序号; 生成所述数据包的确认包,所述确认包携带所述第一序号; 将所述确认包发送给所述第一工控子系统,以使所述第一工控子系统发送下一数据包。
10.根据权利要求9所述的方法,其特征在于,所述数据包的包头还包括可靠标识位,所述生成所述数据包的确认包之前还包括:根据所述可靠标识位确定所述数据包需可靠传输。
11.根据权利要求9或10所述的方法,其特征在于,所述数据包的包头还包括通道标识位,所述第二工控子系统通过不可靠链路接收第一工控子系统发送的数据包之后还包括: 根据所述通道标识位中的通道标识确定接收进程; 调用所述接收进程处理所述数据包。
12.根据权利要求9所述的方法,其特征在于,所述数据包的包头还包括包校验位,所述生成所述数据包的确认包之前还包括: 根据所述包校验位中的包校验码对所述数据包进行校验,确认校验通过。
13.根据权利要求12所述的方法,其特征在于,所述数据包的包头还包括包头校验位,所述根据所述包校验位对所述数据包进行校验具体包括: 根据所述包头校验位中的包头校验码对所述数据包的包头进行校验,若对所述数据包的包头的校验通过,则根据所述包校验位对所述数据包进行校验,若对所述数据包的包头的校验不通过,则丢弃所述数据包。
14.根据权利要求9所述的方法,其特征在于,所述确认包的包头还包括包校验位,所述将所述确认包发送给所述第一工控子系统之前包括: 根据所述确认包,得到包校验码; 将所述包校验码插入所述包校验位。
15.根据权利要求9所述的方法,其特征在于,所述确认包的包头还包括包头校验位,所述将所述确认包发送给所述第一工控子系统之前还包括: 根据所述确认包的包头,得到包头校验码; 将所述包头校验码插入所述包头校验位。
16.一种工控子系统,其特征在于,包括: 第一发送模块,用于将数据包通过不可靠链路发送给另一工控子系统,所述数据包的包头携带第一序号; 第一接收模块,用于若在预设时间内接收到所述另一工控子系统返回的确认包,且所述确认包携带所述第一序号,则指示所述第一发送模块将下一数据包发送给所述另一工控子系统。
17.根据权利要求16的工控子系统,其特征在于,所述数据包的包头还包括可靠标识位,所述工控子系统还包括: 第一确认模块,用于在所述第一发送模块发送所述数据包之前,确定所述数据包需可靠传输; 置位模块,用于将所述可靠标识位置位,以使所述另一工控子系统接收到所述数据包后返回所述确认包。
18.根据权利要求16或17的工控子系统,其特征在于,所述数据包的包头还包括通道标识位,所述工控子系统还包括: 第一通道模块,用于在所述第一发送模块发送所述数据包之前,确定所述数据包对应的发送进程和接收进程,根据所述发送进程和接收进程确定所述数据包对应的通道标识,将所述通道标识添加到所述通道标识位。
19.根据权利要求16所述的工控子系统,其特征在于,所述数据包的包头还包括包校验位,所述工控子系统还包括: 第一校验模块,用于在所述第一发送模块发送所述数据包之前,根据所述数据包,得到包校验码,将所述包校验码插入所述包校验位。
20.根据权利要求19所述的工控子系统,其特征在于,所述数据包的包头还包括包头校验位,所述第一校验模块还用于, 在所述第一发送模块发送所述数据包之前,根据所述数据包的包头,得到包头校验码,将所述包头校验码插入所述包头校验位。
21.—种工控子系统,其特征在于,包括: 第二接收模块,用于通过不可靠链路接收另一工控子系统发送的数据包,所述数据包的包头携带第一序号; 生成模块,用于生成所述数据包的确认包,所述确认包携带所述第一序号; 第二发送模块,用于将所述确认包发送给所述另一工控子系统,以使所述另一工控子系统发送下一数据包。
22.根据权利要求21所述的工控子系统,其特征在于,所述数据包的包头还包括可靠标识位,所述工控子系统还包括: 第二确认模块,用于在所述 生成模块生成所述数据包的确认包之前,确认所述数据包需可靠传输。
23.根据权利要求21或22所述的工控子系统,其特征在于,所述数据包的包头还包括通道标识位,所述工控子系统还包括: 第二通道模块,用于所述第二接收模块接收所述数据包之后,根据所述通道标识位中的通道标识确定接收进程; 调用模块,用于所述接收进程处理所述数据包。
24.根据权利要求21所述的工控子系统,其特征在于,所述数据包的包头还包括包校验位,所述工控子系统还包括: 第二校验模块,用于在所述生成模块生成所述确认包之前,根据所述包校验位中的包校验码对所述数据包进行校验,确认校验通过。
25.根据权利要求24所述的工控子系统,其特征在于,所述数据包的包头还包括包头校验位,所述第二校验模块还用于, 根据所述包头校验位中的包头校验码对所述数据包的包头进行校验,若对所述数据包的包头的校验通过,则根据所述包校验位对所述数据包进行校验,若对所述数据包的包头的校验不通过,则丢弃所述数据包。
26.—种工控系统,其特征在于,包括:如权利要求16-20中任一项所述的工控子系统和如权利要求21-25中任一项所述的工控子系统,所述工控子系统之间通过不可靠链路连接。
全文摘要
本发明提供的工控系统中的数据传输方法及工控子系统、工控系统,其方法包括第一工控子系统将数据包通过不可靠链路发送给第二工控子系统,所述数据包的包头携带第一序号;若在预设时间内接收到所述第二工控子系统返回的确认包,且所述确认包携带所述第一序号,则将下一数据包发送给所述第二工控子系统。第二工控子系统通过不可靠链路接收第一工控子系统发送的数据包,所述数据包的包头携带第一序号;生成所述数据包的确认包,所述确认包携带所述第一序号;将所述确认包发送给所述第一工控子系统,以使所述第一工控子系统发送下一数据包。本发明可以实现工控子系统之间在不可靠的硬件通讯链路上实现可靠数据通讯,降低硬件成本。
文档编号G05B19/418GK103199966SQ201210004918
公开日2013年7月10日 申请日期2012年1月9日 优先权日2012年1月9日
发明者刘涛 申请人:北京大豪科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1