WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!


Pages:     || 2 | 3 | 4 |
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Государственное образовательное учреждение высшего профессионального образования «ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ» «УТВЕРЖДАЮ» Декан АВТФ С.А. Гайворонский “_”2008г.

ЛАБОРАТОРНЫЙ ПРАКТИКУМ ПО ПРОМЫШЛЕННЫМ КОНТРОЛЛЕРАМ методические указания по выполнению лабораторных работ Издательство Томского политехнического университета 2008 УДК 681.3.06 Лабораторный практикум предназначен для выполнения студентами циклов лабораторных работ по дисциплине инновационной образовательной программы магистерской подготовки «Управление в технических (мехатронных) системах»: средства автоматизации гибких автоматизированных производств / сост. С.В. Леонов, В.А. Рудницкий– Томск: Изд-во Томского политехнического университета, 2008. – 120 с.

Методические указания рассмотрены и рекомендованы к изданию методическим семинаром кафедры интегрированных компьютерных систем управления факультета автоматики и вычислительной техники «_»_ 2008г.

Зав. кафедрой проф., доктор техн. наук А.М. Малышенко 2 СОДЕРЖАНИЕ 1. СИСТЕМА ПРОГРАММИРОВАНИЯ ПЛК OPENPCS 4 2. СОЗДАНИЕ ПРОГРАММ И ИХ ОТЛАДКА В 23 КОНТРОЛЛЕРЕ ELSY-TM 3. ОБЩИЕ СВЕДЕНИЯ О ПЛК SIMATIC 30 4 ЗАПУСК SIMATIC MANAGER И СОЗДАНИЕ ПРОЕКТА 33 3 1. СИСТЕМА ПРОГРАММИРОВАНИЯ ПЛК OPENPCS Цель работы: Создание ресурса, задач, программ на языках стандарта IEC 6 1131-3 и их отладка в PLC-симуляторе OpenPCS 2004. Все программы выполняют одну и ту же задачу, хорошо известную по лабораторным работам верхнего уровня SCADA-системы – реализация алгоритма «Пуск-Стоп».

О стандарте IEC 6 1131-3 Стандарт IEC 6 1131-3 описывает синтаксис и семантику пяти языков программирования ПЛК, - языков, ставших широко известными за более чем 30-летнюю историю их применения в области автоматизации промышленных объектов:

1. SFC (Sequential Function Chart) - графический язык, используемый для описания алгоритма в виде набора связанных пар: шаг (step) и переход (transition). Шаг представляет собой набор операций над переменными. Переход - набор условных логических выражений, определяющий передачу управления к следующей паре шаг-переход. По внешнему виду описание на языке SFC напоминает хорошо известные логические блок-схемы алгоритмов. SFC имеет возможность распараллеливания алгоритма. Однако SFC не имеет средств для описания шагов и переходов, которые могут быть выражены только средствами других языков стандарта. Происхождение: Grafcet (TelemechaniqueGroupe Schneider).

2. LD (Ladder Diagram) - графический язык программирования, являющийся стандартизованным вариантом класса языков релейно-контактных схем. Логические выражения на этом языке описываются в виде реле, которые широко применялись в области автоматизации в 60-х годах. Ввиду своих ограниченных возможностей язык дополнен привнесенными средствами: таймерами, счетчиками и т.п. Происхождение: различные варианты языка релейно-контактных схем (Allen-Bradley, AEG Schneider Automation, GE-Fanuc, Siemens).

3. FBD (Functional Block Diagram) - графический язык по своей сути похожий на LD. Вместо реле в этом языке используются функциональные блоки, по внешнему виду - микросхемы. Алгоритм работы некоторого устройства на этом языке выглядит как функциональна схема электронного устройства: элементы типа "логическое И", "логическое ИЛИ" и т.п., соединенные линиями. Корни языка выяснить сложно, однако большинство специалистов сходятся во мнении, что это не что иное, как перенос идей языка релейно-контактных схем на другую элементную базу.

4. ST (Structured Text) - текстовый высокоуровневый язык общего назначения, по синтаксису ориентированный на Паскаль. Происхождение: Grafcet (Telemechanique-Groupe Schneider).

5. IL (Instruction List) - текстовый язык низкого уровня.

