Как реализовать связь пинов HAL с переменными подпрограммы?

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Как реализовать связь пинов HAL с переменными подпрограм

Сообщение nkp »

да -после того ,как ты используешь #<_X_MAX> первый раз , повторно можешь пользовать в других файлах этой папки...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Как реализовать связь пинов HAL с переменными подпрограм

Сообщение nkp »

можно сразу смотреть - что оно там присваивает:

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

M66 E0 L0
#<_X_MAX> = #5399
(DEBUG,_X_MAX = #<_X_MAX>)
M66 E1 L0
#<_Y_MAX> = #5399
(DEBUG,_Y_MAX = #<_Y_MAX>)
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

Re: Как реализовать связь пинов HAL с переменными подпрограм

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

Ворон226 писал(а):А ничего, что у меня уже загружена программа через OPEN_FILE ?
Если выход из подпрограммы организован правильно (через endsub), то проблем быть не должно. Если подпрограмма вылетает по ошибке - результат непредсказуем.
Поэтому возможные ошибки в MDI-подпрограммах лучше перехватывать и обрабатывать самому.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Как реализовать связь пинов HAL с переменными подпрограм

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

nkp писал(а):можно сразу смотреть - что оно там присваивает:

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

M66 E0 L0
#<_X_MAX> = #5399
(DEBUG,_X_MAX = #<_X_MAX>)
M66 E1 L0
#<_Y_MAX> = #5399
(DEBUG,_Y_MAX = #<_Y_MAX>)
Сделал... А где или как смотреть? Попробовал найти в халшоу - нет там ничего похожего...
(подпрограмму написал, конечно, вначале с
o<ust> sub
и в конце с
o<ust> endsub )
Хочешь быть счастливым? Будь им!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Как реализовать связь пинов HAL с переменными подпрограм

Сообщение nkp »

после отработки кода:
Выделение_023.png (2245 просмотров) <a class='original' href='./download/file.php?id=34945&sid=09455122e9242a5fa011c053aacbf6fd&mode=view' target=_blank>Загрузить оригинал (72.29 КБ)</a>
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Как реализовать связь пинов HAL с переменными подпрограм

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

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

Re: Как реализовать связь пинов HAL с переменными подпрограм

Сообщение nkp »

Ворон226 писал(а):так это в axis
я запамятовал , что ты делаешь свой интерфейс...
=============
к нему бы по хорошему тоже строку вывода ошибок и сообщений прикрутить нужно...
полезно это зело...
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Как реализовать связь пинов HAL с переменными подпрограм

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

сейчас переношу для отстройки в axis... Как все заработает - уйду в свой интерфейс.
Хочешь быть счастливым? Будь им!
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Как реализовать связь пинов HAL с переменными подпрограм

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

Перенес.
При нажатии кнопки с выходом в подпрограмму вылетает ошибка, что не может найти файл подпрограммы. А вот файл с выключением M102, который лежит в той же папке - находит и компьютер выключается...

Теперь подробнее:
INI:
[DISPLAY]
DISPLAY = axis
GLADEVCP = mygui.ui
PROGRAM_PREFIX = /home/sun/linuxcnc/nc_files
OPEN_FILE = /home/sun/linuxcnc/nc_files/skan1.ngc
[HAL]
HALFILE = skaner.hal
POSTGUI_HALFILE = custom_postgui.hal
HALUI = halui
[HALUI]
MDI_COMMAND = M102
MDI_COMMAND = o<ust0>call
MDI_COMMAND = o<ustmax>call

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

Re: Как реализовать связь пинов HAL с переменными подпрограм

Сообщение Nick »

можно в консоль или в отдельный файл выводить... и там смотреть...

=========
Файл как точно называется? И где лежит?
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Как реализовать связь пинов HAL с переменными подпрограм

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

Ворон226 писал(а):[HALUI]
MDI_COMMAND = M102
MDI_COMMAND = o<ust0>call
MDI_COMMAND = o<ustmax>call
Файлы названы соответственно ust0.ngc и ustmax.ngc (может расширение не то? Но ведь и загрузочная программа не появляется - окно программы в axis пустое)
Хочешь быть счастливым? Будь им!
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Как реализовать связь пинов HAL с переменными подпрограм

Сообщение Nick »

Ты же говорил, что у тебя ошибка с M102?
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Как реализовать связь пинов HAL с переменными подпрограм

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

Не-не... М102 работает как часы.
Не запускается подпрограмма из mdi_command

(ошибку с загрузочной программой нашел - орфография)
Хочешь быть счастливым? Будь им!
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

Re: Как реализовать связь пинов HAL с переменными подпрограм

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

Где лежат подпрограммы?
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Как реализовать связь пинов HAL с переменными подпрограм

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

Сергей Саныч писал(а):Где лежат подпрограммы?
тут
Ворон226 писал(а):PROGRAM_PREFIX = /home/sun/linuxcnc/nc_files
Хочешь быть счастливым? Будь им!
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Как реализовать связь пинов HAL с переменными подпрограм

Сообщение Nick »

А что в самих файлах?
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Как реализовать связь пинов HAL с переменными подпрограм

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

Nick писал(а):А что в самих файлах?

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

o<ust0> sub

M66 E0 L0
#<_X0> = #5399
 (DEBUG, _X0 = #<_X0>)
M66 E1 L0
#<_Y0> = #5399
 (DEBUG, _Y0 = #<_Y0>)

o<ust0> endsub
и

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

o<ustmax> sub

M66 E0 L0
#<_X_MAX> = #5399
 (DEBUG, _X_MAX = #<_X_MAX>)
M66 E1 L0
#<_Y_MAX> = #5399
 (DEBUG, _Y_MAX = #<_Y_MAX>)

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

Re: Как реализовать связь пинов HAL с переменными подпрограм

Сообщение Nick »

попробуй в них в конец добавить по M2, хотя, не факт, что поможет...

И кстати, как именно ругается?
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Как реализовать связь пинов HAL с переменными подпрограм

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

Оказалось, что выполнение подпрограммы каким-то образом связано с начальной загрузкой программы в G-кодах. После того, как программа стала загружаться - стала и выполняться подпрограмма.
Как меня когда-то учил профессор микроэлектроники: "Микроэлектроника - это наука о контактах".
Так и тут. Чаще всего - невнимательность или неаккуратность при программировании.
Открою новую тему создания структуры координатного стола, в котором буду подробно описывать сам процесс создания ПО для стола. Уверен, что пригодится новичкам.
Большое спасибо!
Хочешь быть счастливым? Будь им!
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Как реализовать связь пинов HAL с переменными подпрограм

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

Сергей Саныч писал(а):Поэтому возможные ошибки в MDI-подпрограммах лучше перехватывать и обрабатывать самому.
А как? Ведь организация индикации ошибок и правильные пути выхода из ошибок - важный раздел!
Хочешь быть счастливым? Будь им!
Ответить

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