掌桥专利:专业的专利平台
掌桥专利
首页

一种串行数据网关控制器的通信方法及相关组件

文献发布时间:2024-04-18 19:58:53


一种串行数据网关控制器的通信方法及相关组件

技术领域

本发明涉及通信领域,特别是涉及一种串行数据网关控制器的通信方法及相关组件。

背景技术

SCADA(Supervisory Control And Data Acquisition,数据采集与监视控制系统)与底层设备之间的通信由FEP(Front-End Processor,前端处理器)完成,且FEP往往部署为双机冗余的配置。在SCADA行业,一般一套SCADA系统线上生命周期为十年左右,全国已有的SCADA系统早已过万套,因此将既有旧系统更新或改造为新系统是常态。

在SCADA系统中,FEP与底层设备的通信可分为工业以太网、现场总线和无线通信,其中,现场总线因其良好的可靠性和安全性,仍然处于主导地位。在现场总线中,常使用两线制RS485的半双工串行总线,其特点是总线上同一时刻不能有两个或两个以上节点同时发起会话。因此,在旧系统更新或改造的过程中,常见的方式为先切断旧SCADA系统的FEP与底层设备之间的通信,再将底层设备接入新SCADA系统的FEP,这就会导致改造期间,旧SCADA系统离线从而导致功能丧失,而新SCADA由于尚在调试期又无法提供稳定可靠的SCADA服务,从而导致旧系统更新或改造的过程中用户对SCADA业务事实上的监控功能丧失。

特别是当前SCADA系统的市场较为成熟,SCADA系统的类型和厂商也存在选择,当存在多个新厂商与既有旧厂商平等竞争改造系统的项目时,最终新旧系统的SCADA有可能不归属于同一厂商,这也会导致新SCADA系统需要测试和调试的时间更长,改造时间更长。因此,如何尽量减少甚至避免旧系统更新或改造的过程中用户对SCADA业务监控功能的丧失,成为SCADA用户和SCADA新供货商的主要矛盾发生点,同时也是业内的关注点。

现有技术中的主要手段是在非运营期间对系统进行改造或更新,通常在晚上甚至是深夜的短暂时间,按上述的常规方式切断旧SCADA系统与底层设备的通信,然后调试新SCADA系统来完成新旧系统的切换,这种情况仍然会导致一段时间的用户对SCADA业务监控功能的丧失,局限性较大。

发明内容

本发明的目的是提供一种串行数据网关控制器的通信方法及相关组件,通过串行总线网关控制器有效协调不同SCADA系统所导致的串行总线链路冲突,实现了多组前端处理器与设备之间的通信,使得在进行SCADA系统的更新或改造的过程中,可以将旧系统和新系统同时通过串行数据网关控制器与设备之间进行连接,从而同时实现旧系统的FEP和新系统的FEP与设备之间的通信,在完成新系统的调试和测试后,再将旧系统与设备之间断开连接,从而避免了系统更新或改造的过程中用户对SCADA业务监控功能的丧失,降低系统更新或改造过程的局限性,有效便捷地实现了SCADA系统的更新或改造,同时有效优化了设备层的通信压力。

为解决上述技术问题,本发明提供了一种串行数据网关控制器的通信方法,所述串行数据网关控制器的输入端口与前端处理器一一对应连接,输出端口与设备连接,所述前端处理器至少包括第一前端处理器和第二前端处理器;该方法包括:

接收所述第一前端处理器发送的当前请求;

判断所述当前请求之前接收到的所述第二前端处理器发送的上一个请求是否完成应答;

若否,则暂存所述当前请求,并跳转至所述判断所述当前请求之前接收到的所述第二前端处理器发送的上一个请求是否完成应答的步骤;

若是,则将所述当前请求发送至对应的设备;

接收所述设备返回的与所述当前请求对应的第一应答,并将所述第一应答返回至与所述第一前端处理器。

可选地,所述判断所述当前请求之前接收到的所述第二前端处理器发送的上一个请求是否完成应答,包括:

