Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Разработка автоматизированных систем управления и систем имитационного моделирования с помощью инструментария САПР ТЕПРОЛ. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
− сообщение «Ошибка: найден цикл» означает, что на схеме имеется
циклически замкнутая последовательность вызовов алгоритмических мо-
дулей или алгоблоков и для корректной их работы необходимо произвести начальную инициализацию какого-либо параметра или связи, участвую­щей в цикле;
− сообщение «Предупреждение: Некорректное преобразование типов: <имя типа> в <имя типа>». Данное сообщение означает, что на схеме име­ется связь, которая приводит к некорректному преобразованию типов;
− сообщение «Ошибка: В файле соответствия имен сигналов не найден сигнал <имя сигнала>». Это сообщение означает, что в этом файле не найдено указанное имя сигнала. Необходимо в меню «Установки ими­татор\контроллер» установить галочку «транслировать для имитатора»;
− сообщение «Ошибка: В файле описания почтового ящика не найден сигнал <имя сигнала>». Это сообщение означает, что в файле описания
почтового ящика не найдено смещение для сигнала с указанным именем.
Необходимо в меню «Установки имитатор\контроллер» установить галоч­ку «транслировать для имитатора».
В случае выявления ошибок при трансляции схемы их необходимо
исправить и добиться, чтобы появлялось сообщение об успешном завер-
шении операции, представленное на рис. 4.4.
4.2. ОСОБЕННОСТИ ГЕНЕРАЦИИ ИСХОДНОГО КОДА АЛГОРИТМА
НА ЯЗЫКЕ СИ
Каждому алгоритмическому модулю, входящему в состав библиотеки
алгоритмических модулей, соответствует уже готовая реализация функ-
ции модуля на языке Си.
Таким образом, при трансляции алгоритмической схемы происходит
построение главного метода, в котором вызовы алгоритмических модулей
выстроены в порядке прохождения технологических сигналов в схеме, ко-
51
гда перед вызовом очередного модуля все значения его входных и настро-
ечных параметров определены.
После вызова модуля инициализируются его выходные сигналы, ко-
торые в свою очередь могут быть присвоены другим элементам техноло-
гической схемы. В результате сгенерированный главный метод содержит
последовательность вызовов алгоритмических модулей, которая реализует
алгоритм, заложенный в технологической схеме. Этот метод вызывается
циклически и реализует алгоритмы управления технологическими про-
цессами.
Если трансляция технологической схемы прошла успешно, то будут
созданы файлы исходного кода на языке Си. При этом будут сгенерирова-
ны следующие файлы: «имя_проекта.h» и «имя_проекта.c».
Имена файлов будут сгенерированы на основе имени проекта
ТЕПРОЛ. В заголовочном файле «имя_проекта.h» будут подключены
библиотечные файлы алгоритмических модулей, объявлены и проинициа-
лизированы сигналы, массивы, константы, использованные в технологи-
ческой схеме. В файле исходного кода «имя_проекта.c» будет содержать­ся реализация главного метода.
Полученные в результате трансляции файлы «имя_проекта.h»
и «имя_проекта.c» могут быть транслированы с различными настройками,
и полученные исполняемые модули могут быть загружены в микропро-
цессорный контроллер или в ПК для отладки схемы.
4.3. ЛАБОРАТОРНАЯ РАБОТА № 4
Задание 1 Создайте в САПР ТЕПРОЛ схему формирования сигналов предупре-
дительной сигнализации (ПС) и аварийной сигнализации (АС) по темпе-
ратуре первой и второй активных зон (АЗ) реактора. Технологическая схема представлена на рис. 4.9.
52
Рис. 4.9. Схема формирования сигналов ПС и АС по температуре
53
Задание 2 Транслируйте алгоритмическую схему, созданную в задании № 1,
и получите файлы исходного кода на языке Си.
При трансляции выбирайте целевую платформу ФП4(exe), как пока­зано на рис. 4.9. Добейтесь, чтобы трансляция проходила без ошибок и предупреждений.
Отчет по лабораторной работе необходимо оформлять в электронном
виде (DOC\PDF документ).
КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Перечислите ошибки, которые могут возникнуть при трансляции
технологической схемы на языке ТЕПРОЛ.
2. Возникнет ли ошибка трансляции, если использовать в технологи­ческой схеме сигнал, который не имеет связей с другими элементами схемы?
3. Как исправить ошибку «Найден цикл» в технологической схеме?
4. Укажите имена и расширения файлов, которые будут созданы в случае успешной трансляции файла проекта ТЕПРОЛ «pg_main.ptp».
5. Возникнет ли ошибка трансляции, если поместить на технологиче-
ской схеме алгоритмический модуль, который не имеет связей с другими элементами схемы?
54
5. ИСПОЛЬЗОВАНИЕ НЕСТАНДАРТНЫХ
АЛГОРИТМИЧЕСКИХ МОДУЛЕЙ В ТЕПРОЛ
ОСОБЕННОСТИ РЕАЛИЗАЦИИ АЛГОРИТМИЧЕСКИХ МОДУЛЕЙ
5.1.
НА ЯЗЫКЕ СИ
Каждому алгоритмическому модулю, используемому в технологиче-
ской схеме, соответствует предварительно написанная на языке Си функ-
ция, реализующая алгоритм данного модуля. Каждой функции соответ-
ствует пара файлов «имя_модуля.h» и «имя_модуля.с». В файле «имя_модуля.h» описывается структура модуля, его входные, выходные, настроечные и внутренние сигналы. Пример описания модуля «andn» представлен на рис. 5.1.
При описании модуля используются типы данных psbool, psint и т. д., которые служат для расширения стандартных типов данных языка Си в СПА-ПС путем добавления к каждому сигналу так называемого призна­ка достоверности, представляющего собой специальный байт после поля данных, который указывает, достоверны данные или нет.
Этот признак введен с целью глубокого контроля неисправностей в программном обеспечении СПА-ПС. Если в процессе передачи и обра-
ботки информации ошибок нет, тогда признак достоверности равен 0,
иначе он имеет ненулевое значение (конкретное значение зависит от вида
неисправности).
Рис. 5.1. Заголовочный файл алгоритмического модуля «andn»
55
Все типы данных, обрабатываемые модулями ТЕПРОЛ, также снаб-
жены признаками достоверности. Получив на входе недостоверный сиг-
нал, функция модуля должна соответственно его обработать. Обычно в этом случае выдается недостоверный выход, но есть исключения.
Например, если модуль, реализующий логическую операцию «И» от
двух входов, получает по первому входу недостоверный сигнал, а по вто­рому достоверный нуль, то на выходе должен быть достоверный нуль.
Изначально признаки достоверности устанавливаются драйверами
устройств ввода аналоговых и дискретных сигналов на основе анализа со-
стояния входных цепей и характера изменения входного сигнала. В даль-
нейшем байт достоверности может обрабатываться и присваиваться вы-
ходным сигналам в алгоритмических модулях при возникновении некор-
ректности, например, при делении на ноль.
При запуске САПР ТЕПРОЛ происходит считывание всех файлов
описания («имя_модуля.h») и по комментариям в них определяется имя
модуля, к какому разделу библиотеки модулей он относится, его парамет-
ры и их типы.
Как видно из рис. 5.1, в комментариях, присутствующих в описании
каждого параметра, определяется его тип (входной, выходной или настро-
ечный) и дается комментарий, который будет выводиться при соединении связи с входами модуля.
Так, модуль «andn», представленный на рис. 5.1, относится к разделу «Логические звенья», что определяется строкой «/*Razdel=[Логические звенья]*/». Определение параметра «psbool y; /* name=[y – выходной па­раметр] type=out*/» означает, что логический параметр «у» является вы­ходным в данном модуле.
Для входных параметров используется тип «input», выходных – «output», настроечных – «tune», внутренних (предназначенных для про­межуточного сохранения состояния переменных) – «internal».
Файл программной реализации алгоритма алгоритмического модуля «имя_модуля.с» содержит функцию на языке Си, вызываемую от указате­ля на структуру с параметрами алгоритмического модуля, описанными в заголовочном файле «имя_модуля.h».
56
Данная функция реализует алгоритм, используя параметры, описан-
ные в заголовочном файле, функции языка Си и другие алгоритмические
модули. Как результат работы функции на основе входных и настроечных
параметров присваивается значение выходным параметрам.
Пример файла реализации алгоритмического модуля «andn.с» пред­ставлен на рис. 5.2. Как видно из данного рисунка, реализация алгоритми­ческого модуля представляет собой функцию от указателя andn_s на структуру _lpS_andn.
Данная структура содержит ссылки на входные, выходные, настроеч-
ные и внутренние параметры и описана в заголовочном файле andn.h. Те­ло функции содержит реализацию алгоритма алгоритмического модуля с учетом байта достоверности параметров.
Как результат работы функции происходит инициализация выходных
параметров модуля, которые используются в дальнейшем в других эле-
ментах алгоритмической схемы.
Рис. 5.2. Файл реализации алгоритма алгоритмического модуля «andn»
57
Для реализации алгоритмов на разных целевых платформах файлы
алгоритмических модулей компилируются и собираются в библиотеки
(*.lib) с разными опциями компиляции и трансляции, определяемыми це-
левой платформой.
В дальнейшем сгенерированный файл с технологической схемой
транслируется с соответствующей библиотекой для формирования испол-
няемого файла, загружаемого в контроллер СПА-ПС с целевой конфигу­рацией.
5.2. СОЗДАНИЕ ПОЛЬЗОВАТЕЛЬСКИХ
АЛГОРИТМИЧЕСКИХ МОДУЛЕЙ
Для создания пользовательского алгоритмического модуля необходи­мо подготовить заголовочный файл «имя_модуля.h» и файл с реализацией алгоритма «имя_модуля.с». Заголовочный файл должен соответствовать общему шаблону для заголовочных файлов алгоритмических модулей, как показано на рис. 5.1. Он должен обязательно включать заголовочный файл «spaps.h», в котором определяются основные типы, используемые в САПР ТЕПРОЛ. Также он должен содержать наименование модуля, раздел, к ко-
торому будет относиться вновь создаваемый модуль, а также определение
каждого параметра, входящего в структуру.
Комментарии для каждого параметра должны соответствовать шаблону
«/*name=[имя параметра – комментарий] type=<тип параметра>*/», где имя параметра и комментарий – это текст, который будет выводиться при связы­вании алгоритмического модуля с другими элементами схемы (см. рис. 5.2).
Наименование структуры модуля может быть выбрано произвольно, но
должно соответствовать правилам именования типов в языке Си.
Если будет корректно создан заголовочный файл «имя_модуля.h» для нового пользовательского алгоритмического модуля, то при запуске
58
ТЕПРОЛ будет загружено его описание и он станет полностью доступен
для использования при создании технологических схем и их трансляции.
Типы и определения параметров модуля будут соответствовать тем, что
заданы в комментариях заголовочного файла «имя_модуля.h».
Если вновь созданный модуль окажется не доступен для выбора, то
это означает, что был нарушен общий шаблон заголовочного файла алго-
ритмического модуля. Для создания исполняемых файлов, которые можно
было бы загружать в процессорные модули или в программный имитатор
на ЭВМ необходимо создать файл с исходным кодом «имя_модуля.с», ре-
ализующий алгоритм пользовательского модуля. Данный файл должен
удовлетворять шаблону, представленному на рис. 5.2.
Сигнатура метода должна обязательно соответствовать следующему
формату: «<имя метода>(_lpS_+<имя метода><имя метода>+_S)», где «-_lpS_+<имя метода>» – это указатель на структуру с описанием пара­метров модуля.
Если метод должен вернуть какие-либо значения вызывающей проце-
дуре, то это должно быть реализовано через выходные параметры струк-
туры «<имя метода>+_S». На непосредственную реализацию алгоритма в методе не накладывается каких-то специфических ограничений.
При необходимости учета времени при реализации алгоритма (например, реализации задержки фронта импульсного сигнала и т. п.) есть возможность использовать глобально описанную переменную unsigned long sys_time (которая представляет собой текущее время в миллисекун­дах) и переменную float f_time (которая представляет собой время в мил­лисекундах, прошедшее с предыдущего вызова модуля в предыдущем цикле).
Таким образом, библиотека алгоритмических модулей представляет
гибкий механизм для расширения и реализации алгоритмов различной
степени сложности.
59
5.3. ЛАБОРАТОРНАЯ РАБОТА № 5
Задание 1 Создайте файл «inf.h», как показано на рис. 5.3. В данном файле
должно содержаться описание алгоритмического модуля, который реали-
зует алгоритм нахождения интерполированного значения нелинейной
функции, заданной в табличном виде.
Модуль должен принимать на вход один параметр вещественного ти-
па, два массива вещественного типа с абсциссами опорных точек и с ор-
динатами опорных точек, целочисленный параметр, задающий размер массивов, и один выходной параметр вещественного типа, содержащий интерполированное значение нелинейной функции.
Поместите алгоритмический модуль «inf» в раздел «Нелинейные эле-
менты».
Рис. 5.3. Заголовочный файл алгоритмического модуля «inf»
Задание 2
Создайте в САПР ТЕПРОЛ технологическую схему определения значе­ния физической величины (температуры) с использованием созданного в за­дании № 1 модуля INF. Транслируйте схему и убедитесь, что схема транс­лируется без ошибок и предупреждений. Схема представлена на рис. 5.4.
60
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]