Uploaded by v_zelenov

ЛОГИКА И ПРОГРАММИРОВАНИЕ Упражнения STEP 7. Составил A. Sedjakin Tallinna Tööstushariduskeskus

advertisement
ЛОГИКА И ПРОГРАММИРОВАНИЕ
Упражнения STEP 7
Составил: A. Sedjakin
Tallinna Tööstushariduskeskus
2011
Содержание:
S0. Диагностика.
3
S1. Программирование в различных языках программирования. 5
S2. Однобитовые операции.
8
S3. Операции сдвига и ротации.
11
S4. Арифметические операции. Блоки сравнения.
14
S5. Глобальные переменные.
17
S6. Локальные переменные.
19
S7. Таймеры.
21
S8. Счетчик.
23
2
S 0. Средства диагностики контроллера S7-200.
Задание. Диагностика контроллера S7-200.
1. Кнопки и лампы соединены с блоком входа/ выхода контроллера в
произвольном порядке (не последовательно!).
2. Для поиска адресов элементов входа/ выхода использовать инструмент
диагностики контроллера: STATUS CHART.
3. Нажимая на любую кнопку, загорается лампа с соответствующим номером, а
также лампа h6.
4. При нажатии одновременно 2-х и более кнопок загорается лишь лампа h6.
Рис. 1. Схема устройства (рисунок автора).
h1
S1
h2
h3
S2
S3
h4
S4
h5
h6
S5
Источники информации: S1 - S5 кнопки пульта
Исполнительные устройства: h1 – h6 лампы пульта
Ход работы
1. Поиск адресов.
1. Заполнить таблицу STATUS CHART: для этого набрать первый адрес входа i0.0.
Дальше нажимать ENTER – таблица будет заполнена автоматически. Те же
действия для выходов.
Рис. 2. Таблица STATUS CHART (рисунок автора).
2. Активизировать режим ON-LINE:
3. Нажимать поочередно кнопки и контролировать изменение их состояния в
таблице STATUS CHART. Записать адреса кнопок в тетрадь.
3
4. Присвоить клеммам выхода новое значение „1” (NEW VALUE), вслед за этим
форсировать их изменение
. Следить за поведением ламп. Выписать адреса
ламп.
Рис. 3. Контроль состояния элементов с помощью STATUS CHART.
5. Заполнить SYMBOL TABLE.
2. Программа.
Закончить аналитическое описание и составить программу управления.
H1 =1, если S1 and no S2 and no S3 and no S4 and no S5
H2 =1, если …
H3 =1, если …
H4 =1, если …
H5 =1, если …
H6 =1, если S1 or S2 or S3 or S4 or S5
Трансляция программы в контроллер:
3. Поиск ошибок с помощью таблицы STATUS CHART или с помощью функции
PROGRAMM STATUS:
4
S1. Программирование в различных языках программирования.
Задание. Десятично-двоичный шифратор.
Устройство, с помощью которого можно автоматически преобразовывать числа из
одного числового кода в двоичный код, называется шифратором (кодером).
Вариант 1. Условием работы такого шифратора является то, что одновременно на
входе устройства может быть активным только один вход. Это означает, что в
таблице истинности не может быть комбинаций входных величин.
Таблица 1. Таблица истинности десятично-двоичного шифратора.
0
1
2
3
4
5
6
7
8
9
Десятичное число /
Двоичное число
Входы
Выходы
S1 S2 S3 S4 S5 S6 S7 S8
H4
H3
H2
H1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
* пустые клетки для выходных переменных соответствуют нулевому состоянию.
Источники информации: кнопки S1 - S8 соответствуют десятичные числа от 1 до 8.
Контроллер S7 – 222 имеет лишь 8 физических входов.
Исполнительные устройства: лампы H1, H2, H3, H4 соответствуют разрядам
двоичного числа: 0, 1, 2, 3.
Ход работы.
1. Найдите функцию в СНДФ для каждого выхода, используя таблицу
истинности дешифратора.
H1 =
H2 =
H3 =
H4 =
S1 + S3 + S5 + S7 + (S9)
…
…
…
2. Составьте программу в FBD.
Рис. 1. Закончить программу в FBD(рисунок автора).
S1 S2
S3
S4
S5
S6
S7 S8
≥1
H1
≥1
≥1
H2
H3
H4
5
3. Составьте программу в LDR.
Рис. 2. Закончить программу в LDR (рисунок автора).
H1
S1
H3
H2
H4
S3
S5
S7
4. Составить таблицу символов по заданной электрической схеме.
Рис. 3. Электрическая схема устройства (предложение автора).
S0
X1/1
XL+
L+
+24V DC
M
M
H1
L+
H2
H3
H4
M
PE
0.0
0.1
0.2
0.3
0.4
L+
M
L+
M
0.5
OUTPUT
S7-222 DC/DC/DC
INPUT
M
0.0
S1
0.1
S2
0.2
S3
0.3
S4
0.4
S5
0.5
S6
0.6
S7
0.7
S8
L+
Таблица 2. Таблица символов. Закончить на основании электрической схемы.
Символ
Адрес
Комментарий
S1
I0.0
1
S2
…
2
…
…
…
Н1
…
Q0.2
…
0-й разряд
…
5. Загрузка программы управления.
 Создать проект управления.

