Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Программируемые логические контроллеры SIMATIC S7-300 400. лабораторный практикум. Таратынов О.Ю., Ткалич С.А

.pdf
Скачиваний:
27
Добавлен:
01.05.2022
Размер:
2.9 Mб
Скачать

Создайте функциональный блок FB4, принимая во внимание следующее:

Механизм (например, робот-манипулятор) способен перемещаться по двум координатам X (влево/вправо) и Y (вверх/вниз); приняты обозначения направлений движения:

X← – влево по координате X; X→ – вправо по X;

Y↑ – вверх по Y;

Y↓ – вниз по Y;

T – длительность паузы (в секундах) после достижения механизмом заданного положения (определяется по концевым выключателям).

Пульт оператора имеет кнопки, сигналы которых заведены на модуль дискретного ввода. Помимо кнопок на дискретные входы заведены сигналы концевых выключателей, ограничивающих движение в соответствующем направлении.

Назначение кнопок и концевых выключателей:

BT_Pusk – кнопка “Пуск”. Стартует пошаговый алгоритм автоматического перемещения механизма, если выполнены начальные условия (по сигналами датчиков перемещения положение механизма соответствует шагу 0). Каждый новый цикл алгоритма начинается с нажатия на кнопку “Пуск”.

BT_Stop – кнопка “Стоп”. Прерывает пошаговый алгоритм автоматического перемещения механизма в произвольный момент времени (аварийный останов). Нормальное завершение алгоритма – выполнен последний шаг.

BT_XL – кнопка “Влево”. В ручном режиме (не стартовал пошаговый алгоритм) механизм перемещается влево пока удерживается кнопка и пока не достигнут концевой выключатель соответствующего направления SQ_XL.

BT_XR – кнопка “Вправо”. В ручном режиме механизм перемещается вправо пока удерживается кнопка и пока не достигнут концевой выключатель SQ_XR.

BT_YU – кнопка “Вверх”. В ручном режиме механизм перемещается вверх пока удерживается кнопка и пока не дос-

110

тигнут концевой выключатель SQ_YU.

BT_YD – кнопка “Вниз”. В ручном режиме механизм перемещается вниз пока удерживается кнопка и пока не достигнут концевой выключатель SQ_YD.

Управляющие сигналы поступают на силовой преобразователь электропривода (возможно реле или контактор) через модуль дискретного вывода:

U_XL – управление на движение влево;

U_XR – управление на движение вправо;

U_YU – управление на движение вверх;

U_YD – управление на движение вниз.

Кроме того, есть дискетные выходы на лампочки индикации для оператора:

Lampe_Origin – установка находится в исходном состоянии, означает что установка готова в пуску;

Lampe_Auto – установка находится в автоматическом режиме, управление движением с пульта невозможно (блокированы кнопки “Влево”, “Вправо”, “Вверх” и “Вниз”).

Распределите адреса конкретных дискретных входов и выходов в таблице символов самостоятельно.

Поясним обозначения в таблице заданий на примере варианта 1:

0. X←; Y↓

в исходном состоянии (шаг алгоритма = 0)

 

механизм находится слева и внизу;

1.X→; T = 3 s на шаге 1 перемещаться вправо, пауза 3 s;

2.Y↑; T = 1 s на шаге 2 перемещаться вверх, пауза 1 s;

3.X←; Y↓; T = 4 s на шаге 3 одновременно перемещаться влево и вниз (вернуться в исходное положение), пауза 4 s;

111

10.5. Лабораторная работа № 5

Цель лабораторной работы № 5: обработка аналоговых величин. Варианты заданий представлены в табл. 10.6.

 

 

Таблица 10.6

 

Варианты заданий № 5

 

 

 

Вариант

Измеряемая величина

Диапазон датчика

 

 

 

1

P = 0 … 15 bar

4 ... 20 mA

 

 

 

2

L = 0 … 100 %

4 ... 20 mA

 

 

 

3

W = 0 …200 kg

4 ... 20 mA

4

P = 0 … 10 bar

0 … 10 V

 

 

 

5

L = 0 … 100 %

4 ... 20 mA

 

 

 

6

W = 0 …100 kg

0 … 10 V

 

 

 

7

P = 0 … 3 bar

4 ... 20 mA

 

 

 

8

L = 0 … 100 %

0 … 10 V

 

 

 

9

P = 0 … 15 bar

4 ... 20 mA

 

 

 

10

W = 0 …25 kg

4 ... 20 mA

 

 

 

Для обработки аналоговых величин в CPU, они должны быть преобразованы в цифровую форму. Это делается с помощью АЦП (аналого-цифровой преобразователь) в модуле аналоговых входов. Сигналы каждого входного канала, приходящего на один модуль преобразуются последовательно. Результат преобразования записывается в память результатов и остается там до тех пор, пока не перепишется новой величиной.

