Написание проги для упраления чпу
Забрать управление (во времени) других пограмм, в многозадачных ОС под контроль Вашей программы, и позволять им выполнятся только нужное Вам время!!! Затем управление переходит опять под Ваши нужды.
Вы не можете это сделать в nt/2000/xp. Хотя и существуют т.н. realtime extention’ы для линейки nt, все это достаточно сложно. Они не бесплатные и недешевые. Софт должен быть заточен на использование этих расширений.
Ни одна из существующих программ под windows не использует этих расширений, максимум - работа через драйвер, который генерирует нужные последовательности импульсов.
Вот как раз о драйвере и идет речь.
Как говорят мои друзья менты - Не важно каким способом, важен результат!
Вот как раз о драйвере и идет речь.
Драйвер - не панацея. Если бы все было так просто, не нужны бы были RTX, а мач работал бы идеально.
Кстати сказать XP не позволяет напрямую обращатся к портам и системнному таймеру (пробовал на Assemblere), но в режиме эмуляции WIN95-98 не ругается и все работает на ура. Но нужно предпринять особые меры, чтобы OS не выполняла свои задачи в тот момент пока идет работа с портом.
Mach - хорошо работает с микрошаговым режимом (8) и та ничтожно малая неравномерность практически не сказывается на шаговый двигатель, а вот сервомотор с энкодерами ошибается при высокой частоте вращения. даже при средней.
Но нужно предпринять особые меры, чтобы OS не выполняла свои задачи в тот момент пока идет работа с портом.
Какие подразумеваются “особые” меры? Мне таковые не известны. Тем более, когда программа dos и работает в режиме эмуляции это вдвойне сложнее, чем просто win32 приложение.
С портами под xp работать можно, при чем возможны разные варианты. Либо обращаться к ним из ring0 в своем (чужом, универсальном) драйвере, либо из того же ring0 разрешить приложению, запущенному в ring3, обращаться к нужному порту. Дальше можно работать напрямую. Но драйвер по-любому нужен.
но в режиме эмуляции WIN95-98 не ругается и все работает на ура
если не считать того неприятного факта, что этот таймер виртуальный и эти порты виртуальные. 😃 или вы о режиме, в который надо перезагружаться? чем это тогда отличается от доса?
Они не бесплатные и недешевые. Софт должен быть заточен на использование этих расширений.
А неужели можно сделать CNC, я имею ввиду готовый результат (софт и хард) бесплатно или дешево? Да еще и работало чтоб!
Да я про существование DOSа уже давно забыл, как о кошмарном сне!
Mach - хорошо работает с микрошаговым режимом (8) и та ничтожно малая неравномерность практически не сказывается на шаговый двигатель, а вот сервомотор с энкодерами ошибается при высокой частоте вращения.
Чем “больше” микрошаг, тем ниже скорость. Чтобы сохранить скорость, требуется более высокая частота. Чем больше частота, тем меньше интервалы, которые необходимо точно замерять. Чем меньше интервалы, тем больше погрешность.
Чем “больше” микрошаг, тем ниже скорость. Чтобы сохранить скорость, требуется более высокая частота. Чем больше частота, тем меньше интервалы, которые необходимо точно замерять. Чем меньше интервалы, тем больше погрешность.
Я согласен с Вами, НО для тех систем где имеется обратная связь по углу поворота вала двигателя. Вот только тогда и будет заметна эта неравномерность. А например при использовании скажем A3770 не о какой неравномерности не может быть и речи! Все крутится ровно. проверено! Важно иметь шустрый компьютер.
А неужели можно сделать CNC, я имею ввиду готовый результат (софт и хард) бесплатно или дешево? Да еще и работало чтоб!
Да я про существование DOSа уже давно забыл, как о кошмарном сне!
А зря забыли. Если хочется сделать грамотно и качетвенно, то подходить надо с другой стороны - со стороны станка а не со стороны домашнего компьютера.
Вот по этому и ставят вместе с контроллером для шаговых моторов плату простенького компьютера, который только и умеет что принять по сети G-код и подать в контроллер шаговых двигателей нужные последовательности импульсов. И все это железнобетонно-стабильно, в ДОС-е!
Городить сложную программу и занимать шустрый компьютер выпиливанием – путь тупиковый.
Под винду писать не серьезно.
Пробовал выдавать импульсы на LTP под XP, неравномерность была дикая, написал драйвер под нулевое кольцо, стало получше, но не намного. Поставил защелку (Lock, функция есть в DriverStudio от Numega), стало хорошо 😃 4мкс минимальная ширина импульса которую я достиг, может можно и меньше, мне хватало. Но при использовании этой защелки система не реагирует ни на какие раздражители. 😃 Т.е. экран остается в том же состоянии, мышка и клава не работают, как и все остальное - проц выполняет только одну задачу - вашего драйвера.
В принципе почти как под ДОСом.
Думаю об ЛПТ лучше даже не думать. www.modbus.org давно уже существует. Правильно разработать драйвер ШД с встроенным modbus сервером(клиентом) с Ethernet интерфейсом.
Правильно разработать драйвер ШД с встроенным modbus сервером(клиентом) с Ethernet интерфейсом.
Ага. Только полноценный компьютер pc/104 со всей периферией и rtlinux+emc будет дешевле и универсальнее. С ethernet, tcp/ip, и еще фиг знает чем. Мало ли какие спутники летают… Хотелось бы что-то более приближенное к жизни. Промышленные системы немеряной стоимости как-то совсем малоинтересны.
Я согласен с Вами, НО для тех систем где имеется обратная связь по углу поворота вала двигателя. Вот только тогда и будет заметна эта неравномерность.
Обратная связь не имеется в хобби-станках. Она не нужна совершенно. А неравномерность будет хорошо заметна на детали.
Мож пора на USB переходить с последующим дешифратором на микроконтроллере(с USB-)?
А там уж хоть на 3 мотора хоть на 20.
toxa! С днём варенья!
2 toxa
Не обязательно делать PC104 или ему подобный. Вы же не на улице в -30 будете им пользоваться.
Стоимость комплектующих (железо) под ведомое устройство будет в районе 50уе. Но нужно писать программу для MCU, что бы поддерживала modbus протокол. Именно здесь и будут проблемы 😃
Кстати существуют и другие варианты - программная реализация “ведомого” выполняет функции моста с любым железом. Запускается на том же компе где modbus сервер.
Мож пора на USB переходить с последующим дешифратором на микроконтроллере(с USB-)?
Вопрос в адаптации софта. Прошивка микроконтроллера будет не так уж проста. Фактически, в нем надо будет реализовать половину управляющей программы. Самую ответственную и трудоемкую: передвижение по вектору по всем осям одновременно, разгон-торможение, линейная и круговая интерполяция и так далее. Если у большинства проблемы с тем, чтобы просто фазы двигателя переключать в зависимости от двух пинов, то уж такой софт…
Есть программа mach и в ней есть USB mode. Но там он достаточно тупой. Фактически, там реализован LPT по USB. И все проблемы с задержками как были так и есть, потому что интервалы все равно измеряются mach.
Не обязательно делать PC104 или ему подобный. Вы же не на улице в -30 будете им пользоваться.
Как это… “Размер имеет значение”. 😃 У меня все вместе с компьютером собрано в корпус 15x30x6 см. Вместе с дисководом.
Стоимость комплектующих (железо) под ведомое устройство будет в районе 50уе. Но нужно писать программу для MCU, что бы поддерживала modbus протокол. Именно здесь и будут проблемы 😃
Вот-вот. А тут поставил emc, turbocnc или еще лучше step-four и радуйся.
Сколько интересных мыслей. Я уже сорок раз запутался. Так ктонибудь скажет на чем писать програмулину-то для 2D станка, чтоб рулила из под ДОСа? Пожааааалуйста 😵
Сколько интересных мыслей. Я уже сорок раз запутался. Так ктонибудь скажет на чем писать програмулину-то для 2D станка, чтоб рулила из под ДОСа? Пожааааалуйста 😵
На си:
watcom c/c++
borland c++ 4.5
На паскале:
freepascal
virtual pascal 2.1
borland pascal 7
На си:
watcom c/c++
borland c++ 4.5На паскале:
freepascal
virtual pascal 2.1
borland pascal 7
или Qbasic 4.5, Tasm
но лучше на вышеуказанном
На TAsm c плавающей запятой какие нибудь кривые пересчитывать пожалуй сложновато будет.
Сколько интересных мыслей. Я уже сорок раз запутался.
А каких не поделитесь?
На TAsm c плавающей запятой какие нибудь кривые пересчитывать пожалуй сложновато будет.
Глупо писать на ассемблере то, что можно написаь на си или паскале. Просто бессмысленная трата времени. Если необходимо реализовать какой-то критичный кусок (что врядли понадобится, можно обойтись чистым языком), пишем именно то что надо на ассемблере, потом линкуем к программе на си или паскале. Никаких проблем. Но, извините, возиться с интерфейсом пользователя, когда есть turbovision/graphicsvision или разбором строк, когда есть lexx/yacc и regexp’ы - просто бессмысленно.
А каких не поделитесь?
На мой взгляд, самая интересная мысль - взять за основу turbocnc или для любителей linux и gcc - emc и на основе этого делать то, что необходимо.
Я в свое время начинал писать на VisualBasic. + dll-ки на сишке. Потом забросил . Скачал Масh2 и до сих пор в ней работаю , мне нравится что под матч есть куча постпроцессоров практически для любой популярной САМ программы.