Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
от ильдара.doc
Скачиваний:
33
Добавлен:
15.05.2015
Размер:
2.74 Mб
Скачать

Билет № 3

1. Модели календарного планирования.

Задачи оперативного управления производством часто называют задачами календарного планирования, т.е. планирования во времени. Календарными считаются задачи, относящиеся к составлению календарных графиков по дням, сменам, часам работы. Задачи управления на уровне декады, месяца, квартала называют задачами декадного, месячного, квартального планирования. Формирование класса этих задач связано с одной из первых попыток решения экономических проблем методами математического программирования в начале 50-х годов. С тех пор актуальность решения данных задач сильно возросла. Увеличился диапазон подходов к их решению, но одновременно сохраняются трудности их реализации. Для решения задач календарного планирования привлекаются разнообразные методы прикладной математики (линейного, нелинейного, динамического программирования и др.).

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

Точные методы. К точным методам решения задач относятся методы линейного программирования.

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

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

Приближенные методы.Применение ЭВМ для решения задач календарного планирования позволили привлечь методы моделирования, в которых используются многие приемы (локальные правила), применяющиеся при ручном способе составления расписаний. Локальное правило календарного планирования это такое правило, которое используется рабочим-станочником при выполнении запланированных работ и требует от него только знания работ, ожидающих своей очереди перед его станком. Известно множество локальных правил, каждое из которых дает расписание, близкое к оптимальному для конкретной модели календарного планирования. Предпочтительность того или иного правила в зависимости от размерности задачи или от последовательности выполнения работ определить трудно. Во всех случаях определяется лишь расписание, близкое к условно оптимальному, т.е. оптимальному в условиях применения определенных локальных правил.

Билет 15

Технологические языки программирования МЭК 61131-3 (LD, FSC, FBD, IL, ST). LD-, FBD-программы. Пример.