判断是否已经接收到所述设备返回的与所述第二前端处理器发送的上一个请求对应的第二应答;

若是,则判定所述当前请求之前接收到的所述第二前端处理器发送的上一个请求已经完成应答;

若否,则判定所述当前请求之前接收到的所述第二前端处理器发送的上一个请求未完成应答。

可选地,所述接收所述前端处理器发送的当前请求之前,还包括:

配置所述前端处理器发送的请求的接收超时;

对应地,所述判断所述当前请求之前接收到的所述第二前端处理器发送的上一个请求是否完成应答,包括:

判断所述第二前端处理器发送的上一个请求是否已经达到接收超时;

若是,则判定所述当前请求之前接收到的所述第二前端处理器发送的上一个请求已经完成应答。

可选地,所述接收所述第一前端处理器发送的当前请求之前,还包括:

配置所述前端处理器发送的请求的最大等候发送时间;

对应地,所述暂存所述当前请求,包括:

当所述当前请求的暂存时间大于所述当前请求的最大等候发送时间,则重新获取所述当前请求,并暂存重新获取的所述当前请求。

可选地,所述前端处理器发送的请求报文和所述设备返回的应答报文均遵守同一预设报文规则。

可选地,所述预设报文规则包括针对起始字符、报文内部字符间隔时间最大值以及两条相邻报文间隔时间最小值中的一种及多种的配置。

可选地,所述暂存所述当前请求之前,还包括:

判断所述当前请求和所述上一个请求是否为相同的请求;

若是,则在接收到所述设备返回的与所述上一个请求对应的第二应答时,将所述第二应答返回所述第一前端处理器和所述第二前端处理器,并跳转至所述接收所述第一前端处理器发送的当前请求的步骤;

若否,则进入所述暂存所述当前请求的步骤。

为解决上述技术问题,本发明还提供了一种电子设备,包括:

存储器,用于存储计算机程序;

处理器,用于实现如前述所述的串行数据网关控制器的通信方法的步骤。

为解决上述技术问题,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前述所述的串行数据网关控制器的通信方法的步骤。

为解决上述技术问题,本发明还提供了一种通信系统,应用于串行数据网关控制器,所述串行数据网关控制器的输入端口与前端处理器一一对应连接,输出端口与设备连接,所述前端处理器至少包括第一前端处理器和第二前端处理器;该系统包括:

接收请求单元,用于接收所述第一前端处理器发送的当前请求;

第一判断单元,用于判断所述当前请求之前接收到的所述第二前端处理器发送的上一个请求是否完成应答,若否,则触发暂存单元,若是,则触发发送单元;

所述暂存单元,用于暂存所述当前请求,并触发所述第一判断单元;

所述发送单元,用于将所述当前请求发送至对应的设备;

接收单元,用于接收所述设备返回的与所述当前请求对应的第一应答,并将所述第一应答返回至与所述第一前端处理器。

本发明提供了一种串行数据网关控制器的通信方法,应用于串行数据网关控制器,当接收到前端处理器发送的当前请求时,需要判断接收到的上一个请求是否已经完成应答,若是,则可以正常进行当前请求的发送和应答;若否,则需要等待上一个请求完成应答后再进行当前请求的发送和应答;通过串行数据网关控制器有效协调不同前端处理器以及不同SCADA系统所导致的串行总线链路冲突,通过这种协调请求的方式实现了多组前端处理器与设备之间的通信,使得在进行SCADA系统的更新或改造的过程中,可以将旧系统和新系统同时通过串行数据网关控制器与设备之间进行连接,从而同时实现旧系统的FEP和新系统的FEP与设备之间的通信,在完成新系统的调试和测试后,再将旧系统与设备之间断开连接,从而避免了系统更新或改造的过程中用户对SCADA业务监控功能的丧失,降低系统更新或改造过程的局限性,有效便捷地实现了SCADA系统的更新或改造,同时有效优化了设备层的通信压力。

