Разработка программного обеспечения и инструкции по работе с установкой "АСР уровня жидкости с применением ПЛК ОВЕН 150"

Разработка программного обеспечения для работы с установкой "АСР уровня жидкости с применением ПЛК ОВЕН 150" и лабораторного практикума по изучению промышленного программируемого контроллера с использованием ПК и среды программирования Codesys 2.3.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 30.06.2012
Размер файла 4,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

· Разделитель Организатора объектов и рабочей области CoDeSys.

· Рабочая область, в которой находится редактор.

· Панель состояния

2.6 Меню

Меню находится в верхней части главного окна(рис. 4). Оно содержит все команды CoDeSys (таблица 1).

Рисунок 4. Меню CoDeSys.

Таблица 1. Меню CoDeSys

Название команды Меню

Описание команды Меню

Меню File - Файл

New - Новый

Создать новый проект с именем “Untitled”

New from template - Шаблон

Открыть шаблон проекта. Новый проект получает имя “Untitled”

Open - Открыть

Открыть ранее сохраненный проект. Если в момент вызова этой команды какой-то проект уже открыт и в него были внесены изменения, то программа предложит сохранить этот проект

Close - Закрыть

Закрыть открытый в данный момент проект. Если с момента открытия в проект были внесены изменения, то программа предложит сохранить этот проект

Save - Сохранить

Сохранить проект

Save as… - Сохранить как…

Сохранить проект или библиотеку под новым именем. При этом исходный файл не изменяется

Save/Mail Archieve…

Создать архив проекта. Все файлы, которые используются проектом CoDeSys, сохраняются и сжимаются в файл с расширением *.zip. Такой файл удобно хранить и пересылать по электронной почте

Print - Печать

Напечатать содержание активного окна

Printer Setup… - Настройки принтера

Открыть окно с настройками печати

Exit - Выход

Закрыть CoDeSys. Если в момент вызова этой команды открыт проект, то программа предложит его сохранить

Меню Edit - Редактирование

Undo - Отменить

Отменить последнее изменение, сделанное в открытом редакторе или в Организаторе объектов. Используя эту команду, вы можете отменить все изменения, выполненные после открытия окна

Redo - Повторить

Вернуть последнее изменение, отмененное в открытом редакторе или в Организаторе объектов командой Undo

Cut - Вырезать

Переместить выделенный элемент в буфер. При этом выделенный элемент удаляется из окна редактора

Copy - Копировать

Копировать выделенный элемент в буфер, содержимое окна редактора при этом не изменяется

Paste - Вставить

Вставить содержимое буфера, начиная с текущей позиции курсора в окне редактора. В графических редакторах команда выполнима только, если содержимое буфера соответствует выбранному элементу

Delete - Удалить

Удаляет выбранную область, содержимое буфера при этом не изменяется

Find… - Найти

Найти введенный текст в активном окне редактора. При этом открывается диалог для поиска

Find next - Найти далее

Начать поиск введенного текста с текущей позиции и далее

Replace - Найти и заменить

Найти заданный текст и заменить его на введенный. После вызова этой команды открывается диалог для поиска и замены выбранного текста

Input Assistant - Ассистент ввода

Открыть диалоговое окно для выбора элемента, который можно ввести в текущей позиции. В левом столбце следует выбрать категорию элементов, а в правом - нужный элемент, а затем нажать OK

Auto Declare - Автоматическое объявление переменных

Открыть диалог для объявления переменных

Next Error - Следующая ошибка

Показать следующую ошибку, если проект скомпилирован с ошибками. При этом открывается соответствующий редактор в том месте, где произошла ошибка, а в окне сообщений появляется краткое описание этой ошибки

Previous Error - Предыдущая ошибка

Показать предыдущую ошибку, если проект скомпилирован с ошибками. При этом открывается соответствующий редактор в том месте, где произошла ошибка, а в окне сообщений появляется краткое описание этой ошибки

Macros - Макросы

Показать список всех определенных в проекте макрокоманд - макросов. При выполнении макроса появляется окно “Process Macro”, в котором выводиться имя макроса и имя активной команды

Меню Project - Проект

Build - Компилировать измененные POU

Компилировать только POU,которые были изменены

Rebuild all - Компилировать весь проект

Компилировать весь проект, даже если он не был изменен

Clear all - Очистить все

Стереть всю информацию о предыдущей компиляции и загрузке проекта в контроллер

Load Download-Information - Загрузить информацию о загрузке кода

Загрузить информацию о загрузке кода в контроллер, если она была сохранена в директории, отличной от той, в которой находится проект

Translate into another language - Перевести текст проекта на другой язык

Перевести текст проекта на другой национальный язык. Здесь используется вспомогательный текстовый файл, созданный в CoDeSys и переведенный в текстовом редакторе на желаемый язык

Document - Создать документ для печати

Создать версию проекта для печати

Export… - Экспортировать проект

Экспортировать проект из одного инструмента МЭК программирования в другой. Можно экспортировать POU, типы данных, визуализации, описания подключенных к проекту библиотек (но не сами библиотеки) и другие ресурсы

Import - Импортировать данные из файла в проект

Импортировать в проект данные из выбранного файла

Siemens Imports - Импортировать из файлов Siemens

Импортировать переменные и POU из файлов Siemens-STEP5 и STEP7

Merge - Слияние проектов

Слить два проекта

Compare - Сравнить

Сравнить два проекта или разные версии одного и того же проекта

Project info - Информация о проекте

Сохранить дополнительную информацию о проекте

Global Search - Найти текст

Найти заданный текст в POU, типах данных или разделе глобальных переменных проекта

Global Replace - Заменить текст

Найти заданный текст в POU, типах данных или в глобальных переменных проекта и заменить его на другой

Viev Instance - Показать экземпляры функционального блока

Показать экземпляры выбранного в организаторе объектов функционального блока. Появится список всех экземпляров выбранного функционального блока и его реализация

Show Call Tree - Показать дерево вызовов объекта

Показать дерево вызовов выбранного объекта в новом окне. Для использования данной команды проект должен быть скомпилирован

Show Cross Reference - Показать адрес переменной

Открыть диалоговое окно, в котором выводятся адрес, место расположения (POU, номер строки) переменной. Для использования данной команды проект должен быть скомпилирован

Check - Семантический контроль