Стандарт МЭК 61131-3 устанавливает пять языков программирования ПЛК, три графических и два текстовых. Первоначально стандарт назывался IEC 1131-3 и был опубликован в 1993 г. но в 1997 г. МЭК (IEC) перешел на новую систему обозначений и в названии стандарта добавилась цифра "6". Продвижением стандарта занимается организация PLCopen (http://www.plcopen.org).

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

Системы программирования, основанные на МЭК 61131-3, характеризуются следующими показателями:

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

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

  • переносимостью проекта с одного ПЛК на другой;

  • возможностью повторного использования отработанных фрагментов программы;

  • простотой языка и ограничением количества его элементов.

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

  • структурированный текст (ST - Structured Text);

  • последовательные функциональные схемы (SFC - "Sequential Function Chart");

  • диаграммы функциональных блоков (FBD - Function Block Diagram);

  • релейно-контактные схемы, или релейные диаграммы (LD - Ladder Diagram);

  • списокинструкций (IL-InstructionList).

Графическими языками являются SFC, FBD, LD. Языки IL и ST являются текстовыми.

В стандарт были введены несколько языков (а не один) для того, чтобы каждый пользователь мог применить наиболее понятный ему язык. Программисты чаще выбирают язык IL (похожий на ассемблер) или ST, похожий на язык высокого уровня Паскаль; специалисты, имеющие опыт работы с релейной логикой, выбирают язык LD, специалисты по системам автоматического управления (САУ) и схемотехники выбирают привычный для них язык FBD.

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

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

9.3.1. Язык релейно-контактных схем, LD

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

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

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

Несмотря на указанные недостатки, язык LD относится к наиболее распространенным в мире [Lewis], хотя используется для программирования только простых задач.

9.3.2. Список инструкций, IL

Язык IL напоминает ассемблер и используется для реализации функций, функциональных блоков и программ, а также шагов и переходов в языке SFC. Основным достоинством языка является простота его изучения. Наиболее часто язык IL используется в случаях, когда требуется получить оптимизированный код для реализации критических секций программы, а также для решения небольших задач с малым количеством разветвлений алгоритма.

В основе языка лежит понятие аккумулятора и переходов по меткам. Пример программы на зыке IL с комментариями приведен в листинге 4. Начинается программа с загрузки в аккумулятор значения переменной. Дальнейшие шаги программы состоят в извлечении содержимого аккумулятора и выполнении над ним ограниченного числа допустимых действий (их в языке всего 24).

9.3.3. Структурированный текст, ST

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

9.3.4. Диаграммы функциональных блоков, FBD

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

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

Рис. 9.10. Пример программы на языке FBD

Язык FBD может быть использован для программирования функций, функциональных блоков и программ, а также для описания шагов и переходов в языке SFC. Функциональные блоки инкапсулируют данные и методы, чем напоминают объектно-ориентированные языки программирования, но не поддерживают наследование и полиморфизм.

Типичным применением языка FBD является описание "жесткой логики" и замкнутых контуров систем управления. Язык функциональных блоков является удобным также для создания и пополнения библиотеки типовых функциональных блоков, которую можно многократно использовать при программирования задач промышленной автоматизации. К типовым блокам относятся блок таймера, ПИД-регулятора, блок секвенсора, триггера, генератора импульсов, фильтра, и т. п.

Билет 20

Среда разработки STEP 7-Micro/WIN 32. Элементы программы. Пример.

Программное обеспечениеSTEP 7-Micro/WIN 32 предоставляет выбор различных редакторов,

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

Редактор списка команд (Statement List)

Редактор списка команд (STL) предоставляет возможность создавать управляющие программы, вводя мнемонику команд.В общем случае редактор STL больше подходит для опытных программистов, хорошо знакомых с ПЛК и логическим программированием. Редактор STL позволяет также разрабатывать программы,которые невозможно создавать иным образом, используя редакторы для контактного или функционального плана. На рис. 1.2 показан пример программы, составленной в редакторе списка команд.

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

начинает сверху.

Редактор контактного плана (Ladder Logic)

Редактор контактного плана (LAD) позволяет формировать программы, имеющие сходство с электрической монтажной схемой.Вероятно, программирование в контактном плане является методом, который выбирают многие программисты ПЛК и обслуживающий персонал. По существу, программы в контактном плане позволяют CPU эмулировать протекание электрического тока от источника питания через ряд логических состояний входов, которые,в свою очередь, разблокируют логические состояния выходов. Логика обычно подразделяется на малые, легко понимаемые, сегменты, которые в англоязычной литературе часто называютсяrungs, т.е. ступеньки (в соответствии с английским названием контактного плана – Ladder Logic, что буквально означает "лестничнаялогика"), или networks – цепи. Программа выполняется по "цепям"слева направо и затем сверху вниз, как предписано программой. Кактолько CPU достигает конца программы, он начинает снова с вершины программы.

Различные команды представляются графическими символамии включают три основные формы. Можно последовательно соединять многочисленные команды в форме блоков.

 Контакты представляют логические состояния входов, аналогичных выключателям, кнопкам, внутренним условиям итак далее.

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

 Блоки представляют дополнительные команды, такие кактаймеры, счетчики или математические команды.

Основные особенности, принимаемые во внимание при выборе

редактора LAD:

 контактный план прост в использовании для начинающих

программистов;

 графическое представление часто более легко понимаетсяи является популярным во всем мире.

Редактор функционального плана (Function Block Diagram)

Редактор функционального плана (FBD) позволяет просматривать команды в форме логических блоков, напоминающих логические блок-схемы общего вида. Нет никаких контактов и катушек,как в редакторе LAD, но имеются эквивалентные команды, которыепоявляются как команды в форме блоков. Логика программы формируется из соединений между этими командами в форме блоков.То есть выход одной команды (например, блока AND) может использоваться для того, чтобы разрешить другой команде (например, таймеру) создать необходимую логику управления. Такаяконцепция соединений позволяет решать широкий круг логическихзадач.

Основная особенность, принимаемая во внимание при выборередактора FBD:

 графический стиль представления в форме логических элементов хорош для последующего составления блок-схемыпрограммы.