Программирование автоматизации в 3d графическом редакторе с тесно связанной логикой и физическим моделированием

Изобретение относится к области вычислительной техники. Технический результат заключается в упрощении управления систем для проектирования приложений автоматизации. Система содержит: интерфейс библиотеки; трехмерное рабочее пространство, сконфигурированное, чтобы: отображать множество компонентов и создавать конструкцию системы в трехмерном рабочем пространстве; механизм моделирования, сконфигурированный, чтобы: генерировать код моделирования на основе конструкции системы в трехмерном рабочем пространстве и исполнять код моделирования в ответ на команду от пользователя; блок генерации кода контроллера, сконфигурированный, чтобы: идентифицировать один или несколько физических контроллеров, соответствующих множеству компонентов в трехмерном рабочем пространстве, и генерировать исполняемый контроллером код для одного или нескольких физических контроллеров на основе конструкции системы. 3 н. и 17 з.п. ф-лы, 5 ил.

 

ОБЛАСТЬ ТЕХНИКИ

[1] Настоящее изобретение относится в целом к способам, системам и устройствам для программирования систем автоматизации с использованием трехмерного графического интерфейса, который использует тесно связанную логику и методы физического моделирования.

ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ

[2] В традиционных средах программирования программного обеспечения автоматизации, программисты используют множество отдельных инструментов, каждый с определенной целью для программирования соответствующего аспекта поведения (режима) автоматизации. Например, один из инструментов устанавливает сетевой протокол, другой выделяет память для устройств ввода и вывода, и еще один используется для кодирования инструкций. Эти инструменты являются полностью отдельными и должны конфигурироваться вручную; любое несоответствие между кодировками, используемыми в одном инструменте, будет вызывать то, что другие инструменты или автоматизация в целом потерпят неудачу. Кроме того, существует малая степень отображения языка данного инструмента на фактические физические аппаратные средства, используемые для выполнения автоматизации. Многие из логических элементов, определенных в рамках инструмента автоматизации, служат для установления соответствий (отображений) между конструктивами инструментов, сами по себе, и лишь косвенно связаны с выполнением любого рода поведения машины.

[3] Некоторые обычные приложения декларируют, что, хотя они обычно используются для моделирования, они также могут производить функции при исполнении через перенос их инструкций к устройству управления. Например, в области основанного на модели управления, используются типы уравнений, обеспечиваемых системами моделирования для написания программ управления. В этой ситуации часто не имеется действительного моделирования физических устройств. Вместо этого, методы программирования, которые можно было бы нормально использовать для программирования моделирования, используются для программирования функции управления. Другие системы переводят свой код моделирования на язык низкого уровня, такой как C, так что он может работать в среде, не требуя специального времени выполнения. Тем не менее, код моделирования все еще используется только как язык программирования общего назначения вместо моделирования устройств и среды, в которой развертывается автоматизация.

[4] Некоторые обычные контроллеры и платы сбора данных программируются с использованием нестандартных или проприетарных (принадлежащих на правах собственности) языков. Эти контроллеры отличаются широким разнообразием, и некоторые из них будут выполнять своего рода моделирование в том смысле, что они способны управлять состоянием заданного I/O (ввода/вывода) вручную во время тестирования. Например, устройство домашней автоматизации может позволить пользователю программировать включение или выключение света посредством некоторого веб-интерфейса. Однако такие традиционные методы не выходят за рамки простых переключателей и программируемых вручную моделей поведения, чтобы быть в состоянии предложить физическое моделирование, которое задается, например, с использованием свойств моделируемых объектов.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

[5] Варианты осуществления настоящего изобретения направлены на решение и преодоление одного из вышеуказанных недостатков и изъянов путем обеспечения способов, систем и устройств для автоматизации программирования в трехмерном графическом интерфейсе с использованием физического моделирования. Технология, раскрытая в настоящем документе, может быть использована, например, для проектирования, моделирования и реализации различных промышленных сред и машинного оборудования. В частности, настоящим изобретением достигается технический результат, состоящий в упрощении и в улучшении надежности программирования моделирования и управления систем для проектирования приложений автоматизации.

[6] В кратком изложении, различные варианты осуществления настоящего изобретения описывают графическую среду моделирования, где логические и физические компоненты находятся в одной рабочей области и могут редактироваться, изменяться и исполняться специальным (ad hoc) образом. Например, в одном варианте осуществления моделирование может запускаться в любой момент в процессе проектирования - даже если конструкция является неполной или приводит к сбою. Логика может быть использована для модифицирования состояния компонентов, а также создания новых компонентов, например, чтобы представлять рабочие элементы, которые могут взаимодействовать с другими компонентами. Физическое моделирование компонентов может вызвать перемещение рабочих элементов и их изменение в соответствии с взаимодействием физических ограничений. Например, конвейер может перемещать коробку путем обеспечения поддержки столкновений и приложения сил, которые толкают коробку вперед. Датчики могут детектировать и генерировать значения на основе геометрических или других физических свойств моделируемых объектов. Логика может преобразовывать значения и инициировать или иным образом управлять действиями на основе их функции. В общем, автоматизация может выполняться в моделируемой среде, как если бы это было в случае физической сборки. Пользователь может проверять операцию моделирования, по мере того как она выполняется, чтобы находить ошибки и иным образом проверять системную функцию. Пользователь может остановить моделирование в любое время, чтобы восстановить первоначальное состояние объектов и продолжить редактирование проектируемой автоматизации.

[7] В соответствии с некоторыми вариантами осуществления настоящего изобретения, система для проектирования приложений автоматизации, основанная на вводе от пользователя, включает в себя интерфейс библиотеки, трехмерное рабочее пространство, механизм моделирования и блок генерации кода контроллера. Интерфейс библиотеки сконфигурирован, чтобы принимать пользовательский выбор множества компонентов из библиотеки компонентов. В некоторых вариантах осуществления, библиотека может быть заполнена, частично, на основе моделей устройств, загруженных с удаленного сервера рыночной площадки. Трехмерное рабочее пространство отображает компоненты и создает конструкцию системы с использованием компонентов на основе одной или более инструкций, предоставленных пользователем. Затем механизм моделирования может генерировать код моделирования на основе конструкции системы и выполнять код моделирования в ответ на команду от пользователя. В некоторых вариантах осуществления, код моделирования может выполняться в среде виртуальной машины. В некоторых вариантах осуществления, один или несколько компонентов в трехмерном рабочем пространстве анимируются во время исполнения кода моделирования. Блок генерации кода контроллера, включенный в вышеупомянутую систему, сконфигурирован для идентификации физических контроллеров, соответствующих компонентам в трехмерном рабочем пространстве (например, на основе сообщения уведомления устройства, принятого от контроллеров), и генерации исполняемого контроллером кода для этих контроллеров на основе конструкции системы.

[8] В соответствии с некоторыми вариантами осуществления вышеупомянутой системы, трехмерное рабочее пространство может быть сконфигурировано для выполнения дополнительной функциональности. Например, в некоторых вариантах осуществления изобретения, компоненты, выбранные пользователем, могут включать в себя физические компоненты, ассоциированные с моделью физического устройства, и логические элементы, ассоциированные с логической операцией. Трехмерное рабочее пространство может затем создавать ассоциацию между логическими элементами и физическими компонентами на основе одной или более пользовательских инструкций. В качестве альтернативы (или дополнительно), трехмерное рабочее пространство может создавать контейнер логических элементов, содержащий один или более логических элементов, на основе первого пользовательского запроса. Затем может быть создана ассоциация между контейнером логических элементов и по меньшей мере одним из физических компонентов на основе второго пользовательского запроса. Различные методы могут быть использованы для создания этой ассоциации. Например, в одном варианте осуществления, ассоциация создается путем идентификации первого физического объекта на основе первого пользовательского выбора; соединения объекта логического входного порта контейнера логических элементов с объектом выходного порта устройства первого физического объекта; идентификации второго физического объекта на основе второго пользовательского выбора; и соединения объекта логического выходного порта контейнера логических элементов с объектом входного порта устройства второго физического объекта. В некоторых вариантах осуществления, трехмерное рабочее пространство может быть дополнительно сконфигурировано для приема пользовательской конфигурации одного или нескольких значений свойств по меньшей мере для одного из физических компонентов. Эти значения свойств могут соответствовать, например, входам физической модели, используемым для моделирования поведения одного или нескольких физических компонентов во время исполнения кода моделирования.

