Главная страница

лабораторные_scada. Методические указания к лабораторным работам Составители И. П. Ефимов Д. А. Солуянов Ульяновск 2010


Скачать 2.86 Mb.
НазваниеМетодические указания к лабораторным работам Составители И. П. Ефимов Д. А. Солуянов Ульяновск 2010
Дата25.10.2022
Размер2.86 Mb.
Формат файлаpdf
Имя файлалабораторные_scada.pdf
ТипМетодические указания
#753648
страница6 из 7
1   2   3   4   5   6   7
глобальные переменные. Аналогично созданию аргументов создайте глобальную переменную, которая будет хранить значение суммарного расхода, вычисленного при предыдущем вызове программы, указав начальное значение равным нулю (рис. 3.55).
Рис. 3.55 Глобальная переменная
Выделите строку программа#. В открывшемся окне наберите
STпрограмму. При указанных выше именах аргументов и глобальной переменной текст программы примет вид, указанный на рис. 3/56.
Рис. 3.56 Программа на языке Texno ST
Проверьте программу, щелкнув левой клавишей мыши по иконке

125 8.
Запустите
проект. Запустите проект, аналогично предыдущим работам (см. работу 1). Пример результата запуска приведен на рис. 3.57
Рис. 2.54 Пример результата запуска проекта

126
Вопросы
для самоконтроля:
1.
Опишите создание объекта кнопка и ее редактирование.
2.
Опишите создание программы в среде Trace Mode.
3.
Опишите создание атрибутов программы и переменных.
4.
Опишите правила создания числовых констант.
5.
Опишите правила создания строковых констант.
6.
Синтаксис, назначение оператора if в языке ST.
7.
Синтаксис, назначение оператора case в языке ST.
8.
Синтаксис, назначение оператора whule в языке ST.
9.
Синтаксис, назначение оператора repeat в языке ST.
10.
Синтаксис, назначение оператора for в языке ST.
11.
Что представляет из себя FBD программа и как она работает?
12.
Опишите выбор FBD блока, размещение его на рабочем поле.
13.
Опишите привязку FBD блока к переменным, атрибутам, создание констант.
14.
Какие группы языков программирования можно выделить в
SCADA-системах?
15.
Приведите примеры графических языков программирования.
16.

127
Работа
4 Программирование на языках
Texno IL и Texno SFC
Цель
работы: изучить языки программирования Texno IL и Texno SFC, создать АСУ ТП, с использованием указанных языков Texno IL, SFC, FBD.
Задание
:
1.
взять за основу АСУ ТП, созданную при выполнении третьей лабораторной работы (программирование в среде Trace Mode на языках
Texno ST и Texno FBD). Удалить обе программы, написанные на языках
Texno ST и Texno FBD;
2.
добавить выключатель на экране, создать канал, определяющий необходимость определения суммарного расхода и суммарной стоимости продукта и к которому производится привязка выключателя;
3.
создать программу на языке Texno SFC, которая будет содержать следующие шаги и переходы:
3.1
первый шаг: выполнение проверок значения периода дискретизации и значения расхода, стоимости продукта на языке Texno
IL; если период дискретизации окажется меньше 10, то установите значение по умолчанию (10), если расход или стоимость продукта окажутся меньше 1, то установите соответствующий параметр равным 1, измененные значения программа должна возвращать соответствующим каналам;
3.2
Второй шаг: генерирование уровня в емкости на языке
Texno FBD аналогично третьей лабораторной работе без проверки периода генерации (он проверен на первом шаге); в качестве условия перехода следует записать константу true;
3.3
третий шаг: выполняемый, когда выключатель возвращает
1, реализованный, с использованием языка Texno IL: вычисление суммарного расхода, суммарной стоимости продукта аналогично третьей лабораторной работе с использованием глобальной переменной для хранения предыдущего значения суммарного расхода, вычисленные

128 значения суммарного расхода, суммарной стоимости программа должна возвращать соответствующим каналам;
3.4
четвертый шаг: выполняемый, когда выключатель возвращает 0, реализованный с помощью языка Texno IL: вычисляется суммарный расход продукта, результат вычисления не возвращается программой соответствующему каналу, а только присваивается глобальной переменной, предназначенной для хранения предыдущего значения суммарного расход.
Примечание
: период пересчета у всех каналов, программы, должен быть один и тот же в пределах 1— 3 с.
Ход
работы
1.
Создание
проекта. Сохраните проект, созданный в ходе выполнения работы 3 под новым именем. Удалите обе программы.
2.
Создание
выключателя. Создайте еще один канал . Установите период пересчета равным 1 секунде. Для удобства восприятия назовем новый канал «выключатель». Для создания выключателя необходимо щелкнуть левой клавишей мыши по иконке выключателя на рабочем столе. На панели инструментов может быть одна из следующих иконок: , , , , ,
, ,
. Все приведенные переключатели обладают одинаковыми возможностями.
Поэтому не важно, какой переключатель будет расположен на экране.
Достаточно выбрать тот, который размещен на панели инструментов. После выбора инструмента для создания выключателя щелкните левой клавишей мыши там, где хотите поместить выключатель. Пример размещения выключателя приведен на рис. 2.55.
Рис. 3.55 Размещение переключателя

