Главная » Просмотр файлов » Сосонкин_Системы_ЧПУ

Сосонкин_Системы_ЧПУ (1087166), страница 37

Файл №1087166 Сосонкин_Системы_ЧПУ (Книга - Системы СЧПУ) 37 страницаСосонкин_Системы_ЧПУ (1087166) страница 372018-01-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 37)

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

Нельзя располагатьуправляющие элементы (control-элементы) MMI-интерфейса в отдельныхпотоках, например ListBox (список), сортирующий и отображающий данные системы управления. В этом случае выделение потока породитWindows-проблему синхронизации при обработке сообщений в другихпотоках. Правильным решением здесь будет закрепление за всеми управляющими элементами отдельного потока, занимающегося вычислениямии сортировкой только в фоновом режиме.Мы сталкивались с ситуацией, когда на одном из этапов проекта быливынуждены отказаться от многопоточности.

Разрабатывали прототип MMIна базе многооконного интерфейса (Multiple Document Interface, MDI). Задача состояла в управлении в рамках одного процесса (MDI-приложения)несколькими системами ЧПУ, каждая из которых была закреплена за отдельным документом. Данные систем ЧПУ отображались в отдельных окнах MDIChild, работающих в своем потоке. Статусбар (StatusBar) и тулбар(ToolBar) были контекстно-зависимы, принадлежали родительскому окнуMDIFrame и отображали состояние текущего окна MDIChild. При всякихГлава 4.

Технологии разработки программного обеспечения систем управления207изменениях система ЧПУ уведомляла свое MDIChild окно. При этом обновлялись управляющие control-элементы и перенаправлялись измененияв поток родительского окна MDIFrame. Там в свою очередь обновлялисьтулбар и статусбар.Аналогично выполнялись транзакции в обратном направлении. Команды со стороны тулбара направлялись в поток активного MDIChild окна,которое обновлялось и отправляло по сети команды в систему ЧПУ.Проблемы с вычислительными ресурсами начинались при одновременной работе более чем с тремя системами ЧПУ.

Решение состоит в отказе отмногопоточности и закреплении каждого экземпляра интерфейса оператора за отдельным процессом. В этом случае максимально используется вычислительная мощность компьютера. Переключение между отдельнымиэкземплярами интерфейса оператора осуществлялось так же, как междуприложениями.Синхронизация потоков системы PCNC с помощью объектов ядраWindows NT. Использование многопоточности требует решения таких проблем, как работа с разделяемой памятью, синхронизация потоков, работа сразделяемыми ресурсами (например, портами ввода-вывода). Решениястроятся на использовании стандартных объектов ОС (критические секции, мютексы, таймеры, семафоры, события), большая часть из которыхявляется объектами ядра.Формально потоки делятся на основные и порожденные от основных.Далее рассмотрены проблемы работы с основными потоками, посколькупорожденные могут использовать другие средства ОС для синхронизациипотоков (блокировки потоков с помощью оператора SleepO, таймерыWindows, передачи управления с помощью функции PeekMessageO).Использование критической секции в разделяемой памяти рассмотримна примере интерпретатора и интерполятора.

Интерпретатор интерпретирует кадр и записывает его в формате IPD (Interpolator Data) в кольцевойбуфер. Интерполятор считывает кадр из буфера и интерполирует его. На этапезаписи и считывания кольцевой буфер должен быть заблокирован, чтобыизбежать чтения неполного кадра или перезаписи неполностью прочитанного. Для этой цели создается критическая секция и инициализируется, например, в главном потоке процесса. В обоих потоках защищаемый код обрамлен вызовом функций EnterCriticalSectionO и LeaveCriticalSectionO вначале и конце.

Если передача управления осуществлена в критическойсекции, второй поток не сможет войти в нее и передаст управление первому потоку для выхода из критической секции.Другим объектом синхронизации потоков служит мютекс(гтиех), который позволяет синхронизировать потоки разных процессов. Рассмотримпример синхронизации данных коммуникационной среды между процес-208в л- Сосонкин, Г.М. Мартинов.

Системы числового программного управлениясами реального и машинного времени, передаваемых через разделяемуюпамять. Мютекс-объект создается в коммуникационном потоке процессареального времени с помощью функции CreateMutex(), которая сразу жевозвращает описатель (handler) объекта. \Ут32-поток получает описательмютекс-объекта с помощью функции CreateMutex() или OpenMutex(). Кодв синхронизируемых потоках обрамлен функциями WaitForSingleObject()и ReleaseMutex() в начале и конце.

Таким образом, блокируются попыткизаписи и считывания из разделяемой памяти соответственно коммуникационных потоков реального и машинного времени.Семафор используют для управления ресурсами, например портами ввода-вывода в системе PCNC. Когда запрашивается ресурс, то ОС уменьшает содержимое счетчика ресурсов. Семафор создается с помощью функции CreateSemaphor(), в которой указано количество ресурсов, подлежащих мониторингу. Описатель семафора из другого потока создается спомощью той же функции или функции OpenSemaphor(). Синхронизацияосуществляется в блоке, обрамленном функциями WaitForSingIeObject() иReleaseSemaphor(). В отличие от мютекса, освобождение которого возможнотолько занявшим его потоком, семафор может быть освобожден любымпотоком.Существует и другой объект ядра для синхронизации потоков - событие.