[9] В соответствии с другим аспектом настоящего изобретения, как описано в некоторых вариантах осуществления, система для проектирования приложений автоматизации на основе ввода от пользователя включает в себя рабочее пространство, механизм моделирования и блок генерации кода контроллера. Рабочее пространство сконфигурировано, чтобы обеспечивать возможность создания и манипулирования пользователем трехмерной моделью промышленной среды. Механизм моделирования сконфигурирован для моделирования физического поведения трехмерной модели. В одном варианте осуществления, механизм моделирования анимирует трехмерную модель во время исполнения моделирования. Блок генерации кода контроллера сконфигурирован, чтобы генерировать исполняемый контроллером код для одного или более физических контроллеров, соответствующих физическим компонентам, включенным в трехмерную модель. В некоторых вариантах осуществления, система также включает в себя интерфейс рыночной площадки, сконфигурированный, чтобы извлекать новую модель физического устройства из сервера рыночной площадки. Интерфейс рыночной площадки может затем использовать новую модель физического устройства, чтобы создавать новый физический компонент для использования в трехмерной модели. В одном варианте осуществления, интерфейс рыночной площадки может также способствовать приобретению пользователем (например, через сервер рыночной площадки) физического устройства, соответствующего новой модели физического устройства.

[10] В соответствии с другими вариантами осуществления настоящего изобретения, реализуемый компьютером способ проектирования приложений автоматизации на основе ввода от пользователя включает в себя прием компьютером пользовательского выбора множества компонентов из библиотеки компонентов. Компьютер создает конструкцию системы в трехмерном рабочем пространстве с использованием компонентов на основе одной или более инструкций, предоставленных пользователем. Далее компьютер генерирует код моделирования на основе конструкции системы и исполняет этот код в ответ на команду от пользователя. Компьютер идентифицирует физические контроллеры, соответствующие множеству компонентов в трехмерном рабочем пространстве, и генерирует исполняемый контроллером код для этих физических контроллеров на основе конструкции системы.

[11] Дополнительные признаки и преимущества настоящего изобретения станут очевидными из последующего подробного описания иллюстративных вариантов осуществления, приведенного ниже со ссылкой на приложенные чертежи.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

[12] Указанные выше и другие аспекты настоящего изобретения поясняются в последующем подробном описании со ссылкой на приложенные чертежи. С целью иллюстрации изобретения, на чертежах показаны варианты осуществления, которые в настоящее время являются предпочтительными, однако должно быть понятно, что данное изобретение не ограничено конкретным подробным описанием:

[13] Фиг. 1 обеспечивает обзор системы для автоматизации программирования в соответствии с некоторыми вариантами осуществления настоящего изобретения;

[14] Фиг. 2 показывает пример инструментального средства разработки в соответствии с некоторыми вариантами осуществления настоящего изобретения;

[15] Фиг. 3 обеспечивает примерную архитектуру контроллера в соответствии с некоторыми вариантами осуществления настоящего изобретения;

[16] Фиг. 4 обеспечивает общий вид процесса, выполняемого во время выполнения программы автоматизации в среде моделирования в соответствии с некоторыми вариантами осуществления настоящего изобретения; и

[17] Фиг. 5 иллюстрирует примерную вычислительную среду, в которой могут быть реализованы варианты осуществления настоящего изобретения.

ПОДРОБНОЕ ОПИСАНИЕ

[18] Последующее раскрытие описывает настоящее изобретение в соответствии с несколькими вариантами осуществления, направленными на способы, системы и устройства для автоматизации программирования в графической среде с тесно связанной логикой и физическим моделированием. Различные варианты осуществления настоящего изобретения, описанные в данном документе, включают в себя программирование моделирования и управления вместе в одном инструментальном средстве, так что они являются смешанными воедино и уже не отдельными процедурами. Технология, описанная здесь, особенно применима, без ограничения указанным, к проектированию систем и реализации в промышленных применениях.

[19] На фиг. 1 представлен обзор среды 100 моделирования для автоматизации программирования в соответствии с некоторыми вариантами осуществления настоящего изобретения. В кратком изложении, поставщики 105 и 110 компонентов поставляют модели устройств на сервер 115 рыночной площадки через сеть 125. Пользователь 120A на станции 120 производителя может затем загружать эти модели из сервера 115 рыночной площадки по сети 125 для использования в среде моделирования, исполняемой на пользовательском компьютере 120B. Пользовательский компьютер 120B позволяет пользователю 120А создавать код 120F контроллера, который затем может быть выгружен на контроллеры, ассоциированные с физическими устройствами 120D и I20E.

[20] Поставщик 105 компонентов и поставщик 110 компонентов обеспечивают модели для физического конвейера и двигателя, соответственно, на сервер 115 рыночной площадки через сеть 125. Каждая модель обеспечивает подробную информацию об устройстве с использованием стандартизированного языка, такого как расширяемый язык разметки (XML). Модели могут быть разработаны, чтобы быть функционально автономными и интеллектуальными, как это необходимо. Модели могут представлять собой физическое устройство, например, датчик или исполнительный механизм, управляющее устройство, такое как программируемый логический контроллер, и могут представлять функции, которые могут быть применены в приложении без физической субстанции. Содержание модели может включать в себя, например, подробную информацию о геометрии, кинематике и поведении соответствующего физического устройства. Модели могут также включать в себя указания для взаимодействия с другими моделями, а также предоставления различных конфигураций. Расширения программного обеспечения компьютерного проектирования могут быть использованы для генерации моделей путем включения механических конструкций. Сервер 115 рыночной площадки хостирует репозиторий (хранилище объектов) для моделей, генерируемых поставщиками компонентов. Сервер 115 торговой площадки обеспечивает интерфейс к репозиторию, который позволяет пользователям просматривать и загружать модели. Например, в некоторых вариантах осуществления сервер 115 рыночной площадки использует интерфейс веб-страницы, который обеспечивает каталог различных моделей, доступных для загрузки. Интерфейс может включать в себя подробную информацию о каждой модели, включая, например, изображение моделируемого физического устройства, список входных и выходных портов, конфигурируемые свойства и описание поведения модели. В некоторых вариантах осуществления, сервер 115 рыночной площадки может также обрабатывать транзакции между пользователями и различными поставщиками компонентов. Например, в одном варианте осуществления, пользователю начисляется плата за каждую модель, загруженную с сервера 115 рыночной площадки. В другом варианте осуществления, сервер 115 рыночной площадки облегчает транзакцию между пользователем и поставщиком компонентов для приобретения физического устройства, соответствующего конкретной модели.

[21] На станции 120 производителя, пользователь 120A использует пользовательский компьютер 120В для исполнения инструментального средства разработки 120C (более подробно описано ниже со ссылкой на фиг. 2), которое позволяет пользователю 120А загрузить модель двигателя и модель конвейера в пользовательский компьютер 120B. Инструментальное средство разработки 120C может затем использовать загруженные модели в среде моделирования, которая выполняет вычисления, имитирующие физические действия моделируемых элементов. В кратком изложении, инструментальное средство разработки включает в себя моделирование динамики, встроенное в среду 3D графического редактора и визуализации. Моделирование включает в себя физическое моделирование аппаратных устройств и рабочих продуктов, которыми устройства манипулируют и преобразуют. Моделируемые физические объекты являются представителями реальных аппаратных устройств. Моделирование для данного устройства формулируется в соответствии с поведением этого устройства и выполнением тех же действий при тех же входных условиях в пределах возможностей моделирования. Моделирование может отслеживать геометрическую форму, положение, кинематические связи и динамику объектов. Моделирование также может включать в себя возможность добавлять и удалять объекты из моделирования динамически. Эта способность может быть использована для моделирования трансформации объектов, такой как резка, дробление и формование. Она также может быть использована для моделирования введения и удаления рабочих продуктов из процесса.

[22] Моделируя производственную среду, пользователь 120А может легко идентифицировать необходимые физические компоненты и схему расположения (топологию), необходимые для активации конкретного процесса. После того, как топология определена, инструментальное средство разработки 120C может генерировать дополнительные детали (например, перечень составных частей (спецификацию) и/или план (ʺсинькуʺ)), так что необходимые физические компоненты могут быть заказаны (если они уже не были приобретены) и сконфигурированы в желательной схеме расположения. Кроме того, в некоторых вариантах осуществления, инструментальное средство разработки 120C генерирует код контроллера, который может быть использован непосредственно на физических компонентах, таких как программируемые логические контроллеры. Например, на фиг. 1, инструментальное средство разработки может генерировать код 120F контроллера, который может быть использован непосредственно на контроллерах, ассоциированных с физическим двигателем 120D и физическим конвейером 120E. Таким образом, установка физических устройств упрощается, так как код 120F контроллера готов к использованию сразу после того, как проект завершен.

