嵌入式PLC的编译方法与嵌入式系统转让专利

申请号 : CN201710488033.9

文献号 : CN107179740B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 邬惠峰严义陈佰平

申请人 : 杭州电子科技大学

摘要 :

本发明提供了一种嵌入式PLC的编译方法与嵌入式系统,包括:获取第一请求,所述第一请求包含设备信息与端口信息,其中,所述设备信息为连接所述嵌入式PLC的设备对应的信息,所述端口信息为所述嵌入式PLC连接所述设备的端口对应的信息;根据所述设备信息在预存的协议库中确定对应的协议;根据所述对应的协议,编译得到所述设备和所述端口对应的可执行文件;以使得所述嵌入式PLC能够根据所述可执行文件,通过所述端口执行所述设备对应的功能。该方案下,嵌入式PLC可以少存协议,比如只存必须的通信协议,减少了嵌入式PLC所需存储的数据,节约了嵌入式PLC的存储空间。

权利要求 :

1.一种嵌入式PLC的编译方法,其特征在于,包括:获取第一请求,所述第一请求包含设备信息与端口信息,其中,所述设备信息为连接所述嵌入式PLC的设备对应的信息,所述端口信息为所述嵌入式PLC连接所述设备的端口对应的信息;

根据所述设备信息在预存的协议库中确定对应的协议;

根据所述对应的协议,编译得到所述设备和所述端口对应的可执行文件;以使得所述嵌入式PLC能够根据所述可执行文件,通过所述端口执行针对所述设备的预设功能。

2.根据权利要求1所述的方法,其特征在于,所述获取第一请求,包括:接收与所述嵌入式PLC通讯的终端发送的所述第一请求。

3.根据权利要求1所述的方法,其特征在于,所述获取第一请求,包括:确认所述协议库中所述设备信息对应的协议已发生变化;

确认所述嵌入式PLC已连接所述设备;

根据所述设备以及所述端口,生成所述第一请求。

4.根据权利要求3所述的方法,其特征在于,所述确认所述嵌入式PLC已连接所述设备之前,还包括:向所述嵌入式PLC查询获得所述嵌入式PLC接入设备的情况,所述嵌入式PLC接入设备的情况用于确认所述嵌入式PLC已连接所述设备。

5.根据权利要求1至4任一项所述的方法,其特征在于,所述获取第一请求之后,还包括:将所述第一请求存入队列;

所述根据所述设备信息在预存的协议库中确定对应的协议,包括:针对所述队列中列在最前的第一请求,根据所述列在最前的第一请求中的设备信息在预存的协议库中确定对应的协议。

6.根据权利要求2所述的方法,其特征在于,所述根据所述对应的协议,编译得到所述设备和所述端口对应的可执行文件之后,还包括:存储所述可执行文件,并获得指向所述可执行文件的存储路径信息;

向所述终端发送所述存储路径信息;

接收所述终端发送的下载请求;

向所述终端发送所述可执行文件,以使得所述嵌入式PLC能够自所述终端获得所述可执行文件。

7.根据权利要求1至4任一项所述的方法,其特征在于,所述第一请求还包含所述嵌入式PLC的地址信息;

所述根据所述对应的协议,编译得到所述设备和端口对应的可执行文件之后,还包括:根据所述地址信息向所述嵌入式PLC发送所述可执行文件,所述地址信息为所述嵌入式PLC接入第一网络时分配的。

8.根据权利要求1至4任一项所述的方法,其特征在于,所述第一请求还包含所述嵌入式PLC的第一身份信息;

所述根据所述对应的协议,编译得到所述设备和端口对应的可执行文件之后,还包括:接收所述嵌入式PLC发送的第二身份信息;

验证所述第一身份信息与第二身份信息匹配;

向所述嵌入式PLC或所述嵌入式PLC连接的终端发送所述可执行文件。

9.一种嵌入式系统,其特征在于,包括:服务器、终端和嵌入式PLC;所述终端分别与所述嵌入式PLC与服务器通讯;

所述终端,用于获得设备信息与端口信息,根据所述设备信息与端口信息生成第一请求,并向所述服务器发送所述第一请求;以及:接收所述服务器发送的可执行文件,并向所述嵌入式PLC发送所述可执行文件;

其中,所述设备信息为连接所述嵌入式PLC的设备对应的信息,所述端口信息为所述嵌入式PLC连接所述设备的端口对应的信息;

所述服务器,用于获取所述第一请求,根据所述设备信息在预存的协议库中确定对应的协议;并根据所述对应的协议,编译得到所述设备和端口对应的可执行文件;以及:向所述终端发送所述可执行文件;

所述嵌入式PLC,用于接收所述可执行文件,并根据所述可执行文件执行链接到所述设备,以使得所述嵌入式PLC能够通过所述端口执行针对所述设备的预设功能。

10.一种嵌入式系统,其特征在于,包括:服务器和嵌入式PLC;

所述服务器,用于确认协议库中设备信息对应的协议已发生变化,并确认所述嵌入式PLC已连接设备,根据设备以及所述嵌入式PLC连接所述设备的端口生成第一请求;其中,所述第一请求包含所述设备信息与端口信息,所述设备信息为连接所述嵌入式PLC的设备对应的信息,所述端口信息为所述嵌入式PLC连接所述设备的端口对应的信息;以及:根据所述设备信息在预存的协议库中确定对应的协议;根据所述对应的协议,编译得到所述设备和端口对应的可执行文件,并向所述嵌入式PLC发送所述可执行文件;

所述嵌入式PLC,用于接收所述可执行文件,并根据所述可执行文件,链接到所述设备,以使得所述嵌入式PLC能够通过所述端口执行针对所述设备的预设功能。

说明书 :

嵌入式PLC的编译方法与嵌入式系统