129
Откройте окно свойств объекта «выключатель». Произведите настройку, как показано на рис. 3.56, где Выключатель_b1— аргумент, который служит для привязки к первому биту канала выключатель(рис. 3.57).
Рис. 3.56 Настройка переключателя
Рис. 3.57 Аргументы экрана
3.
Создание
SFC диаграммы. Создайте объект программа .
Создайте атрибуты, аналогично работе 3. Помимо атрибутов, использовавшихся в программах работы 3, понадобится атрибут, передающий в программу реальное значение канала, который хранит состояние выключателя. Пример создания атрибутов приведен на рис. 3.58.
Создайте глобальную переменную, для хранения результата вычисления суммарного расхода при предыдущем вызове программы (рис. 3.55).
Выделите строку программа# в структуре программы. Среди предложенных языков программирования выберите SFC диаграмму. На рабочем поле отображается только один шаг: начальный шаг (рис. 3.59).
Дважды щелкните по данному шагу левой клавишей мыши. Введите новое имя шага, к примеру, «проверка исходных данных». Для создания нового шага выделите единственный существующий шаг. Щелкните левой клавишей мыши по иконке или вызовите контекстное меню и выберите
создать
шаг/переход. Будет создан новый шаг и переход. Двойным

130 щелчком по созданному шагу и переходу измените их имя. Шаг можно назвать как «генерирование сигнала», к примеру, переход— «true». Выделите шаг «генерирование сигнала» и создайте новый шаг и переход. Созданный шаг и переход можно назвать как «полный расчет» и «реальное значение выключателя», к примеру. Выделите шаг «генерирование сигнала». Создайте новый шаг и переход. Новый шаг и переход можно назвать как «расчет только предыдущего значения суммарного значения» и «реальное значение выключателя с отрицанием», к примеру. Внешний вид созданной
SFC диаграммы приведен на рис. 3.60.
Рис. 3.58 Аргументы программы
Рис. 3.59 Новая программа на языке Texno SFC

131
Рис. 3.60 Программа на языке SFC
4.
Создание шагов a.
Создание
шага «проверка исходных данных».В структуре программы раскройте раздел SFC диаграмма. Раскройте раздел шаги и
переходы
. Выделите строку проверка исходных данных. Среди предложенных языков выберите TexnoIL.
При указанных выше именах атрибутов и глобальной переменной текст программы, производящей проверку исходных данных примет вид:
SFC_STEP "Проверка исходных данных"
VAR_OUTPUT Уровень : REAL; END_VAR
VAR_INOUT Период_генерации : REAL; END_VAR
VAR_INOUT Расход : REAL; END_VAR
VAR_INOUT Стоимость : REAL; END_VAR
VAR_INPUT Период_пересчета : REAL; END_VAR
VAR_OUTPUT Суммарный_расход : REAL; END_VAR
VAR_OUTPUT Суммарная_стоимость : REAL; END_VAR
VAR_INPUT Выключатель : REAL; END_VAR
GE Расход 1//проверка расхода
JMPC Проверка_стоимости//переход к проверке стоимости при расходе > 1
LD 1

132
ST Расход//Расход по умолчанию
Проверка_стоимости: GE Стоимость 1
JMPC Проверка_периода//переход к проверке периода генерации, когда стоимость > 1
LD 1
ST Стоимость//Стоимость по умолчанию
Проверка_периода: GE Период_генерации 10
JMPC конец//выход при периоде > 10
LD 10
ST Период_генерации//Период генерации по умолчанию конец:
END_SFC_STEP b.
Создание
шага «генерирование сигнала». Выделите строчку
генерирование
сигнала. Среди предложенных языков выберите FBD.
Создайте FBD программу, как показано на рис. 3.61
Рис. 3.61 Шаг для генерации сигнала
Для создания перехода к созданному шагу выделите строчку true в разделе переходы. среди предложенных языков выберите ST. Текст программы примет вид:
SFC_TRANSITION "true" FROM( INITIAL_STEP ) TO(
STEP_1 )
VAR_OUTPUT Уровень : REAL; END_VAR
VAR_INOUT Период_генерации : REAL; END_VAR
VAR_INOUT Расход : REAL; END_VAR
VAR_INOUT Стоимость : REAL; END_VAR
VAR_INPUT Период_пересчета : REAL; END_VAR

