|
|
|
Разработка комплекса программа+железо LPT/USB для станков, Рабочее название "Конь В Вакууме" |
|
|
|
Apr 18 2017, 05:10
|
Участник
Группа: Участник
Сообщений: 40
Регистрация: 10-10-16
Пользователь №: 93 698
|
Есть два вопроса которые сейчас нужно выяснить: 1. Формат передачи информации в линукс-cnc. Как это выглядит при работе через платы PCI; для общего развития ещё через езернет/USB. 2. Форматы управления частотниками KEB и хитачи по rs-485. Имеются в виду частотники с датчиками обратной связи и возможностью позиционирования вала. Может кто-то знает другие фирмы, или конкретные модели, которые работают в таком режиме? На первое время нужен частотник, понимающий сигнал TTL на входе (такое как-бы дублирование вращения чего-то), а ещё лучше - понимающий сигнал шаг-направление (таких, боюсь, вообще нет). Цитата(khach @ Apr 17 2017, 15:14) Покажите пример приводов, которые управляются по "витой паре". Сразу два примера: CAN и RS-485. В случае с CAN есть такая плата-заготовка, на базе которой можно начинать собирать привод, на плате есть CAN. Для одной оси даёт отличную скорость управления. В случае с RS-485 есть преобразователи частоты под таким управлением, да и еще много чего можно найти. Вопрос только в том, как это будет выглядеть: запихать на плату пару контроллеров RS-485 и сотню контроллеров CAN или же сделать выводы на витые пары с микросхемы ПЛИС и передавать данные по своему стандарту, а где нужно - подключать преобразователи в CAN - RS-485
|
|
|
|
|
Apr 20 2017, 06:35
|
Участник
Группа: Участник
Сообщений: 40
Регистрация: 10-10-16
Пользователь №: 93 698
|
Пошла параллельная разработка Все равно интересно наблюдать этот процесс. Я бы не стал связываться с COM портом. Он очень чувствителен к помехам, уже есть опыт в этом деле. Даже USB более помехоустойчив. Еще как вариант - воткнуть плату RS-485 http://www.nnz-ipc.ru/good/show/14821/10212/Другой вариант- выше была предложена отладочная плата для PCI-E. Думаю, там можно даже обратную связь с датчика сделать. В случае с RS485 петля обратной связи (с датчика) будет замыкаться на отдельное устройство, т. е. привод, тот, что на одну ось. Ещё один вариант был представлен выше, рабочее название "100%". Жрать G-код и макрокоманды компьютером. Им же синхронизиовать работу осей между собой. Компьютер позволяет добавлять новые устройства в готовую систему, по мере возникновения необходимости. Например - кнопки, штурвалы, маховички, датчики и т. д. Программу можно сделать как с нуля - в самом простом исполнении, для получения навыков и понимания процесса, так и использовать готовые наработки. Здесь единственный вариант линукс CNC, с их открытым исходным кодом. Зы: неспешно ищется исполнитель для написания оной программы. Финансирование уже обеспечено.
|
|
|
|
|
Nov 10 2017, 10:53
|
Участник
Группа: Участник
Сообщений: 40
Регистрация: 10-10-16
Пользователь №: 93 698
|
Вырос до 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.
|
|
|
|
|
Nov 11 2017, 04:49
|
Участник
Группа: Участник
Сообщений: 40
Регистрация: 10-10-16
Пользователь №: 93 698
|
Сейчас вопрос не в 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
Работает. Теперь вопрос: как здесь опросник порт? На уровне программы.
|
|
|
|
|
Nov 17 2017, 09:54
|
Участник
Группа: Участник
Сообщений: 40
Регистрация: 10-10-16
Пользователь №: 93 698
|
Научился в Питоне считывать порт. Функция getInSelected() getInError() и т. д. Получил частоту обмена 22 КГц. Теперь нужно на C.
|
|
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|