
Министерство науки и образования Российской Федерации
Федеральное государственное бюджетное общеобразовательное учреждение высшего образования
«Уфимский университет науки и технологий»
Кафедра АСУ
Лабораторная работа №4
По дисциплине «Проектирование и эксплуатация АСУТП»
«Программирование алгоритмов управления в АСУ ТП с использованием TRACE MODE 6»
Выполнил:
Ст. гр. ИВТ-329Б Саляхов А.Ф.
Номер з.к.: 17130458
Проверил:
Доцент каф. АСУ Старцев Ю.В.
Уфа 2024
Цель работы: Изучение принципов программирования алгоритмов управления в АСУ ТП с использованием языков FBD и ST. Использование SCADA-системы TRACE MODE 6 для программирования алгоритмов управления.
Задачи: Изучение языка программирования Техно ST, представленного в SCADA-системе TRACE MODE 6. Изучение средств TRACE MODE 6 для составления и запуска программ. Моделирование системы программного управления с ПИД-регулятором с использованием TRACE MODE 6.
Теоретическая часть:
Стандарт IEC 61131–3 описывает синтаксис и семантику пяти языков программирования ПЛК:
Язык последовательных функциональных схем SFC (Sequential Function Chart) – графический язык, позволяет описать логику программы на основе чередующихся процедурных шагов и условных переходов, а также представить последовательно-параллельные задачи в понятной и наглядной форме. Основными элементами языка являются шаг и переход. Шаг представляет собой набор операций над переменными. Переход – набор логических условий, определяющий передачу управления к другому шагу. По внешнему виду описание на языке SFC напоминает хорошо известные логические блок-схемы алгоритмов, при этом SFC предоставляет возможности построения сложных распараллеленных алгоритмов. Язык SFC является наиболее важным из семейства языков стандарта IEC 61131-3. Однако SFC не имеет средств для описания шагов и переходов, и их содержание должно быть выражено средствами других языков стандарта.
Язык функциональных блоковых диаграмм FBD (Function Block Diagrams) – графический язык, позволяет создать программу практически любой сложности с использованием библиотечных функций (арифметических, тригонометрических, строковых) и функциональных блоков (логических, ПИД-регулирования, мультиплексоров и др.). Программа на языке FBD выглядит как набор блоков, между входами/ выходами которых графически установлены связи. Программирование сводится к выбору необходимых библиотечных функций и блоков и соединению их соответствующих входов/выходов. В результате получается максимально наглядная и хорошо контролируемая программа.
Графический язык релейных диаграмм или релейной логики LD (Ladder Diagrams) является стандартизованным вариантом класса языков релейно-контактных схем и применяется для описания логических выражений различного уровня сложности. Логические выражения на этом языке описываются в виде контактов и катушек реле, которые широко применялись в области автоматизации в 60 – 70-х гг. ХХ в. Ввиду своих ограниченных возможностей язык дополнен такими средствами, как таймеры, счётчики и др.
Язык структурированного текста ST (Structured Text) относится к классу текстовых языков высокого уровня и предоставляет булевые и арифметические операторы, оператор ветвления if-then-else, операторы цикла. По мнемонике язык ST похож на Паскаль. На его основе можно создавать гибкие процедуры обработки данных. Язык структурированного текста является основным для программирования последовательных шагов и переходов языка SFC.
Язык инструкций IL (Instruction List) – текстовый язык низкого уровня. Выглядит как типичный язык Ассемблера. Язык IL позволяет создавать эффективные, оптимальные по быстродействию программы.
Для программирования алгоритмов функционирования разрабатываемого проекта АСУ в TRACE MODE 6 включены языки Техно ST, Техно SFC, Техно FBD, Техно LD и Техно IL. Данные языки являются модификациями языков ST, SFC, FBD, LD и IL стандарта IEC61131-3.
Лексическая структура языка Техно ST.
В алфавит языка входят:
прописные и строчные буквы латинского алфавита;
цифры 0, 1, …, 9;
специальные знаки: + - * / < = > ! : & | ^ ∼ % ( ) [ ] , ; #
Из символов алфавита формируются лексемы языка:
идентификаторы;
ключевые слова;
числовые и строковые константы;
символьные операторы (знаки операций);
разделители;
комментарии.
Ключевые слова Техно ST.
Ключевые (служебные) слова – это идентификаторы, зарезервированные в языке для специального использования.
Список ключевых слов языка Техно ST:
and, array, bool, break, by, byte, case, constant, continue, date, date_and_time, dint, do, dt, dword, else, elsif, end_case, end_for, end_function, end_function_block, end_if, end_program, end_repeat, end_struct, end_type, end_var, end_while, exit, false, for, function, function_block, goto, handle, if, int, lreal, mod, not, of, or, program, real, repeat, return, rol, ror, shl, shr, sint, string, struct, time, time_of_day, to, tod, true, type, udint, uint, until, usint, var, var_arg, var_global, var_inout, var_input, var_output, while, word, xor.
Кроме того, к ключевым словам относятся имена функций языка C, которые могут быть использованы в ST-программе.
Пользовательские функции Техно ST.
В Техно ST определены две разновидности пользовательских функций: собственно функция и функция-блок. Функция-блок играет роль подпрограммы, т.е. не возвращает значений.
Функции и функции-блоки создаются с помощью табличного редактора. Если при создании указан тип данного компонента, создается функция, в противном случае – функция-блок.
Определение функции и функции-блока.
Синтаксис:
function {имя} : {тип возвращаемого значения}
{определение аргументов}
{список предложений}
end_function
function_block {имя}
{определение аргументов}
{список предложений}
end_function_block
Эти конструкции создаются автоматически при создании функции и функции-блока в табличном редакторе.
Задание:
6.1. Проект, созданный в ходе выполнения лабораторной работы № 3, подготовить для выполнения лабораторной работы № 4 и сохранить в виде нового проекта.
6.2. В программу на языке FBD, реализующую динамическую модель системы управления, добавить пользовательский блок формирования уставки. Он должен:
установить программным способом значения коэффициентов и ограничений ПИД-регулятора,
реализовать функцию формирования уставки, значение которой меняется во времени по заданному закону.
6.3. Уставка во времени должна непрерывно циклически изменяться, последовательно проходя четыре цикла, и затем повторяя их без ограничения по времени. Длительность каждого цикла задается количеством тактов пересчета. Каждый цикл представляет собой типовое управляющее воздействие – либо ступенчатое воздействие, либо типовую функцию времени. Варианты заданий на параметры изменения уставки во времени приведены в табл. 4.1. Номер индивидуального варианта N для студента вычисляется по двум последним цифрам XY номера зачетной книжки по формуле:
N = (XY mod 6) + 1
N = (58 mod 6) + 1 = 5.
Последняя цифра Y также используется для индивидуализации варианта задания.
Номер варианта |
Цикл 1 |
Цикл 2 |
Цикл 3 |
Цикл 4 |
5 |
Ступенчатое воздействие: величина 20%; длительность 60 тактов |
Экспоненциальное воздействие от 80% до 50%; длительность (60 + 2*Y) тактов |
Логарифмически изменяющееся воздействие от 20% до 50%; длительность 70 тактов |
Ступенчатое воздействие: величина 80%; длительность (60 – Y) тактов |
Ход работы и результаты моделирования:
Создана пользовательскую функцию для автоматического пересчета уставки, добавлены ее аргументы, созданы глобальные переменные.
Для аргументов программы FBD изменены тип параметров ПИД-регулятора и уставки на IN/OUT. В программе FBD созданы глобальные переменные:
• для номера цикла – целого типа с начальным значением 0;
• для номера такта – целого типа с начальным значением 0;
• для значения уставки – действительного типа с начальным значением 0.
Изменена FBD-диаграмма путем добавления пользовательского блока новой функции, изменены типы аргументов на вход/выход, переделаны привязки.
Рисунок 1 – FBD-диаграмма
Код программы, реализующий изменение уставки согласно варианту.
Рисунок 2 – код программы на языке Техно ST
Переходная характеристика:
Рисунок 3 – действие первого цикла (ступенчатое воздействие до 20) и переход на второй (экспоненциальное воздействие с 80 до 50)
Рисунок 4 – действие второго цикла (экспоненцциальное воздействие с 80 до 50) и переход на третий (логарифмическое воздействие с 20 до 50)
Рисунок 5 - действие третьего цикла (логарифмическое воздействие с 20 до 50) и переход на четвертый (ступенчатое воздействие до 20)
Рисунок 6 - действие четвертого цикла (ступенчатое воздействие до 80) и переход на первый (ступенчатое воздействие до 20)
Вывод: в ходе данной лабораторной работы были изучены принципы программирования алгоритмов управления в АСУ ТП с использованием языков FBD и ST, а также использована SCADA-система TRACE MODE 6 для программирования алгоритмов управления.