本发明还提供了一种电子设备、计算机可读存储介质及串行数据网关控制器的通信系统,具有与上述串行数据网关控制器的通信方法相同的有益效果。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的一种串行数据网关控制器的通信方法的流程示意图;

图2为本发明提供的一种串行数据网关控制器的通信装置的结构示意图;

图3为本发明提供的一种电子设备的结构示意图;

图4为本发明提供的一种串行数据网关控制器的通信系统的结构示意图。

具体实施方式

本发明的核心是提供一种串行数据网关控制器的通信方法及相关组件,通过串行数据网关控制器有效协调不同SCADA系统所导致的串行总线链路冲突,实现了多组前端处理器与设备之间的通信,使得在进行SCADA系统的更新或改造的过程中,可以将旧系统和新系统同时通过串行数据网关控制器与设备之间进行连接,从而同时实现旧系统的FEP和新系统的FEP与设备之间的通信,在完成新系统的调试和测试后,再将旧系统与设备之间断开连接,从而避免了系统更新或改造的过程中用户对SCADA业务监控功能的丧失,降低系统更新或改造过程的局限性,有效便捷地实现了SCADA系统的更新或改造,同时有效优化了设备层的通信压力。

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

本申请所提供的串行数据网关控制器的通信方法主要适用于SCADA系统中前端处理器与底层设备之间的通信过程,前端处理器与底层设备之间通过通信总线连接,基于通信总线完成通信过程,利用串行数据网关控制器实现多组前端处理器与设备之间的协调通信,从而优化SCADA系统的更新或改造过程,具体实施方式详见下文。

请参照图1,图1为本发明提供的一种串行数据网关控制器的通信方法的流程示意图;请参照图2,图2为本发明提供的一种串行数据网关控制器的通信装置的结构示意图;为解决上述技术问题,本发明提供了一种串行数据网关控制器的通信方法,串行数据网关控制器11的输入端口与前端处理器一一对应连接,输出端口与设备连接,前端处理器至少包括第一前端处理器和第二前端处理器;该方法包括:

S10:接收第一前端处理器发送的当前请求;

不难理解的是,串行数据网关控制器11设置在前端处理器与设备之间,前端处理器需要发送请求到设备时,会先将请求发送至串行数据网关控制器11,串行数据网关控制器11会接收各组前端处理器发送到设备的多个请求。

S11:判断当前请求之前接收到的第二前端处理器发送的上一个请求是否完成应答;

可以理解的是,串行数据网关控制器11会接收各组前端处理器发送到设备的多个请求,而与设备连接的通信总线无法同时接收多个请求应答,同一时间,通信总线只能传输一个请求,并将其传输到对应的设备,使设备针对该请求进行应答,因此串行数据网关控制器11在接收到前端处理器发送的当前请求时,需要判断设备是否已经完成了对于之前的请求的应答,因此会判断当前请求之前接收到的上一个请求是否完成应答。对于上一个请求是否完成应答的判断方法存在多种方式,通常直接通过串行数据网关控制器11接收到的设备的应答情况来进行判断,本申请在此不做特别的限定。

S12:若否,则暂存当前请求,并跳转至判断当前请求之前接收到的第二前端处理器发送的上一个请求是否完成应答的步骤;

具体地,若上一个请求还未完成应答,则说明此时通信总线正在接收上一个请求或正在进行应答,此时通信总线无法传输当前请求,因此串行数据网关控制器11需要将其暂存,并且返回继续判断上一个请求是否完成应答,可以在暂存当前请求的一段时间后再返回判断的步骤,也可以暂存完成后直接跳转,对于返回跳转至判断当前请求之前接收到的上一个请求是否完成应答的步骤的具体实现方式等本申请在此不做特别的限定;可以提前预设存储位置来暂存当前请求,对于当前请求的暂存位置等本申请在此不做特别的限定。

S13:若是,则将当前请求发送至对应的设备;

