Wednesday, September 28, 2011

Чем это лучше компьютера ?

    Такой резонный вопрос вполне уместен и понятен. Ответ прост: ничем не лучше и не хуже, это просто альтернатива. Если вы успешно используете MACH3 или нечто подобное, то значит вам повезло с выбором железа для вашего ПК. Автору же повезло меньше, поэтому и возникло желание сделать что-либо альтернативное. 
    В мире простых станков с ЧПУ сейчас поголовно используются обычные настольные ПК с утановленной в них картой дискретного ввода/вывода. Чаще всего это LPT порт, реже специализированные параллельные ( или даже USB ) модули ввода/вывода. LPT при этом один из самых популярных интерфейсов, поскольку присутствует во всех старых материнских платах. Для современных ПК есть PCI -платы расшиения. Схема подключения к контроллерам шаговых двигателей банально проста ( теоретически ): на каждый двигатель нужно минимум три сигнала: ШАГ, НАПРАВЛЕНИЕ и общий провод. На выходе ШАГ формируются импульсы, которые заставляют провернуться двигатель на определенный угол, который пропорционален количеству этих самых импульсов. Выход НАПРАВЛЕНИЕ соответсвтенно определяет в какую сторону двигатель вращается. Как не трудно догадаться скорость вращения вдигателя определяется частотой импульсов ШАГ. Таким образом нашему компютеру необходимо выдавать импульсы с определенной максимальной частотой и, что не менее важно, с определенной равномерность следования этих импульсов. Критерии частоты и точности являются решающими для надежной работы шаговых двигателей (ШД).
    С компьютером разобрались, теперь о программном обеспечении. В данный момент получили распространение две системы ЧПУ: MACH3 и LinuxCNC (EMC2). Поскольку MACH3 является коммерческим ПО, то не хотелось-бы здесь разводить анти-рекламу. Просто скажем, что разработчикам нужно еще хорошо поработать над своим ПО, что-бы оно действительно достойно работало в таких ответственных приложениях, как ЧПУ. EMC2 наоборот подкупает своей открытостью и возможностями, что в принципе переходит в разряд недостатков для того, кто не желает вникать в Linux глубоко. Да и пользовательский интерфейс у EMC2 еще очень сильно отстает от того-же MACH3.
    Эти системы имеют своих ярых поклонников и противников в силу двойственности нашего мира :). Хотелось лишь остановиться на основной проблеме, присущей, на мой взгляд, обеим системам. Это проблема стабильности и частоты генератора шагов. Она в общем не зависит от самой программы управления, но зависит от операционной системы и используемого железа. ОС общего применения как правило не гарантируют более менее точных временных интервалов, т.к. для обычного пользователя это не нужно. Поэтому разработчики ПО для ЧПУ используют разные методы для создания генератора шагов. MACH3 предоставляет свой собственный драйвер, который обеспечивает, по мнению разработчиков, стабильность работы генератора шагов. Разработчики EMC2 используют другой подход, а именно они используют специальную ОС  реального времени, одной из задач которой является OC Linux, а другой задачей как раз наш генератор шагов.  И это работает и довольно неплохо, но...тут нас поджидает другой сюрприз, имя которому SMI ( System Management Interrupt). По сути это такой способ обходить аппаратные проблемы чипов программным путем.  Для нас это чревато тем, что этот обработчик ошибок может быть вызван аппаратно, прервав любой другой процесс на довольно длительное время, что может нарушить работу генератора шагов. Тут есть одна лозейка - можно запретить эти SMI вообще если правильно сконфигурировать чипсет. Что и сделали разработчики RTAI, но при этом ,во первых, возникают ошибки, которые обрабатывал-бы SMI, а во-вторых ,по некоторым сведениям, запрет SMI может привести к выходу из строя железа на некоторых чипсетах. И еще одна неожиданная проблема - смена поколений чипов приводит к тому, что не все источники SMI могут быть замаскированы довольно старым и медленно развивающимся RTAI. Поэтому никто не сможет гарантировать, что там или иная комбинация компонентов ПК будет гарантировано хорошо работать в качестве стабильного генератора шагов.  К своему стыду автор не знает как проблема SMI решена ( и решена-ли) в MACH3, но есть подозрение что там все ни чуть не лучше, чем в Linux.
     Безусловно энтузиаст-разработчик может собрать систему из старых компонентов и работать на ней долго и счастливо. Но кроме них есть еще и производители небольших станков, есть небольшие предприятия, где такие станки используются для нужд производства. В результате они вынуждены держать небольшой парк старых ПК, всегда готовых прийти на замену выбывшим из игры.
    Вышеприведенные рассуждения дали автору повод задуматься над вопросом создания автономного контроллера, который может легко встраиваться в систему управления станком, иметь малое время замены, нетребовательный в обслуживании. Надеюсь ему это удастся. 
В следующей статье речь пойдет о том пути, который привел автора к данному решению.


No comments:

Post a Comment