Расширение цифрового осциллографа системы управления за счет включения анализатора сигналов Цель: Создание методики построения подсистемы анализа сигналов для приложения системы управления технологическим оборудованием Задачи: Анализ существующих на рынке программных решений и определение требований к конкурентоспособной системе Определение программных подходов и разработка алгоритмов высокопроизводительной обработки больших объемов данных Построение объектной модели универсального анализатора сигналов с открытой модульной архитектурой Практическая реализация анализатора сигналов в системе ЧПУ WinPCNC Место анализатора сигналов в архитектуре приложения системы ЧПУ Задача диспетчеризации Данные Запрос данных Интерполятор Данные Запрос данных NC-приложение пользователя Данные Программируемый логический контроллер (PLC) База данных реального времени Запрос данных Данные Данные Запрос данных NC-подсистема Интерпретатор (ISO- процессор) Логическая задача Технологическая задача Геометрическая задача Объектно-ориентированный канал (OOC_CL) Данные Запрос данных Пользовательский интерфейс (MMI) Данные Запрос данных Инструмент разработки управляющих программ (NC_PDT) Данные PC-подсистема Функциональность: Конфигурирование вычислений Повтор вычислений Зависимые вычисления Экспорт и импорт конфигурации Запрос данных PC-приложение пользователя Терминальная задача Компонентная архитектура Распределенная модель хранения данных Структура подсистемы вычислений Диаграмма классов подсистемы вычислений «interface»IOsciComputation +DoComputation() +AddSignal(in key : int, in s : Signal) +InitForm(in dCoefficientsArray : double[], in nOperandsIdsArray : int[]) +ReturnFunctionInformation() : string[] +ReturnCalculatedSignalPoints() : ArrayList +ReturnArrayOfSignalPoints() : ArrayList[] +ReturnSignalKind() : int[] +ReturnYUnitName() : string[] +ReturnXUnitName() : string[] +ReturnSamplingTime() : string[] +ReturnUnitInformation() : int[,] +ReturnComputerName() : string +ReturnNumberOfCalculatedSignals() : int +ReturnNumberOfCoefficients() : int +ReturnNumberOfSourceSignals() : int +ReturnGenericComputerFilter(out strAttributeName : string, out strValues : string[]) +GetOKButtonState() : bool +ReturnOperandIDsArray() : int[,] +ReturnComputedSignalColors() : uint[] Пользовательский интерфейс и возможности конфигурирования Результаты работы анализатора сигналов Выводы Предложенные идеи позволили решить такие диагностические задачи как: анализ Фурье, построение АФЧХ, круговой тест, анализ контура, интегральные и дифференциальные вычисления над сигналами, арифметические операции и некоторые другие в рамках единого приложения цифрового осциллографа. Высокая производительность обработки больших объемов данных обеспечивается за счет применения компонентного подхода в архитектуре. Инкапсуляция данных в COMкомпонентах позволяет избежать дублирования данных и ускоряет работу за счет обмена только COM-интерфейсами. Предложенная схема построения вычислительной подсистемы позволяет расширять и конфигурировать наборы вычислителей без перекомпиляции существующих программных модулей. Для расширения вычислительных функций конечный пользователь нуждается только в спецификации интерфейса вычислителей.