Время преобразования для различных модулей приводится в руководстве по модулям. Например, для модуля SM331 время преобразования для одного канала 3 ms. Дополнительное время преобразования для контроля обрыва провода 10 ms. Если канал не используется, то при параметрировании модуля отметьте его как “Deactivated” . Это позволит уменьшить время преобразования.

Аналоговая величина с номинальным диапазоном тока /

112

напряжения (выбирается при параметрировании модуля в утилите HW Config) преобразуется в модуле в число из диапазона от 0 до +27648 (для симметричных значений, например ±10V,

от -27648 до+27648).

Если аналоговая величина, превышает номинальное значение, то аналоговый модуль может выдать значение от 27648 до 32767. Считается, что при значении 32767 наступает переполнение.

Температура измеряется с помощью термосопротивлений и термопар. Результатами для номинальной области являются числа из десятикратного температурного диапазона. Например, для датчика Pt 100 и его температурного диапазона -200 до + 850 ºC получаем (при чтении аналогового канала) величину из диапазона -2000 до + 8500.

Процесс настройки канала АЦП иллюстрирует фрагмент экрана панели оператора, представленный на рис. 10.1.

Рис. 10.1. Обработка аналоговых входов

В процессе настройки оборудования оператор вводит значения кодов АЦП (X1, X2) и соответствующие им значения измеряемой физической величины (Y1, Y2) в двух точках, о т- снятым экспериментально. Для начала эти точки соответству-

113

ют паспортной характеристике датчика, затем эти точки уточняются экспериментально. Эти точки принадлежат прямой, являющейся фактической характеристикой датчика.

Реализуйте в своей программе расчет коэффициентов этой характеристики по событию: нажата кнопка ”Рассчитать коэффициенты заново“. Оператор при нажатии кнопки устанавливает некий бит (=1), после расчета коэффициентов этот бит сбрасывается (=0). Формула для расчета коэффициентов:

KA = (Y2 - Y1) / (X2 - X1); KB = Y1 – (KA * X1)

Текущее значение физической величины (Y) вычисляется по коду АЦП (X) в каждом цикле опроса: Y = KA * X + KB.

Для формирования предупредительных и аварийных сообщений оператору сформируйте четыре булевских переменных, сравнив текущее значение Y с верхней и нижней границами.

Программный блок целесообразно оформить как функциональный блок, пусть будет FB5. В этом блока в разделе входных переменных (IN) объявите имя переменной X - код АЦП. В разделе выходных переменных (OUT) объявите вычисленную нормированную физическую величину Y. Прочие переменные (коэффициенты, граничные значения и др.) разместите в разделе STAT.

Примечание: код АЦП имеет формат INT, физическая величина вычисляется в формате REAL, т.е. помимо математических операций потребуются операции конвертирования типов.

Как правило, в реальной программе аналоговых каналов обрабатываются не один, а несколько, и даже не один десяток каналов. Нецелесообразно для каждого из них создавать отдельный экземплярный блок данных (под FB5). Как разместить их все в од ном блоке? Создадим мультиэкземплярный функциональный блок FB50, полагая, что FB5 уже написан.

В интерфейсной части блока FB50 в разделе STAT объявите структурные переменные типа FB5. Количество этих переменных лучше иметь с запасом, т.е. создать резерв, даже если физически канал АЦП пока не существует. Это повлияет

114

только на размер общего для всех каналов экземплярного блока данных, который будет создан под FB50, пусть это будет

DB50.

Процедура (формулы) обработки канала АЦП описана внутри блока FB5, а данные хранятся в блоке DB50. Вызов FB5 для отработки очередного канала иллюстрирует рис 10.2.

Рис. 10.2. Создание мультиэкземлярного блока

В цепи FB50, правой кнопкой мыши активируйте контекстное меню, пункт Insert Empty Box, после символа # введите имя канала: #Chanel1 и т.д.

Сохранить FB50, создать под него DB50. Вызвать FB50 из OB35. Загрузить в PLCSIM. Варьируя значением кода АЦП (PIW256) зафиксировать результат (MD200). Пересылка результата в MD200 не является обязательной. Результат можно наблюдать, открыв блок DB50 в режим мониторинга.

115

10.6. Лабораторная работа № 6

Цель лабораторной работы № 6: изучение непрерывного PID-регулятора. Варианты заданий представлены в табл. 10.7.

 

Варианты заданий № 6

Таблица 10.7

 

 

 

 

 

 

 

 

 

Вариант

CYCLE

GAIN

TI

TD

 

1

100 ms

2.5

10 s

---

 

 

 

 

 

 

 

2

200 ms

1.5

12 s

5 s

 

 

 

 

 

 

 

3

300 ms

1.0

15 s

---

 

4

400 ms

0.5

20 s

10 s

 

 

 

 

 

 

 

5

500 ms

0.2

25 s

---

 

 

 

 

 

 

 

6

400 ms

0.3

20 s