В системах PCNC событие можно использовать, когда код инициализации системы или код выхода из ошибки выводится в отдельном потоке.Инициализирующий поток переводит объект-событие в состояние «занято» и приступает к своим операциям. В этот момент рабочий поток приостанавливает свое исполнение и ждет. По окончании инициализации потокинициализации возвращает объект-событие в состояние «свободно». Рабочий поток активизируется и продолжает свою работу. Использование события-объекта позволяет упростить диспетчеризацию процессов реальноговремени.

Диспетчер построен на базе таймера. По сути, это отдельныйпоток с наивысшим приоритетом. При каждом срабатывании таймера вызывается его call-back функция, в которой реализована схема диспетчеризации. Согласно этой схеме управление потоками осуществляется путемизменения их приоритетов. На этом работа call-back функции таймера завершается. Останов и запуск процессов осуществляет сама ОС.4.3.5. Использование стандартных инструментальныхсредств поддержания открытой архитектурыПо оценкам специалистов, создание продвинутой системы ЧПУ на базеодного компьютера занимает порядка двухсот человеко-лет. Возникаютпроблемы методики создания системы PCNC на стадиях проектирования,отладки и внедрения, поддержки проекта релизами, сопровождения эво-Глава 4.

Технологии разработки программного обеспечения систем управления209люции проекта. Для построения открытой архитектуры объединяют стандартные инструментальные средства.Опыт показал, что интеграция инструментальных средств возможна наоснове технологии Microsoft-OLE-Automation. В качестве базы был использован Visual C++, который входит в состав наиболее мощного пакета средствразработки программного обеспечения под Windows-MSDN (MicrosoftDeveloper Network) [77]. Организации, выпускающие инструментальноепрограммное обеспечение, встраивают свои системы в MSDN, используятакие готовые компоненты пакета разработки, как текстовый редактор, система поддержки проекта Source Safe и т.д.На рис.

127 показан проект системы PCNC в среде Visual C++, где каждый модуль оформлен в виде подпроекта. Подпроекты состоят в некоторой зависимости друг от друга, которая определяет очередность компиляции. Суть в том, что во время компиляции модуль PCNC должен уже иметьте скомпилированные модули, от которых он зависит.Существует и основной проект (Master Project), компиляция которогообеспечивает перекомпиляцию всех остальных модулей. На рис. 128 в качестве примера приведена схема зависимости модулей объектно-ориентированной магистрали (ООС, object oriented channel), которая показана стрел-Рс_пс - Miciosoll Visual О * - [D:\pc_nc\CoraNcsCL\ISODATA.CPP]void CBlkGVector::UpdateData()|ip ComNcsCL classes j £" С CAComDaia" i ; CBIkAxValue" i j CBIkCurLines" С CBfcFeedrale* ! j CBIkGVecta« CBIkGVecloiO ^* SeUPDChannefф SelLineNumS»»^ m_pChannel9i> m_pLineNumF * l j CBIkLineNumbei[± " i ; CBIkSpindleSpeed.'/** begin CHJkGVr.-1-tor U^dateDataJ;?0?b36514 1 .i t ( !it_pChannel) r e t u r n :long nLineNum = 1;if <«i_pLineNvra '• HULL)—JnLineNum = jn_pLineHurt->GetVaiue( ) .CStrmg strGV.m pChannel -> G e t I s o P r o c e s s o r ( ) —> GetCurrent(if (m_strValue '= strGV)m_strValue - strGV.DispatchEvent().t» etid36514void CBlkGVector-.

5et.LineHu*SourcE(CLongData»Tre_pLine!Ium = pDataSource.Puc\ 127. Проект PCNC системы е среде Visualpi210В.Л. Сосонкин, Г.М. Мартинов. Системы числового программного управления1Master ProjectГAppNcsCL IГ'r1ComNcsCL jIFCplNcsCL j WeaNcsCL | DgnNcsCL j1ГCtrlGall | ViewGall 1'1ГBasNcsCL1IndNcsCLГ11NcsStdio 1Рис. 128.

Схема зависимости модулей объектно-ориентированной магистрали, определяющая очередность их компиляцииками. Каждый модуль проекта оформлен в виде динамической библиотеки и имеет свое назначение:• модуль, независимый от конкретной реализации системы PCNC(IndNcsCl);• модуль работы с файловыми потоками (NcsStdio);• галерея управляющих элементов (Ctrl Gall);• галерея элементов визуализации (ViewGall);• базовый модуль (BasNcsCL), в котором осуществляется открытиезакрытие объектно-ориентированной магистрали, а также ее начальная инициализация;• коммуникационный модуль (ComNcsCL) геометрического канала;• модуль языка УП высокого уровня (CplNcsCL);• модуль диагностики программируемого контроллера (DgnNcsCL);• модуль работы с сообщениями (WeaNcsCL);• модуль диагностики следящих приводов по типу осциллографа(OscNcsCL);• модуль прикладного уровня (AppNcsCL), поддерживающий реализацию приложений, взаимодействующих через объектно-ориентированныйканал, и т.д.Visual C++ обладает мощным механизмом настройки средств разработки, утилитами, обслуживающими проект, и механизмами встраивания внешних приложений.

Характеристики

Тип файла
PDF-файл
Размер
5,83 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6489
Авторов
на СтудИзбе
303
Средний доход
с одного платного файла
Обучение Подробнее