[23] На фиг. 2 показан пример инструментального средства разработки 200, в соответствии с некоторыми вариантами осуществления настоящего изобретения. В кратком изложении, инструментальное средство разработки 200 включает в себя 3D моделирование многочастичной динамики, которое встроено в 3D среду графического редактора и визуализации. Инструментальное средство разработки 200 включает в себя 3D рабочее пространство 205, панель 210 инструментов и галерею 215 логических элементов, которые пользователь может разместить в 3D рабочем пространстве 205. Следует отметить, что на фиг. 2 большинство аспектов проектирования визуально доступны в 3D рабочем пространстве 205. Таким образом, компоновка, визуализация, программирование, моделирование могут выполняться в одном интерфейсе, без переключения между инструментами. Более того, как описано ниже, 3D компоненты и логика работают вместе в том же самом пространстве.

[24] Инструментальное средство разработки 200 предлагает потенциально недорогой инструментарий, предназначенный для выполнения автономным образом для простоты использования и эффективного редактирования. Компоненты в инструментальном средстве разработки 200 выполняются так, как если бы они были в реальном мире, с поведением, анимированным, чтобы показать, как это работает. Компоненты физической системы могут быть созданы из предоставленного поставщиком выбора, с графической сложностью, установленной производителем (то есть, пользователю не нужно делать заново). Физическая система может быть ʺпрошитойʺ (снабженной проводным монтажом), чтобы описать поведение компонентов путем подключения входа от датчиков к логике и к устройствам вывода. Кроме того, в некоторых вариантах осуществления, моделирование обеспечивает мгновенную отладку, обеспечивая немедленную обратную связь внутренних значений и другого состояния. Точно так же, моделирование может выявить проблемы с автоматизацией, показывая случаи, когда физическое взаимодействие является не тем, что подразумевалось. Инструментальное средство разработки 200 обеспечивает ряд преимуществ для промышленного проектирования. Программирование непосредственно в моделируемой 3D среде снижает уровень косвенности, который может иметь место в процессе разработки и реализации. Кроме того, 3D физическое моделирование позволяет осуществлять быструю верификацию проектирования. Эта модель, терпимая к ошибкам пользователя, стимулирует исследование идей непосредственно в тестовой среде.

[25] Галерея 215, включенная в примерное инструментальное средство разработки 200, показанное на фиг. 2, включает в себя секцию 215А интерфейса библиотеки и секцию 215B физической среды. Секция 215А библиотеки интерфейса включает в себя различные компоненты, которые могут быть добавлены в 3D рабочее пространство 205. Пользователь может взаимодействовать с закладками, включенными в верхней части секции 215А интерфейса библиотеки, для просмотра различных физических компонентов и логических компонентов, доступных для использования в 3D рабочем пространстве 205. Физическая среда каждого компонента в 3D рабочем пространстве может просматриваться и корректироваться с помощью секции 215B физической среды.

[26] Для разработки проекта с помощью инструментального средства разработки 200, пользователь перетаскивает модель из галереи 215 и помещает ее в 3D рабочее пространство 205. В качестве альтернативы могут быть использованы другие способы выбора и позиционирования объекта. Помещение модели устройства в 3D рабочее пространство создает визуальное представление компонента модели. Каждый компонент может иметь точки соединения, где могут быть прикреплены соответствующие компоненты или другие объекты. В некоторых вариантах осуществления, подсоединяемый объект автоматически выравнивается и может иметь зазор, проверяемый геометрией окружающих моделей. Положение в 3D рабочем пространстве 205 подразумевается представляющим физическое положение устройств в процессе и должно поддерживать аналогичные геометрические зависимости. Например, если в процессе имеются два конвейера, так что один подает материал, опуская его на другой, то конвейеры должны быть помещены впритык в моделируемом пространстве таким образом, что моделируемое поведение будет следовать шаблону. На фиг. 2 показан простой пример конструкции, где компонент 205F двигателя приводит в действие компонент 205F ленточного конвейера, чтобы перемещать компонент 205I контейнера между двумя компонентами 205B и 205D оптических датчиков. Активация компонента 205F двигателя, заставляет компонент 205А ленточного конвейера работать с заданной скоростью.

[27] Каждая модель устройства может включать в себя объект порта, обеспечивающий входные значения и принимающий выходные значения от модели. Например, на фиг. 2, компонент 205F двигателя включает в себя объект 205G порта двигателя, который принимает входные значения. На основе этих входных значений, компонент 205F двигателя устанавливает свою скорость работы соответственно. Компоненты 205В и 205D оптических датчиков включают в себя объекты 205C и 205E портов оптических датчиков, соответственно. Каждый из объектов 205C и 205E портов оптических датчиков формирует выходное значение, когда его соответствующий оптический датчик срабатывает.

[28] Логические элементы соединены с объектами портов моделей устройств для обеспечения функциональности для моделей устройств. Логические элементы изображены в виде блоков с портами, где один блок может быть соединен с другим. Модель устройства может быть связана с логическим блоком путем соединения объекта порта модели устройства с портом логического элемента. Точно так же, пользователь может связать два блока путем соединения порта одного блока с портом другого. В некоторых вариантах осуществления, порты могут быть классифицированы как входной и выходной тип. Входные порты соединяются с выходными портами, где только одна связь может быть соединена с данным входным портом, но множество связей могут соединяться с выходным портом. В других вариантах осуществления, порты могут быть двунаправленными, и в этом случае они могут быть как входными, так и выходными портами одновременно и могут быть соединены произвольно. Порты могут также представлять собой смесь различных стилей и типов. В некоторых вариантах осуществления, порты могут поддерживать различные типы значений, такие как булево, целочисленное, массивы значений и структурированные значения с множеством полей. Соединение между портами может быть ограничено, если типы каждого порта не совместимы. В некоторых вариантах осуществления, порты могут формировать значения, которые являются опорными для компонентов или других логических элементов, так что операции могут выполняться типовым образом на различных видах компонентов или могут выполнять манипуляции над логикой приложения, такие как отключение или повторение различных групп.

[29] Могут быть использованы различные типы логических элементов, в том числе, например, без ограничения указанным, арифметика, выбор, сигналы, состояния памяти, контейнеры и аффектеры (воздействующие факторы) объектов. В некоторых вариантах осуществления, логика может быть перегружаемой. Например, плюс арифметика может быть использована для добавления чисел с плавающей точкой, целых чисел и выполнения операций логического ИЛИ на логическом значении. Логика может воздействовать на объект моделирования и/или поведение физического устройства, а также на другую логику. Как и компоненты, как правило, логические элементы имеют свойства. Изменение этих свойств меняет семантику и/или топологию логического элемента. Поведение логики в контейнере логического элемента распространяется на объект(ы) моделирования, которые соединены с контейнером.

[30] Пользователь может добавить логику к проекту системы, используя тот же метод, что и в случае добавления устройств. Инструментальное средство разработки 200 включает в себя галерею логических элементов (не показаны на фиг. 2), из которых пользователь может выбрать. Логические элементы, как правило, используются для представления функций или операций. Пользователь перетаскивает логический элемент из галереи и помещает его в 3D рабочее пространство. Логика помещения на физическом компоненте может изменить поведение этого компонента. Логика, прикрепленная к компоненту, остается с ним, когда компонент перемещается. Пользователи могут использовать логику для улучшения моделирования, например, путем генерации рабочих продуктов, с которыми другие компоненты могут взаимодействовать. Логический элемент может быть помещен в свободное пространство или на объект устройства или в контейнер логических элементов. Логические элементы, помещенные в 3D-пространстве и в 3D-модели устройств, имеют 3D-положение. Инструментальное средство разработки 200 может использовать компонент, к которому прикреплен логический элемент, для реализации поведений, специфических для этого компонента. Программирование и позиции могут быть связаны между собой. Тип логического элемента определяет его назначение и то, будет ли какая-либо прикрепленная модель устройства использоваться как часть его функции. Значения, вычисленные в логическом элементе, передаются по пути линии связи. Когда пользователь поворачивает и переводит или иным образом преобразует вид рабочего пространства, положение логических элементов будет отображаться в новом положении просмотра.

