一种客户端和工控设备及其控制方法、装置和存储介质与流程

文档序号:31632625发布日期:2022-09-24 02:22阅读:51来源:国知局
一种客户端和工控设备及其控制方法、装置和存储介质与流程

1.本发明涉及嵌入式工控设备技术领域,具体而言,涉及一种客户端和工控设备及其控制方法、装置和存储介质。


背景技术:

2.windows ce(简称:wince)是微软公司专门针对嵌入式产品推出的工控操作系统(简称:工控系统),由于wince工控系统稳定性高、维护量少的优点,越来越多的设备厂商在无过多智能化需求的产品中纷纷采用工控系统。目前,该系统广泛应用于互联网协议(ip)机顶盒、全球定位系统(gps)、无线投影仪,以及各种工业自动化、消费电子以及医疗设备等。
3.近年来,市场竞争激烈,成本意识成为各厂商首要考虑的问题,而由于工控系统的维护量小,与工控系统交互的触控液晶显示屏首当其冲成为减配的目标。但维护量小不代表没有维护量,首次安装、参数设定、故障排查等日常工作内容还是需要与工控系统进行交互,因此与工控系统交互的触控液晶显示屏又成为了不可缺少的部件。
4.目前常用的方法是使用上位机操控工控系统的方案,由于需要在维护者所使用的电脑上预装与工控系统应用软件版本相对应配套的上位机程序来进行操作,经常会因为错设、漏设、版本不同、系统兼容性、未预装匹配的上位机等问题而导致工作无法开展,给维护人员造成极其大的工作困扰和时间的浪费。
5.有鉴于此,申请人在研究了现有的技术后特提出本技术。


技术实现要素:

