Настройка кнопок через LPT порт
-
VAV77
- Кандидат
- Сообщения: 43
- Зарегистрирован: 28 мар 2013, 08:55
- Репутация: 0
- Контактная информация:
Re: Настройка кнопок через LPT порт
У меня нет контроллера - простая плата опторазвязки. Вот ее я и хочу отключать пока идет загрузка системника. А если USB или СОМ порт? Или там при загрузке тоже непонятно что творится? У меня то сигнал не нужно привязывать уж очень точно - это не отработка какого то контура, где задержки очень критичны.
-
VAV77
- Кандидат
- Сообщения: 43
- Зарегистрирован: 28 мар 2013, 08:55
- Репутация: 0
- Контактная информация:
Re: Настройка кнопок через LPT порт
И на сколько она простенькая? Нужны ли какие то приборы для настройки?Serg-tmn писал(а):При запуске выдает меандр с частотой basethread/2. И простенькая аналоговая схемка, которая эту импульсную последовательность обнаруживает.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Настройка кнопок через LPT порт
можно хоть ардуину взять...VAV77 писал(а):У меня нет контроллера - простая плата опторазвязки. Вот ее я и хочу отключать пока идет загрузка системника. А если USB или СОМ порт? Или там при загрузке тоже непонятно что творится? У меня то сигнал не нужно привязывать уж очень точно - это не отработка какого то контура, где задержки очень критичны.
А какая именно плата развязки?
ЗЫ поставь пускатель, чтобы при выключении станка он сам вырубался и пока не включишь ничего не работает.
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2858
- Откуда: Тюмень
- Контактная информация:
Re: Настройка кнопок через LPT порт
Примерно такая. Делал из того, что было под рукой.VAV77 писал(а):И на сколько она простенькая? Нужны ли какие то приборы для настройки?
Реле включает питание 220В БП контроллера, драйверов и шпинделя.
Чудес не бывает. Бывают фокусы.
-
VAV77
- Кандидат
- Сообщения: 43
- Зарегистрирован: 28 мар 2013, 08:55
- Репутация: 0
- Контактная информация:
Re: Настройка кнопок через LPT порт
А я уже писал, что так и решил эту проблему, только вместо пускателя поставил реле с самоподхватом. Но нажимать кнопку после каждой загрузки - как то не то. Хочется удобства.Nick писал(а):ЗЫ поставь пускатель, чтобы при выключении станка он сам вырубался и пока не включишь ничего не работает.
-
VAV77
- Кандидат
- Сообщения: 43
- Зарегистрирован: 28 мар 2013, 08:55
- Репутация: 0
- Контактная информация:
Re: Настройка кнопок через LPT порт
Извините, что долго не писал о результатах - был занят другой работой.
На всякий случай выкладываю hal файл - может прописал что то не так?.
Поменял - не реагирует вообще. Может мне нужно инвертировать вход как для датчика (по идее они все инвертированы у меня). Тогда как это сделать?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 порт
А это не из моего случая? - http://cnc-club.ru/forum/viewtopic.php? ... &start=760VAV77 писал(а):Поменял - не реагирует вообще.
Я тоже долго пытался управлять через
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 порт
после загрузки емс и нахождения нулей: если загружаем программу (ж-код) - на секунду включается режим авто и тут же восстанавливается первоначальная картина.Ворон226 писал(а):ЧТО С ЭТИМ ДЕЛАТЬ?
Все кнопки ручных перемещений работают пока не запустишь программу на выполнение.
У кого то не так?
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Настройка кнопок через LPT порт
Хмм... наверное надо добавить паузу между сигналами... только как бы это сделать...VAV77 писал(а):Поменял - не реагирует вообще. Может мне нужно инвертировать вход как для датчика (по идее они все инвертированы у меня). Тогда как это сделать?net run <= and2.0.out => halui.mode.auto halui.program.run
да - так по идее должно работать...
На всякий случай выкладываю hal файл - может прописал что то не так?.
Может через temedelay + edge?
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Настройка кнопок через LPT порт
после останова - опять как на скрине...Ворон226 писал(а):А после останова?
а у тебя то как??
-
VAV77
- Кандидат
- Сообщения: 43
- Зарегистрирован: 28 мар 2013, 08:55
- Репутация: 0
- Контактная информация:
Re: Настройка кнопок через LPT порт
Но мне не нужны кнопки перемещения - мне нужны кнопки пуск, пауза, продолжить и стоп. А они тоже не работают. Хотя с клавиатуры работают. Думал раскурочить клавиатуру и вывести с нее, но если окно программы не активно (включил Мозилу), то они тоже не работают. Пусть хоть без заморочек (пауза и продолжить), а только пуск и стоп что бы работали.nkp писал(а):если загружаем программу (ж-код) - на секунду включается режим авто и тут же восстанавливается первоначальная картина.
Все кнопки ручных перемещений работают пока не запустишь программу на выполнение.
У кого то не так?
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Настройка кнопок через LPT порт
Попробуй вот это:
написать вот в таком порядке
И пробелы в начале строк убери...
Код: Выделить всё
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 порт
Поменял - начало работать, но как-то странно. Такое ощущение, что пин проверяется через определенное время, а я нажимая на кнопку должен угадать это время. Т.е. получается, что я нажимаю кнопку (могу нажать раз пять, могу 20-ть) и только потом запускается отработка. После начала отработки опять постоянно нажимаю эту кнопку, но напаузу за время отработки может вообще не стать, а может стать несколько раз. Кстати программка у меня короткая - отрабатывается около 10сек. После отработки опять нажимаю кнопку - отработка может начаться через 10-20 нажатий, а может и с первого нажатия.Nick писал(а):написать вот в таком порядке
А когда в 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 порт
Информативная часть текста ошибки почти всегда здесь:
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)
надо(обязательно!) чтоб один пин был выходом (как бы источник сигнала
) и один или несколько входов (как бы приемник сигнала)
каким пин является лучше всего смотреть в описании пина в документации,например:
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 порт
А у меня на плате опторазвязки этот пин идет как вход. Вот прикрепляю изображение с описания платы
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Настройка кнопок через LPT порт
пины парпорта которые in , являются пинами-выходами (источником сигнала для хал):
входами они служат для "внешнего мира" 
то есть смотреть нужно на границе блока:
то есть смотреть нужно на границе блока:
Последний раз редактировалось nkp 03 авг 2013, 10:02, всего редактировалось 1 раз.
-
VAV77
- Кандидат
- Сообщения: 43
- Зарегистрирован: 28 мар 2013, 08:55
- Репутация: 0
- Контактная информация:
Re: Настройка кнопок через LPT порт
А их можно изменить? Если да, то где?
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Настройка кнопок через LPT порт
нет - этот "диагноз" у них навсегдаVAV77 писал(а):А их можно изменить? Если да, то где?
на в хал можно почти все написать с использованием других компонентов , ели последних не хватает - можно написать свой...
-
VAV77
- Кандидат
- Сообщения: 43
- Зарегистрирован: 28 мар 2013, 08:55
- Репутация: 0
- Контактная информация:
Re: Настройка кнопок через LPT порт
Так ведь 10,11,12 и 13 пины - это входа (in). Сейчас я задействовал 10 и 11. Когда на 12 прописываю ПУСК/ПАУЗА/ПРОДОЛЖИТЬ, то ошибки нет. Как только прописываю на 13 пин СТОП (net run parport.0.pin-10-in halui.program.run) - выдает ошибку. Убираю все описание кнопки ПУСК/ПАУЗА/ПРОДОЛЖИТЬ и теперь могу прописывать кнопку СТОП хоть на 12, хоть на 13 пин - кнопка СТОП прекрасно работает.
