CN108604186A - 用于创建和管理基于控制器的远程解决方案的方法和装置 - Google Patents
用于创建和管理基于控制器的远程解决方案的方法和装置 Download PDFInfo
- Publication number
- CN108604186A CN108604186A CN201680081438.4A CN201680081438A CN108604186A CN 108604186 A CN108604186 A CN 108604186A CN 201680081438 A CN201680081438 A CN 201680081438A CN 108604186 A CN108604186 A CN 108604186A
- Authority
- CN
- China
- Prior art keywords
- controller
- cvs
- solution
- agcp
- gui
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Selective Calling Equipment (AREA)
- Telephonic Communication Services (AREA)
- Stored Programmes (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
提供了一种用于创建和管理基于控制器的远程解决方案的方法和装置。该方法包括在代码虚拟化服务器(CVS)处从图形用户界面(GUI)接收解决方案的输入,该解决方案包括:可通信地耦接到传感器和/或致动器并且可用于控制传感器和/或致动器的控制器;在传感器和/或致动器处的条件;当满足条件时由控制器执行的动作;以及解决方案的至少一个参数。基于输入的解决方案,在CVS上自动生成用于控制器的程序(AGCP)。该程序包括用于检查是否满足条件并且当满足所述条件时执行动作的代码。将AGCP下载到用户设备上的存储器,或者将AGCP发送到至少一个控制器,以将AGCP安装到至少一个控制器上。
Description
技术领域
本发明的实施例总体上涉及用于创建和管理基于控制器的远程解决方案的方法和装置。
背景技术
现场可编程门阵列(FPGA)和其他基于控制器(例如,基于微控制器或微处理器)的设备,例如MCU、片上系统(SoC)、移动电话、计算机等的使用已经变得非常流行。控制器的低制造成本、可用性和定制化已经导致微控制器和片上系统(SoC)(例如,PIC,ARDUINO,RASPBERRYPI等)迅速扩展,商业公司和业余爱好者使用它们来创建设备。基于控制器的设备包括处理器核和存储器,可对处理器核和存储器进行编程以处理与电子设备或外围设备通信的输入/输出数据。NOR FLASH或OTP ROM形式的程序存储器以及少量的随机存取存储器(RAM)通常也包括在这种基于控制器的设备上。将数个这种基于控制器的设备设计用于较大设备内的嵌入式应用。这种基于控制器的设备的实际应用可以潜在地包括将基于控制器的设备与作为外围设备的现实世界的对象或系统连接,从而实现这些外围设备的数字化、连接性甚至远程控制。然而,由于将云技术与硬件和软件技术相结合的复杂性,在制作此类现实世界应用程序时存在数个挑战
通常,对基于控制器的设备或设备组编程是非常复杂的。此外,当这种基于控制器的设备(或“控制器设备”或“控制器”)用于在现实世界控制传统系统(例如,各种致动器和传感器)时,对这种控制器进行编程甚至更复杂。随着“物联网(IoT)”的增长,越来越多这种基于控制器的设备彼此连接和/或连接到因特网,这显著增加了编程的复杂性。在现实世界的场景中,这种基于控制器的设备可以彼此通信和/或与网关通信,这使得网关成为用于所谓的边缘设备的因特网通信的代理。边缘设备可以通过一个或多个网关进行通信,或直接作为独立设备。在组内,必须以兼容的方式对所有设备(网关和边缘设备)进行编程以促进互操作性,这进一步增加了对这些设备进行编程的复杂性。此外,每次实现定制时管理兼容性也可能过于耗时。对基于控制器的设备组进行编程对于用户来说是非常具有挑战性的,因为用户必须记住编码命令、理解架构、使用适当的调用语法等。即使对一个设备的编程不正确,对该设备或组中另一个基于控制器的设备的写入程序也可能无法运行或产生错误。
因此,本领域需要简化对基于控制器的设备的编程,同时为一组基于控制器的设备自动编程。
发明内容
基本上如结合至少一幅附图所示和/或描述,如权利要求中更完整地阐述,本发明的实施例总体上涉及一种用于创建和管理基于控制器的远程解决方案的方法和装置。
通过阅读本公开的以下详细描述以及附图,可以理解本公开的这些和其他特征和优点,在附图中,相同的附图标记始终表示相同的部件。
附图说明
因此,可以详细地理解本发明的上述特征的方式,通过参考实施例可以获得上面简要概述的本发明的更具体的描述,其中一些实施例在附图中示出。然而,应注意,附图仅示出了本发明的典型实施例,因此不应视为限制本发明的范围,因为本发明可允许其他同等有效的实施例。
图1是根据本发明实施例的用于创建和管理基于控制器的远程解决方案的装置的框图。
图2是根据本发明实施例的图1的代码虚拟化服务器的框图。
图3是根据本发明实施例的由图1的代码虚拟化服务器执行的用于创建和管理远程解决方案的方法的流程图。
图4是根据本发明实施例的由图1的代码虚拟化服务器执行的用于管理远程解决方案的方法的流程图。
图5是示出根据本发明实施例的用于在控制器设备、代码虚拟化服务器和远程服务上操作远程解决方案的方法的流程图;以及
图6示出了根据本发明实施例的创建和管理的远程解决方案。
具体实施方式
本发明的实施例涉及一种用于创建和管理基于控制器的远程解决方案的方法和装置,更具体地,涉及创建、配置和管理包括配置在应用系统(例如水箱、冰箱等)中的控制器设备(例如,具有控制器的设备,例如微控制器、微处理器、SoC、MCU等)的远程解决方案。控制器设备可用于使用传感器和致动器来监控和控制应用系统。本发明的实施例通过使用用户可用的图形用户界面(GUI),使用户能够构建包括分布在一个或多个控制器或控制器组上的数个应用程序的解决方案,并自动生成用于控制器的程序以操作解决方案。解决方案的应用程序包括在满足与应用系统相关的特定条件(例如,在传感器或致动器处)时由控制器执行的一个或多个动作。
通过在GUI上选择预定义的解决方案模板来构建解决方案。或者,也可以通过识别或定义控制器、应用系统、致动器和传感器中的一个或多个的细节来监控和控制应用系统、动作、触发控制器的动作的条件、控制器、致动器、传感器和应用系统之间的连接、或解决方案的参数,来在GUI中从空白模板开始构建解决方案。解决方案的参数可以包括与控制器的操作、应用系统、条件、动作、致动器、传感器、连接(连接配置文件、连接参数、协议)和执行控制器的程序所需的其他操作信息相关的一个或多个参数。基于设计的解决方案,用于配置在应用系统中的控制器的程序由代码虚拟化服务器(CVS)上的代码生成器(其可以与SDK生成器一起工作,或包括SDK生成器)自动生成,并且被称为自动生成的控制器程序(AGCP)。
例如,通过使用GUI,用户选择预定义的解决方案或构建解决方案,例如,用于水箱、冰箱或锅炉系统等的基于控制器的解决方案。用户在GUI上识别相关的控制器设备(包括控制器和用于操作预定义的解决方案的其他硬件,例如,传感器、致动器等),并进一步提供用于操作控制器设备、应用系统和AGCP的参数。将在用户设备上的GUI接收的这些输入发送到CVS,以便以适合于控制器设备的语言并根据控制器的处理能力,为控制器设备创建AGCP。AGCP包括基于通过GUI接收的用户输入聚合的预定义的程序代码。用于执行AGCP的参数也可以由用户在GUI上输入,并在CVS接收。然后将AGCP配置在控制器设备上,从而实现设计的解决方案。在一些实施例中,用于帮助执行AGCP的软件组件与AGCP一起,例如,还生成SDK,并且将这些组件包括在AGCP中,单独配置在控制器设备上,或配置在远程的但是控制器设备可访问的设备上(即,组件可以虚拟化)。
解决方案可以包括附加功能,例如,在事件发生时或其他定义的条件下,以预定义的时间间隔实时向GUI发送状态更新,从而实现对配置的解决方案的远程监控。此外,通过使用GUI,用户可以对设计的解决方案的任何部分进行修改,并且引起AGCP的修改或重新生成,并且将这种修改或重新生成的AGCP重新配置到控制器,从而修改设计的或实现的解决方案。可以实时实施这些修改,即,一旦指定修改就立即执行AGCP的修改或重新生成。在某些情况下,所需的修改不会改变与控制器硬件相关的条件,并且这些修改不需要AGCP的修改或重新生成。
此外,AGCP还可以包括对在远离控制器的设备上执行的虚拟程序的远程调用,实际上是AGCP的虚拟化部分,这是因为AGCP的设计功能的一部分是虚拟执行的,而不是在执行AGCP的控制器上执行的。AGCP的功能被抽象或虚拟化为虚拟程序,因为这样的功能对于控制器来说可能太耗费资源而无法执行。在某些情况下,即使控制器可以“处理”执行这样的功能,也可能希望从控制器中提取出这样的功能,例如,为了更好的可靠性,为多个控制器而不是一个控制器提供这样的功能,本领域技术人员会理解数个其他原因。远程设备可以与自动生成AGCP的设备相同或不同。为了简化说明,将该设备称为代码虚拟化服务器(CVS),并且可以将虚拟程序称为CVS程序(CVSP),CVS程序存储在CVS上,并且当在CVS接收到来自执行AGCP的控制器的远程调用时,就执行该CVS程序。AGCP还可以包括直接或通过CVSP提供远程服务的代码。当通过CVSP提供远程服务时,在CVS上执行CVSP会使得提供远程服务。远程服务是由CVS或控制器以外的设备提供的服务。
在应用系统中配置数个控制器在编程这样的控制器以实现期望的解决方案以及进一步地在监控、修改和以其他方式管理这样的解决方案方面配置提出了重大挑战。具体地,应用系统的不同组件将需要不同的外围设备或电子设备(例如,不同的致动器和传感器)来控制应用系统。因此,需要根据这种变化对控制这种致动器和传感器的控制器进行编程,进一步增加了为这种应用系统生成解决方案的复杂性。对于非专业人士来说,这样的编程和维护挑战尤其令人难以招架。本文描述的实施例向用户提供GUI界面,并且相对简单地对其进行处理以使得以简单有效的方式生成、监控、修改和以其他方式管理配置在应用系统中的基于控制器的远程解决方案。
2011年1月28日提交的共同转让的美国专利号8,726,285;2014年6月17日提交的9,235,383;2014年6月17日提交的9,239,705;2014年6月17日提交的9,436,439;和2007年9月11日提交的美国专利申请公开号2009/0070121;2007年9月11日提交的2009/0070162;2015年1月9日提交的2015/0199088;2015年4月13日提交的2015/0286362;2016年3月8日提交的2016/0327925;以及2016年5月6日提交的2016/0328216,通过引用的方式将上述各个专利文献整体并入到本文中,上述专利文献描述了用于开发包括控制器的控制器设备的软件、远程使用图形用户界面将诸如传感器或致动器的硬件的使用映射到控制器、以及执行软件(例如,远程地执行)以通过定义的工作流扩展这种控制器设备的能力的技术。
这些技术通过将一段代码和/或数据库放置在控制器设备的存储器中来起作用,其中当执行该段代码时,该段代码发送对要在代码虚拟化服务器上执行的特定的一个或多个进程的调用,和/或将数据发送到(直接地或通过代码虚拟化服务器)远程服务提供商,和/或进一步调用由远程服务提供商对数据远程执行的功能。本发明的实施例使用这些技术来创建和管理(即监控和控制)基于控制器的远程解决方案,该基于控制器的远程解决方案包括耦接到传统远程系统的至少一个控制器设备。利用这样的实施例,可以为动态环境(例如,耦接到控制器的传统应用系统)创建远程解决方案。各个实施例使得使用远离代码虚拟化服务器(或在其上创建代码并且可以部分执行的“编码服务器”)的用户计算机的用户、控制器设备和应用系统能够改变代码、代码的输入,改变所需的输出,配置与控制器一起使用的附加电子设备(例如,传感器、致动器等),或者改变解决方案的配置等。
如本文所使用的,术语“应用系统”包括现实世界的系统或应用,可通过使用致动器的控制器设备的输出来对其进行控制,并且可通过对使用传感器的控制器设备的输入来对其进行监控。这种应用系统包括传统上已知的系统,例如,储水箱、锅炉、制冷系统,并且有时也可将其称为“常规系统”,其可与术语“应用系统”互换使用。根据本文描述的技术,这种“应用系统”包括将来可以设计的系统,并且可以利用控制器设备通过内置于应用系统或安装在应用系统中的传感器或致动器来监控和控制。
在所描述的以下实施例中,除非从上下文以其他方式显而易见的,否则“进程”或“程序”或AGCP是指已经配置在执行控制器设备或计算机(例如,用于测试的服务器、个人计算机、移动设备等)上的准备运行的代码库或预定义的程序代码。通过名称、进程ID、图标或其他标识符为用户唯一标识每个进程。“执行”是指在控制器设备或计算机(本地或远程或基于云的)上启动进程。“批(bundle)”是指由公共属性(API名称、公共参数、SDK、参数名称、远程服务器等)组织的进程集合。本文讨论的实施例不限制本发明的范围,而是出于解释目的而区分具体实施例。
作为本文描述的技术的例子,应用系统是住宅雨水收集应用中的水箱系统,其包括用于控制向供水网(例如,自来水公司)供水或从供水网抽水的泵。例如,如果水箱中的水位足够(即,高于预定阈值),则可能不需要使用来自供水网的额外的水;但是,如果水位低于阈值水平,则可能需要使用来自供水网的额外的水将水箱填充至阈值水平。这些操作通过传感器和致动器实现,所述传感器和致动器与水箱、供水网和安装在其中的泵一起工作。为了创建基于控制器的远程管理解决方案,用户需要为控制器、水位传感器、泵和泵的致动器设计适当的硬件配置,使用正确的连接来配置硬件,为每个控制器生成程序,并提供执行此类程序的正确参数。本发明的实施例提供了一种基于GUI的系统,其使用户能够创建和/或修改解决方案。
更具体地,本发明的实施例在用户可访问的用户设备上提供了GUI,并且例如通过GUI将存储在代码虚拟化服务器处的数个解决方案模板呈现给用户以选择特定解决方案,在该示例中,用户选择水箱。在一些实施例中,如果水箱解决方案不可用,则选择最接近水箱的解决方案,或者基于用户在GUI中提供的对在GUI中对用户提出的某些询问(例如,存储在代码虚拟化服务器处)做出的响应向用户建议解决方案。在一些实施例中,用户单独限定解决方案的所有组件,并且实际上从空白模板开始构建解决方案。
根据一些实施例,在选择可以基于水箱中的水位致动泵或供水网的水箱解决方案时,向用户呈现水箱解决方案的期望配置。例如,水箱解决方案除了包括水箱和泵之外,还包括用于指示水箱中的水位的水位传感器、用于控制泵的致动器,致动器功能包括启动、停止和速度变化。水箱解决方案还包括用于在水位传感器、泵、泵的致动器、网络和可选的网关设备之间建立无线或有线连接的通信设备。如果安装了网关设备,则网关设备一侧与网络连接,另一侧与水位传感器和泵致动器连接。在一些实施例中,GUI允许用户以图形方式指定应用系统的设备(泵、传感器)与控制器之间的连接,例如,指定传感器的输出以映射到控制器上的期望引脚,以及指定控制器将从传感器接收的读数类型(例如,输入类型,例如温度或光强度、单位、数据格式等)。类似地,如果泵包括数字控制器(其用作致动器),则可以映射控制器的引脚和引脚的输出类型以控制泵的致动器,或者直接控制泵。通过这种方式,用户定义远程水箱解决方案,该解决方案在GUI中对用户可见。根据一些实施例,在选择预定义的解决方案模板时,所有这样的配置被自动定义并呈现在GUI中。根据一些实施例,GUI可以向用户呈现交互式问题集以确定所需的解决方案,并识别所需的设备,例如,控制器、传感器、致动器、它们之间的连接、条件和动作以及解决方案的其他要求。用户可以回答问题并设计解决方案,并且可以进一步使用设计的解决方案来组装所需的硬件并完成解决方案所需的配置。根据一些实施例,用户设备与CVS通信,CVS包括在一个或多个参考库中的预定义的解决方案模板、解决方案的各个组件、有助于设计解决方案的问题、或者有助于设计解决方案的其他资源。用户设备可以访问CVS上的参考库,用户设备向用户显示预定义的解决方案模板、解决方案的各个组件、GUI上的问题或其他资源。
一旦用户通过GUI确认了期望的解决方案,就将设计的解决方案发送到CVS作为CVS的输入。响应于在GUI上设计的解决方案的输入,CVS例如以上面讨论的方式自动生成用于在水箱解决方案中设计的所有控制器设备的程序(AGCP),下面将参考附图作详细说明。通过使用可通信地耦接到CVS的GUI,用户可以在本地下载AGCP以在虚拟控制器的环境中测试代码。在一些实施例中,用户可以通过GUI指示将AGCP直接从CVS配置到相应的控制器,并且可以进一步测试配置的AGCP。用户可以通过GUI监控在控制器设备上配置的AGCP,CVS利用状态信息对GUI进行更新,该状态信息是关于AGCP的执行、控制器、连接的硬件(致动器、传感器等)、连接、动作、条件、以及设计的解决方案的任何其他参数的信息。如果需要,用户可以使用GUI以类似于创建解决方案的方式修改解决方案。在从GUI接收到作为输入的修改的解决方案时,如果需要,CVS可以修改或重新生成AGCP,或者如果不需要修改或更新AGCP,则CVS可以仅更新AGCP使用的已经配置的参数。如果修改或重新生成AGCP,则将其配置到相应的控制器。如果需要,用户使用GUI管理设备和相关代码,例如,以将控制器、改变操作条件或参数、定义新动作、触发这些动作的附加条件等添加到设计的远程解决方案配置。
在一些实施例中,AGCP进行向CVS的远程调用以执行不适合在控制器设备上执行的代码,这是由于缺少在控制器设备上执行这样的代码所需的资源。在一些实施例中,来自控制器设备的这种调用用于与不是由控制器或CVS提供的一个或多个远程服务(例如FACEBOOK,TWITTER,AMAZON,数据存储服务等)交互。这些远程调用可以实现为直接从控制器设备到远程服务的调用,或者作为对CVS上的程序(CVSP)的调用,CVS又与远程服务交互并将数据提供给控制器设备以用于进一步执行AGCP代码。
因此,本发明的实施例能够使用用户设备上的GUI和远离用户设备的代码虚拟化服务器来设计、配置、监控、修改、或重新编程远程解决方案,远程解决方案包括安装在应用系统中的一个或多个控制器设备。
图1是根据本发明的一个或多个实施例的用于创建和管理基于控制器的远程解决方案的装置100的概略图,例如,该远程解决方案用于传统系统130(1301,…130q)或系统132(1321,…132r)。系统100包括连接到传统系统130的多个控制器设备或边缘设备1021,1022,…102n(统称为边缘设备102)(以一对一,一对多或多对一配置)、连接到传统系统132的多个控制器设备或边缘设备1031,…103p(统称为边缘设备103)(以一对一,一对多或多对一配置)、也是控制器设备的网关108、网络110、用户设备112或用户计算机112、代码虚拟化服务器(CVS)114或编码服务器114、以及远程服务118。在下面的讨论中,边缘设备102,103和网关108统称为“控制器设备”或“控制器”。控制器包括可编程子系统,例如,ARDUINO,TEXAS INSTRUMENTS LAUNCHPAD,FREESCALE BOARDS KINETIS,ST MICROELECTRONICSSTM32,INTEL EDISON等。控制器也可以是片上系统(SoC),例如RASPBERRY PI等。控制器的一些实施例包括其他组装设备和系统的编程的控制器,例如NEST THERMOSTAT,PHILIPPSHUE,BELKIN,WITHINGS等。
边缘设备102和网关108形成连接到网络110的一组设备(或设备组116)。在设备组116中,网关108沿着通信路径1061,1062,...106n与边缘设备102进行内部通信,并且与网络110进行外部通信。尽管通信路径通常是无线路径,但是在一些实施例中,路径可以是有线的。而且,在一些实施例中,边缘设备102沿着虚线路径1041,1042,...104n在它们之间进行通信,或沿着直接路径(未示出)与所有或一些其他边缘设备102通信,例如,形成网状网络。边缘设备103直接与网络110通信,并且在它们之间沿虚线路径109通信,并且在一些实施例中,每个边缘设备103可以与另一个边缘设备103通信,例如,形成网状网络。尽管描述了单个网关108,但是多个网关可以在组116内使用,或者跨越类似于设备组116的多个组。每个边缘设备102、每个边缘设备103和网关108是控制器设备(或包括一个控制器设备),可以从用户计算机112对其进行远程或通过直接连接进行编程。在一些实施例中,边缘设备102、边缘设备103和网关108中的每一个的控制器都可以由代码虚拟化服务器114编程。
每个设备(边缘设备102,103和网关108)都包括设备控制器(DC)和存储器,并且可以包括电子设备(ED)。此外,尽管每个设备(边缘设备102,103和网关108)都包括设备控制器和存储器,并且可以包括电子设备(ED),但是为了简洁起见,仅示出例如边缘设备103p包括设备控制器120、电子设备122和存储器124。一些未与应用系统耦接或未控制应用系统的网关(未示出)可以不包括电子设备(ED)。设备控制器120可以是微控制器(例如,PIC,AVR类型,ARM类型等)或SoC(例如,RASPBERRY PI),或者是本领域公知的微处理器。控制器的类型可以因设备而异,例如,基于这种设备的应用和所需的功能而异。电子设备122包括但不限于传感器、灯、音频扬声器、致动器、显示器、打印机、扫描仪、I/O设备等。电子设备122包括控制或管理应用系统(例如,系统131,132)的组件。存储器124可以是用于存储数据和可执行软件的任何形式的数字存储器。这种存储器包括但不限于随机存取存储器、只读存储器、磁盘存储器、光存储器等。在一些实施例中,存储器124存储对应于操作系统(未示出)的计算机可读指令。存储器124还存储自动生成的控制器程序(AGCP)126或包括自动生成的代码片段的程序、调用129(例如,对要在诸如代码虚拟化服务器114的远程服务器上执行的功能的调用)、和其他代码组件128,其他代码组件128包括执行包括AGCP 126和包括在AGCP 126中的调用129的代码所必需的程序库、软件开发工具包(SDK)。根据一些实施例,AGCP 126是从代码虚拟化服务器114接收并安装在存储器124中。组件128还能够确保边缘设备能够经由网关108与代码虚拟化服务器114通信,并且网关108能够允许这种通信。
用户设备112包括CPU 140、支撑电路142和存储器144。CPU 140可以是任何商用处理器、微处理器、微控制器等。支撑电路142包括为CPU提供功能的众所周知的电路,例如,用户接口、时钟电路、网络通信、高速缓存、电源、I/O电路等。在一些实施例中,用户接口包括小键盘、电子按钮、扬声器、触摸屏、显示器或其他用户交互机制。存储器144可以是用于存储数据和可执行软件的任何形式的数字存储器。这种存储器包括但不限于随机存取存储器、只读存储器、磁盘存储器、光存储器等。存储器144存储对应于操作系统(未示出)、图形用户界面(GUI)146的计算机可读指令,并且可以存储从CVS 114下载的用于测试或配置控制器103p的AGCP 126。当为传统系统或应用系统130和/或132设计、配置、修改或管理基于远程控制器设备的解决方案时,用户设备112耦接到网络110。在一个实施例中,在自动生成AGCP期间,用户设备112还经由网络110可通信地耦接到代码虚拟化服务器114。
GUI 146便于为给定应用系统(131,132)选择或设计所需解决方案,将解决方案细节发送到CVS 114以自动创建或修改用于边缘设备和/或网关的AGCP,测试AGCP并将AGCP配置到边缘设备102,103和/或网关108。根据一些实施例,GUI 146可以从CVS114获得预定义的解决方案模板的列表、用于设计解决方案的独立组件、有助于设计解决方案的问题或注释、或者与解决方案相关的其他详细信息。通过使用GUI,用户可以设计、创建、测试和操作基于控制器的远程解决方案,监控可操作的解决方案,修改和管理由此创建的远程解决方案。
设计的解决方案包括一个或多个控制器设备,其可通信地与应用系统耦接并且可用于监控和控制应用系统。控制器设备使用一个或多个传感器(例如,使用水箱系统中的水位传感器)监控应用系统,或直接从充当传感器的应用系统的一个或多个元件接收系统信息(例如,从包括被配置为传送锅炉温度的数字恒温器的锅炉系统接收系统信息)。类似地,控制器设备使用一个或多个致动器(例如,耦接到泵的致动器)来控制应用系统,或者直接控制充当致动器(嵌入到泵中的数字控制器)的应用系统的一个或多个元件。设计的解决方案还包括控制器设备是处于网关模式还是边缘模式的规范,配置为监控和控制应用系统的各个控制器设备之间的连接细节,控制器与应用系统的传感器、致动器或元件之间的连接细节。设计的解决方案还可以包括应用系统的致动器、传感器或元件的规格。设计的解决方案还包括应用系统的条件的规格标准,以及满足条件时要执行的动作。设计的解决方案还包括对应用系统的条件的定义(例如,通过耦接到应用系统的传感器或致动器实现),以及当满足这些条件时控制器设备要采取的动作。设计的解决方案还可以包括用于执行控制器程序(AGCP)的参数、基于控制器设备发出的远程调用要在CVS上执行的功能的参数、或者用于供应远程服务的参数。设计的解决方案还可以包括解决方案的其他组件的参数,例如,控制器、应用系统、条件、动作、致动器、传感器、连接性(连接配置文件、连接参数、协议)中的一个或多个的参数。选择作为模板的解决方案的所有组件,或使用GUI单独定义解决方案的所有组件。还可以以类似于在GUI上构建或设计解决方案的方式,使用GUI来修改设计的解决方案或其组件。
根据一些实施例,在发送AGCP以配置到控制器设备之前,可以利用使用GUI的仿真的控制器设备来测试AGCP。根据一些实施例,可以在将AGCP配置到控制器设备之后使用GUI来测试AGCP。根据一些实施例,GUI 146还可以检索在从控制器设备进行远程调用时可以在CVS 114上执行的功能列表。在一些实施例中,GUI 146包括创建用于控制器设备的程序的集成开发环境(IDE)。在一些实施例中,GUI 146是驻留在CVS 114上的软件,并且经由浏览器在用户设备112上呈现。
代码虚拟化服务器114存储各种参考库、应用程序接口(API)、软件开发工具包(SDK)、代码和SDK生成软件。CVS 114基于在GUI 146上设计并从GUI 146接收的解决方案的输入,生成用于配置在边缘设备102,103和网关108的每个控制器上配置的自动生成的控制器程序(AGCP)126。当满足与应用系统有关的条件时,AGCP包括对应于触发控制器执行的动作的代码。例如,耦接到应用系统的传感器或致动器可以达到如解决方案中的条件所定义的状态,在该状态下将触发动作以由控制器执行。该动作可以包括改变致动器的状态、或者将一个或多个远程进程调用放置到在代码虚拟化服务器114上执行的进程或功能,或者与远程服务118交互。在一些实施例中,代码虚拟化服务器114存储与解决方案相关的参数。代码虚拟化服务器114还基于从GUI 146接收的授权或指令,在控制器设备(例如,边缘设备102,103或网关108)上配置AGCP 126。授权包括使用已知技术验证经由GUI 146提供的登录凭证以验证AGCP在控制器设备上的配置。在一些实施例中,库包括解决方案列表、所需的硬件、进程、常规系统以及预定义操作或功能的列表。在一些实施例(未示出)中,可以有多个代码虚拟化服务器,例如,每个服务器与不同的一组设备相关联,或者指定每个服务器除了执行组织方案之外还执行不同的一组功能调用。
远程服务118包括由第三方服务器或数据库提供的私有或公共服务。例如,远程服务118包括第三方数据库和服务(例如,AMAZON,EBAY,FACEBOOK,APPLE PUSH NOTIFICATION服务器,文本消息服务器,电子邮件服务器等),或内部数据源(例如,数据库(DB),noSQL数据库,文件等)。代码虚拟化服务器114可以经由网络110或另一网络访问远程服务118。在一些实施例中,远程服务118可以由在控制器设备(102,103,108)上执行的AGCP直接访问。
网络110包括因特网或广域网(WAN)或其组合,并且可以包括一个或多个这样的网络。系统100的控制器边缘设备103、网关108、用户设备112、CVS 114和远程服务118经由网络110可通信地耦接。例如,如图1所示,边缘设备103使用已知技术可通信地彼此耦接,而边缘设备102彼此耦接并与网关108耦接。
图2示出了根据本发明的实施例的代码虚拟化服务器(CVS)114的框图。代码虚拟化服务器114可以是被编程为专用计算机以执行与本发明的实施例相关的功能的通用计算机或其他电子处理设备。代码虚拟化服务器114包括CPU 200、支撑电路202和包含指令和算法的存储器204。CPU 200处理设备的输入和输出。CPU 200可以是任何商用处理器、微处理器、微控制器等。支撑电路202包括为CPU提供功能的众所周知的电路,例如,用户接口、时钟电路、网络通信、高速缓存、电源、I/O电路等。替代实施例可以在定制的专用集成电路(ASIC)上使用控制算法。在一些实施例中,用户接口包括小键盘、电子按钮、扬声器、触摸屏、显示器或其他用户交互机制。存储器204可以是用于存储数据和可执行软件的任何形式的数字存储器。这种存储器包括但不限于随机存取存储器、只读存储器、磁盘存储器、光存储器等。
存储器204存储对应于操作系统(未示出)、接口206、进程库208、SDK生成器210、代码生成器212、解决方案库214、执行引擎216和参数存储器218的计算机可读指令。在一些实施例中,接口206产生包括GUI207的入口,将GUI 207发送到用户计算机112以呈现给用户,例如,作为GUI 146呈现给用户。用户使用在用户计算机112上呈现的一个或多个GUI提供关于期望的解决方案中的一个或多个的输入,该输入由代码生成器212和SDK生成器210作为输入接收以便以各个控制器设备的本地语言自动生成在控制器设备上执行的程序(例如,AGCP)。
进程库208包括与从执行AGCP的控制器接收远程调用时执行的功能相对应的程序或代码。将这样的程序称为代码虚拟化服务器程序(CVSP)209。也将每个功能或程序称为“设计(choreograph)”或“编排(choreo)”。当CVSP 209由控制器设备调用时,使得通过代码虚拟化服务器114的执行引擎216来执行CVSP 209。例如,CVSP 209执行控制器设备将不能执行的某些功能。CVSP 209还可以包括用于在远离代码虚拟化服务器114、用户设备112和控制器设备102,103或108的设备上执行或供应一个或多个远程服务118(例如,AMAZON,FACEBOOK,TWITTER等)的代码。
进程库208还包括适用于传统系统的所有进程。例如,进程库208包括用于基于传统系统的监控状态(即条件)改变致动器状态的进程(程序或代码)。例如,在水箱解决方案示例中,进程库208将包括关闭供水网的供水的进程,并且如果水箱中的水位高于预定水平则将触发该进程。
SDK生成器210生成用于支持在控制器设备上执行AGCP的SDK。SDK可以与AGCP一起配置到控制器设备,并且SDK包括在边缘设备102,103的组件128或网关108中。
代码生成器212创建完整的程序代码或插入到完整程序代码中的代码片段,以在控制器设备上执行。响应用户定义的解决方案的输入而生成完整的程序代码或代码片段。将这样的代码称为自动生成的控制器程序(AGCP)126,可以将其存储在存储器204中。如果用户在解决方案中使用GUI定义,则AGCP 126包括对代码虚拟化服务器114上的CVSP 209的调用。根据一些实施例,基于从GUI 146接收的用户输入,将AGCP 126直接发送到控制器设备以在其上执行AGCP 126。根据一些实施例,基于从GUI 146接收的用户输入,将AGCP下载到用户设备112,然后用户可以将AGCP从用户设备112配置到控制器设备。
解决方案库214包括关于用于传统系统的基于控制器的解决方案的预定义信息。解决方案库214包括诸如水箱系统、冰箱、锅炉系统、住宅供暖系统等的传统系统(例如,图1的系统131,132)或其组件的细节。传统系统的细节包括各个电子设备,其包括可用于监控和管理传统系统的传感器、致动器等。解决方案库214还包括硬件库220,其包括可用于与传统系统的这种电子设备连接的控制器设备的列表。
解决方案库214还包括语言提示和数个其他语言构建或问题,其将可用解决方案、此类解决方案的子组件、硬件库220的硬件进行结合以与用户交互。例如,可以使用包括解决方案、解决方案的子组件或硬件的各种语言构建或问题来提示用户经由GUI的适当输入,例如,关于选择适当的远程解决方案,通过选择独立组件、或从可用列表中选择和/或识别硬件来设计解决方案的输入。可以将用于对输入进行查找的问题或语言构建以一种或多种语言存储在解决方案库214中,或者解决方案库214可以包括动态语言引擎(例如,本领域已知的那些动态语言引擎)以实时生成问题或语言构建,或者采用上述两种方式的组合。该库向用户提供了几种易于理解的语言或问题,以引导出用户易于提供的输入,从而减少或消除了代码和技术术语的复杂性。通过GUI(例如,用户设备112上的GUI 146)呈现这些问题或语言构建。根据一些实施例,GUI 146是不参考CVS 114上的库的独立的GUI,并且GUI 146包括一组预定义的解决方案模板,或为用户提供空白模板以定义解决方案。GUI 146的各种格式对于本技术人员来说是容易想到的,并且本文考虑所有这些格式。
在水箱解决方案示例中,解决方案库214包括描述符“水箱”和使用户容易地识别可用的解决方案的其他同义词、水箱系统的组件(例如,水箱、一个或多个供水网、泵、相关管道、合适的控制器设备列表、以及诸如泵的致动器、水位传感器等的电子设备)。硬件库220包括与电子设备(例如,致动器和水位传感器)兼容的控制器设备的列表以及与控制器设备和电子设备有关的所有参数。例如,参数可以包括致动器的状态(泵“关”,“低速运行”,“高速运行”,监控的参数(例如水位),水位状态(例如,以英寸为单位,或为“高(HIGH)”,“中等(MEDIUM)”,“低(LOW)”。在一些实施例中,可以将控制器设备和电子设备制造为单个复合设备,并且硬件库220包括这样的复合设备的列表。
进程库208、解决方案库214和硬件库220一起也被称为“参考库”,其形成用于传统系统、这种传统系统的组件、控制器设备、以及与这种传统系统连接所需的电子设备、操作控制器设备所需的各种进程及其参数的可用解决方案的详尽池(exhaustive pool)。可以对进程库208、解决方案库214和硬件库220中的每一个进行更新以添加、移除或编辑可用解决方案。该更新可用于增强基于控制器设备的远程解决方案可用的功能,而无需升级控制器设备本身。
参数存储器218包括与解决方案有关的参数数据,并且包括例如用于执行一个或多个程序(AGCP,CVSP)以提供远程服务以及控制该程序或服务的行为的参数。这种参数包括用于访问AGCP、CVSP、控制器设备、远程服务或与其交换的数据(例如消息)的认证细节。参数存储器218还包括与各种控制器设备、传感器和致动器之间的连接有关的参数,包括连接类型、网络认证细节等。在一些实施例中,参数存储器218包括与传统系统的操作有关的参数,例如,传感器处的传统系统的条件(例如,特定测量值达到预定阈值)或致动器处的传统系统的条件(例如,在致动器完成动作时)。参数存储器218还包括与控制器设备有关的参数,例如,控制器模式(边缘设备或网关)、硬件类型、处理器类型、引脚配置以及与传感器或致动器的连接。
在一些实施例中,参数存储器218包括解决方案的参数的特定值。根据数个实施例,可以通过修改参数值(例如,在与GUI 146类似或不同的第二GUI上,以及在远程GUI设备(未示出)上而不是用户设备112)来修改解决方案的行为。在此类实施例中,远程GUI设备可通信地耦接到网络110,并在第二GUI上显示用户可以修改的参数值。第二GUI还可以显示解决方案数据(例如传感器和致动器数据),并且用户可以使用第二GUI修改参数值(例如,条件的极限集)。当解决方案启动相应的动作时,条件的极限集的变化会改变,但不会更改解决方案的编程(AGCP,CVSP)。类似地,使用第二GUI的用户可以修改与致动器有关的参数值,例如,改变致动器的输出。致动器输出的变化会改变当满足相应条件时启动的动作,而不改变解决方案的编程(AGCP,CVSP)。
根据一些实施例,可以在构建解决方案时或在稍后的时间指定其值可以改变的参数或者需要通过第二GUI监控的参数值。在一些实施例中,连接到网络110的第二服务器(未示出)用于将监控的参数数据(例如,传感器数据、致动器数据)从控制器设备发送到第二GUI,并用于接收对与监控的参数数据相关联的参数值的修改。在这样的实施例中,以与CVS114的参数存储器218类似的方式,将参数值(如使用第二GUI配置或更新的参数值)存储在第二服务器上,并且由第二服务器以预定义的时间间隔连续地(即处于流模式)或者基于事件(例如,满足应用系统的条件)对监控的参数数据进行监控。第二服务器还以固定时间间隔连续地或以流模式、或基于基于事件(例如,满足应用系统的条件)将该数据(监控的参数数据)传送到第二GUI。在该实施例中,使用存储在第二服务器上的参数值来执行AGCP和/或CVSP。在一些实施例中,第二GUI由第二服务器生成并呈现给远程GUI设备。在一些实施例中,第二服务器实现为CVS 114的一部分,并且在一些实施例中,第二服务器实现为远程服务118。
表1中示出了包括在简档218中的参数的示例,但不限于此。
表1
参数存储器218包括根据AGCP 126的期望行为的参数,并且进而包括被调用的CVSP 209和/或远程服务118。根据本发明的一些实施例,参数存储器218包括用户在用户设备112的GUI 146上输入的并且被发送到参数存储器218的参数。根据一些实施例,可以修改某些参数以控制AGCP代码的行为而不修改AGCP代码本身。例如,修改与远程服务的认证细节有关的参数将不需要修改或重新生成AGCP代码。在一些实施例中,可能需要在修改参数(例如,与控制器配置有关的参数)时修改或重新生成AGCP代码。
例如,通过执行由控制器设备112调用的CVSP(编排),并进一步在远离用户设备112、代码虚拟化服务器114和控制器设备102,103或108的设备上执行远程服务118,以及促进系统100的各个组件之间的互操作性,执行引擎216能够支持所有上述功能。执行引擎216利用上述每个功能块使用户能够通过用户设备112上的GUI 146对控制器设备进行编程,并通过代码虚拟化服务器114和远程服务118向控制器设备提供扩展功能。
在一些实施例中,CVS 114在执行CVSP之后,将通过执行调用所产生的数据返回到控制器设备以进行进一步处理。以控制器设备类型的本机格式发送产生的数据,使控制器设备能够进一步处理该数据,例如,通过继续执行存储在控制器设备上的AGCP来进一步处理该数据。CVS 114或者以控制器设备类型的本机格式生成该产生的数据,或者使用已知技术将产生的数据转换为控制器设备类型的本机格式。在其他实施例中,控制器设备不需要产生的数据来继续其操作,并且在该实施例中,代码虚拟化服务器简单地发送响应于AGCP的调用而完成了对CVSP代码(或抽象代码)的执行的指示或确认。
为了简化讨论,本文描述的实施例示出代码虚拟化服务器114生成用于监控和控制解决方案的GUI。在一些实施例中,如上所述,在独立服务器上实现用于监控和控制解决方案的GUI,该独立服务器与代码虚拟化服务器不同并且远离代码虚拟化服务器。如上所述,本文描述的代码虚拟化服务器114的数个功能中的任何一个或多个可以通过独立于代码虚拟化服务器的两个或更多个服务器来实现,这对于普通技术人员来说是容易想到的,并且所有这些实现方式都是本文考虑的。
图3描述了根据本发明实施例的由代码虚拟化服务器(CVS)114执行的用于创建基于控制器的远程解决方案的方法300的流程图。在一些实施例中,响应于对GUI(例如,用户设备112的GUI 146)的操作,与代码虚拟化服务器114的接口206交互,而执行方法300。在一些实施例中,GUI 146是通过网络浏览器(举例来说,例如在用户设备上的因特网浏览器、谷歌CHROME、火狐)实现的GUI 207。在一些实施例中,GUI 146是用户设备112上的独立GUI。
方法300开始于步骤302并进行到步骤304,在步骤304,方法300在CVS 114接收在GUI 146上设计的解决方案的输入。该解决方案包括一个或多个控制器(例如,图1的控制器102,103或108),该一个或多个控制器可通信地耦接到并可用于控制配置在应用系统(例如,水箱、锅炉、制冷系统)中的一个或多个传感器和/或致动器。也可以将传感器和/或致动器称为电子设备,例如电子设备122。控制器103和108直接可通信地耦接到CVS 114,而控制器102通过控制器108可通信地耦接到CVS 114。所有控制器(102,103,108)都远离CVS 114和用户设备112。该解决方案还包括指定应用系统的条件,例如,在传感器和/或致动器处指定条件。该条件可以包括传感器的状态(被测量的量的特定阈值)、或致动器的状态(动作的完成),可以基于该条件将解决方案设计为采取进一步的动作。解决方案包括当满足指定条件时由控制器执行的动作的定义。解决方案还包括解决方案的一个或多个参数,例如,如上所述的各种参数。解决方案存储在CVS 114上,并进一步如下操作。
方法300进行到步骤306,在步骤306,方法300在CVS 114上自动生成在控制器(102,103,108)上执行的程序。自动生成的控制器程序(AGCP)126包括用于检查是否满足解决方案中指定的条件的代码以及用于执行解决方案中指定的动作的代码。以为其生成AGCP的控制器的本地语言生成AGCP。AGCP还可以包括用于协助执行AGCP的SDK或其他代码组件。在一些实施例中,SDK或代码组件可以单独生成,并且可以不包括在AGCP中。AGCP包括管理以下动作的代码:管理控制器的输入和输出并将这些输入和输出分配给传感器或致动器以通过致动器和传感器适当地发送和接收数据。例如,根据用户在GUI 146上定义的解决方案,AGCP包括用于注册控制器的特定输入和输出端口(例如,引脚),用于在传感器或致动器处监控条件、用于指示致动器、用于与其他控制器(例如,网关)、CVS 114、或者直接与远程服务118通信的代码。
方法300进行到步骤308,在步骤308,方法300将AGCP下载到用户设备112上的存储器(例如,存储器144)中,例如,以由用户使用GUI 146在控制器设备上安装AGCP。或者,在步骤308,方法300基于从GUI 146接收的输入将AGCP直接发送到控制器设备进行安装。方法300进行到步骤310,在步骤310,方法300结束。
根据方法300安装在控制器设备上的AGCP在由控制器设备执行时,用于检查是否满足解决方案指定的条件,并且当满足条件时,执行在解决方案中指定的动作。除了数个其他可编程动作之外,该动作可以包括指示致动器采取附加动作,将状态信息发送到CVS 114或另一个指定设备,放置远程调用以在控制器设备的远端执行程序。
图4描述了根据本发明实施例的由代码虚拟化服务器(CVS)114执行的用于管理基于控制器的远程解决方案的方法400的流程图。与方法300类似,响应于对GUI 146的操作而执行方法400。在任何时候,可以根据需要仅实施方法400的一个或一些步骤。为了管理(监控和修改)解决方案,不需要实现方法400的所有步骤。
方法400开始于步骤402,并且进行到可选步骤404,在步骤404,方法400将预定义的解决方案模板、控制器、传感器、致动器、条件、动作或基于控制器设备的远程调用而在CVS 114上执行的功能中的一个或多个的标识符发送到用户设备112,以使用GUI 146进行显示。方法400进行到步骤406,在步骤406,例如,根据图3的方法300,方法400接收在GUI146上设计的解决方案的输入,并创建用于解决方案的各个控制器的AGCP,从而为应用系统创建基于控制器的远程解决方案。
方法400进行到步骤408,在步骤408,方法400从控制器请求解决方案的一个或多个组件(例如,控制器、传感器、致动器、条件、动作、或者参数)的状态信息,并且在步骤410,方法400接收请求的状态信息。根据一些实施例,控制器自动将状态信息发送到方法400,而不需要来自该方法的请求(例如,如在步骤408中所做的那样)。例如,控制器可以在发生预定义的事件时(包括满足条件),以预定时间间隔自动发送状态信息,或者可以连续地发送状态信息。
方法400进行到可选步骤412,在步骤412,方法400例如通过GUI 146接收对解决方案的一个或多个组件(例如,控制器、传感器、致动器、条件、动作或参数)的状态信息的请求。方法400进行到步骤414,在步骤414,方法400将状态信息发送到用户设备112以在GUI146上显示。方法400可以在例如发生预定义的事件时(包括满足条件),以预定时间间隔自动发送状态信息,或者可以连续地将状态信息发送到用户设备。根据一些实施例,响应于在可选步骤412接收到的请求,而在步骤414发送状态信息。
方法400进行到步骤416,在步骤416,方法400通过GUI 146接收用于修改解决方案的一个或多个组件的输入。方法400进行到步骤418,在步骤418,方法400可以基于接收到的修改自动更新参数存储器218中的参数,或者方法400基于接收到的修改来修改或重新生成AGCP 126,并将修改或重新生成的AGCP 126发送到接收到修改的相应控制器。当解决方案修改涉及控制器或控制器的配置时(例如,改变控制器类型或处理器类型,改变与传感器或致动器相关联的引脚),修改或重新生成AGCP。当修改与控制器、传感器或致动器中的配置的改变无关的参数时,通常不需要修改或重新生成AGCP。在这种情况下,在参数存储器218上更新参数,因此,更新的参数可由AGCP访问。
方法400进行到步骤420,在步骤420,方法使用已知技术启动对在控制器上执行AGCP的测试。可以例如在通过CVS 114配置AGCP之后,在物理控制器上进行该测试,或者例如使用在用户设备112上下载的GUI 146和AGCP在仿真控制器上进行测试。在步骤422,方法400将测试结果发送到用户设备112以在GUI 146上显示。方法400进行到步骤424,方法400在步骤424结束。
图5是示出根据本发明的实施例的用于在控制器设备(设备102,103或网关108)、代码虚拟化服务器114和远程服务118上操作远程解决方案的方法500的流程图。方法500在控制器设备上在步骤502开始,并且进行到步骤504,在步骤504,方法500将AGCP 126安装到控制器设备上。AGCP 126包括与控制器设备相关联的预定义的程序代码或进程以及相应的SDK。AGCP 126包括对远程设备的调用以执行与功能相对应的程序。例如,可以调用代码虚拟化服务器114上的CVSP 209。在步骤506,方法500开始在控制器设备上并由控制器设备执行AGCP 126。可以由代码虚拟化服务器114或用户设备112上的GUI 146启动AGCP 126的安装和/或执行。在执行的过程中,根据图3的方法300,AGCP监控在耦接的传感器或执行器处的条件是否满足例如在解决方案中指定的条件,AGCP基于该解决方案生成。在步骤508,当满足条件时,AGCP执行解决方案中指定的动作。根据一些实施例,动作包括操作致动器、发送传感器或致动器数据以显示到GUI、或者将远程调用放置到在远程设备(例如,CVS 114)上执行的进程。操作致动器是在控制器上执行AGCP的正常过程中完成,并且在这种情况下,动作是继续在控制器上执行方法500。在这种情况下,不放置远程调用,并且方法500的执行不需要移出控制器,方法500直接进行到步骤518。
放置远程调用或者将传感器或致动器数据发送到GUI(其可以是用于将传感器或致动器数据发送到GUI的远程调用)需要将方法500的执行从控制器转移到CVS 114,并且在这种情况下,动作是向CVS 114发出远程调用。CVS 114包括与远程调用相对应的程序(CVSP),并且在接收到远程呼叫时,方法500就进行到在CVS 114执行的步骤510,在步骤510,方法500执行CVSP。例如,方法500使用执行引擎216执行来自进程库208的CVSP 209。例如,在步骤510,方法500可以将传感器和/或致动器数据从控制器发送到用户设备以在GUI146上显示。根据一些实施例,在完成CVSP 209的执行并且因此完成远程调用129的执行之后,方法500进行到步骤512。
在一些实施例中,AGCP 126和远程调用129还被配置为执行远程服务118,并且在这样的实施例中,步骤510还包括可选步骤514和516。在步骤514和516,方法500的执行转移到远程服务118,由远离控制器设备、代码虚拟化服务器和用户设备的设备执行。在步骤514,方法500执行远程服务118,并且进行到步骤516,在步骤516,如果通过执行远程服务118生成服务数据,则方法500将服务数据返回到步骤510。在步骤510,完成CVSP 209的执行,CVSP 209的执行包括远程服务118的执行。方法500进行到步骤512,在步骤512,方法500的执行从代码虚拟化服务器114返回到控制器设备。根据一些实施例,将与方法500的执行一起返回到控制器设备的任何数据转换为控制器设备的本地语言或与控制器设备的语言兼容的格式。在步骤518,方法500继续在控制器设备上执行AGCP 126。在一些实施例中,可以在步骤510在代码虚拟化服务器114上完成执行代码,并且在步骤512和518不会发生代码的额外执行。方法500进行到步骤420,方法500在步骤420结束。
图6描述了根据本发明的实施例创建的远程解决方案600。传统系统630包括水箱632、耦接到供水网636的泵622-B、雨水收集系统634和水位传感器622-A。根据本发明的实施例,解决方案600包括边缘设备602、网关设备608、网络610、用户设备612、代码虚拟化服务器614和远程服务618-A、618-B和618-C,其分别与图1的边缘设备102、网关设备108、用户设备112、代码虚拟化服务器114和远程服务118类似。边缘设备602例如经由无线装置606可通信地耦接到网关设备608,以根据用户经由用户设备612上的GUI(未示出)配置以及由代码虚拟化服务器614实现的解决方案来管理传统系统630。此外,边缘设备602与传统系统的组件(例如,传感器622-A或泵622-B)之间的通信连接可以是有线的或无线的。
网关设备608和边缘设备602中的每一个是根据方法300配置有相应AGCP的控制器设备。AGCP包括对远离边缘设备和网关设备608的设备(例如,代码虚拟化服务器614)的调用。网关设备608被配置为通过网络610适当地路由来自边缘设备602的调用。通常对包括具有根据AGCP中的调用所需功能的进程的代码虚拟化服务器614进行调用。在一些实施例中,代码虚拟化服务器614和远程服务618-A,618-B,618-C经由网络610可通信地耦接到网关608。在一些实施例中,代码虚拟化服务器614包括进程库,该进程库包括CVSP和执行引擎。在一些实施例中,通过网关608对代码虚拟化服务器614上的CVSP(未示出)进行来自边缘设备602的调用,代码虚拟化服务器614执行CVSP,并且进而执行一个或多个远程服务,例如,如NEXMO公司提供的电话呼叫服务618-A,或者如雅虎公司提供的天气预报服务618-B,或者用于向水箱系统630的管理公司提出投诉票的票务系统服务618-C。
根据一些实施例,电话呼叫服务618-A用于当在水箱中检测到问题的情况下或在满足用户设置的特定条件的情况下通知用户或管道公司。例如,用户可以通过使用用户设备的GUI输入的参数指定如果传感器622-A测量的水箱632中的水位低,则边缘设备602使用电话呼叫服务618-A通过放置调用来通知用户。另外,边缘设备602被配置为致动泵622-B以将水从供水网636供应到水箱632。作为另一个示例,天气预报服务618-B可以由如通过本发明实施例所实现的解决方案600使用,以在预期下雨的情况下推迟使用供水网636。例如,用户可以在AGCP或CVSP中指定条件:如果当天的天气预报是可能下雨,即使传感器622-A测量的水箱632中的水位为低,也不从供水网636向水箱632供水。根据一些实施例,边缘设备602通知用户水位低但由于预期的降雨而未提供供水网水。在不脱离本文所述实施例的范围和精神的情况下,本领域技术人员将容易地想到这些和其他服务的数个类似应用,并且由权利要求限定这些和其他服务的数个类似应用。
本发明的实施例提供了以解决方案为中心的方法来设计、创建和配置基于控制器的远程解决方案以操作和管理传统系统。本发明的实施例还提供对由此创建的远程解决方案的管理。本发明的实施例还提供增强远程解决方案的容量而无需修改控制器缺陷,例如,利用代码虚拟化服务器进行更新。
虽然本文描述的方法300利用用户计算机112上的GUI 146远程访问代码虚拟化服务器114以创建和管理远程解决方案,但是可以通过直接访问代码虚拟化服务器114(例如,使用接口206或GUI 207)来创建和管理远程解决方案。GUI 146可以采用各种形式来提供用于接收输入的工具,该输入用于设计、测试、监视和修改用于应用系统的基于控制器的解决方案。GUI 146可以包括可选文本、表单字段、表示解决方案的元素或参数的图标、用于显示解决方案状态的图形和表格、以及为了接收输入并呈现信息或输出而在GUI中使用的数个其他常规元素。如本领域普通技术人员容易想到的,在不脱离本发明的范围和精神的情况下,可以使用GUI的各种这样的变型来实践所描述的实施例。虽然针对物联网(IoT)设备描述了实施例,但是本领域技术人员将容易理解,由公开的实施例示例的技术适用于数个其他编程环境。
在不同实施例中,本文描述的方法可以以软件、硬件或其组合来实现。该方法可以包含在存储在非暂时性计算机可读介质上的处理器可执行指令中。另外,可以改变方法的顺序,并且可以添加、重新排序、组合、省略或以其他方式修改各种元素。本文描述的所有例子都以非限制性方式呈现。可以进行各种修改和改变,这对于受益于本公开的本领域技术人员来说是显而易见的。已经在特定实施例的上下文中描述了根据实施例的实现。这些实施例是说明性的而非限制性的。可以进行许多变化、修改、添加和改进。因此,可以将在此描述的组件的多个实例作为单个实例提供。各种组件、操作和数据存储之间的边界在某种程度上是任意的,并且在特定说明性配置的上下文中示出了特定操作。设想了其他功能分配,并且其可以落入随后的权利要求的范围内。最后,在示例配置中作为离散组件呈现的结构和功能可以实现为组合结构或组件。这些和其他变化、修改、添加和改进可以落入如以下权利要求中限定的实施例的范围内。
虽然前述内容针对本发明的实施例,但是可以在不脱离本发明的基本范围的情况下设计本发明的其他和更多实施例,并且本发明的范围由所附的权利要求确定。
Claims (15)
1.一种计算机实现的方法,所述方法用于创建和管理基于控制器的远程解决方案,所述方法包括:
在代码虚拟化服务器(CVS)处,从远离所述CVS的用户设备上的图形用户界面(GUI)接收在所述GUI上设计的解决方案的输入,所述解决方案包括:
至少一个控制器,所述至少一个控制器与传感器或致动器中的至少一个可通信地耦接并且可操作以控制所述传感器或致动器中的至少一个,其中,所述至少一个控制器远离所述CVS和所述用户设备,
在所述传感器或所述致动器中的至少一个处的条件,
由所述至少一个控制器执行的动作,其中,当满足所述条件时执行所述动作,以及
所述解决方案的至少一个参数;
基于输入的解决方案,在所述CVS上自动生成在所述至少一个控制器上执行的程序,其中,所述程序包括用于检查是否满足所述条件并且当满足所述条件时执行所述动作的代码;以及
将自动生成的控制器程序(AGCP)从所述CVS下载到所述用户设备上的存储器,或者将所述AGCP从所述CVS发送到所述至少一个控制器,以安装在所述至少一个控制器上。
2.根据权利要求1所述的方法,还包括:
将控制器、传感器、致动器、条件、动作或存储在所述CVS上的解决方案库中的预定义的解决方案模板中的至少一个的标识符从所述CVS发送到所述用户设备以显示在所述GUI上,
其中,所述解决方案从预定义的解决方案模板选择,或者通过单独定义所述至少一个控制器、所述传感器或所述致动器中的至少一个、所述条件、所述动作、所述至少一个参数、或者它们之间的连接中的一个或多个来构建所述解决方案。
3.根据权利要求1所述的方法,还包括:
从所述至少一个控制器请求所述至少一个控制器、所述至少一个传感器或致动器、所述至少一个条件、所述动作、或所述参数中的至少一个的状态信息;
接收请求的状态信息;
从所述GUI接收对所述至少一个控制器、所述至少一个传感器或致动器、所述至少一个条件、所述动作、或所述参数中的至少一个的状态信息的请求;以及
将请求的状态信息发送到所述用户设备以在所述GUI中显示。
4.根据权利要求3所述的方法,还包括:
在所述CVS处从所述GUI接收用于修改所述至少一个控制器、所述至少一个传感器或致动器、所述至少一个条件、所述动作、或所述参数中的至少一个的输入,其中,所述修改需要AGCP的改变;
基于修改的输入,自动修改或重新生成AGCP;以及
将修改的或重新生成的AGCP发送到所述至少一个控制器以安装到所述控制器上。
5.根据权利要求3所述的方法,还包括:
在所述CVS处从所述GUI接收用于修改所述参数的输入,其中,所述修改不需要修改或重新生成所述AGCP;以及
基于所述修改,自动更新所述至少一个参数,
其中,所述参数的修改与所述至少一个控制器或所述传感器或所述致动器中的至少一个的配置的改变无关。
6.根据权利要求1所述的方法,其中,以适于在所述至少一个控制器上执行的语言自动生成所述AGCP。
7.根据权利要求1所述的方法,其中,所述至少一个控制器包括输入或输出中的至少一个,并且其中,所述方法还包括:将所述至少一个条件的指定接收到所述输入或所述输出中的至少一个。
8.根据权利要求1所述的方法,还包括:
对所述AGCP在至少一个远程控制器上的执行进行测试;以及
将测试结果发送到所述用户设备以显示在所述GUI上。
9.根据权利要求1所述的方法,还包括:
将存储在所述CVS上的进程库中的至少一个功能的定义发送到所述用户设备以显示在所述GUI上,
其中,所述解决方案还包括由所述至少一个控制器调用以远程执行到所述至少一个控制器的功能,
其中,自动生成用于至少一个控制器的程序包括:在所述AGCP中嵌入从所述至少一个控制器到所述CVS的远程调用,以在所述CVS上执行所述功能,以及
其中,所述动作包括放置远程调用、发送传感器或致动器数据以显示给所述GUI、或操作所述致动器中的至少一个。
10.根据权利要求9所述的方法,还包括:
在所述CVS处从所述至少一个控制器接收用于执行所述功能的远程调用;
在所述CVS上执行所述功能;以及
将执行所述功能得到的数据发送到所述至少一个控制器。
11.根据权利要求10所述的方法,其中,执行所述功能还包括提供远程服务,其中,所述远程服务不同于由所述至少一个控制器或所述CVS提供的服务。
12.一种用于创建和管理基于控制器的远程解决方案的装置,所述装置包括:
处理器;和
包括可执行指令的存储器,当使用所述处理器执行所述可执行指令时,所述可执行指令实现包括以下步骤的方法:
在代码虚拟化服务器(CVS)处,从远离所述CVS的用户设备上的图形用户界面(GUI)接收在所述GUI上设计的解决方案的输入,所述解决方案包括:
至少一个控制器,所述至少一个控制器与传感器或致动器中的至少一个可通信地耦接并且可操作以控制所述传感器或致动器中的至少一个,其中,所述至少一个控制器远离所述CVS和所述用户设备,
在所述传感器或所述致动器中的至少一个处的条件,
由所述至少一个控制器执行的动作,其中,当满足所述条件时执行所述动作,以及
所述解决方案的至少一个参数;
基于输入的解决方案,在所述CVS上自动生成在所述至少一个控制器上执行的程序,其中,所述程序包括用于检查是否满足所述条件并且当满足所述条件时执行所述动作的代码;以及
将自动生成的控制器程序(AGCP)从所述CVS下载到所述用户设备上的存储器,或者将所述AGCP从所述CVS发送到所述至少一个控制器,以安装在所述至少一个控制器上。
13.根据权利要求12所述的装置,其中,所述方法还包括:
从所述GUI接收对所述至少一个控制器、所述至少一个传感器或致动器、所述至少一个条件、所述动作、或所述参数中的至少一个的状态信息的请求;以及
将请求的状态信息发送到所述用户设备以显示在所述GUI中。
14.根据权利要求13所述的装置,其中,所述方法还包括:
在所述CVS处从所述GUI接收用于修改所述至少一个控制器、所述至少一个传感器或致动器、所述至少一个条件、所述动作、或所述参数中的至少一个的输入;以及
自动实施以下操作中的一个:
如果所述修改需要AGCP的改变,则基于修改的输入修改或重新生成AGCP,并将修改的或重新生成的AGCP发送到所述至少一个控制器以安装到所述控制器上,或者
如果所述修改不需要AGCP的改变,则基于所述修改更新所述至少一个参数。
15.根据权利要求12所述的装置,其中,所述AGCP包括用于放置从所述至少一个控制器到所述CVS的远程调用以在所述CVS上执行功能的代码,其中,所述动作包括放置所述远程调用中的至少一个,所述方法还包括:
在所述CVS处从所述至少一个控制器接收用于执行所述功能的远程调用;
在所述CVS上执行所述功能;以及
将执行所述功能得到的数据发送到所述至少一个控制器。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562270107P | 2015-12-21 | 2015-12-21 | |
US62/270,107 | 2015-12-21 | ||
US201662377963P | 2016-08-22 | 2016-08-22 | |
US62/377,963 | 2016-08-22 | ||
PCT/US2016/067944 WO2017112735A2 (en) | 2015-12-21 | 2016-12-21 | Method and apparatus for creating and managing controller based remote solutions |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108604186A true CN108604186A (zh) | 2018-09-28 |
CN108604186B CN108604186B (zh) | 2021-11-16 |
Family
ID=59066616
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680081438.4A Active CN108604186B (zh) | 2015-12-21 | 2016-12-21 | 用于创建和管理基于控制器的远程解决方案的方法和装置 |
Country Status (9)
Country | Link |
---|---|
US (1) | US10732969B2 (zh) |
EP (1) | EP3394743B1 (zh) |
JP (1) | JP6925365B2 (zh) |
KR (1) | KR20180087446A (zh) |
CN (1) | CN108604186B (zh) |
CA (1) | CA3009166A1 (zh) |
HK (1) | HK1254161A1 (zh) |
SG (1) | SG11201805215UA (zh) |
WO (1) | WO2017112735A2 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109891854A (zh) * | 2016-08-22 | 2019-06-14 | 西安姆贝拉有限公司 | 用于创建和管理基于控制器的远程解决方案的方法和设备 |
CN114846418A (zh) * | 2019-12-18 | 2022-08-02 | 格兰富控股公司 | 用于定义和配置流体处理系统的硬件设置的方法和系统 |
CN117376692A (zh) * | 2023-04-24 | 2024-01-09 | 深圳云视智景科技有限公司 | 功能自定义方法、装置、存储介质及电子设备 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111417907A (zh) * | 2017-12-01 | 2020-07-14 | 西安姆贝拉有限公司 | 创建和管理智能可编程逻辑控制器解决方案的方法和装置 |
CN109960570B (zh) | 2017-12-14 | 2021-09-03 | 北京图森智途科技有限公司 | 一种多模块调度方法、装置及系统 |
CN109960571B (zh) * | 2017-12-14 | 2022-03-25 | 北京图森智途科技有限公司 | 一种多模块调度方法、装置及系统 |
US11190513B2 (en) | 2018-01-19 | 2021-11-30 | Vmware, Inc. | Gateway enrollment for internet of things device management |
JP2021530799A (ja) * | 2018-07-17 | 2021-11-11 | アイ・ティー スピークス エル・エル・シーiT SpeeX LLC | インテリジェント産業アシスタントのための方法、システム、および、コンピュータプログラム製品 |
US11005719B2 (en) * | 2018-12-11 | 2021-05-11 | Vmware, Inc. | Internet of Things system topology generation |
WO2023102604A1 (en) * | 2021-12-07 | 2023-06-15 | Max Finselbach | System and method for remotely monitoring a contained volume of liquid |
WO2023115159A1 (en) * | 2021-12-23 | 2023-06-29 | Max Finselbach | System and method for remotely monitoring water quality |
WO2023174535A1 (en) * | 2022-03-17 | 2023-09-21 | Robert Bosch Gmbh | Method for configuration of a surveillance system, computer program and storage medium |
WO2023174536A1 (en) * | 2022-03-17 | 2023-09-21 | Robert Bosch Gmbh | Method for operating distributed solution modules for a surveillance system, computer program, storage medium and surveillance system |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101359263A (zh) * | 2007-06-06 | 2009-02-04 | 索尼株式会社 | 输入装置、控制装置、控制系统、控制方法及其程序 |
US20110295391A1 (en) * | 2010-05-25 | 2011-12-01 | Siemens Product Lifecycle Management Software Inc. | Method and System for Closed-Loop Controller Programming |
CN102349031A (zh) * | 2009-03-13 | 2012-02-08 | Abb技术有限公司 | 用于部分地由实现运行时过程的一个或者多个计算机实现的过程控制系统中的控制的方法 |
CN103513894A (zh) * | 2012-06-20 | 2014-01-15 | 三星电子株式会社 | 显示设备、远程控制设备及其控制方法 |
US20150045960A1 (en) * | 2012-01-23 | 2015-02-12 | Scl Elements Inc. | Programmable peripheral unit |
US20150199088A1 (en) * | 2014-01-10 | 2015-07-16 | Ciambella Ltd. | Method and apparatus for automatic device program generation |
US9201770B1 (en) * | 2013-12-26 | 2015-12-01 | Emc Corporation | A/B testing of installed graphical user interfaces |
Family Cites Families (72)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6108715A (en) | 1994-12-13 | 2000-08-22 | Microsoft Corporation | Method and system for invoking remote procedure calls |
US6065053A (en) | 1997-10-01 | 2000-05-16 | Micron Electronics, Inc. | System for resetting a server |
US6158031A (en) | 1998-09-08 | 2000-12-05 | Lucent Technologies, Inc. | Automated code generating translator for testing telecommunication system devices and method |
US7376904B2 (en) | 2000-06-13 | 2008-05-20 | National Instruments Corporation | Automatic generation of programs with GUI controls for interactively setting or viewing values |
US6907446B1 (en) | 2000-10-16 | 2005-06-14 | Implicit Networks, Inc. | Method and system for dynamic delivery of beads |
US20020194608A1 (en) | 2001-04-26 | 2002-12-19 | Goldhor Richard S. | Method and apparatus for a playback enhancement system implementing a "Say Again" feature |
US7103641B2 (en) | 2001-06-18 | 2006-09-05 | Intel Corporation | Method and apparatus for distributing computer platform firmware across a network |
US8086664B2 (en) | 2001-09-24 | 2011-12-27 | Siemens Industry, Inc. | Method and apparatus for programming programmable controllers and generating configuration data from a centralized server |
US8082318B2 (en) | 2001-09-28 | 2011-12-20 | British Telecommunications Plc | Controlling service requests transmitted from a client to a server |
US6895573B2 (en) | 2001-10-26 | 2005-05-17 | Resultmaker A/S | Method for generating a workflow on a computer, and a computer system adapted for performing the method |
US7086014B1 (en) | 2001-11-19 | 2006-08-01 | Cypress Semiconductor Corporation | Automatic generation of application program interfaces, source code, interrupts, and datasheets for microcontroller programming |
US20030120707A1 (en) | 2001-12-21 | 2003-06-26 | Sander Bogdan | Systems and methods for exporting functionality of a modularized system |
US7346672B2 (en) | 2002-03-12 | 2008-03-18 | Hewlett-Packard Development Company, L.P. | Automatic TFTP firmware download |
US20030204560A1 (en) | 2002-04-26 | 2003-10-30 | Chen Thomas C.H. | Programmable Logic Controller with embedded Intelligent Web Server |
CN100375086C (zh) | 2002-07-03 | 2008-03-12 | 东京电子株式会社 | 用于动态传感器配置和运行时间执行的方法和设备 |
US8074201B2 (en) | 2002-07-10 | 2011-12-06 | National Instruments Corporation | Deployment and execution of a program on an embedded device |
SE524627C2 (sv) | 2002-10-07 | 2004-09-07 | Abb Research Ltd | Trådlös regulator och förfarande för styrning av en anordning anordnad relativt en robot |
US7457815B2 (en) | 2003-03-27 | 2008-11-25 | Apple Inc. | Method and apparatus for automatically providing network services |
WO2005020021A2 (en) | 2003-08-22 | 2005-03-03 | Idx Systems Corporation | Information system supporting customizable user interfaces and process flows |
EP1530139A1 (en) | 2003-11-05 | 2005-05-11 | Sap Ag | Method and computer system for workflow management |
US8104043B2 (en) | 2003-11-24 | 2012-01-24 | Microsoft Corporation | System and method for dynamic cooperative distributed execution of computer tasks without a centralized controller |
US7331047B2 (en) | 2003-11-25 | 2008-02-12 | Microsoft Corporation | Deterministic system and method for implementing software distributed between a desktop and a remote device |
US7574512B2 (en) | 2004-04-15 | 2009-08-11 | Schneider Automation Sas | MODBUS encapsulated transport interface |
US20060036755A1 (en) | 2004-05-07 | 2006-02-16 | Abdullah Ibrahim S | Meta-protocol |
US7810099B2 (en) | 2004-06-17 | 2010-10-05 | International Business Machines Corporation | Optimizing workflow execution against a heterogeneous grid computing topology |
US7603562B2 (en) | 2005-02-02 | 2009-10-13 | Insyde Software Corporation | System and method for reducing memory requirements of firmware |
US7530059B2 (en) | 2005-02-18 | 2009-05-05 | International Business Machines Corporation | Method for inlining native functions into compiled java code |
US9317259B2 (en) | 2005-05-12 | 2016-04-19 | International Business Machines Corporation | Apparatus, system, and method for automatically generating a reusable software component for interfacing with a web service |
US8055386B2 (en) | 2005-08-22 | 2011-11-08 | Trane International Inc. | Building automation system data management |
US7481361B2 (en) | 2005-09-29 | 2009-01-27 | International Business Machines Corporation | Method and system for identifying unsafe synthetic transactions and modifying parameters for automated playback |
US20070174037A1 (en) | 2005-11-10 | 2007-07-26 | Chuan-Po Ling | Multiple-microcontroller emulation system, multiple-microcontroller integrated development environment, and method for the same |
KR100687762B1 (ko) | 2006-03-07 | 2007-02-27 | 한국전자통신연구원 | 코드 해석 장치, 코드정보 제공 장치 및 이를 이용한 방법 |
JP4808558B2 (ja) | 2006-07-12 | 2011-11-02 | 日本電信電話株式会社 | 連携シナリオ作成支援システム及びその方法並びにプログラム |
US7886234B2 (en) | 2006-10-13 | 2011-02-08 | Mediatek Inc. | Systems and methods for creating embedded target images |
US8453104B2 (en) * | 2006-10-27 | 2013-05-28 | Microsoft Corporation | Thin client software development environment |
KR20080044576A (ko) | 2006-11-17 | 2008-05-21 | 오종택 | 애드혹 통신 네트워크를 이용한 전력분산 장치 및 시스템과그 방법 |
CN201017215Y (zh) | 2007-03-29 | 2008-02-06 | 王忠伟 | 一种终端控制器 |
US8185581B2 (en) | 2009-05-19 | 2012-05-22 | Nholdings Sa | Providing a local device with computing services from a remote host |
JP2008276690A (ja) * | 2007-05-07 | 2008-11-13 | Ize:Kk | 開発システム、開発システムのサーバ、開発方法 |
US10997531B2 (en) | 2007-09-11 | 2021-05-04 | Ciambella Ltd. | System, method and graphical user interface for workflow generation, deployment and/or execution |
US20090198770A1 (en) * | 2008-02-04 | 2009-08-06 | Universal Scientific Industrial Co., Ltd. | System and method of updating codes in controller |
US9311115B2 (en) | 2008-05-13 | 2016-04-12 | Apple Inc. | Pushing a graphical user interface to a remote device with display rules provided by the remote device |
US8099332B2 (en) | 2008-06-06 | 2012-01-17 | Apple Inc. | User interface for application management for a mobile device |
US8249950B2 (en) | 2008-07-11 | 2012-08-21 | Ebay Inc. | Payment mechanism integration wizard |
CN102177501B (zh) | 2008-08-25 | 2015-08-12 | 宝威电源意大利股份公司 | 电子设备及其管理方法 |
CN101373441B (zh) | 2008-09-19 | 2012-04-18 | 苏州壹世通科技有限公司 | 一种基于固件的虚拟化平台系统 |
DE102009011679A1 (de) * | 2009-02-23 | 2010-08-26 | Pilz Gmbh & Co. Kg | Verfahren und Vorrichtung zum Erstellen eines Anwenderprogrammes für eine Sicherheitssteuerung |
US8948067B2 (en) | 2009-04-23 | 2015-02-03 | Honeywell International Inc. | Wireless controller grids for process control and other systems and related apparatus and method |
JP2011150430A (ja) | 2010-01-19 | 2011-08-04 | Kyocera Mita Corp | Sdk配布パッケージ生成装置、sdk配布パッケージ生成方法、およびsdk配布パッケージ生成プログラム |
US8775781B2 (en) | 2010-03-25 | 2014-07-08 | Microsoft Corporation | Intelligent boot device selection and recovery |
CN102262557B (zh) | 2010-05-25 | 2015-01-21 | 运软网络科技(上海)有限公司 | 通过总线架构构建虚拟机监控器的方法及性能服务框架 |
US8959363B2 (en) | 2010-06-03 | 2015-02-17 | Intel Corporation | Systems, methods, and apparatus to virtualize TPM accesses |
US8479154B1 (en) | 2010-08-20 | 2013-07-02 | Google Inc. | Interaction with partially constructed mobile device applications |
CN102479079B (zh) | 2010-11-29 | 2015-04-01 | 中兴通讯股份有限公司 | 应用生成方法和装置 |
US9250883B2 (en) | 2011-06-02 | 2016-02-02 | Open Invention Network, Llc | System and method for pervasive software platform-based model driven architecture application generator |
CN102999322A (zh) | 2011-09-16 | 2013-03-27 | 深圳市吉阳自动化科技有限公司 | 一种工业控制器软件界面设计方法 |
DE112011105752T5 (de) | 2011-10-21 | 2014-10-02 | Hewlett-Packard Development Company, L.P. | Webbasierte Schnittstelle zum Zugriff auf eine Funktion eines Basic Input/Output-Systems |
US20130201316A1 (en) | 2012-01-09 | 2013-08-08 | May Patents Ltd. | System and method for server based control |
AU2013247347B2 (en) | 2012-04-12 | 2018-02-15 | Ivanti, Inc. | Configuration of third party applications in a sandboxed environment |
SG11201501861VA (en) | 2012-09-12 | 2015-04-29 | Hitachi Systems Ltd | Facility-user-interface distributing system |
WO2014056129A1 (zh) | 2012-10-08 | 2014-04-17 | 华为终端有限公司 | 一种触屏装置用户界面的处理方法及触屏装置 |
CN103914018A (zh) | 2012-12-31 | 2014-07-09 | 施耐德电器工业公司 | 可编程控制器的编程辅助系统及方法 |
SG11201510302XA (en) | 2013-06-18 | 2016-01-28 | Ciambella Ltd | Method and apparatus for customized software development kit (sdk) generation |
KR102218995B1 (ko) | 2013-06-18 | 2021-02-25 | 시암벨라 리미티드 | 코드 가상화 및 원격 프로세스 호출 생성을 위한 방법 및 장치 |
US20150127192A1 (en) | 2013-11-06 | 2015-05-07 | Hitachi, Ltd | Wireless vehicle control system |
US9619122B2 (en) * | 2014-01-10 | 2017-04-11 | Ciambella Ltd. | Method and apparatus for automatic device program generation |
ES2873034T3 (es) | 2014-06-20 | 2021-11-03 | Huawei Tech Co Ltd | Método y aparato para visualizar la interfaz de aplicación, y el dispositivo electrónico |
JP6441061B2 (ja) | 2014-12-16 | 2018-12-19 | 株式会社ダイヘン | 機械制御システム及び機械制御システムのユーザインタフェース設定方法 |
US20170045981A1 (en) | 2015-08-10 | 2017-02-16 | Apple Inc. | Devices and Methods for Processing Touch Inputs Based on Their Intensities |
US10067490B2 (en) | 2015-05-08 | 2018-09-04 | Ciambella Ltd. | Method and apparatus for modifying behavior of code for a controller-based device |
CA2984106C (en) | 2015-05-08 | 2021-12-21 | Ciambella Ltd. | Method and apparatus for automatic software development for a group of controller-based devices |
US9547482B2 (en) | 2015-06-02 | 2017-01-17 | Sap Portals Israel Ltd. | Declarative design-time experience platform for code generation |
-
2016
- 2016-12-21 CA CA3009166A patent/CA3009166A1/en active Pending
- 2016-12-21 KR KR1020187020693A patent/KR20180087446A/ko not_active Application Discontinuation
- 2016-12-21 WO PCT/US2016/067944 patent/WO2017112735A2/en active Application Filing
- 2016-12-21 EP EP16880005.0A patent/EP3394743B1/en active Active
- 2016-12-21 CN CN201680081438.4A patent/CN108604186B/zh active Active
- 2016-12-21 JP JP2018551905A patent/JP6925365B2/ja active Active
- 2016-12-21 SG SG11201805215UA patent/SG11201805215UA/en unknown
- 2016-12-21 US US15/386,180 patent/US10732969B2/en active Active
-
2018
- 2018-10-16 HK HK18113236.7A patent/HK1254161A1/zh unknown
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101359263A (zh) * | 2007-06-06 | 2009-02-04 | 索尼株式会社 | 输入装置、控制装置、控制系统、控制方法及其程序 |
CN102349031A (zh) * | 2009-03-13 | 2012-02-08 | Abb技术有限公司 | 用于部分地由实现运行时过程的一个或者多个计算机实现的过程控制系统中的控制的方法 |
US20110295391A1 (en) * | 2010-05-25 | 2011-12-01 | Siemens Product Lifecycle Management Software Inc. | Method and System for Closed-Loop Controller Programming |
US20150045960A1 (en) * | 2012-01-23 | 2015-02-12 | Scl Elements Inc. | Programmable peripheral unit |
CN103513894A (zh) * | 2012-06-20 | 2014-01-15 | 三星电子株式会社 | 显示设备、远程控制设备及其控制方法 |
US9201770B1 (en) * | 2013-12-26 | 2015-12-01 | Emc Corporation | A/B testing of installed graphical user interfaces |
US20150199088A1 (en) * | 2014-01-10 | 2015-07-16 | Ciambella Ltd. | Method and apparatus for automatic device program generation |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109891854A (zh) * | 2016-08-22 | 2019-06-14 | 西安姆贝拉有限公司 | 用于创建和管理基于控制器的远程解决方案的方法和设备 |
CN109891854B (zh) * | 2016-08-22 | 2022-04-08 | 西安姆贝拉有限公司 | 用于创建和管理基于控制器的远程解决方案的方法和设备 |
CN114846418A (zh) * | 2019-12-18 | 2022-08-02 | 格兰富控股公司 | 用于定义和配置流体处理系统的硬件设置的方法和系统 |
CN117376692A (zh) * | 2023-04-24 | 2024-01-09 | 深圳云视智景科技有限公司 | 功能自定义方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
EP3394743C0 (en) | 2023-07-12 |
KR20180087446A (ko) | 2018-08-01 |
SG11201805215UA (en) | 2018-07-30 |
EP3394743B1 (en) | 2023-07-12 |
JP2019503549A (ja) | 2019-02-07 |
CN108604186B (zh) | 2021-11-16 |
US10732969B2 (en) | 2020-08-04 |
WO2017112735A2 (en) | 2017-06-29 |
US20170180462A1 (en) | 2017-06-22 |
EP3394743A4 (en) | 2020-04-15 |
HK1254161A1 (zh) | 2019-07-12 |
EP3394743A2 (en) | 2018-10-31 |
WO2017112735A3 (en) | 2018-02-22 |
JP6925365B2 (ja) | 2021-08-25 |
CA3009166A1 (en) | 2017-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108604186A (zh) | 用于创建和管理基于控制器的远程解决方案的方法和装置 | |
KR102622652B1 (ko) | 컨트롤러 기반 디바이스들의 그룹에 대한 자동 소프트웨어 개발을 위한 방법 및 장치 | |
CN105593773B (zh) | 用于虚拟分布式控制系统的自动委托的系统和方法 | |
CN106484622B (zh) | 测试方法、装置及系统 | |
CN103189839B (zh) | 用于多部件计算机环境的自动化部署的系统和方法 | |
CN109542556B (zh) | 一种基于Activiti的流程与表单交互方法及系统 | |
US20190028336A1 (en) | Automatic provisioning of a software development environment | |
CN105765539B (zh) | 用于自动生成虚拟环境的方法和系统 | |
US20180081642A1 (en) | Connectors framework | |
CN103262020B (zh) | 用于打印机的虚拟输入/输出装置 | |
CN104750487B (zh) | 一种移动终端app的开发方法及启动方法 | |
US10798780B2 (en) | Method and apparatus for creating and managing controller based remote solutions | |
CN108647141A (zh) | 自动测试方法、装置、计算机可读介质及电子设备 | |
CN108984388A (zh) | 一种生成自动化测试用例的方法及终端设备 | |
CN103927260B (zh) | 一种电信设备测试方法及系统 | |
CN110221859A (zh) | 一种应用的部署上线管理方法、装置、设备和存储介质 | |
CN104881343B (zh) | 一种测试方法和测试系统 | |
CN106022007A (zh) | 面向生物组学大数据计算的云平台系统及方法 | |
CN107180090B (zh) | 基于电子书的阅读打卡方法、电子设备及计算机存储介质 | |
CA3056859C (en) | Window parameter configuration method and system, computer-readable media | |
CN111417907A (zh) | 创建和管理智能可编程逻辑控制器解决方案的方法和装置 | |
CN109032850A (zh) | 现场装置调试系统和现场装置调试方法 | |
CN104471530B (zh) | 可执行软件规程生成 | |
CN113626798A (zh) | 一种应用系统管理平台、方法、设备及介质 | |
CN105786484B (zh) | 一种应用融合方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1254161 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |