СТАНДАРТНЫЕ ПРОГРАММЫ УПРАВЛЕНИЯ ХОДОМ ВЫПОЛНЕНИЯ ПРОЦЕССА И СВЯЗАННЫЕ СПОСОБЫ И СИСТЕМЫ
STANDARD PROGRAM MANAGEMENT PROCESS AND RELATED METHODS AND SYSTEMS

ОБЛАСТЬ ИЗОБРЕТЕНИЯ
[0001] Изобретение относится к программе управления ходом выполнения процесса для контроля программных приложений (называемых здесь «модулями»), которые выполняются с помощью различных устройств, применяемых на обрабатывающих и производственных установках. В частности, настоящее изобретение относится к программе управления ходом выполнения процесса для контроля стандартных программ, применяемых с различными модулями для обнаружения модулей ошибок и принятия соответствующих мероприятий, специфичных для конкретной установки.
УРОВЕНЬ ТЕХНИКИ
[0002] Современные обрабатывающие и производственные установки используют компьютерные системы и микропроцессорные системы контроля и управления почти всех областей производства. Отдельные компьютерные системы и микропроцессорные системы контроля и управления сохраняют различные модули, которые выполняют работу на различных аспектах производства. Специальная функция любого вида модулей от модулей контроля и управления отдельных полевых устройств до модулей, способствующих работе и обслуживанию, заключается в обеспечении данных для отчетов руководства.
[0003] Полевые устройства, которые включают стандартные микропроцессорные программы, приобрели широкое распространение. Часто любой процессор полевого устройства последовательно выполняет программы нескольких модулей. Отдельные полевые устройства часто включают встроенные системы. Любая встроенная система сохраняет и выполняет программы множества модулей, связанных с контролем и/или управлением работой отдельной установки. Например, контроллер данного цифрового устройства может быть выполнен для регулирования уровня в резервуаре. Контроллер может получать входной сигнал от датчика уровня в резервуаре и отправлять выходной сигнал на контроллер клапана. Контроллер цифрового устройства выполняет программу модуля или модулей, которые управляют выходным сигналом открытия или закрытия клапана, когда уровень в резервуаре варьирует между значением выше или ниже необходимого уровня. Любое полевое устройство, будь то датчик (т.е. датчик уровня) или механизм управления (т.е. контроллер клапана), может быть цифровым устройством, разработанным для выполнения программы модуля или модулей, которые, например, преобразуют аналоговые данные в цифровые данные. Модули, связанные с функциями от стандартных программ сообщения между процессором и портом I/О до стандартных программ преобразования аналогового значения в цифровое представление этого значения, часто выполняются любым процессором полевого устройства.
[0004] Компьютерные системы производства и обслуживания часто выполняют также программы множества модулей. Когда стандартные программы производства и обслуживания выполняются соответствующим процессором, производственный персонал может взаимодействовать с отдельными устройствами установки. Кроме того, компьютерные системы управления производством часто выполняют программы множества модулей. Когда стандартные программы управления компьютерных систем выполняются соответствующим процессором, производственному персоналу предоставлены рабочие данные и связанные отчеты.
[0005] Известные стандартные программы управления процессом требуют дополнительно до 2 Мбайт памяти для хранения всех связанных данных. Необходимый объем памяти зависит от полного объема встроенных микропрограмм и числа модулей, управляемых процессом программы, в добавление к объему самого модуля управления процессом программы. Стандартные программы управления процессом программы являются специальными для разных модулей. Часто память встроенных систем ограничена. Обычно модули управления процессом программы определяют число модулей, которые требуют контроля до начала их выполнения. Когда число модулей контроля определено, устанавливается соответствующее распределение памяти. Поэтому возникла необходимость разработать стандартную программу управления процессом, которая требовала бы мало памяти и контролировала многочисленные модули.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0006] В одном варианте осуществления изобретения устройство контроля и/или управления производством содержит контроллер, который выполнен для приема по меньшей мере одного входного сигнала и создания по меньшей мере одного выходного сигнала. Устройство контроля и/или управления производством также содержит машиночитаемый носитель для хранения по меньшей мере одного модуля. Стандартная программа управления процессом программы настоящего изобретения динамически определяет число контролируемых модулей во время работы, и соответствующее распределение памяти увеличивается или уменьшается соответствующим образом. Контроллер дополнительно устроен для выполнения модуля с целью повлиять на контроль и/или управление работой процесса. Устройство контроля и/или управления производством также содержит стандартную программу контроля процессом программы, которая хранится на машиночитаемом носителе, который при выполнении обнаруживает любые ошибки, связанные с модулем, и представляет временные метки того, когда была обнаружена любая ошибка. Стандартная программа управления процессом программы включает стандартную программу интерфейса, который запускается, когда обнаружена любая ошибка модуля, и запускает сигнал тревоги и/или действие для конкретной установки.
[0007] В другом варианте осуществления способ обнаружения ошибок в модуле, связанный с контролем и/или управлением производства, включает обеспечение контроллера, который выполнен для приема по меньшей мере одного выходного сигнала и создания по меньшей мере одного выходного сигнала. Способ также включает обеспечение машиночитаемого носителя и сохранение по меньшей мере одного модуля и по меньшей мере одной стандартной программы управления процессом программы. Способ также включает выполнение модуля для осуществления контроля и/или управления внутри процесса и выполнение стандартной программы управления процессом программы для обнаружения любых ошибок, связанных с выполнением модуля. Способ также включает обеспечение временных меток, указывающих, когда и сколько раз была обнаружена любая ошибка модуля, а также включает выполнение стандартной программы интерфейса, когда обнаружена любая ошибка модуля, для инициирования сигнала тревоги и/или действия для конкретной установки.
[0008] В другом варианте осуществления машиночитаемый носитель для использования в процессе контроля и/или управления производством, содержит по меньшей мере один модуль, связанный с контролем и/или управлением процесса, сохраненного на машиночитаемом носителе, и по меньшей мере одну стандартную программу контроля процесса программы, сохраненную на машиночитаемом носителе. Стандартная программа контроля процесса программы выполняется для обнаружения любых ошибок, связанных с модулем, и обеспечивает временные метки обнаружения ошибок. Машиночитаемый носитель также сохраняет по меньшей мере одну стандартную программу интерфейса, которая выполняется, когда обнаружена ошибка модуля для инициирования сигнала тревоги и/или действия для конкретной установки.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0009] Фиг. 1 иллюстрирует функциональную схему инспекционного контроля над производством и системой приема данных;
[0010] Фиг. 2 иллюстрирует планировочный чертеж внутри производства;
[ООН] Фиг. 3А-3D иллюстрируют различные цифровые полевые устройства вывода;
[0012] Фиг. 4А-4С иллюстрируют различные цифровые полевые устройства ввода;
[0013] Фиг. 5 иллюстрирует блок-схему цифрового полевого устройства;
[0014] Фиг. 6 иллюстрирует OMD для регулятора управления;
[0015] Фиг. 7 иллюстрирует Таблицу 1, в которой поясняются функции, связанные с переменными определенного класса;
[0016] Фиг. 8 иллюстрирует диаграмму последовательности регистрирования регулируемых функций безопасности/безопасности процесса/безопасности функционирования;
[0017] Фиг. 9 иллюстрирует диаграмму последовательности разрегистрирования функций безопасности/ безопасности процесса для прекращения регулирования;
[0018] Фиг. 10 иллюстрирует диаграмму последовательности функций безопасности/безопасности процесса/функционирования;
[0019] Фиг. 11 иллюстрирует диаграмму последовательности, поясняющую регулирование программы потока, инициализацию и применение;
[0020] Фиг. 12 иллюстрирует блок-схему для установления времени определенного события;
[0021] Фиг. 13 иллюстрирует блок-схему для определения того, лежит ли данный промежуток времени в пределах диапазона;
[0022] Фиг. 14 иллюстрирует последовательность выполнения для регулирования того, осуществляется ли стандартная программа управления процессом, как необходимо;
[0023] Фиг. 15 и 16 иллюстрируют стандартную программу согласования различных последовательностей выполнения модулей.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0024] В одном варианте осуществления встроенная система устройства установки сохраняет и выполняет множество модулей, связанных с различными функциями, специфическими для установки. Стандартная программа контроля программы процесса сохраняется в памяти устройства установки, которая при выполнении соответствующим процессором обнаруживает любые динамические ошибки модулей (например, связанные со временем выполнения) устройства установки. Стандартная программа контроля программы процесса включает в себя стандартную программу регистрации модуля, стандартную программу управления модулем и стандартную программу интерфейса. Стандартная программа регистрации модуля динамически регистрирует и разрегистрирует модули во время работы с целью контроля в соответствии с входными данными пользователя. Стандартная программа управления модулем просматривает зарегистрированные модули на наличие ошибок и инициирует выполнение стандартной программы интерфейса, когда обнаружена любая ошибка модуля. Стандартная программа интерфейса обеспечивает сигнал тревоги и/или действие для конкретной установки. Так, для управления всеми зарегистрированными модулями используется общая стандартная программа отслеживания модулей. Стандартная программа контроля программы процесса, которая имеет описанное модульное устройство, позволяет повторное использование этой программы от модуля к модулю. Таким образом, стандартная программа контроля программы процесса масштабируется согласно числу модулей, зарегистрированных для контроля. Это особенно полезно для встроенных систем с ограниченной памятью, которые хранят и выполняют большое число модулей.
[0025] Стандартная программа контроля программы процесса при ее запуске выполняет любую из следующих функций: контроль модуля выполнения; интерфейс для действий при отказе модуля выполнения; контроль модуля последовательности; контроль модуля выполнения последовательности; интерфейс для действий при отказе модуля последовательности выполнения; контроль переполнения буфера; интерфейс для действий при переполнении буфера; контроль безопасности операционной системы реального времени (RTOS); проверка того, происходит ли процесс в необходимый промежуток времени; проверка того, замыкается ли процесс; проверка того, происходит ли процесс слишком быстро или слишком медленно; проверка того, выполняется ли модуль периодически, как необходимо; интерфейс для действий при отказе проверки процесса; любая их комбинация или подкомбинация.
[0026] Стандартная программа модуля контроля может быть общей для всех модулей, выполняемых в установке данной системы. Поскольку действие отказа системы устройства зависит от данной системы, в которой применяется стандартная программа контроля программы процесса, стандартная программа контроля программы процесса, содержащая стандартные программы интерфейса, способствует общему действию установки при обнаружении любой ошибки модуля.
[0027] Рассмотрим Фиг. 1, на которой изображена система установки SCADA 100, которая содержит ряд промышленных и других компьютерных систем, связанных с рядом устройств управления и/или контроля одной или более сетей сообщения. Стоит отметить, что система установки SCADA100 содержит множество модулей, выполняемых равнорасположенным числом устройств, расположенных в установке.
TM
[0028] Система установки SCADA100 содержит одну или более систем управления процессом 112 и 114. Система управления процессом 112 может быть традиционной системой управления процессом, такой как система PKOVOX или RS3, или любая другая DCS, содержащая интерфейс оператора 112А, соединенный с контроллером 112В и картами ввода/вывода (I/O) 112C, которые поочередно присоединяются к различным полевым устройствам, таким как аналоговые устройства или полевые устройства 115 с удаленным датчиком с шинной адресацией (HART). Система управления процессом 114, которая может быть распределенной системой управления процессом, содержит один или более интерфейсов оператора 114А, соединенных с одним или более распределенных контроллеров 114В посредством шины, такой как шина Ethernet. Контроллеры 114В могут быть, например, контроллерами DeltaV, коммерчески доступными у Fisher-Rosemount Systems, Inc., город Остин, штат Техас, или любыми другими необходимыми типами контроллеров. Контроллеры 114В присоединяются посредством устройств I/O к одному или более полевых устройств 116, например, таких как устройства, поддерживающие протокол HART или Fieldbus Field (FF), или любые другие интеллектуальные или неинтеллектуальные полевые устройства, включающие, например те устройства, которые используют любой из протоколов PROFIBUS, WORLDFIP, Device-Net, AS-Interface и CAN. Стандартная программа контроля программы процесса совместима с протоколами HART, промышленной шины, сетевой шины, PROFIBUS и Modbus. Как известно, полевые устройства 116 могут передавать аналоговую или цифровую информацию контроллерам 114В, связанным с переменными процесса, а также другим информационным устройствам. Интерфейсы оператора 114А могут хранить и выполнять модули, доступные оператору управления процесса для контроля выполнения процесса, включая, например, оптимизаторы управления, эксперты в диагностике, нейронные сети, механизмы настройки и т.д. Любое такое устройство внутри системы управления процессом 112, 114 может состоять из числа модулей, сохраненных в соответствующей памяти и по меньшей мере частично выполняемых соответствующим процессором. Стандартная программа управления программой процесса может быть включена в любой модуль системы управления процессом.
[0029] Обслуживающие системы, такие как компьютер 218, выполняющие модуль системы обслуживания приборов (AMS) или любым другим устройством, и модуль сообщения могут быть соединены с системами управления процессом 112 и 114 или с отдельными полевыми устройствами для проведения обслуживания и контроля. Например, обслуживающий компьютер 118 может быть соединен с контроллером 112В и/или другими полевыми устройствами 115 посредством любых необходимых линий или сетей сообщения (включая беспроводные сети и сети мобильных устройств) для сообщения и в некоторых случаях реконфигурации или выполнения других функций обслуживания полевых устройств 115. Аналогично, модули обслуживания, такие как модули AMS, могут устанавливаться и выполняться одним или более интерфейсов пользователя 114А, связанных с распределенной системой управления процессом 114 для выполнения функций обслуживания и контроля, включая сбор данных, связанных с состоянием работы полевых устройств 116. Любая система обслуживания может включать стандартную программу контроля программы процесса.
TM
[0030] Система установки SCADA 100 также содержит различное вращающееся оборудование 120, такое как турбины, моторы и т.д., которые соединены с обслуживающим компьютером 122 посредством звеньев постоянного или временного сообщения (таких как шина, система беспроводного сообщения или карманные устройства, которые соединены с оборудованием 120 для снятия показаний и затем удаляются). Обслуживающий компьютер 122 может хранить и выполнять известные управляющие и диагностические модули 123, например RBMware, коммерчески доступные y CSI Systems of Knoxville, штат Теннеси, или любые другие модули, используемые для диагностирования, отслеживания и оптимизации рабочего состояния вращающегося оборудования 120. Обслуживающий персонал обычно использует модули 123 для поддержания и прогнозирования характеристик вращающегося оборудования 120 для определения проблем, связанных с вращающимся оборудованием 120, и определения, когда и при каких условиях вращающееся оборудование 120 должно быть отремонтировано или заменено. Любой из модулей вращающегося оборудования может включать стандартную программу управления ходом выполнения программы.
[0031] Система установки SCADA 100 также содержит систему выработки и распределения энергии 124, которая обладает оборудованием для выработки и распределения энергии 125, связанной с установкой, например, посредством шины с другим компьютером 126, который работает и прогнозирует работу оборудования для выработки и распределения энергии 125. Компьютер 126 может выполнять известные модули управления энергией и диагностирования 127, например, доступные у компаний Liebert и ASCO или других компаний для управления и поддерживания оборудования для выработки и распределения энергии 125. Множество модулей сохраняются и выполняются оборудованием для выработки и распределения энергии. Любой модуль оборудования для выработки и распределения энергии может включать стандартную программу управления ходом выполнения программы.
[0032] Представлена компьютерная система 130, которая сообщается с компьютерами или интерфейсами, связанными с различными функциональными системами в установке процесса 100, включая функции управления процессом 112 и 114, функции обслуживания, такими как те, которые применяются на компьютерах 118, 114А, 122 и 126, и промышленные функции. В частности, компьютерная система 130, которая сообщается с традиционной системой управления процессом 112 и с интерфейсом обслуживания 118, соединена с интерфейсами управления процессом и/или интерфейсами обслуживания 114А распределенной системы управления процессом 114, соединена с обслуживающим компьютером вращающегося оборудования 122 и с компьютером для выработки и распределения энергии 126, все из которых соединены посредством шины 132. Шина 132 может использовать любой желаемый или соответствующий протокол локальной сети (LAN) или глобальной сети (WAN) для обеспечения сообщения. Как изображено на Фиг. 1, компьютер 130 также соединен этой или другой сетевой шиной 132 с компьютерами промышленных систем и компьютерами планирования обслуживания 135 и 136, которые могут выполнять, например, модуль планирования ресурсов установи(ЕКР), модуль планирования ресурсов материалов (MRP), системы управления обслуживанием компьютера (CMMS), модуль систем учета, производства и обслуживания клиентов, модуль систем планирования обслуживания или любые другие желаемые промышленные модули, такие как модули заказа деталей, запчастей и сырья, модули разработки расписаний и т.д. Компьютер 130 может быть соединен, например, посредством шины 132 с внутренней LAN-сетью 137, корпоративной WAN-сетью 138, а также с компьютерной системой 140, которая позволяет осуществлять удаленный контроль или сообщение внутри установки из удаленных расположений. Любой из модулей компьютерных систем может включать в себя стандартную программу управления ходом выполнения программы.
[0033] Рассмотрим дополнительные примеры различных устройств в установке процесса, которые хранят и выполняют много модулей, Фиг. 2 иллюстрирует примерное графическое изображение 200, которое может обеспечиваться графическим интерфейсом пользователя (GUI) для отчета информации о состоянии пользователю и может давать возможность пользователю быстро анализировать рабочее состояние и характеристики системы внутри установки. Как видно на Фиг. 2, этот процесс может включать электрические моторы, компрессоры, термостаты, клапаны, регуляторы, коробки передач и другие специальные устройства, связанные с конкретным процессом. Описание данной системы установки включает пару резервуаров 210, 240, множество датчиков температуры 221, 251, датчиков давления 222, 252, датчиков потока 223, 253 и т.д. и трубы, при этом все они взаимно соединены, как показано на Фиг. 2. Любой модуль контроллера цифрового устройства может включать в себя стандартную программу управления ходом выполнения процесса в соответствии с настоящим изобретением.
x
[0034] Следует понимать, что любая система установки может включать полевые устройства, связанные с водой для впрыска, удаленными насосами, подвижными грузовыми вагонами, вращающимся реактором, источником/теплообменником, профилированием температуры/уровнем бака, коллектором общей добываемой продукции, эмиссией двигателей внутреннего сгорания, бензоловыми баками, турбоагрегатами, вибрацией насосов, вращающейся печью для обжига извести, обнаружением засоренных фильтров, защитными душами, обслуживанием источников, мобильными/временными сетями, управлением переработкой, подшипниками качения, горячими баками, речной водой (промышленной), паровым крекингом, потреблением обработанной воды, состоянием фильтра, системой трубопроводов, давлением источника, удаленными баками для хранения, холодными коробками, воздушным компрессором, паропроводом, парораспределительными линиями, вращающимися печами для обжига глины, энергетическим применением, системой контроля хранением бака, ручными клапанами, системами подачи топлива, временными установками, стенками камеры, удаленными баками, температурой смолы (суспензии), выбросами NO, системой испытания мобильных скважин, забиванием фильтра/потока пара, теплопередачей, управлением сетью мостов, воздушным компрессором, коксовальной установкой, общим потоком производства нефти, доменной печью, балансом газа/скважин и управлением температурой печи. Любой модуль, связанный с данным устройством контроля и/или управления, может включать стандартную программу управления ходом выполнения процесса в соответствии с настоящим изобретением. Как видно на дополнительных примерах устройств, связанных с установкой, которые хранят и выполняют различные модули, Фиг. 3А-3D иллюстрируют полевые устройства, связанные с управлением установкой. Эти устройства могут быть выполнены с возможностью запуска с помощью выходного сигнала контроллера цифрового устройства, такого как описанный и изображенный на Фиг. 5.
[0035] Фиг. 3А иллюстрирует полевое устройство 300а, которое содержит линейный клапан 305а, цифровой контроллер клапана 310а и привод линейного клапана 315а. Фиг. 3В иллюстрирует полевое устройство 300b, которое содержит поворотный клапан 305b, цифровой контроллер клапана 310b и привод поворотного клапана 315b. Фиг. 3С иллюстрирует полевое устройство 300с, которое содержит насос 305с, цифровой контроллер мотора/насоса 310с и мотор (источник энергии) 315с. Фиг. 3D иллюстрирует полевое устройство 300d, которое содержит первый источник энергии 305d, цифровой контроллер источника энергии (не показан) и второй источник энергии 315d. Следует понимать, что любое рассматриваемое полевое устройство может быть выполнено в виде привода управления процессом, связанным с работой установки в реальном времени. Любой модуль устройства управления установки может включать в себя стандартную программу управления ходом выполнения процесса.
[0036] В дополнительных примерах устройств, связанных с процессом установки, которые хранят и выполняют различные модули, Фиг. 4А-4С иллюстрируют полевые устройства, связанные с управлением установкой. Эти устройства могут быть выполнены для управления с помощью входного сигнала цифрового контроллера устройства, такого как описан и изображен со ссылкой на Фиг. 5. Фиг. 4А иллюстрирует полевое устройство 400а, которое содержит датчик температуры 405а и цифровой контроллер/регулятор температуры 410а. Фиг. 4В иллюстрирует полевое устройство 400b, которое содержит датчик уровня 405а и цифровой контроллер/регулятор уровня 410b.Фиг. 4С иллюстрирует полевое устройство 400с, которое содержит датчик Ph 405с и цифровой контроллер/регулятор Ph 410с. Следует понимать, то рассматриваемое полевое устройство может быть выполнено в виде контроллера/регулятора процесса, связанного с работой установки процесса в реальном времени. Любой модуль устройства контроля установки включает в себя стандартную программу управления ходом выполнения процесса.
[0037] Фиг. 5 иллюстрирует цифровой контроллер устройства 500. Цифровой контроллер устройства хранит и выполняет информационные модули, связанные с управлением и/или контролем связанного полевого устройства. Цифровой контроллер устройства 500 содержит процессор 510, дискретный ввод 515, аналоговый ввод 520, дискретный вывод 525, аналоговый вывод 530, память 535, модуль сообщения в ближней зоне 540, устройство сообщения в дальней зоне 555 и антенна сообщения в дальней зоне 560. Модуль сообщения в ближней зоне 540 включает цифровую цепь 545 и антенну сообщения в ближней зоне 550. Часто процессор 510, память 535 и подключение связанных модулей встроенной системы. Описанные здесь стандартные программы управления ходом выполнения процесса приспособлены, в частности, для встроенных модулей, в которых желательны низкая память и высокая производительность. Следует понимать, что любое рассматриваемое полевое устройство, изображенное на Фиг. 3A-3D и 4А-4С, может включать в себя цифровой контроллер устройства, которое содержит встроенную систему, которая выполняет модуль, который выполняется стандартной программой управления ходом выполнения процесса. Следует сейчас отметить, что существует множество модулей, хранимых и выполняемых различными устройствами установки.
[0038] Стандартная программа управления ходом выполнения процесса может быть разработана в виде стандартной программы управления модулем времени выполнения, которая содержит обнаружение ошибок модуля с временными метками. Если программа написана на C++, стандартная программа управления ходом выполнения процесса применяется к любому модулю и особенно полезна с модулями, написанными на С++. Если программа написана на C++, С-оболочка доступна для действий на отказ. Таким образом, необходимо меньше памяти, 32 байта на модуль управления. Соответствующая стандартная программа управления ходом выполнения процесса не требует использовать внешнюю память (т.е. использует внутреннюю память) для обеспечения временных меток.
[0039] Стандартная программа управления ходом выполнения процесса, написанная на C++, может применяться в самом модуле. Данный модуль может быть разработан для обнаружения ошибок модуля и принятия мер, но не зависит от внешнего устройства/интерфейса. Соответствующая стандартная программа управления ходом выполнения процесса может быть разработана в концепции объектно-ориентированного программирования (ООР). Таким образом, изменение механизма управления выполняется путем добавления/удаления признаков класса Monitor (Монитор). По меньшей мере в одном варианте осуществления стандартная программа управления ходом выполнения процесса разработана в OOP, так что она является используемой N раз для управления выполнением различных модулей. Стандартная программа интерфейса, которая сообщается с другими приложениями, имеет мгновенный ответ на сбой выполнения.
[0040] Фиг. 6 иллюстрирует стандартную программу управления ходом выполнения процесса 600, которая содержит стандартную программу управления модулем 605 и управления списком модулей 610 с помощью стандартной программы управления модулем 605. Как видно на Фиг. 6, стандартная процедура CMonitorMg использует стандартную процедуру класса CCiDLinkList для создания списка модулей для управления. Стандартная процедура CMonitorMgr не зависит от функционирования операционной системы реального времени (RTOS). Стандартная процедура CMonitorMgr не использует никакие RT0SAPI для получения информации об управляемых процессах. Обе стандартные процедуры CMonitorMgr 605 и CMonitor_TimeMinMax 615 используют стандартную процедуру класса CSisTime 620 для обновления временных меток при каждом выполнении стандартной программы управления ходом выполнения процесса. Обновленные временные метки связаны с любой обнаруженной ошибкой модуля.
[0041] С дополнительной ссылкой на Фиг. 6 и дополнительной ссылкой на Таблицу 1, которая приводится как элемент 700 на Фиг. 7, приводится описание 710 функций 705, который обеспечиваются стандартной процедуре и CMonitorMgr 605, 720 и стандартной процедурой класса CMonitor_TimeMinMax 615, 715. До тех пор пока стандартная процедура CMonitor_TimeMinMax получает первое обновление времени с помощью стандартной процедуры TriggerTime() 719, переменная m_bEnabledMonitoring 625 сохраняет значение FALSE (ЛОЖНО). После получения первого обновления времени переменная m_ulLastTriggerTime будет обновлена, и переменная m_bEnableMonitoring будет записана в стандартную процедуру TRUE (ИСТИННО) CmonitorMgr для проверки порогового значения времени. Если управление не было включено, когда проверка была вызвана стандартной процедурой CMonitorMgr, тогда никакая проверка порогового времени не будет проводиться. Стандартная процедура CMonitorMgr может быть выполнена с возможностью работы в течение промежутков времени на уровне прерываний или уровне процесса. Любой модуль, предназначенный для управления стандартной программой CMonitorMgr будем называть Register() (Регистрирование) 721. Это в конце концов добавляет модуль к стандартной круговой процедуре CMonitorMgr, связанной с переменной m_LIST_monitor 725. Стандартная программа управления ходом выполнения процесса настоящего изобретения динамически определяет число модулей для управления во время работы, и соответствующее распределение памяти увеличивается или уменьшается соответствующим образом.
[0042] Любой рассматриваемый модуль, процесс или функция может быть зарегистрирован для управления только один раз. Если регистрация модуля проводится во второй раз, тогда стандартная процедура CMonitorMgr не регистрирует его и возвращает отрицательный ответ на полученный запрос. Фиг. 8 и 9 иллюстрируют последовательность регистрирования 800 и разрегистрирования 900 управления стандартной процедуры CmonitorMgr соответственно. Для удаления модуля, процесса или функции из стандартной процедуры CMonitorMgr объект стандартной процедуры CMonitor_TimeMinMax вызывает Unregister() (Разрегистрирование) 722 стандартной процедуры. Если модуль, процесс или функция обнаруживаются в стандартной процедуре CMonitorMgr для полученного разрегистрирования управления, тогда стандартная процедура MonitorMgr удаляет модуль из списка и возвращает положительный ответ. Если значение модуля, процесса или функции не обнаружено при разрегистрировании, тогда стандартная процедура CMonitorMgr отправляет отрицательный ответ на полученный запрос.
[0043] Фиг. 10 иллюстрирует диаграмму последовательности 1000, которая содержит подробности выполнения стандартной процедуры CmonitorMgr класса 1005. Стандартная процедура управления ходом выполнения процесса CmonitorMgr работает по периодическому расписанию. Этот интервал выполнения CmonitorMgr варьирует в зависимости от системы от микросекунд до нескольких секунд и может быть выполнен во время работы системы. Используется таймаут вызова и/или прерывания для запуска периодической проверки каждого модуля, зарегистрированного согласно стандартной процедуре класса CMonitorMgr. При приеме события таймаута 1010 стандартная процедура CMomtorMgr начинает проверять зарегистрированные процессы, функциональность или модули.
[0044] Выполнение стандартной программы управления ходом выполнения 1100 изображено на Фиг. 11. Если «Предельная» переменная превышает настроенный максимальный предел или выходит ниже заданного минимального предела, тогда будет запущена стандартная процедура интерфейса DevExecutionFailure() и будет принят сигнал тревоги и/или действие для конкретной установки. Сигнал тревоги и/или действие может быть переписано с помощью разработчика устройства для передачи действия для конкретного устройства. Когда проверка минимального предела не требуется, тогда m_ulMimTimeLimit будет установлено на NO_LIMIT_CHECK (нет проверки предела), чтобы указать, что меньший предел не будет проверен. Аналогично, это применимо к максимальному пределу времени.
[0045] Фиг. 12 иллюстрирует блок-схему 1200, описывающую стандартную процедуру, которая выполняется тогда, когда класс TriggerTime() объявляется в управляемом модуле. Таймер на основе прерываний, описанный диаграммой 1200, может применяться для проверки того, правильно ли выполняется сам CMonitorMgr. Стандартная процедура инициируется в стартовом блоке 1205. Определение того, включено ли управление ходом выполнения процесса, осуществляется в блоке 1210. Если включено, производится моментальный снимок текущего времени в блоке 1215, после чего следует расчет затраченного времени в блоке 1215. Определение производится в блоке 1225 независимо от того, первое ли это выполнение после перезапуска стандартной процедуры. Если так, минимальное значение времени от последнего времени запуска получено в блоке 1230. Если не верно, назначается определение TRUE (ИСТИННО) переменной, связанной с выполнением в первый раз после перезапуска в блоке 1235. Расчет максимального значения времени от последнего времени запуска производится в блоке 1240, после чего устанавливается время последнего запуска, равное текущему времени в блоке 1245 перед завершением стандартной процедуры в конечном блоке 1250. Если сам CMonitorMgr не выполняется, функция безопасности будет объявлена соответствующей производству в безопасном режиме.
[0046] Фиг. 13 иллюстрирует блок-схему 1300, которая описывает стандартную процедуру, которая при выполнении определяет, имеет ли модуль, регулируемый стандартной программой управления ходом выполнения процесса, связанное время выполнения в пределах желаемых пределов. Стандартная процедура инициируется в стартовом блоке 13 05.Проверка производится относительно того, является ли переменная "WithinLimitStatus" («Состояние в пределах диапазона») TRUE (ИСТИННО) в блоке 1310, после чего следует проверка того, включено ли управление в блоке 1315. Если управление не включено, стандартная процедура переходит к блоку 1355. Если управление включено, проверка производится относительно того, равно ли значение переменной "MinTimeLimit" (Минимальное предельное время») значению переменной "NO_TIME_LIMIT" в блоке 1320. Если да, тогда определяется, меньше ли переменная "MinTime" («Минимальное время»), чем переменная "MinTimeLimit", в блоке 1325. Проверка производится в блоке 1330 для определения того, равна ли переменная "MaxTimeLimit" («Максимальное предельное время») переменной "NО_TIME_LIMIT". Производится моментальный снимок текущего времени и переменная "GetElapsedTime" («Затраченное время») рассчитывается в блоке 1335, после чего находится переменная "Maxtime" («Максимальное время») в блоке 1340. В блоке 1345 определяется, больше ли переменная "MaxTime", чем переменная "MaxTimeLimit". Если да, тогда определяется, ЛОЖНО ли состояние переменной "WitihinLimit" («В пределах диапазона»). Состояние управляемого модуля возвращается к блоку 1355. Соответствующее состояние ошибки модуля будет возвращено, когда время выполнения модуля выйдет за допустимые пределы.
[0047] Как описано на диаграмме последовательности 1400 на Фиг. 14, стандартная программа интерфейса DevExecutionFailure() будет выполняться на отказ модуля для контроля функциональности, процессов или самого CMonitorMgr, который создаст по умолчанию сигнал тревоги. Это действие по умолчанию может быть перезаписано разработчиком устройства для придания специального действия для конкретной установки, такого как отключение отдельных элементов оборудования.
[0048] Часто желательно, чтобы функции безопасности выполнялись в предопределенной последовательности. Выполнение последовательности безопасности контролируется, как описано со ссылкой на Фиг. 15 и 16 и как описано в диаграмме последовательности 1500 и блок-схеме 1600. Переменные "SSequenceExecution" («Выполнение последовательности») 1505, логическое значение "bExecutionStart" («Булево начало выполнения»), "Ushort" («Короткий»), "ushSeqNum" («Номер последовательности») 1510 и отмена "SequenceFailed()" («Сбой последовательности») 1515 управляются, как описано на Фиг. 15. Стандартная программа последовательности безопасности инициируется в стартовом блоке 1605. Переменная "bExecutionStart" имеет значение TRUE (ИСТИННО) в блоке 1610, и переменная "ushSeqNum" присваивается равной нулю в блоке 1615. В блоке 1620 переменная "ushSeqNum" проверяется для определения того, равна ли она ранее выполненной последовательности. Если да, переменная "ushSeqNum" устанавливается равной переменной "ExecutedSequence" («Выполненная последовательности») в блоке 1625. Если нет, переменная "SequenceExecutionFailure()" («Сбой последовательности выполнения») устанавливается в блоке 1630. В блоке 1635 проверяется, все ли последовательности завершены. Если последовательности не завершены, стандартная программа возвращается к блоку 1620. Если последовательности завершены, переменная "bExecutionStart" становится ЛОЖНОЙ в блоке 1640 перед завершением стандартной программы в конечном блоке 1645.
[0049] После прочтения этого описания специалисты в области техники отметят дополнительные структурные и функциональные варианты стандартной программы управления ходом выполнения процесса. Таким образом, в то время как отдельные варианты осуществления изобретения и применения были описаны и проиллюстрированы, следует понимать, что описываемые варианты осуществления не ограничены точной конструкцией и описанными здесь компонентами. Различные модификации, изменения и вариации, которые будут очевидны специалистам в области техники, могут быть внесены в организацию, работу и детали описанного здесь алгоритма, способа и устройства без отклонения от идеи и области распространения, определенной в прилагаемых пунктах формулы изобретения.