6.本发明提供了一种客户端和工控设备及其控制方法、装置和存储介质,以改善上述技术问题。
7.第一方面、
8.本发明实施例提供了一种工控设备的控制方法,其包含步骤s1至步骤s6。
9.s1、基于套接字服务读取客户端数据。
10.s2、解析客户端数据,获取http包头。
11.s3、解析http包头,获取请求类型。
12.s4、当请求类型为get时,根据客户端数据,获取并发送工控设备的运维数据。其中,运维数据用以发送给客户端。
13.s5、当请求类型为post时,获取客户端数据中的参数,以根据参数对工控设备进行操作,并获取以及发送操作结果。其中,操作结果用于发送给客户端。
14.第二方面、
15.本发明实施例提供了一种客户端,其包含:
16.第一通讯模块,配置为能够基于套接字服务和工控设备创建连接,以打开工控设备内置的html页面;
17.操作数据生成模块,配置为能够根据维护人员在所述html页面的操作,通过tcp协议生成客户端数据;其中,所述客户端数据的请求类型为get或post;
18.第二通讯模块,配置为能够将发送所述客户端数据至工控设备,并接收所述工控设备返回的数据;其中,所述客户端数据用以发送给工控设备,以使所述工控设备解析所述客户端数据,获取http包头;以及,解析所述http包头,获取请求类型;以及,当所述请求类型为get时,根据所述客户端数据,获取并发送工控设备的运维数据;当所述请求类型为post时,获取所述客户端数据中的参数,以根据所述参数对工控设备进行操作,并获取以及发送操作结果。
19.第三方面、
20.本发明实施例提供了一种工控设备的控制装置,其包含:
21.数据读取模块,用于基于套接字服务读取客户端数据。
22.数据解析模块,用于解析客户端数据,获取http包头。
23.包头解析模块,用于解析http包头,获取请求类型。
24.第一处理模块,用于当请求类型为get时,根据客户端数据,获取并发送工控设备的运维数据。其中,运维数据用以发送给客户端。
25.第二处理模块,用于当请求类型为post时,获取客户端数据中的参数,以根据参数对工控设备进行操作,并获取以及发送操作结果。其中,操作结果用于发送给客户端。
26.第四方面、
27.本发明实施例提供了一种工控设备,其包括处理器、存储器,以及存储在存储器内的计算机程序。计算机程序能够被处理器执行,以实现如第一方面任意一段所说的控制方法。
28.第五方面、
29.本发明实施例提供了一种计算机可读存储介质。计算机可读存储介质包括存储的计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行如第一方面任意一段所说的工控设备的控制方法。
30.通过采用上述技术方案,本发明可以取得以下技术效果:
31.通过本发明实施例的控制方法,可以在工控设备没安装屏幕、键盘、鼠标,以及上位机的情况下,对工控设备进行工控,不仅避免了资源的浪费,而且控制更加方便。
32.为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
33.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
34.图1是本发明第一实施例提供的控制方法的流程示意图。
35.图2是客户端和工控设备之间交互的结构示意图。
36.图3是通过基于套接字服务建立连接的流程示意图。
37.图4是本发明第二实施例提供的控制装置的结构示意图。
具体实施方式
38.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
39.为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
40.在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
41.应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
42.取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
43.实施例中提及的“第一\第二”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序。应该理解“第一\第二”区分的对象在适当情况下可以互换,以使这里描述的实施例能够以除了在这里图示或描述的那些内容以外的顺序实施。
44.下面结合附图与具体实施方式对本发明作进一步详细描述:
45.实施例一:
46.请参阅图1至图3,本发明第一实施例提供一种工控设备的控制方法,其可由工控设备来执行。特别地,由工控设备中的一个或多个处理器来执行,以实现步骤s1至步骤s6。
47.所述工控设备采用基于tcp服务程序的超轻量型服务架构。工控设备与客户端只需通过http协议中的get与post方法即可实现交互,既能满足工控设备的运维工作又减轻了系统的陈杂性,提升工控设备的运行效率和稳定性。
48.所述超轻量型服务架构的设计流程如下:首先,编写wince工控设备的tcp服务程序。然后,基于tcp协议自行构造一套精简的http协议,只保留get与post方法。最后,搭建应用逻辑层,用于分析浏览器请求包,针对get与post的方法来实现不同的运维结果。
49.s1、基于套接字服务读取客户端数据。
50.具体的,由于wince的实时性以及消息循环对后续模块化使用不方便,并考虑到工控机所面对的客户端数量通常不多。因此,本发明实施例使用同步socket(套接字)作为整个通讯服务的模式,并为每个client socket(客户端套接字)建立一条独立的线程来管理client(客户端)。
51.如图3所示,在上述实施例的基础上,本发明的一个可选地实施例中,步骤s1包括
步骤s11至步骤s14。
52.s11、基于套接字服务监听连接请求。其中,套接字服务的模式为tcp模式,接受ip为全部。
53.s12、当监听到连接请求时,判断连接请求的请求套接字是否正确。
54.s13、当判断到请求套接字为正确时,根据请求套接字创建一条处理线程接收客户端数据,并判断客户端数据的数据长度是否为0。
55.s14、当判断到数据长度为0时,断开连接并退出处理线程,否则,读取客户端数据。
56.具体的,使用同步socket(套接字)作为整个通讯服务的模式,需要为工控设备的服务架构封装socket server(套接字服务)。
57.在本实施例中,封装socket server具体包括步骤b1至步骤b4。
58.b1:加载套接字库;
59.b2:创建、绑定、配置socket,并监听端口;
60.//创建socket并设置为tcp模式
61.//判断是否创建socket成功,不成功则报错退出。
62.//设置接受ip为全部
63.//设置监听端口
64.//将监听端口、接受ip等参数绑定到先前创建的socket
65.//绑定失败则退出并报错
66.开始监听socket
67.//监听失败则报错并退出
68.b3:线程监听等待连接请求
69.//阻塞线程,直到接收到连接请求
70.//判断请求socket是否正确
71.//创建一条处理线程,并将请求的socket赋予到处理线程中
72.//失败则退出
73.b4:线程处理socket收发信息;
74.//阻塞读取客户端数据
75.//判断读取到的数据长度
76.//如果读取到的数据大于0
77.//回调给逻辑层处理
78.//读取到的数据长度为0
79.//断开连接
80.//退出线程
81.s2、解析客户端数据,获取http包头。
82.s3、解析http包头,获取请求类型。
83.具体的,步骤s3具体为:解析http包头,获取内容长度和请求类型。其中,解析http包头获取内容长度和请求类型为常规技术手段,本发明对此不再赘述。
84.在本实施例中,对工控设备的服务架构进行了简化,只保留了cet和post两种类型的请求。其中,get类型表示请求用于获取或查看工控设备某运行数据,post类型请求用于
执行运维操作。
85.s4、当请求类型为get时,根据客户端数据,获取并发送工控设备的运维数据。其中,运维数据用以发送给客户端。优选地,步骤s4包括s41至步骤s43。
86.s41、当请求类型为get时,根据客户端数据,解析得到get参数。
87.s42、根据get参数匹配对应的内置html模板,以及获取对应的运维数据。
88.s43、将运维数据套用进内置html模板进行http封装,得到并发送get封装数据。其中,get封装数据用以发送给客户端。
89.具体的,get类型表示:获取或查看工控设备某运行数据。当接收到get类型的请求时,工控设备具体用于:根据解析出get所带的参数来匹配对应的内置html模板,并向工控系统获取所需的运维数据,将数据套用进模板后进行http封装并返回给运维浏览器,运维人员在浏览器中查看运维数据。
90.s5、当请求类型为post时,获取客户端数据中的参数,以根据参数对工控设备进行操作,并获取以及发送操作结果。其中,操作结果用于发送给客户端。优选地,步骤s5包括s51至步骤s54。
91.s51、当请求类型为post时,根据内容长度从客户端数据中获取数据包。
92.s52、解析数据包,获取post参数,以根据post参数对工控设备进行操作。
93.s53、获取工控设备的操作结果。
94.s54、将操作结果进行http封装,得到并发送post封装数据。其中,post封装数据用以发送给客户端。
95.具体的,post类型表示:执行运维操作。当接收到post类型的请求时,工控设备具体用于:根据解析出的post所带的参数来对设备进行操作(包括且不限于关机、重启、修改设备参数、开关硬件等),并将操作结果通过http封装后返回给运维浏览器,运维人员在浏览器中可看到运维操作结果。
96.在上述实施例的基础上,本发明的一个可选地实施例中,步骤s3之后还包括步骤s6。
97.s6、当请求类型不是get或post时,忽略客户端数据。
98.具体的,本实施例提供的控制方法,通过get类型和post类型的请求就能够满足工控设备的运维工作。因此,忽略掉除了get类型和post类型以外的所有请求,能够保证控制方法的效率和可靠性。
99.可以理解的,为了实现步骤s2至步骤s6,需要为工控设备的服务架构封装http协议。在本实施例中,封装http协议具体为:
100.工控设备的网页服务采用的是http协议,是基于tcp的一种网络传输协议。具体的,通过解析数据包的0d0a0d0a来获取http包头,解析包头后获取content-length(内容长度)、content-type(请求类型)等信息。
101.如果content-type为get类型,则解析相应地址并返回对应的html文件。
102.如果content-type为post类型,则根据包长截取出数据包,并将数据包传给应用层以响应客户的操控和配置。
103.忽略除content-type为get或post外的其它所有协议,以保证效率及可靠性。
104.通过本发明实施例的控制方法,无需再工控设备上安装显示器等交互配件,使低
成本、小尺寸、高稳定性设备成为可能;也无需预装服务程序、无需附带配套上位机,减轻运维人员的工作负担;此外,通过网络通讯交互,不外留无用接口,防水防虫,使工控设备更加轻巧、更加可靠。并且,可实现远程运维,大大降低了运维成本。
105.实施例二、
106.请参阅图2,本发明实施例提供了一种客户端,其包含:
107.第一通讯模块,配置为能够基于套接字服务和工控设备创建连接,以打开工控设备内置的html页面;
108.操作数据生成模块,配置为能够根据维护人员在所述html页面的操作,通过tcp协议生成客户端数据;其中,所述客户端数据的请求类型为get或post;
109.第二通讯模块,配置为能够将发送所述客户端数据至工控设备,并接收所述工控设备返回的数据;其中,所述客户端数据用以发送给工控设备,以使所述工控设备解析所述客户端数据,获取http包头;以及,解析所述http包头,获取请求类型;以及,当所述请求类型为get时,根据所述客户端数据,获取并发送工控设备的运维数据;当所述请求类型为post时,获取所述客户端数据中的参数,以根据所述参数对工控设备进行操作,并获取以及发送操作结果。
110.如图2所示,在本发明实施例中,客户端和工控设备的具体交互流程为:
111.1、运维人员通过随时携带的手机或笔记本电脑,接入网络后输入工控机的地址(例如http://192.168.1.8),将返回服务程序内置的html页面,维护人员可在页面中设置、修改、提交相应的操作。
112.2、浏览器将运维人员的操作通过tcp发包给工控设备,设备中的服务程序收到数据包后采用自研的超轻量型http架构对数据包进行解析,并获取操作功能参数(get或post)。
113.3、根据操作功能参数执行操作:
114.get(获取或查看工控设备某运行数据):
115.根据解析出get所带的参数来匹配对应的内置html模板,并向工控系统获取所需的运维数据,将数据套用进模板后进行http封装并返回给运维浏览器,运维人员在浏览器中查看运维数据。
116.post(执行运维操作):
117.根据解析出的post所带的参数来对设备进行操作(包括且不限于关机、重启、修改设备参数、开关硬件等),并将操作结果通过http封装后返回给运维浏览器,运维人员在浏览器中可看到运维操作结果。
118.通过本发明实施例的控制方法,无需再工控设备上安装显示器等交互配件,使低成本、小尺寸、高稳定性设备成为可能;也无需预装服务程序、无需附带配套上位机,减轻运维人员的工作负担;此外,通过网络通讯交互,不外留无用接口,防水防虫,使工控设备更加轻巧、更加可靠。并且,可实现远程运维,大大降低了运维成本。
119.实施例三、
120.本发明实施例提供了一种工控设备的控制装置,其包含:
121.数据读取模块1,用于基于套接字服务读取客户端数据。
122.数据解析模块2,用于解析客户端数据,获取http包头。
123.包头解析模块3,用于解析http包头,获取请求类型。
124.判断模块4,用于判断请求类型的类型。
125.第一处理模块5,用于当请求类型为get时,根据客户端数据,获取并发送工控设备的运维数据。其中,运维数据用以发送给客户端。
126.第二处理模块6,用于当请求类型为post时,获取客户端数据中的参数,以根据参数对工控设备进行操作,并获取以及发送操作结果。其中,操作结果用于发送给客户端。
127.在一个可选的实施例中,数据读取模块1包括:
128.监听单元,用于基于套接字服务监听连接请求。其中,套接字服务的模式为tcp模式,接受ip为全部。
129.套接字判断单元,用于当监听到连接请求时,判断连接请求的请求套接字是否正确。
130.线程创建单元,用于当判断到请求套接字为正确时,根据请求套接字创建一条处理线程接收客户端数据,并判断客户端数据的数据长度是否为0。
131.数据读取单元,用于当判断到数据长度为0时,断开连接并退出处理线程,否则,读取客户端数据。
132.在一个可选的实施例中,第一处理模块5包括:
133.get参数解析单元,用于当请求类型为get时,根据客户端数据,解析得到get参数。
134.运维数据获取单元,用于根据get参数匹配对应的内置html模板,以及获取对应的运维数据。
135.运维数据发送单元,用于将运维数据套用进内置html模板进行http封装,得到并发送get封装数据。其中,get封装数据用以发送给客户端。
136.在一个可选的实施例中,包头解析模块3具体用于:
137.解析http包头,获取内容长度和请求类型。
138.在一个可选的实施例中,第二处理模块6包括:
139.数据包获取单元,用于当请求类型为post时,根据内容长度从客户端数据中获取数据包。
140.post参数获取单元,用于解析数据包,获取post参数,以根据post参数对工控设备进行操作。
141.操作结果获取单元,用于获取工控设备的操作结果。
142.操作结果发送单元,用于将操作结果进行http封装,得到并发送post封装数据。其中,post封装数据用以发送给客户端。
143.在一个可选的实施例中,工控设备的控制装置还包括:
144.第三处理模块,用于当请求类型不是get或post时,忽略客户端数据。
145.实施例四、
146.本发明实施例提供了一种工控设备,其包括处理器、存储器,以及存储在存储器内的计算机程序。计算机程序能够被处理器执行,以实现如实施例一任意一段所说的控制方法。
147.实施例五、
148.本发明实施例提供了一种计算机可读存储介质。计算机可读存储介质包括存储的
计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行如实施例一任意一段所说的工控设备的控制方法。
149.在本发明实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
150.另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
151.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
152.以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1