
- •В примерах и задачах
- •В примерах и задачах
- •Тема 1. Битовые логические команды
- •Тема 2. Использование операций сравнения
- •Тема 3. Использование счётчиков импульсов
- •Тема 4. Таймерные команды
- •Тема 5. Математические команды, операции преобразования типов переменных и пересылки
- •Тема 6. Прерывания
- •Тема 7. Использование встроенных потенциометров
- •Тема 8. Применение указателей и косвенной адресации памяти
- •Тема 9. Работа с аналоговыми входами и выходами
- •Тема 11. Использование подпрограмм
- •В примерах и задачах Составители: Зюзев Анатолий Михайлович
- •620002, Екатеринбург, ул. Мира, 19
- •Издательство умц упи
- •6 20002, Екатеринбург, ул. Мира, 17, оф.134
Тема 7. Использование встроенных потенциометров
Контроллеры Simatic S7-224 имеют два встроенных аналоговых потенциометра, напряжение с которых может считываться и использоваться программой контроллера. Положение движков аналоговых потенциометров преобразуется в цифровое значение между 0 и 255 и заносится в байты специальной памяти, причем SMB28 содержит значения потенциометра №1, а SMB29 значение потенциометра №2.
Задача 13. Создать программу, осуществляющую мигание выходов QB0. Частота мигания должна задаваться встроенным потенциометром.
Задание:
1. Добавить возможность включения / отключения мигания с помощью входа I0.0 (1 – разрешить мигание, 0 – запретить).
2. Создать программу, включающую выход Q0.0 при появлении сигнала на входе I0.0 с задержкой по времени, регулируемой потенциометром №1 в диапазоне от 0 до 10 секунд.
3. Используя выходы контроллера Q0.0 .. Q0.7, создать индикатор положения потенциометра №1, функционирующий следующим образом: при коде переменной потенциометра менее 30 все выходы выключены, от 30 до 60 – включен выход Q0.0, 60 – 90 – Q0.0 и Q0.1 и т.д. При коде более 240 – все выходы включены.
Тема 8. Применение указателей и косвенной адресации памяти
При косвенной адресации для доступа к данным в памяти используется указатель. CPU S7–200 даёт возможность использования указателей для косвенной адресации следующих областей памяти: I, Q, V, M, S, T (только текущее значение) и C (только текущее значение). Косвенно адресовать можно переменные байтового, словного и двухсловного типов. Косвенную адресацию нельзя использовать для обращения к отдельному биту или к аналоговым значениям.
Для косвенного обращения к адресу в памяти сначала необходимо создать указатель на этот адрес. Указатель – это ячейка памяти, имеющая размер двойного слова (4 байта), которая содержит адрес другой ячейки памяти. В качестве указателей можно использовать только ячейки V-памяти, L-памяти или аккумуляторные регистры (AC1, AC2, AC3). Для создания указателя нужно использовать команду Переместить двойное слово (MOVD), чтобы переместить адрес косвенно адресованной ячейки памяти в ячейку указателя. При этом имени входной переменной должен предшествовать знак амперсанд (&), чтобы указать на необходимость перемещения в указатель адреса ячейки памяти, а не её содержимого. Например, после выполнения операции AC1 = &VB0 указатель AC1 будет содержать адрес байта VB0, а не его значение.
Ввод знака астериска (*) перед именем переменной указывает, что эта переменная является указателем и хранит адрес ячейки памяти. Например, после выполнения операции VB1 = *AC1 переменной VB1 будет присвоено значение переменной, на которую ссылается указатель AC1, а не значение переменной AC1.
Значение указателя может быть изменено для того, чтобы перейти к другой ячейке памяти. Например, увеличение значение указателя на единицу приведёт к тому, что он будет хранить адрес следующей ячейки памяти.
Задача 14. Разработать программу, запоминающую последовательность байтов, вводимых с входа IB0 при появлении сигнала на I1.0, и отображающую их на выходе QB0 при появлении сигнала I1.2. Для сброса запомненных данных использовать вход I1.1.
Примечание: представленное решение содержит опечатку, из-за которой оно неработоспособно.
Задание:
1. Найти и исправить опечатку.
2. Модифицировать программу таким образом, чтобы в процессе ввода данных они отображались на выходе контроллера QB0.