Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Программное обеспечение для систем автоматизации технологических процессов (лабораторный практикум и конспект лекций) для студентов специальности 2202

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
Лабораторная работа № 6
Тема: СЧЕТЧИКИ ИМПУЛЬСОВ
Цель работы: изучить принцип работы различных типов счетчи- ков с использованием ручной и автоматической подачей на вход счетных импульсов.
Используемое оборудование: компьютеры с ОС не ниже Windows 7, программным пакетом STEP7 V5.5 для программирования контроллеров серии Siemens Simatic S7-300, симулятором S7-PLCSIM.
Теоретические сведения. Счетчики импульсов применяются для подсчета количества импульсов, поступающих с датчиков, и пере­счета их в требуемые физические единицы измерения путем умно­жения на заданный множитель, для подсчета суммарной выработки за какую-либо единицу времени; управления исполнительными ме­ханизмами и т.д.
В контроллере Siemens счетчики позволяют использовать его CPU в вычислительных задачах. Область счета охватывает диапазон от
до 999. Счетчики находятся в системной памяти CPU. Количест-
000
во счетчиков определяется версией CPU [5].
В пакете STEP7 имеются следующие типы счетчиков:
- S_CUD –
- S_CU –
- S_CD –
Они расположены в папке «Counter» в блоке, где пишется про­грамма. Счетчики имеют:
пять входов:
и CD – входы прямого и обратного счета соответственно в
CU
формате BOOL;
и R – входы установки и сброса соответственно в формате
S BOOL;
вход предустановки, поддерживающий тип данных WORD;
PV–
и три выхода:
CV, CV_BCD –
десятичном представлении соответственно типа WORD;
состояние счетчика в формате данных BOOL.
Q –
счетчик прямого и обратного счета (реверсивный); счетчик прямого счета (счетчик на сложение); счетчик обратного счета (счетчик на вычитание).
текущее состояние счета в двоичном и двоично-
41
Когда значение на входе CU меняется с «0» на «1», счетчик уве­личивает свое состояние на единицу в случае, если это счетчик пря­мого счета или реверсивный. При достижения границы 999 счетчик больше не изменяет своего состояния. Если значение на входе CD меняется с «0» на «1», счетчик уменьшает свое состояние на единицу в случае, если это счетчик обратного счета или реверсивный. При достижения границы 000 данный счетчик больше не изменяет своего состояния. Импульсы на входе CU и CD можно подавать как в руч­ном, так и в автоматическом режиме.
Значение предустановки счетчика задается на входе PV в формате константы С#[значение предустановки], например, С#25.
Если значение на входе S меняется с «0» на «1», счетчик прини­мает значение, заданное на входе PV. Поданная на входе R логиче­ская «1» сбрасывает счетчик в 0.
Если состояние счетчика CV или CV_BCD больше 0, то на выхо­де Q будет логическая единица, иначе, если счетчик находится в 0, на выходе Q также будет 0.
4. Пример
Написать
программу на STEP7, которая реализует работу счетчи-
ка на сложение с коэффициентом счета равным 10, автоматической подачей на вход тактовых импульсов. Условие: как только счетчик досчитает 10, он обнуляется на период следования импульсов, а за­тем вновь запускается и опять считает до 10 и т.д.
Для решения указанной задачи можно применить один из генера­тор тактовых импульсов, реализованных в лабораторной работе 5, соединив его выход со входом CU счетчика на сложение. Период следования импульсов генератора выберем равным 1 с. Двоичный выход счетчика соединен со входом установки таймера Т3 задержки включения на 10 с. Выход этого таймера соединен со входом уста­новки расширенного импульсного таймера Т2, сбрасывающего счет­чик в 0 на 1 с. Реализация счетчика на сложение в STEP7 показана на рис. 6.1. Наблюдать за результатами исполнения программы можно непосредственно в ОВ1, запустив CPU в режим RUN и нажав на кнопку «Monitor» в ОВ1.
42
Рис. 6.1. Программная реализация счетчика импульсов с автоматической подачей
на вход тактовых импульсов
5. Задание
Реализовать
в проекте Simatic Manager в соответствии со своим
вариантом задания программу для контроллера, к которому подклю­чены два датчика и 3 входа, сигнализирующих о неисправности, по следующему алгоритму работы: при наличии неисправности хотя бы на одном из входов и равенстве сигналов с датчиков счетчик автома-
43
тически считает в прямом направлении. Если величины с датчиков не совпадают и неисправностей нет, счетчик производит обратный отчет. Если неисправность касается сразу трех входов, счетчик при­нимает состояние предустановки. Номер варианта задания определя­ется номером записи фамилии студента в журнале преподавателя. Параметры генератора импульсов Т
, tги взять в табл. 6.1 лаборатор-
ги
ной работы 5. Значение для предустановки счетчика выбрать произ­вольно.
6. Домашнее задание
Ознакомиться
с основными теоретическими сведениями.
Подготовиться по контрольным вопросам к защите лабораторной работы.
7. Содержание отчета
• Титульный лист.
•
Наименование и цель работы. Краткие теоретические сведения.
•
Исходные данные индивидуального задания.
•
Таблицы конфигурации аппаратуры, таблица символов.
•
Схема программируемого счетчика, реализованного в пакете
•
STEP7.
Выводы.
•
8. Контрольные вопросы
1. Назовите основные типы счетчиков, используемых при про-
граммировании ПЛК Siemens.
2.
Как можно организовать на счетчике генератор ступенчато из-
меняющегося напряжения?
3.
Можно ли организовать счетчик импульсов на таймерах?
4.
Что происходит со счетчиком при переполнении? Назовите способы сброса счетчика в нулевое состояние?
5.
44
Лабораторная работа № 7
Тема: СЛОЖНЫЕ ТИПЫ ДАННЫХ
1. Цель работы: научиться создавать блоки данных со структу­рой и массивами, производить адресацию переменных этих блоков и операции над ними.
2. Используемое оборудование: компьютеры с ОС не ниже Win-
dows 7,
троллеров серии Siemens Simatic S7-300, симулятором S7-PLCSIM.
сложные типы данных [5]:
DATE_AND_TIME 01
тер. При объявлении строки в квадратных скобках указывается ее длина STRING[длина]. Пример, STRING[5]. Если не определять дли­ну строки, опустив квадратные скобки со значением длины строки, то редактор будет использовать максимальную длину (254 байта). Переменная типа STRING занимает памяти на два байта больше, чем объявленная максимальная длина строки. Значение строки указыва­ется в одинарных кавычках, например, 'Motor'.
вают одномерные и многомерные. Наибольшая размерность массива равна 6.
во ARRAY[1..N], где N – максимальное количество элементов в мас­сиве, например ARRAY[1..5]. Значение элементов массива указыва­ется через запятую: 0.1, 0.2, 4.55, 8.1, 10.21. Если некоторые элемен­ты массива повторяются, то можно перед круглыми скобками ука­зать число повторения, а в скобках повторяющуюся последователь­ность: 0.1, 0.2, 3(4.55).
разделяются запятыми: ARRAY[1..5,1..2]. Его значения в этом случае также разделяются запятыми. При этом данные считываются сле-
программным пакетом STEP7 V5.5 для программирования кон-
3. Теоретические сведения. STEP7 поддерживает следующие
1)
дата и время;
2)
строка;
3)
массив;
4)
структура.
Дата и время объявляется в программе как тип данных
или DT. Например, дату 08.04.2014 и время 15 ч
мин 45 сек 500 мс представляют как DT#2014-4-8-15:01:45.500.
Строка представляет строку символов, содержащую до 254 ли-
Массив – это тип данных, имеющих одно имя и тип. Массивы бы-
При объявлении одномерного массива указывается ключевое сло-
Если массив многомерный, то элементы каждого «измерения»
45
дующим образом. Например, если элементам массива присвоены зна­чения 0.1, 0.2, 4.55, 8.1, 10.21, 11.0, 11.02, 1.0, 5.5, 5.7, то 1-й элемент
ARRAY[1,1]=0.1, 2­4-
й – ARRAY[2,2]=8.1, 5-й – ARRAY[3,1]=10.21, 6-й – ARRAY[3,2]=11.0,
7-
й –ARRAY[4,1]=11.02, 8-й – ARRAY[4,2]=1.0, 9-й – ARRAY[5,1]=5.5,
10-
й – ARRAY[5,2]=5.7. При объявлении массива необходимо ука-
й – ARRAY[1,2]=0.2, 3-й – ARRAY[2,1]=4.55,
зывать тип элементов массива.
Структура представляет собой фиксированное число элементов
разного типа. Объявляется ключевым словом STRUCT.
Все рассмотренные выше типы данных объявляются в экземпляр­ном блоке данных (Instanse Block), назначенном функциональному блоку, или общем блоке данных (Shared Block). Если данные объяв­ляются в Instanse Block, то следует предварительно их объявить в таблице деклараций функционального блока. Пример объявления сложных типов данных в функциональном блоке и назначенном ему блоке данных показаны на рис. 7.1, рис. 7.2 соответственно.
Рис. 7.1. Пример объявления сложных типов данных в функциональном блоке
Рис. 7.2. Объявления сложных типов данных в экземплярном блоке данных
46
В таблице блока данных (см. рис. 7.2) можно увидеть адреса, за­нимаемые отдельными элементами массива и структуры, а также начальные Initial value и текущие Actual value значения всех пере­менных.
Если в таблице деклараций (см. рис. 7.1) щелкнуть на слове
STRUCT, (
рис. 7.3).
то появится новое окно, где задаются элементы структуры
Рис. 7.3. Состав структуры данных STRUCT
Сложные типы данных объявляются также в составе одной струк­туры, которая начинается словом STRUCT и заканчивается словами
END_STRUCT.
Для этого нужно создать Shared Block. В этом же блоке можно объявлять и простые типы данных. При этом под сло­вом ARRAY при объявлении массива обязательно нужно писать тип данных, которые поддерживают элементы массива. Пример показан на рис. 7.4. В поле Address отображаются адреса младшего бита, с которого начинаются данные, а под объявлением массива тип дан­ных элемента массива. Знак *2 означает, что каждый элемент масси­ва занимает 2 байта информации.
Рис. 7.4. Объявление структуры в Shared Block
47
Обращение к сложному типу данным осуществляется через ANY­указатель. Например, если данные хранятся в блоке DB1, то доступ к ним можно получить следующим образом:
DB1.DBX x.y –
DB1.DBB x –
DB1.DBW x –
бит данных в блоке данных DB1;
байт данных х в блоке данных DB1;
слово данных в блоке данных DB1, х – адрес млад-
шего байта;
DB1.DBD x –
двойное слово данных в блоке данных DB1, х – адрес
младшего байта.
Для таблицы на рис. 7.4 обращение к переменной DB_VAR запи­сывается как DB1.DBW 0.
Доступ к элементам массива или структуры, вложенной в блок данных, можно получить аналогичным образом. Например, обращение к первому элементу массива ARRAY1[1] блока на рис. 7.2 будет иметь вид DB1.DBD 256, к элементу массива ARRAY2[2,2] – DB1.DBW 298. Доступ ко второму элементу структуры STRUCT1.OUT2 (рис. 7.2) бу­дет выглядеть как DB1.DBX 285.0 в соответствии с распределением адресов в таблице блока.
Если включить симулятор PLCSIM и в блоке данных Shared Block
(
рис. 7.4), где расположена структура, щелкнуть на значок , то можно увидеть подробную адресацию всех переменных структуры, включая каждый элемент массива (рис. 7.5). Исходя из этого, можно легко написать указатели на соответствующие элементы.
Рис. 7.5. Адресация всех переменных блока Shared Block
4. Пример
Найдем
сумму элементов массива ARRAY1 из структуры на
рис. 4. Результат умножим на переменную DB_VAR и запишем в элемент массива ARRAY2[3].
Так как переменные массива ARRAY1 и DB_VAR имеют формат данных целого числа INT, то используем блоки сложения ADD_I и умножения MUL_I. Результат следует преобразовать в WORD, так
48
как он будет записываться в элемент массива ARRAY2[3], который имеет такой же формат (см. рис. 7.5).
1-
й элемент массива ARRAY1 имеет адрес DB1.DBW 2,
й – DB1.DBW 4. Переменная DB_VAR адресуется как DB1.DBW 0.
2­3-
й элемент массива ARRAY2, куда будет помещен результат вы­числения, имеет адрес DB1.DBW 10. Результата составления блок­схемы в программе STEP7 представлен на рис. 7.6.
Рис. 7.6. Блок-схема для выполнения математических операций
над переменными структуры в STEP7
Чтобы посмотреть результат исполнения программы, необхо­димо в симуляторе PLCSIM нажать три раза CTRL+F2 в соответ­ствии с количеством переменных, загрузить таблицу символов в
S7-PLCSIM, DB1.DBW 2, DB1.DBW 4, DB1.DBW 0,
в появившихся заголовках ввести адреса переменных
задать формат данных Integer, а DB1.DBW 10 –BCD. Пример результата арифметической операции в симуляторе (21+7)·2=56 показан на рис. 7.7.
Рис. 7.7. Результат выполнения математических операций
над элементами структуры
49
В блоке данных Shared Block структуры (см. рис. 7.4), щелкнув на
значок «Monitor», можно увидеть изменение переменных струк­туры, участвующих в операции, включая каждый элемент массива
(
рис. 7.8).
Рис. 7.8. Адресация всех переменных блока Shared Block
в режиме выполнения операций
5. Задание Создать в
(
табл. 7.1).
№ Имя Тип данных Примечание
1 A Бит ­2 B Байт ­3 C Целое ­4 D Двойное целое ­5 E Слово ­6 F Двойное слово ­7 G Вещественное число с плавающей точкой ­8 ARRAY1 Бит Массив [1×4]
9 ARRAY2 Байт Массив [1×2] 10 ARRAY3 Целое Массив [2×3] 11 ARRAY4 Двойное целое Массив [2×2] 12 ARRAY5 Слово Массив [2×5] 13 ARRAY6 Двойное слово Массив [2×4] 14 ARRAY7 Вещественное число с плавающей точкой Массив [3×3]
блоке данных Shared Block структуру следующего типа
Таблица 7.1
Структура данных для выполнения лабораторной работы
Присвоить любые начальные и текущие значения переменным и выполнить операции над элементами структуры, исходя из своего варианта задания (табл. 7.2).
50
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]