具体地,若上一个请求已经完成应答,则说明此时通信总线处于空闲状态,可以接收请求并传输请求至设备,设备在接收到请求时会做出对应的应答,因此此时串行数据网关控制器11可以将当前请求直接通过通信总线发送至对应的设备,对于各组前端处理器与串行数据网关控制器11之间的具体通信方式以及设备与串行数据网关控制器11之间的具体通信方式本申请在此不做特别的限定。

S14:接收设备返回的与当前请求对应的第一应答,并将第一应答返回至第一前端处理器。

可以理解的是,当设备通过通信总线返回应答时,串行数据网关控制器11会根据第一应答与当前请求对应的关系,将第一应答返回对应的前端处理器,前端处理器发送请求至串行数据网关控制器11并通过串行数据网关控制器11接收相应的应答,从而完成前端处理器与对应设备之间的通信过程。对于请求和应答的具体实现方式等本申请在此不做特别的限定,应答即设备基于接收到的请求所给出的响应结果。

需要说明的是,第一前端处理器为第一厂商的SCADA系统中的前端处理器,第二前端处理器为第二厂商的SCADA系统中的前端处理器,前端处理器为N组时,串行数据网关控制器11的N个输入端口与N组前端处理器一一对应连接,输出端口与设备连接,N为大于1的正整数,不同的前端处理器可以对应不同厂商的SCADA系统,从而实现了不同厂商的SCADA系统利用串行数据网关控制器11与底部设备的同时连接。

不难理解的是,串行数据网关控制器11与设备之间通过同一串口和通信总线连接,串行数据网关控制器11将接收到的请求按序通过通信总线传输至设备,每一组前端处理器都归属于不同的SCADA系统,实现了多组前端处理器,也即多个SCADA系统的无扰通信;利用串行数据网关控制器11实现了对链路数据的协调,优化整个通信方案,使得设备可以按序依次应答多组前端处理器,完成设备与多个SCADA系统之间的数据通信,从而可以有效应用到SCADA系统的更新或改造的过程中,在系统更新或改造的过程中,多个SCADA系统通常归属于不同厂商,此时通过本申请提供的串行数据网关控制器的通信方法,可以实现多个SCADA系统对应的多组前端处理器与设备之间的通信过程,从而使得旧SCADA系统和新SCADA系统可以同时与设备进行连接并分别进行通信,在完成新SCADA系统的调试后再断开旧SCADA系统,从而避免了现有技术中必须先切断旧SCADA系统与底层设备的通信所导致的问题。

具体地,对于串行数据网关控制器11,前端处理器以及设备的类型和具体设置方式等本申请在此不做特别的限定;由于SCADA系统会设置双机冗余的FEP,因此将每一个SCADA系统中的两个前端处理器成为一组前端处理器,通常也将SCADA系统称为主站,设备称为从站,与串行数据网关控制器11连接的可能存在多个不同功能或不同类型的设备,可能会对应不同的FEP,在串口足够多的情况下,串行数据网关控制器11可以连接多个SCADA系统以及多个不同的设备。

通过本案所述的方法和装置,可热插拔或不插拔情形下,实现串行总线下多主站的同时接入及工作,可以完全避免了常规方式下,既有旧系统更新或改造为新系统时,须先切断旧SCADA系统与底层设备的通信,然后再调试新SCADA系统的情形。

具体地,串行数据网关控制器11也可简称为网关,如图2所示,网关上通常有多个南向串口12和多个北向串口13,南向串口12用于接入底层设备,北向串口13用于接入FEP,使用时,须对网关进行配置,使南向串口12和北向串口13配对。当只有同一家厂商的FEP接入时,通常只需一个南向串口12配对一个北向串口13;当有不同厂商的FEP接入时,可一个南向串口12配对M(M≥2)个北向串口13,每个北向串口13可分别接入不同厂商的FEP,通常在绝大部分场景下,特别是应用于SCADA系统的更新或改造的过程中时,M=2已经足够适用。