[31] Контейнер 205Н логических элементов на фиг. 2 обеспечивает пример того, как контейнер может быть использован, чтобы содержать группу логических элементов. Для логического элемента, который действует на прикрепленном объекте в 3D-мире, элемент в контейнере действует на объекты, к которым контейнер прикреплен, или вперед к своему контейнеру рекурсивно, если контейнер сам помещен внутри некоторого контейнера. Связи с блоками внутри контейнера извне могут автоматически создавать интерфейсные порты на контейнере и других вложенных контейнерах по мере необходимости. Например, со ссылкой на фиг. 2, контейнер 205Н логических элементов включает в себя логические элементы, используемые для управления компонентом 205F двигателя на основе вводов, принятых от объектов 205C и 205E портов оптических датчиков. В частности, контейнер 205Н логических элементов регулирует скорость компонента 205F двигателя от -5 до 5 в зависимости от того, какой из компонентов 205B, 205D оптических датчиков срабатывает. В некоторых вариантах осуществления, контейнеры логических элементов могут быть представлены с помощью двумерного поля в инструментальном средстве разработки 200. Однако в других вариантах осуществления могут быть использованы трехмерные контейнеры. Пользователь может перемещать блоки в пределах контейнера логических элементов (или между цепями), чтобы переставлять интерфейсные порты по мере необходимости. В некоторых вариантах осуществления, пространство, занимаемое контейнером локального элемента в 3D рабочем пространстве, может открываться и закрываться, чтобы скрыть внутренние цепи, когда пользователь удовлетворен содержанием и хочет уменьшить шум. Контейнеры также могут быть скопированы, как единое целое, в результате чего содержание определенного контейнера доступно для различных соединений входа и выхода. Отметим, что исходный контейнер и скопированный контейнер могут вести себя независимо друг от друга. Например, различные входы в различные контейнеры могут привести к различным выходам, различные состояния могут быть сохранены, и недетерминированные операции могут производить различные результаты. Хранилище логики для скопированных контейнеров логических элементов может потенциально быть совместно используемым, если пользователь не желает модифицировать содержимое или если пользователь хочет, чтобы содержимое оставалось связанным, так что модификации являются совместно используемыми. Контейнеры логических элементов также могут быть импортированы из внешнего устройства, так что комплексные функции могут упаковываться и совместно использоваться между приложениями. Контейнеры логических элементов могут также обеспечивать соединения, которые управляют состоянием самого контейнера. Контейнер может обеспечивать входной порт, который активирует и деактивирует поведение всего содержимого контейнера, включая вложенные контейнеры. Содержимое контейнера не может обновляться, когда контейнер деактивирован, и выходные порты контейнера могут быть установлены в состояние по умолчанию, такое как нуль или ʺложноʺ. Другие виды контейнеров могут поддерживать различные виды операций, такие как логика группировки, которая должна выполняться в последовательности или действовать как конечный автомат или вызвать исполнение группы логики многократно в одном временном цикле.

[32] Панель 210 инструментов инструментального средства разработки 200 включает в себя различные подсекции, которые позволяют пользователю взаимодействовать с моделью. Подсекция 210А Буфер обмена включает в себя компоненты интерфейса, которые позволяют пользователю редактировать 3D рабочее пространство 205 путем вырезки (или копирования) части рабочего пространства 205 (например, компонента) в пользовательский буфер обмена. Эта часть затем может быть вставлена обратно в рабочее пространство 205 или вообще в другое рабочее пространство. Подсекция 210В Курсор в панели 210 инструментов включает в себя компоненты интерфейса, которые позволяют пользователю выбирать, перемещать и вращать компоненты в 3D рабочем пространстве 205. Хотя большинство компонентов предоставлены для пользователя с помощью существующих моделей устройств, пользователь может взаимодействовать с подсекцией 21°C Геометрия, чтобы добавлять различные формы в 3D рабочее пространство 205. Таким образом, пользователь может настроить макеты проектирования за пределы того, что доступно за счет использования одних только предварительно сгенерированных моделей устройств. Точно так же, подсекция 210D Стили обеспечивает компоненты интерфейса, позволяющие пользователю настраивать внешний вид (например, цвет, ширину линии и т.д.) различных компонентов, помещенных в 3D рабочее пространство 205. Как описано более подробно ниже, панель 210 инструментов включает в себя подсекцию 210E Выполнение и подсекцию 210F Физическая среда, которые обеспечивают компоненты интерфейса для создания и взаимодействия с моделированием, ассоциированным с компонентами, помещенными в 3D рабочее пространство 205. Наконец, подсекция 210G Вид позволяет пользователю выбрать, должны ли конкретные элементы в инструментальном средстве разработки 200 отображаться или нет.

[33] Инструментальное средство разработки 200 включает в себя физическое моделирование аппаратных устройств и рабочих продуктов, которыми устройства манипулируют и которые они преобразуют. Подсекция 210Е Выполнение в панели 210 инструментов позволяет пользователю активировать и останавливать моделирование, когда проект системы разрабатывается в 3D рабочем пространстве 205. Подсекция 21 Физическая среда в панели 210 инструментов включает в себя компоненты интерфейса, которые позволяют пользователю настроить временные характеристики и другие свойства моделирования, а также просматривать любые ошибки, генерируемые при моделировании. В то время как моделирование выполняется, рабочее пространство поддерживает, вычисляет и анимирует различные компоненты, которые пользователь добавил в рабочее пространство. Например, физические объекты будут перемещаться и трансформироваться на основе их динамических свойств, обнаруживающие объекты будут обнаруживать ассоциированные с ними цели, поведенческие объекты будут считывать, записывать и вычислять значения и т.д. Когда пользователь останавливает моделирование, 3D рабочее пространство 205 может быть восстановлено в его первоначальную конфигурацию, так что пользователь может продолжить редактирование. В некоторых вариантах осуществления, пользователю разрешено редактировать проектирование системы при выполнении моделирования. В этом случае, моделирование может рассматриваться как выполняемое или приостановленное, и пользователь может добавлять, удалять и редактировать объекты в любое время. В некоторых вариантах осуществления, взаимодействие с интерфейсом подсекции 210E Выполнение позволяет выполнять моделирование сразу, без явной компиляции. Кроме того, следует отметить, что не требуется, чтобы конструкция в 3D рабочем пространстве 205 была полностью разработана, и моделирование может быть запущено в любое время во время процесса разработки. В некоторых вариантах осуществления, визуальные сигналы, такие как изменения цвета или мигания используются, чтобы показать, где логика активна. Пользователь может проверять логику, когда она работает, и может изменять значения, чтобы опробовать сценарии.

[34] В принципе, моделирование, генерируемое инструментальным средством разработки 200, может иметь любой уровень сложности. Однако, во многих вариантах осуществления настоящего изобретения, инструментальное средство разработки 200 сконфигурировано так, что пользователь может установить и выполнять моделируемые объекты, задавая свойства верхнего уровня устройств и рабочих продуктов. Моделирование может генерировать виртуальные рабочие продукты, отслеживать их поток через различные процессы, выполняемые устройствами автоматизации, и вычислять любые изменения, производимые в рабочих продуктах, и то, как эти изменения повлияют на устройства. Моделирование может также моделировать состояние и поведение устройств автоматизации и знать, какие эффекты они производят на рабочих продуктах. Достоверность моделирования должна быть достаточной, так что ключевые функции автоматизации выполняются в виртуальном мире, и программирование автоматизации может быть верифицировано. Другие виды поведения, которые могут быть выполнены с помощью моделирования, рассматриваются как полезные до тех пор, пока эти модели являются реалистичными и не слишком сложными для спецификации. Допуск и точность моделирования могут корректироваться в зависимости от размера, скорости и общих потребностей автоматизации. Моделирование может быть предоставлено в соответствии с областью автоматизации. Например, автоматизация робота, вероятно, использовала бы моделирование, которое является трехмерным, кинематическим, и, возможно, использовала бы динамику. С другой стороны, автоматизация нефтеперегонного завода может использовать одномерные функции, представляющие давление, поток и топологию флюидной сети, включающей в себя трубы и клапаны.