133
VAR_OUTPUT Суммарный_расход : REAL; END_VAR
VAR_OUTPUT Суммарная_стоимость : REAL; END_VAR
VAR_INPUT Выключатель : REAL; END_VAR true
END_SFC_TRANSITION c.
Создание
шага «полный расчет». Выберите строку
полный
расчет. Среди предложенных языков выберите IL. Текст программы примет вид:
SFC_STEP "Полный расчет"
VAR_OUTPUT Уровень : REAL; END_VAR
VAR_INOUT Период_генерации : REAL; END_VAR
VAR_INOUT Расход : REAL; END_VAR
VAR_INOUT Стоимость : REAL; END_VAR
VAR_INPUT Период_пересчета : REAL; END_VAR
VAR_OUTPUT Суммарный_расход : REAL; END_VAR
VAR_OUTPUT Суммарная_стоимость : REAL; END_VAR
VAR_INPUT Выключатель: REAL; END_VAR
MUL Период_пересчета Расход//вычисление расхода за период пересчета
ADD Предыдущий_суммарный_расход//Нахождение суммарного расхода
ST Предыдущий_суммарный_расход//присвоение вычисленного значения суммарного расчета
ST Суммарный_расход
MUL Стоимость//вычисление суммарной стоимости
ST Суммарная_стоимость//присвоение аргументу результата вычисления суммарной стоимости
END_SFC_STEP
Для создания перехода к созданному шагу выделите строку реальное
значение
выключателя. Среди предложенных языков выберите ST. Текст программы примет вид:

134
SFC_TRANSITION "Реальное значение выключателя" FROM(
STEP_1 ) TO( STEP_2 )
VAR_OUTPUT Уровень : REAL; END_VAR
VAR_INOUT Период_генерации : REAL; END_VAR
VAR_INOUT Расход : REAL; END_VAR
VAR_INOUT Стоимость : REAL; END_VAR
VAR_INPUT Период_пересчета : REAL; END_VAR
VAR_OUTPUT Суммарный_расход : REAL; END_VAR
VAR_OUTPUT Суммарная_стоимость : REAL; END_VAR
VAR_INPUT Выключатель : BOOL; END_VAR
Выключатель
END_SFC_TRANSITION d.
Создание шага «расчет только предыдущего значения суммарного расчета». Выделите строку расчет только предыдущего
значения
суммарного расчета. Среди предложенных языков выберите IL.
Текст программы примет вид:
SFC_STEP "Расчет только предыдущего значения суммарного расхода"
VAR_OUTPUT Уровень : REAL; END_VAR
VAR_INOUT Период_генерации : REAL; END_VAR
VAR_INOUT Расход : REAL; END_VAR
VAR_INOUT Стоимость : REAL; END_VAR
VAR_INPUT Период_пересчета : REAL; END_VAR
VAR_OUTPUT Суммарный_расход : REAL; END_VAR
VAR_OUTPUT Суммарная_стоимость : REAL; END_VAR
VAR_INPUT Выключатель : REAL; END_VAR
MUL Период_пересчета Расход//вычисление расхода за период пересчета
ADD Предыдущий_суммарный_расход//Нахождение суммарного расхода
END_SFC_STEP

135
Для создания перехода к созданному шагу выделите строку реальное
значение
выключателя с отрицанием. Среди предложенных языков выберите ST. Текст программы примет вид:
SFC_TRANSITION "Реальное значение выключателя с отрицанием" FROM( STEP_1 ) TO( STEP_3 )
VAR_OUTPUT Уровень : REAL; END_VAR
VAR_INOUT Период_генерации : REAL; END_VAR
VAR_INOUT Расход : REAL; END_VAR
VAR_INOUT Стоимость : REAL; END_VAR
VAR_INPUT Период_пересчета : REAL; END_VAR
VAR_OUTPUT Суммарный_расход : REAL; END_VAR
VAR_OUTPUT Суммарная_стоимость : REAL; END_VAR
VAR_INPUT Выключатель : BOOL; END_VAR
!Выключатель
END_SFC_TRANSITION
5.
Запуск
проекта. Запустите проект аналогично первой работе.
При обоих положениях переключателя должно происходить заполнение емкости аналогично работе 3. При одном из положений переключателя должен производиться вывод новых полученных значений суммарного расхода и стоимости, при другом— новые значения суммарного расхода и стоимости не выводится.
Рис. 3.62 Пример исполнения программы

