具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例提供的PCB设备消息应答方法,可应用在如图1的应用环境中,其中,客户端与服务端进行通信。其中,客户端可以是各种PCB加工设备。服务端可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
远程控制设备(如设备自动化管理系统)和PCB设备(如激光钻孔设备、激光切割设备、激光成像设备等)之间的通信数据使用同一种信息模型。该信息模型用于描述PCB设备的基本数据结构和信息特征。
信息模型提供了一种设备与远端之间,或设备与设备之间约定的一种数据交互的模型格式。该信息模型可表现为远程控制设备(远端)构建设备、方法、数据项的树形结构模型,以加快PCB设备与远程控制设备之间的沟通效率。
具体地,用信息模型去描述PCB设备,是用信息结构体描述PCB设备,用协议将其数据化,远程控制设备在获取这些数据后,依据其信息结构体,快速全面还原设备的组成结构或控制功能,以方便远端快速实现设备监控及远程控制等功能。
信息模型用来描述不同设备的基本数据结构和信息特征,该模型使用基本的节点对设备进行设计建模,定义数据和设备结构基本关系。如图2所示,PCB钻孔设备的各个组件、各组件的元器件、传感器等组合布局与信息模型形成逻辑对应关系,不同的设备可以依据其设备特点设计不同的组件单元,以满足PCB设备加工过程中各工序段的设计需求。图2的示例中,PCB设备结构信息包括PCB板材、加工程序、传感器、设备基础信息、运动部件、当前参数集信息、控制接口等组件。组件可以是虚拟的功能模块、也可以是设备本身的结构。外部为具有圆形倒角的方框的表示为方法。方法是控制设备动作的实例表达。外部为椭圆框的表示为数据项。数据项可以表示为组件的参数。不管是PCB设备、数据项、方法还是组件,均有对应的地址,从而远程控制设备在调用相应的目标对象时,均可通过地址进行调用。
例如,定义PCB设备的地址是123,控制接口的地址为1234,加载参数集的地址为1344,加载参数集对应的参数地址是1600。远程控制设备需要调用加载参数集的参数时,可以通过类似访问目录的方式去找到对应的参数,例如通过以下地址:123/1234/1344/1600即可获取到加载参数集对应的参数地址。
在一实施例中,如图3所示,提供一种PCB设备消息应答方法,以该方法应用在图1中的客户端为例进行说明,包括如下步骤S10-S40。
S10、接收所述远程控制设备发送的带有功能标识的请求消息;所述请求消息包括基于信息模型设置的请求数据项;所述功能标识用于标记所述请求消息的类型;
S20、获取与所述功能标识对应的解析执行方法;
S30、根据所述解析执行方法,解析和/或执行所述请求数据项,生成解析执行结果和/或结果;
S40、根据所述解析结果和/或执行结果,生成用于响应所述请求消息的应答消息,并将所述应答消息发送给所述远程控制设备。
可理解的,远程控制设备可以是设备自动化管理系统,PCB设备可以是激光钻孔设备、激光切割设备、激光成像设备等。功能标识用于指示请求消息的消息类别和消息功能,如连接请求的功能标识“C1F1”,“C1”为消息类别(C)及其代号(1),“F1”为消息功能(F)及其代号(1)。
请求消息中包含了相应的请求数据项。不同功能请求,其请求数据项是不同的。例如,在连接请求中,包含了符合信息模型要求的连接参数数据项。在一些示例中,连接参数数据项包括超时时间、心跳周期、重发次数、鉴权参数等。可以根据实际需要设置连接参数数据项。连接参数数据项定义了连接参数和鉴权参数。
在远程控制设备和PCB设备均预存有多种解析执行方法,每种解析执行方法与一种功能标识对应。远程控制设备可以预存所有解析执行方法。PCB设备可以只存储有与自身功能对应的解析执行方法。在此处,解析执行方法包括解析方法和/或执行方法。对于部分功能标识,其对应的解析执行方法仅需要解析出请求数据项中的数据内容;对于另一部分功能标识,其对应的解析执行方法需要解析出请求数据项中包含的动作参数,然后再根据动作参数执行相应动作。
同样的,动词“解析执行”包括解析和/或执行。在解析执行请求数据项之后,可以生成相应的解析执行结果。解析执行结果包括解析结果和/或执行结果。解析结果可以是解析成功或解析失败,执行结果可以是执行成功或执行失败。
在获得解析执行结果之后,可以根据解析执行结果生成相应的应答消息,并将应答消息返回给远程控制设备。
步骤S10-S40中,接收所述远程控制设备发送的带有功能标识的请求消息;所述请求消息包括基于信息模型设置的请求数据项;所述功能标识用于标记所述请求消息的类型;在此处,通过使用符合信息模型要求的请求数据项,使得远程控制设备可以向PCB设备发起消息请求,大大提高了远程控制设备与PCB设备之间的交互效率,同时通过功能标识标记请求消息的类型。获取与所述功能标识对应的解析执行方法,在此处,解析执行方法与功能标识是一一对应的,因而,这样不同功能标识对应的解析执行方法是完全解耦的,有利于PCB设备的功能升级和拓展。根据所述解析执行方法,解析和/或执行所述请求数据项,生成解析结果和/或执行结果,在此处,PCB设备获得了请求消息所包含的消息内容和/或执行了请求消息所涉及的动作。根据所述解析结果和/或执行结果生成用于响应所述请求消息的应答消息,并将所述应答消息发送给所述远程控制设备,在此处,应答消息即为请求消息的响应结果,远程控制设备接收到应答消息之后,可以根据应答消息进行下一步操作,避免请求消息的重复发送。本实施例可以提高PCB设备消息应答的效率。
可选的,所述请求消息包括所述PCB设备的第一消息通道编号;
步骤S10,即所述接收所述远程控制设备发送的带有功能标识的请求消息之前,还包括:
S11、在所述远程控制设备生成所述第一消息通道编号;
S12、接收所述远程控制设备发送的带有所述第一消息通道编号的初始化请求;
S13、向所述远程控制设备发送用于响应所述初始化请求的初始化应答消息,所述初始化应答消息包括所述第一消息通道编号。
可理解地,在此处,可以由远程控制设备生成第一消息通道编号(Session ID),并向PCB设备发送初始化请求,通过初始化请求建立远程控制设备与PCB之间的初始连接。PCB设备在接收到初始化请求之后,可以对初始化请求进行校验,校验通过后可以向远程控制设备返回用于响应初始化请求的初始化应答消息。初始化应答消息包括第一消息通道编号。由此建立以消息通道编号为标识的连接通道。在后续的数据传送中,若远程控制设备与PCB之间保持连接,则传送的所有消息均携带有上述第一消息通道编号。
本实施例建立了远程控制设备与PCB之间以消息通道编号为标识的消息通道,提高了远程控制设备与PCB之间的通信效率。
可选的,步骤S13之后,即所述向所述远程控制设备发送用于响应所述初始化请求的初始化应答消息之后,还包括:
S14、若所述远程控制设备在第一预设周期内未接收到所述初始化应答消息,则所述远程控制设备根据预设重发参数向所述PCB设备重发所述初始化请求。
可理解地,第一预设周期(超时参数)可以根据实际需要进行设置,如可以是10s。当远程控制设备在第一预设周期内未接收到初始化应答消息,则根据预设重发参数向PCB设备重发初始化请求。其中,预设重发参数可以根据实际需要进行设置,如预设重发参数可以包括第一预设周期(超时参数)、心跳周期等。超时参数表示需要等待确认的时间,心跳周期表示消息发送的周期。
本实施例可以实现初始化请求的重发,提高连接成功率。
可选的,步骤S14之后,即所述远程控制设备根据预设重发参数向所述PCB设备重发所述初始化请求之后,还包括:
S15、若重发失败次数大于预设次数时,则所述远程控制设备注销所述第一消息通道编号,生成第二消息通道编号;
S16、所述远程控制设备向所述PCB设备发送包括所述第二消息通道编号的初始化请求。
可理解地,预设次数可以根据实际需要进行设置,如可以是15次。在重发失败次数大于预设次数时,则远程控制设备注销第一消息通道编号,生成第二消息通道编号,然后使用第二消息通道编码向PCB设备发送初始化请求。若PCB设备响应该初始化请求,则可以建立远程控制设备与PCB设备之间的连接。
本实施例可以实现消息通道编号的重置,有利于提高连接成功率。
可选的,所述请求消息以及所述应答消息均包括通过所述远程控制设备生成的消息序列编号。
可理解地,消息序列编号(Message ID)是每一个消息请求的序列标识,可以避免请求消息与应答消息对应关系混乱,每一个请求消息都应具有唯一的编号,应答消息使用与请求消息相同的序列编号。
本实施例可以确保请求消息的有序性。
可选的,所述请求消息包括消息生成时间;
步骤S10之后,即所述接收所述远程控制设备发送的带有功能标识的请求消息之后,还包括:
S101、获取当前时间,并计算所述当前时间与所述消息生成时间的差值;
S102、判断所述差值是否大于第二预设周期;
S103、若所述差值大于第二预设周期,则判定所述请求消息为异常消息。
可理解地,每一请求消息都有携带有消息生成时间。可以计算当前时间与消息生成时间的差值,判断该差值是否大于第二预设周期。若差值大于第二预设周期,说明接收到远程控制设备发送的请求消息的时间超时,PCB设备与远程控制设备之间的通信存在故障,因而,需要将请求消息标记为异常消息。第二预设周期可以根据实际需要进行设置,如可以是3s。
在一些示例中,在判定请求消息为异常消息之后,可以根据请求消息的异常类型生成相应的应答消息,反馈给远程控制设备。
本实施例中,通过差值的判断,保证PCB设备与远程控制设备之间的通信同步,防止超时请求消息的出错。
可选的,所述请求消息包括包头和包体,所述包头包括所述功能标识、消息通道编号、消息序列编号和消息生成时间;
步骤S30,即所述根据所述解析执行方法解析执行所述请求数据项,生成解析执行结果,包括:
S301、检查所述包头是否存在错漏;
S302、若所述包头存在错漏,则根据所述包头中存在错漏的信息生成异常结果。
可理解地,请求消息包括包头和包体两个部分。所有的消息具有相同的结构。其中,包头包括功能标识、消息通道编号、消息序列编号和消息生成时间。功能标识可以包括消息功能(Function)和消息类别(Category)。消息通道编号(Session ID)为远程控制设备与PCB设备建立连接后,分配给PCB设备的通讯实例编号,为消息通道的唯一标识符。消息序列编号(Message ID)是每一个消息请求的序列标识,可以避免请求消息与应答消息对应关系混乱,每一个请求消息都应具有唯一的编号,应答消息使用与请求消息相同的序列编号。消息生成时间为请求消息在远程控制设备上生成的时间,消息生成时间可以验证PCB设备与远程控制设备之间是否同步,防止因为PCB设备与远程控制设备之间的不同步对PCB设备的损坏。
包头存在错漏包括两种异常结果,一种是存在缺失,可能是通讯异常导致信息流不完整,此时可以抛弃当前异常消息请求,等待发送端重发,接收完整数据;另一中是包头完整,但存在错误,此时则需要将解析中出现的异常内容,生成错误代码,然后加入应答消息,将应答消息反馈给远程控制设备。
本实施例可以实现对消息的异常管理。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种PCB设备消息应答装置,该PCB设备消息应答装置与上述实施例中PCB设备消息应答方法一一对应。如图4所示,该PCB设备消息应答装置包括接收请求模块10、获取解析方法模块20、解析执行模块30和返回应答消息模块40。各功能模块详细说明如下:
接收请求模块10,用于接收远程控制设备发送的带有功能标识的请求消息;所述请求消息包括基于信息模型设置的请求数据项;所述功能标识用于标记所述请求消息的类型;
获取解析方法模块20,用于获取与所述功能标识对应的解析执行方法;
解析执行模块30,用于根据所述解析执行方法,解析和/或执行所述请求数据项,生成解析结果和/或执行结果;
返回应答消息模块40,用于根据所述解析结果和/或执行结果,生成用于响应所述请求消息的应答消息,并将所述应答消息发送给所述远程控制设备。
可选的,所述请求消息包括所述PCB设备的第一消息通道编号;
PCB设备消息应答装置还包括:
生成通道编号模块,用于在所述远程控制设备生成所述第一消息通道编号;
接收初始化请求模块,用于接收所述远程控制设备发送的带有所述第一消息通道编号的初始化请求;
发送初始化应答模块,用于向所述远程控制设备发送用于响应所述初始化请求的初始化应答消息,所述初始化应答消息包括所述第一消息通道编号。
可选的,PCB设备消息应答装置还包括:
重连模块,用于若所述远程控制设备在第一预设周期内未接收到所述初始化应答消息,则所述远程控制设备根据预设重发参数向所述PCB设备重发所述初始化请求。
可选的,PCB设备消息应答装置还包括:
通道编号重置模块,用于若重发失败次数大于预设次数时,则所述远程控制设备注销所述第一消息通道编号,生成第二消息通道编号;
重置重连模块,用于所述远程控制设备向所述PCB设备发送包括所述第二消息通道编号的初始化请求。
可选的,所述请求消息以及所述应答消息均包括通过所述远程控制设备生成的消息序列编号。
可选的,所述请求消息包括消息生成时间;
可选的,PCB设备消息应答装置还包括:
差值计算模块,用于获取当前时间,并计算所述当前时间与所述消息生成时间的差值;
差值判断模块,用于判断所述差值是否大于第二预设周期;
异常判断模块,用于若所述差值大于第二预设周期,则判定所述请求消息为异常消息。
可选的,所述请求消息包括包头和包体,所述包头包括所述功能标识、消息通道编号、消息序列编号和消息生成时间;
所述应答消息包括所述消息序列编号。
可选的,解析执行模块30,包括:
错漏检查单元,用于检查所述包头是否存在错漏;
异常结果单元,用于若所述包头存在错漏,则根据所述包头中存在错漏的信息,生成异常结果。
关于PCB设备消息应答装置的具体限定可以参见上文中对于PCB设备消息应答方法的限定,在此不再赘述。上述PCB设备消息应答装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括可读存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机可读指令。该内存储器为可读存储介质中的操作系统和计算机可读指令的运行提供环境。该计算机设备的网络接口用于与外部服务器通过网络连接通信。该计算机可读指令被处理器执行时以实现一种PCB设备消息应答方法。本实施例所提供的可读存储介质包括非易失性可读存储介质和易失性可读存储介质。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机可读指令,处理器执行计算机可读指令时实现以下步骤:
接收所述远程控制设备发送的带有功能标识的请求消息;所述请求消息包括基于信息模型设置的请求数据项;所述功能标识用于标记所述请求消息的类型;
获取与所述功能标识对应的解析执行方法;
根据所述解析执行方法,解析和/或执行所述请求数据项,生成解析结果和/或执行结果;
根据所述解析结果和/或执行结果,生成用于响应所述请求消息的应答消息,并将所述应答消息发送给所述远程控制设备。
在一个实施例中,提供了一个或多个存储有计算机可读指令的计算机可读存储介质,本实施例所提供的可读存储介质包括非易失性可读存储介质和易失性可读存储介质。可读存储介质上存储有计算机可读指令,计算机可读指令被一个或多个处理器执行时实现以下步骤:
接收所述远程控制设备发送的带有功能标识的请求消息;所述请求消息包括基于信息模型设置的请求数据项;所述功能标识用于标记所述请求消息的类型;
获取与所述功能标识对应的解析执行方法;
根据所述解析执行方法,解析和/或执行所述请求数据项,生成解析结果和/或执行结果;
根据所述解析结果和/或执行结果,生成用于响应所述请求消息的应答消息,并将所述应答消息发送给所述远程控制设备。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,所述的计算机可读指令可存储于一非易失性可读取存储介质或易失性可读存储介质中,该计算机可读指令在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。