本发明提供的串行数据网关控制器的通信方法简洁易懂,无需依赖高性能的软硬件,适用于多种软件/硬件平台,串行数据网关控制器11可以有效协调不同厂商主站所导致的串行总线链路冲突,同时在一定程度上还可以有效优化对设备层的2*2冗余主站导致的设备层通信压力,2*2冗余主站指的是两组SCADA系统,且每组SCADA系统中都设置了两个FEP的双机冗余。

本发明提供了一种串行数据网关控制器的通信方法,应用于串行数据网关控制器11,当接收到前端处理器发送的当前请求时,需要判断接收到的上一个请求是否已经完成应答,若是,则可以正常进行当前请求的发送和应答;若否,则需要等待上一个请求完成应答后再进行当前请求的发送和应答;通过串行数据网关控制器11有效协调不同前端处理器以及不同SCADA系统所导致的串行总线链路冲突,通过这种协调请求的方式实现了多组前端处理器与设备之间的通信,使得在进行SCADA系统的更新或改造的过程中,可以将旧系统和新系统同时通过串行数据网关控制器11与设备之间进行连接,从而同时实现旧系统的FEP和新系统的FEP与设备之间的通信,在完成新系统的调试和测试后,再将旧系统与设备之间断开连接,从而避免了系统更新或改造的过程中用户对SCADA业务监控功能的丧失,降低系统更新或改造过程的局限性,有效便捷地实现了SCADA系统的系统更新或改造,同时有效优化了设备层的通信压力。

在上述实施例的基础上:

作为一种可选地实施例,判断当前请求之前接收到的第二前端处理器发送的上一个请求是否完成应答,包括:

判断是否已经接收到设备返回的与第二前端处理器发送的上一个请求对应的第二应答;

若是,则判定当前请求之前接收到的第二前端处理器发送的上一个请求已经完成应答;

若否,则判定当前请求之前接收到的第二前端处理器发送的上一个请求未完成应答。

不难理解的是,当串行数据网关控制器11接收到与上一个请求对应的第二应答时,说明设备已经完成了针对上一个请求的应答,并且第二应答此时已经通过通信主线返回至了串行数据网关控制器11,此时通信主线已经处于空闲状态,可以进行请求的发送,因此当串行数据网关控制器11接收到设备返回的与上一个请求对应的第二应答时,就可以判定上一个请求已经完成应答,可以进行当前请求的发送。

具体地,可以通过串行数据网关控制器11是否接收到对应的应答的情况来判断上一个请求是否已经完成应答,从而便于串行数据网关控制器11进行当前请求的发送,简单有效,准确度高,避免由于误判导致的当前请求发送失败等情况,提高整个通信过程的可靠性和安全性。

作为一种可选地实施例,接收第一前端处理器发送的当前请求之前,还包括:

配置前端处理器发送的请求的接收超时;

对应地,判断当前请求之前接收到的第二前端处理器发送的上一个请求是否完成应答,包括:

判断第二前端处理器发送的上一个请求是否已经达到接收超时;

若是,则判定当前请求之前接收到的第二前端处理器发送的上一个请求已经完成应答。

考虑到一些请求需要的应答存在时间限制以及考虑到故障诊断等方面的因素,可以在进行通信之前,在串行数据网关控制器11中配置请求的接收超时Trcv,通常可以将其设置为预设的默认值,如1000毫秒等;可以将所有前端处理器发送的请求都进行接收超时的配置,也可以只针对其中的一些请求进行接收超时的配置,若上一个请求存在接收超时的配置时,若上一个请求发送后的时间已经超过了接收超时的配置对应的时长,则说明上一个请求已经接收超时了,不会再获取对应的应答,此时可以判定其已经完成应答;同时接收超时的配置还可以用于故障诊断或通信指令汇报等情况,若某一请求接收超时,则其对应的设备等可能是由于故障引起的没有正常接收到对应的应答,此时可以通过硬件提示或者软件提示的方式报错,以便工作人员及时检修。对于接收超时的配置的具体方式和不同请求对应的具体时长等本申请在此不做特别的限定,可以根据实际应用情况进行调整和选择。

