Страница 2 из 3
Re: Настройка кнопок через LPT порт
Добавлено: 11 июл 2013, 11:21
VAV77
У меня нет контроллера - простая плата опторазвязки. Вот ее я и хочу отключать пока идет загрузка системника. А если USB или СОМ порт? Или там при загрузке тоже непонятно что творится? У меня то сигнал не нужно привязывать уж очень точно - это не отработка какого то контура, где задержки очень критичны.
Re: Настройка кнопок через LPT порт
Добавлено: 11 июл 2013, 11:23
VAV77
Serg-tmn писал(а):При запуске выдает меандр с частотой basethread/2. И простенькая аналоговая схемка, которая эту импульсную последовательность обнаруживает.
И на сколько она простенькая? Нужны ли какие то приборы для настройки?
Re: Настройка кнопок через LPT порт
Добавлено: 11 июл 2013, 11:49
Nick
VAV77 писал(а):У меня нет контроллера - простая плата опторазвязки. Вот ее я и хочу отключать пока идет загрузка системника. А если USB или СОМ порт? Или там при загрузке тоже непонятно что творится? У меня то сигнал не нужно привязывать уж очень точно - это не отработка какого то контура, где задержки очень критичны.
можно хоть ардуину взять...

А какая именно плата развязки?
ЗЫ поставь пускатель, чтобы при выключении станка он сам вырубался и пока не включишь ничего не работает.
Re: Настройка кнопок через LPT порт
Добавлено: 11 июл 2013, 12:01
Сергей Саныч
VAV77 писал(а):И на сколько она простенькая? Нужны ли какие то приборы для настройки?
Примерно такая. Делал из того, что было под рукой.
Реле включает питание 220В БП контроллера, драйверов и шпинделя.
Re: Настройка кнопок через LPT порт
Добавлено: 11 июл 2013, 13:14
VAV77
Nick писал(а):ЗЫ поставь пускатель, чтобы при выключении станка он сам вырубался и пока не включишь ничего не работает.
А я уже писал, что так и решил эту проблему, только вместо пускателя поставил реле с самоподхватом. Но нажимать кнопку после каждой загрузки - как то не то. Хочется удобства.
Re: Настройка кнопок через LPT порт
Добавлено: 01 авг 2013, 15:09
VAV77
Извините, что долго не писал о результатах - был занят другой работой.
nkp писал(а):net run <= and2.0.out => halui.mode.auto halui.program.run
да - так по идее должно работать...
Поменял - не реагирует вообще. Может мне нужно инвертировать вход как для датчика (по идее они все инвертированы у меня). Тогда как это сделать?
На всякий случай выкладываю hal файл - может прописал что то не так?.
Re: Настройка кнопок через LPT порт
Добавлено: 01 авг 2013, 16:44
Ворон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
и кнопки перемещения перестают работать!
Вот оно!
Осталось понять ЧТО С ЭТИМ ДЕЛАТЬ?
Похоже этот вопрос опять всплыл...
Re: Настройка кнопок через LPT порт
Добавлено: 01 авг 2013, 17:07
nkp
Ворон226 писал(а):ЧТО С ЭТИМ ДЕЛАТЬ?
после загрузки емс и нахождения нулей:
если загружаем программу (ж-код) - на секунду включается режим авто и тут же восстанавливается первоначальная картина.
Все кнопки ручных перемещений работают пока не запустишь программу на выполнение.
У кого то не так?
Re: Настройка кнопок через LPT порт
Добавлено: 01 авг 2013, 19:09
Ворон226
А после останова?
Re: Настройка кнопок через LPT порт
Добавлено: 01 авг 2013, 19:22
Nick
VAV77 писал(а):
net run <= and2.0.out => halui.mode.auto halui.program.run
да - так по идее должно работать...
Поменял - не реагирует вообще. Может мне нужно инвертировать вход как для датчика (по идее они все инвертированы у меня). Тогда как это сделать?
На всякий случай выкладываю hal файл - может прописал что то не так?.
Хмм... наверное надо добавить паузу между сигналами... только как бы это сделать...
Может через temedelay + edge?
Re: Настройка кнопок через LPT порт
Добавлено: 01 авг 2013, 19:31
nkp
Ворон226 писал(а):А после останова?
после останова - опять как на скрине...
а у тебя то как??
Re: Настройка кнопок через LPT порт
Добавлено: 02 авг 2013, 15:00
VAV77
nkp писал(а):если загружаем программу (ж-код) - на секунду включается режим авто и тут же восстанавливается первоначальная картина.
Все кнопки ручных перемещений работают пока не запустишь программу на выполнение.
У кого то не так?
Но мне не нужны кнопки перемещения - мне нужны кнопки пуск, пауза, продолжить и стоп. А они тоже не работают. Хотя с клавиатуры работают. Думал раскурочить клавиатуру и вывести с нее, но если окно программы не активно (включил Мозилу), то они тоже не работают. Пусть хоть без заморочек (пауза и продолжить), а только пуск и стоп что бы работали.
Re: Настройка кнопок через LPT порт
Добавлено: 02 авг 2013, 15:14
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
И пробелы в начале строк убери...
Re: Настройка кнопок через LPT порт
Добавлено: 03 авг 2013, 08:51
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.
Re: Настройка кнопок через LPT порт
Добавлено: 03 авг 2013, 09:39
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)
надо(обязательно!) чтоб один пин был выходом (как бы источник сигнала

) и один или несколько входов (как бы приемник сигнала)
каким пин является лучше всего смотреть в описании пина в документации,например:
Re: Настройка кнопок через LPT порт
Добавлено: 03 авг 2013, 09:54
VAV77
А у меня на плате опторазвязки этот пин идет как вход. Вот прикрепляю изображение с описания платы
Re: Настройка кнопок через LPT порт
Добавлено: 03 авг 2013, 09:55
nkp
пины парпорта которые
in , являются пинами-выходами (источником сигнала для хал):
входами они служат для "внешнего мира"

то есть смотреть нужно на границе блока:
Re: Настройка кнопок через LPT порт
Добавлено: 03 авг 2013, 09:58
VAV77
А их можно изменить? Если да, то где?
Re: Настройка кнопок через LPT порт
Добавлено: 03 авг 2013, 10:04
nkp
VAV77 писал(а):А их можно изменить? Если да, то где?
нет - этот "диагноз" у них навсегда
на в хал можно почти все написать с использованием других компонентов , ели последних не хватает - можно написать свой...
Re: Настройка кнопок через LPT порт
Добавлено: 03 авг 2013, 10:17
VAV77
Так ведь 10,11,12 и 13 пины - это входа (in). Сейчас я задействовал 10 и 11. Когда на 12 прописываю ПУСК/ПАУЗА/ПРОДОЛЖИТЬ, то ошибки нет. Как только прописываю на 13 пин СТОП (net run parport.0.pin-10-in halui.program.run) - выдает ошибку. Убираю все описание кнопки ПУСК/ПАУЗА/ПРОДОЛЖИТЬ и теперь могу прописывать кнопку СТОП хоть на 12, хоть на 13 пин - кнопка СТОП прекрасно работает.