Сосонкин В.Л. 2005 Системы числового программного управления (841803), страница 31
Текст из файла (страница 31)
В первую очередь следует диагностировать логическую и геометрическую задачи управления.Концепция виртуальных приборов, построенных по типу ActiveX-элементов, позволяет использовать разработанные средства диагностики в самыхГлава 3. Задачи управления177•.•- Безымянный - OscSdiРис. ///. Амплитудно-частотная характеристика в логарифмическойсистеме координат (Боде-диаграмма)различных приложениях, которые представляют наибольший интерес дляконечных пользователей. Особенности СОМ-подхода и СОМ-технологиитаковы, что разработанные диагностические системы могут быть применены в любых устройствах ЧПУ.Глава 4.Технологии разработки программногообеспечения систем управленияРазработка систем управления предполагает привлечение целого рядаинформационных технологий, использующих объектно-ориентированныйи компонентный подходы, Windows-программирование, параллельное программирование и программирование систем в реальном времени. Но знание таких технологий является лишь необходимым условием для успешной разработки системы.
Существует специфика использования этих технологий в системах управления. В частности, нужно хорошо представлятьразницу между разработкой программного обеспечения офисного приложения и программного обеспечения систем управления, поскольку то идругое построено на разных моделях.Если фирма Microsoft может позволить себе публикацию несколькихобновлений каждую неделю и выпуск SP (Service Pack) раз в полгода, тообновление программного обеспечения систем управления означает реализацию новой версии с одновременной поддержкой всех предыдущих версий.
И если обновления офисных программ вполне реально выполнять через Internet, то для систем управления промышленным оборудованием такой возможности не существует.4.1. Технология объектно-ориентированногопрограммированияТрадиционное математическое обеспечение систем числовогопрограммного управления до сих пор использует технологию процедурного программирования, которую сегодня можно посчитатьтупиковой в этой конкретной области применения. На смену приходят технологии объектно-ориентированного и компонентногопрограммирования. В этой связи применительно к системам управления рассмотрены базовые понятия объектно-ориентированного подхода, представлены методические рекомендации повыбору объектов в системе управления, проанализированы проблемы создания объектно-ориентированных моделей, в том чис-Глава 4.
Технологии разработки программного обеспечения систем управления-] 7 9ле на основе формализма Г. Буча, и проблемы повторного использования уже разработанных кодов, продемонстрирована возможность инструментальной поддержки объектно-ориентированного программирования.Методология открытой архитектуры приоткрывает конечному пользователю системы ЧПУ определенную часть математического обеспечения,с тем чтобы внедрить в систему свое собственное технологическое «knowhow». Поэтому разработчики математического обеспечения обязаны сделать его в достаточной степени обозримым и читаемым.
Но это важно исамим разработчикам, чтобы внести в свой проект элементы структуризации и четкой организации, поскольку только на подобной основе огромный по объему проект может эволюционировать и совершенствоваться [67].4.1.1. Сравнение технологий программированияМодель процедурного подхода предполагает набор процедур, вызывающих друг друга для обработки данных. Инженер объясняет программисту проблему, а тот в свою очередь кодирует ее набором данных и процедур. Полученную программную систему сложно отладить и запустить, ноеще сложнее изменить и расширить.В основе объектно-ориентированного подхода лежит объект, имеющийопределенные свойства (данные) и располагающий возможностями работы с этими данными.
Модель объекта близка системе естественных физических представлений и способу мышления инженера, который оперируетпривычными для себя понятиями. Поэтому и программная модель вполнеадекватна физической. В результате объектно-ориентированный подходпородил специалистов, объединяющих специальные инженерные и программистские знания.Компонентный подход появился в результате дальнейшего развития объектно-ориентированного подхода, при котором наиболее важным фактором стала фиксация интерфейсов между компонентами программной системы придостаточно свободной реализации самих компонентов. Подобная идея такжеинтуитивно соответствует классическому инженерному мышлению.В рамках сравнения технологий программирования чрезвычайно важно рассмотреть проблему повторного использования уже разработанногокода.
Процедурный подход решает эту проблему посредством динамически подключаемых библиотек DLL (Dynamic Link Library), реализованныхв двоичном коде. Для библиотек DLL возможно использование разных языков программирования, однако существует проблема несовместимостиверсий одноименных библиотек.
Есть и другой недостаток: отсутствуетстандартный способ установки в системе более чем одной версии той жебиблиотеки.180В.Л. Сосонкин, Г.М. Мартинов. Системы числового программного управленияПовторное использование объектов означает открытое представлениеисходных кодов, что не всегда соответствует авторским интересам разработчиков. Есть и другие проблемы: необходимость работать с одним и темже компилятором; невозможность применения объектов в разных языкахпрограммирования; необходимость перекомпилирования всех проектов,использующих тот класс, который подвергся изменению.Повторное использование компонентов составляет саму суть подхода.
Реализация компонентов в двоичном коде соблюдает авторские права разработчиков, а стандартные интерфейсы делают компоненты общедоступными и способствуют их широкому (коммерческому) распространению. Работа компонентов поддерживается самой операционнойсистемой.Таким образом, можно заметить, что процедурный подход не ориентирован на многократное использование уже разработанных программныхкодов; процедурные модели, как правило, понятны только программистам.Решение обозначенных выше проблем следует искать в применении объектно-ориентированного и компонентного подходов. Рассмотрим преждеобъектно-ориентированный подход, поскольку он появился раньше компонентного и послужил для него основой.4.1.2.
Базовые понятияобъектно-ориентированного подходаНередко в литературе одни и те же понятия объектно-ориентированного подхода обозначаются различным набором терминов из разных объектно-ориентированных языков, развивавшихся параллельно. Примем в дальнейшем некоторое соглашение по поводу терминологии.Пять концептуальных понятий определяют объектно-ориентированнуютехнологию: объект, класс, инкапсуляция, полиморфизм и наследование[68].
Объект содержит набор данных и методов. Данные (атрибуты) определяют специфические характеристики объекта, связанные с его назначением, в то время как методы ограничивают набор действий, которые объектспособен совершить. Объект определяется с помощью класса, которыйобобщает, конкретизирует и специфицирует все свойства объекта. Например, класс «Привод» (Drive) содержит данные о состоянии, режиме и аварийных ситуациях координатного привода подачи, а также набор методов,включая процедуры запуска, останова и обработки нерегулярных ситуаций. Конкретным объектом привода является экземпляр класса «Привод».Объявление класса на языке C++ выгладить следующим образом:class CDriveГлава 4.
Технологии разработки программного обеспечения систем управления-jg-)Добавим поля данных (m-поля: m_State, m_Mode), характеризующихсостояние и режим работы привода:class CDriveunsigned long m_State;//Состояние приводаunsigned long m_Mode;// Режим приводаИнкапсуляция защищает данные объекта от несанкционированного доступа и модификации. С помощью инкапсуляции данные объекта могутбыть изменены только посредством собственных методов объекта; прямой доступ к данным объекта невозможен для клиента объекта.
Например, чтобы разрешить доступ к начальному (пусковому) сигналу привода,инкапсуляция вынуждает клиентское программное обеспечение использовать специальные методы запуска и останова, которые исключают некорректное управление приводом.Добавим методы (Start, Stop), реализующие функциональные возможности привода:class CDriveunsigned long m_State;// Состояние приводаunsigned long mMode;// Режим приводаpublic:bool virtual Start();// Запуск приводаbool virtual Stop();// Останов приводаПолиморфизм означает, что разные объекты могут быть интерпретированы как одинаковые для одного и того же (своего) клиента, хотя их поведение различно.
Допустим, что существуют класс аналогового привода икласс цифрового привода со своими методами запуска для каждого класса.Для клиентского программного обеспечения отсутствует разница в запуске аналогового и цифрового приводов, хота по сути процедуры запускаабсолютно различны.Полиморфизм скрывает специфику реализации объектов от клиентского программного обеспечения, удерживая клиентов в неведении относительно тех деталей реализации объектов, которые не имеют к клиентампрямого отношения.
Таким образом, он резко упрощает разработку клиентского программного обеспечения.Наследование позволяет объекту производного (порожденного) классаавтоматически наследовать при создании объекта данные и методы существующего родительского класса. Допустим, что имеется обобщенный базовый класс «Привод». Производный от него класс - «Цифровой привод» -182В.Л.















