Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование технологических контроллеров в среде Unity. Учебное пособие.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
21
Включение насоса № 1 производится кнопкой «Пуск». Кнопку «Пуск» можно подключить к одному из логических входов контроллера (в данном примере – к входу IN0). Поскольку команда на включение на­соса № 1 должна подаваться однократным нажатием кнопки «Пуск», необходимо поставить RS-триггер (триггер, срабатывающий по фронту сигнала, т. е. его вход S (Set) реагирует только на «включение»). Этот триггер передает информацию со входа S на выход Q1 и запоминает свое состояние. Поскольку на входе S у нас стоит логическая «1», то в момент нажатия кнопки «Пуск», триггер сработает, передаст «1» на вы­ход Q1, который является цифровым выходом контроллера (в данном примере – выходу OUT0). Насос № 1 включится. Условие включения насоса № 2 – срабатывание датчика понижения давления (он находится на цифровом входе IN3). Кроме того, сама насосная станция должна быть включена. Признаком работы насосной станции является логиче­ская «1» на выходе Q1 RS-триггера. Следовательно, когда с входа IN3 и выхода Q1 RS-триггера придут логические «1», насос № 2 должен зара­ботать. Блок AND (И) обеспечивает эту функцию. Следующее условие: насосная станция должна аварийно выключаться по сигналу от датчика превышения давления (цифровой вход IN2 контроллера). Для этого надо просто «обнулить» выход Q1 RS-триггера. Это можно сделать путем по­дачи логической «1» на его вход R (Reset). Необходимо также выклю­чать всю насосную станцию, например кнопкой «Стоп». Кнопку «Стоп» нужно подключить к входу контроллера IN1, а выключить также пода­чей «1» на вход R RS-триггера. Для того чтобы вход R мог восприни­мать оба сигнала (от датчика превышения давления и от кнопки «Стоп»), надо поставить блок OR (ИЛИ). Теперь работа логической схе­мы удовлетворяет всем необходимым условиям. Еще раз проверяем ус­ловия. Станция не должная запускаться, если давление в трубопроводах слишком высокое. Но в этом случае на входе R RS-триггера будет логи­ческая «1», а на выходе Q1 будет удерживаться «0», следовательно, RS­триггер не будет реагировать на нажатие кнопки «Пуск». Работа над схемой завершена.
Упражнение. Реализация программы работы насосной станции на FBD.
1. Запустите пакет программирования контроллера и создайте но-
вый проект либо сохраните уже созданный, с установленной кон­фигурацией, под другим именем.
22
2. Проверьте список переменных проекта. Если переменные IN0 –
IN3, OUT0 – OUT1 не созданы, создайте их.
3. Наберите программу, изображенную на рис. 2.2.
4. Проверьте правильность работы программы контроллера, про-
моделировав все возможные ситуации.

2.5. Триггеры, таймеры, счетчики