Команды этого меню используются для дополнительного семантического контроля. Проект должен быть откомпилирован без ошибок, иначе данные команды недоступны

Add Action - Добавить действие

Создать действие, связанное с блоком, выделенным в Организаторе объектов. При этом нужно задать имя действия и язык, на котором оно будет описано

User Group Passwords - Пароли групп пользователей

Установить права доступа к объекту для различных групп пользователей

Меню Insert - Вставка

Declaration keywords - Список ключевых слов

Вывести список ключевых слов для быстрого ввода ключевых слов, допускаемых в разделе объявлений POU. После выбора ключевого слова из списка, оно будет вставлено в текущую позицию курсора

Types - Список типов

Вывести список доступных типов для их быстрого ввода

New declaration - Добавить новую переменную

Добавить новую переменную в таблицу редактора объявлений

Меню Extras - Опции

Команды данного пункта Меню могут меняться в зависимости от редактора, в котором Вы работаете

Меню Online - Подключение к контроллеру

Login - Подключиться к контроллеру

Установить соединение системы программирования CoDeSys с контроллером (или запустить программу эмуляции) и включить режим Online

Logout - Отключить соединение с контроллером

Разорвать соединение с контроллером или закончить работу программы, если работа происходит в режиме эмуляции. Система переходит в режим Offline

Download - Загрузить код проекта в контроллер

Загрузить код проекта в контроллер

Run - Запустить программу в контроллере/режим эмуляции

Запустить программу на выполнение в контроллере или режиме эмуляции

Stop - Остановить выполнение программы

Остановить программу при ее выполнении в контроллере или в режиме эмуляции

Reset - Сброс

Заново инициализировать все переменные, за исключением VAR RETAIN. Если Вы определили начальные значения переменных, они будут присвоены (включая VAR PERSISTENT). Прочие переменные приобретут стандартные значения по умолчанию (например, 0 для целых типов). Данный сброс аналогичен выключению и включению питания ПЛК, при работающей программе

Reset (cold) - Холодный сброс

Холодный сброс. Выполнить те же действия, что и при команде Reset, и дополнительно выполнить инициализацию энергонезависимой области памяти RETAIN

Reset (original) - Заводской сброс

Выполнить Reset Cold. Происходит инициализация области PERSISTENT и удаление программы пользователя. То есть, восстанавливается состояние контроллера, в котором он поступил с завода-изготовителя

Toggle Breakpoint - Установить точку останова

Установить точку останова в текущей позиции активного окна. Если в этой позиции уже стоит точка останова, то она будет удалена

Breakpoint Dialog - Открыть диалог управления точками останова

Открыть диалог управления точками останова в проекте. В нем указаны все установленные точки останова

Step over - Выполнить одну инструкцию программы

Выполнить одну инструкцию программы. Если это инструкция вызова POU, то данный POU выполнится целиком, затем программа остановится

Step in - Выполнить программу по шагам

Выполнить программу по шагам, с заходом в вызываемые блоки. Вызываемые POU открываются в отдельных окнах

Single Cycle - Выполнить один цикл

Выполнить один рабочий цикл контроллера. Данную команду можно повторять многократно при отслеживании работы программы по рабочим циклам

Write values - Записать значение в переменную

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

Force values - Зафиксировать значение переменной

Зафиксировать значения одной или нескольких переменных. Запись заданного Вами значения осуществляется в начале и в конце каждого управляющего цикла: 1. Чтение входов, 2. Фиксация переменных, 3. Выполнение кода программы, 4. Фиксация переменных, 5. Запись выходов

Release force - Отменить фиксацию значений переменных

Отменить фиксацию значений переменных

Write/Force-Dialog - Показать список записываемых и фиксируемых переменных

Открыть окно, содержащее таблицы записываемых (Writelist) и фиксируемых (Forcelist) переменных. В левом столбце таблиц находятся имена переменных, а в правом их установленные значения

Show Call Stack - Показать список вызванных POU

Показать список вызванных POU, когда программа остановлена в точке останова

Display Flow control - Показать контроль потока исполнения

Включить режим контроля потока исполнения. Если данная возможность поддерживается в Вашей целевой платформе, то каждая строка или цепь программы, которая была выполнена в контроллере в предыдущем управляющем цикле, будет выделена

Simulation - Включить режим эмуляции

Включить режим эмуляции, программа будет выполнена в ПК. Если режим эмуляции выключен, программа будет запущена в контроллере

Communication Parameters - Параметры соединения

Вывести диалог настройки параметров связи ПК и ПЛК (если Вы используете OPC или DDE серверы, то эти параметры можно настроить из их конфигурации)

Sourcecode download - Загрузить в контроллер исходные тексты проекта

Загрузить исходные тексты проекта в контроллер. Не путайте исходные тексты проекта с кодом проекта, который создается при компиляции

Create bootproject - Автоматически загружать код проекта при перезапуске ПЛК

Сделать код проекта автоматически загружаемым при перезапуске контроллера, то есть, данный проект будет выполняться автоматически при перезапуске ПЛК

Write file to PLC - Записать файл в контроллер

Записать в контроллер выбранный файл (файл может быть любого типа), его размер ограничен размером карты памяти контроллера

Read file from PLC - Считать файл из контроллера

Считать ранее сохраненный в контроллере файл и сохранить его в указанную директорию на Ваш ПК

Меню Window - Работа с окнами

Tile Horizontal - Упорядочить окна по горизонтали

Упорядочить окна по горизонтали так, чтобы они не перекрывали друг друга и полностью занимали рабочую область

Tile Vertical - Упорядочить окна по вертикали

Упорядочить окна по вертикали так, чтобы они не перекрывали друг друга и полностью занимали рабочую область

Cascade - Упорядочить окна каскадом

Упорядочить окна каскадом - каждое следующее поверх остальных

Arrange Symbols - Выстроить свернутые окна

Выстроить свернутые окна в ряд внизу Рабочего окна

Close All - Закрыть все окна

Закрыть все окна

Messages - Открыть окно сообщений

Открыть окно сообщений, которое содержит информацию о предыдущей компиляции, проверке или сравнении проекта

Library Manager - Открыть менеджер библиотек

Открыть окно менеджера библиотек. Менеджер библиотек содержит список всех библиотек, которые связаны с проектом

Log - Открыть бортжурнал

