
- •Лабораторная работа №1. Исследование работы триггеров
- •1. Создание проекта в CoDeSys и исследование работы триггеров
- •1.1 Исследование rs-триггера
- •1.2 Создание пользовательского функционального блока rs-триггера в CoDeSys
- •1.3 Исследование синхронного rs-триггера
- •1.4 Исследование d-триггера
- •1.5 Исследование jk-триггера
- •1.6 Исследование т-триггера
- •2. Визуализация в CoDeSys
1.5 Исследование jk-триггера
JK-триггеры подразделяются на универсальные и комбинированные. Универсальный JK-триггер имеет два информационных входа J и K. По входу J триггер устанавливается в состояние Q=1, Ǭ=0, а по входу K – в состояние Q=0, Ǭ=1.
JK-триггер отличается от RS-триггера прежде всего тем, что в нем устранена неопределенность, которая возникает в RS-триггере при определенной комбинации входных сигналов.
Создать функциональный блок "myJK", реализовав JK-триггер по схеме:
Проанализировать работу синхронного JK-триггера. Правильная работа триггера поясняется временной диаграммой:
1.6 Исследование т-триггера
Т-триггеры, или триггеры со счетным входом, могут быть получены из JK-триггера при соединении обоих информационных входов J и К и подаче на них уровня 1 (TRUE). Таким образом, Т-триггер (рис. б) имеет один вход и два выхода.
В качестве счетного входа T используется вход С. При подаче сигнала на вход T-триггер будет переключаться в состояние, противоположное предыдущему. JK-триггер в таком режиме выполняет функцию T-триггера. Следует заметить, что уровень 1 для входов J и К (входов элементов И-НЕ) является пассивным сигналом. Таким образом, Т-триггер является элементарным счетчиком до двух.
2. Визуализация в CoDeSys
Работу программы можно проверить с помощью инструмента визуализации CoDeSys. Визуализация CoDeSys – это мощный инструмент для отладки и презентации разработанной программы.
Порядок создания визуализации:
Перейти на вкладку Vizualizations на левой панели среды CoDeSys. На свободном поле нажать правой кнопкой мыши и из контекстного меню выбрать: Add Object… Далее ввести имя нового объекта визуализации (например viz1) :
Справа откроется поле графического редактора. В верхней части редактора находится палитра инструментов,
с помощью которой можно рисовать различные графические примитивы (окружность, линия, прямоугольник, ломаные, кривые, текст), размещать элементы управления (кнопка, регулятор), элементы индикации (график, стрелочный прибор, динамический текст).
Создадим визуализацию работы RS-триггера. Фрагмент программы показан в п. 1.1 методических указаний.
Разместим на рабочем поле графические элементы, как показано на рисунке 4. Используем для этого компоненты: Эллипс (Ellipse), Скругленный прямоугольник (Rounded rectangle), Button (Кнопка).
Рис. 4
Текст на кнопке, эллипсе или другом элементе вводится через меню компонента: двойное нажатие мышью на кнопке, пункт Text. Текст можно писать любой, в данном случае он соответствует именам переменных.
Окружности будут играть роль лампочек, то есть осуществлять индикацию значения логической переменной. Привяжем каждую лампочку к соответствующей логической переменной Q и nQ.
Привязка выполняется через меню компонента путем двойного нажатия мышью на компоненте. Далее в пункте меню Variables в поле Change color указывает имя переменной (можно использовать F2), как показано на рисунке:
Тут же необходимо назначить цвета для активного (Alarm color) и неактивного (Color) состояния лампочки. Это делается в пункте меню Colors:
Выполним привязку кнопок к управляющим переменным Set и Reset. Привязка также осуществляется через меню компонента "кнопка". В пункте Input в строке Tap Variable указывается имя переменной, на которую будет воздействовать кнопка:
Управление логической переменной (например x0) в данном случае задается функцией Toggle variable. Это имитирует кнопку с фиксацией.
Индивидуальные задания:
На языке CFC реализовать логическое выражение:
|
Задание 1 |
ФИО |
1 |
F=(a & ¬b & ¬c) || (¬a & b & c) |
|
2 |
F=(¬a & ¬b & ¬c) || (a & b & c) |
|
3 |
F=(a & (b || c)) |
|
4 |
F=(a || b || (c & d)) |
|
5 |
F=(a & b) || (c & d) |
|
6 |
F=(a || (b & c & d)) |
|
7 |
F=(a & ¬b & c) | (¬a & ¬c) |
|
8 |
F=(a || ¬b || c || ¬d) |
|
9 |
F=(q1 & q2) || (q3 & q4) |
|
10 |
F=(¬ (q1 & q2 & q3)) || (q4) |
|
11 |
F=(a & b ) || (¬c & ¬d) |
|
12 |
F=(a & (b || c || d)) |
|
13 |
F=(a & d) || (a & c) || (¬b) |
|
14 |
F=(¬a || ¬b || ¬c || d) |
|
15 |
F=¬(a & b) || c || d |
|
16 |
F=¬(a & c) || (d & ¬a) |
|
17 |
F=(¬a & ¬d) || c || ¬b |
|
18 |
F=(¬a & ¬b & ¬c & ¬d) |
|
19 |
F=(q1 || q2) & (q3 || q4) |
|
20 |
F=(¬q2 & q3) || (q4 & q1) |
|
21 |
F=(a & b ) || ¬ ( b & c) |
|
22 |
F=(¬ a & d) || b || ¬ c |
|
23 |
F=c || (¬a & b) || d |
|
24 |
F=(a & b & d) || ¬c |
|
25 |
F=(¬ c || d || ¬ a || b ) & ¬b |
|
Примечание:
& - логическое "И" (AND);
|| – логическое "ИЛИ" (OR);
¬ - отрицание или инверсия (NOT);
a,b,c,d или q1,q2,q3,q4 и F– переменные логического типа (BOOL).