CN112513887A - 神经逻辑控制器 - Google Patents
神经逻辑控制器 Download PDFInfo
- Publication number
- CN112513887A CN112513887A CN201880096185.7A CN201880096185A CN112513887A CN 112513887 A CN112513887 A CN 112513887A CN 201880096185 A CN201880096185 A CN 201880096185A CN 112513887 A CN112513887 A CN 112513887A
- Authority
- CN
- China
- Prior art keywords
- processor
- process image
- machine learning
- controller
- neural
- 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
- 230000001537 neural effect Effects 0.000 title claims description 76
- 238000000034 method Methods 0.000 claims abstract description 87
- 230000008569 process Effects 0.000 claims abstract description 60
- 238000010801 machine learning Methods 0.000 claims abstract description 30
- 238000012549 training Methods 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 7
- 238000003860 storage Methods 0.000 claims description 7
- 230000001419 dependent effect Effects 0.000 claims 1
- 238000012545 processing Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 13
- 238000012360 testing method Methods 0.000 description 13
- 238000013473 artificial intelligence Methods 0.000 description 11
- 238000013528 artificial neural network Methods 0.000 description 9
- 238000013135 deep learning Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000002567 autonomic effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 210000005036 nerve Anatomy 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 235000010724 Wisteria floribunda Nutrition 0.000 description 1
- 238000012884 algebraic function Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000003750 conditioning effect Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
- G06N3/105—Shells for specifying net layout
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- 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/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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/542—Event management; Broadcasting; Multicasting; Notifications
-
- 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/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Neurology (AREA)
- Human Computer Interaction (AREA)
- Programmable Controllers (AREA)
Abstract
一种使用控制器来执行机器学习模型的方法,包括:控制器内的处理器将输入值写入控制器内的过程映像。术语过程映像指控制器的易失性存储器内的预定义地址空间。连接到控制器的协处理器从过程映像读取输入值并将机器学习模型应用于输入值以生成输出值。协处理器将输出值写入过程映像并且处理器从过程映像读取那些输出值。然后该过程可执行利用一个或多个输出值的应用程序。
Description
技术领域
本公开主要涉及神经逻辑控制器(具有一个或多个神经协处理器的PLC)的工程和运行时设计。各种系统和方法可以被应用于工业自动化应用,以及其中使用控制器的各种其它应用。
背景技术
控制器为专用计算机控制系统,其被配置为执行连续采集关于输入装置状态的数据以控制输出装置状态的软件。控制器的示例包括可编程逻辑控制器、运动控制器、CNC、智能I/O和驱动控制器。控制器通常包括三个主要部件:处理器(可包括易失性存储器)、包括应用程序的易失性存储器以及用于连接到自动化系统中的其它装置的一个或多个输入/输出(I/O)端口。现代控制器拥有自己的过程映像和数据历史数据库。此外,这些系统通常具有专有数据访问接口,以便于自动化系统之间的跨层(垂直)数据访问。对于同一层控制系统之间的水平访问也是如此。
机器和深度学习的最新进展表明,使用神经网络可以提高机器的智能。对于自主的应用,这些进展成为重要的任务,诸如感知、学习和推理。在这些应用中,神经网络具有大量参数,从而导致大量操作。为了涵盖神经网络的实时操作,典型的系统包括一组昂贵的GPU、专用处理单元或其它分布式系统。由于板载控制器的成本和物理约束,这限制了神经网络在工业控制器中对自主应用的使用。
由于工厂中的传感器和其它可用的网络物理装置,工业非常需要利用深度学习和应用来训练具有大量数据的系统。可以找到不同的示例,诸如人工智能(AI)、加速器(例如,ASIC,FPGA等)、专用CPU和GPU。在最近的一个示例中,富士通推出了AI 400DL作为AI加速器。加速器将Chainer作为深度学习框架和各种其它目标框架运行。还有其它示例,例如Google(Google TPU)、Knupath的Hermosa和Intel(Lake Crest)的AI加速器,用于增强工业机器的AI功能。然而,这些示例具有类似GPU的局限性。而且,迄今为止,还没有办法将AI加速器硬件链接到在自动化环境中广泛使用的控制器体系结构。
常规控制器缺乏对嵌入神经计算功能的任何支持。在具有神经计算功能的地方,它们通常需要云计算系统来执行处理任务。由于计算距离网络物理系统(例如工业机器人、边缘和物联网装置或其它机器)较远,因此这将所有应用限制为实时板载处理。其它仅在边缘增加CPU能力的构思的缺点是无法与PLC在相同的周期内运行,因此无缝集成非常困难,甚至无法实现。其它更幼稚的实现方式尝试在多核控制器中执行神经函数。这种体系结构只允许控制器中非常简单的神经模型,因为CPU具有足够的可并行性以计算甚至简单神经网络所需的大量线性代数函数。
发明内容
本发明的实施方式通过提供与具有一个或多个神经协处理器的PLC(本文中称为“神经逻辑控制器”)的工程和运行时执行有关的方法、系统和装置,解决并克服上述缺点和缺陷中的一者或多者。这些神经逻辑控制器可被用于各种与自主有关的应用。
根据一些实施方式,一种用于使用控制器来执行机器学习模型的方法包括:控制器内的处理器将输入值写入控制器内的过程映像。术语“过程映像”是指控制器的易失性存储器内的预定义地址空间。连接到控制器的协处理器从过程映像中读取输入值,并将机器学习模型应用于输入值以生成输出值。协处理器将输出值写入过程映像,处理器从过程映像中读取这些输出值。处理器可以执行利用一个或多个输出值的应用程序。例如,在一个实施方式中,应用程序使用输出值来控制控制器外部的自动化系统装置。
根据其它实施方式,一种用于在控制器装置内执行机器学习代码的系统包括可编程逻辑控制器(PLC),其包括非暂时性存储介质、处理器和协处理器。处理器执行多个指令。指令的子集取决于不能由处理器执行的机器学习代码的执行。协处理器本地连接到PLC。例如,在一个实施方式中,协处理器为经由USB连接到PLC的神经计算棒。协处理器被配置为经由非暂时性存储介质从处理器接收输入值。协处理器使用输入值来执行机器学习代码,从而产生一个或多个输出值。一旦生成输出值,就可以将它们经由非暂时性存储介质传送到处理器。
根据本发明的另一方面,如一些实施方式中所描述的,一种用于对包括处理器和协处理器的神经计算体系结构进行编程的方法包括在主机上显示第一图形用户界面(GUI)。第一GUI包括一个基于块的编辑器,其用于对自动化程序进行编程。在第一GUI中实例化“神经块”。神经块包括可由PLC内的处理器执行的自动化代码,该代码允许处理器在连接到PLC的协处理器上执行机器学习模型。响应于神经块的实例化,显示第二GUI,其允许输入与机器学习模型相对应的源代码。为了将神经块与机器学习模型连接,第一GUI可以被用于对自动化程序的与机器学习模型连接的部分进行编程。
通过参考附图进行的说明性实施方式的以下详细描述,本发明的附加特征和优点将变得显而易见。
附图说明
当结合附图阅读时,从以下详细描述中可以最好地理解本发明的前述和其它方面。出于说明本发明的目的,在附图中示出了目前优选的实施方式,但是应该理解,本发明不限于所公开的特定手段。附图中包括以下图:
图1示出了可以在一些实施方式中使用的NCA;
图2示出了根据一些实施方式的用于生成NLC的示例过程;
图3提供了根据一些实施方式的关于编译和部署阶段的附加细节;
图4A示出了根据一些实施方式的在神经协处理器与PLC之间的运行时交互;以及
图4B示出了NCA的另一种实现方式,其中并行使用多个神经协处理器来缩短处理时间并增强NCA的计算能力。
具体实施方式
本文描述了系统、方法和装置,其主要涉及具有一个或多个神经协处理器的控制器(本文中称为“神经逻辑控制器”或“NLC”)的设计和运行时执行。这种神经逻辑控制器(NLC)可被用于各种与自主有关的应用。NLC与传统控制器硬件体系结构的组合在本文中称为“神经控制器体系结构”或“NCA”。NCA通过启用例如工业应用AI应用的板载感知、推理和推断功能,增强了常规控制器的功能。
图1示出了可以在一些实施方式中使用的NCA。简而言之,NCA包括包含了一个或多个人工智能(AI)加速器的PLC。如本领域通常所理解的,AI加速器为专门设计和配置为提供神经计算能力的硬件装置。这些AI加速器在本文中被称为“神经协处理器”。通常,本领域已知的任何PLC可以与本文描述的技术一起使用。例如,在一个实施方式中,PLC为基于Linux的西门子控制器(例如,IOT 20xx或多功能控制器平台)。
在图1中,有一个神经协处理器110;然而,通常,NCA中可以包括任何数量的神经协处理器。每个神经协处理器都是设计用于加速人工神经网络和其它机器学习应用的微处理器。本领域中已知的任何类型的AI加速器都可以用作NCA中的神经协处理器110。在一些实施方式中,神经协处理器110为安装在PLC中的处理器单元。在其它实施方式中,神经协处理器110为神经计算棒,诸如Intel MovidiusTM。如本领域中通常所理解的,神经计算棒为一种小尺寸装置,其执行单板计算机的功能,但可以使用通用串行总线(USB)连接或类似的连接机制来连接至另一装置。
除了神经协处理器110之外,NCA的PLC还包括处理器105、系统存储器(包含过程映像115和控制程序120)以及外围装置总线125,该外围装置总线允许与一个或多个自动化系统装置130进行通信。过程映像115为PLC系统存储器140中的预定义地址空间,它在每个处理/扫描周期中基于与神经协处理器110和自动化系统装置130相关联的数据进行更新。在每个处理步骤中,处理器105读取过程映像115,执行来自控制程序120的部署的应用逻辑,并将结果写回到过程映像115中。通常,任何类型的自动化系统装置都可以与本文讨论的系统一起使用,包括但不限于现场装置、机器人、传送带等。
在该示例中,控制程序120包括取决于存储在PLC的系统存储器140中的机器学习模型135的执行的代码。机器学习模型135可以被理解为人工神经网络或其它机器学习应用。对应于机器学习模型135的软件代码在本文中被称为“神经代码”或NC。NC可以包括例如以Python语言定义的计算图,该Python语言为深度学习框架(如TensorFlow、PyTorch、Caffe,Keras等)的事实上的语言。概念上,该计算图为被布置为连接节点图形的一系列操作。每个节点对应一个运算符、变量或常量。可以直接在神经编辑器所提供的GUI中对计算图进行编码。作为简单的示例,自动化工程师可以使用TensorFlow库将两个常量定义为“a=constant(1)”和“b=constant(2)”。这两个常数就是计算图中的节点。可以定义将常量加在一起的第三节点:“add op=add(a,b)。”使用这个基础方法,执行更加复杂功能(诸如通过损失函数的优化来学习)的计算图可被组装。在本领域中一般已知计算图,因此在本文不再赘述。
在该示例中,处理器105经由过程映像115与神经协处理器110通信。下面参考图4更详细地描述该过程。简而言之,处理器105将NC参数(例如,至机器学习模型135的输入值)写入过程映像115。神经协处理器110读取这些参数、执行NC,并将任何输出(即由机器学习模型135生成的输出值)写回到过程映像115。然后,处理器105从过程映像115中读取这些输出,并使用它们来执行控制程序120的进一步处理。
作为如何将NCA应用于自动化应用的实际示例,考虑机器人视觉的领域。可以将机器人配置为通过使用相机拍摄场景的图像然后对这些图像应用对象检测算法来“看”。通常,图像处理和对象检测算法为处理器密集型的并且不适用于在PLC的处理器105内执行。然而,神经协处理器110针对这种处理被优化。因此,机器人可以将图像数据传递到PLC,在该处神经协处理器110处理图像并识别生产环境中的对象。基于检测到的对象,处理器105可以向机器人提供指令,该指令允许机器人例如在生产环境内移动期间拾取对象或避开对象。
图2示出了根据一些实施方式的用于生成NLC的示例过程。该过程开始于步骤205,自动化工程师在前端编辑器中实例化专用代码块,在本文中称为“神经块”或“NB”。例如,可以通过在前端编辑器中键入命令列表或将神经块的可视化拖动到允许基于块的视觉编码的GUI中来执行此实例化。此示例中的前端编辑器为允许自动化工程师执行控制程序设计以及可能执行其它任务(诸如配置控制器使用的各种参数和设置)的软件。前端编辑器的一个示例为西门子全集成自动化(TIA)博途TM。
神经块类似于功能块(FB),其目的是成为自动化代码与神经代码之间的接口。在图2的示例中,NB的创建触发专门的编辑器,在本文中称为待显示的“神经编辑器”。在一些实施方式中,神经编辑器可以为前端编辑器的附加组件,也可以为单独的集成开发环境(IDE),诸如Jupyter笔记本或Visual Studio Code。在步骤230处,神经编辑器允许自动化工程师定义神经体系结构。通常,任何神经体系结构均可与本文描述的技术一起使用。因此,例如,在一些实施方式中,神经编辑器允许自动化工程师从诸如前馈神经网络、递归网络和对称连接的网络之类的众所周知的体系结构中进行选择。如本领域通常所理解的,神经体系结构具有与其相关联的许多参数,诸如体系结构中包括的层的数量和类型。在步骤230处,自动化工程师可以例如通过在神经编辑器内显示的GUI中输入值来指定这些参数中的每个参数。在一些实施方式中,神经编辑器可以提供例如基于自动化工程师生成的先前体系结构而选择的预定义值。
接下来,在步骤235处,神经编辑器允许自动化工程师准备标记的数据项以训练和测试神经体系结构。什么数据将用于训练和测试的具体细节将取决于NC将要执行的预期任务。可以使用各种技术来指定数据。例如,在一些实施方式中,神经编辑器包括允许自动化工程师上传包括所有数据的数据文件的GUI。数据文件可以明确说明要用于训练或测试的数据项;可替代地,在将数据上传到神经编辑器后,GUI可以允许自动化工程师将数据分为训练和测试组。在其它实施方式中,自动化可能够通过GUI手动输入数据或编辑现有数据项。
继续参考图2,在步骤240处,自动化工程师使用神经编辑器对NC编程。如以上关于图1所述,NC的内容将取决于所采用的深度学习框架。例如,在一个实施方式中,NC包括以Python语言定义的计算图。因此,在步骤NC处执行的编程包括自动化工程师输入定义计算图的Python语句。编程完成后,在步骤245处训练和测试所得的NC。如何进行训练和测试的细节将取决于所采用的框架。例如,对于TensorFlow实现方式,“会话”有助于在一台或多台机器上执行图形或部分计算图。可以通过启动会话、初始化任何变量以及对多批训练数据运行优化器来执行训练。训练完成后,可以随时存储会话变量并将其用于恢复会话。使用测试数据作为会话的输入,然后可以执行NC的测试。
在图2中,步骤250–270说明了如何实施训练和测试。在此示例中,支持两种配置:在本地主机(例如,便携式计算机或云)上进行训练或在神经协处理器上进行训练。通常,与在主机上执行相比,在神经协处理器上进行处理应该更高效、更快捷;然而,在某些情况下,神经协处理器可能不可用,必须使用主机来执行。对于在主机上执行的简单情况,在步骤250处执行处理。除了执行之外,在某些情况下,NC还必须在执行之前进行编译(此步骤未在图2中示出)。类似地,如果要在神经协处理器上进行训练,则在步骤255处使用与协处理器体系结构相对应的编译器软件在用于协处理器的主机上编译NC。然后,在步骤260处,将编译的NC部署到神经协处理器,并且在步骤265处,将用于训练/测试的数据传输到神经协处理器。最终,在步骤270处,在神经协处理器中执行编译的NC以执行训练/测试。
基于测试阶段NC的输出,自动化工程师可以确定训练后的计算图是否产生令人满意的结果。即,自动化工程师确定NC生成的输出与测试数据的原始标签之间的差异。如果差异低于阈值量,则认为NC令人满意;否则,在步骤230处开始重复创建NC的过程。在某些实施方式中,确定结果是否令人满意的过程可以自动化,使得不会直接需要自动化工程师的协助。
使用神经编辑器完成任务后,控件将返回到前端。通过设计和测试的NB,自动化工程师在步骤210处以控制器平台的目标语言创建NB接口。例如,对于西门子SIMATIC系统上的实现方式,可以用阶梯(LAD)、语句列表(STL)或结构化控制语言(SCL)创建接口。该接口在概念上可以理解为是围绕NB的封装,从而允许自动化程序中的其它FB调用NB。因此,该接口可以包括对象应用于与NB一起执行的方法、变量等的规范。在步骤215处,在自动化程序中使用NB(例如,通过将其连接到其它FB)。最后,在步骤220和225处,编译NB并将其部署到神经协处理器。
图3提供了根据一些实施方式的关于编译和部署阶段的附加细节。在此示例中,假定目标平台为西门子SEMATIC PLC;然而,应该理解,下面讨论的一般原理也很容易适用于其它类型的PLC。
在图3的左侧,在305处选择前端编译器。所选的编译器被用于将NB编译为目标SIMATIC语言,以使其可与其余自动化程序(如FB,FC和DB)互操作。在右侧,在步骤310处通过选择适当的神经编译器将NC编译到目标框架中。这些神经编译器由包括Tensorflow在内的现有深度学习框架提供。例如,NB编译产生MC7+代码。对于NC,编译产生已编译的NC(通常为GPU的机器代码)。
如以上在图2的讨论中所指出的,用于神经网络的训练和测试过程可以在主机系统(例如,便携式计算机或云)中或在一个或多个神经协处理器中执行。使用神经协处理器的优势在于,训练也可以直接在NCA中执行。这需要编译、部署NC,将训练数据传输、执行并将结果收集回神经编辑器。否则,训练将在主机中本地进行。在步骤315处,使用TIA博途中存在的SIMATIC 325协议将MC7代码部署到PLC。类似地,在步骤320处,将编译的NC部署到NCA中的神经协处理器330。
图4A示出了根据一些实施方式的在神经协处理器与PLC之间的运行时交互。运行时的任务是协调PLC控制程序中的自动化代码和神经协处理器中的神经功能的执行。运行时操作的一项挑战是确保在PLC中执行的自动化程序与在神经协处理器中执行的神经程序之间进行实时通信。然而,这种交互的主要优点在于可以在运行时期间将PLC过程映像提供给神经协处理器。将神经功能直接带到传感器数据提供了前所未有的优势,因为感知、推断和推理功能可以访问PLC或控制器可以访问的全分辨率数据。
在图4A中,PLC执行作为控制程序一部分的自动化代码405。在此执行期间,PLC遇到NB写入命令410。这使得数据被写入到过程映像430。然后,PLC在PLC等待神经协处理器的处理结果的同时执行代码块415。块415可以执行一个或多个功能,这些功能不需要神经协处理器执行的处理结果;因此,可替代地,块415可以为不执行功能的“虚拟”块(例如,循环直到神经协处理器完成处理为止)。
神经协处理器执行NC读取命令435,该命令从过程映像430中读取数据。读取的数据随后被用于执行NC 440以生成一个或多个输出。然后,神经协处理器执行NC写入命令445,以将这些输出写到过程映像430。然后,PLC执行NB读取命令420以读取来自过程映像430的输出。然后,这些输出被用于执行控制程序的附加自动化代码425。
PLC的处理器与神经协处理器进行交互的模式有多种。例如,一种模式是“循环式”,这意味着处理器和神经协处理器之间的交互在每个周期发生。在图4A中示出该模式。作为第二示例,在“流水线”模式下,每当PLC或神经协处理器具有新数据,就会发生交互。当发生这种情况时,可以切换控制信号以警告接收器提供了新数据。否则,控制信号将关闭,接收器可以忽略过程映像的输入,也可以使用最新值。作为第三示例,PLC和神经协处理器可以独立地操作。期望两个计算彼此独立地执行。无论何时需要,都可以通过在过程映像中放置特定消息来请求通信、消息传递或显式通信。
图4B示出了NCA的另一种实现方式,其中并行使用多个神经协处理器来缩短处理时间并增强NCA的计算能力。在该示例中,有两个神经协处理器;然而,这个构思可被容易地拓展到任意数量的协处理器。除了上面相对于图4A描述的运行时交互之外,第二协处理器还执行NC读取命令450,以从过程映像430中读取NC。然后,第二协处理器与第一协处理器的NC执行440并行执行NC 455。然后,第二处理器执行NC写入命令460,以将结果写入过程映像430,进而由PLC读取该结果。须注意,在该示例中,自动化代码405可以被明确地编码以支持并行化。例如,在一个实施方式中,自动化代码405将数据集划分为多个子集。为每个子集生成NB,然后使用NB写入命令410将NB写入过程映像430。每个单独的NB都被寻址到其中一个神经协处理器。PLC读取从过程映像430返回的结果,并且自动化代码425汇总结果。
本文描述的各种装置(包括但不限于嵌入式控制器和相关的计算体系结构)可以包括至少一个计算机可读介质或存储器,其用于保存根据本发明的实施方式编程的指令并用于包含数据结构、表格、记录或本文描述的其它数据。本文使用的术语“计算机可读介质”是指参与向一个或多个处理器提供指令以供执行的任何介质。计算机可读介质可以采用许多形式,包括但不限于非暂时性、非易失性介质、易失性介质和传输介质。非易失性介质的非限制性示例包括光盘、固态驱动器、磁盘和磁光盘。易失性介质的非限制性示例包括动态存储器。传输介质的非限制性示例包括同轴电缆、铜线和光纤,包括构成系统总线的导线。传输介质也可以采用声波或光波的形式,诸如在无线电波和红外数据通信期间产生的那些声波或光波。
本文使用的可执行应用包括用于调节处理器以实现预定功能的代码或机器可读指令(例如,响应于用户命令或输入),诸如操作系统、上下文数据采集系统或其它信息处理系统的那些代码或机器可读指令。可执行程序为用于执行一个或多个特定过程的代码段或机器可读指令、子例程或代码的其它不同部分或可执行应用的一部分。这些过程可包括接收输入数据和/或参数,对接收的输入数据执行操作和/或响应于接收的输入参数执行功能,并且提供所得输出数据和/或参数。
本文使用的图形用户界面(GUI)包括一个或多个显示图像,其由显示处理器生成并使用户能够与处理器或其它装置进行交互并且具有相关的数据采集和处理功能。GUI还包括可执行程序或可执行应用。可执行程序或可执行应用支配显示处理器以生成表示GUI显示图像的信号。这些信号被提供给显示装置,该显示装置显示图像供用户观看。在可执行程序或可执行应用的控制下,处理器响应于从输入装置接收到的信号操纵GUI显示图像。以这种方式,用户可以使用输入装置与显示图像交互,使得用户能够与处理器或其它装置进行交互。
本文的功能和处理步骤可以响应于用户命令自动地、全部地或部分地执行。响应于一个或多个可执行指令或装置操作而无需用户直接启动活动,执行自动执行的活动(包括步骤)。
图中的系统和过程不是唯一的。可以根据本发明的原理导出其它系统、过程和菜单以实现相同的目的。尽管已经参考特定实施方式描述了本发明,但是应该理解,本文示出和描述的实施方式和变化仅用于说明目的。在不脱离本发明的范围的情况下,本领域技术人员可以实现对当前设计的修改。如本文所述,可以使用硬件部件、软件部件和/或其组合来实现各种系统、子系统、代理、管理器和过程。本文中的任何权利要求要素都不应根据35U.S.C.112(f)的规定来解释,除非使用短语“用于...的装置”明确叙述该要素。
Claims (18)
1.一种使用控制器来执行机器学习模型的方法,所述方法包括:
由所述控制器内的处理器将一个或多个输入值写入所述控制器内的过程映像,其中,所述过程映像为所述控制器的易失性存储器内的预定义地址空间;
由连接到所述控制器的协处理器从所述过程映像读取所述输入值;
由所述协处理器将机器学习模型应用于所述一个或多个输入值以生成一个或多个输出值;
由所述协处理器将所述一个或多个输出值写入所述过程映像;
由所述处理器从所述过程映像读取所述一个或多个输出值;以及
由所述处理器执行利用所述一个或多个输出值的应用程序。
2.根据权利要求1所述的方法,其中,所述应用程序使用所述输出值来控制所述控制器外部的自动化系统装置。
3.根据权利要求1所述的方法,其中,在第一扫描周期期间:(i)所述输入值由所述处理器写入所述过程映像,并且(ii)所述输入值由所述协处理器从所述过程映像读取。
4.根据权利要求1所述的方法,其中,在第一扫描周期期间:(i)由所述协处理器将所述输出值写入所述过程映像,并且(ii)由所述处理器从所述过程映像读取所述输出值。
5.根据权利要求1所述的方法,进一步包括:
在将所述输入值写入所述过程映像之后,切换所述过程映像中的控制信号以通知所述协处理器来读取所述输入值;以及
在将所述输出值写入所述过程映像之后,切换所述过程映像中的所述控制信号以通知所述处理器来读取所述输出值。
6.根据权利要求1所述的方法,进一步包括:
在将所述输入值写入所述过程映像之后,向所述协处理器发送指示所述过程映像中的所述输入值的可用性的第一消息;以及
在将所述输出值写入所述过程映像之后,向所述处理器发送指示所述过程映像中的所述输出值的可用性的第二消息。
7.根据权利要求1所述的方法,其中,所述协处理器为神经计算棒。
8.根据权利要求1所述的方法,其中,所述协处理器被容纳在所述控制器中。
9.一种用于在所述控制器装置内执行机器学习代码的系统,所述系统包括:
可编程逻辑控制器(PLC),包括:
非暂时性存储介质;
执行多个指令的处理器,其中,所述指令的子集取决于所述处理器不可执行的机器学习代码的执行;
协处理器,所述协处理器本地连接到所述可编程逻辑控制器并被配置为:
(i)经由所述非暂时性存储介质从所述处理器接收输入值,
(ii)使用所述输入值来执行所述机器学习代码,从而产生一个或多个输出值,以及
(iii)经由所述非暂时性存储介质将所述输出值传送给所述处理器。
10.根据权利要求9所述的系统,其中,所述协处理器为连接至PLC的神经计算棒。
11.根据权利要求10所述的系统,其中,所述神经计算棒经由通用串行总线(USB)连接而连接至所述可编程逻辑控制器。
12.根据权利要求9所述的系统,其中,所述非暂时性存储介质、所述处理器和所述协处理器被一起容纳在单个单元中。
13.根据权利要求9所述的系统,其中,所述处理器使用所述输出值来生成用于一个或多个自动化装置的控制指令。
14.一种用于对包括处理器和协处理器的神经计算体系结构进行编程的方法,其中,所述方法包括:
在主机上显示第一图形用户界面(GUI),其中,所述第一GUI包括用于对自动化程序进行编程的基于块的编辑器;
在所述第一GUI中实例化神经块,其中,所述神经块包括可由PLC内的处理器执行的自动化代码,所述自动化代码允许所述处理器在连接至所述PLC的协处理器上执行机器学习模型;
响应于所述神经块的实例化,显示用于输入与所述机器学习模型相对应的源代码的第二GUI;以及
使用所述第一GUI对与所述机器学习模型连接的所述自动化程序的一部分进行编程。
15.根据权利要求14所述的方法,其中,与所述机器学习模型相对应的所述源代码包括以编程语言定义的计算图。
16.根据权利要求15所述的方法,进一步包括:
编译所述机器学习模型的所述源代码以在所述协处理器上执行;以及
将经编译的机器学习模型部署到所述协处理器。
17.根据权利要求16所述的方法,进一步包括:
使用所述第二GUI来定义所述机器学习模型的训练数据集;
将所述训练数据集发送给所述协处理器;
使用所述训练数据集在所述协处理器上训练所述机器学习模型。
18.根据权利要求16所述的方法,进一步包括:
编译所述自动化程序以在所述处理器上执行;以及
将经编译的自动化程序部署到所述处理器。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2018/045162 WO2020027852A1 (en) | 2018-08-03 | 2018-08-03 | Neural logic controllers |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112513887A true CN112513887A (zh) | 2021-03-16 |
Family
ID=63254800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880096185.7A Pending CN112513887A (zh) | 2018-08-03 | 2018-08-03 | 神经逻辑控制器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20210150359A1 (zh) |
EP (1) | EP3818476A1 (zh) |
CN (1) | CN112513887A (zh) |
WO (1) | WO2020027852A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022246647A1 (en) * | 2021-05-25 | 2022-12-01 | Siemens Aktiengesellschaft | Data interaction method, apparatus and system for ai inference device and automation controller |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11640539B2 (en) | 2019-07-08 | 2023-05-02 | Vianai Systems, Inc. | Techniques for visualizing the operation of neural networks using samples of training data |
US11615321B2 (en) | 2019-07-08 | 2023-03-28 | Vianai Systems, Inc. | Techniques for modifying the operation of neural networks |
US11681925B2 (en) | 2019-07-08 | 2023-06-20 | Vianai Systems, Inc. | Techniques for creating, analyzing, and modifying neural networks |
US11734590B2 (en) * | 2020-06-16 | 2023-08-22 | Northrop Grumman Systems Corporation | System and method for automating observe-orient-decide-act (OODA) loop enabling cognitive autonomous agent systems |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1627251A (zh) * | 2003-12-09 | 2005-06-15 | 微软公司 | 使用图形处理单元加速并优化机器学习技术的处理 |
US20090083522A1 (en) * | 2007-09-21 | 2009-03-26 | Siemens Energy & Automation, Inc. | Systems, Devices, and/or Methods for Managing Programmable Logic Controller Processing |
CN102750127A (zh) * | 2012-06-12 | 2012-10-24 | 清华大学 | 一种协处理器 |
DE102012204358A1 (de) * | 2012-03-20 | 2013-09-26 | Siemens Aktiengesellschaft | Verfahren zum Betreiben einer Prozess- und/oder Fertigungsanlage, Steuervorrichtung einer solchen Anlage und Modul für die Steuervorrichtung |
EP3118697A1 (en) * | 2015-07-16 | 2017-01-18 | Siemens Aktiengesellschaft | A knowledge-based programmable logic controller with flexible in-field knowledge management and analytics |
CN106940815A (zh) * | 2017-02-13 | 2017-07-11 | 西安交通大学 | 一种可编程卷积神经网络协处理器ip核 |
CN107003988A (zh) * | 2014-12-19 | 2017-08-01 | 英特尔公司 | 用于执行卷积运算的存储设备和方法 |
US20170235671A1 (en) * | 2016-02-15 | 2017-08-17 | MemRay Corporation | Computing device, data transfer method between coprocessor and non-volatile memory, and computer-readable recording medium |
CN107850882A (zh) * | 2015-08-07 | 2018-03-27 | 西门子公司 | 自动化和控制分布式数据管理系统 |
EP3343460A1 (en) * | 2016-12-31 | 2018-07-04 | INTEL Corporation | Hardware accelerator template and design framework for implementing recurrent neural networks |
-
2018
- 2018-08-03 US US17/259,684 patent/US20210150359A1/en active Pending
- 2018-08-03 WO PCT/US2018/045162 patent/WO2020027852A1/en unknown
- 2018-08-03 EP EP18756346.5A patent/EP3818476A1/en active Pending
- 2018-08-03 CN CN201880096185.7A patent/CN112513887A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1627251A (zh) * | 2003-12-09 | 2005-06-15 | 微软公司 | 使用图形处理单元加速并优化机器学习技术的处理 |
US20090083522A1 (en) * | 2007-09-21 | 2009-03-26 | Siemens Energy & Automation, Inc. | Systems, Devices, and/or Methods for Managing Programmable Logic Controller Processing |
DE102012204358A1 (de) * | 2012-03-20 | 2013-09-26 | Siemens Aktiengesellschaft | Verfahren zum Betreiben einer Prozess- und/oder Fertigungsanlage, Steuervorrichtung einer solchen Anlage und Modul für die Steuervorrichtung |
CN102750127A (zh) * | 2012-06-12 | 2012-10-24 | 清华大学 | 一种协处理器 |
CN107003988A (zh) * | 2014-12-19 | 2017-08-01 | 英特尔公司 | 用于执行卷积运算的存储设备和方法 |
EP3118697A1 (en) * | 2015-07-16 | 2017-01-18 | Siemens Aktiengesellschaft | A knowledge-based programmable logic controller with flexible in-field knowledge management and analytics |
CN106354082A (zh) * | 2015-07-16 | 2017-01-25 | 西门子公司 | 一种采用灵活的现场知识管理和分析的基于知识的可编程逻辑控制器 |
CN107850882A (zh) * | 2015-08-07 | 2018-03-27 | 西门子公司 | 自动化和控制分布式数据管理系统 |
US20170235671A1 (en) * | 2016-02-15 | 2017-08-17 | MemRay Corporation | Computing device, data transfer method between coprocessor and non-volatile memory, and computer-readable recording medium |
EP3343460A1 (en) * | 2016-12-31 | 2018-07-04 | INTEL Corporation | Hardware accelerator template and design framework for implementing recurrent neural networks |
CN106940815A (zh) * | 2017-02-13 | 2017-07-11 | 西安交通大学 | 一种可编程卷积神经网络协处理器ip核 |
Non-Patent Citations (1)
Title |
---|
WILLIAM G. WONG: "Accelerate AI with Intel’s Movidius", pages 1 - 4, Retrieved from the Internet <URL:https://www.electronicdesign.com/technologies/embedded/article/21805806/accelerate-ai-with-intels-movidius> * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022246647A1 (en) * | 2021-05-25 | 2022-12-01 | Siemens Aktiengesellschaft | Data interaction method, apparatus and system for ai inference device and automation controller |
Also Published As
Publication number | Publication date |
---|---|
WO2020027852A1 (en) | 2020-02-06 |
US20210150359A1 (en) | 2021-05-20 |
EP3818476A1 (en) | 2021-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112513887A (zh) | 神经逻辑控制器 | |
Xia et al. | A digital twin to train deep reinforcement learning agent for smart manufacturing plants: Environment, interfaces and intelligence | |
US10809692B2 (en) | Control contextualization and reasoning about control | |
US11699295B1 (en) | Machine learning for computing enabled systems and/or devices | |
CN104049573B (zh) | 机器人系统及其任务规划方法 | |
Borrelly et al. | The ORCCAD architecture | |
EP3201702A1 (en) | Programming automation in a 3d graphical editor with tightly coupled logic and physical simulation | |
CN114556241B (zh) | 将人工智能(ai)集成到自动化中的可编程逻辑控制器(plc)程序中功能块的ai伴侣 | |
Iacca et al. | Memory-saving memetic computing for path-following mobile robots | |
CN111966361B (zh) | 用于确定待部署模型的方法、装置、设备及其存储介质 | |
Figat et al. | Parameterised robotic system meta-model expressed by Hierarchical Petri nets | |
CN115916477A (zh) | 机器人演示学习的技能模板分发 | |
US11733977B2 (en) | Graphical and text based co-design editor for industrial automation projects | |
Leiva et al. | Collision avoidance for indoor service robots through multimodal deep reinforcement learning | |
CN116126293A (zh) | 用于工业机器人代码推荐的装置和方法 | |
Nascimento et al. | Gpt-in-the-loop: Adaptive decision-making for multiagent systems | |
JP7216190B2 (ja) | プログラマブルロジックコントローラベースの人工知能用モジュール式アクセラレーションモジュール | |
Banús et al. | Design and deployment of a generic software for managing industrial vision systems | |
CN110968051A (zh) | 用于规划自动化系统的方法和工程系统 | |
Atorf et al. | A framework for simulation-based optimization demonstrated on reconfigurable robot workcells | |
Yasuda | Discrete event behavior-based distributed architecture design for autonomous intelligent control of mobile robots with embedded petri nets | |
Nambiar et al. | Automation of unstructured production environment by applying reinforcement learning | |
Цзяньцзюнь et al. | Software analysis for mobile robots control programs | |
CN115968479A (zh) | 用于自动化数据科学过程的系统和方法 | |
CN110312975A (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 |