Открыть бортжурнал - детальный протокол последовательности действий, которые были выполнены во время Online сессии. Бортжурнал записывается в двоичный файл формата *.log

Меню Help - Помощь

Contents - Содержание справочной документации

Открыть окно каталога документов системы оперативной помощи

Search - Осуществить поиск

Перейти к контекстному поиску по текстам документов подсказки

About - Показать информацию о программе

Открыть окно с информацией о программе CoDeSys

2.7 Панель инструментов

Кнопки на панели инструментов обеспечивают более быстрый доступ к командам меню.

Команда, вызванная с помощью кнопки на Панели инструментов, автоматически выполняется в активном окне.

Кнопки на Панели инструментов различны для разных редакторов CoDeSys. Получить информацию относительно назначения этих кнопок можно в описании редакторов.

Панель инструментов можно отключить.

рисунок 5. панель инструментов.

Таблица 2. Кнопки панели инструментов

Кнопка Панели инструментов

Описание

Создать новый файл проекта

Открыть файл проекта

Сохранить файл проекта

Запустить программу на выполнение в контроллере или режиме эмуляции

Остановить программу при ее выполнении в контроллере или в режиме эмуляции

Выполнить одну инструкцию программы

Установить точку останова в текущей позиции активного окна или удалить уже установленную точку останова

Установить соединение программы CoDeSys с контроллером (или запустить программу эмуляции) и включить режим Online

Разорвать соединение с контроллером или закончить работу программы в режиме эмуляции. Система переходит в режим Offline

Найти заданный текст в POU, типах данных или разделе глобальных переменных проекта

Переместить выделенный элемент в буфер. При этом выделенный элемент удаляется из окна редактора

Копировать выделенный элемент в буфер, содержимое окна редактора при этом не изменяется

Вставить содержимое буфера, начиная с текущей позиции курсора в окне редактора. В графических редакторах команда выполнима только, если содержимое буфера соответствует выбранному элементу

Найти введенный текст в активном окне редактора

Начать поиск введенного текста с текущей позиции и далее

2.8 Организатор объектов

Организатор объектов всегда находится в левой части Главного окна CoDeSys.

рисунок 6. Организатор объектов

В нижней части Организатора объектов находятся вкладки:

-Program Organization Units - программные компоненты;

- типы данных;

- визуализации;

- ресурсы.

Переключаться между соответствующими объектами можно с помощью мышки или клавиш перемещения.

2.8 Разделитель экрана

Разделить экрана - это граница между двумя непересекающимися окнами. В CoDeSys есть следующие разделители: между Организатором объектов и Рабочим окном, между Разделом объявлений и Разделом кода POU, между Рабочим окном и Окном сообщений. Вы можете перемещать разделители с помощью левой кнопки мыши.

Разделитель сохраняет свое положение даже при изменении размеров окна. Если Вы больше не видите разделителя на экране, значит стоит изменить размеры окна.

2.9 Рабочее окно

Рабочее окно находится в правой части Главного окна CoDeSys. Все редакторы, а также менеджер библиотек открываются именно в этом окне. Имя открытого объекта находится в заголовке окна.

2.9 Окно сообщений

Окно сообщений отделено от Рабочего окна разделителем. Именно в этом окне появляются сообщения компилятора, результаты поиска и список перекрестных ссылок.

2.10 Строка статуса

Строка статуса находится в нижней части Главного окна CoDeSys и предоставляет информацию о проекте и командах Меню.

При выборе пункта Меню его описание появляется в левой части Строки статуса.

Если Вы работаете в режиме online, то надпись Online в строке статуса выделяется черным цветом. В ином случае надпись серая.

С помощью Строки статуса в режиме online можно определить, в каком состоянии находится программа: SIM - в режиме эмуляции, RUN - программа запущена, BP - установлена точка останова, FORCE - происходит фиксация переменных.

При работе в текстовом редакторе в Строке статуса указывается позиция, в которой находится курсор (например, Line:5, Col.:11).

В режиме визуализации в Строке статуса выводятся координаты курсора X и Y, которые отсчитываются относительно верхнего левого угла окна. Если указатель мыши находится на элементе, или над элементом производятся какие-либо действия, то указывается номер этого элемента. При вставке элемента в Строке статуса указывается его название (например, Rectangle).

Если Вы поместили указатель мыши на пункт Меню, то в Строке статуса появляется его краткое описание.

2.11 Контекстное меню

Вместо того, чтобы использовать главное меню для вызова команд, можно воспользоваться контекстным меню. Это меню содержит наиболее часто используемые команды, для вызова используйте правую кнопку мыши.

Порядок выполнения работы:

В ходе лабораторной работы необходимо ознакомиться с панелью управления установки, а также проверить на работоспособность все узлы и элементы.

Необходимо проверить работоспособность датчиков, исполнительных механизмов и схемы управления. Для этого нужно выполнить следующие процедуры:

Подаем на лабораторную установку напряжение питания и нажимаем кратковременно красную кнопку «Сеть» на панели управления. После этих операции загорятся световые индикаторы «Сеть», «БПН» и «БПА». Затем переводим ключ в положение «Руч.», которое соответствует ручному режиму работы установки. Далее для проверки работоспособности насосов необходимо запустить их, нажав соответствующие им кнопки поочередно.

Для проверки работоспособности датчиков уровня жидкости и схем блокировки необходимо, путем перекачивания жидкости из резервной емкости и обратно, изменить значения уровней в емкостях с минимального до максимального и обратно. При достижении жидкостью уровня датчика, на датчике должен загореться светодиод. А также уровни жидкости в обеих емкостях не должны подниматься выше верхних датчиков и опускаться ниже нижних.

Требования к отчету

Отчет должен содержать:

- цель работы;

- краткие теоретические положения по конструкции установки;

- краткие теоретические положения по программе CoDeSys;

- результаты проверки правильности работы технологического оборудования;

- выводы по работе.

2.2.2 ЛАБОРАТОРНАЯ РАБОТА №2 ПРОГРАММИРОВАНИЕ КОНТРОЛЛЕРА В СРЕДЕ CoDeSys

Цели работы:

Изучить конструкцию лабораторного стенда. Приобрести навыки программирования в программном пакете CoDeSys.

Теоретические положения:

Программирование контролера в программной среде CoDeSys

1. Создание проекта. Выбор контроллера.

Примеры и запуск программ

