sertix писал(а):Михаил, я с вами спорить не буду по поводу "как передать по USB хотя бы 1 бит информации менее чем за 10 мкс?", я не на столько подкован, но объясните мне как работают контроллеры в связке USB+Plugin+Mach, зачем этим контроллерам нужен Mach?
Mach рассчитывает движение с учетом заданных скоростей, ускорений, допустимых величин сглаживания траектории и прочего, прочего.
Во время расчета все это дело разбивается на кусочки по 2 мс, а уже потом данные (координаты всех осей (в импульсах/шагах, а не миллиметрах) разбитые на 2 мс) передаются плагину, который уже передает данные в контроллер (пачками).
Данные передаются с некоторым запасом (примерно 1 с) для предотвращения проблем вызванных нестабильностью передачи данных.
Из за этого получается, что станок реагирует на действия пользователя с некоторой задержкой. Например, мы нажали паузу. Mach3 рассчитал плавную остановку, но, к сожалению, рассчитал он ее с учетом того, что в буфере контроллера уже есть данные на 1 секунду работы станка, и, соответственно, замедляться он начнет не раньше, чем выработает данные из буфера.
С одной стороны данный подход сильно упрощает логику работы контроллера, а с другой - создает весьма неприятные сложности.
Например, как управлять станком вручную, если он выполняет все команды с существенной задержкой? Приходится искать обходные пути - учить контроллер работать самостоятельно, и передавать в него просто информацию о "нажатых клавишах".
Но тогда возникает новая проблема - если контроллер сам куда-то там передвинул станок - нужно тогда и координаты с программой синхронизировать. Приходится и это реализовывать, как очередную заплатку.
А потом возникают проблемы при выполнении скриптов, возникают проблемы, если буфер не опустошился, а мы двигаем станок в ручную, возникает проблема с управлением от штурвала (РГИ), возникает проблема невозможности обратной связи (например, для токарной обработки для синхронизации со скоростью вращения шпинделя / главного привода) ну и подобные проблемы.
В общем - контроллеры для Mach3 - та еще развлекуха. Как для разработчика, так и для пользователей. И виной тому - дурная голова разработчика Mach3.
Так что если если топикстартеру удастся сделать удобную и не глючную систему ЧПУ - это было бы круто.
Другой вопрос - что она не будет универсальной (так же, как KMotionCNC, NCStudio, PlanetCNC, EdingCNC и т.д.).
megagad писал(а):И это вопрошает тот, кто сделал свою интерфейсную плату? Вы же знаете такое слово как "буфер"?
Да, конечно, знаю.
Кстати, в моей плате буфера нет - она моментально реагирует на изменения поступающего сигнала. Там принцип работы похож на фильтр низких частот.