具体地,增加配置请求的接收超时,可以确保应答的有效性,同时便于故障诊断等功能的实现,避免由于异常情况导致的长时间无应答导致的通信中断,进一步提高通信效率,确保整个通信过程的有效性和可靠性。

作为一种可选地实施例,接收第一前端处理器发送的当前请求之前,还包括:

配置前端处理器发送的请求的最大等候发送时间;

对应地,暂存当前请求,包括:

当当前请求的暂存时间大于当前请求的最大等候发送时间,则重新获取当前请求,并暂存重新获取的当前请求。

考虑到某些请求可能会存在更新等情况,若当前请求暂存时间过程,当前请求可能已经存在过期或损坏等异常,因此还可以配置请求的最大等候发送时间Tsnd,可以根据不同主机的情况对其发送的请求进行不同最大等候发送时间的配置,也可以直接将所有请求进行统一配置,通常一个请求的最大等候发送时间和接收超时存在一定的关系,一般Tsnd≤Trcv,可以在接收超时的基础上提供最大等候发送时间的默认值,如Tsnd=2/3Trcv。对于最大等候发送时间的配置的具体方式和不同请求对应的具体时长等本申请在此不做特别的限定,可以根据实际应用情况进行调整和选择。在当前请求的暂存时间达到了最大等候发送时间时,可以重新从对应的前端处理器进行当前请求的重新获取,也可以直接丢掉该请求,对于当前请求达到最大等候发送时间后的具体处理方式等本实施例仅提供一种方式,本申请在此不做特别的限定,在实际应用中可以根据实际情况进行选择和调整。

具体地,增加配置请求的最大等候发送时间,可以确保请求的有效性,避免由于当前请求未及时更新导致的错误应答等异常情况,确保请求和应答的准确度,进一步提高通信效率,确保整个通信过程的有效性和可靠性。

作为一种可选地实施例,前端处理器发送的请求报文和设备返回的应答报文均遵守同一预设报文规则。

不难理解的是,请求和应答都是以应用层报文的形式实现的,报文是网络中交换与传输的数据单元,也是网络传输的单元,因此为了便于识别和传输,请求和报文通常需要遵守同一报文规则,该报文规则可以是基于通信协议或串口情况提前设定的,也可以根据用户需求等进行设定,对于预设报文规则的具体设置方式和实现方式等本申请在此不做特别的限定。

具体地,请求报文和应答报文都遵守同一预设报文规则,串行数据网关控制器11可以更快速有效地识别请求和应答,并进行传输,确保了整个通信过程的准确度和有效性,进一步提高通信效率,确保整个通信过程的有效性和可靠性。

作为一种可选地实施例,预设报文规则包括针对起始字符、报文内部字符间隔时间最大值以及两条相邻报文间隔时间最小值中的一种及多种的配置。

不难理解的是,预设报文规则存在多种设置方式,一般报文规则要求至少提供以下之一或多个的组合来对报文进行统一配置:起始字符;结束字符;报文内部字符间隔时间最大值Tf;两条相邻报文间隔时间最小值Tm,Tm需要大于Tf;可按具体采用的通信协议对报文进行配置,串行数据网关控制器11可以内置常见协议解析器,如Modbus RTU,101,103,CDT(Cycle Distance Transmission,即循环式远动规约),DNP3(Distributed NetworkProtocol,分布式网络规约)等通讯规约,串行数据网关控制器11自动按所配置的协议解析收发报文;报文最小长度;报文最大长度;收发报文配对报文长度规则,如长度为Ls1的方报文,其对应的接收报文长度Lr1可按如下规则配置:最小长度、最大长度,当最小长度等于最大长度时,表示接收报文为固定长度。本实施例仅提供部分报文规则可以统一的部分,实际应用中可以根据应用需求和采用的通信协议进行报文规则的定义,本申请在此不做特别的限定。

