СИСТЕМА И СПОСОБ АВТОМАТИЗАЦИИ СИСТЕМЫ НА ОСНОВЕ ИНТЕРПРЕТАЦИИ ДРЕВОВИДНОЙ ПОСЛЕДОВАТЕЛЬНОСТИ ОПЕРАЦИЙ
SYSTEM AND METHOD FOR SYSTEM AUTOMATION BASED ON INTERPRETATION OF TREE-LIKE SEQUENCE OF OPERATIONS

Область техники, к которой относится изобретение
Изобретение относится к системе и способу автоматизации системы, в котором интерпретатор генерирует и выполняет исполняемый код на основании команд, принимаемых в виде древовидной последовательности, в которой содержатся данные параллельных операций для определения соответствующей процедуры автоматизации. В основу определения древовидной последовательности может быть положен удобный для восприятия человеком стандартизированный и машиночитаемый формат, такой как, например, документ на языке XML.
Уровень техники
Задача автоматизации систем связана с определением и выполнением операций, осуществляемых машиной или в ходе производственного процесса. С этой целью подлежащую автоматизации систему, такую как, например, химическая реакционная установка, самоходная испытательная установка или аналитический прибор, далее именуемые управляемой установкой или процессом, обычно соединяют по меньшей мере с одним исполнительным блоком, далее именуемым актором, и по меньшей мере одним датчиком, который регистрирует и передает информацию об установке контроллеру, который на ее основании вычисляет управляющий сигнал и передает его по меньшей мере одному актору, соединенному с установкой и управляющему ей.
Соответствующий актор может представлять собой исполнительный элемент, такой как, например, клапан, насос или нагреватель, но кроме того может представлять собой устройство распределенного управления для настройки соответствующего исполнительного элемента на предварительно заданное значение. Упомянутое устройство управления автоматизированной системы как таковое может быть сконфигурировано на передачу по меньшей мере одному актору управляющего сигнала в виде заданного значения, при этом соответствующее заданное значение отображает желаемый уровень значения, которое должно регулироваться с использованием соответствующего устройства распределенного управления.
Кроме того, соответствующий датчик может представлять собой чувствительный элемент, такой как, например, термочувствительный элемент, датчик давления или датчик рН, но, кроме того, может представлять собой оценивающие или фильтрующие компоненты, используемые для фильтрации данных, которые регистрирует соответствующий чувствительный элемент, с целью повышения качества сигнала датчика или оценки состояния автоматизированной системы путем использования структур наблюдения за состоянием, таких как фильтры Калмана или известные из техники динамические фильтры других типов. Соответствующий датчик регистрирует и передает устройству управления информацию об установке.
Автоматизированная система может представлять собой простую или сложную машину или технический процесс, связанный с устройством управления посредством по меньшей мере одного актора и по меньшей мере одного датчика, и спроектирована и реализована таким образом, чтобы решать задачу выполнения заданных операций некоторого типа, например:
химическая реакционная установка может содержать датчики с чувствительными элементами, такими как термочувствительные элементы, датчики давления или датчики рН, и акторы с исполнительными элементами, такими как клапаны, насосы, нагреватели в качестве примеров нескольких возможностей, при этом задачей автоматизированной системы может являться химический синтез;
самоходная испытательная установка может содержать несколько различных датчиков и акторов, применяемых в автоматизированной системе для проверки или контроля технических характеристик самоходного компонента;
аналитический прибор может содержать различные датчики и акторы, применяемые в автоматизированном лабораторном испытательном оборудовании для определения свойств объекта или органического или неорганического соединения или смеси. Свойствами могут являться химический состав или какое-либо физическое свойство или воздействие, которое объект исследования или соединение или смесь оказывает на другой объект, соединение или смесь.
Устройство управления автоматизированной системы представляет собой вычислительный блок обработки для выполнения расчетов и, возможно, принятия логических решений, чтобы определять, как с течением времени должны изменяться настройки отдельных компонентов, таких как акторы автоматизированной системы. Если в основе таких решений лежат показания датчиков, считается, что устройство управления реализовано в виде созвездия с обратной связью, тогда как решения, принимаемые в устройстве управления без обратной связи, не зависят от каких-либо показаний датчиков.
Следовательно, автоматизированная система выполняет операции определенного типа с целью решения заданной задачи, при этом порядок и структура операций обычно определяются в виде какой-либо последовательности. Такие последовательности определяются вручную или автоматически таким образом, чтобы автоматизированная система, т.е. ее устройство управления действовало в соответствии с решаемой задачей. Процесс определения и применения таких соответствующих последовательностей операций упрощают так называемые устройства задания последовательности, которые могут использоваться человеком-оператором с возможностью ввода команд посредством, например, сценария последовательностей, таблицы последовательностей или легко конфигурируемого пользовательского интерфейса управления последовательностями. В этом смысле информация о последовательности, используемая для ввода команд в устройство задания последовательности, представляет собой перечень расположенных в последовательном порядке операций, определяемых как шаги, которые интерпретируются один за другим устройством задания последовательности, в виде, например, заданной сценарием линейной последовательности, проиллюстрированной на фиг.1. Шаг обычно состоит из оператора совершения действия, возможного набора входных параметров для настройки действий и, возможно, выходной величины какого-либо рода. Из этого следует, что оператор может, например, относиться к реализованной общими средствами программного обеспечения функции или способу. В этом смысле, устройство задания последовательности можно рассматривать как интерпретатор и часть автоматизированной системы.
Например, в WO 03/054561 описан редактор последовательностей тестирования трансформатора, который позволяет тестеру реализовывать последовательности тестирования с регулируемыми параметрами тестирования. В этом смысле, механизм задания последовательностей тестирования позволяет тестеру выполнять последовательности тестов, а автоматизированный редактор последовательностей тестирования редактировать последовательность тестирования. Из этого следует, что команда тестов выполняются в порядке, указанном в отредактированных последовательностях тестирования.
Тем не менее часто желательно, чтобы операции в автоматизированных системах выполнялись не только последовательно, а также параллельно, как, например, при выполнении задачи одновременной калибровки различных деталей машины, когда человеку-оператору автоматизированной системы, очевидно, было бы предпочтительно иметь простые средства ввода команд в систему и параллельного выполнения множества операций. Тем не менее информация, принимаемая известными из техники устройствами задания последовательности, не предусматривает возможности задать параллельный режим выполнения операций, и человеку-оператору остается выбирать субоптимальное и занимающее много времени последовательное выполнение шагов или вариант обращения к системному интегратору, например, лицу или провайдеру, поставившему устройство задания последовательности, чтобы он использовал свои экспертные знания и углубленные навыки программирования в области, например, C++, Basic или Labview для разработки специализированной подпрограммы параллельной калибровки. В результате, человек-оператор не имеет возможности быстро реализовывать новые идеи параллельного выполнения операций, и вынужден привлекать системного интегратора и мириться с соответствующим временем на разработку, расходами и другими неудобствами.
Раскрытие изобретения
В основу настоящего изобретения положена задача создания усовершенствованных или альтернативных системы и способа автоматизации систем на основе интерпретации древовидной последовательности операций. Решение этой задачи обеспечивается за счет объекта формулы изобретения.
Согласно одной из особенностей настоящего изобретения предложена усовершенствованная автоматизированная система, содержащая устройство управления и установку, соединенные по меньшей мере с одним актором, и по меньшей мере одним датчиком, который регистрирует и передает информацию об установке устройству управления, которое на ее основании вычисляет управляющий сигнал и передает его по меньшей мере одному актору. Устройство управления содержит блок обработки для вычисления и вывода управляющего сигнала устройством управления, при этом блок обработки может содержать один или несколько цифровых процессоров. Кроме того, в автоматизированную систему входит интерпретатор, генерирующий исполняемый код и выполняющий его в блоке обработки устройства управления, при этом интерпретатор принимает команды в виде древовидной последовательности или множества древовидных последовательностей. Древовидная последовательность может, создаваться, например, вручную, а именно, в виде сценария, вручную редактируемого человеком-оператором автоматизированной системы, или может генерироваться на основании вводимых человеком-оператором данных в инструментальном программном средстве автоматизированного проектирования в качестве примеров нескольких возможностей.
Согласно вариантам осуществления изобретения древовидная последовательность определяется как иерархическая структура подпоследовательностей, шагов и операторов, которые связаны друг с другом отношениями типа "родитель - потомок". Началом такой иерархической структуры является строго одна подпоследовательность, называемая корневой подпоследовательностью, которая содержит в качестве потомка по меньшей мере один шаг, который содержит в качестве потомка по меньшей мере один оператор. Когда подпоследовательность содержит несколько шагов-потомков, эти шаги являются узлами-братьями друг друга. Когда шаг содержит несколько операторов-потомков, эти операторы являются узлами-братьями друг друга. Каждым из соответствующих операторов является оператор присваивания, определяющий вычислительные или периферийные процедуры, которые должны выполняться устройством управления, или оператор приостановки, приостанавливающий выполнение в положение оператора приостановки, или оператор процесса управления, используемый для инициирования подпоследовательности-потомка. Поскольку подпоследовательность-потомок предпочтительно имеет такие же свойства, как и корневая подпоследовательность, структура наследования может иметь неограниченную глубину.
Исполняемый код, генерируемый и выполняемый интерпретатором, побуждает блок обработки к выполнению шагов-потомков, последовательно инициируемых каждой подпоследовательностью. Операторы-потомки, инициируемые каждым шагом, выполняются блоком обработки параллельно или квазипараллельно. Иными словами, блок обработки обрабатывает шаги-братья последовательно, а операторы-братья - параллельно или квазипараллельно. В данном случае блок обработки может допускать параллельную или квазипараллельную обработку операторов-братьев, при этом квазипараллельная обработка осуществляется при работе блока обработки в высокоскоростном режиме обработки, что будет подробнее описано далее.
Соответствующие операторы присваивания обычно связаны с управляемым процессом, например, представляют собой операторы, способные вычислять и устанавливать значение актора, или операторы, выводящие сообщение для человека-оператора процесса или открывающие окно сообщений на дисплее в котором человеку-оператору предлагается ввести данные с приостановкой выполнения родительского шага, пока человек-оператор не закроет окно сообщений, или операторы, адаптирующие свойства регистратора данных, или операторы, сохраняющие текущие значения акторов или датчиков для использования позднее.
В одном из предпочтительных вариантов осуществления настоящего изобретения команды, принимаемые интерпретатор, заданы на языке XML, например, в виде XML-документа, при этом еще более предпочтительно эти команды заданы в виде применимого XML-документа в соответствии с технологией XML Schema. Следует отметить, что, как легко может быть понято специалистами, в этих целях применимо множество стандартизированных удобных для восприятия человеком и машиночитаемых форматов.
Предпочтительно использовать операторы приостановки, которые способны приостанавливать выполнение на протяжении заданного времени ожидания, не приостанавливая выполнение операторов-братьев. Заданным временем ожидания может являться период времени определенной длительности или период времени, необходимый таймеру устройства задания последовательности, становится кратным заданному времени ожидания. В последнем случае он может использоваться для синхронизации параллельных подпоследовательностей. Как известно из техники, в различных в сценариях и языках программирования упомянутые операторы имеют различные названия. Эти операторы могут называться, например, операторами ожидания, паузы, приостановки.
Также предпочтительно использовать операторы процесса управления для инициирования новых подпоследовательностей. Операторы процесса управления инициируют новые подпоследовательности-потомки безусловно или условно. Операторы процесса управления являются условными операторами управления, которые выполняют подпоследовательность-потомок только при выполнении определенного условия, или операторами управления циклом, которые выполняют подпоследовательность-потомок ноль или более число раз, пока не будет выполнено определенное условие, или операторами дистанционного управления, которые выполняют дистанционную подпоследовательность, после чего процесс управления обычно восстанавливается. Как известно из техники, в различных в сценариях и языках программирования упомянутые операторы имеют различные названия. Эти операторы могут называться, например, операторами цикла со счетчиком, цикла с условием продолжения, условными операторами, операторами цикла с условием завершения, подпроцедуры, выбора, цикла с обусловленным продолжением в качестве нескольких примеров.
Также предпочтительно, чтобы операторы процесса управления циклом имели возможность приостанавливать действие всякий раз при завершении подпоследовательности-потомка и продолжать действие, когда показание таймера устройства задания последовательности становится кратным временному интервалу, заданному для оператора управления циклом.
В одном из предпочтительных вариантов осуществления настоящего изобретения установкой является самоходная испытательная установка, в одном из альтернативных предпочтительных вариантов осуществления настоящего изобретения установкой является химическая реакционная установка, или в одном из альтернативных предпочтительных вариантов осуществления настоящего изобретения установкой является аналитический прибор.
Предпочтительно, чтобы по меньшей мере один датчик измерял частоту вращения, усилие, температуру, содержание компонента, напряжение, ток, давление, массу, скорость потока или логическое состояние цифрового выхода.
Также предпочтительно, чтобы автоматизированная система дополнительно содержала дисплей, соединенный с устройством управления, при этом по меньшей мере один из упомянутых операторов выводит на дисплей сообщение для человека-оператора автоматизированной системы. Таким дисплеем может являться, например, дисплей на тонкопленочных транзисторах, жидкокристаллический дисплей или дисплей любого другого типа, применимый для представления информации человеку-оператору.
Кроме того, с устройством управления также может быть соединен один или несколько средств обмена электронными текстовыми сообщениями, посредством которых по меньшей мере один из упомянутых операторов способен инициировать передачу электронного сообщения человеку-оператору. Как известно из техники, существуют различные службы обмена сообщениями, такие как электронная почта, SMS, Twitter лишь в качестве нескольких примеров.
В одном из предпочтительных вариантов осуществления настоящего изобретения генерирование исполняемого кода интерпретатором предусматривает промежуточный шаг генерирования промежуточного кода представления. В данном случае интерпретатор преобразует команды, принимаемые в виде по меньшей мере одной древовидной последовательности, в определенный промежуточный код представления и выполняет его.
В одном из альтернативных предпочтительных вариантов осуществления по меньшей мере одна древовидная последовательность, принимаемая интерпретатором, представляет собой исходный код, который интерпретатор выполняет непосредственно в блоке обработки.
В еще одном из альтернативных предпочтительных вариантов осуществления интерпретатором является линеаризатор, который преобразует древовидную последовательность во множество стеков данных, которые обрабатывает блок обработки. Линеаризатор генерирует на основании древовидной последовательности стек ссылочных подпоследовательностей, стек ссылочных шагов, стек ссылочных операторов и стек ссылок на стек ссылочных подпоследовательностей, в котором в качестве исходных данных содержится только ссылка на корневую подпоследовательность. Каждый оператор из стека ссылочных операторов содержит данные о действии, которое должен выполнить оператор, называемые далее операторными данными, а, если оператором из стека ссылочных операторов является условный оператор процесса управления, операторные данные кроме того содержат, например, подтверждаемое условие в виде перечня из одной или более ссылок на подпоследовательности-потомки из стека ссылочных подпоследовательностей, за счет чего формируются отношения один к п типа "родитель - потомок", а если оператором из стека ссылочных операторов является оператор процесса управления циклом, операторные данные кроме того содержат счетчик итераций циклов в виде единственной ссылки на подпоследовательность-потомок из стека ссылочных подпоследовательности, за счет чего формируются взаимно-однозначные отношения типа "родитель - потомок".
Каждый шаг из стека ссылочных шагов содержит перечень из одной или нескольких ссылок на операторы-потомки из стека ссылочных операторов, за счет чего формируются отношения один к n типа "родитель - потомок", а в каждом из перечней отслеживается состояние операторов-потомков, которым может являться "начатое" состояние, состояние "продолжения" или "завершенное" состояние.
Каждая подпоследовательность из стека ссылочных подпоследовательностей содержит единственную ссылку на подпоследовательность из стека ссылочных подпоследовательностей, которая инициировала шаг, который инициировал оператора, который инициировал упомянутую подпоследовательность, за счет чего формируются взаимнооднозначные отношения типа "прапрародитель - правнук", и каждая подпоследовательность из стека ссылочных подпоследовательностей содержит отсортированный перечень ссылок на шаги-потомки из стека ссылочных шагов, за счет чего формируются отношения один к n типа "родитель - потомок", при этом в каждой подпоследовательности из стека ссылочных подпоследовательностей хранится положение ссылки на выполняемый шаг из упомянутого перечня, далее именуемое итератором шагов, а выполняемый шаг далее именуется активным шагом, при этом начальным значением каждого итератора шагов является 0.
Линеаризатор передает упомянутые стеки блоку обработки.
Блок обработки последовательно обрабатывает любую ссылку из стека ссылок на подпоследовательности из стека ссылочных подпоследовательностей согласно принципу обратного магазинного типа (FIFO), при этом упомянутый стек далее именуется простой очередью.
Действует следующий механизм обработки ссылок на подпоследовательности из простой очереди.
1) Блок обработки получает из простой очереди следующую ссылку на подпоследовательность из стека подпоследовательностей, которая далее именуется активной подпоследовательностью.
2) Блок обработки считывает активную подпоследовательность из упомянутого стека подпоследовательностей.
3) Блок обработки считывает перечень ссылок на шаги-потомки из активной подпоследовательности.
4) Блок обработки обрабатывает ссылки на шаги-потомки следующим образом:
i) Блок обработки увеличивает на 1 показание итератора шагов активной подпоследовательности, чтобы тем самым сделать следующий шаг активным.
ii) Блок обработки считывает ссылку на активный шаг из перечня ссылок на шаги-потомки.
iii) Блок обработки считывает активный шаг из стека ссылочных шагов.
iv) Блок обработки выполняет активный шаг.
v) В зависимости от информации о состоянии, принимаемой от выполненного активного шага, возможны четыре маршрута:
а) Если активный шаг "завершен", а показание итератора является меньшим, чем число ссылок на шаги-потомки из перечня, в этом случае блок обработки возвращается к стадии 4i) механизма обработки ссылок на подпоследовательности.
б) Если активный шаг "начат", в этом случае блок обработки помещает ссылку на активную подпоследовательность в простую очередь и прекращает выполнение активной подпоследовательности.
в) Если активный шаг "продолжается", в этом случае блок обработки прекращает выполнение активной подпоследовательности.
г) Если активный шаг "завершен", и показание итератора равно числу ссылок на шаги-потомки из перечня, в этом случае блок обработки помещает ссылку на прапрародительскую подпоследовательность в простую очередь. Если ссылка на прапрародителя отсутствует, завершенной подпоследовательностью является корневая подпоследовательность, и последовательность готова.
Действует следующий механизм обработки активных шагов-потомков:
1) В блок обработки поступает ссылка на активный шаг из стека шагов.
2) Блок обработки считывает активный шаг из стека шагов.
3) Блок обработки считывает перечень операторов-потомков из активного шага.
4) Блок обработки повторяет следующие действия со всеми "начатыми" операторами-потомками.
i) Блок обработки получает ссылку на следующий оператор-потомок, который далее именуется активным оператором.
ii) Блок обработки осуществляет считывание активного оператора из стека ссылочных операторов.
iii) Блок обработки осуществляет выполнение активного оператора, и в ответ ему сообщается состояние от активного оператора. Блок обработки соответствующим образом изменяет состояние активного оператора в перечне операторов-потомков активного шага.
5) Когда все "начатые" операторы-потомки выполнены, блок обработки имеет следующие возможности для продолжения процесса.
i) Если в перечне ссылок на операторы-потомки упомянутого шага содержится по меньшей мере одна ссылка на оператор-потомок, выполнение которого "продолжается", в этом случае родительской подпоследовательности сообщается, что выполнение активного шага "продолжается".
ii) Если в перечне ссылок на операторы-потомки упомянутого шага содержится по меньшей мере одна ссылка на "начатый" оператор-потомок, в этом случае родительской подпоследовательности сообщается, что выполнение активного шага "начато".
iii) Если в перечне ссылок на операторы-потомки упомянутого шага содержатся только ссылки на "завершенные" операторы-потомки, в этом случае родительской подпоследовательности сообщается, что выполнение активного шага "завершено".
Действует следующий механизм обработки активного оператора.
1) Блок обработки получает ссылку на активный оператор из стека операторов.
2) Блок обработки осуществляет считывание активного оператора из стека операторов.
3) Блок обработки считывает операторные данные из активного оператора.
4) Блок обработки осуществляет выполнение активного оператора, если состоянием является "начатое" состояние или состояние "продолжения". В данном случае возможны три маршрута.
а) Если оператором является оператор присваивания, в этом случае оператор выполняется полностью, и его родительскому шагу сообщается о том, что выполнение оператора "завершено".
б) Если оператором является оператор приостановки, он не приостанавливает блок обработки, который проверяет, приостановлен ли оператор приостановки, и в этом случае родительскому шагу сообщается о том, что выполнение оператора "начато", или, если приостановка завершена, в этом случае родительскому шагу сообщается о том, что выполнение оператора "завершено".
в) Если активным оператором является условный оператор процесса управления, условие которого подтверждает блок обработки, и, когда условие выполнено, блок обработки получает соответствующую ссылку на подпоследовательность-потомок из операторных данных и помещает ее в простую очередь, а родительскому шагу сообщается о том, что выполнение оператора "завершено".
г) Если активным оператором является оператор процесса управления циклом, блок обработки определяет, требуется ли новая итерация. Когда требуется новая итерация, блок обработки получает соответствующую ссылку на подпоследовательность-потомок из операторных данных и помещает ее в простую очередь, а родительскому шагу сообщается о том, что выполнение оператора "продолжается". Когда новая итерация не требуется, родительскому шагу сообщается о том, что выполнение оператора "завершено".
Следует учесть, что описанный способ организации стеков данных в древовидные последовательности и последующей обработки таких стеков является одним из примеров, и возможны другие способы организации и обработки древовидной последовательности, которые предусматривают такие же операции. В качестве одного из примеров другого способа, вместо использования итератора шагов удаляют из активной последовательности стека последовательностей ссылки на "завершенные" шаги-потомки. Стек данных также может быть организован другим способом, например, путем создания стеков для операторов различных типов. Можно также сократить время использования ЦП путем действительной приостановки выполнения, если в простой очереди находятся только ссылки на приостановку подпоследовательностей, и в этом случае блок обработки должен проверять, на какое время он может приостанавливаться прежде, чем он должен возобновить выполнение. Следует также отметить, что блоку обработки могут поручаться дополнительные задачи, которые не входят в настоящее изобретение. Например, блок обработки может периодически проверять, не нажал ли пользователь клавишу прекращения выполнения, или не находится ли показание датчика вне допустимого диапазона, и в этом случае он может прекращать выполнение.
В одном из предпочтительных вариантов осуществления настоящего изобретения интерпретатор принимает команды в виде множества древовидных последовательностей, каждая из которых содержит корневую последовательность, а блок обработки параллельно выполняет множество древовидных последовательностей.
Кроме того, в одном из предпочтительных вариантов осуществления настоящего изобретения интерпретатор выполняет предварительно скомпилированный код. В данном случае интерпретатор в прямой форме выполняет хранящийся предварительно скомпилированный код, созданный компилятором, который может входить в состав самого интерпретатора.
Согласно другой особенности настоящего изобретения предложен способ автоматизации системы, содержащей устройство управления с блоком обработки и установку, соединенные по меньшей мере одним актором и по меньшей мере одним датчиком, который регистрирует информацию об установке и передает ее устройству управления, которое использует блок обработки для вычисления управляющего сигнала на основании принимаемой информации и передачи вычисленного управляющего сигнала по меньшей мере одному актору. В данном случае блок обработки может содержать один или множество цифровых процессоров. Кроме того, интерпретатор, входящий в автоматизированную систему, принимает команды в виде древовидной последовательности или множества древовидных последовательностей, содержащих по меньшей мере один шаг, в котором содержится по меньшей мере один оператор, которым является оператор присваивания, определяющий вычислительные или периферийные процедуры для выполнения устройством управления, или оператор процесса управления, используемый для инициирования новой подпоследовательности, или оператор приостановки, используемый для приостановки выполнения в положении оператора. В этом смысле соответствующие операторы присваивания обычно связаны с управляемым процессом, например, представляют собой операторы, устанавливающие значение актора, или операторы, выводящие сообщение для человека-оператора процесса. На основании принимаемых команд интерпретатор генерирует и выполняет исполняемый код в блоке обработки. Из этого следует, что блок обработки последовательно выполняет шаги каждой подпоследовательности таким образом, что каждый из упомянутых шагов выполняется до тех пор, пока не будут выполнены все операторы, содержащиеся в соответствующем шаге, при этом операторы, инициируемые одним и тем же шагом, выполняются параллельно или квазипараллельно. Древовидная последовательность может, создаваться, например, вручную, а именно, в виде сценария, вручную редактируемого человеком-оператором автоматизированной системы, или может генерироваться на основании вводимых человеком-оператором данных в инструментальном программном средстве автоматизированного проектирования в качестве примеров нескольких возможностей.
Исполняемый код, который генерирует и выполняет интерпретатор, побуждает блок обработки к последовательному выполнению шагов каждой подпоследовательности. В данном случае каждый из шагов выполняется блоком обработки до тех пор, пока не будут выполнены все операторы, содержащиеся в соответствующем шаге. Тем не менее операторы, инициируемые один и тем же шагом, выполняются блоком обработки параллельно или квазипараллельно. Иными словами, операторы, которые содержатся в каждом отдельном шаге, выполняются в блоке обработки параллельно или квазипараллельно. Блок обработки может допускать параллельную или квазипараллельную обработку команд, при этом квазипараллельная обработка осуществляется при работе блока обработки в высокоскоростном режиме.
В одном из предпочтительных вариантов осуществления настоящего изобретения команды, принимаемые интерпретатор, заданы на языке XML, например, в виде XML-документа, при этом еще более предпочтительно эти команды заданы в виде применимого XML-документа в соответствии с технологией XML Schema. Следует отметить, что, как легко может быть понято специалистами, в этих целях применимо множество стандартизированных удобных для восприятия человеком и машиночитаемых форматов.
В данном случае для инициирования новой подпоследовательности также предпочтительно использовать оператор процесса управления.
В одном из предпочтительных вариантов осуществления установкой является самоходная испытательная установка, в одном из альтернативных предпочтительных вариантов осуществления установкой является химическая реакционная установка, и в одном из альтернативных предпочтительных вариантов осуществления установкой является аналитический прибор.
Также предпочтительно, чтобы по меньшей мере один датчик измерял частоту вращения, усилие, температуру, содержание компонента, напряжение, ток, давление, массу, скорость потока или логическое состояние цифрового выхода.
Также предпочтительно, чтобы автоматизированная система дополнительно содержала дисплей, соединенный с устройством управления, при этом по меньшей мере один из упомянутых операторов выводит на дисплей сообщение для человека-оператора автоматизированной системы. Таким дисплеем может являться, например, дисплей на тонкопленочных транзисторах, жидкокристаллический дисплей или дисплей любого другого типа, применимый для представления информации человеку-оператору. В автоматизированную система может дополнительно входить система обмена электронными текстовыми сообщениями, посредством которых по меньшей мере один из упомянутых операторов способен инициировать передачу электронного сообщения человеку-оператору. Таким электронным сообщением может являться, например, сообщение электронной почты, SMS-сообщение или электронное текстовое сообщение любого другого типа.
В одном из предпочтительных вариантов осуществления генерирование исполняемого кода интерпретатором предусматривает промежуточный шаг генерирования промежуточного кода представления. В данном случае интерпретатор преобразует команды, принимаемые в виде меньшей мере одной древовидной последовательности, в определенный промежуточный код представления и выполняет его.
В одном из альтернативных предпочтительных вариантов осуществления по меньшей мере одна древовидная последовательность, принимаемая интерпретатором, представляет собой исходный код, который интерпретатор выполняет непосредственно в блоке обработки.
В еще одном из альтернативных предпочтительных вариантов осуществления интерпретатором является линеаризатор, который генерирует и выполняет линеаризованный исполняемый код на основании принимаемой по меньшей мере одной древовидной последовательности. Еще более предпочтительно, чтобы линеаризатор генерировал стек ссылочных данных на основании древовидной последовательности и синхронно выполнял стек ссылочных данных в блоке обработки в высокоскоростном режиме обработки, чтобы обеспечить квазипараллельную обработку операторов, инициируемых одним и тем же шагом.
В одном из предпочтительных вариантов осуществления настоящего изобретения интерпретатор также выполняет предварительно скомпилированный код. В данном случае интерпретатор в прямой форме выполняет хранящийся предварительно скомпилированный код, созданный компилятором, который может являться частью самого интерпретатора.
В блоке обработки предпочтительно действует ядро, ориентированное на работу в реальном времени, или операционная система реального времени.
Согласно другой особенности настоящего изобретения предложена компьютерная программа, которая при выполнении компьютером побуждает описанный выше интерпретатор к генерированию и выполнению исполняемого кода в соответствии с описанным способом автоматизации системы.
Кроме того, в одном из предпочтительных вариантов осуществления настоящего изобретения предложены две компьютерные программы, первая из которых выполняется с низким приоритетом для генерирования исполняемого кода и выполнения периферийных задачи автоматизации, таких как, например, регистрация данных или вывод данных на дисплей оператора, а вторая программа выполняется ядром, ориентированным на работу в реальном времени, или операционной системой реального времени, выполняющей исполняемый код.
Согласно еще одной особенности настоящего изобретения предложена компьютерная программа, хранящаяся на носителе, содержащем описанные выше команды, принимаемые интерпретатором в виде по меньшей мере одной древовидной последовательности в соответствии с описанным способом автоматизации системы.
Согласно другой особенности изобретения предложен машиночитаемый носитель, который побуждает компьютер к тому, чтобы описанный выше интерпретатор принимал команды в виде по меньшей мере одной древовидной последовательности и генерировал и выполнял исполняемый код в соответствии с описанным способом автоматизации системы.
Краткое описание чертежей
Далее будут подобнее описаны предпочтительные варианты осуществления изобретения со ссылкой на прилагаемые лишь в качестве примера чертежи, на которых:
на фиг.1 показано наглядное представление заданной сценарием линейной последовательности,
на фиг.2 - наглядный пример древовидной последовательности,
на фиг.3 - наглядный пример линеаризованный древовидной последовательности,
на фиг.4 - наглядное представление в формате XMLSpy древовидной последовательности согласно технологии XML Schema,
на фиг.5 - определение древовидной последовательности в формате XMLSpy GridView,
на фиг.6 - типовой газовый испытательный стенд для автомобильных каталитических нейтрализаторов согласно первому варианту осуществления настоящего изобретения,
на фиг.7 - представление в формате XMLSpy GridView сценария, описывающего испытание автомобильных каталитических нейтрализаторов,
на фиг.8 - представление в формате XMLSpy GridView вызываемого шага "goto_starttemperature",
на фиг.9 - представление в формате XMLSpy GridView вызываемого шага "calibrate_massflowcontroller",
2
на фиг.10 - представление в формате XMLSpy GridView вызываемого шага "C__COBYA1500__calibration".
Подробное описание примеров осуществления
В одном из примеров осуществления настоящего изобретения для выполнения параллельных операций в автоматизированной системе стендовых испытаний системный оператор определяет древовидную последовательность, содержащую множество шагов, каждый из которых может содержать любое число операторов. На фиг.2 проиллюстрирована возможная структура такой древовидной последовательности, в которой ссылочными операторами являются операторы присваивания или операторы приостановки или операторы процесса управления, при этом последние используются для инициирования новых подпоследовательностей. Как ясно видно на фиг.2, подпоследовательности могут иметь структуру, представляющую собой вложенное созвездие шагов последовательностей, при этом каждая из новых подпоследовательностей инициируется оператором процесса управления. Кроме того, показано, что древовидная последовательность представляет собой древовидную систему данных одного из типов.
На фиг.3. проиллюстрирован один из примеров того, как показанная на фиг.2 подпоследовательность может быть линеаризована, при этом позиции на фиг.3 соответствуют позициям на фиг.2.
На фиг.4 показано, как технология XML Schema обеспечивает удобное средство определения таких древовидных последовательностей путем определения типа последовательности с рекурсивным самовызовом в условных операторах процесса управления, операторах цикла (со счетчиком) и цикла с условием продолжения. В данном случае на фиг.5 показано определение соответствующей древовидной последовательности с использованием стандартного предлагаемого на рынке редактора XML, называемого XMLSpy.
Параллелизм, включенный в определенную древовидную последовательность, с учетом параметров и стоимости может быть реализован в виде стеков линейно обрабатываемых ссылочных данных. С этой целью, чтобы обеспечить достаточную степень параллелизма, устанавливают более высокую скорость обновления устройства задания последовательности, чем временное разрешение (частоту выборки), необходимое для управления основным процессом, и достаточно высокую для выполнения операторов присваивания и операторов процесса управления во время приостановки других подпоследовательностей.
Далее приведены примеры древовидных последовательностей (именуемых "сценариями испытаний" или "сценариями"), которые используются при испытании автомобильных каталитических нейтрализаторов, например, при проведении испытаний по пуску двигателя на типовом газовом испытательном стенде. Тем не менее, поскольку XML-сценарий, описывающий полное продуктивное использование такого газового испытательного стенда, вполне может содержать более 17000 строк, а также для обеспечения лучшей ясности далее рассматриваются только выборочные части сценария.
Соответственно, на фиг.6 показана упрощенная схема типового газового испытательного стенда 1, который используется для проведения испытаний по пуску двигателя с использованием образца 1 автомобильного каталитического нейтрализатора в реакторе, предпочтительно стеклянном или стальном реакторе, который помещен в трубчатую печь 3. Для регулирования температуры газа напротив каталитического нейтрализатора предусмотрена термопара 4, которая определяет фактическую температуру газа напротив каталитического нейтрализатора и передает ее ПИД-регулятору 5, который регулирует мощность, отдаваемую печи 3.
2
В левой части типового газового испытательного стенда 1, проиллюстрированного на фиг.6, находится ряд регуляторов 8 массового расхода (РМР), каждый из которых регулирует массовый расход определенного газа 9, который отбирают и синтезируют, чтобы получить модельный выхлопной газ. С этой целью, для регулирования массового или объемного расхода могу калиброваться или устанавливаться заданные значения регуляторов 8 массового расхода. В связи с этим следует отметить, что в качестве газа, необходимого для подпитки системы, при синтезе модельного выхлопного газа может использоваться, например, газообразный азот N. Как показано на фиг.6, соответствующий модельный выхлопной газ собирают в трехходовом клапане 6, откуда он поступает в обогреваемый печью реактор 2 или обводной трубопровод 7. В данном случае, как показано на фиг.6, модельный выхлопной газ, собранный в трехходовом клапане, может поступать в обход реактора по обводному трубопроводу 7, который используется для осуществления описанной далее корректировки содержания газа. Затем соответствующий очищенный каталитическим нейтрализатором или поступающий в обход модельный выхлопной газ собирают в трехходовом клапане 10 и подают в анализатор 11 выхлопных газов для определения или измерения содержания различных газов в выходящем выхлопном газе, протекающий в сторону выходного отверстия 12 типового газового испытательного стенда 1. Как известно из техники, такой газоанализатор 11 может содержать несколько отдельных газоанализаторов для выполнения отдельных задач анализа газа.
Кроме того, для упрощения чтения описанных далее сценариев используется показанная на фиг.6 таблица 13, в которой сопоставлены устройства и блоки, показанные на фиг.6, и их соответствующие названия, используемые в подробно описанных далее сценариях испытаний. Соответственно, PV означает технологический параметр или фактическое значение, такое как, например, температура термопары 4 "PV thermocouple" или результат анализа содержания СО "PV CO analyzer", полученный анализатором 11. Кроме того, SP означает заданное значение, присваиваемое устройству управления, такое как, например, заданное значение "SP PID controller", определяющее заданное значение ПИД-регулятора 5. Соответственно, в таблице 13 соответствующий процесс и заданные значения сопоставлены с "именами" или "тегами", используемыми в следующих примерах сценариев испытаний. Кроме того, хотя это не представлено в таблице, в следующих сценариях испытаний полный расход газа, собираемого трехходовом клапане 6, именуется "VOFEXHSPMF500__".
Испытание образца 2 каталитического нейтрализатора на типовом газовом испытательном стенде 1, проиллюстрированном на фиг.6, осуществляется на следующих шагах.
1. Помещают образец 2 каталитического нейтрализатора в реактор 3.
2. Предписывают каждому из регуляторов 8 массового расхода обеспечивать расход газа соответствующего типа с соответствующим содержанием для газа заданного типа, который затем собирают в трехходовом клапане 6 и подают в газоанализатор 11 по обводному трубопроводу 7 в обход реактора 3 с образцом 2 каталитического нейтрализатора.
3. Следующие два шага (а) и (б) выполняются параллельно.
а. Шаг корректировки содержания газа
Когда газоанализатор 11 определяет отклонение от желаемого содержания газа определенного типа, например, NO, корректируют заданное значение соответствующего регулятора массового расхода, например "SPNOPMP", пока газоанализатор 11 не определит, что содержание в выхлопе является желаемым. В связи с этим, соответствующие регуляторы 8 массового расхода настроены на параллельную корректировку содержания следующих газов:
i. NO,
ii. CO,
2
iii. CO,
2
iv. О,
v. углеводородов.
б. Шаг разогрева реактора
Запускают нагреватель обогреваемого печью реактора 3, настраивают его на желаемую температуру в реакторе 3. В данном случае устройство задания последовательности ожидает, пока температура не установится на желаемом уровне.
4. После успешной настройки желаемого содержания в выхлопном газе и температуры в реакторе на шаге 3а и шаге 3б переключают трехходовые клапаны 6 и 10 на подачу синтезированного выхлопного газа в реактор 3.
5. Затем повышают температуру в реакторе 3 путем фиксированного плавного изменения, и завершают эксперимент после достижения заданной конечной температуры. На протяжении соответствующего плавного изменения отслеживают содержание токсичных компонентов с помощью газоанализатора 11 с целью оценки свойств, таких как рабочие параметры образца 2 каталитического нейтрализатора.
Как упоминалось выше, регуляторы 8 массового расхода могут быть настроены или калиброваны на регулирование массового или объемного расхода. В следующем далее сценарии испытаний заданные значения регуляторов 8 массового расхода определяют в объемных ч./млн. и объемных процентах. На основании этих значений вычисляют соответствующие требуемые потоки, и соответствующим образом настраивают регуляторы 8 массового расхода в системе стендовых испытаний.
На фиг.7 показан моментальный снимок экрана, на котором в формате XMLSpy GridView представлен сценарий испытания автомобильных каталитических нейтрализаторов, в котором шаги 1-7 выполняются последовательно, а вызываемые шаги 1-16 отображают дистанционные подпоследовательности, которые могут выполняться с использованием оператора процесса управления "call_step", как, например, "call_step calibrate_massfloweontroller" и "call_step goto_starttemperature", вызывающие шаг 3 последовательности, который обеспечивает параллельное выполнение обеих подпоследовательностей.
Как можно понять из фиг.7, следующие шаги 1-6 выполняются последовательно, при этом шаг 3 обеспечивает параллельное выполнение двух операторов i и ii.
1. На пульт управления автоматизированной системы выводится сообщение.
2. Вызывается шаг, который задает все начальные условия испытания.
3. Два оператора процесса управления "call_step" параллельно выполняют две следующие дистанционные подпоследовательности.
i. Вызываемый шаг goto_starttemperature" вызывает вызываемый шаг 4, отображающий подпоследовательность нагрева обогреваемого печью реактора 3 и стабилизации температуры на впуске автомобильного каталитического нейтрализатора. Подробности этого вызываемого шага рассмотрены далее со ссылкой на фиг.8.
ii. Вызываемый шаг "calibrate_massflowcontroller" вызывает вызываемый шаг 5, отображающий подпоследовательность параллельной калибровки нескольких регуляторов 8 массового расхода. Этот вызываемый шаг рассмотрен далее со ссылкой на фиг.9. В данном случае подробно не рассматриваются некоторые свойства, поскольку они имеют аналоги в подобно рассмотренном вызываемом шаге "goto_temperature" с той разницей, что осуществляется управление регуляторами 8 массового расхода, а не установкой температуры в реакторе 3.
4. Калиброванный газ подается в реактор, и осуществляются шаги испытания по пуску двигателя.
5. Осуществляются шаги испытания по останову двигателя.
6. На пульт управления выводится сообщение о том, что испытание завершено.
На фиг.8 показана выборочная часть сценария испытания, определяющего дистанционную подпоследовательность "goto_starttemperature", в ходе которой нагревают реактор и устанавливают в нем температуру на заданном уровне. В данном случае последовательно выполняются следующие шаги:
1. Для тега "T_EXHSPNC500__" устанавливается значение начального параметра ("Starttemperature"). Этот шаг отображает установку заданного значения ПИД-регулятора 5, который сконфигурирован на регулирование температуры напротив образца каталитического нейтрализатора выхлопа с помощью печи.
2. На пульт управления автоматизированной системы выводится сообщение.
3. Раз в секунду в течение 60 секунд регистрируется значение температуры "Т__EXPPVNC500__", определяемую термочувствительным элементом 4, и сохраняют его в массиве с идентификатором array_id=5.
4. С помощью оператора цикла с условием продолжения устройству задания последовательности дается команда раз в секунду проверять, находится ли измеренная температура в пределах температурного окна "Starttemperature" +/- 2°С, и прекращать цикл с условием продолжения, если это условие выполнено. Соответствие интервалу +/-2°С проверяют согласно формуле "(min(5)} T[Starttemperature]-2) and (max(5) {T[Starttemperature]+2)", в которой "min" служит для вычисления минимального значения в массиве с идентификатором array_id=5, a "max" служит для вычисления максимального значения в массиве с идентификатором array_id=5, с помощью функции "and" (И) реализуется окно при условии, что минимальное значение должно превышать "Starttemperature - 2", а максимальное значение должно быть меньшим, чем "Starttemperature + 2". В этом контексте символы '{'и'}' используются для определения условия цикла с условием продолжения, при этом '{' означает "меньше, чем", а '}' означает "больше, чем". Вместе с тем, если условие цикла с условием продолжения не выполнено, каждую секунду регистрируется новое значение измеренной температуры "Т__EXPPVNC500__", которое прибавляется к массиву с идентификатором array_id=5, действующему как простая очередь (обратного магазинного типа).
После того как выполнение оператором цикла с условием продолжения успешно завершено (то есть без возникновения ошибок в связи с тайм-аутом), считается, что температура напротив образца каталитического нейтрализатора выхлопа успешно установлена и стабилизирована.
Аналогичным образом, на фиг.9 показана выборочная часть сценария испытания, определяющего дистанционную подпоследовательность "calibrate_massflowcontroller", которая, как описано, выше служит для корректировки массового расхода, создаваемого каждым из соответствующих регуляторов 8 массового расхода. В данном случае последовательно выполняются следующие шаги.
1. Для тега "calibration_ready" устанавливается значение 0, означающее, что соответствующая калибровка продолжается.
2. Вызывается вызываемый шаг "set_valves_in_bypass" с целью выполнения подпоследовательности переключения трехходовых клапанов 6 и 10 таким образом, чтобы использовать обводной трубопровод 7 в обход реактора.
3. Устанавливается точность калибровки и время стабилизации.
4. Устанавливается значение "VOFEXHSPMF500__" полного потока выхлопных газов
5. На этом шаге параллельно выполняется 6 подпоследовательностей, в ходе которых осуществляются корректировки соответствующих регуляторов 8 массового расхода, и вычисляется скользящее среднее с целью ослабления измеренных шумовых сигналов. Это соответствующее скользящее среднее используется на последующих шагах, чтобы оценивать, следует ли адаптировать массовый расход, генерируемый соответствующим регулятором 8 массового расхода. Вызываемый шаг "С__CO_BYA15000__calibration" подробно рассмотрен далее. Следует отметить, что эти 6 подпоследовательностей сгруппированы в вызываемый шаг для улучшения удобочитаемости сценария испытания. По существу, содержание соответствующих вызываемых шагов также может быть реализовано как часть самой родительской последовательности без использования каких-либо вызываемых шагов.
6. Для тега "calibration_ready" устанавливается значение 1, означающее, что калибровка успешно завершена.
На фиг.10 показана выборочная часть сценария испытания, определяющего дистанционную подпоследовательность "C__COBYA1500__calibration" корректировки массового расхода, создаваемого регулятором 8 массового расхода СО. В данном случае последовательно выполняются следующие шаги.
1. Регулятор массового расхода СО (шаг 2 и далее) калибруется, только если требуемое содержание СО превышает 0 част/млн.
2. На пульт управления автоматизированной системы стендовых испытаний выводит зарегистрированное сообщение.
3. Устанавливается заданное значение регулятора массового расхода СО в соответствии с требуемым содержанием газа в обводном трубопроводе.
4. Устройство задания последовательности ожидает в течение заданного времени с тем, чтобы газовый трубопровод мог быть заполнен выхлопным газом с соответствующим составом.
5. На шаге 5 выполняется фактическая калибровка.
а. Если абсолютное значение разности между требуемым содержанием газа в обводном трубопроводе и усредненным значением за время работы, измеренное анализатором СО, превышает требуемую точность, начинается калибровка.
б. Оператор цикла с условием продолжения корректирует содержание СО, требуемое от регулятора массового расхода СО. В конце каждой итерации проверяется наличие условия останова оператора цикла с условием продолжения, если начинается новая итерация.
в. Изменяется содержание СО, требуемое от регулятора массового расхода СО.
г. Подпоследовательность приостанавливается на предварительно заданное время, тем не менее, хотя подпоследовательность находится в состоянии ожидания, продолжается выполнение других параллельно действующих подпоследовательностей.
д. С помощью тайм-аута ограничивается число итераций калибровки.
6. На пульт управления автоматизированной системы стендовых испытаний выводится зарегистрированное сообщение, указывающее человеку-оператору, насколько был скорректирован регулятор массового расхода.
Следует упомянуть, что, хотя процедура, определяемая описанным сценарием, может использоваться для компенсации незначительных отклонений, газоанализаторы и регуляторы массового расхода могут независимо калиброваться и обслуживаться согласно отдельным разделам сценария испытаний вне зависимости от этой процедуры.
Хотя настоящее изобретение описано со ссылкой на варианты его осуществления, специалистам в данной области техники ясно, что в описанные варианты осуществления может быть внесено множество изменений, не выходящих за пределы объема настоящего изобретения. Соответственно, объем настоящего изобретения ограничен не описанными в нем системами, а только системами, охарактеризованными в формуле изобретения и ее эквивалентах.