CN111417907A - 创建和管理智能可编程逻辑控制器解决方案的方法和装置 - Google Patents
创建和管理智能可编程逻辑控制器解决方案的方法和装置 Download PDFInfo
- Publication number
- CN111417907A CN111417907A CN201880077952.XA CN201880077952A CN111417907A CN 111417907 A CN111417907 A CN 111417907A CN 201880077952 A CN201880077952 A CN 201880077952A CN 111417907 A CN111417907 A CN 111417907A
- Authority
- CN
- China
- Prior art keywords
- virtual server
- cbd
- application
- user device
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 108
- 230000008569 process Effects 0.000 claims description 39
- 238000012545 processing Methods 0.000 claims description 22
- 238000004891 communication Methods 0.000 claims description 10
- 238000012800 visualization Methods 0.000 claims description 8
- 238000010801 machine learning Methods 0.000 claims description 5
- 238000013473 artificial intelligence Methods 0.000 claims description 4
- 239000012634 fragment Substances 0.000 claims description 4
- 238000000224 chemical solution deposition Methods 0.000 claims 33
- 238000012423 maintenance Methods 0.000 claims 1
- 238000013507 mapping Methods 0.000 claims 1
- 101100062677 Canis lupus familiaris DEFB110 gene Proteins 0.000 description 50
- 230000006870 function Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000012986 modification Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000008672 reprogramming Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000196324 Embryophyta Species 0.000 description 1
- 244000035744 Hura crepitans Species 0.000 description 1
- 235000011034 Rubus glaucus Nutrition 0.000 description 1
- 244000235659 Rubus idaeus Species 0.000 description 1
- 235000009122 Rubus idaeus Nutrition 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/054—Input/output
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/056—Programming the PLC
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/058—Safety, monitoring
-
- 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/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
用于创建和管理可编程逻辑控制器(PLC)解决方案的方法包括将现有PLC解决方案连接到云网络和从用户设备连接到虚拟服务器。PLC的引脚布局的图形表示显示在用户设备上的GUI上。在GUI上接收输入,该输入包括:选择第一引脚和传感器或执行器,该传感器或执行器被配置为经由第一引脚与PLC耦合;以及所选传感器或所选执行器的操作参数。接收到的输入被从用户设备发送到虚拟服务器。在用户设备上接收用于在PLC上执行的可执行PLC应用程序。PLC应用程序被配置为根据接收到的输入操作和/或监视PLC。将PLC应用程序发送到PLC,以部署在PLC上。
Description
技术领域
本发明的实施例总体上涉及可编程逻辑控制器。
背景技术
可编程逻辑控制器(PLC)广泛用于工业应用中,其中PLC被用作机械、仪器、设备等的控制器。传统上,PLC包括代替机电开关(继电器)的逻辑电路,使得固态计算机可以被编程以直接控制工业系统。
PLC具有许多“输入”端子,它通过这些输入端子来解释来自传感器和开关的“高”和“低”逻辑状态。它还具有许多输出端子,它通过这些输出端子将“高”和“低”信号输出到电源指示灯、螺线管、执行器、小电机以及用它们进行开/关控制的其他设备。为了使PLC易于编程,将其编程语言设计为类似梯形逻辑(ladder logic)图。因此,习惯于阅读梯形逻辑示意图的工业电工或电气工程师对将PLC编程以执行以前由继电器执行的相同控制功能感到很自在。
PLC是工业计算机,因此,它们的输入和输出信号通常处于电源电压(例如,120伏交流电或220伏交流电),就像它们被设计用来替代的机电控制继电器一样。尽管某些PLC具有输入和输出逻辑门电路中使用的大小的低电平DC电压信号的能力,但这是例外,而不是传统。当前,PLC编码是手动进行的,并且被执行为进行工业系统的本地控制。尽管在本领域有各种进步,但是PLC控制的工业系统仍然存在于筒仓(silo)中,它们使用传统技术进行编程和管理。
因此,需要智能PLC解决方案。
发明内容
本发明总体上涉及用于创建和管理智能可编程逻辑控制器(PLC)解决方案的方法和装置。在一个实施例中,该方法包括将现有PLC解决方案(112、120)连接到云网络(108)以及从用户设备(104)连接到虚拟服务器(122)。PLC(112)的引脚布局的图形表示显示在用户设备上的图形用户界面(GUI)(102)上。在GUI上接收输入,该输入包括对第一引脚、被配置为经由第一引脚与PLC耦合的传感器或执行器的选择以及用于所选传感器或所选执行器的操作的参数的选择。接收到的输入从用户设备发送到虚拟服务器。在用户设备上接收在PLC上执行的可执行PLC应用程序。PLC应用程序被配置为根据接收到的输入操作和/或监视PLC。将PLC应用程序被发送到PLC,用于在PLC上进行部署。
在另一个实施例中,一种用于创建和管理智能可编程逻辑控制器(PLC)解决方案的装置。在一个实施例中,包括用户设备,该用户设备包括处理器和存储处理器可执行指令的存储器,该指令在被该处理器执行时,进行上述用于创建和管理智能可编程逻辑控制器(PLC)解决方案的方法。
附图说明
为了可以详细地理解本发明的实施例,可以通过参考实施例来对本发明进行更具体的描述,其中一些实施例在附图中示出。然而,应注意,附图仅示出了本发明的典型实施例,因此不应视为对本发明范围的限制,因为本发明可以允许其他等效实施例。
图1是根据本发明的实施例的智能可编程逻辑控制器(PLC)系统的框图。
图2A、图2B和图2C分别示出根据本发明的实施例的基于控制器的设备(CBD)、用户设备和虚拟服务器的功能组件和模块的框图。
图3是示出根据本发明的实施例的经由用户设备上的图形用户界面控制智能PLC功能的流程图。
图4A-4C示出据本发明的实施例的用于创建智能PLC功能的方法的流程图。
图5是示出根据本发明的实施例的用于在装置100上执行的用于智能PLC解决方案的操作的方法的流程图。
图6示出根据本发明的实施例的,结合传统PLC系统创建和部署的基于智能IoT的PLC解决方案。
图7示出根据本发明的实施例的,类似于图1的GUI的图形用户界面(GUI)。
图8-17是根据本发明的实施例的图形用户界面(GUI)800的屏幕截图。
具体实施方式
本发明的实施例包括用于创建和管理智能可编程逻辑控制器(PLC)解决方案的方法和装置。更具体地,提供用于创建、部署和管理PLC解决方案的方法和装置,该PLC解决方案将基于控制器的设备(例如,具有控制器的设备,如微控制器、微处理器、SoC、MCU等)合并在传统的基于PLC的工业系统中(例如,生产线、发电站等),它们通常远离用户,从而将物联网(IoT)功能延伸到PLC系统。用户使用用户设备上的图形用户界面(GUI)构建解决方案,该解决方案包括安装在传统PLC系统中的基于控制器的设备(CBD)。然而,在一些实施例中,还可以使用GUI向用户呈现预定义的解决方案模板,用于选择预定义的解决方案和/或修改以“定制”预定义的解决方案。
这些解决方案依赖于虚拟服务器的使用,虚拟服务器通常远离用户设备和PLC系统。虚拟服务器使用户能够生成要在PLC上执行的应用程序(PLC应用程序)、要在CBD上执行的代码(代码段或自动生成的控制器程序(AGCP)),并通过从CBD向虚拟服务器发起的调用来提供在虚拟服务器上执行的预定义处理的功能,访问由其他远程设备提供的远程服务,以及共同转让的美国专利10,095,495、10,067,490、9,830,136、9,235,383、9,239,705、9,619,122、9,436,439、9,219,112和8,726,285以及共同转让的已发布的美国专利申请2018/0081658和2017/0180462以及美国临时专利申请62/593,370中描述的其他功能。这些专利和申请通过引用整体并入本文。
用于支持和/或促进代码执行的例程的库也可以与代码(代码段或AGCP)一起处于CBD的存储器中。代码段在被执行时发送对在虚拟服务器上执行的预定义处理的调用,和/或将数据(直接或通过代码虚拟服务器)发送给远程服务提供方,和/或进一步调用要由远程服务提供方对数据远程进行的功能。本发明的实施例利用代码段的放置来创建、监视、控制、重新编程与PLC解决方案耦合的基于控制器的设备(CBD),从而能够创建用于传统工业系统的基于IoT的动态的基于云的智能PLC解决方案,传统工业系统在筒仓中运行,很难修改。一些实施例使得能够改变代码、代码的输入参数,改变所需的输出,配置用于CBD的附加电子设备(例如,传感器、执行器等),或者改变现有解决方案的配置。
图1示出根据本发明的实施例的智能可编程逻辑控制器(PLC)系统100的框图。系统100包括用户设备104和关联的图形用户界面(GUI)102、虚拟服务器122(也称为“代码虚拟服务器”),包括PLC 112和基于控制器的设备(CBD)110的智能PLC 111和由PLC 112控制的工业系统120。通信网络108(云)将用户设备104、虚拟服务器122和PLC 112彼此通信耦合。在一些实施例中,用户设备104直接连接到智能PLC 111。系统100还可以包括连接到网络108的PLC数据106的用户,以及经由云提供远程服务的远程服务提供方130。PLC数据106的一个或多个用户可以使用用户设备104经由GUI 102访问PLC数据。
在一些实施例中,智能PLC 111可以包括多个PLC,包括与PLC 112相似的不同品牌或类型的PLC。一个或多个PLC可以与单个CBD 110耦合。在一些实施例中,系统110包括与智能PLC 111相似的若干个智能PLC,包括具有与智能PLC 111相同的配置的智能PLC,或者PLC的数量或类型不同的其他配置,或者CBD的配置与智能PLC 111。如关于图2A进一步描述的,PLC 112经由CBD 110向/从网络108传输数据。CBD 110可以在边缘模式或网关模式下操作,并且去往和来自网络108的数据传输是由配置为网关设备的一个或多个CBD完成的,而其他CBD被配置为边缘设备,它们通过网关CBD与网络108通信。此外,各种边缘CBD和网关CBD可以直接相互通信,或者可以经由这样的CBD(边缘和网关)之间的网状网络相互通信。
在操作中,当设计、部署或管理智能PLC 111和/或工业系统120的智能解决方案时,用户设备104耦合到网络108。在一个实施例中,在自动生成PLC应用程序或CBD 110的代码248期间,用户设备104还经由网络108耦合到虚拟服务器122。
PLC数据106的一个或多个用户可以包括利用流式传输数据的服务。这些用户可以使用人工智能和/或机器学习算法来分析流式传输数据。该分析可能会导致建议对PLC应用程序和/或这些应用程序的参数进行改进。因此,可以优化应用程序的功能。这些服务也可以形成虚拟服务器122的一部分。
在一些实施例中,例如,多个PLC可以位于单个安装中以控制工厂中的各种机器。然后将这些PLC连接到充当网关的收发器。在共同转让的美国专利申请2016/0328216中描述了这种网关操作,该申请通过引用整体并入本文。
PLC 112包括中央处理单元(CPU)114、支持电路116和存储器118。CPU 114可以包括一个或多个传统上可用的微处理器或微控制器;可选地,CPU 114可以包括一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA)。支持电路116是用于提升CPU 114的功能的公知电路。此类电路包括但不限于高速缓存、电源、时钟电路、总线、包括引脚的输入/输出(I/O)电路等。可以使用通用计算机来实施CPU 114,该通用计算机在执行特定软件时成为用于控制和管理工业系统120的操作的专用计算机。
存储器118可以包括随机存取存储器、只读存储器、可移动盘存储器、闪存、以及这些类型的存储器的各种组合。存储器118有时被称为主存储器,并且可以部分地用作高速缓冲存储器或缓冲存储器。存储器118通常在必要时存储CPU的能力能够支持的PLC 112的操作系统(OS)。
存储器118可以存储各种形式的应用程序软件,如用于控制PLC 112的操作并执行与本发明有关的功能的PLC应用程序117。例如,PLC 112可以从传感器接收信号或将控制信号提供给工业系统120中的执行器。如下所述,PLC应用程序117可以全部或部分地由虚拟服务器122提供。在一个实施例中,PLC 112请求虚拟地,即在虚拟服务器122上执行的预定处理。在一个实施例中,可以将来自工业系统的数据流式传输到PLC数据106的用户和/或虚拟服务器122。
在一些实施例中,PLC应用程序117包括启用ModbusTCP服务器的PLC块。PLC 112经由Modbus客户端与CBD 110通信,该客户端通过ModbusTCP连接连接到CBD 110。Modbus连接使从PLC 112到虚拟服务器122的连续websocket连接成为可能,以例如流式传输数据,接收更新,以及本文描述的其他信息交换。在一些实施例中,PLC 112经由以太网连接连接到CBD110。
工业系统120包括一个或多个传感器119和执行器121,其作用是实施由PLC 112或来自不同供应商的多个PLC控制的传统工业系统。此类工业系统包括工厂机械、测量仪器、医疗仪器、机器人控制、装配线机械、电厂管理和控制系统以及仓库管理。
远程服务提供方130提供基于云的服务,如FACEBOOK、TWITTER、AMAZON、数据存储服务、电子邮件服务、短消息服务(SMS)、Web消息服务、天气服务、地理服务位置服务、互联网协议(IP)地址识别服务、信息数据库(例如,财务、供应链、会计)、全球定位系统(GPS)等。可经由网络108访问远程服务提供方130或远程服务130。
如图2A中所示,CBD 110包括数字控制器240、支持电路242和存储器244,尽管每个设备(边缘和网关)都包括这些组件。设备控制器242可以是微控制器(例如,PIC、AVR类型、ARM类型等)或SoC(例如,RASPBERRY PI),或者是本领域中公知的微处理器。支持电路244是用于提升控制器242的功能的公知电路。这样的电路包括但不限于高速缓存、电源、时钟电路、总线、包括引脚的输入/输出(I/O)电路等。存储器244可以是用于存储数据和可执行代码或软件的任何形式的数字存储。这样的存储器包括但不限于随机存取存储器、只读存储器、盘存储器、光学存储器等。在一些实施例中,存储器244存储对应于操作系统(未示出)的计算机可读指令。存储器244还存储通常由可执行代码248(也称为“AGCP”)表示的自动生成的控制器程序(AGCP)或合并有自动生成的代码段的控制器程序。代码248包括调用249,例如,对要在诸如代码虚拟服务器122之类的远程设备上执行的预定义处理的调用。代码248可以另外包括其他代码组件,包括执行包括代码248和调用249的代码所必需的程序库。根据一些实施例,从虚拟服务器122接收代码248(直接或经由用户设备104)并将其安装在存储器246中。代码组件还能够确保边缘CBD可以经由网关CBD 110与虚拟服务器122通信,并且网关CBD 110能够允许这种通信。如图2A中所示,在一些实施例中,调用249包括在代码248中。
控制器的类型可能因设备而异,例如,基于此类设备的应用和所需的功能而有所不同。网关CBD另外包括能够与网络108、其他边缘CBD和网关CBD通信的收发器。收发器(未单独示出)可以是有线、无线或有线和无线技术的组合。边缘CBD包括能够至少与网关CBD通信的收发器,并且可以另外能够与其他边缘CBD或网络108通信。通过使用诸如CBD 110之类的网关CBD,PLC 112成为智能物联网(IoT)设备,其可以从用户设备使用GUI通过:选择和配置期望的功能;在CBD 110和/或PLC 112为其自动生成并部署可执行代码;访问PLC和/或工业系统操作的数据;修改CBD 110和/或PLC 112上的可执行代码而被远程管理和编程。
如图2B中所示,用户设备104包括CPU 230、支持电路232和存储器234。CPU 230处理到设备的输入和输出,并且可以是任何可商购的处理器、微处理器、微控制器等。支持电路232包括向CPU提供功能的公知电路,如用户界面、时钟电路、网络通信、高速缓存、电源、I/O电路等。在一些实施例中,用户界面包括小键盘、电子按钮、扬声器、触摸屏、显示器或其他用户交互机构。存储器234可以是用于存储数据和可执行软件的任何形式的数字存储。这样的存储器包括但不限于随机存取存储器、只读存储器、盘存储器、光学存储器等。存储器234存储与操作系统(未示出)和图形用户界面(GUI)102相对应的计算机可读指令。在一些实施例中,GUI 102是驻留在虚拟服务器122上的软件,经由用户设备104上的浏览器访问和渲染GUI 102。
用户设备104是具有GUI 102的通用计算机,如台式计算机或膝上型计算机。用户通过GUI 102开发PLC的应用程序,并从虚拟服务器122请求虚拟服务代码248(即代码段)用于插入CBD 110中以实现智能PLC 111的操作。当在CBD 110上执行时,代码248调用要由虚拟服务器122执行的预定义处理。这些处理可以包括由虚拟服务器122在本地实施的服务,或经由云访问的远程服务130。所述服务包括但不限于数据操纵、计算、搜索、发布到诸如TWITTER或FACEBOOK之类的服务、数据传输等。这些服务通常不能由PLC CPU 114在本地执行,因此,这些服务已虚拟化以向PLC 112提供增强的功能,而到目前为止,这些功能是无法进行的。
如图1和图2C中所示,虚拟服务器122包括中央处理单元(CPU)124、存储器126和支持电路128。CPU 124可以包括一个或多个传统可用的微处理器或微控制器;或者,CPU 124可包括一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA)。支持电路128是用于提升CPU 124的功能的公知电路。这样的电路包括但不限于高速缓存、电源、时钟电路、总线、输入/输出(I/O)电路等。可以使用通用计算机来实施CPU 124,该通用计算机在执行特定软件时成为用于提供虚拟化和数据处理服务的专用计算机。
存储器126可以包括随机存取存储器、只读存储器、可移动盘存储器、闪存以及这些类型的存储器的各种组合。存储器126有时被称为主存储器,并且可以部分地用作高速缓冲存储器或缓冲存储器。存储器126通常存储CPU能力能够支持的服务器122的操作系统(OS)(未示出)。在一些实施例中,OS可以是众多可商购的操作系统之一,例如但不限于LINUX、实时操作系统(RTOS)、WINDOWS等。
图2C是示出例如可以存储在存储器126中的虚拟服务器122的功能组件和模块的框图。服务器122向用户设备104和/或智能PLC 111提供各种功能(服务)。用户设备104通常可以经由GUI 102访问这些功能。虚拟服务器122包括代码和软件开发工具包(SDK)生成组件200、设备(例如,PLC)应用程序组件202、机器学习组件204、应用程序和处理模板库206、杂项(choreo)执行引擎208、数据存储210和PLC分析模块212。
代码和SDK组件200被配置为基于从用户设备104上的GUI 102接收到的输入,生成用于CBD的可执行代码和支持代码组件,例如,用于CBD 110的代码248,以便于智能PLC应用程序开发。在一个实施例中,用于在虚拟服务器122上执行的预定义处理被提供作为经由GUI 102的输入。当接收到这样的输入时,组件200包括在代码248中的调用249,其中CBD110执行代码248会发生向虚拟服务器122的调用249,以在虚拟服务器122上执行预定义处理。根据一个实施例,调用249包括执行预定义处理所需的参数,而在其他实施例中,预定义处理的执行不需要经由调用249提供参数。组件200的操作也在共同转让的美国专利9,239,705中进行了描述,在此通过引用将其全部内容并入本文。
设备应用程序组件202包括用于PLC设备的预先编写的应用程序,例如,PLC应用程序117等,并且由用户设备104经由GUI 102访问,以提供特定的PLC应用程序,用于特定的PLC。例如,用户可以浏览组件202并识别用于部署在PLC 112上的PLC应用程序117。
机器学习组件204包括用于分析PLC 112数据(包括来自工业系统120的操作的数据)的人工智能(AI)或机器学习(ML)算法。组件204可以在虚拟服务器122上实施,或者可以位于其他地方,如在PLC数据106的用户中,或者由远程服务130实施为服务。组件204分析PLC数据,以改进PLC应用程序117、用于CBD 110的代码248和/或更新用于控制PLC应用程序117的参数、代码248或此两者。因此,组件204优化了智能PLC 111和与其关联的工业系统120的操作。根据一些实施例,可以经由GUI(例如,GUI 102)选择来自组件204的一种或多种ML/AI算法。此外,用户还可以使用GUI选择或限定对处理或应用程序输出的一组约束,并为选定的预定义处理或PLC应用程序限定一组行为目标,以基于ML/AI算法的修改来实现(例如,可接受的时延、触发警报的可接受的范围(bracket)等)。行为目标是应用程序随着时间的推移需要达到的状态,并且是算法将尝试实现的最佳目标,例如,节电、传感器校准、预测性维护、输出的最大化或最小化等。在一些实施例中,ML/AI算法用于基于如上所述的行为目标进行预测分析。基于预测分析以及所有必要的文件和库,以及电源管理功能、网络连接、健全性检查、错误管理等,修改PLC应用程序和/或用于CBD的代码,以生成增强的PLC应用程序和/或用于CBD的代码。这种增强的PLC应用程序和/或用于CBD的代码对于给定的应用程序来说是异常鲁棒的。
应用程序和处理模板库206包括在从CBD 110接收到调用249后执行的预定义处理(或“杂项”)的数据库。可以选择一个或多个预定义处理来为特定的CBD创建完整的应用程序。用户设备104可以访问和搜索库206,并且在一些实施例中,虚拟服务器122将可用于选择的预定义处理的索引发送给GUI 102。
代码和SDK组件200、设备应用程序组件202和库206形成PLC系统的可用解决方案的详尽池(包括与此类PLC 112交互所需的此类传统工业系统120、PLC 112、CBD 110的组件、操作CBD 110所需的所有处理及其所有参数。可以更新代码和SDK组件200、设备应用程序组件202和库206中的每一个,以添加、删除或编辑可用的解决方案。此类更新可用于基于远程解决方案来增强控制器设备可用的功能,而无需升级控制器设备本身。
还指定了处理参数(用于PLC应用程序或CBD的代码)、连接配置文件(用于PLC112、CBD 110、虚拟服务器122和用户设备104之间的连接)、连接参数和协议。这些参数的示例在表1中进行了说明,但不限于此。
表1
当接收到远程调用249时,杂项执行引擎208在虚拟服务器122上执行杂项或预定义处理。预定义处理并不无理地存在于CBD上,也不由CBD执行,然而,这样的预定义处理是CBD功能的一部分,并扩展了CBD的功能。因此,预定义处理是用于CBD 110的虚拟代码(即,不是物理代码或实际代码),它能够经由嵌入在代码248中的调用249来进行虚拟化的服务。杂项和虚拟化的使用也是共同转让的美国专利9,436,439中有详细描述,在此全文引入作为参考。通过使用调用249,代码248的一部分由CBD 110执行,但某些功能由虚拟服务器122执行。通过这种方式,使用虚拟服务器122,传统的PLC 112与诸如CBD 110的简单IoT设备一体化,将传统的PLC 112转换为智能动态可编程支持IoT的PLC 111,其功能远超PLC 112的本地能力。
数据存储210存储诸如软件参数或PLC数据的数据。软件参数包括用于在PLC上执行PLC应用程序的参数或CBD 110上的代码248,并且作为经由GUI 102的输入被接收或者从经由GUI 102指定的云上的目的地接收。PLC数据是从自智能PLC 111接收的,并且包括PLC112、CBD 110或工业系统120中的一个或多个的操作信息。来自数据存储210的信息由杂项执行引擎208使用以执行预定义处理,并且还由机器学习组件204使用。数据存储208还可包括使用PLC数据生成的可视化信息,例如,以图形化的方式在GUI 102上或向PLC数据106的用户呈现PLC数据。在一些实施例中,数据存储210存储PLC(112)运行时间信息或PLC数据,其可被用于基于ML/AI算法进行分析。
PLC分析模块212处理流式传输PLC数据以收集对智能PLC的操作效率的附加理解。该处理包括应用分析PLC数据流来确定单独的流内的数据之间的模式和相关性,以促进工业系统120的优化。该处理还可以包括将流式传输的PLC数据或经分析的PLC数据转换为可视化信息,其易于呈现在GUI 102上或呈现给PLC数据106的用户。PLC分析模块212可以位于虚拟服务器122或PLC数据106的用户中。
图3是示出根据本发明的实施例的经由用户设备104的GUI 102控制的智能PLC功能的流程图。从开始位置300,用户可以选择要执行的多个功能。这些功能包括,例如但不限于,搜索PLC应用程序302、设置数据流式传输304、向智能PLC 306增加虚拟化处理、管理和重新编程PLC应用程序和/或CBD308的代码、测试PLC应用程序和/或CBD 310的代码、设置应用程序和/或CBD 312的代码。
如果用户选择搜索应用程序302,则GUI界面(在GUI 102中)将呈现来自设备应用程序组件202的PLC应用程序的可搜索列表。用户可以选择特定PLC或PLC CPU,这可将该列表减少到只有与该特定类型的PLC或PLC CPU有关的应用程序。在选择特定应用程序之后,该应用程序将被下载到用户设备104。PLC应用程序可以被编辑或直接使用。完成的PLC应用程序(例如,PLC应用程序117)被下载到PLC存储器并且被部署。
用户可以选择设置数据流式传输304。通常,这是通过使CBD 110将来自PLC 112的PLC数据流式传输来完成的。设置过程包括在GUI 102上接收作为输入的要被流式传输的某些数据或参数、该数据或参数的特定格式或用来将该数据流式传输的特定协议。在一个实施例中,执行代码248的CBD 110根据所需输入直接将PLC数据流式传输。在一个实施例中,数据流式传输304由代码248完成,代码248包括对虚拟服务器12上的预定义处理的调用(例如,调用249),用于流式传输。代码248将数据流式传输到虚拟服务器122上的预定义处理,根据期望的输入处理PLC数据,从虚拟服务器122发送PLC数据。PLC数据被发送到PLC数据106的用户,PLC数据106的用户可以包括与用户设备104相关联的用户。
当在CBD 110上执行代码248时,用户可以选择增加虚拟化处理306,即,通过调用249在虚拟服务器122上执行的处理。在步骤314,用户选择设备(例如,CBD 110,并且如果多个PLC与CBD相关联,则选择为其增加虚拟化处理的特定PLC CPU。在步骤316,用户设置用于执行预定义处理的参数。在步骤318,虚拟服务器122创建要插入到CBD 110中的代码(例如,包括用于CBD 110的代码段或整个程序的代码248)。代码248包括对虚拟服务器122上的预定义处理的调用(例如,调用249)。在一些实施例中,代码248由用户使用用户设备104的GUI102插入到CBD 110中。当在CBD 110上执行代码248时,调用249从智能PLC 111(CBD 110)发送到虚拟服务器122,在虚拟服务器122中,杂项执行引擎208执行存储在库206中的预定义处理。
用户可以管理和重新编程PLC应用程序308。例如,用户可以经由GUI 102选择部署的应用程序(PLC 112上的PLC应用程序117或CBD 110上部署的代码248),用于管理或重新编程。用户为PLC应用程序117或代码248提供更新的或编辑的参数或更新的设计输入。基于这些输入,以类似于下面描述的步骤312的方式更新PLC应用程序117,并且根据上述步骤306、314-318更新代码248。
用户可以在“沙盒(sandbox)”模式下测试应用程序和远程调用操作310,使得在不影响PLC操作的情况下测试代码。这样的测试使用户能够产生用于PLC的“防弹”工业应用程序,而不会影响工业系统120中已部署的PLC 112。
用户可以从用户设备312设置PLC应用程序。例如,用户可以使用GUI 102在虚拟服务器122上的设备应用程序组件202中根据步骤302搜索PLC的应用程序(例如,PLC 112的PLC应用程序117)。用户还可以经由GUI 102提供作为输入的在PLC 112上的数据存储位置,并且例如使用本领域中众所周知的梯形逻辑方法输入用于PLC应用程序117操作的参数。基于接收到的输入,组件202生成PLC应用程序117,该PLC应用程序117可以被下载到用户设备104,该用户设备104将PLC应用程序117部署到PLC 112。在一些实施例中,PLC应用程序从虚拟服务器122直接发送到到PLC 112进行部署。
图4A至图4C示出根据本发明的实施例的经由GUI 102在用户设备104处实施用于设计和管理智能PLC解决方案的方法400的流程图。方法400在步骤402开始,在步骤402,方法400将现有PLC解决方案(例如,图1的PLC 112和工业系统120)连接到云网络,例如网络108。方法400借助于可通信地耦合到PLC 112和网络108的CBD 110完成该连接,其中PLC112和CBD 110都远离用户设备104。在步骤404,方法400连接到远离用户设备104、CBD 110和PLC 112的虚拟服务器,例如,虚拟服务器122。在步骤406,方法400经由GUI 102显示PLC112的引脚布局的图形表示,并且在步骤408,方法400接收对应于至少一个引脚(第一引脚)、传感器或执行器以及该传感器或执行器的一个或多个参数的输入。在步骤410中,用户设备104将接收到的输入发送到虚拟服务器122,并且特别是发送到设备应用程序组件202。在一些实施例中,所述输入包括与引脚、传感器或执行器及其相关参数相关联的梯形逻辑控制输入。在虚拟服务器122,设备应用程序组件202自动构建可执行的PLC应用程序,例如,PLC应用程序117,以安装在PLC 112上。在步骤412,用户设备104接收可执行的PLC应用程序117,并且在步骤414,用户设备104将PLC应用程序117发送到PLC 112以在其上部署。在一些实施例中,经由CBD 110将PLC应用程序117发送到PLC 112。步骤406-414由组合子处理416表示,该组合子处理416表示用于PLC 112的PLC应用程序117的自动生成。
方法400前进至步骤418,在步骤418,方法400结合在基于控制器的设备(CBD)例如CBD110上执行代码,接收对要在虚拟服务器上执行的预定义处理的选择。在步骤420,方法400将对预定义处理的选择发送到虚拟服务器122。例如,在虚拟服务器122上的代码和SDK生成组件200处理该选择,生成代码248,代码248包括用于从CBD 110上的库206执行预定义处理的调用249。调用249被配置为调用库206上的预定义处理,以由执行引擎208执行。在步骤422,方法400从虚拟服务器122接收包括调用249的可执行代码248。在步骤424,方法400将代码248发送到CBD 110以在其上进行部署。步骤418-424由组合的子处理426表示,其表示用于CBD 110的代码248的自动生成。
方法400前进至步骤428,在步骤428,方法400接收用于显示PLC 112的操作的图形表示的请求。在步骤430,方法400将该请求从用户设备发送到虚拟服务器122。虚拟服务器122将PLC数据存储在数据存储210中并且/或者使用PLC分析模块212发送PLC数据,可选地在其上进行分析。在步骤432,用户设备104从虚拟服务器122接收与PLC的操作相对应的可视化数据。在步骤434,用户设备基于该可视化数据将PLC的操作的图形表示显示在GUI 102上。步骤428-434由组合的子处理436表示,其表示以图形方式显示PLC数据。
方法400前进至步骤438,在步骤438,方法400接收用于修改已部署的PLC应用程序例如PLC应用程序117的请求。在步骤440,将PLC的图形表示,包括PLC应用程序117对PLC的配置(例如,引脚和相关联的传感器/执行器及参数)显示在GUI 102上。在步骤442,方法400接收用于修改PLC应用程序的输入。用于修改的输入可以包括修改当前配置的引脚(例如,第一引脚),或添加新的引脚(第二引脚)。用于修改第一引脚的输入包括用于修改所选传感器或所选执行器、或所选传感器或所选执行器的操作参数的输入。用于添加第二引脚的输入包括:从多个引脚中选择第二引脚;选择传感器或执行器,所述传感器或执行器被配置为经由第二引脚与PLC 112耦合并由其操作;以及针对第二引脚的所选传感器或所选执行器的操作参数。在步骤444,用户设备104将接收到的修改输入发送到虚拟服务器122。虚拟服务器122以类似于关于子处理416所描述的方式,基于接收到的输入生成修改后的PLC应用程序。在步骤446,用户设备104从虚拟服务器122接收修改后的PLC应用程序,以在PLC上执行。在一些实施例中,PLC应用程序117的修改需要相关地修改部署在CBD 110上的代码248。在这样的实施例中,虚拟服务器还以类似于关于子处理426描述的方式,基于接收到的输入生成用于CBD 110的修改后的代码。在步骤448,方法400可选地接收修改后的代码段以在CBD 110上执行。在步骤450,方法400将修改后的PLC应用程序发送到PLC以在其上部署,并且可选地,在步骤452,方法400将修改后的代码发送到CBD 110以部署在CBD 110上。步骤438-452由组合的子处理454表示,其表示对PLC应用程序的修改。
方法400前进至步骤456,在步骤456,方法400接收输入以修改部署在CBD上的代码。用于修改的输入可以包括改变预定义处理的参数、选择不同的预定义处理等。在步骤458,该方法将接收到的输入发送到虚拟服务器122。虚拟服务器122以类似于关于子处理426描述的方式基于接收到的输入生成用于CBD 110的修改后的代码。在步骤460,用户设备104接收用于CBD 110的修改后的代码,并且在步骤462,用户设备104将修改后的代码发送至CBD 110以在其上进行部署。步骤456-464由组合的子处理466表示,其表示对CBD的代码的修改。
方法400进行至步骤468,在步骤468,方法400结束。根据各种实施例,通过调用249执行所述预定义处理,基于满足PLC 112或工业系统120的条件、基于从用户设备104发送的触发命令或在CBD 110上执行代码248的过程中进行。
根据一些实施例,诸如用户设备104、CBD 110、PLC 112、虚拟服务器122和远程服务130的各种组件之间的通信需要在其他组件注册和/或认证这些组件。例如,为了请求经由调用249在虚拟服务器122上执行预定义处理,可以在执行调用249之前在虚拟服务器122上注册CBD 110,或者需要向虚拟服务器122认证CBD 110,或两者都执行。类似地,在虚拟服务器122上执行的预定义处理必须在远程服务中注册和/或认证。
根据各种实施例,以上方法400使用户能够以安全可靠的方式管理和可视化数据,空中(over the air,OTA)更新代码并重新编程已在其上部署了代码段和/或PLC应用程序的任何设备,包括来自不同供应商的不同的PLC MCU、CPU、FPGA等。
图5是示出根据本发明的实施例的用于在智能PLC 111、CBD 110、虚拟服务器122和远程服务130上执行的用于智能PLC解决方案的操作的方法500的流程图。在步骤502,方法500在CBD 110上开始,并前进至步骤504,在步骤504,方法500将代码248安装在CBD 110上。例如,在步骤424、452或462从用户设备104接收代码248。代码148包括与CBD 110以及相应的支持代码组件(例如,软件开发套件(SDK))相关联的预定义程序代码或处理。代码248包括对远程设备(例如,虚拟服务器122)的调用249,用于执行作为在GUI 102上的输入接收到的与包括CBD 110的智能PLC 111的期望功能相对应的预定义处理。例如,调用249被定向到虚拟服务器122上的预定义处理。在步骤506,方法500开始由CBD 110执行代码248,并且在步骤508,当确定满足执行对该预定义处理的调用的条件时,方法500执行调用249。该条件包括遇到与放置该调用249相对应的代码。在一些实施例中,如果满足工业系统120或PLC112的操作参数的特定条件,例如,如果参数超出为PLC 112或工业系统120的可接受操作指定的范围,则放置该调用249。
在虚拟服务器122,方法500前进至步骤510,在步骤510,使用执行引擎208执行库206中的预定义处理。方法500进行至步骤514,在步骤514,在虚拟服务器122上的预定义处理的执行完成,并且方法500的执行返回到CBD110。在一些实施例中,预定义处理的执行包括通过远程服务执行或与远程服务交互。也就是说,代码248和调用249被配置为执行远程服务130,并且在这样的实施例中,步骤510还包括步骤512,在步骤512,方法500转移到由远离控制器设备、虚拟服务器122和用户设备104的设备执行的远程服务120。方法500在步骤512执行远程服务,然后前进至步骤514,在步骤514,方法500返回服务数据,如果通过执行一个或多个远程服务130生成服务数据的话,至步骤510,然后方法500前进至步骤514。在步骤516,方法500继续在CBD 110上执行代码248,直到完成。在一些实施例中,代码248的进一步执行可以包括发送用于在GUI 102上显示的信息,例如,在方法400的步骤434中,以图形可视化的方式显示PLC数据。在一些实施例中,代码执行可以在虚拟服务器122上在步骤514完成,并且在步骤516可以不发生代码的附加执行。方法500前进至步骤520,在步骤520,方法500结束。
图6示出传统的PLC系统,其中根据本发明的实施例,协同该PLC系统创建和部署了智能IoT解决方案,并且经由CBD 610连接到由图1的虚拟服务器122提供的云应用。该传统PLC系统包括一个或多个PLC 602、耦合到生产线606的执行器604以及部署在生产线606中的传感器608。根据本发明的实施例,该智能IoT解决方案包括网关设备610,网关设备610将PLC 602可通信地耦合到虚拟服务器122。CBD 610启用PLC数据流式传输,重新编程和管理正在CBD 610上执行的代码248。CBD 610上的代码(例如,代码248)可经由GUI 102轻松地配置,可被修改以增加或删除功能,并且提供网关来修改、管理和调节例如PLC 602的传统PLC的操作。以这种方式,将传统PLC 602转换为智能动态可编程的设备,从而将传统PLC系统转变为基于IoT的智能动态PLC系统600。
图7示出根据本发明的实施例的类似于图1的GUI 102的图形用户界面(GUI)700。GUI 700可以采用多种形式,例如,如下面关于图8-17描述的,以及本领域技术人员将容易想到其他形式。GUI 700向在其上显示GUI 700的用户设备的用户呈现各种GUI元素702-726,用于以图形方式接收信息,例如供用户消费,并且例如通过用户操纵GUI元素702-726来提供与每个GUI元素702-726相对应的输入。GUI元素702-726包括与用于配置期望的解决方案的用户输入字段、该解决方案的参数或其组件有关的信息以及与传统解决方案的参数的监视数据有关的信息。具体地,GUI 700示出了GUI元素702涉及例如类似于CBD 110的控制器设备。在一些实施例中,GUI元素702可以被实施为供用户选择的下拉列表,并且GUI元素702示出了用户从该列表中选择了带有下划线的设备“设备-1”。
GUI元素704用于提供与控制器设备是边缘设备还是网关设备相对应的输入。GUI元素706涉及控制器类型,例如,表1中列出的控制器类型之一。GUI元素708涉及通信协议,例如表1中所列出的。GUI元素710涉及需要例如经由代码248中的远程调用249从CBD调用的预定义处理或杂项,以执行虚拟服务器122。GUI元素712涉及所选解决方案或其组件的一个或多个参数,包括与传统系统有关的参数。GUI元素714涉及对控制器设备的控制器上的引脚的选择。GUI元素716和718涉及边界参数,例如,GUI元素716中的用于标识被监视的参数的安全操作极限的安全界限,和/或GUI元素718中的用于当被监视的参数在警告边界之外时发送警报的警告界限。GUI元素720涉及所选解决方案或传统系统的任何附加参数,例如,在712中选择的两个参数是否相关。GUI元素722涉及基于控制器的远程解决方案,例如,使用本文所述的实施例生成的。GUI元素724涉及传统系统的条件,当满足该条件时,触发执行来自控制器设备的远程调用,以在代码虚拟服务器执行功能或杂项。GUI元素726涉及传统系统的参数的被监视的数据的可视化。
GUI元素702-726可以被实施为下拉列表、检查列表、图标列表、单选按钮、用于输入字母数字字符的数据输入形式、以及其他本领域中已知的。GUI元素726可以进一步以图形方式将数据呈现为例如线图、面积图、散点图、饼图、条形图以及本领域中已知的数据的其他几种图形表示。尽管仅GUI元素726被示出为呈现可视化数据,但是其他GUI元素702-724也可以呈现与其中呈现的相关字段相对应的可视化数据。
根据各种实施例,GUI元素包括选择多个捆绑包(bundle)的能力,所述捆绑包可视地示出不同组的预定义处理(用于CBD)和应用程序(用于PLC)、每个处理和应用程序的文档以及用于覆盖PLC和CBD支持的所有编程语言的完整的应用程序代码生成器。GUI元素还包括一些选项,这些选项使得能够测试智能PLC应用程序而无需例如使用沙盒技术将生成的可执行代码实际部署在PLC上。在一些实施例中,GUI元素包括用于允许用户从用户设备设置触发执行预定义处理的条件的界面。GUI元素包括用于在远程设备上设置数据流式传输条件的界面,允许用户将限定的条件(关于流式传输和远程处理调用管理)分配给设备电子器件(MCU、SoC等)的特定I/O(输入/输出),并允许用户限定远程设备(边缘设备/网关/独立设备)之间的关系以及如何在设备之间传输数据(传输协议选择)。GUI元素还包括用于针对每个设备以任何给定的编程语言生成用于CBD的代码的界面,该代码包括处理调用以及执行和数据管理的条件,以及允许用户轻松管理和重新编程以在其上部署了代码段和/或应用程序的任何设备的界面。关于图8-17示出了这种GUI元素的一些示例性屏幕截图。
图8-17是根据本发明的实施例的图形用户界面(GUI)800的屏幕截图。GUI 800类似于GUI 102,并且使得能够访问(连接到)诸如虚拟服务器122之类的远程设备,以创建和管理智能PLC解决方案。这些屏幕截图示出了GUI 800正在用于生成PLC(例如,PLC 112)的PLC应用程序以及在智能PLC(例如,PLC 111)中使用的CBD(例如,CBD 110)的代码。当从图8中的“Create Application(创建应用程序)”菜单选项中选择创建PLC的应用程序时,选择预定义的PLC。例如,在图9的屏幕截图中,GUI 800示出SIMATIC S7-1200PLC作为默认PLC,并且在菜单802中选择了选项“ADD SENSORS”和相应的元素,例如,示出多个引脚的引脚布局804;以及对应于第一引脚806的选择的传感器类型选择列表。引脚布局对应于PLC,例如,PLC 112,中的实际I/O引脚。图9示出用户选择在GUI 800中预定义的压力传感器808,并且限定了压力传感器的参数。以这种方式,由808表示的压力传感器被配置在第一引脚806上。图10示出另一示例,其中用户已经在列表中选择“其他”,表示在GUI 800中没有预定义用户希望配置在第一引脚806上的传感器类型。如图10中所示,GUI 800通过呈现用于限定传感器名称、感测范围值和数据频率的选项810来向用户提供用于限定传感器的选项。用户可以配置传感器参数并保存传感器,从而例如在第二引脚上限定“Water FlowGPM”传感器。然后,用户可以配置解决方案,以在给定条件下(例如,压力小于或等于60磅/平方英寸(psi)的条件下)向特定的电子邮件ID(例如,“maintenance@ed.nyc.edu”)发送电子邮件。用户还可以配置进行检查的频率,并从下拉选择器812中选择例如5分钟的频率间隔,如图11中所示。
以这种方式,智能PLC应用程序已准备好使用如图12中所示的下载按钮813进行下载。然后,可以将下载的智能PLC应用程序发送到智能PLC 111以进行部署。在一些实施例中,PLC应用程序包括仅用于PLC 112或仅用于CBD 110或用于两者的可执行应用程序。尽管PLC 112的PLC应用程序117的生成是与CBD 110的代码248的生成分开的处理,但是PLC应用程序117和代码248(包含调用249)可以一起下载到单个程序包中,并且生成这种可执行代码的用户体验是无缝的。用户可以将下载的应用程序发送到CBD 110,CBD 110进一步将PLC应用程序117安装到PLC 112,并且将代码248安装到CBD 110上。在一些实施例中,用户可以将PLC应用程序117和代码248分别单独安装在PLC 112和CBD 110上。
根据一实施例,例如,如图13中所示,可以在地理环境中看到部署的解决方案,其中在图标814中看到在图12中下载的解决方案,并且在带注释的地图816中看到部署的位置(智能PLC 111)。用户也可以从GUI 800监视和管理(重新配置,修改)智能PLC解决方案。例如,用户选择图标814或与所部署的解决方案相对应的注释,以到达与图14和图15中所示的屏幕截图相对应的画面。在图14中,用户可以从历史图表818中看到压力传感器记录超过上限。用户可以选择查看PLC数据的图形表示,例如,如图15中的图表所示,并参考数字820。考虑到超过上限的性能,用户可以例如通过选择如图16中所示的编辑图标822来重新配置压力传感器,其生成另一输入画面824。该输入画面具有诸如“详细信息”、“传感器”和“诊断”之类的选项,这些选项允许用户修改传感器的配置,从而完全重新设计传感器。在一些实施例中,用户可以在如图17中可以看到的另一引脚826上,以类似于上文关于图9-11讨论的配置新传感器的方式,配置另一传感器。例如,用户可以限定新的安全边界(PLC将关闭的限制;警告限制,智能PLC 111将通过电子邮件或者例如以类似于图11的方式配置的另一模式发出警告)1。
因此,这样的和其他类似的GUI可以用于配置智能PLC解决方案,包括基于用户通过在远离PLC112、CBD 110和虚拟服务器122的用户设备上的GUI 800或102提供的输入,自动生成用于PLC 112和CBD 110的可执行应用程序。通过这种方式,用户可以使用笔记本计算机、平板计算机或台式计算机,经由GUI 800(102)使用图形设计方法来方便地设计、创建、部署、监视、修改和管理智能PLC解决方案。在本文中所生成的智能解决方案使传统PLC解决方案能够进行IoT连接,并且使得能够配置传统PLC解决方案无法轻易获得或无法使用的功能。
在不同的实施例中,本文中描述的方法可以以软件、硬件或其组合来实施。另外,可以改变方法的顺序,并且可以添加、重新排序、组合、省略或以其他方式修改各种元素。本文描述的所有示例都是以非限制性方式呈现的。对于受益于本公开的本领域技术人员,显而易见的是,可以进行各种修改和改变。已经在特定实施例的背景中描述了根据实施例的实现。这些实施例是说明性的而不是限制性的。许多变化、修改、增加和改进都是可能的。因此,可以为本文描述为单个实例的组件提供多个实例。各种组件、操作和数据存储之间的边界在某种程度上是任意的,并且在特定说明性配置的背景中说明了特定操作。可以设想功能的其他分配,并且这些分配可以落在所附权利要求的范围内。最后,在示例性配置中表示为离散组件的结构和功能可以实施为组合的结构或组件。这些和其他变型、修改、添加和改进可以落入所附权利要求书所限定的实施例的范围内。
尽管前述内容针对本发明的实施例,但是在不脱离本发明的基本范围的情况下,可以设计本发明的其他和进一步的实施例,并且本发明的范围由所附权利要求书确定。
Claims (15)
1.一种用于从现有PLC解决方案创建和管理基于智能动态可编程逻辑控制器PLC的解决方案的方法,该方法包括:
将所述现有PLC解决方案连接到云网络;
从用户设备(104)连接到虚拟服务器(122);
在所述用户设备(104)上的图形用户界面GUI(102)上显示PLC(112)的引脚布局的图形表示,所述引脚布局包括多个引脚;
在所述GUI上接收输入,所述输入包括:从所述多个引脚中选择第一引脚;选择传感器或执行器,所述传感器或执行器被配置为经由所述第一引脚与所述PLC耦合;以及所选传感器或所选执行器的操作参数;
将从所述用户设备接收到的输入发送到远离所述用户设备和所述PLC的虚拟服务器(122);
在所述用户设备处从所述虚拟服务器接收可执行PLC应用程序以在所述PLC上执行,所述PLC应用程序被配置为根据接收到的输入操作和/或监视所述PLC(112);和
将所述PLC应用程序发送到所述PLC,以部署在所述PLC上,
其中所述用户设备远离所述PLC,并且所述虚拟服务器远离所述用户设备和所述PLC。
2.根据权利要求1所述的方法,还包括:
在所述GUI上接收对用于在所述虚拟服务器上执行的预定义处理的选择;
从所述用户设备向所述虚拟服务器发送对所述预定义处理的选择;
在所述用户设备处从所述虚拟服务器接收可执行代码段以在基于控制器的设备CBD(110)上执行,所述代码段被配置为当在所述CBD上执行时,从所述CBD向所述虚拟服务器发出调用,以在所述虚拟服务器上执行所述预定义处理;和
从所述用户设备向所述CBD发送所述可执行代码段,以部署在所述CBD上,
其中所述CBD经由MOD-BUS协议可通信地耦合到所述PLC,
其中所述PLC应用程序被配置为向所述CBD发送所述PLC的操作信息,并且
其中所述代码段被配置为将所述操作信息发送到所述虚拟服务器。
3.根据权利要求2所述的方法,还包括:
经由所述GUI接收所述传感器或所述执行器的条件的输入;和
将所输入的条件发送到所述虚拟服务器,
其中当满足所述条件时发出所述调用,
其中所述代码段是在所述用户设备处与所述PLC应用程序一起被接收的,
其中所述PLC应用程序是使用梯形逻辑构建的,
其中根据在所述GUI上作为输入接收到的对编程语言的选择,以编程语言来构建所述代码段。
4.根据权利要求2所述的方法,还包括:
在所述GUI上接收用于显示所述PLC的操作的图形表示的请求;
从所述用户设备向所述虚拟服务器发送所述请求;
在所述用户设备处从所述虚拟服务器接收与所述PLC的操作相对应的可视化数据;和
在所述GUI上基于所述可视化数据显示所述PLC的操作的图形表示。
5.根据权利要求4所述的方法,还包括:
在所述GUI上接收修改所述PLC应用程序的请求;
将所述PLC的所述图形表示,包括所述PLC应用程序对所述PLC的配置,显示在所述GUI上;
在所述GUI上接收以下至少之一:
用于通过修改所选传感器或所选执行器、或者所选传感器或所选执行器的操作参数来修改所述第一引脚的输入,或
用于从所述多个引脚中添加第二引脚的输入,其中所述输入包括:对传感器或执行器的选择,所述传感器或执行器被配置为经由所述第二引脚与所述PLC耦合并由其操作;以及所选传感器或所选执行器的操作参数;
将接收到的输入从所述用户设备发送到所述虚拟服务器;
在所述用户设备处从所述虚拟服务器接收:
可执行的修改后的PLC应用程序,用于在所述PLC上执行,所述修改后的PLC应用程序是基于接收到的输入修改的,以及
可执行的修改后的代码段,用于在所述CBD上执行,所述代码段是基于接收到的输入修改的;
将所述修改后的PLC应用程序发送到所述PLC,以部署在所述PLC上;和
将所述修改后的代码段发送到所述CBD,以部署在所述CBD上。
6.根据权利要求5所述的方法,其中接收到的输入包括对以下至少之一的选择:所述CBD的通信配置;所述CBD的通信协议;所述CBD的类型;Modbus映射;用于执行所述PLC应用程序的一部分或所述代码段的触发通知;从所述CBD进行通信的通信模式,包括电子邮件地址、电话号码或互联网消息服务ID;或上述选择的参数。
7.根据权利要求6所述的方法,其中所述PLC(112)是部署在所述基于PLC的解决方案中的多个PLC之一,并且所述CBD(110)是部署在所述基于PLC的解决方案中的多个CBD之一,其中所述CBD的通信配置包括状态边缘、网关或独立设备,并且其中所述CBD的通信协议被配置为使得能够将调用从一个CBD路由到所述多个CDB中的另一CBD。
8.根据权利要求2所述的方法,还包括
在所述虚拟服务器上执行了所述预定义处理时,执行远程服务(130),
其中所述远程服务由与所述虚拟服务器可通信地耦合并远离所述虚拟服务器的远程服务设备执行。
9.根据权利要求1所述的方法,还包括:
在所述GUI上接收在所述虚拟服务器上的机器学习和人工智能ML/AI组件(204)的输入选择,所述ML/AI组件被配置为基于所述PLC(112)的操作和由所述PLC(112)操作的工业系统(120)来修改所述PLC应用程序;
将从所述用户设备接收到的输入发送到所述虚拟服务器;
在所述用户设备处从所述虚拟服务器接收:
可执行的修改后的PLC应用程序,用于在所述PLC上执行,所述修改后的PLC应用程序是由所述ML/AI组件修改的;以及
可执行的修改后的代码段,用于在所述CBD上执行,所述修改后的代码段是由所述ML/AI组件修改的;
将所述修改后的PLC应用程序发送到所述PLC,以部署在所述PLC上;和
将所述代码段发送到所述CBD,以部署在所述CBD上。
10.根据权利要求9所述的方法,其中所述修改后的PLC应用程序或所述代码段中的至少一个被配置为识别所述PLC(112)操作或所述工业系统(120)中的异常,预测所述PLC(112)操作或所述工业系统(120)中的异常,或此二者。
11.根据权利要求10所述的方法,其中所述ML/AI组件基于用户限定的约束来修改所述修改后的PLC应用程序或所述代码段中的至少之一,所述用户限定的约束包括以下至少之一:时延、触发警报的可接受的范围、省电目标、传感器校准、预测性维护或输出的最大化或最小化。
12.根据权利要求10所述的方法,还包括:
将所述PLC(112)运行时信息存储在所述虚拟服务器上的数据存储中;和
在所述GUI上从ML/AI算法列表中选择所述ML/AI组件。
13.一种用于从现有PLC解决方案创建和管理基于智能动态可编程逻辑控制器PLC的解决方案的装置(100),所述装置包括:
用户设备(104),其包括处理器(230)和存储处理器可执行指令的存储器(234),所述指令在被所述处理器执行时进行一种方法,所述包括:
将所述现有PLC解决方案连接到云网络;
从用户设备(104)连接到虚拟服务器(122);
在所述用户设备(104)上的图形用户界面GUI(102)上显示PLC(112)的引脚布局的图形表示,所述引脚布局包括多个引脚;
在所述GUI上接收输入,所述输入包括:从所述多个引脚中选择第一引脚;选择传感器或执行器,所述传感器或执行器被配置为经由所述第一引脚与所述PLC耦合;以及所选传感器或所选执行器的操作参数;
将从所述用户设备接收到的输入发送到远离所述用户设备和所述PLC的虚拟服务器(122);
在所述用户设备处从所述虚拟服务器接收可执行PLC应用程序以在所述PLC上执行,所述PLC应用程序被配置为根据接收到的输入操作和/或监视所述PLC(112);和
将所述PLC应用程序发送到所述PLC,以部署在所述PLC上,
其中所述用户设备远离所述PLC,并且所述虚拟服务器远离所述用户设备和所述PLC。
14.根据权利要求13所述的装置,其中所述方法还包括:
在所述GUI上接收对用于在所述虚拟服务器上执行的预定义处理的选择;
从所述用户设备向所述虚拟服务器发送对所述预定义处理的选择;
在所述用户设备处从所述虚拟服务器接收可执行代码段以在基于控制器的设备CBD(110)上执行,所述代码段被配置为当在所述CBD上执行时,从所述CBD向所述虚拟服务器发出调用,以在所述虚拟服务器上执行所述预定义处理;和
从所述用户设备向所述CBD发送所述可执行代码段,以部署在所述CBD上,
其中所述CBD经由MOD-BUS协议可通信地耦合到所述PLC,
其中所述PLC应用程序被配置为向所述CBD发送所述PLC的操作信息,并且
其中所述代码段被配置为将所述操作信息发送到所述虚拟服务器。
15.根据权利要求14所述的装置,其中所述方法还包括:
在所述GUI上接收修改所述PLC应用程序的请求;
将所述PLC的所述图形表示,包括所述PLC应用程序对所述PLC的配置,显示在所述GUI上;
在所述GUI上接收以下至少之一:
用于通过修改所选传感器或所选执行器、或者所选传感器或所选执行器的操作参数来修改所述第一引脚的输入,或
用于从所述多个引脚中添加第二引脚的输入,其中所述输入包括:对传感器或执行器的选择,所述传感器或执行器被配置为经由所述第二引脚与所述PLC耦合并由其操作;以及所选传感器或所选执行器的操作参数;
将接收到的输入从所述用户设备发送到所述虚拟服务器;
在所述用户设备处从所述虚拟服务器接收:
可执行的修改后的PLC应用程序,用于在所述PLC上执行,所述修改后的PLC应用程序是基于接收到的输入修改的,以及
可执行的修改后的代码段,用于在所述CBD上执行,所述代码段是基于接收到的输入修改的;
将所述修改后的PLC应用程序发送到所述PLC,以部署在所述PLC上;和
将所述修改后的代码段发送到所述CBD,以部署在所述CBD上。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762593370P | 2017-12-01 | 2017-12-01 | |
US62/593,370 | 2017-12-01 | ||
PCT/US2018/063704 WO2019109108A2 (en) | 2017-12-01 | 2018-12-03 | Method and apparatus for creating and managing smart programmable logic controller (plc) solutions |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111417907A true CN111417907A (zh) | 2020-07-14 |
Family
ID=66665292
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880077952.XA Pending CN111417907A (zh) | 2017-12-01 | 2018-12-03 | 创建和管理智能可编程逻辑控制器解决方案的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11269308B2 (zh) |
EP (1) | EP3717976A4 (zh) |
CN (1) | CN111417907A (zh) |
WO (1) | WO2019109108A2 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112823492A (zh) * | 2018-10-08 | 2021-05-18 | 西安姆贝拉有限公司 | 用于为网络提供端到端解决方案的系统、设备和方法 |
US20210182744A1 (en) * | 2019-12-16 | 2021-06-17 | Industrial Technology Research Institute | Revenue forecasting method, revenue forecasting system and graphical user interface |
US11553618B2 (en) | 2020-08-26 | 2023-01-10 | PassiveLogic, Inc. | Methods and systems of building automation state load and user preference via network systems activity |
US20230094187A1 (en) * | 2021-09-24 | 2023-03-30 | Rockwell Automation Technologies, Inc. | Variable relationship discovery and recommendations for industrial automation environments |
US20230096319A1 (en) * | 2021-09-24 | 2023-03-30 | Rockwell Automation Technologies, Inc. | Model asset library and recommendation engine for industrial automation environments |
CN116187227A (zh) * | 2023-02-21 | 2023-05-30 | 广东高云半导体科技股份有限公司 | 一种生成SoC的方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050256964A1 (en) * | 2004-04-15 | 2005-11-17 | Schneider Automation Sas | MODBUS Encapsulated Transport Interface |
CN103685442A (zh) * | 2012-08-09 | 2014-03-26 | 洛克威尔自动控制技术股份有限公司 | 使用云架构的远程工业监视 |
CN104142629A (zh) * | 2013-05-09 | 2014-11-12 | 洛克威尔自动控制技术股份有限公司 | 使用基于云的数据对工业机器环境进行虚拟化 |
US20150331406A1 (en) * | 2012-12-31 | 2015-11-19 | Schneider Electric Industries Sas | Programming auxiliary system of programmable controller and method thereof |
CN105717848A (zh) * | 2016-04-25 | 2016-06-29 | 湖南云协网络信息科技有限公司 | 云协通用智能远程监控系统 |
US20160327925A1 (en) * | 2015-05-08 | 2016-11-10 | Ciambella Ltd. | Method and apparatus for modifying behavior of code for a controller-based device |
US20160328216A1 (en) * | 2015-05-08 | 2016-11-10 | Ciambella Ltd. | Method and apparatus for automatic software development for a group of controller-based devices |
US20170180462A1 (en) * | 2015-12-21 | 2017-06-22 | Ciambella Ltd. | Method and apparatus for creating and managing controller based remote solutions |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US20030204560A1 (en) | 2002-04-26 | 2003-10-30 | Chen Thomas C.H. | Programmable Logic Controller with embedded Intelligent Web Server |
US8324660B2 (en) | 2005-05-17 | 2012-12-04 | Taiwan Semiconductor Manufacturing Company, Ltd. | Lattice-mismatched semiconductor structures with reduced dislocation defect densities and related methods for device fabrication |
US8055386B2 (en) | 2005-08-22 | 2011-11-08 | Trane International Inc. | Building automation system data management |
US8726285B2 (en) | 2011-01-28 | 2014-05-13 | Ciambella Ltd. | Method and apparatus for triggering workflow deployment and/or execution |
US8806085B2 (en) * | 2012-08-09 | 2014-08-12 | Ge Intelligent Platforms, Inc. | Application specific integrated circuit (ASIC) disposed in input/output module connectable to programmable logic controller (PLC) based systems having plurality of connection paths |
TWI489232B (zh) * | 2012-11-14 | 2015-06-21 | Inst Information Industry | 遠端監控系統及方法及其記錄媒體 |
JP6494609B2 (ja) | 2013-06-18 | 2019-04-03 | チャンベッラ・リミテッド | カスタマイズされたソフトウェア開発キット(sdk)生成のための方法および装置 |
US9235383B2 (en) | 2013-06-18 | 2016-01-12 | Caimbella Ltd. | Method and apparatus for code virtualization and remote process call generation |
WO2015006599A1 (en) | 2013-07-12 | 2015-01-15 | Ciambella Ltd. | Method and apparatus for firmware virtualization |
US9619122B2 (en) | 2014-01-10 | 2017-04-11 | Ciambella Ltd. | Method and apparatus for automatic device program generation |
-
2018
- 2018-12-03 CN CN201880077952.XA patent/CN111417907A/zh active Pending
- 2018-12-03 EP EP18884443.5A patent/EP3717976A4/en not_active Withdrawn
- 2018-12-03 US US16/767,367 patent/US11269308B2/en active Active
- 2018-12-03 WO PCT/US2018/063704 patent/WO2019109108A2/en unknown
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050256964A1 (en) * | 2004-04-15 | 2005-11-17 | Schneider Automation Sas | MODBUS Encapsulated Transport Interface |
CN103685442A (zh) * | 2012-08-09 | 2014-03-26 | 洛克威尔自动控制技术股份有限公司 | 使用云架构的远程工业监视 |
US20150331406A1 (en) * | 2012-12-31 | 2015-11-19 | Schneider Electric Industries Sas | Programming auxiliary system of programmable controller and method thereof |
CN104142629A (zh) * | 2013-05-09 | 2014-11-12 | 洛克威尔自动控制技术股份有限公司 | 使用基于云的数据对工业机器环境进行虚拟化 |
US20160327925A1 (en) * | 2015-05-08 | 2016-11-10 | Ciambella Ltd. | Method and apparatus for modifying behavior of code for a controller-based device |
US20160328216A1 (en) * | 2015-05-08 | 2016-11-10 | Ciambella Ltd. | Method and apparatus for automatic software development for a group of controller-based devices |
US20170180462A1 (en) * | 2015-12-21 | 2017-06-22 | Ciambella Ltd. | Method and apparatus for creating and managing controller based remote solutions |
CN105717848A (zh) * | 2016-04-25 | 2016-06-29 | 湖南云协网络信息科技有限公司 | 云协通用智能远程监控系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2019109108A3 (en) | 2020-03-26 |
EP3717976A4 (en) | 2021-08-04 |
US11269308B2 (en) | 2022-03-08 |
WO2019109108A2 (en) | 2019-06-06 |
US20200387129A1 (en) | 2020-12-10 |
EP3717976A2 (en) | 2020-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111417907A (zh) | 创建和管理智能可编程逻辑控制器解决方案的方法和装置 | |
US11467720B2 (en) | Systems and methods for automatically populating a display area with historized process parameters | |
US11669309B2 (en) | Extensible integrated development environment (IDE) platform with open application programming interfaces (APIs) | |
CN108604186B (zh) | 用于创建和管理基于控制器的远程解决方案的方法和装置 | |
JP7387336B2 (ja) | プロセスグラフィックスにウェブフレームを埋め込むためのシステムおよび方法 | |
US20240086182A1 (en) | Method for connecting a web socket session with an object instance with automation device association | |
US20240019850A1 (en) | Extensible profiles for industrial control modules | |
US20240103852A1 (en) | Presentation design dynamic generation from data model server | |
US20240103850A1 (en) | Presentation design to background service binding | |
US20240103851A1 (en) | Presentation design to automation device binding | |
EP4332705A1 (en) | Industrial automation system topology with point to point representation paths | |
CN109891854B (zh) | 用于创建和管理基于控制器的远程解决方案的方法和设备 | |
CN116917818A (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: 40034218 Country of ref document: HK |
|
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200714 |