1.1. Для создания нового проекта необходимо в среде CoDeSys вызвать команду меню File | New или воспользоваться одноименной кнопкой на панели инструментов.

1.2. После создания проекта нужно выбрать Target файл, соответствующий названию контроллера. Окно выбора Target файла представлено на рис. 1.

Рис. 1. Окно выбора Target файла

1.3. Затем откроется окно настроек Target файлов. Как правило, настройки установлены производителем и не требуют изменения.

1.4. После задания настроек Target файла необходимо создать основной POU (главную программу проекта). Окно этого диалога представлено на рис. 2. Главная программа всегда должна иметь тип Program и имя PLC_PRG. Поэтому в данном диалоге разрешается менять только язык программирования (Language of the POU).

Рис. 2. Окно создания основного POU

1.5. В зависимости от выбранного языка программирования откроется окно, в котором необходимо создать программу, исполняемую на контроллере. Простейшей программой является символ «;» в программе на языке ST, такой программы достаточно для проверки связи с контроллером. Примеры программ на языках FBD, LD и ST приведены на рис. 3.

При написании любого из примеров программ, представленных на рис. 3, будет вызван ассистент ввода (рис. 4) для описания переменной а. Примеры создания более сложных программ представлены в электронном виде на диске, входящем в комплект поставки, в директории "Документация /Первые шаги в CoDeSys".

Рис. 3. Примеры программ на языках FBD (а), LD (б) и ST (в)

1.6. Для загрузки программы в контроллер установите связь с контроллером, вызвав команду меню Online | Login. Более подробное описание параметров установки связи см. п. 2. Запустите выполнение загруженной программы, вызвав команду меню Online | Run или нажатием кнопки на передней панели контроллера.

Рис. 4. Окно объявления переменной

1.7. Если требуется, чтобы программа осталась в памяти контроллера после перезагрузки, то ее необходимо записать во внутреннюю Flash-память контроллера, вызвав команду меню Online | Create boot project. После этого программа будет автоматически запускаться на контроллере при перезагрузке и при включении питания.

ВНИМАНИЕ! Ресурс встроенной Flash-памяти контроллера ограничен (около 50 тыс. записей), поэтому не рекомендуется при отладке программы каждый раз записывать ее во Flash-память.

ВНИМАНИЕ! При создании программы возможна ситуация, когда из-за разного рода ошибок цикл ПЛК будет больше допустимого значения (о задании максимального времени цикла см. документ PLC&Configuration). Это приведет к перезагрузке контроллера. Если такая программа ошибочно была записана во Flash-память контроллера, то после перезагрузки она запустится автоматически, что, в свою очередь, приведет к повторной перезагрузке.

Аналогичная ситуация возникает при некорректно прошедшей записи безошибочной программы. Чтобы прекратить циклическую загрузку программы и последующую перезагрузку контроллера необходимо, удерживая нажатой кнопку на передней панели контроллера нажать кнопку. При такой комбинации кнопок программа не будет автоматически запущена, что даст возможность подключиться к контроллеру и загрузить в него корректно работающую программу.

2. Установка связи с контроллером

2.1. Установка связи с контроллером возможна по интерфейсам Ethernet, Debug RS-232.

При выборе соединения Serial (RS232) в настройках параметров следует задать СОМ-порт (параметр Port), по которому ПЛК подключается к компьютеру и изменить скорость соединения (параметр Baudrate) на 115200 бит/с.

Для изменения параметра следует дважды щелкнуть левой кнопкой мыши по имеющемуся значению параметра, и, листая доступные значения стрелками на клавиатуре, выбрать нужное. Для сохранения нового значения - нажать кнопку Enter на клавиатуре.

2.2. Для установки соединения по интерфейсу Ethernet контроллер и компьютер должны находится в одной IP-подсети.

Рис. 5. Настройка коммуникационных параметров для соединения с ПЛК

Возможны два варианта: изменение имеющегося IP-адреса контроллера в соответствии с настройками сети пользователя или задание компьютеру дополнительного IP-адреса, входящего в подсеть контроллера.

Изменение IP-адреса контроллера возможно при помощи команды SetIP, подаваемой через PLC-Browser. При этом связь с контроллером должна быть установлена через интерфейс Debug RS-232.

Примечание. Подробнее о работе PLC-Browser изложено в комплекте документации на компакт-диске, входящем в комплект поставки ПЛК150.

Задание дополнительного IP-адреса компьютеру делается в свойствах протокола TCP/IP в настройках сетевого окружения Windows. При изготовлении устанавливается IP-адрес контроллера 10.0.6.10. Поэтому необходимо присвоить компьютеру дополнительный IP-адрес в подсети 10.0.6, отличный от адреса 10.0.6.10.

Маску подсети задать равной 255.255.0.0. При настройке соединения Tcp/Ip (Level 2) в параметре Address необходимо задать IP-адрес контроллера, дважды щелкнув левой кнопкой мыши по значению адреса, и ввести новое значение с клавиатуры. Для сохранения нового значения нажать кнопку Enter на клавиатуре.

2.4. После настройки соединения подать команду меню Online | Login, устанавливающую связь с контроллером. При этом флаг перед строкой меню Simulation Mode должен быть снят. Для установки связи необходимо, чтобы была создана программа пользователя.

ВНИМАНИЕ! При смене интерфейса соединения необходимо произвести перезагрузку контроллера, нажав кнопку на лицевой панели.

Порядок выполнения работы:

Основной целью лабораторной работы является подготовка программы для ПК для заданного варианта задачи.

Логические функции, описывающие работу системы автоматизации, предлагается записывать на основе содержательного описания работы системы автоматизации. Последовательность подготовки программ для ПЛК будет такая:

а) Изучить объект автоматизации. Здесь необходимо:

- уточнить последовательность работы оборудования;

- уточнить назначение датчиков, число и назначение исполнительных устройств.

б) Для каждой выходной и для каждой промежуточной переменной составляется содержательное описание, по которому затем непосредственно записывается логическая функция (уравнение).

Содержательное описание - это словесный портрет включения переменной, условий ее сохранения и условий ее отключения. Логические функции составляются непосредственно по содержательному описанию, основываясь на том, что союзам разговорной речи И, ИЛИ, НЕ соответствуют логические операции соответственно конъюнкция, дизъюнкция и инверсия. Полученные логические функции необходимо переписать в адресах программируемого контроллера и составить программу для контроллера.

