Настройка кнопок через LPT порт

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
VAV77
Кандидат
Сообщения: 43
Зарегистрирован: 28 мар 2013, 08:55
Репутация: 0
Контактная информация:

Re: Настройка кнопок через LPT порт

Сообщение VAV77 »

У меня нет контроллера - простая плата опторазвязки. Вот ее я и хочу отключать пока идет загрузка системника. А если USB или СОМ порт? Или там при загрузке тоже непонятно что творится? У меня то сигнал не нужно привязывать уж очень точно - это не отработка какого то контура, где задержки очень критичны.
VAV77
Кандидат
Сообщения: 43
Зарегистрирован: 28 мар 2013, 08:55
Репутация: 0
Контактная информация:

Re: Настройка кнопок через LPT порт

Сообщение VAV77 »

Serg-tmn писал(а):При запуске выдает меандр с частотой basethread/2. И простенькая аналоговая схемка, которая эту импульсную последовательность обнаруживает.
И на сколько она простенькая? Нужны ли какие то приборы для настройки?
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Настройка кнопок через LPT порт

Сообщение Nick »

VAV77 писал(а):У меня нет контроллера - простая плата опторазвязки. Вот ее я и хочу отключать пока идет загрузка системника. А если USB или СОМ порт? Или там при загрузке тоже непонятно что творится? У меня то сигнал не нужно привязывать уж очень точно - это не отработка какого то контура, где задержки очень критичны.
можно хоть ардуину взять... :)
А какая именно плата развязки?

ЗЫ поставь пускатель, чтобы при выключении станка он сам вырубался и пока не включишь ничего не работает.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: Настройка кнопок через LPT порт

Сообщение Сергей Саныч »

VAV77 писал(а):И на сколько она простенькая? Нужны ли какие то приборы для настройки?
Примерно такая. Делал из того, что было под рукой.
Реле включает питание 220В БП контроллера, драйверов и шпинделя.
Чудес не бывает. Бывают фокусы.
VAV77
Кандидат
Сообщения: 43
Зарегистрирован: 28 мар 2013, 08:55
Репутация: 0
Контактная информация:

Re: Настройка кнопок через LPT порт

Сообщение VAV77 »

Nick писал(а):ЗЫ поставь пускатель, чтобы при выключении станка он сам вырубался и пока не включишь ничего не работает.
А я уже писал, что так и решил эту проблему, только вместо пускателя поставил реле с самоподхватом. Но нажимать кнопку после каждой загрузки - как то не то. Хочется удобства.
VAV77
Кандидат
Сообщения: 43
Зарегистрирован: 28 мар 2013, 08:55
Репутация: 0
Контактная информация:

Re: Настройка кнопок через LPT порт

Сообщение VAV77 »

Извините, что долго не писал о результатах - был занят другой работой.
nkp писал(а):net run <= and2.0.out => halui.mode.auto halui.program.run
да - так по идее должно работать...
Поменял - не реагирует вообще. Может мне нужно инвертировать вход как для датчика (по идее они все инвертированы у меня). Тогда как это сделать?
На всякий случай выкладываю hal файл - может прописал что то не так?.
Вложения
MKTP-8f.hal
(4.45 КБ) 1053 скачивания
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Настройка кнопок через LPT порт

Сообщение Ворон226 »

VAV77 писал(а):Поменял - не реагирует вообще.
А это не из моего случая? - http://cnc-club.ru/forum/viewtopic.php? ... &start=760
Я тоже долго пытался управлять через
halui.program.run
halui.program.pause
halui.program.resume
halui.program.stop
и
Сегодня в очередной раз перечитывал мануал по HAL и наткнулся на то, что отключает управление перемещениями от кнопок!
Это halui.mode !!!

Дома всё проверил:
При включении визуальной панели:
halui.mode.is-auto (bit, out) - отображает, что режим auto включен == 0
halui.mode.is-joint (bit, out) - пин отображающий, что включен режим джоггинга (jog) joint by joint == 1
halui.mode.is-manual (bit, out) - отображает, что ручной режим включен == 1
halui.mode.is-mdi (bit, out) - отображает, что включен режим MDI == 0
halui.mode.is-teleop (bit, out) - пин отображающий, что включен режим координированного джоггинга == 0

