КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Реализация функциональных картПрограммы, написанные с помощью функциональных карт, работают в режимереального времени, и аналогичными свойствами должен обладать порождаемый ими машинный код (соответствующие детали обсуждаются в главе 10). Обычно реализация систем реального времени требует больших усилий и значительных затрат времени и труда. Однако в этом конкретном случае большая часть бремени ложится на разработчика компилятора языка функциональных карт, а пользователь может писать сложные управляющие последовательности сравнительно простым способом. Все проблемы программирования в реальном времени, обсуждаемые в главе 10, имеют значение и при разработке программируемых логических контроллеров, однако конечного пользователя они касаются опосредованно и в достаточно малой степени. Компиляторы функциональных карт существуют для многих платформ промышленного управления. Широко применяется метод кросс-компиляции — программа разрабатывается и компилируется на одной платформе, обычно на ПК, а затем готовый исполняемый код загружается в ПЛК. Некоторые компиляторы включают средства эмуляции, которые показывают процесс исполнения программы на экране компьютера без подключения к ПЛК. Кроме того, существуют ПЛК со встроенными компиляторами. Очевидное преимущество абстрактного описания в виде функциональных карт — это независимость от конкретной аппаратной части и ориентация на выполняемую задачу, а не на компьютер. К сожалению, языки высокого уровня типа функциональных карт пока не имеют той популярности, которую заслуживают. Странно, что так иного программистов все еще продолжают работать на ассемблере или на С даже в тех случаях, когда задачу можно намного проще решить на языках описания функциональных карт. Как в любом сложном описании системы, диаграмма или программа должны быть разумно структурированы. Реализация функциональных карт должна позволять деление программы на небольшие части. Например, каждый станок сложной технологической линии иметь свой собственный граф (номограмму), а затем графы нескольких станков объединяться. Такое иерархическое структурирование чрезвычайно важно при программировании больших и сложных систем (глава 12). Функциональные карты применяются не только для сложных операций, но очень полезны и для простых задач. Неспециалисту проще понять функциональные карты, например, принципиальные схемы. Достоинством общепринятого стандарта является переносимость исходного кода между различными платформами вне зависимости от аппаратных особенностей среды. Трансляция функциональных карт в машинный код зависит от специфики ПЛК и его инструментария (системного программного обеспечения), так как не все устройства имеют компиляторы . Тем не менее, даже если функциональные карты не преобразуются в программный код, сами диаграммы исключительно полезны, поскольку они предоставляют пользователю инструмент для анализа и структурирования задачи. Некоторые компании используют функциональные карты для описания возможностей и методики применения своего оборудования. Конечно, было бы намного проще, если бы функциональные возможности карты применялись на всех этапах от технического задания до непосредственного программирования.
7.4.3. Применение функциональных карт в промышленном управлении В этом разделе рассмотрено применение функциональных карт для npcrpav мирования задачи управления порядком операций на участке гибкой проИЗВо ственной линии. Пусть участок состоит из трех станков с числовым программны управлением, например сверлильного, токарного и фрезерного, робота для псда материалов, а также промежуточного склада — буфера (рис. 7.28). Рис. 7.28. Структура производственного участка На уровне участка не рассматриваются конкретные контуры управления станками или роботом — каждый из них имеет свою систему управления, — а цель заключается в координации их работы. Задача из управления порядком операций и ихсинх ронизации в режиме реального времени (глава 10). Ниже приведен пример описания алгоритма управления средствами функциональной карты. Исполняемый код и сиг налы управления зависят от аппаратной платформы и компилятора. Деталь должна быть обработана в заданном порядке каждым из трех станков, дача робота — перемещение деталей между станками. Синхронизация станков производится с помощью графа "Диспетчер", структу ра которого показана на рис. 7.29. Диспетчер взаимодействует с каждым стан ком и роботом и определяет, когда станок может начинать работу и когда робот до переместить деталь. Функции диспетчера похожи на функции планировщика в стеме реального времени (глава 10), хотя в действительности это разные вещи. Диспетчер производственного участка должен наиболее эффективно поде между станками общий ресурс — в данном случае робота, — при этом он должен гарантировать отсутствие блокировок, связанных с этим ресурсом. Если, например, робот взял обработанную деталь со станка и ему некуда ее положить, то работа участка остановится. Следовательно, диспетчер должен сравнивать запросы, поступающие от станков, с доступными ресурсами – занятостью робота и объемом буфера.
Рис. 7.30. Начало функциональной карты, описывающей последовательность операций сверлильного станка
Последовательность операций на производственном участке можно описать в мз шинном коде или как принципиальную схему. Однако длинные программы на яэы ках низкого уровня неудобны для человека — в них трудно разбираться, их тру отлаживать и сопровождать. Для языков высокого уровня, таких как функциональ ные карты, собственно программа является хорошей документацией.
7.5. Заключение Бинарное управление является основой многих автоматизированных систем. Оно основано на теории переключательных систем. Важное практическое следствие этой теории — с помощью нескольких универсальных логических элементов (NOR, NAND) можно реализовать все типы комбинационных сетей. Существует два класса систем управления последовательностью — комбинационные и последовательностные сети. Комбинационные сети не имеют памяти, и выходное значение является логической функцией текущих входных значений. Последовательностные сети обладают памятью, поэтому есть возможность отложенного выполнениня шагов. Управление последовательностью исполнения может быть либо синхронным, либо асинхронным. В большинстве промышленных приложений система управления действует асинхронно, т. е. порядок исполнения управляется внешними событиями и условиями, а не периодическими сигналами таймера. Логические элементы можно реализовать с помощью различных технологий — релейных компонентов, интегральных схем, программируемых логических матриц и программного обеспечения управляющей ЭВМ или программируемых логических контроллеров. ПЛМ и ПЛК приобретают все большее значение при реализации логических сетей либо управляющих последовательностей. Описать последовательностную сеть можно с помощью схем логических элементов либо с помощью принципиальных схем. Однако эти методы не подходят для сложных схем управления, поэтому для их структурного описания необходимы более мощные инструменты. Хороший язык описания должен допускать иерархическое структурирование программы. В этой главе для демонстрации некоторых принципов последовательностного управления использовалось описание с помощью функциональных карт в соответствии со стандартом IEC 848.
|