в) Подготовленную программу необходимо ввести в ПЭВМ, провести ее компиляцию, и затем записать в программируемый контроллер.

г) Убедиться в правильности работы составленной программы.

Пример выполнения задания:

*Задача:

Контроль оператором движения некоторого механизма. Оператор должен периодически подтверждать правильность функционирования механизма. В противном случае, необходимо выдать предупреждение, а затем остановить работу.

Рабочий орган нашей машины совершает циклическое движение по периметру прямоугольника.

*Выполнение:

1 Запуск CoDeSys

CoDeSys запускается точно также как большинство Windows приложений: Пуск -> Программы -> 3S Software -> CoDeSys V2.3 -> CoDeSys V2.3

*Создаем новый проект

Создайте новый проект командой File -> New.

*Настройка целевой платформы (Target Settings)

Проект является машинно-независимым, его можно опробовать в режиме эмуляции. Но давайте выберем для определенности конкретный контроллер. На страничке диалогового окна 'Configuration' установите CoDeSys SP for Windows NT Realtime и подтвердите ввод - Ok.

*Главная программа PLC_PRG POU

Следующее диалоговое окно определяет тип первого программного компонента (New POU). Выберете язык реализации (language of the POU) FBD и сохраните предложенные по умолчанию тип компонента - программа (Type of the POU Program) и имя - Name PLC_PRG.

PLC_PRG это особый программный компонент (POU). В однозадачных проектах он циклически вызывается системой исполнения.

*Объявляем Переключатель подтверждения

Давайте начнем с переключателя подтверждения. Это переменная, которая будет изменять значение при подтверждении корректности работы механизма оператором.

В первой цепи графического FBD редактора выделите строку вопросов ??? и введите наименование нашей первой переменной. Пусть это будет Observer (наблюдатель). Теперь нажмите на клавиатуре стрелку вправо. В появившемся диалоге определения переменной сохраните наименование (Name Observer) и логический тип (Type BOOL). Измените класс переменной (Class) на глобальный (VAR_GLOBAL). Подтвердите определебние - ОК. Теперь определение переменной Observer должно появиться в окне глобальных переменных проекта (Global_Variables):

VARGLOBAL

Observer: BOOL; ENDVAR

*Детектор переднего фронта

Оператор должен подтверждать работу именно переключением клавиши, а не просто спать с постоянно нажатой клавишей подтверждения. Чтобы разделить эти ситуации необходимо определить моменты нажатия и отпускания, т.е. переходы значения логической переменной их нуля (FALSE) в единицу (TRUE) и наоборот.

Вернитесь в окно редактора PLC_PRG и выделите позицию справа от переменной Observer. Вы должны увидеть маленький пунктирный прямоугольник. Щелкните по нему правой клавишей мыши. В контекстном меню ввода задайте команду Box.

По умолчанию, вставляется элемент AND. Воспользуемся ассистентом ввода: нажмите клавишу F2. В диалоговом окне (слева) выберете категорию: стандартные функциональные блоки (Standard Function Blocks). Из триггеров (trigger) стандартной библиотеки (standard.lib) выберете R_TRIG. R_TRIG формирует логическую единицу по переднему фронту на входе.

Необходимо задать имя для нового экземпляра функционального блока R_TRIG. Щелкните мышкой над изображением триггера и введите имя Trigl. В диалоге определения переменных должен быть указан класс Class VAR (локальные переменные), имя (Name) Trigl и тип (Type R_TRIG). Нажмите ОК.

Рисунок 6. Пример функционального блока

Детектор заднего фронта

Выделите вход функционального блока Trigl и вставьте (как было описано выше) элемент AND и переименуйте его в OR (логическое ИЛИ). Выделите свободный вход OR функционального и вставьте перед ним экземпляр функционального блока F_TRIG под именем Trig2. На вход F_TRIG, с помощью ассистента ввода (F2) подайте (категория Global Variables) переменную Observer.

*Контроль времени, первая часть

Вставьте после OR экземпляр функционального блока TOF (таймер с задержкой выключения) под именем Timerl. Замените три знака вопроса на входе РТ константой T#10s. Она соответствует 10 секундам. Это время можно менять, в процессе отладки.

*Выход Предупреждение

Выделите выход Q таймера Timerl и в контекстном меню (правая клавиша мыши) дайте команду Assign (присвоить). Замените вопросы на имя переменной Warning. В диалоге определения задайте класс Class VAR_GLOBAL и тип BOOL.

Теперь выделите позицию в середине линии соединяющей выход таймера и переменную Warning. Задайте команду Negate в контекстном меню. Маленький кружек означает инверсию значения логического сигнала.

Рисунок 7. Программа на языке LD

* Формируем Стоп Сигнал по второму интервалу времени

Создайте новую цепь командой меню Insert->Network (after). Вставьте из стандартной библиотеки в новую цепь элемент (Box) типа TON (таймер с задержкой включения) под именем Timer2. Подайте переменную Warning на вход IN (используйте ассистент ввода <F2> ) и константу T#5s на вход РТ. Выход экземпляра функционального блока Timer2 присвойте (опять Assign) новой глобальной (Class VAR_GLOBAL) логической переменной Stop.

Рисунок 8. функциональный блок таймера

* Вставляем POU управления механизмом

В левой части окна CoDeSys расположен организатор объектов POUs (в нем присутствует PLC_PRG). Вставьте командой Add object в контекстном меню новый программный компонент с именем Machine, типом Type program и определите для него язык SFC (Language SFC).

По умолчанию, создается пустая диаграмма, содержащая начальный шаг "Init" и соответствующий переход "TransO" заканчивающийся возвратом к Init.

Рисунок 9. Диаграмма

Мы будем далее использовать упрощенный SFC, без МЭК действий. Если справа от Init вы увидите прямоугольник с действием (Action), снимите в контекстном меню флаг Use IEC-Steps и переопределите заново POU Machine.

*Определяем последовательность работы механизма

Каждой фазе работы должен соответствовать определенный этап (шаг). Выделите переход (TransO) так, чтобы он оказался окружен пунктирной рамкой. В контекстном меню дайте команду вставки шага и перехода под выделенным: Step-Transition (after). Аналогично повторите вставку еще 4 раза. Включая Init, должно получиться 6 шагов с переходами.

