![](https://electronix.ru/forum/uploads/set_resources_23/84c1e40ea0e759e3f1505eb1788ddf3c_pattern.png)
![](https://electronix.ru/forum/uploads/set_resources_23/84c1e40ea0e759e3f1505eb1788ddf3c_default_photo.png)
Corvet C6
Участник-
Постов
40 -
Зарегистрирован
-
Посещение
Репутация
0 ОбычныйИнформация о Corvet C6
-
Звание
Участник
Посетители профиля
1 048 просмотров профиля
-
Научился в Питоне считывать порт. Функция getInSelected() getInError() и т. д. Получил частоту обмена 22 КГц. Теперь нужно на C.
-
Сейчас вопрос не в COM-порте. Пример на питоне: Робоферма Управление LPT портом из Debian Linux на языке python В манипуляциях, описанных в статье использовался дистрибутив debian-live-7.2-i386-xfce-desktop.iso Операционная система работала в режиме live-usb, то есть без инсталляции на компьютер. debian lpt.jpg От себя рекомендую именно этот способ. Банально проще иных вариантов, которые мне удалось попробовать. Приступим по этапам. Большая часть действий выполняется в программе "Эмулятор терминала". 1. Модуль Рython-Рarallel Данный модуль собственно и предназначен для управления параллельным (lpt) портом. 1.1 Создайте новую директорию, в которой будет вестись работа. 1.2 Скачайте и перенесите в неё пакет python-parallel_0.2-7_all.deb. 1.3 Запустите эмулятор терминала. Можно кликнуть правой кнопкой мыши по рабочей директории и в контекстном меню выбрать пункт "открыть в терминале". Тогда терминал будет сразу ориентирован на работу с её содержимым. Открыть в терминале 1.4 Устанавливаем пакет следующей командой: sudo dpkg -i python-parallel_0.2-7_all.deb 2. Подготовка управляющего скрипта на Python 2.1 Создаём пустой файл, например "lpt.py". 2.2 Открываем его в текстовом редакторе и переносим следующий код: import parallel; import time; p = parallel.Parallel() p.setData(1) time.sleep(1) p.setData(2) time.sleep(1) p.setData(4) time.sleep(1) p.setData(8) time.sleep(1) p.setData(16) time.sleep(1) p.setData(32) time.sleep(1) p.setData(64) time.sleep(1) p.setData(128) time.sleep(1) p.setData(0) В эмуляторе терминала откройте доступ к порту: sudo rmmod lp Запускается командой sudo lpt. py Работает. Теперь вопрос: как здесь опросник порт? На уровне программы.
-
Вырос до Arduino due :) Есть пример из интернета по опросу Lpt порта: Работа с LPT портом Вот тестовая программка: нигде не накосячил? #include <sys/io.h> #include <sys/perm.h> #include <stdio.h> #include <stdlib.h> main() { unsigned int x; int init = 0xff; if(ioperm(0x378,3,1)) { printf("error opening lpt"); exit(1); } outb(init, 0x378); outb(init, 0x37a); while(1) { x=inb(0x378); if(x != 255) { printf("%d\n", x); } } if(ioperm(0x378,3,0)) { printf("error closing lpt"); exit(1); } } Под линуксом выдаёт ошибку открытия лпт. Кто-нибудь может помочь разобраться с этой программой, чтобы она работала? Есть пример на Питоне, выставляет логические уровни на порте, работает. Не знаю, как там допрашивать порт, да и питон в конечном итоге будет работать медленнее, чем C. В примере испольховалась библиотека python.parallel.
-
Пошла параллельная разработка :) Все равно интересно наблюдать этот процесс. Я бы не стал связываться с COM портом. Он очень чувствителен к помехам, уже есть опыт в этом деле. Даже USB более помехоустойчив. Еще как вариант - воткнуть плату RS-485 http://www.nnz-ipc.ru/good/show/14821/10212/ Другой вариант- выше была предложена отладочная плата для PCI-E. Думаю, там можно даже обратную связь с датчика сделать. В случае с RS485 петля обратной связи (с датчика) будет замыкаться на отдельное устройство, т. е. привод, тот, что на одну ось. Ещё один вариант был представлен выше, рабочее название "100%". Жрать G-код и макрокоманды компьютером. Им же синхронизиовать работу осей между собой. Компьютер позволяет добавлять новые устройства в готовую систему, по мере возникновения необходимости. Например - кнопки, штурвалы, маховички, датчики и т. д. Программу можно сделать как с нуля - в самом простом исполнении, для получения навыков и понимания процесса, так и использовать готовые наработки. Здесь единственный вариант линукс CNC, с их открытым исходным кодом. Зы: неспешно ищется исполнитель для написания оной программы. Финансирование уже обеспечено.
-
Есть два вопроса которые сейчас нужно выяснить: 1. Формат передачи информации в линукс-cnc. Как это выглядит при работе через платы PCI; для общего развития ещё через езернет/USB. 2. Форматы управления частотниками KEB и хитачи по rs-485. Имеются в виду частотники с датчиками обратной связи и возможностью позиционирования вала. Может кто-то знает другие фирмы, или конкретные модели, которые работают в таком режиме? На первое время нужен частотник, понимающий сигнал TTL на входе (такое как-бы дублирование вращения чего-то), а ещё лучше - понимающий сигнал шаг-направление (таких, боюсь, вообще нет). Сразу два примера: CAN и RS-485. В случае с CAN есть такая плата-заготовка, на базе которой можно начинать собирать привод, на плате есть CAN. Для одной оси даёт отличную скорость управления. В случае с RS-485 есть преобразователи частоты под таким управлением, да и еще много чего можно найти. Вопрос только в том, как это будет выглядеть: запихать на плату пару контроллеров RS-485 и сотню контроллеров CAN или же сделать выводы на витые пары с микросхемы ПЛИС и передавать данные по своему стандарту, а где нужно - подключать преобразователи в CAN - RS-485
-
Давайте ближе к сути вопроса: управление приводами по витой паре через PCI (PCI-E x1). На первое время согласен поставить сразу MACH+LPT и линукс CNC + PCI плата. Вроде не сложно накидать алгоритм программы без ограничения по количеству осей. По ходу выполнения G-кода добавляй себе по оси- две в расчёт и вычисляй их положения на ближайшие 0,2 с. Связь цены заготовки и станка, а так же заложенный процент брака- личное дело каждого. Есть какой-то раздел экономики с ориентацией на максимальные результаты, так вот с этой точки зрения должна быть максимальная накрутка в стоимости обработки, максимальная производительность и минимальная стоимость оборудования (не в ущерб производительности и комфорта в работе). Для борьбы с браком делают изолятор брака - весь брак складывают в одну кучу и потом анализируют убытки; причины их возникновения. А вот если станок дал сбой 1 раз - нужно что-то менять и не совать туда дорогие заготовки и пальцы. В старой винде можно отключить все лишние службы через msconfig. В новой выставляется минимальная частота процессора, в разделе электропитания. Если ничего не помогло - менять компьютер, потом ОС, в крайнем случае есть станочные стойки, начиная с НЦ31 заканчивая Siemens- Fanuk
-
Lpt я сам лично не смогу написать. Задача обозначена - делаем плату на PCI или PCI-E, 100 витых пар на частоте 1 МГц. Применять ноутбук не планируется, слишком суровые реали на производстве. А LPT на плате уже есть, на всякий случай. Сейчас нужно распределить обязанности и определиться со стоимостью проведения работ. Как минимум 50 000р у меня на это есть.
-
Всем привет! Я вернулся! Дотянули трубу до зоны покрытия GSM. Благодарю всех за публикации в теме. Лазерный гравер мне тоже нужен. К сути вопроса: 1. Есть интерфейс CAN. По своим ресурсам он позволяет управлять одновременно 5-ю приводами с частотой 1 КГц, что уже неплохо. На этом все заканчивается. 2. В идеале нужно сделать такую вещь: плата PCI либо PCI-E с клеммником на подключение 100 витых пар. Назовём этот вариант 100% Каждому приводу (и не только приводу) будет соответствовать свой физический разъём. Соединение по типу RS485-CAN-Свой стандарт, нужно рассмотреть все 3 варианта. 3. Финансирование работы предполагается с моим приездом к месту проведения работы и моего участия в оной. Нужно подумать, что приобрести для начала разработки. Конечный результат скорее всего будет открытым для всех, т. е. будет выложен на моём сайте (в данный момент он не работает), со ссылкой из этой темы форума.
-
В механических станках многократное попадание в нитку обеспечивалось отмоткой системы в обратную сторону. Такой прикол, как сбег резьбы - ещё не придумали. В станках с ЧПУ многопроходное нарезание проходит без остановки шпинделя. Попадание в нитку происходит либо стартом прохода с нулевой меткой, либо применением шаго-подобных двигателей при работе под MACH. Большая просьба всем участникам этого чата написать свои контакты [email protected] (Уехал)
-
Как вариант можно попробовать отдельные платы подключать по USB 3.0 С алгоритмом работы примерно следующее: есть окно программы, удивительно похожее на NC Drive. В это окно загружается текстовый файл с командами в G-кодах (отступление: для каждой оси заранее установлены параметры: количество шагов на количество миллиметров, скорость в ускоренном перемещении, ускорение и замедление в ускоренном режиме). С запуском программы начинается процесс эмуляции работы станка. A, B M4 S1000 (шпиндель и противопоставленный шпиндель вращение на себя, 1000 об/мин G0 X20.00 Z1,Z2 1.00 (ускоренное перемещение в точку x 20 мм z 1 мм.) G1 X19.50 F0.1 (подход в точку x 19,5 мм, подача 0,1 мм на оборот). G31 Z1,Z2-10.00 F2.00 (проход нарезания резьбы со стартом с нулевой меткой шпинделя) G1 Z1,Z2 -14.00 X 22.00 (сбег резьбы) G0 X100.00 (отход по оси X) A,B M5 (остановка шпинделя и противошпин.) B M11 (разжать цангу в шпинделе B) G0 Z2 200.00 % Соответственно, с определённым шагом времени (1 мкс) вычисляется положение всех задействованных осей и моментальная скорость. Положение осей и скорость сравнивается с реальным. Происходит согласование по осям, увеличивается ширина ШИМ, ток на обмотках. При достижении предельного тока, большого рассогласования, происходит остановка по остальным осям.
-
Можно подробнее про двигатель BLDC и 1800 импульсов за 60 баксов? Шаровые двигатели выбраны по 3-м причинам. 1. Не нужно выдирать двигатель из дрели, потом приделывать его к станку, потом проделывать к нему датчик. Вопрос времени. 2. Высокий крутящий момент. 3. Ниже цена по сравнению с бесколлекторными двигателями. В 3-5 раз дешевле. 4. Есть посадочное место под датчик. Идея управления станком в реальном времени обусловлена тем что: 1. Каждый отдельный драйвер стоит кучку денег. 2. Станок управляетсяется как единое целое. При стопоре одной оси остальные оси тоже останавливаются. Шаговые двигатели планируется управлять в серво-режиме, с датчиком на 1000 имп. На главный привод - коллекторный двигатель с датчиком или асинхронник с датчиком и частотником. Сделать по отдельной плате на каждую ось тоже можно, но подключаться они должны к мастер- плате, последняя- в PCI или PCI-E. Главное чтобы это все работало синхронно, с одной платы и в одном процессе. От шагов можно вообще отказаться. Передавать на привод текущее положение с частотой 1КГц и моментальную скорость. Работать будет плавнее. С шагами получается двойное вычисление, сначала по положению нужно вычислить шаги, потом в контроллере по полученным шагам вычислять требуемое положение и моментальную скорость. Со стоимостью могу продвинуться :)
-
Новая тема называется "Управление станком по шине PCI" Вводные: мы имеем платформу 4 ядра по 4 ГГц AMD. Компьютер моделирует процесс работы станка в соответствии с программой, в G-кодах. Для каждой из задействованных в работе осей высчитывается положение, с частотой 1 МГц, ни больше ни меньше. На плате имеется выход ШИМ для 20 Н-мостов и последовательная шина, совместимая с rs485, а также входы на 10 TTL датчиков. На шаговый двигатель ставится датчик обратной связи TTL. Обмотки управляются через 2 Н-моста. По последовательной шине идёт зацикленный сигнал с частотой 1 МГц следующего вида: стартовый байт 11111111, два байта адреса, два байта данных, 4 бит пауза - резерв для запроса прерывания ведомым устройством, два байта обратной связи, 4 бит пауза, затем по кругу. Цена вопроса полсотни тысяч рублей. [email protected]
-
По всем параметрам это то, что я хотел; с ячейками и можно подключить по LPT. https://m.habrahabr.ru/post/274829/ По поводу всей критики - принимается если станок будет в реальном времени работать и резьбу резать. Хоть по Blutus.
-
Без кварца здесь конечно тоже не обойдётся, но он и так стоит в любом устройстве, работающем с последовательной шиной. Хотя, изначально шина PCI или PCI-E обладает какой-то частотой. Её не кварцем получают? Может быть там синхро-импульс с мать. платы проходит? Ответ чем не устраивает... Будем пробовать. Пока есть сомнения, что это будет работать, в частности в нарезании резьбы. Мне больше симпатизирует вариант без внешнего контроллера с буферизацией, что бы система работала в режиме реального времени. А то что там винда на ней крутитца или линукс - там процессор с 4 ядрами по 4 ГГц. Не дорогой, от AMD.
-
Это и есть то, что нужно было. Где можно достать эту систему? В развитие темы: было предложение через PCI - E вывести сигнал на контроллеры (сервоприводы, концевики и т.д.) и втыкать их в систему неограниченное количество. Картина получается примерно такая: дешёвый контроллер работает на частоте 16 МГц. Частота шины должна составлять 1/16 = 1 МГц. Оптимальный вариант использования шины: Сигнал делится по 10 байт (80 бит). Первый байт - стартовый (11111111) для синхронизации всех устройств в системе. Далее следует 3 байта для управления шаговыми двигателями и сервоприводами сигналами "шаг вперед - шаг назад", по 2 бита на 1 двигатель. Таким образом, 12 двигателей управляются в режиме реального времени, без дополнительных переключений между осями. Далее следует 1 бит для запроса прерывания ведомым устройством, 15 бит адреса, 14 бит данных и 18 бит пауза для обратной связи.