[35] На фиг. 3 представлена примерная архитектура 300 контроллера в соответствии с некоторыми вариантами осуществления настоящего изобретения. Эта архитектура 300 контроллера является концептуальной и предполагает сеть, соединяющую инструментальное средство разработки 305 с одним или несколькими соединенными физическими устройствами. Другие виды устройств, таких как физические порты или проводные соединения, также могут быть доступны. Инструментальное средство разработки 305 посылает обобщенный запрос в сеть, запрашивающий идентификацию любых соединенных устройств. Устройства отвечают информацией 310 устройства, предоставляемой посредством сообщения 315 уведомления об устройстве. На основании принятой информации 310 устройства инструментальное средство разработки 305 может создавать и сохранять виртуальные соединения между виртуальными компонентами и физическими устройствами. В некоторых вариантах осуществления, виртуальные соединения содержат идентификатор компонента и идентификатор приложения. Таким образом, если имеется несколько физических устройств в том же самом приложении, они могут быть ассоциированы вместе с идентификатором приложения, будучи связаны с различными виртуальными устройствами посредством различных идентификаторов компонента.

[36] Продолжая со ссылкой на фиг. 3, после того, как инструментальное средство разработки 305 идентифицировало устройства и соответствующие им виртуальные соединения, оно передает функции разработки к веб-серверу 320. Функции разработки содержат инструкции по реализации логической функциональности на конкретных физических устройствах. На основании принятых функций разработки, веб-сервер 320 создает программу и сохраняет ее в хранилище 325 программ. В некоторых вариантах осуществления, инструментальное средство разработки 305 сконфигурировано, чтобы создавать программу непосредственно вместо выполнения этой функции веб-сервером 320. В этом сценарии, веб-сервер 320 будет просто переносить любую программу, принятую от инструментального средства разработки 305, в хранилище 325 программ, с дополнительной предварительной обработкой программного кода или без нее. Программа затем выполняется физическим(и) контроллером(ами), как концептуально представлено стрелкой 330 логики исполнения. Инструментальное средство разработки 305 и/или веб-сервер 320 могут осуществлять связь с физическим(и) контроллером(ами) для выполнения таких функций, как запуск, остановка и сброс программы. Каждый контроллер осуществляет связь с одним или несколькими физическими устройствами с использованием любой технологии, известной в данной области техники. Например, в некоторых вариантах осуществления, контроллеры имеют непосредственное электрическое соединение с соответствующими физическими устройствами и осуществляют связь с использованием протокола, например, универсальной последовательной шины (USB) или широтно-импульсной модуляции (PWM). В других вариантах осуществления, контроллеры могут осуществлять связь со своими физическими устройствами через проводную (например, Ethernet) или беспроводную (например, IEEE 802.11) сеть связи.

[37] Хранилище 335 состояний в основном используется для передачи совместно используемого состояния между несколькими сетевыми контроллерами, но также позволяет инструментальному средству разработки 305 выполнять проверку состояния программы, когда она выполняется контроллерами. То есть, инструментальное средство разработки 305 может определить текущее состояние кода, исполняющегося на каждом контроллере. В некоторых вариантах осуществления, хранилище 335 состояний совместно используется между различными физическими контроллерами через совместное использование 350 сетевых данных. Дополнительно, совместное использование 350 сетевых данных может использоваться для совместного использования информации состояния других объектов, таких как, например, сервер диспетчерского управления и сбора данных (SCADA) или хранилище объединенных знаний предприятия. Различные объекты, которые могут принимать данные, упоминаются в данном документе как ʺпартнерыʺ. Искатель 355 сетевых партнеров может быть использован, чтобы найти партнеров путем запрашивания или затребования информации состояния. В сценарии распределенного управления, партнеры могут быть другими контроллерами, на которые была распределена логика. Искатель 355 сетевых партнеров предоставляет адрес для каждого партнера, который найден. Хранилище 335 состояний может затем использовать эти адреса, чтобы распространять информацию состояния партнерам с использованием API 360 обмена информацией ввода/вывода.

[38] На фиг. 4 представлен обзор процесса 400, выполняемого в среде 100 моделирования в соответствии с некоторыми вариантами осуществления настоящего изобретения. На этапе 405, пользователь загружает одну или несколько моделей физических устройств с сервера рыночной площадки. Каждая модель физического устройства соответствует физическому устройству. Например, модель физического устройства может включать в себя инструкции по созданию трехмерной модели физической конвейерной ленты, наряду с различными свойствами, которые могут быть ассоциированы с таким устройством. Информация, содержащаяся в модели физического устройства, используется для создания физического компонента для использования в инструментальном средстве разработки. В некоторых вариантах осуществления, инструментальное средство разработки выполняет это создание автоматически. Например, в одном варианте осуществления, инструментальное средство разработки включает в себя интерфейс к серверу рыночной площадки. Посредством пользовательского взаимодействия с этим интерфейсом, пользователь может загрузить модель физического устройства локально и позволить инструментальному средству разработки создавать соответствующую модель физического устройства. Процесс создания может быть автоматическим или может требовать от пользователя явно запросить создание модели. Кроме того, следует отметить, что, в некоторых вариантах осуществления, модели физических устройств могут быть загружены вне сервера рыночной площадки. При этом, например, пользователи могут совместно использовать модели физических устройств по электронной почте для использования в своих соответствующих инструментальных средствах.

[39] Продолжая со ссылкой на фиг. 4, на этапе 410, пользователь создает конструкцию системы в трехмерном рабочем пространстве путем добавления и настройки компонентов в рабочем пространстве. В некоторых вариантах осуществления, инструментальное средство разработки обеспечивает библиотеку всех доступных компонентов рядом с рабочим пространством, позволяя пользователям выбирать и помещать компоненты в рабочее пространство через взаимодействия, например, посредством щелчка (клика) и перетаскивания (для сред на основе мыши) или касания и перетаскивания (для сред с сенсорными дисплеями). Далее, на этапе 415, пользователь добавляет логические компоненты в среду. Как описано выше, каждый логический компонент ассоциирован с логической операцией, и пользователи могут создавать контейнеры, которые включают в себя множество логических компонентов. После того, как логические компоненты были добавлены в рабочее пространство, они используются для добавления логики к физическим компонентам путем создания ассоциаций между входами и выходами компонентов. Например, как описано выше со ссылкой на фиг. 2, выходы компонента физического устройства, представляющего собой датчик, могут быть связаны с входом логического контейнера, который, в свою очередь, имеет выход, связанный с входом компонента физического устройства, представляющего собой двигатель. Ассоциации между физическими и логическими компонентами могут быть выполнены аналогично методам, рассмотренным выше для добавления компонентов в рабочем пространстве. Например, ассоциация может быть создана кликом (или касанием) выхода компонента и перетаскиванием его к входу другого компонента.

[40] На этапе 420, моделирование выполняется на основе компонентов в рабочем пространстве. Это моделирование моделирует физическое и электрическое поведение компонентов. В некоторых вариантах осуществления, один или более компонентов могут быть анимированы во время исполнения моделирования. Например, компонент ленточного конвейера может вращаться в ответ на активацию прикрепленного компонента двигателя. Следует отметить, что моделирование может исполняться в любой момент в процессе проектирования. Таким образом, после того, как моделирование выполнено, пользователь определяет, обеспечило ли оно желаемые результаты. Если нет, то этапы 410, 415, 420 могут быть выполнены итерационным образом, позволяя пользователю добавлять физические компоненты и связанную с ними логику в рабочем пространстве. Пользователь может затем оценивать результаты каждой итерации, пока желаемые результаты не будут достигнуты.

[41] Далее, на этапе 425, код контроллера генерируется на основе конструкции системы в трехмерном рабочем пространстве. Более конкретно, инструментальное средство разработки идентифицирует физические контроллеры, соответствующие физическим устройствам, и генерирует код, исполняемый этими устройствами. Различные способы могут быть использованы для идентификации контроллеров. Например, в некоторых вариантах осуществления, каждый контроллер имеет фиксированный адрес аппаратного средства, который предоставляется в инструментальное средство разработки пользователем. В других вариантах осуществления, инструментальное средство разработки может выполнять процесс обнаружения устройств, где оно обрабатывает сообщение уведомления устройства, принятое от физических устройств, для выяснения их соответствующих адресов и другой соответствующей информации. Может потребоваться, чтобы эти физические устройства были того же типа, что и модели устройств, выбранные пользователем в инструментальном средстве разработки, или, в качестве альтернативы, физическим устройствам, возможно, потребуется только выполнять определенный набор функций, определенных приложением. В некоторых вариантах осуществления, инструментальное средство разработки создает и компилирует код для каждого контроллера на основе логических элементов и кода моделирования. В других вариантах осуществления, инструментальное средство разработки включает в себя виртуальную машину, которая выполняет код контроллера во время исполнения моделирования. Таким образом, код, используемый при моделировании, может быть использован непосредственно на контроллерах, без какой-либо дополнительной компиляции.