Выглядит как типичный язык Ассемблера, что объясняется его происхождением: для некоторых моделей ПЛК фирмы Siemens является языком Ассемблера. В рамках стандарта IEC 6 1131-3 к архитектуре конкретного процессора не привязан. Происхождение - STEP 5 (Siemens).

Перечисленные языки IEC 6 1131-3 используются ведущими фирмами изготовителями ПЛК, имеют длительную историю применения, достаточно распространены и известны пользователям по тем или иным модификациям.

Несмотря на то, что во многих случаях такие модификации несущественны, это влечет определенные неудобства при работе с ПЛК различных фирм-изготовителей. С этой точки зрения, стандарт IEC 6 1131-3, несомненно, прогрессивен, поскольку позволяет привести бесчисленное число различных вариантов и интерпретаций языков ПЛК к единому знаменателю. OpenPCS представлен в виде двух частей: набора средств разработки и исполняемого на целевом ПЛК ядраинтерпретатора. Набор средств разработки исполняется на компьютере проектировщика, например, компьютере типа IBM PC, и состоит из редактора, отладчика и препроцессора, который подготавливает описанный проектировщиком алгоритм к формату, "понятному" ядру-интерпретатору. Этот набор имеет современный пользовательский интерфейс, позволяет тестировать алгоритм в режиме эмуляции и получать листинг алгоритма на языках его описания. После создания, пользовательская программа совместно с ядром-интерпретатором загружается в целевой ПЛК для исполнения. Ядро-интерпретатор, как следует уже из его названия, транслирует пользовательский алгоритм во время исполнения. Это позволяет сконцентрировать машинно-зависимый код и таким образом снизить накладные расходы при переходе на другой ПЛК. Неплохой подход, однако, сразу необходимо отметить, что интерпретационная модель имеет недостаток - она всегда снижает показатели эффективности исполнения программы.

Для исполняющей системы контроллер с загруженной программой представляется приведенным на рисунке образом:

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

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

УПРАЖНЕНИЕ Реализация программы «Старт-стоп» на языке ST 1. Запустите OpenPCS (ярлык на рабочем столе или программная группа infoteam openpcs 2004 в главном меню). OpenPCS требует файл с расширением VAR – файл проекта. Возможна показанная на рис. 2 ситуация, когда по у молчанию предлагается загрузить демонстрационный проект.

Рис.2. Начало работы с программным пакетом 2. Если рабочий проект в OpenPCS не создавался, выберите предлагаемый проект (Рис.3) либо загрузите его по указанному ниже пути. Самостоятельно ознакомьтесь с демонстрационными проектами, находящимися в директории С:\Program Files\OpenPCS2004\Samples\ Рис. 2. Загрузка рабочего проекта 3. Создайте новый проект как показано на рис.4.: (File-> Project -> New) с именем Familiya (Ваша фамилия) в директории С:\ ws 326- xx Рис.4. Создание нового проекта Путь к проекту не должен содержать имен файлов и папок с кириллицей, личная директория в работах с OpenPCS будет рассматриваться как контейнер для хранения проектов, но не для работы с ними.

4. Создайте новую программу на ST ( File->New ) с именем ST1, на предложение о добавлении созданной программы к активному ресурсу ответить отказом (Рис.5.). Ознакомьтесь с ключевой для дальнейшей работы информацией:

Input – переменная, подлежащая только считыванию из пользовательского кода, должна быть описана как входная переменная. Она не должна модифицироваться пользовательским кодом. Ключевое слово: VAR_INPUT;

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

VAR_OUTPUT;

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

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

VAR_GLOBAL;

Extern – для доступа из пользовательского кода к глобальной переменной.

Эта переменная должна быть описана в пользовательском коде как внешняя.

Ключевое слово: VAR_EXTERNAL;

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

Пример: булевская (BOOL) выходная (Q) переменная Motor имеет физический адрес (0.0) в адресном пространстве некоторого устройства.

VAR Motor AT %Q0.0:BOOL;

END_VAR Рис. Секция Функция Функциональный блок Программа VAR_INPUT (1) (1) VAR_OUTPUT (1) VAR_GLOBAL (1) VAR_EXTERNAL (1) Примечание: (1) – может использоваться, но лишь однократно.

На рис 6. представлен скриншот основных полей:

