Государственное бюджетное образовательное учреждение
высшего профессионального образования
«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ
ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
Институт Кибернетики
Кафедра ИКСУ
Методические указания к лабораторным работам по программированию промышленных контроллеров. Работа с аналоговыми сигналами.
Составители:
Студенты гр. 8А82:
А. С. Бахчаев
К. С. Власов
Томск 2012
Данное методическое пособие предназначено для обучения студентов работе с аналоговыми сигналами в пакете «Simatic STEP 7».
Первоначально рассмотрим таблицу входов и выходов контроллера (табл.1)
Таблица 1
Тип входа/выхода |
Символ |
Биты, слова |
Описание |
Дискретные входы |
I |
I0.0…I127.7 |
Состояние входных устройств, подключенных к входным це- пям |
Аналоговые входы |
PIW |
PIW256…PIW766 |
Представленная в цифровой форме аналоговая величина |
Дискретные выходы |
Q |
Q0.0…Q127.7 |
Состояние дискретных выходов |
Аналоговые выходы |
PQW |
PQW256…PQW766 |
Представленная в аналоговой форме цифровая величина |
Обратите внимание на столбец «Биты, слова». В этом столбце представлено символьное описание того или иного входа. Рассмотрим на примере дискретного входа I127.3 детально, на что указывает каждый символ:
«I» – символьное обозначение входа;
«1» – номер двойного слова;
«2» – номер слова;
«7» – номер байта;
«.3» – номер бита.
Таким образом, если нам необходимо обратиться к отдельному биту (например 4-ому), то нам необходимо прописывать полностью I 127.4, если ко всему байту (набору бит), то пишем IB 127, если к слову, то IW 12, и т.д.
Операции с аналоговыми сигналами
CPU может обрабатывать аналоговые сигналы только в двоичном коде. Поэтому для обработки аналоговых сигналов необходимо перевести его в дискетный сигнал, то есть оцифровать. Для оцифровки аналоговых сигналов используются АЦП (аналогово-цифровой преобразователь)
Рассмотрим пример реализации АЦП:
Рисунок 1. Редактор символов
У нас имеется аналоговый сигнал, который мы будем подавать на адрес PIW 272. Входной цифровой сигнал Input1, который подадим на адрес I 0.0. Он необходим для разрешения работы преобразователя. Ну и выход lamp_1 с адресом Q 0.0 необходим для просмотра результата сравнения.
Далее рассмотрим схему для реализации АЦП. Мы используем компаратор «равно», т.е. сравнивается входной сигнал с установочным сигналом, компаратор можно выбрать также и с другим условием, компараторы находятся в блоке компараторов в стандартной библиотеке «Comparator». В нашем случае если сигналы равны, то на выходе логическая единица. Если же сигналы не равны, то на выходе будет логический ноль. Все это мы проверим на эмуляторе. Так как работа в контроллере реализуется в двоичном коде, то нам необходим преобразователь, который находится в стандартном пакете в папке «Converter». Мы используем преобразователь из формата WORD в формат INT.
Рисунок 2. Структура программы.
Схема достаточно простая и понятная. Выход с преобразователя нельзя напрямую соединить с входом компаратора. Поэтому на выходе преобразователя мы записываем переменную IW1, а далее переменную записываем на вход компаратора и именно эту переменную мы будем сравнивать с заданной изначально. Чтобы IW1 прописывалось, необходимо записать до конца свободные входы в таблице переменных. Как заполнена наша таблица.
Далее проведем проверку на правильность составленной схемы. Для этого необходимо запустить эмулятор:
Рисунок 3. Кнопка запуска симулятора.
Далее необходимо загрузить в эмулятор наши блоки.
Рисунок 4. Кнопка загрузки программы в эмулятор.
Вот так представлены наши блоке в загрузившемся эмуляторе.
Рисунок 5. Окно эмулятора.
В случае если загрузка не произошла и система выдала ошибку, то необходимо загрузить блоки вручную, прописав адрес входа или выхода.
Рисунок 6. Панель инстументов.
Теперь переходим непосредственно к нашей реализации АЦП. Сравнивать будем как показано на нашей схеме с нулем. Включаем наш эмулятор, поставив галочку в режим RUN и подаем на вход единицу, т.е. ставим галочку в блоке I 0.0 в окошке 1.
Рисунок 7. Эмулятор в рабочем режиме.
Мы видим, что на входе единица, значит компаратор сработал и сигналы у нас одинаковые. То есть с которым сравниваем у нас 0 и который задаем PIW 272 тоже 0. Теперь зададим 3 на аналоговый вход PIW 272.
Рисунок 8. Проверка работы программы.
Как видим из рисунка выше у нас на выходе ноль. Отсюда можно сделать вывод, что компаратор работает правильно.
Также можно задавать сигналы не целыми числами, а дробными. В данном пакете программ имеется достаточно большое количество разных форматов чисел и типов данных.
Рассмотрим пример сравнения дробных чисел.