技术领域

[0001] 本发明涉及工业控制领域,尤其涉及一种嵌入式PLC的编译方法与嵌入式系统。

背景技术

[0002] PLC(Programmable Logic Controller)指的是可编程逻辑控制器。嵌入式PLC是对专用控制器采用PLC图形化的开发手段,充分利用了现有嵌入式处理器的强大处理功能,按需定制各类专用控制器,并采用图形化开发平台(LD、SFC、FBD等)对专用控制器进行软件开发。
[0003] 现有的相关技术中,当嵌入式PLC需要接入各类设备时,事先将所有设备对应的所有的协议均存放在嵌入式PLC中,在使用时根据实际接入的设备情况进行配置。
[0004] 当接入的设备的种类和型号多时,需要数量巨大的协议,而实际使用的可能只是其中的一部分。该方案会造成嵌入式PLC存储的数据的冗余量过大。

发明内容

[0005] 本发明提供一种嵌入式PLC的编译方法与嵌入式系统,以解决嵌入式PLC存储的数据的冗余量过大的问题。
[0006] 根据本发明的第一方面,提供了一种嵌入式PLC的编译方法,包括:
[0007] 获取第一请求,所述第一请求包含设备信息与端口信息,其中,所述设备信息为连接所述嵌入式PLC的设备对应的信息,所述端口信息为所述嵌入式PLC连接所述设备的端口对应的信息;
[0008] 根据所述设备信息在预存的协议库中确定对应的协议;
[0009] 根据所述对应的协议,编译得到所述设备和端口对应的可执行文件;以使得所述嵌入式PLC能够根据所述可执行文件,通过所述端口执行针对所述设备的预设功能[0010] 可选的,所述获取第一请求,包括:
[0011] 接收与所述嵌入式PLC通讯的终端发送的所述第一请求。
[0012] 可选的,所述获取第一请求,包括:
[0013] 确认所述协议库中所述设备信息对应的协议已发生变化;
[0014] 确认所述嵌入式PLC已连接所述设备;
[0015] 根据所述设备以及所述端口,生成所述第一请求。
[0016] 可选的,所述确认所述嵌入式PLC已连接所述设备之前,还包括:
[0017] 向所述嵌入式PLC查询获得所述嵌入式PLC接入设备的情况。
[0018] 可选的,所述获取第一请求之后,还包括:
[0019] 将所述第一请求存入队列;
[0020] 所述根据所述设备信息在预存的协议库中确定对应的协议,包括:
[0021] 针对所述队列中列在最前的第一请求,根据所述列在最前的第一请求中的设备信息在预存的协议库中确定对应的协议。
[0022] 可选的,所述根据所述对应的协议,编译得到所述设备和所述端口对应的可执行文件之后,还包括:
[0023] 存储所述可执行文件,并获得指向所述可执行文件的存储路径信息;
[0024] 向所述终端发送所述存储路径信息;
[0025] 接收所述终端发送的下载请求;
[0026] 向所述终端发送所述可执行文件,以使得所述嵌入式PLC能够自所述终端获得所述可执行文件。
[0027] 可选的,所述第一请求还包含所述嵌入式PLC的地址信息;
[0028] 所述根据所述对应的协议,编译得到所述设备和端口对应的可执行文件之后,包括:
[0029] 根据所述地址信息向所述嵌入式PLC发送所述可执行文件,所述地址信息为所述嵌入式PLC接入第一网络时分配的。
[0030] 可选的,所述第一请求还包含所述嵌入式PLC的第一身份信息;
[0031] 所述根据所述对应的协议,编译得到所述设备和端口对应的可执行文件之后,还包括:
[0032] 接收所述嵌入式PLC发送的第二身份信息;
[0033] 验证所述第一身份信息与第二身份信息匹配;
[0034] 向所述嵌入式PLC或所述嵌入式PLC连接的终端发送所述可执行文件。
[0035] 根据本发明的第二方面,提供了一种嵌入式系统,包括:服务器、终端和嵌入式PLC;所述终端分别与所述嵌入式PLC与服务器通讯;
[0036] 所述终端,用于获得设备信息与端口信息,根据所述设备信息与端口信息生成第一请求,并向所述服务器发送所述第一请求;以及:接收所述服务器发送的可执行文件,并向所述嵌入式PLC发送所述可执行文件;
[0037] 其中,所述设备信息为连接所述嵌入式PLC的设备对应的信息,所述端口信息为所述嵌入式PLC连接所述设备的端口对应的信息;
[0038] 所述服务器,用于获取所述第一请求,根据所述设备信息在预存的协议库中确定对应的协议;并根据所述对应的协议,编译得到所述设备和端口对应的可执行文件;以及:向所述终端发送所述可执行文件;
[0039] 所述嵌入式PLC,用于接收所述可执行文件,并根据所述可执行文件,链接到所述设备,以使得所述嵌入式PLC能够通过所述端口执行针对所述设备的预设功能。
[0040] 可选的,所述服务器还用于接收与所述嵌入式PLC通讯的终端发送的所述第一请求。
[0041] 可选的,所述服务器还用于获取第一请求之后,将所述第一请求存入队列。
[0042] 可选的,所述服务器具体用于针对所述队列中列在最前的第一请求,根据所述列在最前的第一请求中的设备信息在预存的协议库中确定对应的协议。
[0043] 可选的,所述服务器还用于存储所述可执行文件,并获得指向所述可执行文件的存储路径信息;向所述终端发送所述存储路径信息;接收所述终端发送的下载请求;向所述终端发送所述可执行文件,以使得所述嵌入式PLC能够自所述终端获得所述可执行文件。
[0044] 根据本发明的第三方面,提供了一种嵌入式系统,包括:服务器和嵌入式PLC;
[0045] 所述服务器,用于确认所述协议库中设备信息对应的协议已发生变化,并确认所述嵌入式PLC已连接设备,生成第一请求;其中,所述第一请求包含所述设备信息与端口信息,所述设备信息为连接所述嵌入式PLC的设备对应的信息,所述端口信息为所述嵌入式PLC连接所述设备的端口对应的信息;以及:根据所述设备信息在预存的协议库中确定对应的协议;根据所述对应的协议,编译得到所述设备和端口对应的可执行文件,并向所述嵌入式PLC发送所述可执行文件;
[0046] 所述嵌入式PLC,用于接收所述可执行文件,并根据所述可执行文件,链接到所述设备,以使得所述嵌入式PLC能够通过所述端口执行针对所述设备的预设功能。
[0047] 所述服务器具体用于确认所述协议库中所述设备信息对应的协议已发生变化;确认所述嵌入式PLC已连接所述设备;根据所述设备以及所述端口,生成所述第一请求。
[0048] 可选的,所述服务器还用于通过所述嵌入式PLC接入的第一网络查询所述嵌入式PLC接入设备的情况。
[0049] 可选的,所述服务器还用于将所述第一请求存入队列。
[0050] 可选的,所述服务器具体用于针对所述队列中列在最前的第一请求,根据所述列在最前的第一请求中的设备信息在预存的协议库中确定对应的协议。
[0051] 可选的,所述第一请求还包含所述嵌入式PLC的地址信息;
[0052] 所述服务器还用于根据所述地址信息向所述嵌入式PLC发送所述可执行文件,所述地址信息为所述嵌入式PLC接入第一网络时分配的。
[0053] 可选的,所述第一请求还包含所述嵌入式PLC的第一身份信息;
[0054] 所述服务器还用于接收所述嵌入式PLC发送的第二身份信息;验证所述第一身份信息与第二身份信息匹配;向所述嵌入式PLC或所述嵌入式PLC连接的终端发送所述可执行文件。
[0055] 本发明提供的嵌入式PLC的编译方法与嵌入式系统,通过所述服务器获取所述第一请求,以及服务器根据所述设备信息在预存的协议库中确定对应的协议;并根据所述对应的协议,编译得到所述设备和端口对应的可执行文件;实现了协议的服务器存储,并在服务器端编译得到可执行文件,该方案下,嵌入式PLC可以少存协议,比如只存必须的通信协议,减少了嵌入式PLC所需存储的数据,节约了嵌入式PLC的存储空间。