Щелкая мышью по именам переходов и шагов, вы заметете, что они выделяются цветом. Таким способом вы можете определить новые наименования.

Первый после Init шаг должен назваться Go_Right. Под ним Go_Down, GoJLeft, Go_Up и Count.

*Программируем первый шаг

Щелкните дважды на шаге Go_Right. CoDeSys начнет определение действия шага и попросит выбрать язык его реализации (Language). Выберете ST (structured text) и перейдите в автоматически открытое окно текстового редактора. В этом шаге рабочий орган нашего механизма должен перемещаться по оси X вправо. Программа должна выглядеть так:

X_pos:= X_pos + 1;

Завершите ввод клавишей Return, и определите переменную X_pos типа INT (целое). Теперь верхний уголок шага должен быть закрашен. Это признак того что действие этого шага определено.

*Программируем следующие шаги

Шаг Go_Down программа Y_pos:= Y_pos + 1;

Шаг Go_Left программа X_pos:= X_pos -1;

Шаг Go_Up программа Y_pos:= Y_pos -1;

Шаг Go_Count программа Counter:= Counter + 1;

Повторите описанную последовательность для всех оставшихся шагов. Переменные Y_pos и Counter должны быть типа INT.

Рисунок 10. Программа

*Определяем переходы

Переход должен содержат условие, разрешающее переключение на следующий шаг. Переход после шага Init назовите Start и определите новую логическую переменную (Class VAR_GLOBAL тип Type BOOL). При единичном значении этой переменной начинается цикл работы механизма.

Следующий переход должен содержать условие X_Pos = 100, так при значении позиции X включается следующая фаза движения. Условие третьего шага Y_pos = 50, четвертогоX_pos = 0,

пятогоY_pos = 0 и

шестого TRUE (переход разрешен сразу же, после однократного выполнения)

*Останов механизма

Вернитесь к PLC_PRG POU и добавьте третью цепь.

Вместо вопросов вставьте переменную Stop, и затем из контекстного меню вставьте оператор Return. Return прерывает работу программы PLC_PRG POU при единичном значении Stop.

*Вызов POU управления механизмом

Добавьте еще одну цепь, выделите ее и вставьте элемент Box из контекстного меню. Как обычно это будет "AND". Нажмите <F2> и в ассистенте ввода задайте POU управления механизмом в категории пользовательских программ (User defined Programs category).

*Компиляция проекта

Откомпилируйте проект целиком командой меню Project->Rebuild all, либо клавишей <F11>. Если вы все сделали верно, то в нижней части окна должно появиться сообщение: „0 errors,,. В противном случае необходимо исправить допущенные ошибки. В это помогут развернутые сообщения об ошибках.

Требования к отчету

Отчет должен содержать:

- цель работы;

- описание последовательности действий, выполняемых объектом согласно заданию;

- таблицу, содержащую обозначения используемых сигналов и команд при управлении объектом, их непосредственные адреса в контроллере;

- содержательное описание формирования промежуточных переменных и выходных команд контроллера и составленные на основе содержательного описания соответствующие логические функции;

- диаграммы состояния входов и выходов в автоматическом режиме;

- логические функции в адресах программируемого контроллера;

- программу для контроллера на языке LD;

- результаты проверки правильности работы реализуемой системы;

- выводы по работе.

Задания для самостоятельного решения

Для всех вариантов необходимо запрограммировать контроллер на работу объекта в автоматическом режиме согласно заданным технологическим условиям, представленным в вариантах заданий. В автоматическом режиме здание должно отрабатываться независимо от начальных значений уровней.

Вариант 1

В ручном режиме работы стенда установить уровни жидкости в резервуарах А и В на отметках D1 и D2 соответственно.

При переключении режима работы в автоматический в резервуаре А жидкость должна установиться на уровне d1, в резервуаре В - на уровне d2.

Вариант 2

В ручном режиме работы стенда установить уровни жидкости в резервуарах А и В на отметках D1 и D2 соответственно.

При переключении режима работы в автоматический в резервуаре А жидкость должна установиться на уровне d1, в резервуаре В - на уровне З2.

Вариант 3

В ручном режиме работы стенда установить уровни жидкости в резервуарах А и В на отметках D1 и d2 соответственно.

При переключении режима работы в автоматический в резервуаре А жидкость должна установиться на уровне d1, в резервуаре В - на уровне D2.

Вариант 4

В ручном режиме работы стенда установить уровни жидкости в резервуарах А и В на отметках D1 и D2 соответственно.

При переключении режима работы в автоматический в резервуаре А жидкость должна установиться на уровне З1, в резервуаре В - на уровне d2.

Вариант 5

В ручном режиме работы стенда установить уровни жидкости в резервуарах А и В на отметках D1 и D2 соответственно.

При переключении режима работы в автоматический в резервуаре А жидкость должна установиться на уровне З1, в резервуаре В - на уровне З2.

Вариант 6

В ручном режиме работы стенда установить уровни жидкости в резервуарах А и В на отметках D1 и З2 соответственно.

При переключении режима работы в автоматический в резервуаре А жидкость должна установиться на уровне З1, в резервуаре В - на уровне D2.

Вариант 7

В ручном режиме работы стенда установить уровни жидкости в резервуарах А и В на отметках З1 и D2 соответственно.

При переключении режима работы в автоматический в резервуаре А жидкость должна установиться на уровне D1, в резервуаре В - на уровне d2.

Вариант 8

В ручном режиме работы стенда установить уровни жидкости в резервуарах А и В на отметках З1 и D2 соответственно.

При переключении режима работы в автоматический в резервуаре А жидкость должна установиться на уровне D1, в резервуаре В - на уровне З2.

Вариант 9

В ручном режиме работы стенда установить уровни жидкости в резервуарах А и В на отметках З1 и З2 соответственно.

При переключении режима работы в автоматический в резервуаре А жидкость должна установиться на уровне D1, в резервуаре В - на уровне D2.

Вариант 10

В ручном режиме работы стенда установить уровни жидкости в резервуарах А и В на отметках З1 и З2 соответственно.

При переключении режима работы в автоматический в резервуаре А жидкость должна установиться на уровне d1, в резервуаре В - на уровне d2.

Вариант 11

В ручном режиме работы стенда установить уровни жидкости в резервуарах А и В на отметках d1 и d2 соответственно.

