Сосонкин В.Л. 2005 Системы числового программного управления (841803), страница 41
Текст из файла (страница 41)
Системы числового программного управленияCDriveServer. Внешний компонент может специализировать этот интерфейс,добавив свой код перед вызовом внутреннего компонента или после этого.Агрегация (aggregation) означает, что внешний компонент агрегируетинтерфейс внутреннего компонента, не создавая интерфейс заново и непередавая вызов этого интерфейса явно, как при включении. Вместо этоговнешний компонент передает клиенту указатель на интерфейс внутреннего компонента.Агрегация интерфейса IDriveControl компонентом геометрического канала показана на рис. 139. Она применяется тогда, когда реализация интерфейса устраивает разработчика полностью.lUnknown/ • CMachine.ChannelServerCDriveServerIChannelControlО-ОIDriveControlРис.
139. Агрегация компонентов4.4.4. Область использования СОМПреимущества компонентного подхода обеспечили широкую сферу егоприменения.Во-первых, это повторное использование компонентов. СОМ позволяет однажды создать программный код, а потом использовать его во многихприложениях. Через какое-то время в компонент можно вносить коррекции и усовершенствования, что не повлечет необходимости менять любоеиспользующее его приложение.Во-вторых, это параллельная разработка.
Обычно начинают с разработки интерфейсов компонента, что определяет корректность совместной раlUnknownРазработчикипервой группыlUnknownРазработчикивторой группыРазработчикутретьей группыРис. 140. Параллельная разработка программного обеспеченияГлава 4. Технологии разработки программного обеспечения систем управления"2.2.7боты всего программного обеспечения (рис. 140). Последующую разработку функциональных возможностей компонентов можно распараллеливать.В-третьих, это унификация прикладного программного обеспечения.Речь идет о производстве, в котором собраны несовместимые системы управления разного типа и от разных производителей.
Пусть нужно создатьприложение, осуществляющее измерение сигналов для диагностики следящих приводов. Создают обобщенный СОМ-интерфейс и разрабатываютСОМ-сервер для каждого контроллера управления приводами. Прикладное приложение обращается через обобщенный СОМ-интерфейс к любому СОМ-серверу контроллера, при этом протокол управления конкретнымконтроллером привода полностью прозрачен (рис.
141).SiemensBoschRockwellПриложениеРис. 141. Унификация программного обеспеченияСуществуют некоторые особенности использования СОМ. Например,необходимо тщательно планировать интерфейсы, потому что опубликованный интерфейс нельзя менять. Если нужно изменить или расширить функциональные возможности интерфейса, то выпускают его новую версию сновым GUID. В новой версии компонента необходимо поддерживать всестарые интерфейсы для обеспечения совместимости.4.4.5.
Инструментальная поддержкакомпонентного проектированияПрименение инструментальных средств существенно ускоряет процесспроектирования и разработки компонентного программного обеспечения.CASE-система Rational Rose 2001 ориентирована на разработку СОМ набазе библиотеки активных шаблонов ATL и использование только дуальных интерфейсов. Ниже приведено альтернативное решение проектирования СОМ-сервера для управления приводом с использованием стандартной нотации Буча [70].Создадим абстрактный класс стандартного интерфейса IUnknown, который не будем генерировать (рис.
142). Объявим знакомые нам методыIUnknown как чистые виртуальные функции (pure function), т. е. не имеющие реализации.228В.Л. Сосонкин, Г.М. Мартинов. Системы числового программного управления^SetCorortiandPosittonOV5elAc(ualePD3itionO•SetConligParameterO•GetConfigParameterOI,- •selfTCDnve Server,m xDriveConlrol. XDriveConlStopOsetCommandPositionOGetAduaiePosrtionO*SetConfigParameter()elConligPPuc. 142. Проектирование компонента в нотации Буча с помощьюCASE-системы Rational RoseНазначим расположение IUnknown в заголовочном файле предварительной компиляции.
Создадим абстрактный класс интерфейсаIDriveControl, унаследованный от IUnknown, в котором методы StartO,StopO, SetCommandPositionO, GetActualPositionO, SetConfigParameterO,GetConfigParameter() и SelfTestQ объявлены как чисто виртуальныефункции.Прототипом сервера служит класс CDriveServer, в котором объявленвложенный класс XDriveControl,реализующий функциональность интерфейса IDriveControl. Построение интерфейса осуществляется путем переопределения в классе XDriveControl виртуальных функций Start(),StopO, SetCommandPositionO, GetActualPositionO, SetConfigParameterO,GetConfigParameterO и SelfTestO- Сам класс компонента CDriveServer должен быть унаследован от стандартного MFC класса CCmdTarget или егопотомка.Сгенерировав C++ проект с помощью Rational Rose, получим каркас,который остается заполнить функциями компонента, реализующими функциональность СОМ-интерфейса.Глава 4.
Технологии разработки программного обеспечения систем управления2294.4.6. Пример реализации ATL СОМ-сервераРассмотрим задачу верификации рабочего процесса в рабочем пространстве станка с ЧПУ с помощью твердотельного графического моделирования. Графический эмулятор работает совместно с ЧПУ-эмулятором в виртуальном времени, поскольку их скорости несопоставимы. Это означает,что можно запустить ЧПУ-эмулятор (включая процесс интерполяции) наопределенное время, после чего он приостановит свою работу, пока не получит очередную порцию времени от графического эмулятора. Графические эмуляторы распространяются как коммерческие продукты.
ЧПУ-эмуляторы разрабатываются производителями систем ЧПУ для своих целей.Проблема заключается в организации совместной работы эмуляторов, располагающих собственными интерфейсами. Для ее решения необходим модуль сопряжения на основе компонентного подхода.В силу необходимости конвертировать форматы данных, перемещаемых между двумя приложениями (графическим и ЧПУ), предпочтительней использовать библиотеку шаблонов ATL, способную создавать компактный код.Компонентная модель показана нарис. 143.
ЧПУ-эмулятор предлагаетприкладной интерфейс (API-функции) для взаимодействия с внешним окружением. ATL СОМ-сервер реализует интерфейсный модуль, управляющий, с одной стороны, ЧПУ-эмулятором через API-функции, с другой стороны, взаимодействующий с графическим эмулятором посредством СОМинтерфейсов. Графический эмулятор через интерфейс Inc_emulatorпосредством ATL СОМ-сервера управляет ЧПУ-эмулятором.
ИнтерфейсInc_emulator позволяет выбирать управляющие программы в любом каналесистемы управления, запускать и приостанавливать выбранные программыв любом из каналов, а также полностью останавливать систему управления.Со своей стороны ATL СОМ-сервер через СОМ-интерфейс Igraphic_similatorуведомляет графический эмулятор об изменении текущего кадра управляlUnknownпlUnknown1lnc_emulatorЭмуляторсистемы ЧПУATL COMСерверlgraphic_simulatorГрафическийэмуляторРис. 143 Компонентная модель интеграции графического эмулятора230"-"• Сооонкин, Г.М. Мартинов. Системы числового программного управленийющей программы, возникновении и снятии ошибки в системе ЧПУ, изменении конфигурации осей и каналов, о смене типа интерполяции в канале,вызове подпрограммы, а также об изменениях текущих координат осей.СОМ-сервер поддерживает два потока асинхронного взаимодействия двухэмуляторов.
Первый поток - основной, а второй предназначен для приемауправляющих вызовов к ЧПУ-эмулятору и возврата управления. Однопоточная реализация СОМ-сервера позволила бы осуществлять лишь синхронные вызовы, а графический эмулятор вынужден был бы останавливаться и ждать ответа после каждого обращения к системе ЧПУ.ЗаключениеКомпонентная организация программного обеспечения систем управления позволяет повторно использовать исходный код, применять готовыекомпоненты независимых поставщиков, имеющиеся на рынке, компоновать систему управления под конкретные технологические задачи. Компонентный подход, применяемый на этапе проектирования программногообеспечения, дает возможность распараллелить процесс разработки за счетвыделения компонентов.Компонентная технология повышает надежность системы управленияза счет повторного использования готовых отлаженных компонентов и сокращает время выпуска новых версий за счет возможности приобретенияи интеграции существующих на рынке компонентов.
Компонентный подход сегодня - это путь к крупномодульной реализации программного обеспечения систем числового программного управления мехатронными системами.Глава 5.Документы пользователя систем ЧПУК пользователям систем управления относят весьма обширную группуспециалистов. Это технологи-программисты, наладчики систем управления, операторы. Всем им весьма полезны знания о внутреннем устройствесистем ЧПУ, но их преимущественно интересует информация о возможностях и тонкостях технологического программирования.















