Файл: Микропроцессорная техника систем автоматизации. Лабораторный практикум.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 25.10.2023
Просмотров: 235
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Задача упаковки кубиков
Имеется линия для упаковки кубиков в коробки (рис. 18).
Кубики упаковываются по коробкам. Кубики автоматически подаются по конвейеру, если он включен. В каждую коробку необходимо разместить строго определенное количество кубиков.
Лишние кубики будут выпадать из коробки. Необходимо так производить упаковку кубиков, чтобы ни один из них не выпал из коробки.
Входы:
I0.0 – кубик на конвейере;
I0.1 – коробка не заполнена.
Выходы:
Q0.0 – включить конвейер;
Q0.1 – установить новую коробку.
54
Постановка задачи
В каждую коробку должно попадать по 5 кубиков. Как только нужное число кубиков поступит в коробку, конвейер останавливается.
После заполнения очередной коробки поступает сигнал (Q0.1) на установку новой коробки, и конвейер включается снова.
Рис. 18. Конвейер для упаковки кубиков
Содержание отчета
1. Название и цель работы.
2. Схемы подключения дискретных входов и выходов к контроллеру.
3. Временные диаграммы изменения сигналов на входах и выходах блоков CTU, CTD, CTUD.
4. Выводы.
Контрольные вопросы
1. Для каких целей используются счетчики в программах ПЛК?
2. Какие счетчики реализованы в ПЛК S7-1200?
55
ЛАБОРАТОРНАЯ РАБОТА № 5
РАЗРАБОТКА ПРОГРАММЫ ПЛК С РЕАЛИЗАЦИЕЙ
ФУНКЦИЙ
ОБРАБОТКИ ДАННЫХ О ВРЕМЕНИ И ДАТЕ
Цель работы:изучение функций ПЛК для обработки данных о времени и дате.
Информация для выполнения лабораторной работы
В Simatic Step 7 для хранения сведений о времени и дате предусмотрены следующие типы данных.
DATE.
Переменные этого типа данных используются для хранения даты в формате «гггг-мм-дд». Переменная типа DATE фактически представляет собой беззнаковое (неотрицательное) целое число, равное числу дней, прошедших от даты 01-01-1990. Диапазон возможных значений переменной – от 01-01-1990 до 31-12-2168.
Значение такой переменной может быть записано в программе одним из двух способов:
· с явным указанием типа данных в формате «гггг-мм-дд», например, D#1990-01-01, или DATE#2016-05-23;
· в виде шестнадцатиричного целого числа дней, прошедших, начиная с 01-01-1190, например, 16#00F2.
TIME_OF_DAY (TOD).
Переменные этого типа имеют размер двойного слова (т. е. 4 байта) и представляют собой число миллисекунд, прошедших с момента начала суток. Значение такой переменной в программе записывается в формате
«TOD#часы:минуты:секунды.миллисекунды», например,
TOD#10:20:30.400. Диапазон возможных значений переменной типа
TOD, очевидно, равен от TOD#00:00:00.000 до TOD#23:59:59.999.
DATE_AND_TIME.
Переменные типа DATE_AND_TIME (date and time of day) содержат сведения о дате и времени суток в формате BCD. Длина переменной – 8 байт. Структура данных, хранимых в каждом из байтов, приведена в табл. 17.
56
Таблица 17
Структура переменной типа DATE_AND_TIME
Номер байта
Содержимое байта
Диапазон значений
0 год от 0 до 99
(годы от 1990 до
2089)
1 месяц от 0 до 12 2 день от 1 до 31 3 час от 0 до 23 4 минута от 0 до 59 5 секунда от 0 до 59 6 две старшие цифры разряда миллисекунд от 0 до 99 7 (старшие
4 бита) младшая (третья) цифра разряда миллисекунд от 0 до 9 7 (младшие
4 бита) день недели от 1 до 7
Диапазон возможных значений – от DT#1990-01-01-00:00:00.000 до DT#2089-12-31-23:59:59.999.
DTL (date and time long).
Переменная такого типа имеет длину 12 байт и хранит информацию о времени и дате в виде следующей структуры (табл. 18).
Таблица 18
Структура переменной типа DT
Номер байта
Содержимое байта
Тип данного
Диапазон значений
0 1 год
UINT
1970 – 2200 2 месяц
USINT
1 – 12 3 день
USINT
1 – 31 4 день недели
USINT
1 (вс.) – 7 (сб.) день недели не указывается явно при записи переменной в программе
5 час
USINT
0 – 23
57
Окончание таблицы 18
Номер байта
Содержимое байта
Тип данного
Диапазон значений
6 минута
USINT
0 – 59 7 секунда
USINT
0 – 59 8
9 10 11 наносекунды
UDINT
0 – 999999999
Диапазон возможных значений – от DTL#1970-01-01-00:00:00.0 до DTL#2200-12-31-23:59:59.999999999. Пример записи в программе: DTL#2008-12-31-20:15:45.250.
Для обработки данных о времени и дате в Simatic Step 7 реализованы следующие основные системные функции, расположенные в среде
TIA
Portal на вкладке
Instructions→Extended instructions→Date and time-of-day.
RD_SYS_T.
Считывание системного времени (read system time) – данная функция считывает текущее системное время со встроенных в ПЛК часов реального времени. Данная функция имеет выходной параметр
OUT типа DTL: в переменную, указанную в качестве этого параметра, записывается считанное значение системного времени. Результатом выполнения функции RD_SYS_T является возвращаемое ей значение
RET_VAL – целое число типа Int, по смыслу представляющее собой код ошибки выполнения функции (табл. 19Ошибка! Источник
ссылки не найден.).
Таблица 19
Возможные значения RET_VAL
Код ошибки: число типа
Int в 16-ричной форме
(W#16#)
Описание
0000
Нет ошибки
8081
Полученное значение времени не соответствует интервалу допустимых значений для типа DTL, т. е. меньше
DTL#1970-01-01-00:00:00.0 либо больше
DTL#2200-12-31-23:59:59.999999999
58
Значение системного времени является внутренней характеристикой
ПЛК, по смыслу представляет собой скоординированное универсальное (всемирное) время (Universal
Time Coordinated, UTC) и не учитывает ни местного часового пояса, ни переходов на зимнее время и обратно. Поэтому для практических задач большее значение имеет следующая функция:
RD_LOC_T.
Считывание местного времени (read local time) – данная функция считывает текущее местное время со встроенных в ПЛК часов реального времени. При этом сначала происходит считывание системного времени, которое затем преобразуется программой в местное время с учетом данных настроек ПЛК о часовом поясе и режиме автоматического перехода на зимнее время и обратно. Данная функция имеет выходной параметр OUT типа DTL: в переменную, указанную в качестве этого параметра, записывается считанное значение местного времени. Результатом выполнения функции
RD_LOC_T является возвращаемое ей значение RET_VAL – целое число типа Int, по смыслу представляющее собой код ошибки выполнения функции (табл. 20).
Таблица 20
Возможные значения RET_VAL
Код ошибки: число
типа Int в 16-ричной
форме (W#16#)
Описание
0000
Нет ошибки
0001
Нет ошибки. Включен автоматический переход на зимнее время и обратно
8080
Местное время не может быть считано
8081
Недопустимое значение года
8082
Недопустимое значение месяца
8083
Недопустимое значение дня
8084
Недопустимое значение часа
8085
Недопустимое значение минуты
8086
Недопустимое значение секунды
8087
Недопустимое значение наносекунды
80В0
Часы реального времени вышли из строя
59
T_CONV.
Преобразование времени (Time Convertation) – эта функция выполняет преобразование данных о времени и дате из одного типа данных в другой. Например, определения текущего времени суток сначала необходимо с помощью функции RD_LOC_T считать локальное время и дату в переменную типа DTL, а затем с помощью функции T_CONV преобразовать эту переменную к переменной типа TIME_OF_DAY (TOD).
T_ADD.
Функция T_ADD (сложение времен) складывает входное значение IN1 (типа данных DTL или Time) с входным значением
IN2 (тип Time). Возвращаемое функцией выходное значение OUT имеет тип данных DTL или Time. Возможны операции с двумя типами данных:
Time + Time = Time;
DTL + Time = DTL.
T_SUB.
Функция T_ SUB (вычитание времени) вычитает значение типа
Time (входной параметр IN2) из значения типа DTL или Time
(входной параметр IN1). Возвращаемое функцией выходное значение OUT выдает значение разности, используя тип данных
DTL или Time.
Возможны операции с двумя типами данных:
Time – Time = Time;
DTL – Time = DTL.
T_DIFF.
Функция T_ DIFF (разность времен) вычитает значение типа
DTL (входной параметр IN2) из значения типа DTL (входной параметр IN1). Возвращаемое функцией выходное значение OUT выдает значение разности, используя тип данных Time:
DTL – DTL = Time.
Порядок выполнения лабораторной работы
В процессе выполнения лабораторной работы для приобретения навыков использования функций обработки информации о времени и дате необходимо разработать в среде TIA Portal проект для ПЛК
60
Simatic S7-1200, реализующий решение описанной ниже задачи управления отоплением производственного служебного помещения.
Созданную программу необходимо откомпилировать, загрузить в
ПЛК и исследовать ее работу на лабораторном стенде.
Задача управления отоплением
Для экономии тепловых ресурсов, затрачиваемых на обогрев служебного помещения (например, офиса или цеха), необходимо, чтобы система отопления работала в номинальном режиме
(Q0.0 = TRUE) только в холодный сезон года (с октября по март, включительно), в рабочие дни недели в рабочее время суток, т. е. когда в помещении могут находиться сотрудники. В остальное время система отопления должна работать в режиме экономии
(Q0.0 = FALSE).
Создание проекта
Запуск интегрированной среды разработки TIA Portal V13, создание в ней нового проекта и конфигурация используемого аппаратного оборудования описаны на стр. 19.
Для определения символьных имен используемых в программе переменных выбрать в дереве проекта (Project tree) пункт
PLC_1→PLC tags→Default tag table, открыть таблицу символьных имен переменных, в которой определить символьные имена для следующих переменных (табл. 21).
Таблица 21
Символьные имена используемых в проекте переменных
Name
Data Type
Logical
Address
Comment t
Time_Of_Day
%MD11
Время суток
WorkTime
Bool
%M16.0
Рабочее время суток
WorkDay
Bool
%M16.1
Рабочий день недели
HeatingOn
Bool
%Q0.0
Включение отопления
ColdSeason
Bool
%M16.2
Холодное время года
Далее в этой же таблице символьных имен Default tag table нужно перейти с вкладки Tags (для переменных) на вкладку
61
User constants (постоянные пользователя) и определить символьные имена и значения следующих констант, которые будут необходимы в программе (табл. 22).
Таблица 22
Символьные имена используемых в проекте констант
Name
Data Type
Value
Comment
BeginTime
Time_Of_Day
TOD#08:00:
00.000
Время включения отопления
EndTime
Time_Of_Day
TOD#18:00:
00.000
Время отключения отопления
Monday
USInt
2
Понедельник
Friday
USInt
6
Пятница
Далее необходимо добавить в проект новый кодовый блок типа
Organization Block, Program cycle – организационный блок циклического исполнения с вводом программы на языке SCL.
Необходимые для этого действия описаны на стр. 20.
В программе, очевидно, придется использовать функцию
RD_LOC_T считывания текущего местного времени и даты. Для работы этой функции, как было сказано выше, необходима переменная типа DTL, которая должна быть указана в качестве параметра функции и в которую будет помещаться считанное значение. Однако поскольку переменная типа DTL представляет собой сложную структуру данных (см. табл. 18), она не может быть определена в М-области памяти контроллера. Поэтому данную переменную следует определить в области временной локальной памяти (см. стр. 31) созданного организационного кодового блока.
Таблица для определения символьных имен локальных переменных и констант кодового блока находится над рабочим окном ввода текста программы (рис. 19). В данной таблице, как показано на рисунке, нужно определить имена двух локальных переменных, необходимых для работы функции RD_LOC_T: переменной RET_VAL типа Int и переменной d типа DTL.
62
Рис. 19. Рабочее окно ввода программы и таблица локальных данных кодового блока
Как видно на рис. 19, слева от имени переменной ″d″ имеется маленький треугольный указатель вправо. Этот указатель свидетельствует о том, что переменная ″d″ является сложной структурой данных. Нажав на него левой клавишей мыши, можно
«развернуть» структуру ″d″ и получить подстрочное отображение информации обо всех составляющих ее компонентах.
Далее в программу нужно добавить следующий код с комментариями. Необходимо помнить, что вводить названия системных функций, в данной программе это RD_LOC_T и
DTL_TO_TOD, следует методом перетаскивания их мышью с вкладки инструкций Instrucions→Extended instructions→Date and time-of-day в нужное место программы. Так, для ввода функции DTL_TO_TOD
(преобразование из типа данных DTL к типу TOD) во второй строке программы нужно вставить в это место описанную выше функцию
T_CONV. При вставке появится маленькое диалоговое окно T_CONV, в котором потребуется указать тип входного и выходного параметров:
DTL в поле Source type и TOD в поле Target type.
Код программы исследования работы таймеров на языке SСL
#ret_val := RD_LOC_T(#d); // определение текущего времени и даты "t" := DTL_TO_TOD(#d); // определение времени суток
63
// рабочий день недели - WorkDay=TRUE, выходной
- FALSE
"WorkDay" := (#d.WEEKDAY>="Monday") AND
(#d.WEEKDAY<="Friday");
// рабочее время суток - WorkTime=TRUE, нерабочее - FALSE
"WorkTime" := ("t">="BeginTime") AND
("t"<="EndTime");
// холодное время года - с октября по март включительно "ColdSeason" := (#d.MONTH>9) OR (#d.MONTH<4);
// включение отопления - в холодное время года,
// в рабочий день недели,
// в рабочее время суток "HeatingOn" := "ColdSeason" AND "WorkDay" AND
"WorkTime";
Загрузить программу в ПЛК и исследовать ее работу на стенде.
Переопределить значения используемых в программе констант
(табл. 22Ошибка! Источник ссылки не найден.) таким образом, чтобы включение либо отключение отопления можно было бы наблюдать в настоящий момент. Повторно загрузить программу в контроллер и понаблюдать за включением и отключением отопления.
Продемонстрировать работу программы преподавателю.
Содержание отчета
1. Название и цель работы.
2. Схема подключения дискретного выхода к контроллеру.
3. Выводы.
Контрольные вопросы
1. Какие типы данных для хранения информации о времени и дате предусмотрены в ПЛК S7-1200?
2. Какие системные функции обработки данных о времени и дате реализованы в ПЛК S7-1200?
64
ЛАБОРАТОРНАЯ РАБОТА № 6
СРЕДСТВА ВИЗУАЛИЗАЦИИ ЧЕЛОВЕКО-МАШИННОГО
ИНТЕРФЕЙСА. ОРГАНИЗАЦИЯ ЦИФРОВЫХ ПОЛЕЙ
ВВОДА/ВЫВОДА НА ДИСПЛЕЕ ПАНЕЛИ
Цель работы: знакомство с сенсорными панелями фирмы
Siemens, получение навыков создания систем визуализации с помощью среды WinCC.
Информация для выполнения лабораторной работы
Для визуализации процессов измерения, регулирования различных параметров в промышленности используют сенсорные панели. Преимуществом использования этих устройств является их компактность, простота программирования, невысокая стоимость.
Сенсорные панели разных производителей и разных поколений обладают разными функциональными возможностями.
Типовая панель предоставляет пользователю следующую функциональность:
· визуализация параметров технологического процесса (или объекта) в текстовом или графическом режимах;
· управление и обработка аварийных сообщений, регистрация времени и даты возникновения аварийных сообщений;
· ручное управление с помощью функциональных кнопок или сенсорного экрана;
· возможность программирования графики и настройки функциональных клавиш;
· построение диаграмм и трендов, отображение сводных отчетов.
Пример подключения и настройки сенсорной панели
Методику включения в проект и настройки сенсорной панели рассмотрим на примере задачи визуализации работы функционального блока счетчика CTU. По условию, счетчик по нарастанию CTU должен подсчитывать число включений тумблера, подключенного к дискретному входу контроллера I0.0.
При достижении текущим значением числа включений тумблера
Имеется линия для упаковки кубиков в коробки (рис. 18).
Кубики упаковываются по коробкам. Кубики автоматически подаются по конвейеру, если он включен. В каждую коробку необходимо разместить строго определенное количество кубиков.
Лишние кубики будут выпадать из коробки. Необходимо так производить упаковку кубиков, чтобы ни один из них не выпал из коробки.
Входы:
I0.0 – кубик на конвейере;
I0.1 – коробка не заполнена.
Выходы:
Q0.0 – включить конвейер;
Q0.1 – установить новую коробку.
54
Постановка задачи
В каждую коробку должно попадать по 5 кубиков. Как только нужное число кубиков поступит в коробку, конвейер останавливается.
После заполнения очередной коробки поступает сигнал (Q0.1) на установку новой коробки, и конвейер включается снова.
Рис. 18. Конвейер для упаковки кубиков
Содержание отчета
1. Название и цель работы.
2. Схемы подключения дискретных входов и выходов к контроллеру.
3. Временные диаграммы изменения сигналов на входах и выходах блоков CTU, CTD, CTUD.
4. Выводы.
Контрольные вопросы
1. Для каких целей используются счетчики в программах ПЛК?
2. Какие счетчики реализованы в ПЛК S7-1200?
55
ЛАБОРАТОРНАЯ РАБОТА № 5
РАЗРАБОТКА ПРОГРАММЫ ПЛК С РЕАЛИЗАЦИЕЙ
ФУНКЦИЙ
ОБРАБОТКИ ДАННЫХ О ВРЕМЕНИ И ДАТЕ
Цель работы:изучение функций ПЛК для обработки данных о времени и дате.
Информация для выполнения лабораторной работы
В Simatic Step 7 для хранения сведений о времени и дате предусмотрены следующие типы данных.
DATE.
Переменные этого типа данных используются для хранения даты в формате «гггг-мм-дд». Переменная типа DATE фактически представляет собой беззнаковое (неотрицательное) целое число, равное числу дней, прошедших от даты 01-01-1990. Диапазон возможных значений переменной – от 01-01-1990 до 31-12-2168.
Значение такой переменной может быть записано в программе одним из двух способов:
· с явным указанием типа данных в формате «гггг-мм-дд», например, D#1990-01-01, или DATE#2016-05-23;
· в виде шестнадцатиричного целого числа дней, прошедших, начиная с 01-01-1190, например, 16#00F2.
TIME_OF_DAY (TOD).
Переменные этого типа имеют размер двойного слова (т. е. 4 байта) и представляют собой число миллисекунд, прошедших с момента начала суток. Значение такой переменной в программе записывается в формате
«TOD#часы:минуты:секунды.миллисекунды», например,
TOD#10:20:30.400. Диапазон возможных значений переменной типа
TOD, очевидно, равен от TOD#00:00:00.000 до TOD#23:59:59.999.
DATE_AND_TIME.
Переменные типа DATE_AND_TIME (date and time of day) содержат сведения о дате и времени суток в формате BCD. Длина переменной – 8 байт. Структура данных, хранимых в каждом из байтов, приведена в табл. 17.
56
Таблица 17
Структура переменной типа DATE_AND_TIME
Номер байта
Содержимое байта
Диапазон значений
0 год от 0 до 99
(годы от 1990 до
2089)
1 месяц от 0 до 12 2 день от 1 до 31 3 час от 0 до 23 4 минута от 0 до 59 5 секунда от 0 до 59 6 две старшие цифры разряда миллисекунд от 0 до 99 7 (старшие
4 бита) младшая (третья) цифра разряда миллисекунд от 0 до 9 7 (младшие
4 бита) день недели от 1 до 7
Диапазон возможных значений – от DT#1990-01-01-00:00:00.000 до DT#2089-12-31-23:59:59.999.
DTL (date and time long).
Переменная такого типа имеет длину 12 байт и хранит информацию о времени и дате в виде следующей структуры (табл. 18).
Таблица 18
Структура переменной типа DT
Номер байта
Содержимое байта
Тип данного
Диапазон значений
0 1 год
UINT
1970 – 2200 2 месяц
USINT
1 – 12 3 день
USINT
1 – 31 4 день недели
USINT
1 (вс.) – 7 (сб.) день недели не указывается явно при записи переменной в программе
5 час
USINT
0 – 23
57
Окончание таблицы 18
Номер байта
Содержимое байта
Тип данного
Диапазон значений
6 минута
USINT
0 – 59 7 секунда
USINT
0 – 59 8
9 10 11 наносекунды
UDINT
0 – 999999999
Диапазон возможных значений – от DTL#1970-01-01-00:00:00.0 до DTL#2200-12-31-23:59:59.999999999. Пример записи в программе: DTL#2008-12-31-20:15:45.250.
Для обработки данных о времени и дате в Simatic Step 7 реализованы следующие основные системные функции, расположенные в среде
TIA
Portal на вкладке
Instructions→Extended instructions→Date and time-of-day.
RD_SYS_T.
Считывание системного времени (read system time) – данная функция считывает текущее системное время со встроенных в ПЛК часов реального времени. Данная функция имеет выходной параметр
OUT типа DTL: в переменную, указанную в качестве этого параметра, записывается считанное значение системного времени. Результатом выполнения функции RD_SYS_T является возвращаемое ей значение
RET_VAL – целое число типа Int, по смыслу представляющее собой код ошибки выполнения функции (табл. 19Ошибка! Источник
ссылки не найден.).
Таблица 19
Возможные значения RET_VAL
Код ошибки: число типа
Int в 16-ричной форме
(W#16#)
Описание
0000
Нет ошибки
8081
Полученное значение времени не соответствует интервалу допустимых значений для типа DTL, т. е. меньше
DTL#1970-01-01-00:00:00.0 либо больше
DTL#2200-12-31-23:59:59.999999999
58
Значение системного времени является внутренней характеристикой
ПЛК, по смыслу представляет собой скоординированное универсальное (всемирное) время (Universal
Time Coordinated, UTC) и не учитывает ни местного часового пояса, ни переходов на зимнее время и обратно. Поэтому для практических задач большее значение имеет следующая функция:
RD_LOC_T.
Считывание местного времени (read local time) – данная функция считывает текущее местное время со встроенных в ПЛК часов реального времени. При этом сначала происходит считывание системного времени, которое затем преобразуется программой в местное время с учетом данных настроек ПЛК о часовом поясе и режиме автоматического перехода на зимнее время и обратно. Данная функция имеет выходной параметр OUT типа DTL: в переменную, указанную в качестве этого параметра, записывается считанное значение местного времени. Результатом выполнения функции
RD_LOC_T является возвращаемое ей значение RET_VAL – целое число типа Int, по смыслу представляющее собой код ошибки выполнения функции (табл. 20).
Таблица 20
Возможные значения RET_VAL
Код ошибки: число
типа Int в 16-ричной
форме (W#16#)
Описание
0000
Нет ошибки
0001
Нет ошибки. Включен автоматический переход на зимнее время и обратно
8080
Местное время не может быть считано
8081
Недопустимое значение года
8082
Недопустимое значение месяца
8083
Недопустимое значение дня
8084
Недопустимое значение часа
8085
Недопустимое значение минуты
8086
Недопустимое значение секунды
8087
Недопустимое значение наносекунды
80В0
Часы реального времени вышли из строя
59
T_CONV.
Преобразование времени (Time Convertation) – эта функция выполняет преобразование данных о времени и дате из одного типа данных в другой. Например, определения текущего времени суток сначала необходимо с помощью функции RD_LOC_T считать локальное время и дату в переменную типа DTL, а затем с помощью функции T_CONV преобразовать эту переменную к переменной типа TIME_OF_DAY (TOD).
T_ADD.
Функция T_ADD (сложение времен) складывает входное значение IN1 (типа данных DTL или Time) с входным значением
IN2 (тип Time). Возвращаемое функцией выходное значение OUT имеет тип данных DTL или Time. Возможны операции с двумя типами данных:
Time + Time = Time;
DTL + Time = DTL.
T_SUB.
Функция T_ SUB (вычитание времени) вычитает значение типа
Time (входной параметр IN2) из значения типа DTL или Time
(входной параметр IN1). Возвращаемое функцией выходное значение OUT выдает значение разности, используя тип данных
DTL или Time.
Возможны операции с двумя типами данных:
Time – Time = Time;
DTL – Time = DTL.
T_DIFF.
Функция T_ DIFF (разность времен) вычитает значение типа
DTL (входной параметр IN2) из значения типа DTL (входной параметр IN1). Возвращаемое функцией выходное значение OUT выдает значение разности, используя тип данных Time:
DTL – DTL = Time.
Порядок выполнения лабораторной работы
В процессе выполнения лабораторной работы для приобретения навыков использования функций обработки информации о времени и дате необходимо разработать в среде TIA Portal проект для ПЛК
60
Simatic S7-1200, реализующий решение описанной ниже задачи управления отоплением производственного служебного помещения.
Созданную программу необходимо откомпилировать, загрузить в
ПЛК и исследовать ее работу на лабораторном стенде.
Задача управления отоплением
Для экономии тепловых ресурсов, затрачиваемых на обогрев служебного помещения (например, офиса или цеха), необходимо, чтобы система отопления работала в номинальном режиме
(Q0.0 = TRUE) только в холодный сезон года (с октября по март, включительно), в рабочие дни недели в рабочее время суток, т. е. когда в помещении могут находиться сотрудники. В остальное время система отопления должна работать в режиме экономии
(Q0.0 = FALSE).
Создание проекта
Запуск интегрированной среды разработки TIA Portal V13, создание в ней нового проекта и конфигурация используемого аппаратного оборудования описаны на стр. 19.
Для определения символьных имен используемых в программе переменных выбрать в дереве проекта (Project tree) пункт
PLC_1→PLC tags→Default tag table, открыть таблицу символьных имен переменных, в которой определить символьные имена для следующих переменных (табл. 21).
Таблица 21
Символьные имена используемых в проекте переменных
Name
Data Type
Logical
Address
Comment t
Time_Of_Day
%MD11
Время суток
WorkTime
Bool
%M16.0
Рабочее время суток
WorkDay
Bool
%M16.1
Рабочий день недели
HeatingOn
Bool
%Q0.0
Включение отопления
ColdSeason
Bool
%M16.2
Холодное время года
Далее в этой же таблице символьных имен Default tag table нужно перейти с вкладки Tags (для переменных) на вкладку
61
User constants (постоянные пользователя) и определить символьные имена и значения следующих констант, которые будут необходимы в программе (табл. 22).
Таблица 22
Символьные имена используемых в проекте констант
Name
Data Type
Value
Comment
BeginTime
Time_Of_Day
TOD#08:00:
00.000
Время включения отопления
EndTime
Time_Of_Day
TOD#18:00:
00.000
Время отключения отопления
Monday
USInt
2
Понедельник
Friday
USInt
6
Пятница
Далее необходимо добавить в проект новый кодовый блок типа
Organization Block, Program cycle – организационный блок циклического исполнения с вводом программы на языке SCL.
Необходимые для этого действия описаны на стр. 20.
В программе, очевидно, придется использовать функцию
RD_LOC_T считывания текущего местного времени и даты. Для работы этой функции, как было сказано выше, необходима переменная типа DTL, которая должна быть указана в качестве параметра функции и в которую будет помещаться считанное значение. Однако поскольку переменная типа DTL представляет собой сложную структуру данных (см. табл. 18), она не может быть определена в М-области памяти контроллера. Поэтому данную переменную следует определить в области временной локальной памяти (см. стр. 31) созданного организационного кодового блока.
Таблица для определения символьных имен локальных переменных и констант кодового блока находится над рабочим окном ввода текста программы (рис. 19). В данной таблице, как показано на рисунке, нужно определить имена двух локальных переменных, необходимых для работы функции RD_LOC_T: переменной RET_VAL типа Int и переменной d типа DTL.
62
Рис. 19. Рабочее окно ввода программы и таблица локальных данных кодового блока
Как видно на рис. 19, слева от имени переменной ″d″ имеется маленький треугольный указатель вправо. Этот указатель свидетельствует о том, что переменная ″d″ является сложной структурой данных. Нажав на него левой клавишей мыши, можно
«развернуть» структуру ″d″ и получить подстрочное отображение информации обо всех составляющих ее компонентах.
Далее в программу нужно добавить следующий код с комментариями. Необходимо помнить, что вводить названия системных функций, в данной программе это RD_LOC_T и
DTL_TO_TOD, следует методом перетаскивания их мышью с вкладки инструкций Instrucions→Extended instructions→Date and time-of-day в нужное место программы. Так, для ввода функции DTL_TO_TOD
(преобразование из типа данных DTL к типу TOD) во второй строке программы нужно вставить в это место описанную выше функцию
T_CONV. При вставке появится маленькое диалоговое окно T_CONV, в котором потребуется указать тип входного и выходного параметров:
DTL в поле Source type и TOD в поле Target type.
Код программы исследования работы таймеров на языке SСL
#ret_val := RD_LOC_T(#d); // определение текущего времени и даты "t" := DTL_TO_TOD(#d); // определение времени суток
63
// рабочий день недели - WorkDay=TRUE, выходной
- FALSE
"WorkDay" := (#d.WEEKDAY>="Monday") AND
(#d.WEEKDAY<="Friday");
// рабочее время суток - WorkTime=TRUE, нерабочее - FALSE
"WorkTime" := ("t">="BeginTime") AND
("t"<="EndTime");
// холодное время года - с октября по март включительно "ColdSeason" := (#d.MONTH>9) OR (#d.MONTH<4);
// включение отопления - в холодное время года,
// в рабочий день недели,
// в рабочее время суток "HeatingOn" := "ColdSeason" AND "WorkDay" AND
"WorkTime";
Загрузить программу в ПЛК и исследовать ее работу на стенде.
Переопределить значения используемых в программе констант
(табл. 22Ошибка! Источник ссылки не найден.) таким образом, чтобы включение либо отключение отопления можно было бы наблюдать в настоящий момент. Повторно загрузить программу в контроллер и понаблюдать за включением и отключением отопления.
Продемонстрировать работу программы преподавателю.
Содержание отчета
1. Название и цель работы.
2. Схема подключения дискретного выхода к контроллеру.
3. Выводы.
Контрольные вопросы
1. Какие типы данных для хранения информации о времени и дате предусмотрены в ПЛК S7-1200?
2. Какие системные функции обработки данных о времени и дате реализованы в ПЛК S7-1200?
64
ЛАБОРАТОРНАЯ РАБОТА № 6
СРЕДСТВА ВИЗУАЛИЗАЦИИ ЧЕЛОВЕКО-МАШИННОГО
ИНТЕРФЕЙСА. ОРГАНИЗАЦИЯ ЦИФРОВЫХ ПОЛЕЙ
ВВОДА/ВЫВОДА НА ДИСПЛЕЕ ПАНЕЛИ
Цель работы: знакомство с сенсорными панелями фирмы
Siemens, получение навыков создания систем визуализации с помощью среды WinCC.
Информация для выполнения лабораторной работы
Для визуализации процессов измерения, регулирования различных параметров в промышленности используют сенсорные панели. Преимуществом использования этих устройств является их компактность, простота программирования, невысокая стоимость.
Сенсорные панели разных производителей и разных поколений обладают разными функциональными возможностями.
Типовая панель предоставляет пользователю следующую функциональность:
· визуализация параметров технологического процесса (или объекта) в текстовом или графическом режимах;
· управление и обработка аварийных сообщений, регистрация времени и даты возникновения аварийных сообщений;
· ручное управление с помощью функциональных кнопок или сенсорного экрана;
· возможность программирования графики и настройки функциональных клавиш;
· построение диаграмм и трендов, отображение сводных отчетов.
Пример подключения и настройки сенсорной панели
Методику включения в проект и настройки сенсорной панели рассмотрим на примере задачи визуализации работы функционального блока счетчика CTU. По условию, счетчик по нарастанию CTU должен подсчитывать число включений тумблера, подключенного к дискретному входу контроллера I0.0.
При достижении текущим значением числа включений тумблера