При переключении режима работы в автоматический в резервуаре А жидкость должна установиться на уровне d1, в резервуаре В - на уровне З2.

Вариант 12

В ручном режиме работы стенда установить уровни жидкости в резервуарах А и В на отметках З1 и d2 соответственно.

При переключении режима работы в автоматический в резервуаре А жидкость должна установиться на уровне d1, в резервуаре В - на уровне D2.

Вариант 13

В ручном режиме работы стенда установить уровни жидкости в резервуарах А и В на отметках d1 и З2 соответственно.

При переключении режима работы в автоматический в резервуаре А жидкость должна установиться на уровне З1, в резервуаре В - на уровне d2.

Вариант 14

В ручном режиме работы стенда установить уровни жидкости в резервуарах А и В на отметках d1 и d2 соответственно.

При переключении режима работы в автоматический в резервуаре А жидкость должна установиться на уровне З1, в резервуаре В - на уровне З2.

Вариант 15

В ручном режиме работы стенда установить уровни жидкости в резервуарах А и В на отметках d1 и d2 соответственно.

При переключении режима работы в автоматический в резервуаре А жидкость должна установиться на уровне З1, в резервуаре В - на уровне D2.

Вариант 16

В ручном режиме работы стенда установить уровни жидкости в резервуарах А и В на отметках d1 и З2 соответственно.

При переключении режима работы в автоматический в резервуаре А жидкость должна установиться на уровне D1, в резервуаре В - на уровне d2.

Вариант 17

В ручном режиме работы стенда установить уровни жидкости в резервуарах А и В на отметках d1 и d2 соответственно.

При переключении режима работы в автоматический в резервуаре А жидкость должна установиться на уровне D1, в резервуаре В - на уровне З2.

Вариант 18

В ручном режиме работы стенда установить уровни жидкости в резервуарах А и В на отметках d1 и d2 соответственно.

При переключении режима работы в автоматический в резервуаре А жидкость должна установиться на уровне D1, в резервуаре В - на уровне D2.

2.2.3 ЛАБОРАТОРНАЯ РАБОТА №3 ИЗУЧЕНИЕ ВОЗМОЖНОСТЕЙ ПАКЕТА CoDeSys В ОБЛАСТИ ВИЗУАЛИЗАЦИИ ТЕХНОЛОГИЧЕСКОГО ПРОЦЕССА.

Цели работы:

Изучить возможности программы CoDeSys в области визуализации. Закрепить полученные навыки программирования промышленных контроллеров CoDeSys.

Теоретические положения:

1 Создание объекта визуализации

Объект «визуализация» - это инструмент CoDeSys, расположенный в Организаторе проекта. Он содержит представление и свойства отдельных элементов визуализации проекта. Как и любой другой объект CoDeSys, он имеет определенный набор общих свойств. Один или несколько объектов визуализации могут быть созданы в CoDeSys проекте и связаны друг с другом.

Чтобы создать новый объект визуализации в Организаторе проекта, выберите вкладку Э Visualization и дайте команду 'Project' 'Object Add'. Откроется диалог 'New visualization', в котором вы должны ввести имя новой визуализации. После ввода корректного имени (нельзя использовать уже существующее имя или специальные символы) закройте диалог кнопкой ОК. Открывается окно, в котором вы можете редактировать новую визуализацию.

Если в Организаторе объектов выбрать визуализацию и дать команду 'Project' 'Object' 'Properties', то будет открыт диалог свойств объекта. В нем могут быть определены настройки, касающиеся использования визуализации в Web, целевой визуализации и в роли управляющей панели.

Указание: чтобы иметь возможность использовать неявную строковую переменную CurrentVisu для обращения к актуальной открытой визуализации в проекте, имена объектов визуализации должны задаваться прописными буквами (например, "PLC_VISU").

2 Вставка элементов визуализации

Элемент визуализации - это графический элемент, который используется при построении объекта визуализации. Возможные элементы представлены в виде иконок на панели инструментов CoDeSys. Каждый элемент имеет собственную конфигурацию (набор свойств).

Вы можете вставлять в вашу визуализацию различные геометрические формы, а также точечные рисунки, метафайлы, кнопки и существующие визуализации.

Выберите пункт меню 'Insert' (Вставка) и выберите нужный элемент:

Выбранный элемент на панели инструментов отображается нажатым (например,)