具体地,可以提前根据实际应用需求和采用的通信协议设定报文规则,从而统一规范收发报文,也即请求和应答的格式,以便串行数据网关控制器11可以更快速有效地识别请求和应答,并进行传输,确保了整个通信过程的准确度和有效性,进一步提高通信效率,确保整个通信过程的有效性和可靠性。

作为一种可选地实施例,暂存当前请求之前,还包括:

判断当前请求和上一个请求是否为相同的请求;

若是,则在接收到设备返回的与上一个请求对应的第二应答时,将第二应答返回第一前端处理器和第二前端处理器,并跳转至接收第一前端处理器发送的当前请求的步骤;

若否,则进入暂存当前请求的步骤。

考虑到多组前端控制器也可能存在对相同设备的完全相同的请求,因此若当前请求与上一个请求为完全相同的请求时,可以在设备应答上一个请求的同时,将该应答同时返回与上一个请求对应的第一前端处理器和与当前请求对应的第二前端处理器,无需将当前请求再传输至该设备进行应答,可以直接返回接收第一前端处理器发送的当前请求的步骤,继续进行后续请求的应答过程,对于如何判断当前请求与上一个请求是否为相同的请求的具体方式本申请在此不做特别的限定,可以直接根据请求的内容进行判定,也可以根据请求对应的设备情况进行判断。若当前请求与上一个请求不是完全相同的请求时,则需要将当前请求暂存,并等待上一个请求完成应答后,再进行当前请求的应答过程。

具体地,若当前请求与上一个请求为完全相同的请求时,直接将设备针对上一个请求做出的应答同时返回与上一个请求对应的第一前端处理器和与当前请求对应的第二前端处理器,无需重复相同请求的传输和应答过程,节约时间,提高通信效率,有利于整个通信过程的快速实现。

作为一种具体的实施例,以图2为例,当北向串口13的数量M=2,也即存在两个不同厂商的FEP接入网关时,也即网关与两个不同的SCADA系统连接,网关具备多种功能。图2中所示的FEP1和FEP1’为一组前端处理器,FEP2和FEP2’为另一组前端处理器,DRV表示底层设备,串行数据网关控制器11可以有效协调不同厂商的主站所导致的串行总线链路冲突,同时还可以有效优化对设备层的2*2冗余主站导致的设备层通信压力。

第一种功能是可以协调不同厂商的并发请求;假设FEP1和FEP1’为厂商A的前端处理器,FEP2和FEP2’为厂商B的前端处理器,当网关把来自厂商A的请求R1发送给底层设备后,但尚未收到底层设备的与请求R1对应的应答S1期间,若网关又收到另一厂商B的请求R2,则网关暂不把请求R2发送给底层设备,待网关收到应答S1或请求R1的接收超时达到后,再把请求R2发送给外部设备。

第二种功能是可以在协调通信的基础上进一步优化外部设备通信压力;当网关收到厂商A的请求R1,并把请求R1发送给底层设备后,尚未收到底层设备的应答S1期间,网关又收到另一厂商B的相同外部设备请求R1’,则待网关收到外部设备的应答S1后,既给厂商A转发S1,也给厂商B转发S1(此时可称其为S1’),即网关无需再额外给外部设备发送请求R1’,但请求R1’对应的上层FEP却仍可获得其应答S1’。

若只有同一家厂商的FEP接入时,串行数据网关控制器11仍会协调不同冗余主站对从站设备的发送请求的过程,串行数据网关控制器11所接收到的从站应答报文只需给当前请求对应的冗余主站转发,与第一种功能对应的工作步骤类似,请求R1和请求R2是两个同一厂商SCADA系统所发送的请求,也需要串行数据网关控制器11在接收到应答S1或请求R1的接收超时达到后,再把请求R2发送给外部设备。

请参照图3,图3为本发明提供的一种电子设备的结构示意图;为解决上述技术问题,本发明还提供了一种电子设备,包括:

存储器1,用于存储计算机程序;

处理器2,用于实现如前述的串行数据网关控制器的通信方法的步骤。