[42] После того, как код сгенерирован, на этапе 430, он загружается в физические контроллеры. В некоторых вариантах осуществления, код может непосредственно посылаться инструментальным средством разработки к контроллерам через сетевое соединение. В других вариантах осуществления, инструментальное средство разработки может быть использовано в качестве промежуточного сервера или носителя хранения данных, который осуществляет связь с физическими контроллерами.

[43] Фиг. 5 иллюстрирует примерную вычислительную среду 500, в которой могут быть реализованы варианты осуществления настоящего изобретения. Например, вычислительная среда 500 может использоваться для реализации одного или нескольких компонентов среды 100 моделирования, показанной на фиг. 1. Компьютеры и вычислительные среды, такие как компьютерная система 510 и вычислительная среда 500, известны специалистам в данной области техники и, таким образом, описаны здесь кратко.

[44] Как показано на фиг. 5, компьютерная система 510 может включать в себя механизм связи, такой как системная шина 521 или другой механизм связи для передачи информации в компьютерной системе 510. Компьютерная система 510 дополнительно включает в себя один или несколько процессоров 520, связанных с системной шиной 521, для обработки информации.

[45] Процессоры 520 могут включать в себя один или более центральных процессоров (CPU), графических процессоров (GPU) или любой другой процессор, известный в данной области техники. Более обобщенно, процессор, используемый здесь, представляет собой устройство для исполнения машиночитаемых инструкций, сохраненных на считываемом носителе, для выполнения задач и может включать в себя любое одно или комбинацию аппаратных средств и встроенного программного обеспечения. Процессор может также включать в себя память, хранящую машиночитаемые инструкции, исполняемые для выполнения задач. Процессор воздействует на информацию путем манипулирования, анализа, модифицирования, преобразования или передачи информации для использования исполняемой процедурой или информационным устройством, и/или путем маршрутизации информации в устройство вывода. Процессор может использовать или содержать в себе, например, возможности компьютера, контроллера или микропроцессора и конфигурироваться с использованием исполняемых инструкций для выполнения функций специального назначения, которые не выполняются компьютером общего назначения. Процессор может быть связан (электрически и/или за счет наличия в нем исполняемых компонентов) с любым другим процессором, обеспечивая возможность взаимодействия и/или информационного обмена между ними. Процессор пользовательского интерфейса или генератор представляет собой известный элемент, содержащий электронные схемы, программное обеспечение или комбинацию того и другого для генерации отображаемых изображений или их частей. Пользовательский интерфейс содержит одно или более отображаемых изображений, обеспечивающих возможность пользовательского взаимодействия с процессором или другим устройством.

[46] Со ссылкой на фиг. 5, компьютерная система 510 также включает в себя системную память 530, связанную с системной шиной 521, для хранения информации и инструкций, которые должны исполняться процессорами 520. Системная память 530 может включать в себя машиночитаемый носитель в форме энергозависимой и/или энергонезависимой памяти, такой как постоянная память (ROM) 531 и/или оперативная память (RAM) 532. Системная память RAM 532 может включать в себя другое(ие) динамическое(ие) устройство(а) хранения данных (например, динамическую RAM, статическую RAM и синхронную динамическую DRAM). Системная память ROM 531 может включать в себя другое(ие) статическое(ие) устройство(а) хранения данных (например, программируемую ROM, стираемую PROM и электрически стираемую PROM). Кроме того, системная память 530 может быть использована для хранения временных переменных или другой промежуточной информации во время исполнения инструкций процессорами 520. Базовая система ввода/вывода 533 (BIOS), содержащая базовые процедуры, которые помогают передавать информацию между элементами в пределах компьютерной системы 510, например, во время запуска, может храниться в системной памяти ROM 531. Системная память RAM 532 может содержать данные и/или программные модули, которые непосредственно доступны и/или приводятся в действие в настоящее время процессорами 520. Системная память 530 может дополнительно включать в себя, например, операционную систему 534, прикладные программы 535, другие программные модули 536 и программные данные 537.

[47] Компьютерная система 510 также включает в себя контроллер 540 диска, связанный с системной шиной 521, для управления одним или более устройств хранения для хранения информации и инструкций, таких как магнитный жесткий диск 541 и накопитель 542 съемных носителей (например, накопитель флоппи-диска, накопитель компакт-дисков, накопитель на магнитной ленте, и/или твердотельный накопитель). Устройства хранения данных могут быть добавлены к компьютерной системе 510 с использованием соответствующего интерфейса устройства (такого как интерфейс малых компьютерных систем (SCSI), электроника интегрированных устройств (IDE), универсальная последовательная шина (USB) или FireWire).

[48] Компьютерная система 510 может также включать в себя контроллер 565 дисплея, соединенный с системной шиной 521, для управления дисплеем 566, таким как электронно-лучевая трубка (CRT) или жидкокристаллический дисплей (LCD), для отображения информации на компьютере пользователь. Компьютерная система включает в себя интерфейс 560 ввода и одно или более устройств ввода, таких как клавиатура 562 и координатно-указательное устройство 561, для взаимодействия с пользователем компьютера и предоставления информации на один или несколько процессоров 520. Координатно-указательное устройство 561, например, может представлять собой мышь, световое перо, трекбол или джойстик для передачи информации о направлении и выбора команд на один или более процессоров 520 и для управления перемещением курсора на дисплее 566. Дисплей 566 может предоставлять интерфейс с сенсорным экраном, который обеспечивает возможность ввода для дополнения или замены передачи информации о направлении и выборов команд с помощью координатно-указательного устройства 561.

[49] Компьютерная система 10 может выполнять часть или все этапы обработки вариантов осуществления настоящего изобретения, в ответ на исполнение одним или несколькими процессорами 520 одной или нескольких последовательностей из одной или нескольких инструкций, содержащихся в памяти, такой как системная память 530. Такие инструкции могут считываться в системную память 530 с другого считываемого компьютером носителя, такого как магнитный жесткий диск 541 или накопитель 542 съемных дисков. Магнитный жесткий диск 541 может содержать одно или несколько хранилищ данных и файлов данных, используемых в вариантах осуществления настоящего изобретения. Содержимое хранилища данных и файлы данных могут быть зашифрованы для повышения уровня безопасности. Процессоры 520 могут быть также использованы в многопроцессорном устройстве для исполнения одной или нескольких последовательностей инструкций, содержащихся в системной памяти 530. В альтернативных вариантах осуществления, схемы с аппаратным монтажом могут быть использованы вместо или в комбинации с программными инструкциями. Таким образом, варианты осуществления изобретения не ограничены какой-либо конкретной комбинацией схем аппаратных схем и программного обеспечения.

[50] Как указано выше, компьютерная система 510 может включать в себя по меньшей мере один считываемый компьютером носитель или память для хранения инструкций, запрограммированных в соответствии с вариантами осуществления изобретения, и для размещения структур данных, таблиц, записей или других данных, описанных в настоящем документе. Термин ʺсчитываемый компьютером носительʺ, как используется в настоящем документе, относится к любому носителю, который участвует в предоставлении инструкций одному или нескольким процессорам 520 для исполнения. Считываемый компьютером носитель может принимать различные формы, включая, без ограничения указанным, не-временные (нетранзиторные) энергонезависимые носители, энергозависимые носители и среды передачи. Неограничительные примеры энергонезависимых носителей включают в себя оптические диски, твердотельные диски, магнитные диски и магнитооптические диски, такие как магнитный жесткий диск 541 или накопитель 542 на съемных дисках. Неограничительные примеры энергозависимых носителей включают в себя динамическую память, такую как системная память 530. Неограничительные примеры сред передачи включают в себя коаксиальные кабели, медный провод и волоконную оптику, в том числе провода, которые образуют системную шину 521. Среды передачи также могут принимать форму акустических или световых волн, таких как те, которые генерируется при радиоволновой и инфракрасной передаче данных.

