АЛМАТИНСКИЙ ИНСТИТУТ ЭНЕРГЕТИКИ И СВЯЗИ
Кафедра инженерной кибернетики
Микропроцессорные средства в системе управления
Методические указания к лабораторным работам
для студентов специальности 050702 - Автоматизация и управления
СОСТАВИТЕЛИ: А. А. Копесбаева, Ибрашева А.Т. Микропроцессорные средства в системе управления. Методические указания к лабораторным работам для студентов специальности 050702-Автоматизация и управление. Алматы: АИЭС, 2007. – с.
Представлены методические указания к выполнению лабораторных работ по дисциплине «Микропроцессорные средства в системе управления»
Печатается по плану издания «Алматинского института энергетики и связи» некоммерческого акционерного общества на 2007 год.
1 Лабораторная работа 1. Знакомство с программным обеспечением Simatic Manager, конфигурирование и параметрирование МПС. Логические функций............... 4
2 Лабораторная работа 2. Таймерные функций, счетчики и переходы………10
3 Лабораторная работа 3. Чтение и нормирование аналоговых сигналов…...21
4 Лабораторная работа 4. Функции и функциональные блоки. Создание системы логического контроля и управления………………………………….27
Приложение А…………………………………………………………………….35
Приложение Б…………………………………………………………………….37
Приложение В…………………………………………………………………….42
Приложение Г…………………………………………………………………….43
Список литературы……………………………………………………………….45
1 Лабораторная работа №1. Знакомство с программным обеспечением Simatic Manager, конфигурирование и параметрирование МПС. Логические функций.
Цель работы: ознакомление с составом программного обеспечения Simatic Manager, приобретение навыков работы с прикладной программой, ознакомление с составом операторов языка Step7, знакомство с методами конфигурирования и параметрирования микропроцессорной системы, приобретение навыков работы в режиме online.
Оборудование и программное обеспечение: контроллер Simatic 313 фирмы Siemens и программное обеспечение Simatic Manager.
1.1 Задание к лабораторной работе
1. Создать проект.
2. Конфигурировать микропроцессорную систему.
3. Параметрировать модули.
4. Записать программу в соответствии с вариантом задания преподавателя для ОВ1 организационного блока.
5. Исследовать процессы в режиме online.
6. Сделать выводы. Заполнить отчет.
1.2 Порядок выполнения работы
1.2.1 Создание нового проекта
Создание проекта производится в окне Simatic Manager командой New-Project. Окно проекта представлено на рисунке 1.1. В результате будет создан проект, в котором существует уже установленная шина многоточечного интерфейса MPI, к которому подключается персональный компьютер (устройство программирования), система автоматизации и наблюдения (по необходимости). На лабораторной установке к MPI шине подключен персональный компьютер.
Рисунок 1.1 - Пример окна проекта
1.2.2 Конфигурирование системы
Пояснение терминов: Под «конфигурированием» мы понимаем размещение носителей модулей, модулей и интерфейсных модулей в конфигурационной таблице (рисунок 1.3).
Конфигурирование CPU предполагает следующие действия:
- создайте в проекте станцию;
- откройте станцию в окне проекта;
- откройте конфигурационную таблицу;
- установите в конфигурационной таблице каталог;
- заполните конфигурационную таблицу.
Создание станции: выделив имя проекта выберите команду Insert - Station - Simatic-300 Station. Откройте станцию. В ней уже содержится окно конфигурации – Hardware.
При составлении конфигурационной таблицы студент должен будет придерживаться следующей последовательности действий:
- конфигурировать и параметрировать центральный процессор CPU;
- сохранить конфигурационную таблицу;
- загрузить конфигурацию в центральный процессор CPU.
Модули аппаратного обеспечения устанавливаются на слоты в строго определенном порядке. В соответствии с реальным местом модуля составляется конфигурационная таблица, это показано на рисунке 1.4.
Рисунок 1.3 –Окно конфигурации Hardware
Порядок выполнения конфигурирования: Откройте конфигурационную таблицу и установите в ней каталог командой Вид-Каталог. Прежде всего вам нужно создать профильшину Rack (носитель модулей), которой присваивается нулевой адрес. Остальные элементы конфигурационной таблицы заполняете в соответствии с реальной установкой. Необходимо помнить, что в конфигурационной таблице, как и на реальной установке первое место занимает блок питания, а сразу за ним на двух местах устанавливается CPU, затем остальные модули. Запишите адреса, которые присвоены каждому из модулей.
Рисунок 1.4 - Размещение модулей на носителе и соответствие его конфигурационной таблице
1.2.3 Параметрирование модулей
Теперь выберите элемент, который вы хотели бы параметрировать и в диалоговом окне установите параметры. Например, таким образом можно параметрировать время цикла CPU. Это можно сделать как в окне конфигурационной «CPU – Proprties - Cicle Time», так и из меню командой «PLC- Modul Information – Cicle Time». Закрыв диалоговое окно параметрирования, сохраните созданную конфигурационную таблицу. В результате конфигурация сохранится на жестком диске компьютера.
Загрузите конфигурационную таблицу командой PLC-Download. При этом все установленные параметры становятся действующими. В случае ошибки на CPU загорится сигнал ошибки SF. Для устранения ошибки придется выполнить стирание с помощью команды PLC-Clear/Reset. Ещё раз открыть конфигурационную таблицу и отредактировать её. Затем повторить загрузку.
В случае успешной загрузки в диалоговом окне появится запрос на перевод CPU из режима STOP в режим RUN. Для того, чтобы в дельнейшем проверить выполнение прикладной программы переведите контроллер в режим RUN. Закройте окно конфигураций.
1.3 Запись программы для основной программы в организационном блоке ОВ1
В результате созданной конфигурации в окне проекта наряду с таблицей конфигурации появится CPU (рисунок 1.5). Внутри CPU находятся: программные модули и связь. Откройте программные модули, они состоят из источника, звеньев и символьного редактора.
Откройте Blocks программного модуля. Эта составляющая программного обеспечения содержит пока только один организационный блок ОВ1. Откройте этот блок, в диалоговом окне выберите язык контактного плана LAD и попробуйте создать простейшую программу
При программировании адреса контактов и катушек должны быть назначены согласно приложению А. С помощью символьного редактора вы можете задать имена адресам, заполненную таблицу нужно сохранить (рисунок 1.5).
Язык контактного плана построен на принципе протекания тока в цепи, которая присоединена к левой шине плана. Правая часть должна заканчиваться катушкой или блоком.
На рисунке 1.7 показана страница программы, написанная на языке LAD.
Представленные программы на языке LAD напоминают коммутационную схему. Элементы схемы объединяются в сеть. Последовательность сетей образует операторскую часть программы.
Программа пока должна включать в себя хотя бы один контакт и катушку. Сохраните программу и закройте её.
Рисунок 1.7 - Пример программы на языке LAD.
1.4 Исследовать процессы в режиме online
Для исследования переменных в режиме online нужно создать таблицу переменных (с контекстного меню объекта Blocks выберите команду Insert New Object-Variable table). В диалоговом окне задайте имя таблице переменных или согласитесь с тем, которое предлагает вам программное обеспечение Simatic Manager. Создайте в ней перечень переменных для наблюдения. В этом случае это все элементы вашей программы. Теперь поступайте по привычной для вас схеме: сохраните, закройте окно редактора LAD, загрузите программу в CPU. Теперь создайте режим online для проверки прикладной программы. Для этого вам следует открыть ОВ1, и “надеть очки”. Окно редактора при этом изменится, а процесс работы CPU отражается мигающим сигналом в строке состояний. Попробуйте имитировать ключами с модуля имитации дискретного сигнала наличие или отсутствие входного дискретного сигнала, наблюдая при этом выходной сигнал.
Теперь воспользуйтесь для наблюдения таблицей переменных. Откройте её, установите связь с CPU с помощью меню PLC команды Connect To – Configured CPU (рисунок 1.9, изменится цвет строки оглавления окна таблицы переменных), создайте режим onlinе, наблюдайте изменения в таблице переменных входной и выходной переменной.
Рисунок 1.9 - Таблица переменных в режиме onlinе
1.5 Контрольные вопросы
1. Из каких составляющих состоит проект?
2. Для чего служит таблица символов?
3. Возможно, ли наблюдение за переменными в реальном масштабе времени без таблицы переменных и без таблицы символов?
4. Из каких элементов состоит программа проекта?
5. Как проверить правильность составленной таблицы конфигурации?
6. Как выбираются и как обозначаются в основной программе дискретные входы и выходы?
7. Как назначаются адреса аппаратных средств проекта?
8. Как активизировать готовый проект? Из какого окна происходит загрузка основной программы в контроллер?
9. Для чего служит таблица переменных?
10. Как выбирается центральный процессор в таблице конфигурации?
11. Как выбираются блоки питания и где они устанавливаются в таблице конфигурации?
12. Какие типы адресации используются в проекте?
13. Назовите такие составляющие проекта, без которых не возможно выполнение программы.
14. Как на Simatic фиксируется орфографическая, логическая ошибка и ошибка в конфигурации?
15. Назначение организационного блока. Какие типы адресации используются при программировании на языке LAD?
16. Назовите основные составляющие проекта, который загружается в контроллер?
2 Лабораторная работа № 2. Таймерные функции, счетчики и переходы
Цель работы: Знакомство с основными командами преобразования времени, счета и организации перехода на языке Step7 программного обеспечения Simatic Manager, приобретение навыков программирования, загрузки и тестирования программ.
Задание к лабораторной работе
2.1 Программирование с использованием логических функций.
2.1.1 Изучите, просмотрев в каталоге функции логических преобразований (Bit Logic, Word Logic), операции сравнения (Compare, Status Bit), операции переходов (Jump).
2.1.2 Согласно заданию (логическая схема управления конвейером на рисунке 2.1) составьте программу на языке LAD, соблюдая правила написания программ и пользуясь полным перечнем операций языка (приложение Б).
Задание: На рисунке 2.1 представлен конвейер, который запускается с помощью электродвигателя. В начале ленты находятся две кнопки: S1 ПУСК и S2 СТОП. В конце ленты также находятся две кнопки: S3 ПУСК и S4 СТОП. Лента может запускаться или останавливаться с обоих концов. Кроме того, датчик S5 останавливает ленту, если предмет на ленте доходит до конца.
Рисунок 2.1 - Управление конвейером
2.1.3 Составьте таблицу символов, выбрав в проекте Simatic Manager раздел Programm – Simbol Table назначив адресацию согласно таблице 1 в CPU.
Таблица 1
Компонент системы |
Абсолютное обозначение |
Кнопка ПУСК |
I 0.0 |
Кнопка СТОП |
I 0.1 |
Кнопка ПУСК |
I 0.2 |
Кнопка СТОП |
I 0.3 |
Датчик |
I 0.4 |
Мотор |
Q 0.0 |
Составьте программу на языке LAD. Загрузите программу в контроллер PLC-Downlad. Наблюдайте процесс выполнения программы в режиме On-line.
2.1.4 Проверьте правильность написания программы, имитируя входные и выходные сигналы с блока имитации дискретного сигнала.
2.1.5 Переведите язык программирования на язык STL , используя меню View - STL. Исследуйте программу в новом окне, создавая различные ситуации: включение конвейера в начале транспортной ленты, отключение в конце ленты; включение в начале ленты и отключение по датчику и т.д.
2.1.6 Результаты работы логической схемы сведите в таблицу 2:
Таблица 2
Входные сигналы |
Выходной сигнал |
||||
I 0.0 |
I 0.1 |
I0.2 |
I0.3 |
I0.4 |
Q 0.0 |
|
|
|
|
|
|
2.1.7 По заданию преподавателя и в качестве самотестирования выполните следующие задачи:
Задача Л-1: Перемещение детали с одного транспортера на другой производится пневматическим цилиндром. Конечные положения штока цилиндра контролируются датчиками В1 и В2. Запустить работу цилиндра кнопкой однократного нажатия «ПУСК». Чтобы не произошло случайного движения цилиндра вперед, контролируется начальное положение цилиндра датчиком В1. Управление цилиндром вперед осуществляется выдачей дискретного сигнала на выход контроллера. При достижении цилиндром конечного положения вернуть его в исходное положение по сигналу датчика В2.
Задача Л-2: Осуществляется штамповка деталей пневматическим цилиндром. Присутствие детали штамповки контролируются датчиком В1. Нанесение штампа контролируется датчиком В2. Запустить штамповку кнопкой «ПУСК». Закончите штамповку кнопкой «СТОП». Если деталь присутствует, а также нажата кнопка «ПУСК» - начать штамповку. Управление цилиндром вперед осуществляется подачей дискретного сигнала на выход контроллера. При достижении цилиндром конечного положения по сигналу датчика В2, а также по кнопке «СТОП» вернуть его в исходное положение.
Задача Л-3: Управлять работой двигателя маломощного насоса. Включить насос по кнопке «ПУСК». Если уровень в баке достигнет максимального, то сработает дискретный датчик уровня В1. По его сигналу или по сигналу кнопки «СТОП» остановить насос. Если уровень в баке меньше минимального срабатывает датчик уровня В2. По его сигналу выполнить автоматический запуск насоса.
2.2 Программирование с использованием таймеров
2.2.1 Изучите, просмотрев в каталоге и пользуясь данными методическими указаниями функции с таймерами (Timers).
2.2.2 Согласно заданию составьте программу на языке LAD.
Рисунок 2.2 - LAD – программа реализации функции таймера
Задание: Реализуйте функцию тактового генератора импульсов, применив обработку, управляемую временем, в специальных организационных блоках. Представленная на рисунке 2.2 LAD - программа иллюстрирует использование таймерных функций для генерации такта. Таблица 3 иллюстрирует значения частоты.
Таблица 3
Биты MB |
Частота в герцах |
Длительность 101 |
М 101.0 |
2.0 |
0.5 с (250 мс вкл/250 мс выкл) |
М 101.1 |
1.0 |
1 с (0.5 с вкл /0.5 с выкл) |
М 101.2 |
0.5 |
2 с (1 с вкл /1 с выкл) |
М 101.3 |
0.25 |
4 с (2 с вкл /2 с выкл) |
М 101.4 |
0.125 |
8 с (4 с вкл /4 с выкл) |
М 101.5 |
0.0625 |
16 с (8 с вкл /8 с выкл) |
М 101.6 |
0.03125 |
32 с (16 с вкл /16 с выкл) |
М 101.7 |
0.015625 |
64 с (32 с вкл /32 с выкл) |
2.2.3 Загрузите программу в CPU и проверьте правильность её работы.
2.2.4 Результаты оформите в таблицу 4:
Таблица 4
Входные сигналы |
Устанавливаемые параметры |
Выходные сигналы |
||||||||
I0.0 |
…… |
T1 |
Т2 |
….. |
Q0.0 |
Q0.1 |
…… |
T1 |
Т2 |
…… |
|
|
|
|
|
|
|
|
|
|
|
2.2.5 По заданию преподавателя и в качестве самотестирования выполните следующие задачи:
Задача Т-1: Решите задачу Л-1 при условии, что цилиндр перемещает деталь с одного транспортера на другой только по истечению трех секунд после нажатия кнопки «ПУСК», а возвращается назад немедленно.
Задача T-2: Решите задачу Л-2 при условии, что штамповка продолжается 5 секунд. Во время нанесения штамповки цилиндр задерживается в крайнем выдвинутом состоянии 5 секунд. По окончанию штамповки цилиндр возвращается в исходное состояние.
Задача Т-3. Решите задачу Л-3 при условии, что насос запускается автоматически по истечению 5 секунд после включения датчика нижнего уровня.
2.3 Программирование с использованием счетчиков.
2.3.1 Изучите, просмотрев в каталоге и пользуясь данными методическими указаниями функции со счетчиками (Counters).
2.3.2 Согласно заданию (рисунок 2.3,а) составьте программу.
Рисунок 2.3,а - Зона складирования.
Задание: рисунок 2.3,а показывает систему складирования с двумя конвейерами и промежуточной зоной складирования между ними. Конвейер 1 транспортирует пакеты в зону складирования. Фотодатчик в конце конвейера 1 рядом с зоной складирования фиксирует количество пакетов, транспортируемых в зону. Конвейер 2 транспортирует пакеты от этой временной зоны хранения к погрузочной площадке, где они загpyжаются на грузовой автомобиль для доставки клиенту. Фотодатчик в конце конвейера 2 рядом с зоной промежуточного складирования фиксирует, сколько пакетов транспортируется из зоны складирования к погрузочной площадке. Информационное табло с пятью лампочками сообщает, насколько заполнена зона складирования. Рисунок 2.2,б показывает LAD – программу активизации индикаторных ламп.
Рисунок 2.3,б - STL – программа активизации индикаторных ламп.
2.3.3 Согласно рисунку составьте символьную таблицу, загрузите программу в CPU, и проверьте правильность её работы.
2.3.4 Результаты оформите в таблицу 5:
Таблица 5
Входные сигналы |
Устанавливаемые параметры |
Выходные сигналы |
|||||||||
I0.0 |
I0.1 |
…… |
С1 |
C2 |
….. |
Q0.0 |
Q0.1 |
…… |
С1 |
C2 |
…… |
|
|
|
|
|
|
|
|
|
|
|
|
2.3.5 По заданию преподавателя и в качестве самотестирования выполните следующие задачи:
Задача С-1: Двери гаража открываются и закрываются пневматическим цилиндром П1. Въезд машин контролирует датчик Д1, а выезд датчик Д2. Когда количество машин достигнет 50, двери гаража автоматически закрываются цилиндром П1. Двери гаража открываются кнопкой «ПУСК» оператором или изнутри кнопкой «ВЫХОД».
Задача С-2: Мимо турникета, оснащенного датчиком движения Д1, проходят посетители. На выходном табло выведены пять сигнальных ламп Л1-Л5 на каждый десяток посетителей. При достижении количества посетителей 50, загорается последняя сигнальная лампа, и турникет перестает принимать монеты (закрывается задвижка З1). Новый прием посетителей произойдет только тогда, когда все предыдущие посетители покинут помещение. Обратный отсчет посетителей происходит по выходному датчику движения Д2.
Задача С-3. Датчик Д контролирует количество оборотов двигателя, по прохождению через зону обзора датчика штифта, установленного на двигателе. При количестве оборотов 256, двигатель автоматически останавливается. На выходном табло контролируется количество оборотов двигателя в двоичном коде, срабатывание датчика Д. Включение двигателя производится кнопкой «ПУСК». Предусмотрен аварийный останов двигателя кнопкой «СТОП».
2.4 Программирование арифметических операций
2.4.1 Изучите, просмотрев в каталоге основные арифметические операции над целыми (Integer Math) и действительными (Floating-Point Math) числами.
2.4.2 Составьте программу (рисунок 2.3) реализации следующего выражения на языке LAD:
(1)
Рисунок 2.4 – LAD-программа реализации арифметического выражения (1)
2.4.3 Загрузите программу в CPU и проверьте правильность её работы.
2.4.4 Результаты оформите в таблицу 6:
Таблица 6
№ блокa |
Блок № 1 |
Блок №2 |
Блок №3 |
Блок №4 |
Блок №5 |
||||||||
Имена блоков |
ADD_I |
MUL_I |
I_DI |
DI_R |
DIV_R |
||||||||
Входы и выходы |
IN1 |
IN2 |
OUT |
IN1 |
IN2 |
OUT |
IN1 |
OUT |
IN1 |
OUT |
IN1 |
IN2 |
OUT |
Значения |
|
|
|
|
|
|
|
|
|
|
|
|
|
2.5 Методические указания к выполнению работы
2.5.1 Программирование с использованием логических функций.
В этой части работы используются следующие логические операции:
• Размыкающий контакт - –|/|–
• Замыкающий контакт - –| |–
• Катушка реле, выход - –( )–
• Коннектор - –(#)–
• Инвертирование результата логической операции - –|NOT|–
• Загрузка результата логической операции в бите BIE- –( SAVE )–
• Установка выхода - –( S )–
• Сброс выхода - –( R )–
• Опрос фронта 0 -> 1 –( Р )–
• Опрос фронта 1 -> 0 - –( N )–
В таблице 7 приведено назначение входов и выходов блока логической функций SR.
Таблица 7 -Триггер "установка-сброс"
Элемент LAD |
Параметры |
Тип данных |
Область памяти |
Описание |
|
<операнд> |
BOOL |
I, Q, М, D,L |
Операнд указывает, какой бит должен быть установлен |
S |
BOOL |
I, Q, М, D,L |
Операция установки разрешена |
|
R |
BOOL |
I, Q, М, D,L |
Операция сброса разрешена |
|
Q
|
BOOL |
I, Q, М, D,L |
Состояние сигнала |
На языке STL используются следующие операции:
Таблица 8 - Логические операции
Команда |
Описание |
А |
операция логического «И» между операндом и битом RLO |
AN |
операция логического «И-НЕ» между операндом и битом RLO |
О |
операция логического «ИЛИ» между операндом и битом RLO |
ON |
операция логического «ИЛИ-НЕ» между операндом и битом RLO |
Х |
операция логического «Искл.ИЛИ» между операндом и битом RLO |
ХN |
операция логического «Искл.ИЛИ-НЕ» между операндом и битом RLO |
S |
операция установки бита в операнде |
R |
операция сброса бита в операнде |
= |
операция присвоения бита RLO операнду |
AW |
побитное «И» над 16 –разрядными словами в аккумуляторе |
OW |
побитное «ИЛИ» над 16 –разрядными словами в аккумуляторе |
XW |
побитное «Искл.ИЛИ» над 16 –разрядными словами в аккумуляторе |
AR |
побитное «И» над 32 –разрядными словами в аккумуляторе |
OR |
побитное «ИЛИ» над 32 –разрядными словами в аккумуляторе |
XR |
побитное «Искл.ИЛИ» над 32–разрядными словами в аккумуляторе |
2.5.2 Программирование с использованием таймеров.
Выбор подходящего таймера поясняет рисунок 2.5. Здесь изображены временные характеристики таймеров с мнемоникой команды, приведены пояснения по порядку работы таймера.
Рисунок 2.5
На языке STL используются следующие операции с таймерами:
Таблица 9
Команда |
Описание |
R Tn |
сброс значения области памяти отведенного для таймера с номером “n” |
SP Tn, SE Tn, SD Tn, SS Tn, SF Tn |
запуск таймера с номером “n” |
A Tn, AN Tn, O Tn, ON Tn, X Tn, XN Tn |
опрос таймера с номером “n” |
L S5T#5s |
загрузка в аккумулятор значение времени |
FR Tn |
разблокировка таймера для нового запуска |
2.5.3 Выбор счетчика:
Прямой/обратный счет поясняется таблицей 10.
Таблица 10
Элемент LAD |
Параметры |
Тип данных |
Область памяти |
Описание |
|
Nr. |
COUNTER |
- |
Номер счетчика: диапазон зависит от CPU. |
CU |
BOOL |
E, A, M, D, L |
Вход CU: прямой счет |
|
CD |
BOOL |
E, A, M, D, L |
Вход CD: обратный счет |
|
S |
BOOL |
E, A, M, D, L |
Вход для предвар. установ. счетчика |
|
PV |
WORD |
E, A, M, D, L |
Начальное знач. в диапазоне от 0 до 999 (вводится как С#<знач>, что указывает на формат BCD |
|
R |
BOOL |
E, A, M, D, L |
Вход сброса |
|
Q |
BOOL |
E, A, M, D, L |
Состояние счетчика |
|
CV |
WORD |
E, A, M, D, L |
Текущее значение счетчика (форм, целого числа). |
|
CV_BCD |
WORD |
E, A, M, D, L |
Текущее значение счетчика (ВСD-код) |
На языке STL используются следующие операции со счетчиками:
Таблица 11
Команда |
Описание |
R Сn |
сброс значения области памяти отведенного для счетчика с номером “n” |
S Сn |
запуск счетчика с номером “n” |
A Сn |
опрос на ненулевое значение счетчика с номером “n” |
LС С#5 |
загрузка в аккумулятора начального значения счетчика в BCD коде |
FR Сn |
разблокировка счетчика для нового запуска |
CU Сn |
счет вперед (+1) в области памяти с номером “Cn” |
CD Сn |
счет назад (-1) в области памяти с номером “Cn” |
2.5.4 Программирование арифметических операций.
В этой части работы используются:
• Арифметика с фиксированной запятой.
• Арифметика с плавающей запятой.
Сложение целых чисел (16 бит) поясняется таблицей 12.
Таблица 12
Блок LAD |
Параметры |
Тип данных |
Область памяти |
Описание |
EN |
' BOOL |
E, A, M, D, L |
Разрешающий вход |
|
ENO |
BOOL |
E, A, M, D, L |
Разрешающий выход |
|
IN1 |
INT |
E, A, M, D. L |
Первое слагаемое |
|
IN2 |
INT |
E, A, M, D, L |
Второе слагаемое |
|
OUT |
INT |
E, A, M, D, L |
Результат сложения |
.
Указание:
Здесь показан пример блока сложения. Все остальные oпeрации выполняются так же.
Таблица 13 – Арифметические операции на языке STL
Типы |
Описание |
|||
Операции |
16 битные целые числа |
32 битные целые числа |
32 битные действительные числа |
|
ADD_I |
ADD_DI |
ADD_R |
Сложение чисел |
|
SUB_ I |
SUB_ DI |
SUB_R |
Вычитание чисел |
|
MUL_ I |
MUL_DI |
MUL_R |
Умножение чисел |
|
DIV_I |
DIV_DI |
DIV_R |
Деление чисел |
|
- |
MOD |
- |
Получение остатка от деления |
|
- |
- |
АВS |
Абсолютное значение |
|
- |
- |
SQR, SQRT |
Квадрат и квадратный корень |
|
- |
- |
LN |
Натуралный логарифм |
|
- |
- |
SIN, АSIN, СOS, АСOS, ТАN, АТAN |
Тригонометрические функции |
|
- |
- |
ЕХР |
Экспоненциальное распределение |
Таблица 14 – Операции с числами на языке STL
Типы |
Описание |
||
16 битные целые числа |
32 битные целые числа |
32 битные действительные числа |
|
+I |
+D |
+R |
сложить значения двух аккумуляторов |
-I |
-D |
-R |
вычесть значения двух аккумуляторов |
*I |
*D |
*R |
умножить значения двух аккумуляторов |
/I |
/D |
/R |
разделить значения двух аккумуляторов |
L - загрузка младшего слова в аккумулятор из операнда |
|||
T - выгрузить младшее слово аккумулятора в операнд |
Контрольные вопросы:
1. Как дополнить программу на рисунке 2.2, чтобы при накоплении 50 импульсов зажигалась лампа на пятом выходе?
2. Дополните программу на рис.2.3б зажиганием лампы «Нормальный режим», при количестве деталей 10<N<100, где N –количество деталей.
3. Изобразите таблицу истинности программы на рисунке 2.2?
4. Измените программу на рисунке 2.4, так, чтобы складывались целые слова длинной «одно слово», а результат деления был бы представлен «двойным словом».
5. Как изменится программа управления конвейером, если режимами «пуск» и «стоп» управляет одна кнопка?
6. Напишите программу отключения сигнальной лампы с задержкой на 5 сек.
7. Назовите основные команды битовой логики.
8. Запишите программу, реализующую следующее арифметическое выражение: А=(B*D-C)/7. Результат получить в виде числа с плавающей запятой.
9. Как на языке LAD и STL реализуются простейшие логические функции?
10. Назовите основные группы команд STEP7?
11. Назовите виды таймеров, которые могут быть выбраны из каталога STEP7?
12. Приведите виды триггеров языка и таблицу истинности каждого триггера.
13. Составьте таблицу истинности программы на рисунке 2.1.
14. Запишите программу, реализующую следующее арифметическое выражение: А=(B+D*C)/15. Результат получить в виде числа с плавающей запятой.
15. Измените программу на рисунке 2.3,б включением лампы «Зона складирования полна» по условию 90<N<100.
16. Как изменится программа управления конвейером, если дополнить условие отключения конвейера при возникновении аварийной ситуации?
3 Лабораторная работа № 3. Чтение и нормирование аналоговых сигналов.
Цель работы: привитие навыков нормирования аналоговых сигналов, обучение программированию задач чтения, записи и обработки аналогового сигнала.
Задание к лабораторной работе
Часть 1
1 Разделить систему на функциональные подсистемы.
2 Составить таблицу с перечнем всех символов с назначенными адресами входов и выходов отдельно для каждого блока.
3 Составить алгоритм нормирования сигналов различных датчиков.
4 Программировать функциональные подсистемы, как функции Step7 на языке LAD в виде FС.
Часть 2
5 Заполнить таблицу символов и таблицу переменных в программном обеспечении Simatic Manager.
6 Программировать функции чтения FC1, нормирования FC2, и вывода FC3 аналогового сигнала в виде функций.
7 Программировать основную программу в организационном блоке ОВ1.
8 Сделать выводы. Заполнить отчет.
Краткие сведения из теории.
Рассмотрим на примере чтение значения с датчика уровня. Допустим, что пределы измерения уровня находятся в значениях от 100 мм до 300 мм. При этом датчик выдает измеренные значения в пределах от 0 до 10 вольт. Процесс нормирования включает в себя процесс приведения любого измеренного значения к фактическому значению по следующей формуле:
(2)
Допустим, датчик уровня выдал сигнал 6 вольт. Необходимо узнать какому значению уровня это показание соответствует. Используя формулу (2) получим:
(3)
В программном обеспечении Simatic Manager существует библиотека готовых стандартных функций. Для чтения аналогового сигнала используются функции FC105 (SCALE) и для вывода FC106(UNSCALE).
Функция линейного масштабирования входного сигнала SCALE
Функция линейного масштабирования SCALE назначает каждому значению входного аналогового сигнала определенное выходное значение, то есть нормирует входной сигнал.
Сигналы функции:
IN – входная переменная в безразмерных величинах;
HI_LIM – максимальное измеренное значение по напряжению или току;
LO_LIM– минимальное измеренное значение по напряжению или току;
BIPOLAR- дискретный сигнал установки биполярного (TRUE) или униполярного (FALSE) сигнала;
OUT- выходная переменная по напряжению (в вольтах) или по току (в амперах).
Выходное значение рассчитывается контроллером по формуле:
OUT=[((FLOAT(IN) – K1)/(K2-K1))*(HI_LIM-LO_LIM)]+LO_LIM; (4)
Функция линейного масштабирования выходного сигнала UNSCALE
Функция линейного масштабирования UNSCALE назначает каждому значению входного сигнала определенное выходное аналоговое значение, то есть нормирует выходной сигнал.
Сигналы функции:
IN – входная переменная в безразмерных величинах;
HI_LIM – максимальное выходное значение по напряжению или току;
LO_LIM– минимальное выходное значение по напряжению или току;
BIPOLAR- дискретный сигнал установки биполярного (TRUE) или униполярного (FALSE) сигнала;
OUT- выходная переменная по напряжению (в вольтах) или по току (в амперах).
Выходное значение рассчитывается контроллером по формуле:
OUT=[((IN – LO_LIM)/( HI_LIM-LO_LIM))*( K2-K1)]+ K1; (5)
Как видно, формулы (4) и (5) идентичны формуле (2). А коэффициенты К1 и К2 определяются форматом представления числа в контроллере.
Задача студента лишь исследовать действие формул (4) и (5), а также составить независимую программу нормирования сигнала конкретной физической величины (2).
Порядок выполнения работы
1.Разделим систему на следующие подсистемы:
1. Подсистема чтения аналогового сигнала
2. Подсистема нормирования сигнала
3. Подсистема записи аналогового сигнала
2. Составим таблицу с перечнем всех необходимых символов с назначением адресов для каждого блока.
Таблица 15
Обозна чение |
Адрес в программе |
Статус пара метра |
Символ в таблице символов |
Тип пере менной |
Комментарии |
1. Подсистема чтения аналогового сигнала |
|||||
Символы в основной программе ОВ1 |
|||||
AN1 |
PIW272 |
Вход функции |
AN1 |
WORD |
Первый входной аналоговый сигнал с модуля ввода |
H_AN1 |
10.0 |
Константа |
H_AN1 |
REAL |
Верхнее предельное значение напряжения датчика |
L_AN1 |
0.0 |
Константа |
L_AN1 |
REAL |
Нижнее предельное значение напряжения датчика |
XIZ1 |
MD20 |
Выход функции |
XIZ1 |
REAL |
Измеренное значение в вольтах |
POL_AN1 |
I0.0 |
Вход функции |
POL_AN1 |
BOOL |
Установить униполярный (FALSE) или биполярный вид сигнала (TRUE) |
Символы функции FC1 |
|||||
AN |
LW0 |
Вход функции |
#AN |
WORD |
Любой входной аналоговый сигнал с модуля ввода – формальный параметр |
H_AN |
LD2 |
Внутрен ний параметр функции |
#H_AN |
REAL |
Верхнее предельное значение напряжения датчика – формальный параметр |
L_AN |
LD6 |
Внутрен ний параметр функции |
#L_AN |
REAL |
Нижнее предельное значение напряжения датчика – формальный параметр |
|||||
OUT_AN |
LD10 |
Выход функции |
#OUT_AN |
REAL |
Измеренное значение в вольтах – формальный параметр |
|||||
POL_AN |
LD14.0 |
Вход функции |
#POL_AN |
BOOL |
Установить униполярный (FALSE) или биполярный вид сигнала (TRUE) – формальный параметр |
|||||
2. Подсистема нормирования сигнала |
||||||||||
Символы в основной программе ОВ1 |
||||||||||
XFMAX1 |
300.0 |
Константа |
XFMAX1 |
REAL |
Максимальное значение фактической переменной |
|||||
XFMIN1 |
100.0 |
Константа |
XFMIN1 |
REAL |
Минимальное значение фактической переменной |
|||||
XIZMAX1 |
10.0 |
Константа |
XIZMAX1 |
REAL |
Максимальное значение измеренной переменной |
|||||
XIZMIN1 |
0.0 |
Константа |
XIZMIN1 |
REAL |
Минимальное значение измеренной переменной |
|||||
XF1 |
MD24 |
Выход функции |
XF1 |
REAL |
Значение фактической переменной |
|||||
Символы функции FC2 |
||||||||||
XFMAX |
LD0 |
Вход функции |
#XFMAX |
REAL |
Максимальное значение фактической переменной – формальный параметр |
|||||
XFMIN |
LD4 |
Вход функции |
#XFMIN |
REAL |
Минимальное значение фактической переменной – формальный параметр |
|||||
XIZMAX |
LD8 |
Вход функции |
#XIZMAX |
REAL |
Максимальное значение измеренной переменной – формальный параметр |
|||||
XIZMIN |
LD12 |
Вход функции |
#XIZMIN |
REAL |
Минимальное значение измеренной переменной – формальный параметр |
|||||
XIZ |
LD16 |
Вход функции |
#XIZ |
REAL |
Значение измеренной переменной – формальный параметр |
|||||
XF |
LD20 |
Выход функции |
#XF |
REAL |
Значение фактической переменной – формальный параметр |
|||||
3.Подсистема записи аналогового сигнала |
||||||||||
Символы в основной программе ОВ1 |
||||||||||
ON1 |
PQW272 |
Выход функции |
ON1 |
WORD |
Первый выходной аналоговый сигнал на модуль вывода |
|||||
H_ON1 |
10.0 |
Константа |
H_ON1 |
REAL |
Верхнее предельное значение напряжения датчика |
|||||
L_ON1 |
0.0 |
Константа |
L_ON1 |
REAL |
Нижнее предельное значение напряжения датчика |
|||||
POL_AN1 |
I0.0 |
Вход функции |
POL_AN1 |
BOOL |
Установить униполярный (FALSE) или биполярный вид сигнала (TRUE) |
|||||
Символы функции FC3 |
|||||
ON |
LW0 |
Выход функции |
#ОN |
WORD |
Любой выходной аналоговый сигнал на модуль вывода – формальный параметр |
H_ON |
LD2 |
Внутрен ний параметр функции |
#H_ON |
REAL |
Верхнее предельное значение напряжения датчика– формальный параметр |
L_ON |
LD6 |
Внутрен ний параметр функции |
#L_ON |
REAL |
Нижнее предельное значение напряжения датчика– формальный параметр |
XF |
LD10 |
Вход функции |
#XF |
REAL |
Фактическое значение в единицах измерения физической величины – формальный параметр |
POL_AN |
LD14.0 |
Вход функции |
#POL_AN |
BOOL |
Установить униполярный (FALSE) или биполярный вид сигнала (TRUE) – формальный параметр |
3. Составим алгоритмическую схему каждой функциональной подсистемы отдельно.
Рисунок 3.1 - Подсистема чтения аналогового сигнала
Рисунок 3.2 - Подсистема нормирования сигнала
Рисунок 3.3 - Подсистема записи аналогового сигнала
4. Программирование функциональных подсистем
При программировании используйте те же обозначения, что и в таблице 15 и на рисунках 3.1-3.3. Программу нужно выполнить в соответствии с алгоритмической схемой.
При составлении подобного рода программ рекомендуется соблюдать следующую последовательность действий:
· составить таблицу символов;
· программировать функции, начиная с таблицы описания блока;
· программировать организационный блок;
· составить таблицу переменных.
5. Программирование организационного блока
Основная программу должна быть записана в виде организационного блока ОВ1 в соответствии с приведенной алгоритмической схемой. Она предназначена для вызова блоков FC1, FC2, FC3. В первом варианте программы реализуются формулы (2) и (3). По заданию преподавателя следует продолжить организационный блок нормируя различные физические величины (температуру, расход, напряжение и т.д. ).
6. Составление таблицы символов и таблицы переменных
Таблица символов приведена в приложении В. Она отражает относительные адреса переменных и соответствующие им абсолютные адреса. Таблица составлена с учетом пункта 2, предназначена для удобства чтения программы. Таблица переменных (приложение В) предназначена для управления входными переменными и контроля выходных переменных. Заполнение таблицы следует начать с заполнения необходимых адресов входов и выходов, символы, при наличии таблицы символов и типы данных появляются автоматически.
7. Составление отчета
Отчет по работе должен содержать:
• Задание к лабораторной работе;
• Описание функциональных подсистем;
• Таблицу 15;
• Алгоритмические схемы функциональных подсистем;
• Программу, таблицы символов и переменных Simatic Manager;
• Выводы в виде таблицы истинности входных и выходных сигналов.
Контрольные вопросы
1. Как создаётся функция?
2. Как происходит обмен информацией между основной программой и функцией?
3. Почему функцию называют блоком без параметров?
4. Как обозначены в функциях формальные и фактические параметры?
5. Сколько входных и выходных данных может содержать функция?
6. Какие соответствия должны быть между фактическими и формальными переменными?
7. Перечислите типы данных использованных в программе.
8. Как преобразовать функцию так, чтобы её работа включалась по дискретному сигналу с пятого входа?
9. Что отражают переменные К1 и К2 в формулах (4) и (5)?
10. Изменится ли коэффициент нормирования сигнала, если изменить диапазон измерения, без изменения диапазона соответствующего напряжения?
4 Лабораторная работа № 4. Программирование системы логического контроля и управления.
Цель работы: обучение алгоритмизации и программированию системы логического контроля и управления, изучение режимов работы системы логического управления
Задание к лабораторной работе
Часть 1
1 Разделить систему на функциональные подсистемы.
2 Составить таблицу с перечнем всех символов с назначенными адресами входов и выходов отдельно для каждого блока.
3 Составить алгоритм логического контроля и управления для функциональной подсистемы электродвигателей Д1 и Д2.
4 Программировать функциональные подсистемы, как функциональные блоки Step7 на языке LAD в виде FB.
Часть 2
5 Программировать функции вентиляторов в виде FC блока и организационный блок ОВ.
6 Заполнить таблицу символов и таблицу переменных в программном обеспечении Simatic Manager.
7 Сделать выводы. Заполнить отчет.
Порядок выполнения работы
Порядок выполнения работы рассмотрим на следующем примере. В технологических процессах задачи логического управления связаны, чаще всего, с управлением пуска и останова исполнительных механизмов. Задан технологический процесс (принципиальные электрические схемы на рисунках 4.1,4.2,4.3), в котором участвуют два исполнительных механизма Д1 и Д2. Агрегат запускается кнопкой «Пуск» и останавливается кнопкой «Стоп». Предусмотрены два режима: автоматический («Авт») и ручной («Руч»). Каждый из двигателей имеет свой вентилятор, который отключается через 7 минут после отключения соответствующего двигателя. В системе происходит контроль достижения каждым из двигателей желаемой скорости.
1. Разделим описанную систему на функциональные подсистемы:
• Контроль включения агрегата;
• Двигатель первый (Д1);
• Двигатель второй (Д2);
• Вентилятор первого двигателя (В1);
• Вентилятор второго двигателя (В2).
Ручной пуск - основного агрегата |
|
Сигнализация аварийного отключения D1 и D2 |
|
Выбор режима |
|
Авт.вкл. |
Цепи управления эл. двигателя Д1
|
Руч.вкл. |
|
Руч. или авт.откл |
|
"Включение" |
Сигнализация состояния Д1
|
"Отключение" |
|
Включение вентилятора |
Цепи управления эл.дв. вентилятора двигателя Д1 |
Отключение вентилятора через 7с |
Рисунок 4.1 - Принципиальная электрическая схема логического управления электродвигателем Д1(Д2) и вентилятором охлаждения.
Рисунок 4.2 - Принципиальная электрическая схема силовой части управления двигателем Д1(Д2).
Рисунок 4.3 - Схема контроля скорости на первом двигателе.
2. Составим таблицу с перечнем всех необходимых символов с назначением адресов для каждого блока.
Таблица 16
Обозна чение на ПЭС |
Адрес в программ ме |
Статус параметра |
Символ таблицы перемен ных |
Тип переменной |
Комментарии |
Контроль включения агрегата: |
|||||
Пуск |
I0.0 |
Вход |
«Пуск» |
BOOL |
Если этот сигнал "1" загорается лампа Л1 |
Стоп |
I0.1 |
Вход |
«Стоп» |
BOOL |
Если этот сигнал "1" загорается лампа Л2 |
Авт. |
I0.3 |
Вход |
«Авт.» |
BOOL |
Этот сигнал запускает триггер «Автоматический режим»; если сигнал "0", запускаются триггеры управления режимами двигателей Д1 и Д2 |
Руч |
I0.4 |
Вход |
«Руч» |
BOOL |
Этот сигнал сбрасывает триггер «Автоматический режим» |
Л1 |
Q 0.0 |
Выход |
«Лапма1» |
BOOL |
Выходной сигнал, устанавливается, если «Пуск»-1 |
Л2 |
Q 0.1 |
Выход |
«Лампа 2» |
BOOL |
Выходной сигнал, устанавливается, если «Стоп»-1 |
Авт. режим |
М1.0 |
Выход-вход |
«Авт. режим» |
BOOL |
Триггер установки режима |
Двигатель Д1 и Д2 |
|||||
ВклД1 |
I0.5 |
Вход |
«ВклД1» |
BOOL |
Кнопка включения двигателя Д1. Если этот сигнал "1" загорается лампа ЛЗ, запускается триггер ТГ1 |
Выкл Д1 |
I0.6 |
Вход |
«ВыклД1» |
BOOL |
Кнопка отключения двигателя Д1. Если этот сигнал "0" загорается Л4, сбрасывается ТГ1 |
АвД1 |
М10.0 |
Вход |
«АвД1» |
BOOL |
Если этот сигнал "1" загорается Л2, если "0" сбрасывается ТГ1 |
W1 |
MW20 |
Вход |
«W» |
WORD |
Действительное значение скорости Д1. Вводится с клавиатуры в таблицу переменных |
Wжел1 |
L6.0 (#Рrеset_Speed) |
Вход |
« Wжел1» |
WORD |
Желаемое значение скорости Д1. Устанавливается по начальному значению в таблицу описания FB1. |
ЛЗ |
Q0.2 |
Выход |
«Л3» |
BOOL |
Загорается, если сигнал «ВклД1»=1 |
Tгl |
М10.2 |
Выход |
Вход |
BOOL |
Устанавливается, если «Авт.режим»=1 и «ВклД1=1». Сбрасывается, если «ВыклД1=1» или «АвД1»=1 |
Л4 |
Q0.3 |
Выход |
«Л4» |
BOOL |
Загорается, если сигнал «ВыклД1»=1 |
Л5 |
Q0.4 |
Выход |
«Л5» |
BOOL |
Сигнализация о достижении желаемой скорости на Д1 |
Вкл Д2 |
I0.7 |
Вход |
«ВклД2» |
BOOL |
Если этот сигнал "1" загорается лампа Л6 |
ВыклД2 |
I0.2 |
Вход |
«ВыклД1» |
BOOL |
Если этот сигнал "0" загорается Л7, сбрасывается TГl |
АвД2 |
М10.4 |
Вход |
«АвД2» |
BOOL |
Если этот сигнал "1" загорается Л2, если 0 сбрасывается ТГ2 |
W2 |
MW 30 |
Вход |
«W2» |
WORD |
Действительное значение скорости Д2. |
Wжел2 |
L6.0 (#Рrеset_Speed) |
Вход |
«Wжел2» |
WORD |
Желаемое значение скорости Д2. Устанавливается по начальному значению в таблицу описания FB1. |
Л6 |
Q0.5 |
Выход |
«Д1 - вкл» |
BOOL |
Загорается, если сигнал «ВклД1»=1 |
Тг2 |
M l 0.6 |
Выход |
«Тг2» |
BOOL |
Устанавливается, если «Авт.режим»=1 и «ВклД2=1». Сбрасывается, если «ВыклД2=1» или «АвД2»=1 |
Л7 |
Q0.6 |
Выход |
«Д2-выкл» |
BOOL |
Загорается, если сигнал «ВыклД2»=1 |
Л8 |
Q0.7 |
Выход |
«Жел.зн. достиг.Д2» |
BOOL |
Сигнализация о достижении желаемой скорости на Д2 |
Вентиляторы В1 и В2 |
|||||
В1 |
FC1 |
Функция |
«Вентиля тор-В1» |
Нет |
Вызов из основной программы в виде функции без параметров. Запускает таймер с задержкой выключения, если «ВклД1»=1 |
В2 |
FC1 |
Функция |
«Вентиля тор-В2» |
Нет |
Вызов из основной программы в виде функции без параметров. Запускает таймер с задержкой выключения, если «ВклД2»=1 |
Т1 |
Т1 |
Таймер |
«Т1» |
TIMER |
Устанавливается как операнд на блоке таймера |
Т2 |
Т2 |
Таймер |
«Т2» |
TIMER |
Устанавливается как операнд на блоке таймера (одинаковый для обоих вентиляторов) |
КТ1 |
Q2.0 |
Выход |
«КТ1» |
BOOL |
Сигнализирует о включенном состоянии В1 |
КТ2 |
Q4.0 |
Выход |
«КТ2» |
BOOL |
Сигнализирует о включенном состоянии В2 |
3. Составим алгоритмическую схему каждой функциональной подсистемы отдельно.
Алгоритмическую схему (рисунки 4.4- 4.7) следует составлять, пользуясь литературой /1/.
Основная программа.
Рисунок 4.4
3.2 Функциональный блок – Д1 и Д2.
Рисунок 4.5
3.3 Функции вентиляторов В1 и В2.
Рисунок 4.6
3.4 Контроль достижения желаемой скорости на Д1 и Д2.
Рисунок 4.7
4. Программирование функциональных подсистем
При программировании подсистемы двигателей Д1 и Д2 нужно использовать функциональный блок FB1, а функции вентиляторов оформить в виде функции FC1. Программирование выполнить в соответствии с алгоритмической схемой. Контроль достижения заданной скорости должно происходить внутри функции FB1.
При составлении подобного рода программ рекомендуется соблюдать следующую последовательность действий:
• программировать функциональный блок, начиная с таблицы описания блока;
• программировать функции;
• программировать организационный блок;
• составить таблицу символов;
• составить таблицу переменных.
5. Программирование организационного блока
Основная программа нужно записать в виде организационного блока ОВ1 в соответствии с приведенной алгоритмической схемой. Она предназначена для контроля работы агрегата, вызова функциональных блоков с назначенными фактическими значениями каждого из двигателей, вызова функций вентиляторов.
6. Составление таблицы символов и таблицы переменных
Таблица символов приведена в приложении Г. Она отражает относительные адреса переменных и соответствующие им абсолютные адреса. Таблица составлена с учетом пункта 2, предназначена для удобства чтения программы, имена переменных составлены в соответствии с обозначениями на принципиальной электрической схеме. Таблица переменных предназначена для управления входными переменными и контроля выходных переменных. Заполнение таблицы следует начать с заполнения необходимых адресов входов и выходов, символы, при наличии таблицы символов и типы данных появляются автоматически.
7. Составление отчета
Отчет по работе должен содержать:
• Задание к лабораторной работе;
• Описание функциональных подсистем;
• Таблицу 16;
• Алгоритмические схемы функциональных подсистем;
• Программу, таблицы символов и переменных Simatic Manager;
• Выводы в виде таблицы истинности входных и выходных сигналов.
Контрольные вопросы
1. Как передаются данные из основной программы в функциональный блок?
2. Почему для программирования работы двигателя был выбран FB блок, а вентилятора FC блок?
3. Как реализована подсистема включения агрегата?
4. Как реализована в программе функция вентиляторов?
5. Как дополнить программу контроля достижения заданной скорости с учетом знака скорости?
6. Какие логические функции были использованы при моделировании переключения режимов «авт/руч» и почему?
7. Чем отличаются переменные изображенные в программе со знаками # и “”? В какой области памяти они располагаются?
8. Смоделируйте ситуацию отключения двигателя Д2 по сигналу оператора.
9. Как смоделировать ситуацию возникновения аварии на втором двигателе? Приведите в виде таблицы результаты этой ситуации.
10. Какая часть программы реализует контроль достижения желаемой скорости? Назовите блок и номер сети. Как реализована здесь функция компаратора?
11. Как реализована в программе подсистема двигателей Д1 и Д2?
12. Как смоделировать ситуацию отказа вентилятора первого двигателя? Приведите в виде таблицы результаты этой ситуации
13. Смоделируйте ситуацию достижения заданной скорости на обоих двигателях. Как это реализовать при эксперименте?
14. Какая часть программы реализует изменения режима с ручного на автоматический? Назовите номер или номера сетей и приведите описание.
15. Как смоделировать ситуацию нормального отключения двух двигателей? Приведите в виде таблицы результаты этой ситуации.
Приложение А
Таблица А.1 - Обозначение адресов
Область операндов |
Доступ через единицы следующей величины: |
Нотация S7 |
Описание |
Отображение процесса на входах |
Вход (бит) Входной байт Входное слово Двойное входное слово |
I IВ IW ID |
В начале каждого цикла CPU читает входы из модулей ввода и сохраняет значения в отображении процесса на входах. |
Отображение процесса на выходах |
Выход (бит) Выходной байт Выходное слово Двойное выходное слово |
Q QВ QW QD |
В течение цикла программа рассчитывает значения для выходов и сохраняет их в отображении процесса на выходах. В конце цикла CPU записывает рассчитанные выходные значения в модули вывода. |
Маркеры |
Маркер (бит) Маркерный байт Маркерное слово Двойное маркерное слово |
М MB MW MD |
Эта область предоставляет в распоряжение ячейки памяти для рассчитанных в программе промежуточных результатов. |
Таймеры |
Таймер (Т) |
Т |
В этой области предоставляются в распоряжение таймеры. |
Счетчики |
Счетчик (Z) |
Z |
В этой области предоставляются в распоряжение счетчики. |
Блок данных |
Блок данных, открываемый с помощью "AUF DB": Бит данных Байт данных Слово данных Двойное слово данных |
DB
DBX DBB DBW DBD |
Блоки данных хранят информацию для программы. Они могут быть определены или так, что к ним могут обращаться все кодовые блоки (глобальные DB), или они приписаны одному определенному FB или SFB (экземпляры DB). |
Блок данных, открываемый с помощью "AUF DP: Бит данных Байт данных Слово данных Двойное слово данных |
DI
DIX DIB DIW DID |
Продолжение таблицы А.1
Локальные данные |
Бит локальных данных Байт локальных данных Локальное слово данных Двойное локальное слово данных |
L LB LW LD |
Эта область памяти принимает временные данные блока на время обработки этого блока. L-стек предоставляет в распоряжение также память дли передачи параметров блока и для хранения промежуточных результатов из сетей КОР. |
Периферий ная область: входы
|
Периферийный входной байт Периферийное входное слово Периферийное входное двойное слово |
РIВ
PIW
PID |
Периферийные области входов и выходов разрешают прямой доступ к центральным и децентрализованным модулям ввода и вывода (DP, см. гл. 6.3.) |
Периферий ная область: выходы |
Периферийный выходной байт Периферийное выходное слово Периферийное выходное двойное слово |
РQВ
PQW
PQD |
Приложение Б
Таблица Б.1 - Список операций языка LAD
Описание |
Мнемоника SIMATIC |
Бит ошибки Недействительная операция |
UO ---| |--- |
Бит ошибки Переполнение |
OV ---| |--- |
Бит ошибки Переполнение с запоминанием |
OS ---| |--- |
Бит ошибки ВIЕ-регистр |
BIE ---| |--- |
Бит результата если больше 0 |
>0 ---| |--- |
Бит результата если больше или равно 0 |
>=0 ---| |---- |
Бит результата если меньше 0 |
<0 ----| | ---- |
Бит результата если меньше или равно 0 |
<=0 ----| | ---- |
Бит результата если не равно 0 |
<>0 ----| | ---- |
Бит результата если равно 0 |
==0 ---| |--- |
Включение Master Control Relay |
---(MCR<) |
Возврат |
---(RET) |
Вызов системного FB как блока |
CALL_SFB |
Вызов системного FC как блока |
CALL_SFC |
Вызов FB как блока |
CALL_FB |
Вызов FC как блока |
CALL_FC |
Вызов FC/SFC без параметров |
----(CALL) |
Выключение Master Control Relay |
----(MCR>) |
Вычитание целых чисел (16 бит) |
SUB_I |
Вычитание целых чисел (32 бита) |
SUB_Dl |
Вычитание чисел с плавающей точкой |
SUB_R |
Деление целых чисел (16 бит) |
DIV_I |
Деление целых чисел (32 бита) |
DIV_Dl |
Деление чисел с плавающей точкой |
DIV_R |
Загрузка результата логической операции в ВIЕ-регистр |
----( SAVE ) |
Замыкающий контакт |
---| |--- |
Запуск таймера в режиме задержки включен (SE) |
S_EVERZ |
Запуск таймера в режиме задержки включения (SE) |
----(SE) |
Запуск таймера в режиме задержки включения с запоминанием (SS) |
S_SEVERZ |
Запуск таймера в режиме задержки включения с запоминанием (SS) |
----( SS ) |
Запуск таймера в режиме задержки выключения (SA) |
S_AVERZ |
Запуск таймера в режиме задержки выключения(SA) |
-----( SA) |
Запуск таймера в режиме удлиненного импульса (SV) |
S_VIMP |
Запуск таймера в режиме удлиненного импульса (SV) |
----(SV) |
Запуск таймера в режиме формирования импульса (SI) |
S_IMPULS |
Запуск таймера в режиме формирования импульса (SI) |
----( SI ) |
Изменение знака числа с плавающей точкой |
NEG_R |
Инверсный бит ошибки Недействительная операция |
UO ---| / |--- |
Инверсный бит ошибки Переполнение |
OV ---| / |--- |
Инверсный бит ошибки Переполнение с запоминанием |
OS ---| / |--- |
Инверсный бит ошибки ВIЕ-регистр |
BIE ---| / |--- |
Инверсный бит результата, если больше 0 |
>0 ---| / |--- |
Инверсный бит результата, если больше или равно 0 |
>=0 ---| / |--- |
Инверсный бит результата, если меньше 0 |
<0 ---| / |--- |
Продолжение таблицы Б.1
Инверсный бит результата, если меньше или равно 0 |
<=0 ---| / |--- |
Инверсный бит результата, если не равно 0 |
<>0 ---| / |--- |
Инверсный бит результата, если равно 0 |
= =0 ---| / |--- |
Инвертирование результата логической операции |
---| NOT |--- |
Катушка реле, выход |
---( )--- |
Коннектор |
----(#)----- |
Начало Master Control Relay |
---(MCRA) --- |
Образование ближайшего большего целого числа из числа с плавающей точкой |
CEIL |
Образование ближайшего меньшего целого числа из числа с плавающей точкой |
FLOOR |
Образование дополнения до 1 целого числа (16 бит) |
INV_I |
Образование дополнения до 1 целого числа (32 бита) |
INV_Dl |
Образование дополнения до 2 целого числа (16 бит) |
NEG_I |
Образование дополнения до 2 целого числа (32 бита) |
NEG_DI |
Образование целого числа |
TRUNC |
Обратный счет |
Z_RUECK |
Обратный счет |
----(ZR) |
Округление числа |
ROUND |
Опрос фронта 01 |
---(P)--- |
Опрос фронта 10 |
---( N )--- |
Опрос фронта сигнала 01 |
POS |
Опрос фронта сигнала 1 0 |
NEG |
Открытие блока данных |
---( AUF ) |
Передача значения |
MOVE |
Переход, если 0 |
---(JMPN) |
Переход, если 1 |
---(JMP) |
Получение остатка от деления (32 бита) |
MOD |
Поразрядное ИЛИ над 16 битами |
WOR_W |
Поразрядное ИЛИ над 32 битами |
WOR_DW |
Поразрядное И над 16 битами |
WAND_W |
Поразрядное И над 32 битами |
WAND_DW |
Поразрядное ИСКЛЮЧАЮЩЕЕ ИЛИ над 16 битами |
WXOR_W |
Поразрядное ИСКЛЮЧАЮЩЕЕ ИЛИ над 32 битами |
WXOR_DW |
Таблица Б.2 - Список операций на STL
Наименование |
Мнемоника |
Абсолютное значение вещественного числа (32 бита) |
ABS |
Акк3→Акк4;Акк2→Акк3;Акк1→Акк2 |
PUSH |
Акк3←Акк4;Акк2←Акк3;Акк1←Акк2 |
POP |
Акк3→Акк2;Акк4→Акк3; |
LEAVE |
Акк3→Акк4;Акк2→Акк3; |
ENT |
Активизировать область мастер контроль реле |
MCRA |
Сложить Акк1 и Акк2 как двойные целые числа 32 бита |
+D |
Сложить Акк1 и Акк2 как целые числа 16 битов |
+I |
Сложить Акк1 и Акк2 как вещественные числа 32 бита |
+R |
Прибавить Акк1 к адресному регистру 1 |
+AR1 |
Прибавить Акк1 к адресному регистру 2 |
+AR2 |
Продолжение таблицы Б.2
Прибавить целую константу (8, 16, 32 бита) |
+ |
И |
A |
Поразрядное И с двойными словами 32 бита |
AD |
И-НЕ |
AN |
И-НЕ с открытием вложения |
AN( |
И с открытием вложения |
A( |
Поразрядное И со словами 16 бит |
AW |
Арккосинус числа с плавающей точкой 32 бита |
ACOS |
Арксинус числа с плавающей точкой 32 бита |
ASIN |
Арктангенс числа с плавающей точкой 32 бита |
ATAN |
Присвоить |
= |
Преобразовать BCD в двойное целое число 32 бита |
BTD |
Преобразовать BCD в целое число 16 бит |
BTI |
Конец блока условный |
BEC |
Конец блока безусловный |
BEU |
Вызов блока |
CALL |
Изменить последовательность байтов в аккумуляторе1 (16 бит) |
CAW |
Изменить последовательность байтов в аккумуляторе1 (32 бита) |
CAD |
Очистить результат логической операции |
CLR |
Сравнить двойные целые числа 32 бита |
==D |
Сравнить двойные целые числа 16 битов |
==I |
Сравнить вещественные числа |
==R |
Условный вызов блока |
CC |
Косинус числа с плавающей точкой 32 бита |
COS |
Счетчик обратного счета |
CD |
Счетчик прямого счета |
CU |
Деактивизировать область мастер контроль реле |
MCRD |
Уменьшить Акк1 на 1 |
DEC |
Разделить Акк2 на Акк1 как двойные целые числа 32 бита |
/D |
Разделить Акк2 на Акк1 как целые числа 16 бит |
/I |
Разделить Акк2 на Акк1 как вещественные числа 32 бита |
/R |
Остаток от деления двойного целого числа |
MOD |
Преобразовать двойное целое в BCD |
DTB |
Преобразовать двойное целое в вещественное |
DTR |
Отрицательный фронт |
FN |
Положительный фронт |
FP |
Разблокировать таймер или счетчик |
FR |
Обменять адресный регистр 1 с адресным регистром 2 |
CAR |
Обменять глобальный блок данных и экземплярный блок данных |
CDB |
Исключающее ИЛИ |
X |
Поразрядное Исключающее ИЛИ с двойными словами 32 бита |
XOD |
Исключающее ИЛИ-НЕ |
XN |
Исключающее ИЛИ-НЕ с открытием вложения |
XN( |
Исключающее ИЛИ с открытием вложения |
X( |
Поразрядное Исключающее ИЛИ со словами 16 битов бита |
XOW |
Экспоненциальное значение числа с плавающей точкой 32 бита по основанию Е |
EXP |
Таймер –формирователь удлиненного импульса |
SE |
Продолжение таблицы Б.2
Увеличить аккумулятор на 1 |
INC |
Преобразовать целое число 16 битов в BCD |
ITB |
Преобразовать целое число 16 битов в двойное целое число 32бита |
ITD |
Перейти, если результат =0 |
JZ |
Перейти, если результат BR=0 |
JNBI |
Перейти, если результат BR=1 |
JBI |
Перейти, если результат <0 |
JM |
Перейти, если результат <=0 |
JMZ |
Перейти, если результат <>0 |
JN |
Перейти, если OS=1 |
JOS |
Перейти, если OV=1 |
JO |
Перейти, если результат >0 |
JP |
Перейти, если результат >=0 |
JPZ |
Перейти, если RLO = 0 |
JCN |
Перейти, если RLO = 0 с сохранением RLO в BR |
JNB |
Перейти, если RLO = 1 |
JC |
Перейти, если RLO = 1 с сохранением RLO в BR |
JCB |
Перейти, если результат недействителен |
JUO |
Перейти по списку |
JL |
Перейти безусловно |
JU |
Загрузить в аккумулятор: Сnnn значение счетчика nnn, Т nnn значение таймера nnn, DILG длину экземплярного блока данных, DBLG длину глобального блока данных, DINO номер экземплярного блока данных, DBNO номер глобального блока данных, STW слово состояния, |
L |
Загрузить адресный регистр 1 из: аккумулятора, второго адресного регистра или двойным целым числом Р# область байта,бита. |
LAR1 |
Загрузить адресный регистр 2 из: аккумулятора, второго адресного регистра или двойным целым числом Р# область байта, бита. |
LAR2 |
Загрузить текущее значение счетчика или таймера в BCD |
LC |
Программный цикл |
LOOP |
Умножение Акк1 на Акк2 как двойное целое |
*D |
Умножение Акк1 на Акк2 как целое |
*I |
Умножение Акк1 на Акк2 как вещественные числа |
*R |
Натуральный логарифм числа с плавающей запятой |
LN |
Изменить знак вещественного числа |
NEGR |
Инвертировать результат логической операции |
NOT |
Вложение закрыто |
) |
Пустая операция 0 |
NOP 0 |
Пустая операция 1 |
NOP 1 |
Таймер, формирователь задержки выключения |
SF |
Таймер, формирователь задержки включения |
SD |
Дополнение до 1 двойного целого числа 32 бита |
INVD |
Дополнение до 1 целого числа 16 бит |
INVI |
Открыть блок данных |
OPN |
ИЛИ |
O |
Поразрядное ИЛИ с двойными словами |
OD |
ИЛИ-НЕ |
ON |
ИЛИ-НЕ с открытием вложения |
ON( |
Продолжение таблицы Б.2
ИЛИ с открытием вложения |
O( |
Поразрядное ИЛИ со словами |
OW |
Команда программирования изображения |
BLD |
Таймер – формирователь импульса |
SP |
Сбросить адрес, счетчик или таймер |
R |
Восстановить RLO и закрыть мастер контроль реле |
)MCR |
Таймер – формирователь задержки включения с запоминанием |
SS |
Выполнить циклический сдвиг Акк1 влево через бит переноса |
RLDA |
Выполнить циклический сдвиг Акк1 вправо через бит переноса |
RRDA |
Выполнить циклический сдвиг двойного слова влево 32 бита |
RLD |
Выполнить циклический сдвиг двойного слова вправо 32 бита |
RRD |
Округлить |
RND |
Округлить до ближайшего меньшего двойного целого числа |
RND- |
Округлить до ближайшего большего двойного целого числа |
RND+ |
Сохранить результат логической операции RLO в бите BR |
SAVE |
Сохранить RLO в стеке MCR, начать MCR |
MCR( |
Установить область памяти или начальное значение счетчика |
S |
Установить RLO=1 |
SET |
Сдвинуть влево двойного слово 32 бита |
SLD |
Сдвинуть влево слово 16 бита |
SLW |
Сдвинуть вправо двойного слово 32 бита |
SRD |
Сдвинуть вправо слово 16 бита |
SRW |
Сдвинуть двойного целое число со знаком 32 бита |
SSD |
Сдвинуть целое число со знаком 16 битов |
SSI |
Синус числа с плавающей точкой 32 бита |
SIN |
Квадрат числа с плавающей точкой 32 бита |
SQR |
Корень квадратный числа с плавающей точкой 32 бита |
SQRT |
Вычесть Акк1 из Акк2 как двойные слова 32 бита |
-D |
Вычесть Акк1 из Акк2 как целые числа 16 бит |
-I |
Вычесть Акк1 из Акк2 как вещественные числа 32 бита |
-R |
Тангенс числа с плавающей точкой 32 бита |
TAN |
Обменять Акк1 с Акк2 |
TAK |
Передать Акк1 |
T |
Передать адресный регистр 1 |
TAR1 |
Передать адресный регистр 2 |
TAR2 |
Округлить до целого отбрасыванием младших разрядов |
TRUNC |
Дополнение до 2 двойного целого числа 32 бита |
NEGD |
Дополнение до 2 целого числа 16 бит |
NEGI |
Безусловный вызов блока |
UC |
Приложение В
Таблица В.1 - Таблица символов
Символ |
Адрес |
Тип |
Комментарии |
AN1 |
PIW 272 |
PIW 272 |
Аналоговый вход |
ON1 |
PQW 288 |
INT |
Аналоговый выход |
POL_AN1 |
I 0.0 |
BOOL |
Полярность аналогового сигнала |
SCALE |
FC 105 |
FC 105 |
Scaling Values |
UNSCALE |
FC 106 |
FC 106 |
Unscaling Values |
XF1 |
MD 24 |
REAL |
Фактическое значение аналогового сигнала |
XIZ1 |
MD 20 |
REAL |
Измеренное значение аналогового сигнала |
Таблица В.2 - Таблица переменных
Операнд |
Символ |
Формат |
MD 20 |
"XIZ1" |
DEC |
MD 24 |
"XF1" |
REAL |
I 0.0 |
"POL_AN1" |
BIN |
Приложение Г
Таблица Г.1 - Таблица символов
Символ |
Адрес |
Тип |
Комментарии |
Wl |
MW20 |
WORD |
Текущая скорость на Д1 |
W2 |
MW30 |
WORD |
Текущая скорость на Д2 |
Wжел1 |
MW22 |
WORD |
Желаемое значение скорости Д1 |
Wжел2 |
MW32 |
WORD |
Желаемое значение скорости Д2 |
АвД1 |
М10.0 |
BOOL |
Авария на Д1 |
АвД2 |
М10.4 |
BOOL |
Авария на Д2 |
Авт |
I0.3 |
BOOL |
Переключатель «Авт» |
Авт.режим |
M1.0 |
BOOL |
Триггер |
Вентилятор |
FC1 |
FC1 |
Функция |
ВклД1 |
I0.5 |
BOOL |
Контакт |
ВклД2 |
I0.5 |
BOOL |
Контакт |
ВыклД1 |
I0.6 |
BOOL |
Контакт |
ВыКлД2 |
I0.2 |
BOOL |
Контакт |
Двигатель 1 |
DB1 |
FB1 |
Блок данных для функционального блока FB1 |
Двигатель 2 |
DB2 |
FB1 |
Блок данных для функционального блока FB1 |
К1 |
Q2.0 |
BOOL |
Катушка с сигнализацией |
К2 |
Q4.0 |
BOOL |
Катушка с сигнализацией |
Л1 |
Q0.0 |
BOOL |
Катушка с сигнализацией |
Л2 |
Q0.1 |
BOOL |
Катушка с сигнализацией |
ЛЗ |
Q0.2 |
BOOL |
Катушка с сигнализацией |
Л4 |
Q0.3 |
BOOL |
Катушка с сигнализацией |
Л5 |
Q0.4 |
BOOL |
Катушка с сигнализацией |
Л6 |
Q0.5 |
BOOL |
Катушка с сигнализацией |
Л7 |
Q0.6 |
BOOL |
Катушка с сигнализацией |
Л8 |
Q0.7 |
BOOL |
Катушка с сигнализацией |
Пуск |
I0.0 |
BOOL |
Дискретный вход |
Руч |
I0.4 |
BOOL |
Дискретный вход |
Стоп |
I0.1 |
BOOL |
Дискретный вход |
Tгl |
М10.2 |
BOOL |
Триггер |
Тг2 |
М10.6 |
BOOL |
Триггер |
Список литературы
1. Петров И.В. Программируемые контроллеры. .стандартные языки и приемы прикладного проектирования/ Под ред. проф. В.П. Дьяконова. – М.: СОЛОН-Пресс, 2004. -256с.
2. Романчик А.Л., Рудакова Л.Н.. Автоматизация теплоэнергетических процессов. Учебное пособие. Алматы: АИЭС, 1994. - 72с.
3. Э.Парр. Программируемые контроллеры: руководство для инженера/ пер. с англ. – М.: БИНОМ. Лаборатория знаний, 2007. -516с
4. Электронные версии документации к программному обеспечению Simatic Manager.