1. МЕНЮ И ПАНЕЛЬ ИНСТРУМЕНТОВ 2. МЕНЕДЖЕР ПРОЕКТОВ 3. РЕДАКТОР ПЕРЕМЕННЫХ 4. РЕДАКТОР КОДА 5. ОКНО ДИАГНОСТИКИ И ТЕСТИРОВАНИЯ Рис. 6. Основные поля программного пакета OpenPCS 5. В редакторе переменных VAR опишите локальные переменные:

Название сигнала Аппаратный адрес Тип переменной Valve_In_ST AT%I0.0 Bool Reset_ST AT%I0.1 Bool Pump_In_ST AT%I0.2 Bool And1_ST нет Bool And2_ST нет Bool Valve_Сontrol_ST AT%Q0.0 Bool Pump_Сontrol_ST AT%Q0.2 Bool Примечание: Valve_In_ST – это говорящее имя переменной (задвижка_входной_программа на языке ST).

Рис. 7. Описание функциональных блоков RS –триггеров 6. Опишите функциональные блоки (Рис.7.) RS -триггеров (в сущности, это подпрограммы-процедуры) T1_ST:RS и T2_ST:RS: Т1_ST – имя функционального блока, RS – его тип.

7. Введите текст программы:

Рис. 7. Текст программы на языке ST Комментарий к фрагменту программы, поясняющий ее работу:

А) And1_ST:=Valve_In_ST and not (Pump_Control_ST) - переменной And1_ST присваивается результат логического умножения (and) переменной Valve_in_ST и инверсного (not) значения переменной Pump_Control_ST.

Б) T1_ST (Set:=And1_ST, Reset1:=Reset_ST | Valve_Control_ST:=Q1) - входу установки триггера T1_ST в единичное состояние Set присваивается переменная And1_ST, входу сброса триггера Reset1 присваивается переменная Reset_ST. Это входы триггера. После разделителя | идет описание выхода Q1, которому присвоена переменная Valve_Control_ST.

Примечание: 3 и 4 строки выполняют аналогичную функцию, но для других переменных.

8. Теперь созданную программу необходимо проверить на синтаксические ошибки (File->Check Syntax(Alt+F10)) при отсутствии ошибок будет выдано следующее сообщение, рисунок 9.

9. Проверьте, что у вас существует активный ресурс (признак активного ресурса – ярко-зеленый цвет) и он не содержит программ, рисунок 10.

Рис. 9. Результаты проверки программы Рис.10. Настройте ресурс для работы с симулятором промышленного контроллера.

Рис. 11. Настройка ресурса для работы с симулятором 11. Свяжите написанную программу с активным ресурсом:

Рис. 12. Откомпилируйте активный ресурс, связанный с вашей задачей (программой):

Рис. 13. Компиляция активного ресурса При компиляции будет создан исполняемый код Start_Stop.PCD и сгенерированы сведения о наличие ошибок и предупреждений, как показано на рисунке 14.

Рис. Свяжитесь с «контроллером» (PLC -симулятором), рисунок 15.

Рис. 13. Загрузите в симулятор код:

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

15. На рисунке 18 показано распределение адресного пространства симулятора.

Рис. 17. Окно мониторинга OpenPCS Рис. 18. Распределение адресного пространства симулятора УПРАЖНЕНИЕ Реализация программы «Старт-стоп» на языке IL 1. Остановите работу симулятора, закройте его и разорвите соединение. Создайте новый файл IL с именем IL1. Поскольку ресурс для работы с симулятором уже создан, то все последующие задачи будут добавляться к нему (рис.19).

Рис. 2. Опишите переменные. Описание переменных носит такой же характер, как и в редакторе ST, изменим только имена переменных и их адреса, а так же имена функциональных блоков T1_IL и T2_IL.

Название сигнала Аппаратный адрес Тип переменной Valve_In_IL AT%I1.0 Bool Reset_IL AT%I1.1 Bool Pump_In_IL AT%I1.2 Bool And1_IL нет Bool And2_IL нет Bool Valve_Control_IL AT%Q1.0 Bool Pump_Control_IL AT%Q1.1 Bool 3. Напишите программу «Старт-стоп»:

LDN Pump_control_IL – инвертированная загрузка (LDN) переменной Pump_control_IL.