Для выбора элемента вы также можете использовать команды меню CoDeSys. Перед выбранной командой появляется `галочка'.

Переместите теперь мышь в поле окна редактора. Вы увидите, что указатель мыши принял форму соответствующего элемента (например, ^). Нажмите левую клавишу мыши в исходной точке расположения вашего элемента и, не отпуская ее, переместите указатель до желаемых размеров элемента.

Если вы хотите создать многоугольник или ломаную линию, укажите сначала при помощи мыши позицию первого угла многоугольника и соответственно начала отсчета линии и далее последовательно на следующие угловые точки. Многоугольник заканчивается двойным щелчком в последней угловой точке. Если вы хотите создать кривую (кривую Безье), укажите щелчком мыши начало отсчета и 2 следующих точки, которые определяют ограничивающий прямоугольник. После третьего щелчка мыши вычерчивается дуга кривой. Вы можете изменять ее, перемещая мышкой узловые точки кривых и заканчивая правку двойным щелчком или непосредственно присоединять следующую дугу дополнительным позиционным щелчком.Не забывайте о возможности использования заместителей и управляющих панелей. Обращайте внимание на информацию в строке состояния и на изменения в режиме выбора и в режиме вставки. Указание: если вы хотите использовать позднее данную визуализацию как 'целевую визуализацию', вы должны обращать внимание с целью оптимизации машинного времени на следующее: используйте по возможности больше статичных элементов (неподвижные, неизменяемый текст, без изменения цвета...).С помощью команд меню 'Extras' 'Elementlist' все элементы могут перемещаться „To front“ ("вперед") и „To back“ ("назад").

Выделите с нажатой левой кнопкой мыши область желаемого размера. Овал с отображаемой линией радиуса (0°) показывает, как при перемещении мыши изменяется форма и размер. Маленький черный квадрат вне элемента указывает угол виртуального описанного прямоугольника.

Чтобы установить начальный и конечный угол кругового сектора, нажмите после вставки элемента на конечную точку линии радиуса на дуге. Если вы перемещаете указатель мыши при нажатой клавише мыши, появляются 2 маленьких черных квадрата, которые показывают обе позиции угла. Теперь они также могут выделяться отдельно и перемещаться. Если нужно изменять углы динамически, откройте диалог конфигурации категории 'Angle' ('Угол'), чтобы ввести соответствующие переменные.

Чтобы изменить форму и размер элемента, нажмите либо на точку центра (курсор отображается диагонально перекрещивающимися стрелками) и переместите мышь при нажатой клавише, либо с помощью клавиш курсора. Или выделите и переместите квадрат позиции угла вне элемента. Чтобы переместить весь элемент, нажмите на свободную поверхность элемента так, чтобы отображались вертикально перекрещивающиеся стрелки.

Вставить растровый рисунок в текущую визуализацию.

Выделите с нажатой левой кнопкой мыши область желаемого размера. Раскрывается диалог открытия файла. После того как вы выбрали желаемый файл рисунка, он вставляется в выделенную область. В диалоге конфигурации рисунка можно определить, должна ли сохраняться связь с файлом или растровый рисунок должен вставляться как элемент.

Вставить существующую визуализацию в текущую визуализацию.

Выделите с нажатой левой кнопкой мыши область желаемого размера. Откроется список выбора существующих визуализаций. После того как вы отметили желаемую визуализацию, она вставляется в выделенную область. Вставленная визуализация обозначается как ссылка.

'Insert' 'Button' (Кнопка)

Символ:

Вставить кнопку в текущую визуализацию. Растяните мышью с нажатой левой кнопкой элемент до желаемого размера.

Если для кнопки сконфигурирована переменная переключения, то кнопка визуально отображает состояние этой переменной (т.е. изображается или нет, соответственно). Конечно, справедливо и обратное -значение переменной изменится при "нажатии" кнопки.

'Insert' 'WMF file' (Файл WMF)

Символ:

Вставить метафайл Windows. Раскрывается стандартный диалог открытия файла, в котором можно искать файлы с расширением *.wmf. После выбора файла и закрытия диалога кнопкой ОК, файл вставляется как элемент в текущую визуализацию. При этом не сохраняется связь с файлом, как при растровом рисунке, а содержащиеся элементы файла wmf вставляются как группа.

'Insert' 'Table' (Таблица)

Символ:

Вставить в текущую визуализацию таблицу, которая служит для представления значений элементов массива.

Выделите мышью с нажатой левой кнопкой элемент желаемого размера. Прежде чем элемент будет представлен в окончательном виде, появляется

диалог конфигурации 'Configure table' ('Конфигурация таблицы'). Здесь наряду с доступными для других элементов категориями Tooltip (Подсказка) и Security (Права доступа) имеются категории 'Table' ('Таблица'), 'Columns'('Столбцы'), 'Rows' ('Строки') и 'Selection' ('Выбор'), предназначенные для определения содержания и формы представления таблицы.

'Insert' 'Meter' (Стрелочный прибор)

Символ:

Вставить стрелочный индикатор в текущую визуализацию. Он представляет собой шкалу, которая расположена на определенной части дуги, и указатель, который имеет начало в виртуальном центре круга.

Выделите мышью с нажатой левой кнопкой элемент желаемого размера. Прежде чем элемент будет представлен в окончательном виде, появляется диалог конфигурации 'Configure Meter' ('Конфигурация стрелочного индикатора'). Здесь определяются различные параметры, влияние которых можно оценить с помощью предварительного просмотра, еще до окончательной вставки элемента нажатием кнопки ОК.

'Insert' 'Bar Display' (Столбчатый указатель)

Символ:

Вставить столбчатый указатель в текущую визуализацию. Столбчатый указатель служит для представления текущего значения переменной в форме столбца или отметки, которая перемещается вдоль шкалы.

Выделите мышью с нажатой левой кнопкой элемент желаемого размера. Прежде чем элемент будет представлен в окончательном виде, появляется диалог конфигурации 'Configure bar display'

(Конфигурация столбчатого указателя). Здесь определяются различные параметры, влияние которых можно оценить с помощью предварительного просмотра, еще до окончательной вставки элемента нажатием кнопки ОК.

'Insert' 'Histogram' (Гистограмма)

Символ:

Вставить гистограмму в текущую визуализацию. Гистограмма отображает значения элементов массива в виде следующих друг за другом столбцов. Столбцы изменяют свою высоту соответственно значениям переменных.

Выделите мышью с нажатой левой кнопкой элемент желаемого размера. Прежде чем элемент будет представлен в окончательном виде, появляется диалог конфигурации 'Configure Histogram' ('Конфигурация гистограммы'). Здесь определяются различные параметры, влияние которых можно оценить с помощью предварительного просмотра, еще до окончательной вставки элемента нажатием кнопки ОК.

'Insert' 'Alarm table' (Таблица тревог)

Символ:

Вставить таблицу тревог в текущую в изуализацию. Данный элемент используется для визуализации тревожных событий, определенных в конфигурации тревог проекта.Выделите мышью с нажатой левой кнопкой элемент желаемого размера. Прежде чем элемент будет представлен в окончательном виде, появляется диалог конфигурации 'Configure Alarm table' ('Конфигурация таблицы тревог '). Здесь наряду с доступными для других элементов категориями Tooltip (совет) и Security (Права доступа) имеются категории 'Alarmtable' ('Таблица тревог'), 'Settings for sorting' ('Параметры настройки для сортировки'), 'Columns' ('Столбцы') и 'Settings for alarm table' ('Параметры настройки таблицы тревог'), определяющие содержание и форму представления таблицы.

'Insert' 'Trend' (Тренд)

Символ:

Вставить элемент Trend в текущ ую визуализацию. Выделите мышью с нажатой левой кнопкой элемент желаемого размера. Настройка способа представления (ось координат, переменные, хронология) осуществляется в диалоге конфигурации категории 'Trend'.

Элемент Тренд (самописец) служит для графического представления тенденции изменения значения переменной на определенном временном периоде. Элемент Trend аккумулирует данные и отображает их в виде графика. При изменении значения переменной производится новая запись в специальном файле. Она содержит дату / время и новое значение переменной. Элемент Тренд отображается прозрачным. Благодаря чему можно выбрать любой задний план (цвет, растровый рисунок).


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.