Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Программирование технологических контроллеров в среде Unity. Учебное пособие.pdf
X
- •ВВЕДЕНИЕ
- •1.1. Принцип действия системы промышленной автоматизации
- •2.1. Структура программируемого логического контроллера
- •2.2. Конструктивное исполнение контроллеров
- •2.3. Модули ввода-вывода
- •2.4. Языки и среды программирования логических контроллеров
- •2.5. Триггеры, таймеры, счетчики
- •Значение
- •Значение
- •2.6. Математические операции и команды работы с массивами
- •3. ТИПЫ ПЕРЕМЕННЫХ
- •3.1. Элементарные типы данных
- •3.2. Представление элементарных типов данных
- •3.4. Система адресации переменных Telemecanique
- •4. ПАКЕТ ПРОГРАММИРОВАНИЯ Unity Pro
- •4.1. Общие сведения
- •4.2. Структура пакета Unity Pro
- •4.3. Интерфейс пользователя Unity Pro и его составные части
- •4.4. Иерархическое построение программы ПЛК
- •4.5. Редакторы языков программирования Unity Pro
- •4.6. Соединение терминала с ПЛК
- •5.1. Настройки проекта
- •5.2. Конфигурирование контроллера Premium
- •5.3. Работа с переменными
- •5.4. Структура приложения
- •5.5. Программирование с использованием блоков FBD
- •6.1. Введение
- •6.3. Библиотека для управления аналоговым вводом/выводом
- •6.3.2. Блоки настройки конфигурации
- •6.3.2.1. Блок конфигурации модуля ACI 030 00 (ACI030)
- •6.3.2.2. Блок конфигурации модуля AC0 020 00
- •6.3.2.3. Блок конфигурации модуля ATI 030 00
- •6.3.2.4. Блок конфигурации модуля ARI 030 00
- •6.3.2.5. Блок конфигурации модуля AVI 030 00
- •6.3.2.6. Блок конфигурации модуля AVO 020 00
- •6.3.2.8. Блок конфигурации главного модуля (QUANTUM)
- •6.3.2.9. Блок конфигурации расширителя объединенной платы (XBP)
- •6.3.3. Блоки масштабирования
- •6.3.3.1. Блок нормализации аналоговых входов (I_NORM)
- •6.3.3.3. Блок преобразования физических аналоговых входов (I_PHYS)
- •6.3.3.4. Блок преобразования физических аналоговых входов со статусом предупреждения (I_PHYS_WARN)
- •6.3.3.5. Блок масштабирования аналоговых входов (I_SCALE)
- •6.3.3.6. Блок масштабирования аналоговых входов со статусом предупреждения (I_SCALE_WARN)
- •6.3.3.7. Блок преобразования необработанных значений аналоговых входов (I_ROW)
- •6.3.3.8. Блок нормализации аналоговых выходов (O_NORM)
- •6.3.3.11. Блок имитации необработанных сигналов аналоговых входов (I_RAW_SIM)
- •6.3.4. Блоки отладки аналогового ввода/вывода
- •6.3.4.1. Блок линеаризации аналоговых входов (I_FILTER)
- •6.4.2. Регуляторы (Controller)
- •6.4.3. Арифметические операции (Mathematics)
- •6.4.4. Измерения (Measurement)
- •6.4.5. Устройства сопряжения с объектом (Output Processing)
- •6.4.6. Формирование сигналов задания (Setpoint Managment)
- •6.6. Управление с обратной связью (CLC)
- •6.6.1. Типовые динамические звенья
- •6.6.1.1. Блок запаздывания (DELAY)
- •6.6.1.2. Интегратор с ограничением выхода (INTEGRATOR1)
- •6.6.1.3. Апериодическое звено (фильтр) первого порядка (LAG1)
- •6.6.1.5. Ограничитель скорости первого порядка (LIMV)
- •6.6.1.6. Дифференциатор с запаздыванием (SMOOTH_RATE)
- •6.6.2. Регуляторы
- •6.6.2.1. Пропорционально-интегральный регулятор (PI1)
- •6.6.2.2. Пропорционально-интегрально-дифференциальный регулятор (PID1)
- •6.6.2.3. ПИД-регулятор с параллельной структурой (PIDP1)
- •6.6.3. Управление с обратной связью для профессионалов (CLC_PRO)
- •6.6.3.1. Генератор функций (FGEN)
- •6.6.3.2. Фильтр второго порядка (LAG2)
- •6.7. Автоматизированная настройка регулятора в пакете Unity
- •6.8. Упражнения для самостоятельной работы
- •ЗАКЛЮЧЕНИЕ
- •ЛИТЕРАТУРА

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. Бункер-накопитель
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