Проверить синтаксис программы. Для этого компилировать проект:
6

Если ошибок нет, то транслировать проект в контроллер
.
Микропереключатель режима работы должен быть включен режим ТЕРМ или
RUN.
6. Сетевые настройки системы.
Если загрузка проекта не удалась, то необходимо проверить наличия сетевого
соединения в окне COMMUNICATION.
В случае отсутствия сети поверить:
1. Наличие питания на самом контроллере
2. Программные установки на соответствие реальному подключению кабеля PPI
(COM1, COM2 или USB). Убедиться в том, что в программе выбран
соответствующий порт подключения и правильно выбрана коммуникационная карта.
Также необходимо снять птичку с опции Multiple master network, если в сети нет
нескольких контроллеров.
3. Скорость обмена данными на 9,6 кбит/сек (микропереключатели на кабеле PPI).
Вариант 2. Дополнительно к условиям варианта 1. При нажатии одновременно
двух любых кнопок лампа Н5 начинает мигать (Т = 1 сек).
Ход работы:
1. Обозначим ситуацию, когда одновременно нажато 2 или больше кнопок меркером
М1 (адрес любой: от М0.0 до М30.7).
Функция для М1.
М1 = 1•2 + 1•3 +1•4 +1•5 +1•6 +2•3 +2•4 +2•5 +2•6 + 3•4+ 3•5+ 3•6+ 4•5+ 4•6+ 5•6
2. Для каждой лампы необходимо добавить ограничение: И-НЕ М1
3. Пульсация (полупериод 0,5s.) задается генератором SM0.5.
SM0.5
Рис. 4. Программирование генератора.
7
S2. Однобитовые операции STEP 7.
Задание. Указатель свободных мест на стоянке.
1. № лампы табло указывает на количество свободных (пустых) мест. Наличие
автомобиля на площадке определяется датчиками В.
2. Для контроля адресов элементов входа/ выхода использовать инструмент
диагностики контроллера: STATUS CHART.
Рис. 1. Схема стоянки (рисунок автора).
B1
B2
B3
B4
h1
h2
h3
h4
1
2
3
4
Vabad kohad
Источники информации: В1 – В4 датчики, реагирующие на наличие автомобиля.
Исполнительные устройства: h1 – h4 лампы табло.
Ход работы.
1. Логическая функция представляет собой однотактный автомат (выход
незамедлительно реагирует на изменение входных величин). Логическую функцию
можно составить, используя СНДФ. Если количество входов 4, то возможных
комбинаций 16.
Таблица истинности 1. Закончить.
№
В1
В2
В3
В4
H1
H2
H3
H4
1
0
0
0
0
2
1
3
1
4
1
1
5
1
6
1
1
7
1
1
8
1
1
1
1
9
1
10
1
1
11
1
1
12
1
1
1
1
13
1
1
14
1
1
1
1
15
1
1
1
1
16
1
1
1
1
8
Закончить СНДФ.
Н1= noB1•B2•B3•B4 + B1•noB2•B3•B4 + B1•B2•noB3•B4 + B1•B2•B3•noB4
Н2=
Н3=
Н4=
2. Поиск адресов.
1. Заполнить таблицу STATUS CHART: для этого набрать первый адрес входа i0.0.
Дальше нажимать ENTER – таблица будет заполнена автоматически. Те же
действия для выходов.
Рис. 2. Заполнение таблицы STATUS CHART (рисунок автора).
2. Активизировать режим ON-LINE:
3. Нажимать поочередно кнопки и контролировать изменение их состояния в
таблице STATUS CHART. Записать адреса кнопок в тетрадь.
4. Присвоить клеммам выхода новое значение „1” (NEW VALUE), вслед за этим
форсировать их изменение
. Следить за поведением ламп. Выписать адреса
ламп.
Рис. 3. Контроль состояния элементов с помощью STATUS CHART (рисунок автора).
5. Заполнить SYMBOL TABLE.
Последовательность работы.
1. Составить электрическую схему.
2. Включить питающее напряжение. Положения переключателя режима работы в
среднее положение TERM.
3. STATUS CHART: 1)заполнить; 2) контроль адресов
9
4. Написать программу и компилировать ее:
5. Трансляция программы в контроллер:
6. Поиск ошибок с помощью таблицы STATUS CHART или с помощью функции
PROGRAMM STATUS:
10
S3. Операции сдвига и ротации.
Вариант 1. Указатель свободных мест на стоянке.
1. № лампы табло указывает на количество свободных (пустых) мест. Наличие
автомобиля на площадке определяется датчиками В.
2. Для контроля адресов элементов входа/ выхода использовать инструмент
диагностики контроллера: STATUS CHART
Рис. 1. Схема стоянки (рисунок автора).
h1 h2 h3 h4
B1
B2
B3
B4
1
2
3
4
Vabad kohad
Источники информации: В1 – В4 датчики, реагирующие на наличие автомобиля.
Исполнительные устройства: h1 – h4 лампы табло.
Ход работы.
1. Подключить лампы в соответствии с адресами, указанными в таблице.
Принцип работы: управлять лампами возможно с использованием
многобитовых операций загрузки и сдвига битов операнда QB0.
Таблица 1. Загрузка и пошаговый сдвиг.
Адреса выхода
Лампы
Загрузить «1» → QB0,
SM0.1→MOV
Сдвиг влево (прибытие авто), SHL, ROL
+1
+2
+3
Сдвиг вправо (выезд авто), SHR, ROR
-1
Q0.3
h1
Q0.2
h2
Q0.1
h3
Q0.0
h4
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
2. Первичную загрузку «1» в первый бит QB0 произвести при включении режима
RUN с помощью стартового бита SM0.1, который активен только первый кадр
сканирования в режиме RUN. В результате этого активным станет бит QB0.0, к
которому подключена лампа h4.
11
Рис. 2. Пример первичной загрузки (рисунок автора).
3. При прибытии авто (позитивный фронт датчиков В1 или В2 или В3 или В4)
производится сдвиг (ротация) битов операнда QB0 влево. Соответственно начнет
гореть следующая лампа. При этом горит только одна лампа, т.к. активен только 1
бит операнда QB0.
При отъезде авто (негативный фронт датчиков В1 или В2 или В3 или В4)
производится сдвиг (ротация) битов операнда QB0 вправо.
Программа реагирует на изменение значений датчиков (импульсная логика):
позитивный фронт: |P| ; негативный фронт: |N| .
- появление автомобиля: Вn→|P|→ROL.
- убытие автомобиля: Вn→|N|→ROR.
Рис. 3. Пример операции сдвига (рисунок автора).
Вариант 2.
Для определения въезда или убытия автомобилей установлено толькодва
лучевых датчика (I1 и I2), которые кратковременно включаются в
определенной последовательности:
1. При въезде автомобиля: I1, I2
2. При выезде: I2, I1
Рис. 4. Схема определения направления движения автомобиля (рисунок автора).
I2
I1
При необходимости использовать промежуточные однобитовые операнды.
Например, M0.0 и M0.1 (указаны адреса, т.е. заносить в таблицу символов не
требуется). Применить операции SET и RESET.
Рис. 5. Схема решения (рисунок автора).
I1 and no
M0.1
SET
M0.0
RESET
M0.0
I2
V0.0
ROL
12
Проблема: при окончании пересечения датчиков один из меркеров остается
включенным. Это означает то, что другой автомобиль начал пересечение в
обратном направлении. По окончанию процесса пересечения выключить все
переменные!
Вариант 3. При заполнении мест лампа h5 начинает мигать
(генератор SM0.5).
13
S4. Арифметические операции. Блоки сравнения.
Кодовый замок.
Замок открывается при наборе
PIN - кода (открытие имитируется
лампой Н1).
При ошибке набора должна
загореться красная лампа Н2,
которая блокирует дальнейший набор
PIN - кода. Для снятия блокировки
использовать кнопку Cancel.
Управление содержит 2 кода, который
переключается кнопкой S6.
Элементы управления.
Рис. 1. Схема устройства (рисунок автора).
S1 – S5 кнопки набора
S6 – с фиксатором, выбор кода: PIN1
или PIN2
S7 – сброс блокировки Cancel
Н1 – (зелѐная) замок открыт
Н2 – блокировка набора, включение аварии
Алгоритм решения.
1. Присвоить каждой кнопке пульта конкретное арифметическое действие с
переменной, например VW0, а результат сохранять в той же переменной памяти.
Рис. 2. Действия с переменной (рисунок автора).
Таблица 1. Пример. Код 13245. Исходное значение VW0 равно 0.
Кнопки
Действие
Операция
Значение VW0
Промежуточный
результат
S1
ADD
VW0 + 5 = VW0
0+5=5
5
S3
ADD
VW0 + 7 = VW0
5 + 7 = 12
12
S2
SUB
VW0 - 3 = VW0
12 - 3 = 9
9
S4
MUL
VW0 x 2 = VW0
9 x 2 = 18
18
S5
DIV
VW0 : 3 = VW0
18 : 3 = 6
Конечный
результат 6
2. Замок откроется, если совпадет конечный результат (блок сравнения).
14
Рис. 3. Замок открыт, если переменная VW0 равна заданному числу (рисунок
автора).
3. Программировать возврат в начальное положение при нажатии кнопки Cancel или
после отключения замка Н1→|N|.
Вариант 1: Создать программу без блокировки: при неправильном наборе лампа
Н2 не включается, а также можно нажимать кнопки неограниченное количество раз и
в разной последовательности.
Код 1 не содержит повторных цифр (минимально 3 цифры). Подпрограмма SBR_0.
Код 2 содержит повторяющиеся цифры. Подпрограмма SBR_1.
Выбор подпрограммы осуществлять кнопкой с фиксатором S6.
Содержание основной программы MAIN:
1. Вызов подпрограмм (SBR_0, SBR_1)
Рис. 4. Вызов подпрограммы SBR0 и SBR1 (рисунок автора).
Сброс содержания переменной VW0 в 2-х случаях: кнопкой S7 или при отключении
ламп
Содержание подпрограмм SBR_0, SBR_1:
1. Арифметические действия с переменной VW0
2. Управление лампой
Вариант 2. Простейшая блокировка набора.
После каждого нажатия кнопки сверять промежуточный результат с заранее
просчитанным числом (контрольной суммой).
Если любой промежуточный результат окажется не равным заранее
просчитанному, то включить лампу Н2, которая блокирует дальнейший набор кода.
Сравнение промежуточного результата можно выполнить следующим способом:
Для данного примера VW0 может принимать только следующие значения: 5, 6, 9, 12,
18.
Set H2, если (VW0 не равен 5) или (VW0 не равен 6) …
15
Однако, недостатком данного способа является то, что промежуточный результат
может совпасть с указанными значениями, не соблюдая последовательность набора
кода.
Вариант 3. Разработать такую систему, чтобы промежуточная сумма
сравнивалась бы с контрольной суммой для каждого шага!
Возможные решения.
1. использовать сдвиг дополнительного многобитового меркера (например МВ0, в
котором будет перемещаться единица), пошагово активизируя биты этой
переменной. При этом, начальное значение этого байта должно равняться 1 (М0.0 =
1) при включении RUN (SM0.1) или при сбросе.
Нажатие на любую кнопку пульта приводит к сдвигу единицы влево.
Сравнение промежуточной величины выполнять только при активизации
соответствующего бита!
Set H2, если (M0.1 и промежуточная сумма VW0 не равна „5” ) или (…) …
2. использовать счетчик, который определяет последовательность ввода цифр кода:
Set H2, если (Сnt0=1 и промежуточная сумма VW0 не равна „5” ) или (…) …
3. сравнивать содержание VW0 после каждого шага с промежуточным результатом.
Рис. 5. Контроль промежуточной суммы (рисунок автора).
16
S5. Глобальные переменные.
Имитация работы лифта.
Нажав кнопку вызова, лифт начинает двигаться в указанном направлении. Движение
имитировать поочередным загоранием ламп этажей со скоростью 1 этаж/ 2 секунды.
При достижении цели лампа выбранного этажа начинает гореть постоянно.
Элементы управления.
1. Входы. Кнопки выбора этажа: S1 – S6
2. Выходы.
Актуальный этаж: H1 – H6
3. Переменные.
Меркер, который хранит значение целевого
этажа: VW0.
Меркер, который хранит значение
актуального этажа: VW2.
Алгоритм решения.
1. Для первичной загрузки числа «1» в
актуальный этаж:
„1“→ MOV→VW2, если SM0.1
2. Лампы указывают на актуальное
положение лифта:
Лампа Н1 горит, если VW2=1
Лампа Н2 горит, если VW2=2 и т.д.
3. Выбор этажа. В переменную VW0 загрузить
соответствующее число:
VW0=1, если S1
VW0=2, если S2 и т.д.
h6
S6
h5
S5
Цель
h4
h3
h2
h1
S4
S3
S2
Актуальный
этаж
S1
Рис. 1. Схема устройства (рисунок автора).
4. Изменение актуального этажа.
Если значение желаемого VW0 и актуального VW2 этажей не равны, то
осуществить изменение актуального этажа за 1 такт генератора на 1 этаж.
При этом, если VW0 больше, чем VW2 , то необходимо увеличить значение
актуального этажа VW2 на один,
Если, наоборот, то уменьшить на один.
VW2 =VW2 + 1, если VW0 больше, чем VW2 (лифт ниже выбранного этажа)
VW2 =VW2 - 1, если VW0 меньше, чем VW2 (лифт выше выбранного этажа)
5. Скорость лифта. Генератор.
Для автоматического перемещения лифта с заданной скоростью (по очередное
загорание ламп) использовать генератор прямоугольных импульсов SM0.5 (T=1s.).
17
Вариант 1.
1. По заданному алгоритму закончить
аналитическое описание.
1. Загрузить число «1» в VW2, если SM0.1
2. Выбор этажа
Загрузить число «1» в VW…, если …
start
Первичная загрузка
Загрузить число 1 в VW2
Выбрать этаж
Загрузить число в VW0
Загрузить число «2» в VW…, если …
…………………………………….
ei
Если VW0 > VW2,
Загрузить число «6» в VW…, если ….
3. Увеличить этаж
VW2= VW2 + 1, если VW… VW… and SM0.5↑
ja
VW2 = VW2 +1
4. Уменьшить этаж
VW2= VW2 - 1, если VW… VW… and SM0.5↑
ei
5. Положение лифта
Лампа Н1 горит, если VW2= …
……………………………………..
Если VW0 < VW2,
Лампа Н6 горит, если VW2= …
VW2 = VW2 - 1
ja
Лампа Н1 горит, если VW2=1
Лампа Н6 горит, если VW2=6
Рисунок автора.
Рис. 2. Алгоритм решения.
Вариант 2.
Имитировать работу мотора лифта:
лампа Н6 мигает, если лифт движется вверх,
лампа Н1 мигает, если лифт движется вниз. При этом у этих ламп два режима:
мигает или горит постоянно при достижении лифтом указанного этажа.
Вариант 3.
Имитировать работу двери лифта с помощью виртуальной клеммы Q0.6.
Двери лифта откроются только после достижения лифта заданного этажа
(активирован выход Q0.6).
Двери лифта закроются через 3s. Лифт может начать свое движения (и нельзя
произвести выбор этажа) только после полного закрытия дверей (выключен выход
Q0.6).
18
S6. Локальные переменные.
Имитация работы насосной станции.
Имеется два резервуара, которые управляются с общего пульта управления.
Выбор управляемого резервуара осуществляется кнопкой с фиксатором S0.
Актуальный уровень воды имитируется глобальной переменной VW0.
H2, 3 l/s.
S1↑, 5 l/kord
H2
H1
H1, 1 l/s.
140 (280)
120 (240)
100 (200)
max
kesk
min
Рис. 1. Схема устройства (рисунок автора).
Резервуар наполняется через трубу порционно при нажатии кнопки S1 - 5 литров /1
импульс.
Вода из резервуара откачивается насосами (имитируется лампами H1 и H2)
порционно на каждый импульс генератора SM0.5:
 H1: „pump1“ литров /1 импульс.
 H2: „pump2“ литров /1 импульс.