[51] Вычислительная среда 500 может дополнительно включать в себя компьютерную систему 510, работающую в сетевой среде с использованием логических соединений с одним или несколькими удаленными компьютерами, такими как удаленный компьютер 580. Удаленный компьютер 580 может представлять собой персональный компьютер (ноутбук или настольный компьютер), мобильное устройство, сервер, маршрутизатор, сетевой персональный компьютер, одноранговое устройство или другой общий сетевой узел и обычно включает в себя многие или все из элементов, описанных выше применительно к компьютерной системе 510. При использовании в сетевой среде, компьютерная система 510 может включать в себя модем 572 для установления связи по сети 571, такой как Интернет. Модем 572 может быть соединен с системной шиной 521 через пользовательский сетевой интерфейс 570 или с помощью другого соответствующего механизма.

[52] Сеть 571 может представлять собой любую сеть или систему, как правило, известную в данной области техники, в том числе Интернет, интранет, локальную сеть (LAN), глобальную сеть (WAN), городскую сеть (MAN), прямое соединение или последовательность соединений, сотовую телефонную сеть или любую другую сеть или среду, способную обеспечивать связь между компьютерной системой 510 и другими компьютерами (например, удаленным вычислительным устройством 580). Сеть 571 может быть проводной, беспроводной или их комбинацией. Проводные соединения могут быть реализованы с использованием Ethernet, универсальной последовательной шины (USB), RJ-6 или любого другого проводного соединения, как правило, известного в данной области техники. Беспроводные соединения могут быть реализованы с использованием Wi-Fi, WiMAX и Bluetooth, инфракрасных, сотовых сетей, спутниковой или любой другой беспроводной технологии соединения, в общем известной в данной области техники. Кроме того, несколько сетей могут работать в одиночку или в связи друг с другом, чтобы способствовать осуществлению связи в сети 571.

[53] Исполняемое приложение, как используется здесь, содержит код или машиночитаемые инструкции для конфигурирования процессора для реализации предопределенных функций, таких как функции операционной системы, системы сбора данных контекста или другой системы обработки информации, например, в ответ на пользовательскую команду или ввод. Исполняемая процедура является сегментом кода или машиночитаемой инструкции, подпрограммы или другого отдельного раздела кода или части исполняемого приложения для выполнения одного или нескольких конкретных процессов. Эти процессы могут включать в себя прием входных данных и/или параметров, выполнение операций над принятыми входными данными и/или выполнение функций в ответ на принятые входные параметры и обеспечение в результате выходных данных и/или параметров.

[54] Графический пользовательский интерфейс (GUI), как используется здесь, включает в себя одно или более отображаемых изображений, генерируемых процессором отображения и обеспечивающих возможность пользовательского взаимодействия с процессором или другим устройством и ассоциированными функциями сбора данных и обработки. GUI также включает в себя исполняемую процедуру или исполняемое приложение. Исполняемая процедура или исполняемое приложение конфигурируют процессор отображения для генерации сигналов, представляющих отображаемые изображения GUI. Эти сигналы подаются на устройство отображения, которое отображает изображение для просмотра пользователем. Процессор, под управлением исполняемой процедуры или исполняемого приложения, манипулирует отображаемыми изображениями GUI в ответ на сигналы, принимаемые от устройств ввода. Таким образом, пользователь может взаимодействовать с отображаемым изображением с использованием устройств ввода, что позволяет осуществлять взаимодействие пользователя с процессором или другим устройством.

[55] Функции и этапы процесса в данном документе могут выполняться автоматически, полностью или частично, в ответ на команду пользователя. Действие (в том числе этап), выполняемое автоматически, выполняется в ответ на одну или несколько исполняемых инструкций или операцию устройства без прямого инициирования действия пользователем.

[56] Система и процессы на чертежах не являются исключительными. Другие системы, процессы и меню могут быть получены в соответствии с принципами настоящего изобретения для достижения тех же целей. Хотя настоящее изобретение было описано со ссылкой на конкретные варианты осуществления, следует понимать, что варианты осуществления и видоизменения, показанные и описанные в данном документе, предназначены только для целей иллюстрации. Изменения в конкретной конструкции могут быть реализованы специалистами в данной области техники, не выходя за пределы объема настоящего изобретения. Как описано в настоящем документе, различные системы, подсистемы, агенты, администраторы и процессы могут быть реализованы с использованием аппаратных компонентов, программных компонентов и/или их комбинаций. Никакой элемент формулы изобретения в настоящем документе не должен быть истолкован в соответствии с положениями 35 U.S.C. 112, шестой абзац, если только элемент явно не охарактеризован с использованием фразы ʺсредство дляʺ.

1. Система для проектирования приложений автоматизации на основе ввода от пользователя, причем система содержит:

- интерфейс библиотеки, сконфигурированный, чтобы принимать пользовательский выбор из множества компонентов из библиотеки компонентов;

- трехмерное рабочее пространство, сконфигурированное, чтобы:

отображать множество компонентов и

создавать конструкцию системы в трехмерном рабочем пространстве с использованием множества компонентов на основе одной или более инструкций, предоставленных пользователем;

- механизм моделирования, сконфигурированный, чтобы:

генерировать код моделирования на основе конструкции системы в трехмерном рабочем пространстве, и

исполнять код моделирования в ответ на команду от пользователя, причем по меньшей мере один из множества компонентов в трехмерном рабочем пространстве анимируется во время исполнения кода моделирования;

- блок генерации кода контроллера, сконфигурированный, чтобы:

идентифицировать один или несколько физических контроллеров, соответствующих множеству компонентов в трехмерном рабочем пространстве, и

генерировать исполняемый контроллером код для одного или нескольких физических контроллеров на основе конструкции системы.

2. Система по п. 1, в которой множество компонентов содержит:

множество физических компонентов, причем каждый физический компонент ассоциирован с моделью физического устройства; и

множество логических элементов, причем каждый логический элемент ассоциирован с логической операцией.

3. Система по п. 2, в которой трехмерное рабочее пространство дополнительно сконфигурировано, чтобы:

создавать ассоциацию между множеством логических элементов и множеством физических компонентов на основе одной или нескольких пользовательских инструкций.

4. Система по п. 2, в которой трехмерное рабочее пространство дополнительно сконфигурировано, чтобы:

создавать контейнер логических элементов, содержащий один или несколько из множества логических элементов, на основе первого пользовательского запроса;

создавать ассоциацию между контейнером логических элементов и по меньшей мере одним из множества физических компонентов на основе второго пользовательского запроса.

5. Система по п. 4, в которой ассоциация между контейнером логических элементов и по меньшей мере одним из множества физических компонентов создается посредством:

идентификации первого физического объекта на основе первого пользовательского выбора;

соединения объекта входного порта логики контейнера логических элементов с объектом выходного порта устройства первого физического объекта;

идентификации второго физического объекта на основе второго пользовательского выбора; и

соединения объекта выходного порта логики контейнера логических элементов с объектом входного порта устройства второго физического объекта.

6. Система по п. 2, в которой трехмерное рабочее пространство дополнительно сконфигурировано, чтобы:

принимать пользовательскую конфигурацию одного или нескольких значений свойств по меньшей мере для одного из множества физических компонентов, причем одно или несколько значений свойств соответствуют входам в физическую модель, используемую для моделирования поведения по меньшей мере одного из множества физических компонентов во время исполнения кода моделирования.

7. Система по п. 1, в которой исполнение кода моделирования механизмом моделирования включает в себя исполнение исполняемого контроллером кода в виртуальной машине.

8. Система по п. 1, дополнительно содержащая компонент интерфейса рыночной площадки, сконфигурированный, чтобы:

извлекать одну или несколько моделей устройств с сервера рыночной площадки;

создавать один или несколько новых компонентов в библиотеке компонентов на основе одной или нескольких моделей устройств.

9. Система по п. 1, в которой один или несколько физических контроллеров, соответствующих множеству компонентов в трехмерном рабочем пространстве, идентифицируются на основе сообщения уведомления устройства, принятого от одного или нескольких физических контроллеров.

10. Система для разработки приложений автоматизации на основе ввода от пользователя, причем система содержит:

галерею моделируемых компонентов, включающую в себя модели физических компонентов и по меньшей мере один логический элемент;

рабочее пространство, сконфигурированное так, чтобы позволять пользователю создавать и манипулировать трехмерной моделью промышленной среды, содержащей моделируемые компоненты, выбранные из галереи, причем модель первого физического компонента ассоциирована с моделью второго физического компонента посредством одного из логических элементов;

