ЖУРНАЛ СТА №2/1998
ля аналогового вывода, установленного на вто- ром месте, будет пред- ложено имя АО205. Ес- ли вас не устраивает это имя, UltraLogic предло- жит выбрать имя из таблиц глобальных пе- ременных, при этом его не надо переписывать вручную, а просто до- статочно указать мы- шью в таблице. Нако- нец, вы можете ввести новую переменную для любого входа/выхода, при этом конфигура- тор немедленно помес- тит эту переменную в таблицы глобальных переменных. Разработка программ Непосредственный процесс разра- ботки программ в UltraLogic заключает- ся в «сборке» с помощью мыши про- граммы из готовых «кубиков» — функ- циональных блоков (рис. 7). «Сборка» осуществляется в среде специального графического редактора. Редактор со- держит такие операции, как вызов из библиотек функциональных блоков, копирование, перемещение и удаление объектов, ввод связей между объектами, ввод комментариев. Редактор позволяет производить групповые операции, мас- штабировать изображение. Наличие многооконного интерфейса позволяет организовать работу таким образом, что перед глазами программиста нахо- дится вся необходимая информация. Возможность переносить информацию между окнами с помощью мыши по су- ществу исключает ошибки, связанные с повторным вводом имен, типов пере- менных и т. п. Редактор имеет весьма интересную функцию — построение иерархического дерева программы, по- казывающего последовательность вы- полнения функциональных блоков программы. Иерархическое дерево (рис. 8) позволяет судить о том, на- сколько ваше собственное понимание порядка выполнения элементов про- граммы совпадает с мнением компиля- тора по данному вопросу. Кроме этого, редактор позволяет исправлять сущест- вующие библиотечные блоки, добав- лять собственные. Библиотеки, поставляемые в составе пакета UltraLogic, охватывают весьма широкий спектр алгоритмов автомати- ческого управления, обработки сигна- лов, приложений для работы с первич- ными преобразователями различных фирм. Все библиотеки являются откры- тыми, с подробным описанием работы алгоритма и временных характеристик. Пример библиотечного блока фильтра нижних частот дан на рис. 9. Работа системы исполнения имеет циклический характер. Циклы контрол- лера UltraLogic организует следующим образом: сначала считываются все вхо- ды контроллера в глобальные перемен- ные, имеющие атрибут Input, затем осу- ществляется один проход всех про- грамм, после чего происходит вывод всех глобальных переменных, имею- щих атрибут Output, на соответствую- щие (привязанные к ним) выходы моду- лей контроллера. Во время прохода программ значения входных и выход- ных переменных остаются неизменны- ми. Весь контролируемый технологиче- ский процесс разбивается на ряд фор- мальных независимых задач, каждая из которых обслуживается отдельной про- граммой. Программы выполняются по- очередно с одинаковым приоритетом. Если время одного цикла системы ис- полнения существенно меньше скоро- сти изменения параметров управляемо- го процесса, можно считать, что все программы выполняются параллельно, т. е. одновременно. Идеология программирования на языке FBD подразумевает, что время ис- полнения каждой программы должно быть вполне определенным, т. е. детер- минированным. Другими словами, ни одна программа не имеет права зацик- литься на неопределенное время, на- пример на ожидании какого-либо со- бытия. Данное правило является «хоро- шим тоном» в программировании на языке FBD и гарантирует, что никакая программа не приостановит исполне- ние других программ. Такой подход обеспечивает простоту и прозрач- ность для понимания. Так как нет пре- рываний, система полностью детерми- нирована. Задачи вызываются в одной и той же последовательности, что позволяет достаточно просто произвести анализ «наихудшего случая» и вычислить максималь- ную задержку. Так, контроллер с вычислительным модулем 5012А (IBM XT) на тепловом пункте ЦТП-2 (рис. 2) одновременно об- служивает 6 независимых техно- логических процессов с быстро- действием 130-150 циклов в се- кунду, при этом успевая обмени- ваться данными с системой визуа- лизации со скоростью 57 кбод. Та- кого быстродействия более чем достаточно, чтобы считать, что все процессы на теплопункте об- служиваются одновременно. (Заметим в скобках, что производительность вы- числительного модуля 5066 в несколько тысяч раз выше, чем модуля 5012А.) На рис. 4 приведен фрагмент про- граммы, реализующей алгоритм управ- ления регулятором температуры. Сиг- нал AI602 с датчика температуры посту- пает на фильтр нижних частот LPF1 с постоянной времени фильтра T= 1 с. Отфильтрованное замеренное значе- ние температуры воды в зоне отопле- ния сравнивается с заданным значени- ем GVS1_Stab. При этом выставляется ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ИНСТРУМЕНТАЛЬНЫЕ СИСТЕМЫ 94 2/98 Рис. 8. Иерархическое дерево программы Рис. 7. Окно выбора библиотечных блоков
Made with FlippingBook
RkJQdWJsaXNoZXIy MTQ4NjUy