其中,处理器2可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器2可以采用DSP(Digital Signal Processor,数字信号处理器)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器2也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器;协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器2可以集成GPU(graphics processing unit,图形处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器2还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。

存储器1可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器1至少用于存储以下计算机程序,其中,该计算机程序被处理器2加载并执行之后,能够实现前述任意一个实施例公开的串行数据网关控制器的通信方法的相关步骤。另外,存储器1所存储的资源还可以包括操作系统和数据等,存储方式可以是短暂存储或者永久存储。其中,操作系统可以包括Windows、Unix、Linux等。数据可以包括但不限于串行数据网关控制器的通信方法的数据等。

在一些实施例中,电子设备还可包括有显示屏、输入输出接口、通信接口、电源以及通信总线。

本领域技术人员可以理解的是,图3中示出的结构并不构成对电子设备的限定,可以包括比图示更多或更少的组件。

对于本发明提供的一种电子设备的介绍请参照上述串行数据网关控制器的通信方法的实施例,本发明在此不再赘述。

为解决上述技术问题,本发明还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如前述的串行数据网关控制器的通信方法的步骤。

可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例所述方法的全部或部分步骤。具体地,计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘及移动硬盘等,或适合于存储指令、数据的任何类型的媒介或设备等等,本申请在此不做特别的限定。

对于本发明提供的一种计算机可读存储介质的介绍请参照上述串行数据网关控制器的通信方法的实施例,本发明在此不再赘述。

请参照图4,图4为本发明提供的一种串行数据网关控制器的通信系统的结构示意图。为解决上述技术问题,本发明还提供了一种串行数据网关控制器的通信系统,应用于串行数据网关控制器11,串行数据网关控制器11的输入端口与前端处理器一一对应连接,输出端口与设备连接,前端处理器至少包括第一前端处理器和第二前端处理器;该系统包括:

接收请求单元20,用于接收第一前端处理器发送的当前请求;

第一判断单元21,用于判断当前请求之前接收到的第二前端处理器发送的上一个请求是否完成应答,若否,则触发暂存单元22,若是,则触发发送单元23;

暂存单元22,用于暂存当前请求,并触发第一判断单元21;

发送单元23,用于将当前请求发送至对应的设备;

接收单元24,用于接收设备返回的与当前请求对应的第一应答,并将第一应答返回至第一前端处理器。

作为一种可选地实施例,第一判断单元21包括:

第二判断单元,用于判断是否已经接收到设备返回的与第二前端处理器发送的上一个请求对应的第二应答;若是,则触发第一判定单元,若否,则触发第二判定单元;

第一判定单元,用于判定当前请求之前接收到的第二前端处理器发送的上一个请求已经完成应答;

第二判定单元,用于判定当前请求之前接收到的第二前端处理器发送的上一个请求未完成应答。

作为一种可选地实施例,还包括:

第一配置单元,用于配置前端处理器发送的请求的接收超时;

对应地,第一判断单元21包括:

第三判断单元,用于判断上一个请求是否已经达到接收超时;若是,则触发第一判定单元。

作为一种可选地实施例,还包括:

第二配置单元,用于配置前端处理器发送的请求的最大等候发送时间;

对应地,暂存单元22包括:

暂存子单元,用于当当前请求的暂存时间大于当前请求的最大等候发送时间,则重新获取当前请求,并暂存重新获取的当前请求。

作为一种可选地实施例,还包括:

第四判断单元,用于判断当前请求和上一个请求是否为相同的请求,若是,则触发同时应答单元,若否,则触发暂存单元22;

同时应答单元,用于在接收到设备返回的与第二前端处理器发送的上一个请求对应的第二应答时,将第二应答返回第一前端处理器和第二前端处理器,并跳转至接收请求单元20。

对于本发明提供的一种串行数据网关控制器的通信系统的介绍请参照上述串行数据网关控制器的通信方法的实施例,本发明在此不再赘述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其他形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 用于异步串行通信的半导体装置和控制器以及异步串行通信方法和异步串行通信系统
  • 称重控制器串行总线通信网关
技术分类

06120116512871