После включения питания станка, после выставления HOME по координатам, после установки НУЛЯ - состояния halui.mode не меняются и кнопочки перемещений работают.
Но стоит только загрузить исполняемую программу через окно загрузки, как
halui.mode.is-auto (bit, out) == 1
halui.mode.is-joint (bit, out) == 1
halui.mode.is-manual (bit, out) == 0
halui.mode.is-mdi (bit, out) == 0
halui.mode.is-teleop (bit, out) == 0
и кнопки перемещения перестают работать!
Вот оно!

Осталось понять ЧТО С ЭТИМ ДЕЛАТЬ?


Похоже этот вопрос опять всплыл...
Хочешь быть счастливым? Будь им!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Настройка кнопок через LPT порт

Сообщение nkp »

Ворон226 писал(а):ЧТО С ЭТИМ ДЕЛАТЬ?
после загрузки емс и нахождения нулей:
Выделение(007).jpg (1955 просмотров) <a class='original' href='./download/file.php?id=16937&mode=view' target=_blank>Загрузить оригинал (233.86 КБ)</a>
если загружаем программу (ж-код) - на секунду включается режим авто и тут же восстанавливается первоначальная картина.
Все кнопки ручных перемещений работают пока не запустишь программу на выполнение.
У кого то не так?
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Настройка кнопок через LPT порт

Сообщение Ворон226 »

А после останова?
Хочешь быть счастливым? Будь им!
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Настройка кнопок через LPT порт

Сообщение Nick »

VAV77 писал(а):
net run <= and2.0.out => halui.mode.auto halui.program.run
да - так по идее должно работать...
Поменял - не реагирует вообще. Может мне нужно инвертировать вход как для датчика (по идее они все инвертированы у меня). Тогда как это сделать?
На всякий случай выкладываю hal файл - может прописал что то не так?.
Хмм... наверное надо добавить паузу между сигналами... только как бы это сделать...
Может через temedelay + edge?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Настройка кнопок через LPT порт

Сообщение nkp »

Ворон226 писал(а):А после останова?
после останова - опять как на скрине...
а у тебя то как??
VAV77
Кандидат
Сообщения: 43
Зарегистрирован: 28 мар 2013, 08:55
Репутация: 0
Контактная информация:

Re: Настройка кнопок через LPT порт

Сообщение VAV77 »

nkp писал(а):если загружаем программу (ж-код) - на секунду включается режим авто и тут же восстанавливается первоначальная картина.
Все кнопки ручных перемещений работают пока не запустишь программу на выполнение.
У кого то не так?
Но мне не нужны кнопки перемещения - мне нужны кнопки пуск, пауза, продолжить и стоп. А они тоже не работают. Хотя с клавиатуры работают. Думал раскурочить клавиатуру и вывести с нее, но если окно программы не активно (включил Мозилу), то они тоже не работают. Пусть хоть без заморочек (пауза и продолжить), а только пуск и стоп что бы работали.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Настройка кнопок через LPT порт

Сообщение Nick »

Попробуй вот это:

Код: Выделить всё

  loadrt and2 count=3
    addf and2.0 servo-thread
    addf and2.1 servo-thread
    addf and2.2 servo-thread

    loadrt edge
    addf edge.0 servo-thread

    loadrt debounce cfg=1
    addf debounce.0 servo-thread
написать вот в таком порядке

Код: Выделить всё

loadrt debounce cfg=1
addf debounce.0 servo-thread

loadrt edge
addf edge.0 servo-thread


loadrt and2 count=3
addf and2.0 servo-thread
addf and2.1 servo-thread
addf and2.2 servo-thread
И пробелы в начале строк убери...
VAV77
Кандидат
Сообщения: 43
Зарегистрирован: 28 мар 2013, 08:55
Репутация: 0
Контактная информация:

Re: Настройка кнопок через LPT порт

Сообщение VAV77 »