Набор функциональных блоков, являющихся командами для про­граммы контроллера, обычно организован в библиотеки (табл. 2.2).
Таблица 2.2
Библиотека Описание функций
Логика Логические операции с переменными разных типов,
различные виды триггеров
Таймеры
и счетчики
Математика Математические операции с переменными разных
Операции
отношения
Операции
преобразования
Дата и время Операции с часами реального времени
Таймеры с задержкой на включение, отключение; счетчики импульсов на увеличение, на уменьшение
типов
Операции отношения (сравнения) с переменными разных типов
Операции преобразования с переменными разных типов
Практически в каждой оболочке для программирования контрол­леров есть библиотеки работы с логическими переменными, набор триггеров и счетчиков, математических операций, операций отноше­ния, генераторов и таймеров, преобразования типов и другие. Каждый функциональный блок изображается на поле программирования в виде прямоугольника с названием (функциональным назначением) блока, входами (слева) и выходами (справа) (рис. 2.6.)
23
ИМЯ
вход EN
вход 1 вход 2
выход ENO выход 1 выход 2
Рис. 2.6. Функциональный блок
Функциональные блоки могут иметь входы разрешения на выпол­нение (EN-входы). В некоторых оболочках программирования эти входы могут быть скрытыми.
Одним из наиболее часто встречающихся в технических приложениях функциональных бло­ков являются триггеры. В программах наиболее часто используется обыкновенный RS-триггер, функциональная схема которого представлена на рис. 2.7.
Функциональный блок используется как па­мять RS со свойством «Доминирующий сброс». Выход Q1 становится «1», когда вход S становится
Рис. 2.7. Функци- ональный блок RS-
триггер
«1». Это состояние сохраняется, даже если S воз-
вращается обратно в «0». Выход Q1 возвращается в «0», когда вход R1 становится «1». Если входы S и R1 находятся в «1» одновременно, до­минирующий вход R1 установит выход Q1 в «0». Когда функциональ­ный блок вызывается первый раз, начальное состояние Q1 – это «0».
Обычно в библиотеках FBD имеются блоки определения спада и определения нарастающего фронта импульса. Используя их в сочета­нии с RS-триггером можно построить триггеры, срабатывающие по фронту и по спаду импульса.
Упражнение. Программирование триггеров средствами FBD.
1. Создать программу с блоком RS-триггера. Проверить работу RS-
триггера в разных режимах.
2. Попытайтесь создать программу с блоком RS-триггера, рабо-
тающего по спаду импульса. Проверить работу RS-триггера в разных режимах.
3. Приведите примеры использования RS-триггеров в задачах
управления технологическими процессами.
24
Для формирования временных интервалов в задачах управления
Параметр
Тип данных
Значение
IN
BOOL
Запуск задержки
PT
TIME
Предустановленное время задержки
Параметр
Тип данных
Значение
Q
BOOL
Выход
ET
TIME
Внутреннее время
используются функциональные блоки, называемые таймерами. Сле­дующие три типа таймеров относятся к основному набору команд и используются во всех пакетах для программирования контроллеров:
• TON (рис. 2.8, а) – функциональный блок задержки включения;
• TOF (рис. 2.8, б) – функциональный блок задержки отключения;
• TР (рис. 2.8, в) – функциональный блок генерирования импульса
с заданной продолжительностью.
а б в
Рис. 2.8. Функциональные блоки таймеров
Рассмотрим описание функций и временные диаграммы.
Функциональный блок TON используется как задержка включения.
Когда функциональный блок вызывается первый раз, начальное состояние ЕТ равно «0» (справедливо для всех блоков таймеров).
Описание входных параметров представлено в табл. 2.3.
Таблица 2.3
Описание выходных параметров представлено в табл. 2.4.
Таблица 2.4
25
Временная диаграмма задержки включения TON представлена на рис. 2.9.
Рис. 2.9. Временная диаграмма задержки включения TON
Если IN становится «1», запускается отсчет внутреннего времени (ET). Если внутреннее время достигает значения PT, Q становится «1». Если IN становится «0», Q становится «0», а подсчет внутреннего вре­мени останавливается/сбрасывается. Если IN становится «0» до того как внутреннее время достигло значения PT, подсчет внутреннего вре­мени останавливается/сбрасывается, а выход Q не устанавливается в
«0».
Функциональный блок TOF используется как задержка отключения.
Описание входных и выходных параметров функционального блока TOF полностью совпадает с описанием параметров блока TON.
Временная диаграмма представления задержки включения TOF приведена на рис. 2.10.
Рис. 2.10. Временная диаграмма задержки включения TOF
26
Если IN становится «1», Q становится «1». Если IN становится «0», запускается отсчет внутреннего времени (ET). Если внутреннее время достигает значения PT, Q становится «0». Если IN становится «1», Q становится «1», а подсчет внутреннего времени останавливает­ся/сбрасывается. Если IN становится «0» до того как внутреннее время достигло значения PT, подсчет внутреннего времени останавливает­ся/сбрасывается, а выход Q не устанавливается в «0». Если IN стано­вится «1» до того как внутреннее время достигло значения PT, подсчет внутреннего времени останавливается/сбрасывается, а выход Q не ус­танавливается в «0».
Функциональный блок TР используется для генерирования импуль- са с заданной продолжительностью.
Описание входных и выходных параметров функционального блока TP полностью совпадает с описанием параметров блоков TON и
TOF.
Временная диаграмма импульса TP представлена на рис. 2.11.
Рис. 2.11. Временная диаграм­ ма импульса TP
Если IN становится «1», Q становится «1» и начинается отсчет внутреннего времени (ET). Если внутреннее время достигает значения PT, Q становится «0» (независимо от IN). Отсчет внутреннего времени останавливается/сбрасывается, если IN становится «0». Если внутрен­нее время не достигло значения PT, импульс IN не влияет на внутрен­нее время. Если внутреннее время достигло значения PT и IN равен «0», отсчет внутреннего времени останавливается/сбрасывается, и Q становится «0».
27
Упражнение. Программирование таймеров и особенности их ра-
6 c
2 c
боты.
1. Создайте программу, содержащую элементы TON, NOF, TP.
Проверьте работу блоков во всех возможных режимах и соответствие их временным диаграммам рис. 2.9 – 2.11.
Одной из наиболее часто встречающихся функциональных частей программы пользователя для логического контроллера является гене- ратор (аварийная сигнализация, синхронизация и т. п.). Неизменным элементом при программировании генераторов в программной среде становятся таймеры. В зависимости от специфики конкретного техни­ческого приложения существуют различные варианты реализации ге­нераторов.
Генератор с изменяемой скважностью сигнала. Функциональ­ная схема генератора с изменяемой скважностью представлена на рис. 2.12. Реализуется с помощью двух последовательно включенных таймеров, охваченных обратной связью. В рассматриваемом примере такая связь осуществляется через промежуточную переменную E1, яв­ляющуюся одновременно выходом генератора. Один таймер отвечает за формирование длительности паузы, другой – импульса. Временная диаграмма представлена на рис. 2.13. Таким образом, пользователь имеет возможность изменять частоту генератора, а также соотношение между импульсом и паузой (скважность). Запуск генератора можно осуществить входом EN одного из блоков.
Рис. 2.12. Функциональная схема генератора с изменяемой скважностью сигнала
Рис. 2.13. Временная диаграмма генератора с изменяемой скважностью сигнала
28
Генератор импульсов «меандр» – частный случай предыдущего
2 c
2 c
генератора с установленной одинаковой длительностью импульса и паузы. Временная диаграмма генератора импульсов «меандр» пред­ставлена на рис. 2.14.
Рис. 2.14. Временная диаграмма генератора импульсов «меандр»
Упражнение. Программирование генераторов.
1. Используя два блока таймеров, создайте генератор импульсов,
временная диаграмма которых приведена на рис. 2.13.
2. Измените параметры генератора так, чтобы он вырабатывал им-
пульсы «меандр» (рис. 2.14).
Для подсчета количества импульсов, поступающих от внешних устройств или формируемых в самой программе, используются функ­циональные блоки, называемые счетчиками. При этом применяются счетчики с прямым и обратным отсчетом:
• CTU (рис. 2.15, а) – инкрементный счетчик, считающий количе-
ство импульсов от 0 до заданного значения;
• CTD (рис. 2.15, б) – декрементный счетчик, считающий количе-
ство импульсов от заданного значения до 0;
Встречаются счетчики, позволяющие изменять направление счета импульсов.
а б
Рис. 2.15. Функциональные блоки счетчиков
Функциональный блок CTU используется для счета вверх. Сигнал
«1» на входе R вызывает присваивание значения «0» выходу CV. При
29
каждом переходе из «0» в «1» на входе CU значение CV увеличивается
Параметр
Тип данных
Значение
CU
BOOL
Вход сигнала запуска
R
BOOL
Сброс
PV
Для CTU_***: INT, DINT
Предустановленное значение
Параметр
Тип данных
Значение
Q
BOOL
Выход
CV
Для CTU_***: INT, DINT
Значение счетчика (фактическое значение)
на 1. Когда CV ≥ PV, выход Q устанавливается в «1».
Счетчик работает только до достижения максимального значе- ния используемого типа данных. Переполнения не происходит.
Описание входных параметров счетчика CTU приведено в табл. 2.5.
Таблица 2.5
Описание выходных параметров счетчика CTU приведено в табл. 2.6.
Таблица 2.6
Функциональный блок CTD используется для счета вниз. Сигнал «1» на входе LD вызывает присваивание значения на входе PV выходу CV. При каждом переходе из «0» в «1» на входе CD значение CV уменьшается на 1.
Когда CV ≤ 0, выход Q принимает значение «1».
Описание входных и выходных параметров функционального блока СTD полностью совпадает с описанием параметров блока CTU.
Описание работы бункера-накопителя. Через три направляющих конуса в бункер-накопитель поступают полуфабрикатные изделия одно­го вида (рис. 2.16). В нижней части бункер снабжен управляемой за­слонкой (физический выход OUT1, состояние «1» – открыто). Направ­ляющие конусы также оборудованы заслонками (соответственно физи-
30
ческие выходы NZ1, NZ2, и NZ3, состояние «1» – открыто). Подача из-
C1
C2
C3
OUT
L1
NZ1
NZ2
NZ3
Общее Вкл / Откл
Вкл RUN Выкл STOP
Накопитель
Транспортер
Направляющий
конус 1
Направляющий
конус 2
Направляющий
конус 3
делий через конусы в бункер не синхронизирована. После накопления в бункере определенного количества изделий-полуфабрикатов заслонка OUT открывается на 7 с и содержимое бункера выгружается в находя­щийся под ним транспортер, затем заслонка закрывается и транспортер с изделиями убирается из-под бункера вручную. При открытой заслонке буфера сигнальная лампа L1 мигает с частотой 1 Гц. Заслонки направ­ляющих конусов должны быть закрыты. Общее включение установки осуществляется кнопкой «Пуск» (физический вход RUN), выключение – кнопкой «Стоп» (физический вход STOP). При общем выключении ус­тановки блокируются в закрытом состоянии заслонки направляющих конусов. Структурная схема бункера-накопителя приведена на рис. 2.17.
Рис. 2.16. Бункер-накопитель
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]