一种多客户端数据处理系统、方法及存储介质

文档序号:29857197发布日期:2022-04-30 09:42阅读:70来源:国知局
一种多客户端数据处理系统、方法及存储介质

1.本发明主要涉及通信传输技术领域,具体涉及一种多客户端数据处理系统、方法及存储介质。


背景技术:

2.当前工业系统往往采用多个客户端来控制系统动作并监测系统状态,使得系统控制和监测更加灵活和便捷。多个客户端同时在线时,涉及到操控权分配的问题以及多个客户端同步系统状态的问题,即同一时刻只有一个客户端能作为控制端,其余客户端作为监视端,并且当控制端使系统状态发生改变时,多个监视端能够及时地同步系统状态。上述工作模式可以通过udp通讯协议来实现,但由于udp无需建立连接且不保证可靠交付,导致数据传输时丢包现象时有发生,系统的稳定性大大降低。若单单使用tcp/ip通讯协议实现,由于其一对一建立连接的特性,虽然系统数据传输十分可靠,但在多客户端多服务器的系统中,实现控制权转移以及实现系统状态在多客户端间的同步在技术上是无法实现。


技术实现要素:

3.本发明所要解决的技术问题是针对现有技术的不足,提供一种多客户端数据处理系统、方法及存储介质。
4.本发明解决上述技术问题的技术方案如下:一种多客户端数据处理系统,包括服务器处理装置和多个客户端,多个所述客户端均与所述服务器处理装置连接;
5.多个所述客户端均用于向所述服务器处理装置发送操控权状态请求指令;
6.所述服务器处理装置用于当接收到其中任一客户端发送的所述操控权状态请求指令时,将储存的操控权状态数据发送至与所述操控权状态请求指令对应的客户端中;
7.所述客户端用于对接收的所述操控权状态数据进行操控权的分析,根据分析结果生成操控权修改指令,并将所述操控权修改指令发送至所述服务器处理装置中;
8.所述服务器处理装置还用于根据所述操控权修改指令对所述操控权状态数据进行更新,并接收下一操控权状态请求指令,根据下一操控权状态请求指令对当前操控权状态数据再次更新,直至将所有的所述操控权状态请求指令处理完毕。
9.本发明解决上述技术问题的另一技术方案如下:一种多客户端数据处理方法,包括:
10.从多个客户端中分别获取操控权状态请求指令;
11.当接收到其中任一客户端发送的所述操控权状态请求指令时,将储存的操控权状态数据发送至与所述操控权状态请求指令对应的客户端中;
12.对接收的所述操控权状态数据进行操控权的分析,根据分析结果生成操控权修改指令;
13.根据所述操控权修改指令对所述操控权状态数据进行更新,并接收下一操控权状态请求指令,根据下一操控权状态请求指令对当前操控权状态数据再次更新,直至将所有
的所述操控权状态请求指令处理完毕。
14.本发明解决上述技术问题的另一技术方案如下:一种多客户端数据处理系统,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,当所述处理器执行所述计算机程序时,实现如上所述的多客户端数据处理方法。
15.本发明解决上述技术问题的另一技术方案如下:一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被处理器执行时,实现如上所述的多客户端数据处理方法。
16.本发明的有益效果是:通过从任一客户端发送的操控权状态请求指令时,对储存的操控权状态数据的操控权分析生成操控权修改指令,根据操控权修改指令对操控权状态数据的更新后接收下一操控权状态请求指令,根据下一操控权状态请求指令对当前操控权状态数据再次更新,直至将所有的操控权状态请求指令处理完毕,解决了区分多个相同id的modbus设备的问题,避免了客户端持续主动去读状态寄存器的操作,实现了客户端中控制端的唯一性及可转移性,使得多客户端系统操作逻辑十分稳定、便捷与灵活,保证了系统的稳定运行,也让系统数据传输的稳定性以及可靠性大幅度提升。
附图说明
17.图1为本发明一实施例提供的多客户端数据处理系统的模块框图;
18.图2为本发明一实施例提供的寄存器的结构框图;
19.图3为本发明另一实施例提供的多客户端数据处理系统的模块框图;
20.图4为本发明另一实施例提供的多客户端数据处理系统的数据处理流程图;
21.图5为本发明一实施例提供的多客户端数据处理方法的流程示意图。
具体实施方式
22.以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
23.图1为本发明实施例提供的多客户端数据处理系统的模块框图。
24.如图1所示,一种多客户端数据处理系统,包括服务器处理装置和多个客户端,多个所述客户端均与所述服务器处理装置连接;
25.多个所述客户端均用于向所述服务器处理装置发送操控权状态请求指令;
26.所述服务器处理装置用于当接收到其中任一客户端发送的所述操控权状态请求指令时,将储存的操控权状态数据发送至与所述操控权状态请求指令对应的客户端中;
27.所述客户端用于对接收的所述操控权状态数据进行操控权的分析,根据分析结果生成操控权修改指令,并将所述操控权修改指令发送至所述服务器处理装置中;
28.所述服务器处理装置还用于根据所述操控权修改指令对所述操控权状态数据进行更新,并接收下一操控权状态请求指令,根据下一操控权状态请求指令对当前操控权状态数据再次更新,直至将所有的所述操控权状态请求指令处理完毕。
29.应理解地,所述服务器处理装置按照接收到所述操控权状态请求指令的先后顺序接收客户端发送的所述操控权状态请求指令。
30.应理解地,所述服务器处理装置将储存的操控权状态数据发送至与所述操控权状
态请求指令对应的客户端的同时,还会将所述储存的操控权状态数据发送至其他的客户端中。
31.上述实施例中,通过从任一客户端发送的操控权状态请求指令时,对储存的操控权状态数据的操控权分析生成操控权修改指令,根据操控权修改指令对操控权状态数据的更新后接收下一操控权状态请求指令,根据下一操控权状态请求指令对当前操控权状态数据再次更新,直至将所有的操控权状态请求指令处理完毕,解决了区分多个相同id的modbus设备的问题,避免了客户端持续主动去读状态寄存器的操作,实现了客户端中控制端的唯一性及可转移性,使得多客户端系统操作逻辑十分稳定、便捷与灵活,保证了系统的稳定运行,也让系统数据传输的稳定性以及可靠性大幅度提升。
32.可选地,作为本发明的一个实施例,所述服务器处理装置包括寄存器和多个服务器;每个所述客户端均通过ap无线访问接入点与多个所述服务器无线连接,多个所述服务器均通过rs485接口与所述寄存器连接;
33.所述服务器处理装置中,当接收到其中任一客户端发送的所述操控权状态请求指令时,将储存的操控权状态数据发送至与所述操控权状态请求指令对应的客户端中的过程包括:
34.多个所述服务器均用于接收其中任一客户端发送的所述操控权状态请求指令,并将所述操控权状态请求指令均发送至所述寄存器中;
35.所述寄存器用于接收所有的所述操控权状态请求指令,并将储存的操控权状态数据发送至与所述操控权状态请求指令对应的客户端中。
36.应理解地,所述服务器可以为工业路由器,设置为多线程模式,即允许多个所述客户端与其连接并通信。
37.应理解地,所述寄存器包括至少一个底层modbus设备。
38.应理解地,所述寄存器在将储存的操控权状态数据发送至与所述操控权状态请求指令对应的客户端的同时,还会将储存的操控权状态数据发送至其他客户端中。
39.应理解地,当需要多个所述客户端在线时,依次打开客户端上位机(即所述客户端),上位机(即所述客户端)与所述服务器建立连接后立刻读取底层modbus设备状态寄存器(即所述寄存器)中的系统操控权状态位(即所述操控权状态数据)。
40.具体地,在网络结构上,所述服务器设置为多线程模式,即允许多个所述客户端与其连接并通信。若存在多个id相同的modbus设备(即所述寄存器),将其分别接在不同的所述服务器上,通过不同所述服务器的不同i p地址来区分以及控制不同的modbus设备,且当各个所述服务器上所接modbus设备id相同时,客户端上位机(即所述客户端)仅使用一套modbus指令便可在不同线程内通过不同ip的所述服务器控制不同的modbus设备动作,解决了客户端上位机区分系统中多个相同id的modbus设备的问题并减少上位机软件开发工作量。
41.应理解地,系统使用底层任一modbus设备冗余的一个或多个连续的保持寄存器作为自建的系统状态寄存器,用于存放当前系统的状态字(即所述操控权状态数据),其中,选取的寄存器的个数取决于系统状态变量的个数,状态字最高位为系统操控权状态位(即所述操控权状态位),包括“已分配”和“未分配”两种状态,分别由“1”和“0”表示;状态字次高位为操控权请求状态位,包括“有请求”和“无请求”两种状态,分别由“1”和“0”表示;状态字
其余位均用来表示系统工作状态。系统操控权状态位(即所述操控权状态位)初始值为0,操控权请求状态位初始值为0。
42.上述实施例中,当接收到其中任一客户端发送的操控权状态请求指令时,将储存的操控权状态数据发送至与操控权状态请求指令对应的客户端中,解决了客户端区分系统中多个相同id的modbus设备的问题,避免了客户端持续主动去读状态寄存器的操作,减少了客户端软件开发工作量。
43.可选地,作为本发明的一个实施例,所述服务器处理装置中,根据所述操控权修改指令更新所述操控权状态数据的过程包括:
44.多个所述服务器均用于接收所述操控权修改指令,并将所述操控权修改指令发送至所述寄存器中;
45.所述寄存器用于接收所述操控权修改指令,并根据所述操控权修改指令更新所述操控权状态数据。
46.上述实施例中,通过操控权修改指令更新操控权状态数据,实现了客户端的唯一性及可转移性,使得多客户端系统操作逻辑十分稳定、便捷与灵活,保证了系统的稳定运行。
47.可选地,作为本发明的一个实施例,所述操控权状态数据包括操控权状态位和操控权请求状态位,所述客户端中,对接收的所述操控权状态数据进行操控权的分析,根据分析结果生成操控权修改指令的过程包括:
48.判断所述操控权状态位是否为操控权分配状态标识,若否,则生成操控权状态位修改指令,所述操控权状态位修改指令用于将所述操控权状态位修改为所述操控权分配状态标识,并将所述操控权状态位修改指令作为操控权修改指令;
49.若是,则当所述操控权请求状态位为操控权复位标识时,则生成操控权请求状态位修改指令,所述操控权请求状态位修改指令用于将所述操控权请求状态位修改为所述操控权分配状态标识,并将所述操控权请求状态位修改指令作为所述操控权修改指令。
50.应理解地,所述操控权分配状态标识为1,所述操控权复位标识为0。
51.应理解地,若所述操控权状态位为“0”(未分配状态),代表系统操控权尚未分配。首先与所述服务器建立连接的客户端将通过tcp/modbus协议将底层modbus设备状态寄存器(即所述寄存器)中的系统操控权状态位(即所述操控权状态位)改写为“1”(已分配状态),并且持续实时获取系统的各个工作状态位,将其封装为状态字写入底层modbus设备状态寄存器(即所述寄存器)。需要注意的是,在modbus协议中,上位机(即所述客户端)向modbus设备中某一保持寄存器(即所述寄存器)写入数据,modbus设备(即所述寄存器)的响应与上位机(即所述客户端)发送的指令相同。根据这一特性,第一个接入系统并获取操控权的所述客户端将持续实时获取系统状态并封装为状态字写入状态寄存器(即所述寄存器),而modbus设备(即所述寄存器)将写入的状态字通过与其连接的所述服务器和ap发送到所有与当前服务器连接的所述客户端。其余后续与所述服务器建立连接的所述客户端会接收并分析底层modbus设备(即所述寄存器)的响应,底层modbus设备状态寄存器(即所述寄存器)中的系统操控权状态位(即所述操控权状态位)为已分配状态,表示此时系统操控权已被某一所述客户端获取,其余所述客户端将关闭自身对系统控制信号的发送功能,即放弃对系统的操控权,仅实时接收并解析底层modbus设备状态寄存器(即所述寄存器)的响
应以在上位机(即所述客户端)界面更新系统状态。
52.具体地,当用户需要转移操控权时,由继任所述客户端将底层modbus设备状态寄存器(即所述寄存器)中的所述操控权请求状态位改写为“1”(即请求获取操控权)并开启自身对系统控制信号的发送功能,即恢复对系统的操控权。
53.上述实施例中,对接收的操控权状态数据进行操控权的分析生成操控权修改指令,实现了多客户端间操控权转移的功能,避免了客户端持续主动去读状态寄存器的操作,实现了客户端中控制端的唯一性及可转移性,使得多客户端系统操作逻辑十分稳定、便捷与灵活,保证了系统的稳定运行,也让系统数据传输的稳定性以及可靠性大幅度提升。
54.可选地,作为本发明的一个实施例,所述服务器处理装置中,对所述操控权状态数据进行更新之后,接收下一操控权状态请求指令之前,还包括:
55.将更新后的操控权请求状态位发送至与所述操控权状态请求指令对应客户端的前一客户端;
56.所述客户端用于接收所述更新后的操控权请求状态位,当所述更新后的操控权请求状态位为所述操控权分配状态标识时,则停止导入所述操控权状态请求指令,并生成操控权请求状态位复位指令,所述操控权请求状态位复位指令用于将所述更新后的操控权请求状态位修改为所述操控权复位标识,并将所述操控权请求状态位复位指令发送至所述服务器处理装置中;
57.所述服务器处理装置还用于根据所述操控权请求状态位复位指令对所述更新后的操控权请求状态位进行更新。
58.应理解地,原操控端(即与所述操控权状态请求指令对应客户端的前一客户端)接收到底层modbus设备状态寄存器(即所述寄存器)的响应,解析出底层modbus设备状态寄存器(即所述寄存器)中的所述操控权请求状态位为“1”时将关闭自身对系统控制信号的发送功能,即放弃对系统的操控权,并将所述操控权请求状态位复位为“0”,以便后续其余客户端发出请求获取操控权的信号,通过以上流程实现多客户端间的操控权转移的功能。
59.具体地,例如:与所述操控权状态请求指令对应客户端为客户端2,客户端2前一客户端为客户端1,则客户端1接收到所述寄存器发送的所述操控权请求状态位为“1”时,则客户端1关闭自身对系统控制信号的发送功能,即放弃对系统的操控权,并将所述操控权请求状态位复位为“0”。
60.上述实施例中,当更新后的操控权请求状态位为操控权分配状态标识时,则停止导入所述操控权状态请求指令,并生成用于将更新后的操控权请求状态位修改为操控权复位标识的操控权请求状态位复位指令,根据操控权请求状态位复位指令对更新后的操控权请求状态位进行更新,实现了多客户端间操控权转移的功能,避免了客户端持续主动去读状态寄存器的操作,实现了客户端中控制端的唯一性及可转移性,使得多客户端系统操作逻辑十分稳定、便捷与灵活,保证了系统的稳定运行,也让系统数据传输的稳定性以及可靠性大幅度提升。
61.可选地,作为本发明的一个实施例,每个所述客户端均通过tcp/ip协议与多个所述服务器进行数据传输。
62.应理解地,客户端上位机(即所述客户端)采用多线程的方式与所述服务器进行连接,即在不同线程内与所属同一网段但不同ip的所述服务器建立tcp连接,并且在不同线程
内与不同ip的所述服务器进行tcp通讯。
63.上述实施例中,每个客户端均通过tcp/ip协议与多个服务器进行数据传输,实现了客户端中控制端的唯一性及可转移性,使得多客户端系统操作逻辑十分稳定、便捷与灵活,保证了系统的稳定运行。
64.可选地,作为本发明的一个实施例,本发明通过ap与多个路由器(即所述服务器)进行无线连接组成局域网,ap连接多个所述客户端(包含控制端和监视端),所述客户端通过tcp/ip协议与路由器(即所述服务器)进行数据交互,各个路由器(即所述服务器)通过rs485接口与底层modbus设备(即所述寄存器)连接。
65.可选地,作为本发明的一个实施例,如图2所示,所述寄存器采用由高位到低位的标识方法,即bit[0]为最高位,表示系统的操控权分配状态,“1”代表系统操控权已分配,“0”代表系统操控权未分配,此位初始值为“0”,仅在系统初始化时为各个客户端提供系统操控权分配信息,当系统初始化完成,即系统初始操控权已被分配,此位被获取操控权的客户端改写为“1”,一直到系统关闭,此位将不会被改写。bit[1]为次高位,表示系统的操控权请求状态,“1”代表有客户端请求获取操控权,“0”代表无客户端请求获取操控权,当系统初始操控权已被分配后,若其余客户端想获取操控权,将此位改写为“1”并开启系统控制信号的发送功能,原操控端读取到该请求位为“1”时,将关闭自身对系统控制信号的发送功能,然后将此位复位为“0”,完成对系统操控权的转移。bit[3-...]为状态寄存器的其余位,表示系统各个属性的各个状态,若系统的一种属性有两种状态,可通过其中一位使用“1”和“0”表示,若一种属性有两种以上的状态,可通过其中连续的多位来表示。寄存器位数取决于系统状态变量的个数。
[0066]
可选地,作为本发明的另一个实施例,如图3所示,ap与多个路由器(即服务器)进行无线连接组成局域网,三个客户端与ap建立无线连接,客户端通过tcp/ip协议与三个服务器进行数据交互,各个服务器通过rs485接口与底层modbus设备连接。需要说明的是:上述三个客户端上位机软件均采用多线程的工作方式与三个服务器建立tcp连接,每一个线程负责与一个服务器的通讯任务;服务器设定在多线程工作模式,即允许多个客户端与其连接并通讯,其中,客户端上位机包含三个线程:线程一与服务器一建立连接,线程二与服务器二建立连接,线程三与服务器三建立连接。
[0067]
应理解地,底层modbus设备id相同,均为02。客户端上位机使用modbus控制指令与底层modbus设备通信,且在不同线程内与所属不同服务器下的modbus设备进行通信,解决区分相同id的modbus设备的问题。
[0068]
应理解地,选用底层modbus设备1的一个冗余寄存器作为系统状态寄存器。即唯一操控端在线程1内写状态寄存器来更新系统状态,多个监视端在线程1内接收并解析通过服务器1广播出来的modbus设备1中的系统状态寄存器来获取系统状态信息。
[0069]
可选地,作为本发明的另一个实施例,如图3和4所示,系统为初始状态时,假定客户端1首先与三个服务器建立了tcp连接,读在线程一内读取到底层modbus设备1中的系统状态寄存器的操控权状态位为“0”,即当前系统尚未分配操控权,客户端1会将操控权状态位(bit[0])改写为“1”并持续实时读取系统状态封装成状态字写入状态寄存器。客户端2与客户端3随后与服务器建立tcp连接,均在其线程一内接收并解析底层modbus设备1的响应,此时系统状态寄存器的操控权状态位(bit[0])为“1”,即已分配当前系统操控权,客户端2
与客户端3会禁止自身对系统控制信号的发送功能,即放弃对系统的操控权,仅实时接收并解析底层modbus设备状态寄存器的的响应以在上位机界面更新系统状态。若用户需要客户端2获取系统操控权,则使客户端2上位机在线程一内发出操控权请求命令,即将modbus设备1中的系统状态寄存器的操控权请求位(bit[1])写为“1”(请求获取操控权),并开启自身对系统控制信号的发送功能,即恢复对系统的操控权。客户端1接收并解析底层modbus设备状态寄存器的响应,此时操控权请求状态位(bit[1])为“1”,客户端1将关闭自身对系统控制信号的发送功能,即放弃对系统的操控权,并将操控权请求状态位(bit[1])复位为“0”以便其余客户端再次发出请求获取操控权的信号。通过以上流程完成对系统操控权的初始化分配操作和转移操作。
[0070]
图5为本发明实施例提供的多客户端数据处理方法的流程示意图。
[0071]
可选地,作为本发明的另一个实施例,如图5所示,一种多客户端数据处理方法,包括:
[0072]
从多个客户端中分别获取操控权状态请求指令;
[0073]
当接收到其中任一客户端发送的所述操控权状态请求指令时,将储存的操控权状态数据发送至与所述操控权状态请求指令对应的客户端中;
[0074]
对接收的所述操控权状态数据进行操控权的分析,根据分析结果生成操控权修改指令;
[0075]
根据所述操控权修改指令对所述操控权状态数据进行更新,并接收下一操控权状态请求指令,根据下一操控权状态请求指令对当前操控权状态数据再次更新,直至将所有的所述操控权状态请求指令处理完毕。
[0076]
可选地,作为本发明的一个实施例,所述当接收到其中任一客户端发送的所述操控权状态请求指令时,将储存的操控权状态数据发送至与所述操控权状态请求指令对应的客户端中的过程包括:
[0077]
接收其中任一客户端发送的所述操控权状态请求指令;
[0078]
将储存的操控权状态数据发送至与所述操控权状态请求指令对应的客户端中。
[0079]
可选地,本发明的另一个实施例提供一种多客户端数据处理系统,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,当所述处理器执行所述计算机程序时,实现如上所述的多客户端数据处理方法。该装置可为计算机等装置。
[0080]
可选地,本发明的另一个实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被处理器执行时,实现如上所述的多客户端数据处理方法。
[0081]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0082]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
[0083]
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络
单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
[0084]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0085]
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。用于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0086]
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1