Переменные „pump1“ и „pump2“ задаются при вызове подпрограмм SBR0 и SBR1.
Насос H1 включается, если вода превышает уровень „kesk“.
Насос H2 включается, если вода превышает уровень „max“.
Оба насоса выключаются, если уровень меньше или равен „min“.
Характеристики резервуаров и насосов.
Резервуар 1:
Уровни: „min“ – 100, „kesk“ – 120, „max “ – 140.
Мощность насосов: „pump1“ – 1, „pump2“ – 3.
Резервуар 2:
Уровни: „min“ – 200, „kesk“ – 240, „max “ – 280.
Мощность насосов: „pump1“ – 3, „pump2“ – 4.
Элементы управления.
1. Входы. S0 – выбор резервуара. S1 – подача воды (5 литров /1 импульс)
2. Выходы. H1 – насос 1. H2 – насос 2.
3. Переменные.
VW0 – актуальный уровень воды.
19
Локальные переменные уровней „min“, „kesk“, „max “, „pump1“ , „pump2“ резервуаров
и мощности насосов задаются при вызове подпрограмм SBR0 и SBR1.
Первый шаг. Создаются подпрограммы SBR0 и SBR1, в которых объявляются
локальные переменные „min“, „kesk“, „max “, „pump1“ , „pump2“ . Подпрограмма SBR1
объявляется из верхнего меню: Edit – Insert – Subroutine.
Рис. 2. Открытие редактора подпрограммы (рисунок автора).
Рис. 3. Объявление локальных переменных (рисунок автора).
Подпрограмма SBR0 и SBR1. Использовать арифметические операции (в формате
INT) и блоки сравнения (compare).
1. Наполнение резервуара: VW0=VW0 + 5, kui S1→│P│
2. Set H1, если │VW0≥“???“│, reset H1, если │VW0<“???“│
3. Set H2, если │VW0≥ „???“│, reset H2, если │VW0<“???“│
4. Уменьшение уровня насосом H1: VW0=VW0 – „pump1“, если (H1 AND
генератор SM0.5)→│P│
5. Уменьшение уровня насосом H2: VW0=VW0 – „pump2“, если (H2 AND
генератор)→│P│
Основная программа MAIN.
1. Вызов подпрограммы SBR0 (резервуар 1 с локальными переменными), если S0
2. Вызов подпрограммы SBR1 (резервуар 2 с локальными переменными), если noS0
Рис. 4. Редактирование основной программы (рисунок автора).
20
S7. Таймеры.
Светофор.
Запрограммировать работу двух
светофоров пешеходного перехода:
светофор 1- для автомобилей, а светофор 2
- для пешеходов.
2
1
Элементы управления.
1. Входы. S1 – кнопки запуска; S2 – ночной
режим.
STOPP
2. Выходы.
Лампы светофора: H1 – H5.
Рис. 1. Схема устройства (рисунок автора).
Вариант 1. Режим светофора запускается однократно кнопкой S1.
H1
H2
H3
H4
H5
4s
T1
2s
6s
2s
4s
6s
T2
T3
T4
T5
T6
t, s
Рис. 2. Диаграмма работы светофора (рисунок автора).
Пояснение. Задание имеет несколько решений. Одно из них является поочередное
переключение меркеров М1 – М6 с использованием функций таймеров: TON или
TOF.
21
1
2
3
4
5
6
S1
T1
M1
T2
M2
T3
M3
T4
M4
T5
M5
T6
M6
4s
2s
6s
2s
4s
6s
t, s
Рис. 3. Диаграмма переключения меркеров (рисунок автора).
Закончить аналитическое описание (на базе TON).
М1
Set M1: S1 and no M1 and no M2 and no M3 and no M4 and no M5
Reset M1: T1
М2
Set М2: T1
Reset M2: T2
…
Лампы
Н1 = М1 or М2 or …
Н2 = М2 or …
…..
Вариант 2. Зеленый свет в конце своей работы должен мигать
непродолжительное время (пол-интервала).
T3
M3
T7
M7
H3
Рис. 4. Диаграмма работы меркера М7.
Вариант 3.
В установленное время светофор переключается в ночной режим (S2): мигает
желтый цвет.
22
S8. Счетчик.
Элементы управления:
М0.0 – мотор мельницы.
H4 – циклы работы мотора мельницы.
H1 – H3 - индикационные лампы, которые указывают на начало процесса загрузки
деталей.
Источник информации: S1 – фотодатчик, определяющий поступление деталей в
мельницу (симулируется кнопкой).
2s.
2s.
S1
H1
H2
H4
Рис. 1. Схема работы устройства (рисунок автора).
Задание.
Мотор мельницы совершает столько циклов работы (вспышки лампы Н4),
сколько деталей загружено в мельницу.
Вариант 1. Загрузка мельницы осуществляется по 2-м линиям.
Вариант 2. Загрузка мельницы осуществляется по 3-м линиям.
Во время загрузки с первой линии горит лампа Н1, во время загрузки со второй
линии – лампа Н2, с 3-й – Н3. Загрузка с линий осуществляется поочередно.
Загрузка начинается автоматически: в момент поступления первой детали на
первой линии (set H1).
Конец загрузки первой линии и начало загрузки второй линии (reset H1, set Н2)
определяется по отсутствию деталей на линии в течении 2 секунд.
Конец загрузки 2. линии (reset H2) определяется по отсутствию деталей на линии
в течении 2 секунд. И т.д.
Структура программы.
Основная программа MAIN: подсчет поступивших деталей по линиям. Включение
мотора М0.0 вызывает подпрограмму SBR0.
Подпрограмма SBR0: циклы работы мотора мельницы – мигание лампы H4 –
выключение мотора М0.0 и выход в основную программу.
Шаг 1: Ввод подпрограммы SBR0.
Рис. 2. Ввод подпрограммы (рисунок автора).
Шаг 2: инициализация локальных переменных в SBR0. Переменная „mitu“
определяет предустановленное значение счетчика с0 – количество импульсов
лампы Н4.
23
Рис. 3. Инициализация локальных переменных (рисунок автора).
Шаг 3: Ввод основной программы MAIN.
Работа счетчиков.
Требуют обязательного обнуления в конце цикла работы (обычно задний фронт
управляемого объекта).
Алгоритм решения. Основная программа MAIN.
1. Включение 1-й загрузки:
set H1, kui S1 and no H1 and no H2
2. Выключение 1-й загрузки, включение 2-й загрузки:
reset H1 ja set H2, kui (H1 and noS1) →T101 (2s)
3. Выключение 2-й загрузки:
reset H2, kui (H2 and noS1) →T102 (2s)
4. Подсчет деталей 1-й линии:
(H1 and S1) →с1 (reset M0.0→│N│)
Рис. 4. Подсчет поступивших деталей по линии 1 (рисунок автора).
5. Подсчет деталей 2-й линии.
6. Сложение значений счетчиков 1-й и 2-й загрузки в момент выключения Н2:
VW0=c1 + c2, если H2→│N│
7. Включение мотора мельницы М0.0. Вызов подпрограммы SBR0:
Set M0.0, если H2→│N│
Рис. 5. Включение моора (рисунок автора).
8. Подпрограмма SBR0. Выключение мотора мельницы M1:
Reset M0.0, если H4→c0(reset M1→│N│)
Рис. 6. Схема работы устройства (рисунок автора).
9. Управление лампой Н4: Н4=1, kui M1 and SM0.5
24
Download