Файл: Микропроцессорная техника систем автоматизации. Лабораторный практикум.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 25.10.2023
Просмотров: 230
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
44
В данный кодовый блок в скобках нужно ввести переменные, являющиеся входными и выходными параметрами. Так, справа от параметра ″IN″ помещена подсказка _bool_in_, что говорит о том, что данный параметр является входным параметром блока таймера и на его месте должна быть указана переменная типа Bool. В качестве параметра ″PT″ (уставка) может быть указана как переменная типа Time, так и константа того же типа, например,
T#5s. Для выходного параметра Q нужно указать выходную переменную типа Bool, а для выходного параметра ET – переменную типа Time, в которой будет автоматически сохраняться накопленное значение времени, т. е. время, прошедшее с момента подачи сигнала на вход блока таймера. Параметр ET можно не указывать, если в этом нет нужды.
Таким образом, в программу нужно добавить все четыре исследуемых таймерных блока и в качестве их входных и выходных параметров задать определенные в проекте переменные так, как это показано ниже.
Код программы исследования работы таймеров на языке SСL
//однократный импульс "IEC_Timer_0_DB".TP(IN:="in0",
PT:=T#3s,
Q=>"out0",
ET=>"t0");
//включение с запаздыванием "IEC_Timer_0_DB_1".TON(IN:="in1",
PT:=T#5s,
Q=>"out1",
ET=>"t1");
//выключение с запаздыванием "IEC_Timer_0_DB_2".TOF(IN:="in2",
PT:=T#2s,
Q=>"out2",
ET=>"t2");
//включение с запаздыванием с накоплением времени "IEC_Timer_0_DB_3".TONR(IN:="in3",
R:="reset_in",
PT:=T#10s,
45
Q=>"out3",
ET=>"t3");
Загрузить программу в ПЛК и исследовать ее работу на стенде.
Для закрепления полученных знаний о работе таймерных блоков в ПЛК Simatic S7-1200 предлагается самостоятельно продумать решение приведенной ниже задачи управления электродвигателем ленточного транспортера, дополнить созданную программу необходимым кодом, реализующим это решение, и продемонстрировать преподавателю ее работу.
Задача управления ленточным транспортером
Имеется ленточный транспортер для транспортировки сухого комбикорма из бункера в смесительный бак для последующего приготовления жидкого корма. Транспортер приводится в движение электродвигателем, который включается и отключается через промежуточное реле и магнитный пускатель сигналом с дискретного выхода Q0.7 контроллера: Q0.7 = TRUE соответствует включенному состоянию транспортера, а Q0.7 = FALSE – выключенному. Включение и выключение электродвигателя производится кнопкой, подключенной к дискретному входу I0.7 контроллера. При нажатой кнопке (I0.7 = TRUE) двигатель должен быть включен, при отпущенной кнопке (Q0.7 = FALSE) – выключен.
Имеется также предупредительная звуковая сигнализация, управляемая сигналом с дискретного выхода Q0.6 контроллера.
Вход: I0.7 – кнопка включения/выключения электродвигателя.
Выходы:
Q0.6 – звуковая сигнализация;
Q0.7 – электродвигатель.
Постановка задачи
1. При нажатии кнопки включения сначала включается и в течение 2 с работает звуковая сигнализация. После отключения звуковой сигнализации включается электродвигатель транспортера.
2. При отключении кнопки электродвигатель отключается с задержкой 15 с, необходимой для очищения ленты транспортера от остатков транспортируемого корма.
46
Содержание отчета
1. Название и цель работы.
2. Схемы подключения дискретных входов и выходов к контроллеру.
3. Временные диаграммы изменения сигналов на входах и выходах исследуемых таймерных блоков.
4. Выводы.
Контрольные вопросы
1. Для каких целей используются таймерные блоки в программах ПЛК?
2. Какие таймерные блоки реализованы в ПЛК S7-1200?
3. Каково назначение входов и выходов блоков TP, TON, TOF?
4. Каково назначение входа R блока TONR?
5. В чем состоит отличие блока TONR от блока TON&?
47
ЛАБОРАТОРНАЯ РАБОТА № 4
РАЗРАБОТКА ПРОГРАММЫ ПЛК С РЕАЛИЗАЦИЕЙ
СТАНДАРТНЫХ ФУНКЦИЙ СЧЕТЧИКА
Цель работы: изучение функций счетчика и принципов его использования в программах для ПЛК.
Информация для выполнения лабораторной работы
Во многих задачах автоматизации есть необходимость в подсчете чего-либо. Например, от ПЛК можно потребовать подсчитать число предметов партии или зарегистрировать, сколько раз произойдет некоторое событие, а для больших электродвигателей – зафиксировать количество включений. Для этих целей в ПЛК реализованы системные функциональные блоки, выполняющие функции счетчиков.
В
ПЛК
Simatic
S7-1200 реализованы следующие функциональные блоки счета:
CTUD – реверсивный счетчик;
CTU – суммирующий счетчик;
CTD – вычитающий счетчик.
Каждый счетчик для сохранения всех необходимых данных счета использует структуру, хранящуюся в связанном с ним системном
(т.е. автоматически создаваемом системой
Simatic Step 7) блоке данных. В табл. 15 перечислены все переменные, входящие в системный блок данных счета.
Таблица 15
Переменные системного блока данных счетчика
Параметр
Тип
данных
В каких
счетчиках
используется
Описание
CU
Bool
CTU, CTUD
При подаче положительного фронта сигнала на вход CU текущее значение счета
CV увеличивается на 1
48
Окончание таблицы 15
Параметр
Тип
данных
В каких
счетчиках
используется
Описание
CD
Bool
CTD, CTUD
При подаче положительного фронта сигнала на вход CD текущее значение счета
CV уменьшается на 1
R
Bool
CTU, CTUD
Сборс значения счетчика в
0 : при подаче положительного фронта сигнала на вход R текущее значение счета CV становится равным 0
LOAD
Bool
CTD, CTUD
Загрузка предустановленного значения: при подаче положительного фронта сигнала на вход LOAD текущее значение счета
CV становится равным значению уставки PV
PV
SInt, Int,
Dint,
USInt, UInt,
UDInt во всех трех
Уставка
QU
Bool
CTU, CTUD
Истина (TRUE), если
CV≥PV
QD
Bool
CTD, CTUD
Истина (TRUE), если
CV≤0
CV
SInt, Int,
Dint,
USInt, UInt,
UDInt во всех трех
Текущее значение счета
При написании программы, когда функциональный блок счетчика помещается в текст программы, связанный с ним блок данных создается автоматически в памяти контроллера.
49
Принцип организации работы счетчика приведен на рис. 17.
Работа счетчика характеризуется двумя числами. Первое из них – это текущее значение (current value – CV). Текущее значение CV увеличивается на 1 при переходе сигнала 0→1 на суммирующем входе и уменьшается при переходе сигнала 0→1 на вычитающем входе. Текущее значение CV может быть сброшено в 0 путем подачи сигнала 1 на вход сброса счетчика R (reset).
Следующее число – это уставка (preset value – PV), которую можно рассматривать как заданную цель для счетчика. Если текущее значение CV достигает значения уставки, сигнал на выходе QU устанавливается равным 1. Если же текущее значение счетчика CV меньше либо равно 0, то в 1 устанавливается сигнал на выходе QD.
Текущее значение CV может быть установлено равным значению уставки PV путем подачи сигнала 1 на вход LOAD загрузки предустановленного значения.
Рис. 17. Принцип организации работы счетчика
Значение уставки PV может быть изменено программно, например, путем ввода нужного числа пользователем с помощью сенсорной панели оператора.
50
Реализованный в Simatic S7-1200 суммирующий счетчик CTU позволяет выполнять счет вверх (count up – CU) и сброс CV в нулевое значение. Вычитающий счетчик CTD позволяет выполнять счет вниз (count down – CD) и установку CV равным значению уставки PV. Реверсивный счетчик CTUD (count up and down –
CTUD) выполняет счет в обоих направлениях.
Порядок выполнения лабораторной работы
В процессе выполнения лабораторной работы для закрепления сведений о функциональных блоках счетчиков CTU, CTD и CTUD, реализованных в ПЛК Simatic S7-1200, необходимо создать новую программу, в которой задействовать все указанные блоки, и исследовать ее работу на лабораторном стенде.
Запуск интегрированной среды разработки TIA Portal V13, создание в ней нового проекта и конфигурация используемого аппаратного оборудования описаны на стр. 19.
Для определения символьных имен используемых в программе переменных выбрать в дереве проекта (Project tree) пункт
PLC_1→PLC tags→Default tag table, открыть таблицу символьных имен переменных, в которой определить символьные имена для следующих переменных (табл. 16).
Таблица 16
Символьные имена используемых в проекте переменных
Name
Data
Type
Logical
Address
Comment in0
Bool
%I0.0 Дискретный вход 0 in1
Bool
%I0.1 Дискретный вход 1 in2
Bool
%I0.2 Дискретный вход 2 in3
Bool
%I0.3 Дискретный вход 3
In4
Bool
%I0.4 Дискретный вход 4
51
Окончание таблицы 16
Name
Data Type
Logical
Address
Comment
In5
Bool
%I0.5 Дискретный вход 5
In6
Bool
%I0.6 Дискретный вход 6
In7
Bool
%I0.7 Дискретный вход 7 out0
Bool
%Q0.0 Дискретный выход 0 out1
Bool
%Q0.1 Дискретный выход 1 out2
Bool
%Q0.2 Дискретный выход 2 out3
Bool
%Q0.3 Дискретный выход 3 cv0
Int
%MW0
Текущее значение суммирующего счетчика cv1
Int
%MW2
Текущее значение вычитающего счетчика cv2
Int
%MW4
Текущее значение реверсивного счетчика
Далее необходимо добавить в проект новый кодовый блок типа
Organization Block, Program cycle – организационный блок циклического исполнения с вводом программы на языке SCL.
Необходимые для этого действия описаны на стр. 20.
Так как счетчики являются готовыми к использованию системными функциональными блоками, реализованными в пакете
Simatic Step 7, для их ввода в программу следует не набирать вручную соответствующий код, а подобно таймерам (см. стр. 43), перетащить нужный счетчик в нужное место программы мышью с вкладки Instructions→Basic instructions→Counter operations на панели
Instruction.
При этом среда Simatic Step 7 автоматически предложит создать новый системный блок данных, связанный с функциональным блоком счетчика, и в появившемся диалоговом окне ″Call options″
52 предложит ввести название блока данных. В данном случае необходимо согласиться с предлагаемым по умолчанию вариантом и просто нажать OK. В результате этого в рабочем окне ввода программы появится кодовый блок счетчика, имеющий примерно следующий вид:
"IEC_Counter_0_DB".CTU(CU:=_bool_in_,
R:=_bool_in_,
PV:=_in_,
Q=>_bool_out_,
CV=>_out_);
В данный кодовый блок в скобках нужно ввести переменные, являющиеся входными и выходными параметрами. Так, справа от параметра ″CU″ помещена подсказка _bool_in_, что говорит о том, что данный параметр является входным параметром блока счетчика и на его месте должна быть указана переменная типа
Bool. В качестве параметра ″PV″ (уставка) может быть указана как переменная неотрицательная (≥0) переменная одного из целочисленных типов данных (SInt, Int, Dint, USInt, UInt, UDInt), так и просто число-константа того же типа, например, 5. Для выходного параметра Q нужно указать выходную переменную типа
Bool, а для выходного параметра CV – переменную того же целочисленного типа, что и для PV. Параметр CV можно не указывать, если в программе в этом нет нужды.
Таким образом, в программу нужно добавить все три исследуемых счетчика и в качестве их входных и выходных параметров задать определенные в проекте переменные так, как это показано ниже.
Код программы исследования работы таймеров на языке SСL
// суммирующий счетчик "IEC_Counter_0_DB".CTU(CU:="in0",
R:="in1",
PV:=4,
Q=>"out0",
CV=>"cv0");
// вычитающий счетчик
53
"IEC_Counter_0_DB_1".CTD(CD:="in2",
LD:="in3",
PV:=7,
Q=>"out1",
CV=>"cv1");
// реверсивный счетчик "IEC_Counter_0_DB_2".CTUD(CU:="in4",
CD:="in5",
R:="in6",
LD:="in7",
PV:=6,
QU=>"out2",
QD=>"out3",
CV=>"cv2");
Загрузить программу в ПЛК и исследовать ее работу на стенде.
Для закрепления полученных знаний о работе счетчиков в ПЛК
Simatic S7-1200 предлагается самостоятельно продумать решение приведенной ниже задачи упаковки предметов, создать в TIA Portal новый проект, в котором реализовать решение этой задачи на языке
SCL, загрузить созданную программу в контроллер и продемонстрировать преподавателю ее работу.
1 2 3 4 5 6 7 8 9 10