механизм моделирования, сконфигурированный, чтобы моделировать физическое поведение трехмерной модели;

блок генерации кода контроллера, сконфигурированный, чтобы генерировать исполняемый контроллером код для одного или нескольких физических контроллеров, соответствующих физическим компонентам, включенным в трехмерную модель промышленной среды.

11. Система по п. 10, в которой механизм моделирования сконфигурирован, чтобы анимировать трехмерную модель производственной среды при моделировании физического поведения трехмерной модели.

12. Система по п. 10, в которой трехмерная модель производственной среды содержит:

множество физических компонентов, причем каждый физический компонент соответствует модели физического устройства;

множество логических элементов, причем каждый логический элемент соответствует логической операции устройства; и

по меньшей мере одну ассоциацию между множеством физических компонентов и множеством логических элементов.

13. Система по п. 12, в которой множество логических элементов сгруппировано в контейнере логических элементов, отображаемом в рабочем пространстве.

14. Система по п. 12, дополнительно содержащая интерфейс обнаружения устройств, сконфигурированный, чтобы:

принимать сообщение уведомления устройства от одного или нескольких физических контроллеров; и

идентифицировать один или несколько физических контроллеров на основе сообщения уведомления устройства.

15. Система по п. 12, дополнительно содержащая интерфейс рыночной площадки, сконфигурированный, чтобы:

извлекать новую модель физического устройства с сервера рыночной площадки, причем новая модель физического устройства соответствует физическому устройству;

создавать новый физический компонент для использования в трехмерной модели производственной среды на основе новой модели физического устройства.

16. Система по п. 15, в которой интерфейс рыночной площадки дополнительно сконфигурирован, чтобы:

облегчать приобретение пользователем физического устройства через сервер рыночной площадки.

17. Реализуемый компьютером способ проектирования приложений автоматизации на основе ввода от пользователя, причем способ содержит:

прием компьютером пользовательского выбора множества компонентов из библиотеки компонентов, включающей в себя модели физических компонентов и по меньшей мере один логический элемент;

создание компьютером конструкции системы в трехмерном рабочем пространстве с использованием множества компонентов, соединяющей первый физических компонент со вторым физическим компонентом посредством одного из логических элементов, на основе одной или более инструкций, предоставленных пользователем;

генерацию компьютером кода моделирования на основе конструкции системы в трехмерном рабочем пространстве;

исполнение компьютером кода моделирования в ответ на команду от пользователя;

идентификацию компьютером одного или нескольких физических контроллеров, соответствующих множеству компонентов в трехмерном рабочем пространстве; и

генерацию компьютером исполняемого контроллером кода для одного или нескольких физических контроллеров на основе конструкции системы.

18. Способ по п. 17, в котором исполнение кода моделирования в ответ на команду от пользователя содержит исполнение исполняемого контроллером кода в виртуальной машине.

19. Способ по п. 17, в котором по меньшей мере один из множества компонентов в трехмерном рабочем пространстве анимируется во время исполнения кода моделирования.

20. Способ по п. 17, дополнительно содержащий:

прием компьютером сообщения уведомления устройства от одного или нескольких физических контроллеров; и

идентификацию компьютером одного или нескольких физических контроллеров на основе сообщения уведомления устройства.



 

Похожие патенты:

Изобретение относится к усовершенствованной системе для управления конвейерной системой в технологической линии по выпуску стеновых плит. Система содержит процессор компьютера, модуль настройки зоны нечувствительности и базу данных для хранения по меньшей мере одной статистической информации указанных входных данных в течение предварительно определяемого периода.

Группа изобретений относится к системам программного управления. Способ для защиты вентилятора, заключающийся в том, что получают координатные данные вентилятора и определяют то, выходят или нет координатные данные за рамки предварительно установленного состояния вентилятора.

Настоящее изобретение относится к способу определения расхода сжатого воздуха для определения суммарного расхода сжатого воздуха, используемого на всей производственной линии, имеющей множество объектов технологического оборудования, которые используют сжатый воздух.

Изобретение относится к системам производства. Производственный модуль для обработки продукта или манипулирования продуктом в системе производства содержит модуль обнаружения продукта; порты передачи продукта на смежные производственные модули; модуль взаимодействия для назначения смежного производственного модуля одному из портов передачи и память данных для хранения локальной таблицы соответствия.

Изобретение относится к области электротехники. Технический результат заключается в возможности аналоговой токовой петли обеспечивать компонент устройства вторичным рабочим напряжением, полученным от аналоговой токовой петли в отсутствие источника первичного рабочего напряжения.

Изобретение относится к области устройств и способов дистанционного управления бытовой техникой, в частности, посредством мобильного телефона пользователя. Техническим результатом является обеспечение возможности распознавания мобильным телефоном управляемых устройств по направлению положения и/или движению в пространстве мобильного телефона и полученных данных с датчиков, а также выбора режима работы мобильного телефона, что повышает точность совпадения намерения пользователя и передаваемых команд управления.

Изобретение относится к системе и способу управления жизненным циклом крепежных деталей изделия, состоящего из множества составных частей. Технический результат заключается в автоматизации управления жизненным циклом крепежных деталей изделия, состоящего из множества составных частей.

Изобретение относится к способам систематизации видеоданных производственного процесса. Техническим результатом является повышение эффективности использования камер видеонаблюдения для контроля производственного процесса в реальном времени, ускорение и повышение точности поиска видеоданных.

Группа изобретений относится к рельсовому транспортному средству. Рельсовое транспортное средство содержит комплект подсистем эксплуатационных средств, кабинное устройство отображения информации машинисту, которое включает в себя центральный блок отображения.

Изобретение относится к автоматизированным производственным линиям. Система для управления производственной или распределительной линией содержит периферийное устройство и блок управления, хранящий программу управления.

Группа изобретений относится к системам программного управления. Способ для защиты вентилятора, заключающийся в том, что получают координатные данные вентилятора и определяют то, выходят или нет координатные данные за рамки предварительно установленного состояния вентилятора.

Группа изобретений относится к системам программного управления. Способ для защиты вентилятора, заключающийся в том, что получают координатные данные вентилятора и определяют то, выходят или нет координатные данные за рамки предварительно установленного состояния вентилятора.

Изобретение относится к области электротехники. Технический результат заключается в возможности аналоговой токовой петли обеспечивать компонент устройства вторичным рабочим напряжением, полученным от аналоговой токовой петли в отсутствие источника первичного рабочего напряжения.

Изобретение относится к области электротехники. Технический результат заключается в возможности аналоговой токовой петли обеспечивать компонент устройства вторичным рабочим напряжением, полученным от аналоговой токовой петли в отсутствие источника первичного рабочего напряжения.

Изобретение относится к способам систематизации видеоданных производственного процесса. Техническим результатом является повышение эффективности использования камер видеонаблюдения для контроля производственного процесса в реальном времени, ускорение и повышение точности поиска видеоданных.

Группа изобретений относится к рельсовому транспортному средству. Рельсовое транспортное средство содержит комплект подсистем эксплуатационных средств, кабинное устройство отображения информации машинисту, которое включает в себя центральный блок отображения.

Группа изобретений относится к рельсовому транспортному средству. Рельсовое транспортное средство содержит комплект подсистем эксплуатационных средств, кабинное устройство отображения информации машинисту, которое включает в себя центральный блок отображения.

Изобретение относится к автоматизированным производственным линиям. Система для управления производственной или распределительной линией содержит периферийное устройство и блок управления, хранящий программу управления.

Настоящее изобретение относится к производственному модулю (110, 210, 310, 411, 412, 413, 421, 422, 423, 431, 432, 433) для выполнения производственной функции над продуктом (500). Производственный модуль выполнен и настроен для связывания со вторым производственным модулем (110, 210, 310, 411, 412, 413, 421, 422, 423, 431, 432, 433), который выполнен и настроен для выполнения второй производственной функции над продуктом (500).

Настоящее изобретение относится к производственному модулю (110, 210, 310, 411, 412, 413, 421, 422, 423, 431, 432, 433) для выполнения производственной функции над продуктом (500). Производственный модуль выполнен и настроен для связывания со вторым производственным модулем (110, 210, 310, 411, 412, 413, 421, 422, 423, 431, 432, 433), который выполнен и настроен для выполнения второй производственной функции над продуктом (500).
Наверх