136
Вопросы
для самоконтроля
1.
Что представляет из себя SFC программа и как она работает.
2.
Опишите создание нового шага, цикла, параллельных шагов.
3.
Опишите операнды и модификаторы языка IL.
4.
Опишите синтаксис и назначения операторов для обмена данными с аккумулятором.
5.
Опишите синтаксис и назначение арифметических операторов.
6.
Опишите синтаксис и назначение операторов перехода и вызова.
7.
Что такое аккумулятор в языке IL и как с ним работать.
8.
Какие группы языков программирования можно выделить в
SCADA-системах?
9.
Приведите примеры графических языков программирования.
Работа
5 Программирование на языках
Создание
отчета тревог и СПАД архива
Цель
работы: познакомиться с отчетом тревог, СПАД архивом, создать отчет тревог, архив значений.
Задание
:
1.
взять за основу четвертую лабораторную работу
(программирование в середе Trace Mode на языках Texno IL и Texno SFC);
2.
заменить тренд на архивный тренд;
3.
настроить анализ границ канала, передающего уровень продукта в емкости;

137 4.
создать словарь сообщений для канала, передающего уровень продукта в емкости, настроить узел для создания отчета тревог;
5.
изменить динамическую заливку емкости изображением на заливку цветом и настроить выбор цвета в соответствии с принадлежностью значения уровня тому или иному диапазону;
6.
настроить SPAD архивирование канала, хранящего уровень продукта.
Ход
работы
1.
Создание
проекта
Сохраните проект, созданный при выполнении работы №4. Удалите тренд. Разместите на экране архивный тренд, который настройте на вывод уровня продукта в емкости. Желательно изменить период колебаний по умолчанию с 10 на 40. Шаг, производящий проверку исходных данных примет вид:
SFC_STEP "Проверка исходных данных"
VAR_OUTPUT Уровень : REAL; END_VAR
VAR_INOUT Период_генерации : REAL; END_VAR
VAR_INOUT Расход : REAL; END_VAR
VAR_INOUT Стоимость : REAL; END_VAR
VAR_INPUT Период_пересчета : REAL; END_VAR
VAR_OUTPUT Суммарный_расход : REAL; END_VAR
VAR_OUTPUT Суммарная_стоимость : REAL; END_VAR
VAR_INPUT Выключатель : BOOL; END_VAR
GE Расход 1
JMPC Проверка_стоимости

138
LD 1
ST Расход
Проверка_стоимости: GE Стоимость 1
JMPC Проверка_периода
LD 1
ST Стоимость
Проверка_периода: GE Период_генерации 10
JMPC Конец
LD 40
ST Период_генерации
Конец:
END_SFC_STEP
2.
Настройка
контроля границ. Выделите канала уровень в группе
каналы
RTM узла и вызовите контекстное меню. Выберите строку
редактировать
в появившемся меню. На панели границы поставьте флаг
использовать
, установите границы диапазонов, как показано на рис. 3.63.
Установите флаг контроль границ.
Рис. 3.63 Задание границ канала
3.
Создание
словаря сообщений. Выделите узел RTM и вызовите контекстное меню (рис. 3.64). Выберите строку создать группу. Среди

139 предложенных групп выберите строку словари_сообщений. Выделите созданную группу словари_сообщений и вызовите контекстное меню. Среди предложенных словарей выберите словарь_для_FLOAT (рис. 3.65).
Рис. 3.64 Создание группы для словарей сообщений
Рис. 3.65 Создание словаря сообщений
4.
Редактирование
словаря. Двойным щелчком по созданному словарю сообщений или выделив его, вызвав контекстное меню и выбрав
редактировать
откройте окно для редактирования словаря. В поле имя введите имя словаря. Двойным щелчком левой клавиши мыши на каждой строчке откройте окно для редактирования сообщения (рис. 3.66). Редактируя все сообщения, настройте словарь сообщений, как показано на рис. 3.67

140
Рис. 3.66 Окно для задания сообщения
Рис. 3.67 Редактор словаря сообщений
5.
Редактирование
узла
.
Выделите узел
RTM.
Вызовите контекстное меню и выберите редактировать. Перейдите на закладку
отчет
тревог/дамп/параметры. Произведите заполнение полей, как показано на рис. 3.68. Перейдите на закладку архивы. Произведите заполнение полей, как показано на рис. 3.69.

141 6.
Рис. 3.68 Редактирование узла
Рис. 3.69 Редактирования узла
7.
Редактирование
1   2   3   4   5   6   7


написать администратору сайта