Nick писал(а):написать вот в таком порядке
Поменял - начало работать, но как-то странно. Такое ощущение, что пин проверяется через определенное время, а я нажимая на кнопку должен угадать это время. Т.е. получается, что я нажимаю кнопку (могу нажать раз пять, могу 20-ть) и только потом запускается отработка. После начала отработки опять постоянно нажимаю эту кнопку, но напаузу за время отработки может вообще не стать, а может стать несколько раз. Кстати программка у меня короткая - отрабатывается около 10сек. После отработки опять нажимаю кнопку - отработка может начаться через 10-20 нажатий, а может и с первого нажатия.
А когда в hal файл добавляю кнопку STOP, т.е. строку
net run parport.0.pin-13-in halui.program.run
при загрузке программа не запускается, а выдает следующее

Код: Выделить всё

Print file information:
RUN_IN_PLACE=no
LINUXCNC_DIR=
LINUXCNC_BIN_DIR=/usr/bin
LINUXCNC_TCL_DIR=/usr/lib/tcltk/linuxcnc
LINUXCNC_SCRIPT_DIR=
LINUXCNC_RTLIB_DIR=/usr/realtime-2.6.32-122-rtai/modules/linuxcnc
LINUXCNC_CONFIG_DIR=
LINUXCNC_LANG_DIR=/usr/share/linuxcnc/tcl/msgs
INIVAR=inivar
HALCMD=halcmd
LINUXCNC_EMCSH=/usr/bin/wish8.5
LINUXCNC - 2.5.0
Machine configuration directory is '/home/weld/linuxcnc/configs/MKTP-8f'
Machine configuration file is 'MKTP-8f.ini'
INIFILE=/home/weld/linuxcnc/configs/MKTP-8f/MKTP-8f.ini
PARAMETER_FILE=linuxcnc.var
TASK=milltask
HALUI=halui
DISPLAY=axis
Starting LinuxCNC...
Starting LinuxCNC server program: linuxcncsvr
Loading Real Time OS, RTAPI, and HAL_LIB modules
Starting LinuxCNC IO program: io
Starting HAL User Interface program: halui
Shutting down and cleaning up LinuxCNC...
Killing task linuxcncsvr, PID=3794
Removing HAL_LIB, RTAPI, and Real Time OS modules
Removing NML shared memory segments
Cleanup done

Debug file information:
Can not find -sec MOT -var MOT -num 1 
Can not find -sec IO -var IO -num 1 
Can not find -sec LINUXCNC -var NML_FILE -num 1 
Can not find -sec EMC -var NML_FILE -num 1 
MKTP-8f.hal:137: Signal 'run' can not add OUT pin 'parport.0.pin-13-in', it already has OUT pin 'and2.0.out'
3794
  PID TTY      STAT   TIME COMMAND
Stopping realtime threads
Unloading hal components

Kernel message information:
[ 1004.018683] I-pipe: Domain RTAI registered.
[ 1004.018694] RTAI[hal]: <3.8.1> mounted over IPIPE-NOTHREADS 2.6-03.
[ 1004.018699] RTAI[hal]: compiled with gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) .
[ 1004.018786] RTAI[hal]: mounted (IPIPE-NOTHREADS, IMMEDIATE (INTERNAL IRQs DISPATCHED), ISOL_CPUS_MASK: 0).
[ 1004.018790] PIPELINE layers:
[ 1004.018795] f8331e20 9ac15d93 RTAI 200
[ 1004.018799] c085cb20 0 Linux 100
[ 1004.055360] RTAI[malloc]: global heap size = 2097152 bytes, <BSD>.
[ 1004.056034] RTAI[sched]: IMMEDIATE, MP, USER/KERNEL SPACE: <with RTAI OWN KTASKs>, kstacks pool size = 524288 bytes.
[ 1004.056044] RTAI[sched]: hard timer type/freq = APIC/8333539(Hz); default timing: periodic; linear timed lists.
[ 1004.056050] RTAI[sched]: Linux timer freq = 250 (Hz), TimeBase freq = 2133224000 hz.
[ 1004.056055] RTAI[sched]: timer setup = 999 ns, resched latency = 2943 ns.
[ 1004.056163] RTAI[usi]: enabled.
[ 1004.110949] RTAI[math]: loaded.
[ 1004.220280] config string '0x378 out  '
[ 1005.072735] RTAI[math]: unloaded.
[ 1005.097171] SCHED releases registered named ALIEN RTGLBH
[ 1005.161537] RTAI[malloc]: unloaded.
[ 1005.261030] RTAI[sched]: unloaded (forced hard/soft/hard transitions: traps 0, syscalls 0).
[ 1005.264782] I-pipe: Domain RTAI unregistered.
[ 1005.264891] RTAI[hal]: unmounted.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Настройка кнопок через LPT порт