附图说明

[0056] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0057] 图1是本发明一嵌入式PLC的编译方法的流程示意图一;
[0058] 图2是本发明一嵌入式PLC的编译方法的流程示意图二;
[0059] 图3是本发明一嵌入式PLC的编译方法的流程示意图三;
[0060] 图4是本发明一嵌入式系统的结构示意图一;
[0061] 图5是本发明一嵌入式系统的结构示意图二;
[0062] 图6是本发明一嵌入式系统的结构示意图三;
[0063] 图7是本发明一嵌入式系统的结构示意图四;
[0064] 图8是本发明一嵌入式系统的配置设备和端口的界面示意图;
[0065] 图9是本发明一服务器的结构示意图一;
[0066] 图10是本发明一服务器的结构示意图二。
[0067] 附图标记说明:
[0068] 11-嵌入式PLC;12-设备;13-服务器;14-设备;
[0069] 131-监听程序;132-第一队列;133-协议库;134-编译程序;135-发送程序;
[0070] 21-嵌入式PLC;22-服务器;23-设备;
[0071] 221-轮询程序;222-第一队列;223-协议库;224-编译程序;
[0072] 31-获取模块;32-排队模块;33-第一编译模块;34-第二编译模块;35-存储模块;36-第一发送模块;37-请求接收模块;38-第二发送模块;
[0073] 40-查询模块;41-获取模块;42-排队模块;43-第一编译模块;44-第二编译模块;45-信息接收模块;46-验证模块;47-发送模块。

具体实施方式