3 s

 

 

 

 

 

 

 

7

300 ms

1.0

5 s

---

 

 

 

 

 

 

 

8

200 ms

1.5

10 s

15 s

 

 

 

 

 

 

 

9

100 ms

2.0

15 s

---

 

 

 

 

 

 

 

10

50 ms

2.5

6 s

2 s

 

 

 

 

 

 

 

Непрерывный PID-регулятор служит для управления техническими процессами с непрерывными входными и выходными величинами в системах автоматизации SIMATIC S7. Этот регулятор можно использовать отдельно как стабилизирующий PID-регулятор или в многоконтурных системах управления в качестве каскадного регулятора, для регулирования состава смеси или соотношения. Принцип действия основан на алгоритме PID-регулирования дискретного регулятора с аналоговым выходным сигналом, дополненного в случае необходимости формирователем импульсов для формирования ши- ротно-импульсных выходных сигналов для двухили трехпозиционных систем регулирования с пропорциональными исполнительными устройствами.

В стандартной библиотеке функциональный блок непрерывного регулятора называется FB41, символическое имя

116

"CONT_C", его блок-схема представлена на рис. 10.3.

Рис. 10.3. Блок-схема непрерывного PID-регулятора

Задающее значение (Setpoint) вводится на входе SP_INT в формате с плавающей точкой.

117

Фактическое значение (Process Value) может считываться в формате с плавающей точкой на входе PV_IN и в периферийном формате на входе PV_PER в зависимости от бита

PVPER_ON.

Значение PV_IN возьмем из предыдущей работы, как результат преобразования кода АЦП, тогда установим бит

PVPER_ON=0.

Значение SP_INT тоже возьмем из предыдущей работы, как половину диапазона измеряемой величины.

Разность заданного и фактического значения образует рассогласование. Для подавления небольших постоянных колебаний из-за дискретизации управляющего воздействия (например, при широтно-импульсной модуляции) рассогласование пропускается через зону нечувствительности (DEADBAND). При DEADB_W = 0 зона нечувствительности выключается.

PID-алгоритм работает как настраиваемый алгоритм. Пропорциональная, интегральная (INT) и дифференциальная (DIF) части включены параллельно и могут включаться и в ы- ключаться по отдельности. Благодаря этому можно установить с помощью параметризации P-, PI-, PD- и PID-регулятор. Но возможны также чистый I-регулятор или чистый D-регулятор. Селекторы P_SEL, I_SEL, D_SEL подключают (=1) либо отключают (=0) соответствующую компоненту.

Управляющее воздействие (выход регулятора) ограничивается задаваемыми значениями с помощью функции LMNLIMIT. Нарушение границ входной величиной отображается индикаторными битами.

Функция LMN_NORM нормирует выход LMNLIMIT в соответствии со следующими правилами: LMN = (Выход

LMNLIMIT) * LMN_FAC + LMN_OFF. По умолчанию LMN_FAC=1, LMN_OFF=0.

Функция CRP_OUT преобразует значение управляющего воздействия с плавающей точкой LMN в периферийное значе-

ние по следующей формуле: LMN_PER = LMN * 100 / 27648.

118

Добавьте из стандартной библиотеки в блоки Вашего проекта блок непрерывного регулятора FB41. Доступ к биб-

лиотеке: SIMATIC Manager -> File -> Open… -> Libraries -> Standard Library -> PID Control Blocks -> Blocks -> FB41.

Создаете под FB41 экземплярный блок данных DB41: Blocks -> Insert New Object -> Data Block -> Instance DB -> FB41 -> DB41.

Откройте DB41 для настройки PID-регулятора. Вам предстоит в соответствии с вариантом задания установить битыселекторы PID-алгоритма и его основные параметры:

CYCLE - время между вызовами блока FB41 должно соответствовать циклу организационного блока OB35 (выбирается при параметрировании CPU в утилите HW Config);

GAIN – пропорциональная составляющая, задает коэффициент усиления регулятора;

TI - время интегрирования, определяет временную характеристику интегратора;

TD - время воздействия по производной, определяет временную характеристику дифференциатора.

Требуется предусмотреть возможность переключаться между ручным и автоматическим режимами регулятора. В ручном режиме управляющее воздействие отслеживает значение MAN, вводимое вручную.

В ручном режиме интегратор (INT) внутренне устанавливается на LMN - LMN_P – DISV, а дифференциатор(DIF) устанавливается на 0. Благодаря этому переключение в автоматический режим происходит плавно.

Однако, следует позаботится об обратном переключении из автоматического режима в ручной. Подумайте, как это сделать, чтобы избежать удара.

Алгоритм пуска установки должен происходить следующим образом: при нажатии кнопки ”ПУСК“ регулятор стартует в ручном режиме, величина MAN = MAN_start = 20 %. Затем, по истечении 5 секунд регулятор переходит в автоматический режим.

119

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]