Сообщение nkp »

Информативная часть текста ошибки почти всегда здесь:
Debug file information:
в данном случае :
MKTP-8f.hal:137: Signal 'run' can not add OUT pin 'parport.0.pin-13-in', it already has OUT pin 'and2.0.out'
содержит в себе название файла с шибкой(MKTP-8f.hal)
номер строки с ошибкой(137)
причину ошибки(Signal 'run' can not add OUT pin 'parport.0.pin-13-in', it already has OUT pin 'and2.0.out')
что в данном случае значит - нельзя соеденять (net) два пина-выхода(out)
надо(обязательно!) чтоб один пин был выходом (как бы источник сигнала ;) ) и один или несколько входов (как бы приемник сигнала)
каким пин является лучше всего смотреть в описании пина в документации,например:
VAV77
Кандидат
Сообщения: 43
Зарегистрирован: 28 мар 2013, 08:55
Репутация: 0
Контактная информация:

Re: Настройка кнопок через LPT порт

Сообщение VAV77 »

А у меня на плате опторазвязки этот пин идет как вход. Вот прикрепляю изображение с описания платы
Вложения
1.jpg (1873 просмотра) <a class='original' href='./download/file.php?id=17014&mode=view' target=_blank>Загрузить оригинал (39.23 КБ)</a>
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Настройка кнопок через LPT порт

Сообщение nkp »

пины парпорта которые in , являются пинами-выходами (источником сигнала для хал):
Выделение(009).jpg (1873 просмотра) <a class='original' href='./download/file.php?id=17015&mode=view' target=_blank>Загрузить оригинал (187.37 КБ)</a>
входами они служат для "внешнего мира" :)
то есть смотреть нужно на границе блока:
Выделение(010).jpg (1873 просмотра) <a class='original' href='./download/file.php?id=17016&mode=view' target=_blank>Загрузить оригинал (44.88 КБ)</a>
Последний раз редактировалось nkp 03 авг 2013, 10:02, всего редактировалось 1 раз.
VAV77
Кандидат
Сообщения: 43
Зарегистрирован: 28 мар 2013, 08:55
Репутация: 0
Контактная информация:

Re: Настройка кнопок через LPT порт

Сообщение VAV77 »

А их можно изменить? Если да, то где?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Настройка кнопок через LPT порт

Сообщение nkp »

VAV77 писал(а):А их можно изменить? Если да, то где?
нет - этот "диагноз" у них навсегда ;)
на в хал можно почти все написать с использованием других компонентов , ели последних не хватает - можно написать свой...
VAV77
Кандидат
Сообщения: 43
Зарегистрирован: 28 мар 2013, 08:55
Репутация: 0
Контактная информация:

Re: Настройка кнопок через LPT порт

Сообщение VAV77 »

Так ведь 10,11,12 и 13 пины - это входа (in). Сейчас я задействовал 10 и 11. Когда на 12 прописываю ПУСК/ПАУЗА/ПРОДОЛЖИТЬ, то ошибки нет. Как только прописываю на 13 пин СТОП (net run parport.0.pin-10-in halui.program.run) - выдает ошибку. Убираю все описание кнопки ПУСК/ПАУЗА/ПРОДОЛЖИТЬ и теперь могу прописывать кнопку СТОП хоть на 12, хоть на 13 пин - кнопка СТОП прекрасно работает.
Ответить

Вернуться в «LinuxCNC»