[0074] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0075] 本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0076] 下面以具体的实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
[0077] 实施例1
[0078] 图1是本发明一嵌入式PLC的编译方法的流程示意图一;请参考图1,提供了一种嵌入式PLC的编译方法,包括:
[0079] S101:获取第一请求,所述第一请求包含设备信息与端口信息,其中,所述设备信息为连接所述嵌入式PLC的设备对应的信息,所述端口信息为所述嵌入式PLC连接所述设备的端口对应的信息。
[0080] 其中,第一请求,可以为任意能够被识别并触发编译的请求,可以理解为:当获取到一个第一请求时,对应已产生了一个编译的需求。设备信息,可以理解为可以表征是什么设备且能够被识别的任意信息;端口信息,可以理解为可以表征是什么端口且能够被识别的任意信息。
[0081] S102:根据所述设备信息在预存的协议库中确定对应的协议。
[0082] S103:根据所述对应的协议,编译得到所述设备和端口对应的可执行文件;以使得所述嵌入式PLC能够根据所述可执行文件,通过所述端口执行针对所述设备的预设功能。
[0083] 其中,可执行文件可以理解为嵌入式PLC通过执行可执行文件,可通过端口实现针对设备的预设功能。比如,接收设备反馈的信息,从而实现对设备进行监控,或者:输出控制量,从而实现对设备的控制。
[0084] 本发明提供的嵌入式PLC的编译方法,通过获取所述第一请求,以及根据所述设备信息在预存的协议库中确定对应的协议;并根据所述对应的协议,编译得到所述设备和端口对应的可执行文件;实现了协议在嵌入式PLC外的存储,并在嵌入式PLC外编译得到可执行文件,该方案下,嵌入式PLC可以少存协议,比如只包含了必须的通信协议,减少了嵌入式PLC所需存储的数据,节约了嵌入式PLC的存储空间。
[0085] 该方案下,嵌入式PLC可以无需配置较高的硬件,还可降低嵌入式PLC的成本。
[0086] 实施例2
[0087] 图2是本发明一嵌入式PLC的编译方法的流程示意图二;请参考图2,提供了一种嵌入式PLC的编译方法,本实施例可以理解为接入设备时进行编译处理的过程,包括:
[0088] S201:判断是否获取到第一请求。所述第一请求包含设备信息与端口信息,其中,所述设备信息为连接所述嵌入式PLC的设备对应的信息,所述端口信息为所述嵌入式PLC连接所述设备的端口对应的信息。若判断获取到第一请求,则可理解为实施了:获取第一请求。
[0089] 其中,第一请求,可以为任意能够被识别并触发编译的请求,可以理解为:当获取到一个第一请求时,对应已产生了一个编译的需求。
[0090] 设备信息,可以理解为可以表征是什么设备且能够被识别的任意信息,具体可以列举包括表征设备型号的信息、表征设备类型的信息;端口信息,可以理解为可以表征是什么端口且能够被识别的任意信息,具体可以列举包括端口的端口标识信息。
[0091] 其中一种实施方式中,获取第一请求,包括:接收与所述嵌入式PLC通讯的终端发送的所述第一请求。其中,第一请求可以为终端根据嵌入式PLC发送的设备信息与端口信息生成得到的。
[0092] 图8是本发明一嵌入式系统的配置设备和端口的界面示意图,请参考图8,所述终端可以为嵌入式PLC接入设备时,用于进行配置的终端;具体实施过程中,嵌入式PLC可以通过CAN总线扩展COM接入模块将设备接入总线。其中,CAN(Controller Area Network)指的是控制器局域网络;
[0093] COM(cluster communication port)指的是串行通讯端口。在安装连接设备后,终端可以通过Wifi或以太网等通讯手段与嵌入式PLC通讯连接,终端可以是手机或者计算机,其可以安装有对应的配置软件,通过该配置软件可以对接入的设备进行配置,同时,还可将设备信息存放于终端或嵌入式PLC。
[0094] 在进行配置时,可以依据配置信息进行配置,配置信息可以包括表征设备连接的端口是哪个的信息,以及表征设备型号的信息;通过依据配置信息的配置,可以确定嵌入式PLC连接的对象是什么,以及通过什么端口连接。端口信息和设备信息可以与配置信息具有重叠。举例中,端口信息可以包括端口标识信息,其为用于表征设备连接的端口是哪个的信息,配置信息中也可包括该端口标识信息,设备信息中也可以包括设备型号的信息。所以,终端在生成第一请求时,其所依据的设备信息与端口信息可以是自动采集获取的,也可以是配置时选定确认的。触发生成第一请求的时机可以列举为完成配置之后。
[0095] 其中一种实施方式中,若经步骤S201确认获取到了第一请求,则可进入步骤S202:将所述第一请求存入队列,其也可理解为实施于步骤S203之前。
[0096] 所述队列可以为单一的队列,在其他可选实施方案中,也可不以队列形式缓存第一请求。其中,队列也可以具有多个,针对不同队列的第一请求,可以分别并行进行编译处理。不同队列的区分可以为根据不同的嵌入式PLC区分的,也可以为根据不同类型的设备区分的。也可以为根据队列中请求的预设限额确定的,比如:若超出预设限额,则新开一个队列。
[0097] 具体实施过程中,为了实现步骤S201与S202,可以开启一监听线程监听终端,以及时接收到第一请求,第一请求可以以http的形式发送,监听线程在收到第一请求后,将其列入队列。其中,http(HyperText Transfer Protocol)可以理解为超文本传输协议。
[0098] 以队列的方式保存第一请求,可以确保批量接入设备时可以对各第一请求进行有效管理,保障其均能被编译处理,提高请求处理的效率。
[0099] 其中一种实施方式中,步骤S202之后,或者步骤S201判断未获取到第一请求的情况下,可进入步骤S203:判断队列中是否列有第一请求。
[0100] 具体实施过程中,为了实现步骤S203,可以开启一检查线程。检查线程判断队列中是否存在第一请求,若存在,则可通过一处理线程调用编译程序进行编译处理。
[0101] 图2示意的实施方式中,步骤S201、S202与S203表现为顺序进行,可以理解为,针对单个第一请求,以该顺序依次做相应处理。
[0102] 在具体实施过程中,对于服务器来说,步骤S203与步骤S201、S202可以分别执行,具体实施过程中,可以通过监听线程实施步骤S201和S202,通过检查线程实施步骤S203,各线程间并行分别实施,线程间并无触发条件与触发结果的逻辑关系,只要分别实施了其过程,就不脱离本实施例的精神所涵盖的范围。
[0103] 此外,不同的线程可以处于一个线程库中。
[0104] S204:根据所述设备信息在预存的协议库中确定对应的协议。
[0105] 其中,协议库可以理解为存储协议的数据库。
[0106] 在预先构造协议库时,可以按照不同的设备或者不同的设备类型等对所有协议进行分组,在每个组内,可以以设备的型号确定每个协议的文件名称,以便于查找确定对应的协议。每个协议所描述的端口可采用可配置参数的形式表达。
[0107] 其中一种实施方式中,所述根据所述设备信息在预存的协议库中确定对应的协议,可以包括:
[0108] 针对所述队列中列在最前的第一请求,根据所述列在最前的第一请求中的设备信息在预存的协议库中确定对应的协议。
[0109] S205:根据所述对应的协议,编译得到所述设备和端口对应的可执行文件;以使得所述嵌入式PLC能够根据所述可执行文件,通过所述端口执行针对所述设备的预设功能。
[0110] 其中,可执行文件可以理解为嵌入式PLC通过执行可执行文件,可通过端口实现针对设备的预设功能。该预设功能,可以列举为:接收设备反馈的信息,从而实现对设备进行监控,或者:输出控制量,从而实现对设备的控制。
[0111] 其中,根据所述对应的协议编译得到可执行文件时,可先根据端口对协议进行修改,比如对其中有关端口的信息根据实际的端口信息进行具体修改,比如在其中修改确定嵌入式PLC中的资源,以实现对端口的绑定。而后才编译得到可执行文件。
[0112] 其中,对于资源,可以列举包括以下软元件:输入继电器X、输出继电器Y、辅助继电器M、数据寄存器VD、定时器T、计数器C等。具体实施过程中,可以以静态的方式为各设备分配固定的资源,实现资源的静态固定分配;也可以根据需求,以动态的方式根据请求分配资源,实现资源的动态请求分配。对于资源的确定,可以为根据资源的地址分配的,在协议的编写时,可以采用相对地址,用户配置接入的设备后,编译得到可执行文件前,可以将协议中的相对地址修改转换为绝对地址。
[0113] 其中一种实施方式中,为了实施步骤S204与步骤S205,可以通过一个处理线程调用一个编译程序,编译程序同一时间仅对一个第一请求进行编译处理,具体可以理解为对一个第一请求分别实施步骤S204与S205。
[0114] 处理线程可以与例如监听线程、检查线程的其他线程并行分别实施,线程间并无触发条件与触发结果的逻辑关系。
[0115] 此外,处理线程、第一请求以及编译程序之间可以以一一对应的方式实现。通过一个处理线程调用一个编译程序进行编译时,该处理线程则进入非空闲状态,否则处于空闲状态。在检查线程检查到队列中的第一请求时,可以获取一个处于空闲状态的处理线程进行调用。
[0116] 编译程序为实施步骤S204与S205的主要对象,具体实施过程中,编译程序先解析第一请求的请求报文,获得设备信息中设备的类型与型号,以及端口的信息,根据设备信息从协议库获取协议,并为协议描述的端口的参数实例化,实现了定制化编译。
[0117] S206:存储所述可执行文件,并获得指向所述可执行文件的存储路径信息。
[0118] S207:向所述终端发送所述存储路径信息。
[0119] 具体实施过程中,可以存储于服务器的存储区,可以采用全局唯一标识符GUID作为路径,其中,全局唯一标识符(GUID,Globally Unique Identifier)是一种由算法生成的二进制长度为128位的数字标识符。同时,可以把对应的GUID信息通过返回帧发送给终端,使得终端能够通过相应的应用接收GUID信息。
[0120] S208:接收所述终端发送的下载请求。
[0121] S209:向所述终端发送可执行文件。
[0122] 具体实施过程中,终端可以通过GUID信息从对应的路径下载可执行文件,并将可执行文件发送给嵌入式PLC,具体可以通过FTP服务来实现。
[0123] 本实施例提供的嵌入式PLC的编译方法,通过获取所述第一请求,以及根据所述设备信息在预存的协议库中确定对应的协议;并根据所述对应的协议,编译得到所述设备和端口对应的可执行文件;实现了协议在嵌入式PLC外的存储,并在嵌入式PLC外编译得到可执行文件,该方案下,嵌入式PLC可以少存协议,比如存必须的通信协议,减少了嵌入式PLC所需存储的数据,节约了嵌入式PLC的存储空间。
[0124] 该方案下,嵌入式PLC可以无需配置较高的硬件,还可降低嵌入式PLC的成本。
[0125] 实施例3
[0126] 图4是本发明一嵌入式系统的结构示意图一;图5是本发明一嵌入式系统的结构示意图二;请参考图4和图5,提供了一种嵌入式系统,包括:服务器13、终端12和嵌入式PLC11;所述终端12分别与所述嵌入式PLC11与服务器13通讯;
[0127] 所述终端12,用于获得设备信息与端口信息,根据所述设备信息与端口信息生成第一请求,并向所述服务器13发送所述第一请求;以及:接收所述服务器13发送的可执行文件,并向所述嵌入式PLC11发送所述可执行文件;
[0128] 其中,所述设备信息为连接所述嵌入式PLC11的设备14对应的信息,所述端口信息为所述嵌入式PLC11连接所述设备14的端口对应的信息;
[0129] 所述服务器13,用于获取所述第一请求,根据所述设备信息在预存的协议库133中确定对应的协议;并根据所述对应的协议,编译得到所述设备14和端口对应的可执行文件;以及:向所述终端发送所述可执行文件。
[0130] 具体实施过程中,可以通过编译程序134进行:根据所述设备信息在预存的协议库133中确定对应的协议;并根据所述对应的协议,编译得到所述设备14和端口对应的可执行文件。
[0131] 所述嵌入式PLC11,用于接收所述可执行文件,并根据所述可执行文件,链接到所述设备,以使得所述嵌入式PLC11能够通过所述端口执行针对所述设备14的预设功能。
[0132] 可选的,所述服务器13还用于接收与所述嵌入式PLC11通讯的终端12发送的所述第一请求。
[0133] 可选的,所述服务器13还用于获取第一请求之后,将所述第一请求存入队列132。
[0134] 具体实施过程中,可以通过监听线程131获取第一请求,并在获取第一请求之后,将所述第一请求存入队列132。
[0135] 可选的,所述服务器13具体用于针对所述队列132中列在最前的第一请求,根据所述列在最前的第一请求中的设备信息在预存的协议库133中确定对应的协议。
[0136] 可选的,所述服务器13还用于存储所述可执行文件,并获得指向所述可执行文件的存储路径信息;向所述终端12发送所述存储路径信息;接收所述终端12发送的下载请求;向所述终端12发送所述可执行文件,以使得所述嵌入式PLC11能够自所述终端12获得所述可执行文件。
[0137] 具体实施过程中,可以通过发送程序135实现:存储所述可执行文件,并获得指向所述可执行文件的存储路径信息;向所述终端12发送所述存储路径信息;接收所述终端12发送的下载请求;向所述终端12发送所述可执行文件,以使得所述嵌入式PLC11能够自所述终端12获得所述可执行文件。
[0138] 本实施例提供的嵌入式系统,通过服务器获取所述第一请求,以及根据所述设备信息在预存的协议库中确定对应的协议;并根据所述对应的协议,编译得到所述设备和端口对应的可执行文件;实现了协议在服务器的存储,并在服务器编译得到可执行文件,该方案下,嵌入式PLC可以少存协议,比如只存必须的通信协议,减少了嵌入式PLC所需存储的数据,节约了嵌入式PLC的存储空间。
[0139] 该方案下,嵌入式PLC可以无需配置较高的硬件,还可降低嵌入式PLC的成本。
[0140] 本实施例所示的系统,对应地可实现方法实施例2的技术方案,其实现原理、技术效果以及术语的含义类似,此处不再赘述。
[0141] 实施例4
[0142] 图9是本发明一服务器的结构示意图一;请参考图9,提供了一种服务器,包括:
[0143] 获取模块31,用于获取第一请求,所述第一请求包含设备信息与端口信息,其中,所述设备信息为连接所述嵌入式PLC的设备对应的信息,所述端口信息为所述嵌入式PLC连接所述设备的端口对应的信息。
[0144] 第一编译模块33,用于根据所述设备信息在预存的协议库中确定对应的协议。
[0145] 第二编译模块34,用于根据所述对应的协议,编译得到所述设备和端口对应的可执行文件;以使得所述嵌入式PLC能够根据所述可执行文件,通过所述端口执行所述设备对应的功能。
[0146] 可选的,所述获取模块31具体用于接收与所述嵌入式PLC通讯的终端发送的所述第一请求。
[0147] 可选的,服务器还包括排队模块32,用于将所述第一请求存入队列。
[0148] 可选的,所述第一编译模块33具体用于针对所述队列中列在最前的第一请求,根据所述列在最前的第一请求中的设备信息在预存的协议库中确定对应的协议。
[0149] 可选的,服务器还包括:
[0150] 存储模块35,用于存储所述可执行文件,并获得指向所述可执行文件的存储路径信息;
[0151] 第一发送模块36,用于向所述终端发送所述存储路径信息;
[0152] 请求接收模块37,用于接收所述终端发送的下载请求;
[0153] 第二发送模块38,用于向所述终端发送所述可执行文件,以使得所述嵌入式PLC能够自所述终端获得所述可执行文件。
[0154] 本实施例提供的服务器,通过获取所述第一请求,以及根据所述设备信息在预存的协议库中确定对应的协议;并根据所述对应的协议,编译得到所述设备和端口对应的可执行文件;实现了协议在服务器的存储,并在服务器编译得到可执行文件,该方案下,嵌入式PLC可以少存协议,比如只存必须的通信协议,减少了嵌入式PLC所需存储的数据,节约了嵌入式PLC的存储空间。
[0155] 该方案下,嵌入式PLC可以无需配置较高的硬件,还可降低嵌入式PLC的成本。
[0156] 本实施例所示的服务器,对应地可实现方法实施例2的技术方案,其实现原理、技术效果以及术语的含义类似,此处不再赘述。
[0157] 实施例5
[0158] 图3是本发明一嵌入式PLC的编译方法的流程示意图三;请参考图3,提供了一种嵌入式PLC的编译方法,包括:
[0159] S301:判断是否获取到第一请求。所述第一请求包含设备信息与端口信息,其中,所述设备信息为连接所述嵌入式PLC的设备对应的信息,所述端口信息为所述嵌入式PLC连接所述设备的端口对应的信息。若判断获取到第一请求,则可理解为实施了:获取第一请求。
[0160] 本实施例可以理解为:在完成实施例2之后,已编译得到的可执行文件可能需要更新,之所以需要更新,是因为协议发生了变化。本实施例描述了更新情况下进行再一次编译的过程。
[0161] 故而,本实施例中,所述获取第一请求,包括:确认所述协议库中所述设备信息对应的协议已发生变化;确认所述嵌入式PLC已连接所述设备;根据所述设备以及所述端口,生成所述第一请求。
[0162] 可见,与实施例2以及实施例3的具体实施方式不同,本实施例中,第一请求为服务器自动生成的,而非自终端接收的。
[0163] 其中一种实施方式中,在进行步骤S301的判断之前,还可包括:
[0164] 向所述嵌入式PLC查询获得所述嵌入式PLC接入设备的情况,其中,可以通过第一网络向嵌入式PLC查询,进而查询获得所述嵌入式PLC接入设备的情况。根据查询得到的情况,可以用于确认所述嵌入式PLC已连接所述设备。
[0165] 其中,第一网络可以列举为虚拟专用VPN网络,服务器可以通过拨号方式进入嵌入式PLC所在的第一网络,嵌入式PLC可以预先被接入第一网络。服务器可以通过轮询程序查询所述嵌入式PLC接入设备的情况,根据查询的返回信息判断是否需要升级,其也可理解为是否需要生成第一请求,若需要,可以生成第一请求,并列入队列。该实施方式下,第一请求中可以包括所述嵌入式PLC的地址信息,所述地址信息为所述嵌入式PLC接入第一网络时分配的,其可以列举为IP地址;第一请求中也可以包括第一身份信息,第一身份信息可以根据查询得到的情况得到,其可以具体列举为身份识别码,第一身份识别信息可以为可根据不同设备的信息确定的。
[0166] 若确定获取第一请求,则进入步骤S302:将所述第一请求存入队列。
[0167] 所述队列可以为单一的队列,在其他可选实施方案中,也可不以队列形式缓存第一请求。其中,队列也可以具有多个,针对不同队列的第一请求,可以分别并行进行编译处理。不同队列的区分可以为根据不同的嵌入式PLC区分的,也可以为根据不同类型的设备区分的。也可以为根据队列中请求的预设限额确定的,比如:若超出预设限额,则新开一个队列。
[0168] 以队列的方式保存第一请求,可以确保批量接入设备时可以对各第一请求进行有效管理,保障其均能被编译处理,提高请求处理的效率。
[0169] 其中一种实施方式中,步骤S302之后,或者步骤S301判断未获取到第一请求的情况下,可进入步骤S303:判断队列中是否列有第一请求。
[0170] 具体实施过程中,为了实现步骤S303,可以开启一检查线程。检查线程判断队列中是否存在第一请求,若存在,则可通过一处理线程调用编译程序进行编译处理。
[0171] 图3示意的实施方式中,步骤S301、S302与S303表现为顺序进行,可以理解为,针对单个第一请求,以该顺序依次做相应处理。
[0172] 在具体实施过程中,对于服务器来说,步骤S303与步骤S301、S302可以分别执行,具体实施过程中,可以通过监听线程实施步骤S301和S302,通过检查线程实施步骤S303,各线程间并行分别实施,线程间并无触发条件与触发结果的逻辑关系,只要分别实施了其过程,就不脱离本实施例的精神所涵盖的范围。
[0173] 此外,不同的线程可以处于一个线程库中。
[0174] S304:根据所述设备信息在预存的协议库中确定对应的协议。
[0175] 其中,协议库可以理解为存储协议的数据库。
[0176] 在预先构造协议库时,可以按照不同的设备或者不同的设备类型等对所有协议进行分组,在每个组内,可以以设备的型号确定每个协议的文件名称,以便于查找确定对应的协议。每个协议所描述的端口可采用可配置参数的形式表达。
[0177] 其中一种实施方式中,所述根据所述设备信息在预存的协议库中确定对应的协议,可以包括:
[0178] 针对所述队列中列在最前的第一请求,根据所述列在最前的第一请求中的设备信息在预存的协议库中确定对应的协议。
[0179] S305:根据所述对应的协议,编译得到所述设备和端口对应的可执行文件;以使得所述嵌入式PLC能够根据所述可执行文件,通过所述端口执行针对所述设备的预设功能。
[0180] 其中,可执行文件可以理解为嵌入式PLC通过执行可执行文件,可通过端口实现针对设备的功能。该预设功能,可以列举为:接收设备反馈的信息,从而实现对设备进行监控。
[0181] 其中一种实施方式中,为了实施步骤S304与步骤S305,可以通过一个处理线程调用一个编译程序,编译程序同一时间仅对一个第一请求进行编译处理,具体可以理解为对一个第一请求分别实施步骤S304与S305。
[0182] 此外,处理线程、第一请求以及编译程序之间可以以一一对应的方式实现。通过一个处理线程调用一个编译程序进行编译时,该处理线程则进入非空闲状态,否则则处于空闲状态。在检查线程检查到队列中的第一请求时,可以获取一个处于空闲状态的处理线程进行调用。
[0183] 编译程序为实施步骤S304与S305的主要对象,具体实施过程中,编译程序先解析第一请求的请求报文,获得设备信息中设备的类型与型号,以及端口的信息,根据设备信息从协议库获取协议,并为协议描述的端口的参数实例化,实现了定制化编译。
[0184] S306:接收所述嵌入式PLC发送的第二身份信息。
[0185] S307:验证所述第一身份信息与第二身份信息匹配。
[0186] S308:向所述嵌入式PLC发送所述可执行文件。
[0187] 其中,第二身份信息也可列举为身份识别码;具体实施过程中,可以通过向地址信息指引的地址发送请求报文,接收嵌入式PLC通过该地址反馈的第二身份信息。第一身份信息与第二身份信息匹配,具体实施过程中,可以理解为第一身份信息的身份识别码与第二身份信息的身份识别码相同。
[0188] 若匹配,服务器则向嵌入式PLC发送可执行文件,否则,其中一种实施方式中,可以认为,嵌入式PLC由于网络原因重新分配了新的IP地址或者与第一网络断开了,故而,可以停止对应的过程,并不妨碍其他第一请求获得、编译处理及对应可执行文件的发送。
[0189] 本实施例提供的嵌入式PLC的编译方法,通过获取所述第一请求,以及根据所述设备信息在预存的协议库中确定对应的协议;并根据所述对应的协议,编译得到所述设备和端口对应的可执行文件;实现了协议在嵌入式PLC外的存储,并在嵌入式PLC外编译得到可执行文件,该方案下,嵌入式PLC可以少存协议,比如只存必须的通信协议,减少了嵌入式PLC所需存储的数据,节约了嵌入式PLC的存储空间。
[0190] 该方案下,嵌入式PLC可以无需配置较高的硬件,还可降低嵌入式PLC的成本。
[0191] 实施例6
[0192] 图10是本发明一服务器的结构示意图二;请参考图10,提供了一种服务器,包括:
[0193] 获取模块41,用于获取第一请求,所述第一请求包含设备信息与端口信息,其中,所述设备信息为连接所述嵌入式PLC的设备对应的信息,所述端口信息为所述嵌入式PLC连接所述设备的端口对应的信息。
[0194] 第一编译模块43,用于根据所述设备信息在预存的协议库中确定对应的协议。
[0195] 第二编译模块44,用于根据所述对应的协议,编译得到所述设备和端口对应的可执行文件;以使得所述嵌入式PLC能够根据所述可执行文件,通过所述端口执行针对所述设备的预设功能。
[0196] 可选的,服务器还包括排队模块42,用于将所述第一请求存入队列;其中,每个嵌入式PLC对应于一个或多个所述队列。
[0197] 可选的,所述第一编译模块43具体用于针对所述队列中列在最前的第一请求,根据所述列在最前的第一请求中的设备信息在预存的协议库中确定对应的协议。
[0198] 可选的,所述获取模块41具体用于确认所述协议库中所述设备信息对应的协议已发生变化;确认所述嵌入式PLC已连接所述设备;根据所述设备以及所述端口,生成所述第一请求。
[0199] 可选的,服务器还包括查询模块40,用于向所述嵌入式PLC查询获得所述嵌入式PLC接入设备的情况。
[0200] 可选的,所述第一请求还包含所述嵌入式PLC的第一身份信息;
[0201] 服务器还包括:
[0202] 信息接收模块45,用于接收所述嵌入式PLC发送的第二身份信息;
[0203] 验证模块46,用于验证所述第一身份信息与第二身份信息匹配;
[0204] 发送模块47,用于向所述嵌入式PLC或所述嵌入式PLC连接的终端发送所述可执行文件。
[0205] 所述第一请求还包含所述嵌入式PLC的地址信息;
[0206] 所述发送模块47,具体用于根据所述地址信息向所述嵌入式PLC发送所述可执行文件,所述地址信息为所述嵌入式PLC接入第一网络时分配的。
[0207] 本实施例提供的服务器,通过获取所述第一请求,以及根据所述设备信息在预存的协议库中确定对应的协议;并根据所述对应的协议,编译得到所述设备和端口对应的可执行文件;实现了协议在服务器的存储,并在服务器编译得到可执行文件,该方案下,嵌入式PLC可以少存协议,比如只存必须的通信协议,减少了嵌入式PLC所需存储的数据,节约了嵌入式PLC的存储空间。
[0208] 该方案下,嵌入式PLC可以无需配置较高的硬件,还可降低嵌入式PLC的成本。
[0209] 本实施例所示的服务器,对应地可实现方法实施例5的技术方案,其实现原理、技术效果以及术语的含义类似,此处不再赘述。
[0210] 实施例7
[0211] 图6是本发明一嵌入式系统的结构示意图三;图7是本发明一嵌入式系统的结构示意图四;请参考图6和图7,提供了一种嵌入式系统,包括:服务器22和嵌入式PLC21。
[0212] 所述服务器22,用于确认协议库223中设备信息对应的协议已发生变化,并确认所述嵌入式PLC21已连接设备23,生成第一请求;其中,所述第一请求包含所述设备信息与端口信息,所述设备信息为连接所述嵌入式PLC21的设备23对应的信息,所述端口信息为所述嵌入式PLC21连接所述设备23的端口对应的信息;以及:根据所述设备信息在预存的协议库223中确定对应的协议;根据所述对应的协议,编译得到所述设备23和端口对应的可执行文件,并向所述嵌入式PLC21发送所述可执行文件。
[0213] 具体实施方式中,可以通过编译程序224实现:根据所述设备信息在预存的协议库223中确定对应的协议;根据所述对应的协议,编译得到所述设备23和端口对应的可执行文件,并向所述嵌入式PLC21发送所述可执行文件。
[0214] 所述嵌入式PLC21,用于接收所述可执行文件,并根据所述可执行文件,通过所述端口执行所述设备对应的功能。
[0215] 可选的,所述服务器22具体用于确认所述协议库中所述设备信息对应的协议已发生变化;确认所述嵌入式PLC21已连接所述设备;根据所述设备23以及所述端口,生成所述第一请求。
[0216] 可选的,所述服务器22还用于通过所述嵌入式PLC21接入的第一网络查询所述嵌入式PLC21接入设备的情况。第一网络可以采用VPN网络。
[0217] 可选的,所述服务器22还用于将所述第一请求存入队列222。
[0218] 具体实施过程中,可以利用轮训程序221通过所述嵌入式PLC21接入的第一网络查询所述嵌入式PLC21接入设备的情况,并将所述第一请求存入队列222。
[0219] 可选的,所述服务器22具体用于针对所述队列222中列在最前的第一请求,根据所述列在最前的第一请求中的设备信息在预存的协议库223中确定对应的协议。
[0220] 可选的,所述第一请求还包含所述嵌入式PLC21的地址信息;
[0221] 所述服务器22还用于根据所述地址信息向所述嵌入式PLC21发送所述可执行文件,所述地址信息为所述嵌入式PLC21接入第一网络时分配的。
[0222] 可选的,所述第一请求还包含所述嵌入式PLC21的第一身份信息;
[0223] 所述服务器22还用于接收所述嵌入式PLC21发送的第二身份信息;验证所述第一身份信息与第二身份信息匹配;向所述嵌入式PLC21或所述嵌入式PLC21连接的终端发送所述可执行文件。
[0224] 本实施例提供的嵌入式系统,通过服务器获取所述第一请求,以及根据所述设备信息在预存的协议库中确定对应的协议;并根据所述对应的协议,编译得到所述设备和端口对应的可执行文件;实现了协议在服务器的存储,并在服务器编译得到可执行文件,该方案下,嵌入式PLC可以少存协议,比如只存必须的通信协议,减少了嵌入式PLC所需存储的数据,节约了嵌入式PLC的存储空间。
[0225] 该方案下,嵌入式PLC可以无需配置较高的硬件,还可降低嵌入式PLC的成本。
[0226] 本实施例所示的系统,对应地可实现方法实施例5的技术方案,其实现原理、技术效果以及术语的含义类似,此处不再赘述。
[0227] 此外,本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0228] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。