AND Valve_in_IL – ее логическое умножение на переменную Valve_in_IL.

ST AND1_IL – сохранение (ST) результата умножения в переменную AND1_IL.

CAL T1_IL (Set: =AND1_IL, Reset1: =Reset_IL | Valve_сontrol_IL: =Q1) – вызов (CAL) процедуры (функционального блока в терминах OpenPCS), реализующей RS-триггер и присвоение его входам-выходам переменных.

Рис. 20. Программа «Старт-стоп» на языке IL 4. Если вдруг программа не добавлена к ресурсу на этапе создания новой программы, то сделайте это принудительно согласно рисунку 21.

Рис. 5. Откомпилируйте программу, загрузите код в симулятор (теперь будут выполняться обе программы ST1 и IL1 в разном адресном пространстве симулятора), запустите его, добавьте необходимые переменные в окно мониторинга и проверьте работу по аналогии c предыдущим упражнением (предыдущая программа так же должна работать). Для идентификации адресов пользуйтесь рисунком 18.

УПРАЖНЕНИЕ Реализация программы «Старт-стоп» на языке LD 1. Остановите работу симулятора и создайте новый файл LD с именем LD1.

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

Рис. 22. Окно редактора LD 2. Элемент, показанный на рисунке 23, носит название элементарная сеть, это заготовка для создания элемента программы.

Рис. 23. Элементарная сеть 3. Опишите переменные. Описание переменных не отличается от редактора ST. Функциональные блоки - T1_LD и T2_LD. Обратите внимание на адреса сигналов.

Аппаратный Название сигнала Тип переменной адрес Valve_In_LD AT%I2.0 Bool Reset_LD AT%I2.1 Bool Pump_In_LD AT%I2.2 Bool And1_LD нет Bool And2_LD нет Bool Valve_Control_LD AT%Q2.0 Bool Pump_Control_LD AT%Q2.2 Bool 4. Дополните сеть до элемента «И» и проинвертируйте один из «контактов».

Рис. Рис. 5. Присвойте элементам сети переменные.

Рис. 6. Добавьте новую сеть.

Рис. 7. Вставьте функциональный блок RS -триггер:

Рис. 8. Присвойте входам и выходу триггера соответствующие переменные, после чего фрагмент программы будет иметь вид.

Рис. 9. Допишите остальную часть программы, откомпилируйте ее, загрузите в симулятор, запустите его, добавьте необходимые переменные в окно мониторинга и проверьте работу программы. На этом этапе в симуляторе должны выполняться программы ST1, IL1 и LD1, каждая в своем адресном пространстве, убедитесь в этом.

УПРАЖНЕНИЕ Реализация программы «Старт-стоп» на языке FBD Так как этот графический язык ориентирован на создание программ по виду похожих на принципиальную блочную схему, то будет уместным привести задачу именно в подобном графическом виде.

Рис. 1. Остановите симулятор и создайте новую программу FBD 1 на языке FBD, добавив ее к активному ресурсу. Включите сетку (View -> Grid ( CFC ) ).

2. Опишите переменные. Описание переменных не отличается от редактора ST. Функциональные блоки - T 1_FBD и T 2_ FBD. Обратите внимание на адреса сигналов.

Название сигнала Аппаратный адрес Тип переменной Valve_In_FBD AT%I3.0 Bool Reset_FBD AT%I3.1 Bool Pump_In_FBD AT%I3.2 Bool And1_FBD Нет Bool And2_FBD Нет Bool Valve_Control_FBD AT%Q3.0 Bool Pump_Control_FBD AT%Q3.2 Bool 3. В панели инструментов выберите Insert -> Block, NOT(*BOOL*) (логическое отрицание) и вставьте блок правым кликом мыши в левый верхний квадрат и добавьте остальные блоки.

Рис. 4. Назначьте входам – входные, а выходам – выходные переменные:

Рис. 5. Соедините блоки, выбрав мышкой необходимые выводы и применив инструмент Connection.

Рис. 6. Откомпилируйте программу, загрузите ее в симулятор и убедитесь в работоспособности всех четырех программ в адресном пространстве PLC -симулятора, защитите вашу работу. Закройте OpenPCS и переместите ваш проект директорию. На этом лабораторная работа закончена.

Pages:     || 2 | 3 | 4 |






© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.