4-я ось - позиция/скорость

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

Re: 4-я ось - позиция/скорость

Сообщение Nick »

zilk писал(а): .control-type 1
Режимы управления задаются в строке загрузки компонента stepgen скинь свой hal, посмотрим :).
Аватара пользователя
Serb01
Опытный
Сообщения: 107
Зарегистрирован: 04 июн 2012, 09:58
Репутация: 17
Настоящее имя: Сергей Беседин
Откуда: Новокузнецк
Контактная информация:

Re: 4-я ось - позиция/скорость

Сообщение Serb01 »

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

Re: 4-я ось - позиция/скорость

Сообщение nkp »

Serb01 писал(а):где писать эти hal.
Можно поподробней- в чем вопрос?
Аватара пользователя
Serb01
Опытный
Сообщения: 107
Зарегистрирован: 04 июн 2012, 09:58
Репутация: 17
Настоящее имя: Сергей Беседин
Откуда: Новокузнецк
Контактная информация:

Re: 4-я ось - позиция/скорость

Сообщение Serb01 »

Например:
loadrt and2 count=4
loadrt or2 count=2
loadrt not count=1

addf and2.0 servo-thread
addf and2.1 servo-thread
addf and2.2 servo-thread
addf and2.3 servo-thread
addf or2.0 servo-thread
addf or2.1 servo-thread
addf not.0 servo-thread

net mode motion.digital-out-00 => not.0.in and2.0.in1 and2.2.in1
net inv not.0.out => and2.1.in1 and2.3.in1
net p-step stepgen.3.step => and2.0.in0
net v-step stepgen.4.step => and2.1.in0
net p-dir stepgen.3.dir => and2.2.in0
net v-dir stepgen.4.dir => and2.3.in0
net pstep-sw and2.0.out => or2.0.in0
net vstep-sw and2.1.out => or2.0.in1
net pdir-sw and2.2.out => or2.1.in0
net vdir-sw and2.3.out => or2.1.in1

net sel-step or2.0.out => parport.0.pin-NN-out
net sel-dir or2.1.out => parport.0.pin-NN-out
Где это пишется?
Значительно проще быть чуточку внимательней, чем долгое время пускать деньги на ветер
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: 4-я ось - позиция/скорость

Сообщение nkp »

Можешь дописать в свой хал файл
Можешь создать новый - name.hal и его прописать в ини файле в секции [HAL] подобно тому ,как уже существующие прописаны.
Все это добро лежит в /home/ЮЗЕР/emc2/configs/
Аватара пользователя
Serb01
Опытный
Сообщения: 107
Зарегистрирован: 04 июн 2012, 09:58
Репутация: 17
Настоящее имя: Сергей Беседин
Откуда: Новокузнецк
Контактная информация:

Re: 4-я ось - позиция/скорость

Сообщение Serb01 »

Создал конфигурацию Proba1.
В файле Proba1.ini вразделе [HAL] создал (создатель блин...) строку HALFILE = Proba2.hal
В текстовом редакторе создал файл Proba2.hal
в него вставил:
loadrt and2 count=4
loadrt or2 count=2
loadrt not count=1

addf and2.0 servo-thread
addf and2.1 servo-thread
addf and2.2 servo-thread
addf and2.3 servo-thread
addf or2.0 servo-thread
addf or2.1 servo-thread
addf not.0 servo-thread

net mode motion.digital-out-00 => not.0.in and2.0.in1 and2.2.in1
net inv not.0.out => and2.1.in1 and2.3.in1
net p-step stepgen.3.step => and2.0.in0
net v-step stepgen.4.step => and2.1.in0
net p-dir stepgen.3.dir => and2.2.in0
net v-dir stepgen.4.dir => and2.3.in0
net pstep-sw and2.0.out => or2.0.in0
net vstep-sw and2.1.out => or2.0.in1
net pdir-sw and2.2.out => or2.1.in0
net vdir-sw and2.3.out => or2.1.in1

net sel-step or2.0.out => parport.0.pin-NN-out
net sel-dir or2.1.out => parport.0.pin-NN-out
после запустил EMC на что получил незамедлительно:
Proba2.hal:15: Pin 'stepgen.3.step' was already linked to signal 'astep'
10366
Значительно проще быть чуточку внимательней, чем долгое время пускать деньги на ветер
Аватара пользователя
Serb01
Опытный
Сообщения: 107
Зарегистрирован: 04 июн 2012, 09:58
Репутация: 17
Настоящее имя: Сергей Беседин
Откуда: Новокузнецк
Контактная информация:

Re: 4-я ось - позиция/скорость

Сообщение Serb01 »

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

Re: 4-я ось - позиция/скорость

Сообщение Nick »

Serb01 писал(а):Proba2.hal:15: Pin 'stepgen.3.step' was already linked to signal 'astep'
В твоем основном hal файле этот пин уже подключен ... поэтому выходит ошибка.
Нужно либо в нем отключить этот пин, или сделать unlinkp stepgen.3.step....

хотя... тут похоже все не правильно, так работать не будет, все функции addf and2.0 и прочие работают в servo-thread а stepgen в base-thread. Надо лучше через mux2 делать.

Давай еще раз уточним, у тебя такая же ситуация, у тебя есть 4-я ось, на ней стоит шаговик и ты хочешь управлять ей в двух режимах, в режиме положения и в режиме скорости (как шпинделем). Так?

ЗЫ скинь на всякий случай полностью свой hal и ini (можешь просто присоединить файлы к сообщению )
Аватара пользователя
Serb01
Опытный
Сообщения: 107
Зарегистрирован: 04 июн 2012, 09:58
Репутация: 17
Настоящее имя: Сергей Беседин
Откуда: Новокузнецк
Контактная информация:

Re: 4-я ось - позиция/скорость

Сообщение Serb01 »

Здравствуйте!
Да станок 4-х осевой. 4-я ось поворотная - хотелось-бы программно переключать её в режим скорости.
Вложения
Proba2.hal
(24 байт) 1207 скачиваний
Proba1.hal
(4.23 КБ) 1232 скачивания
Proba1.ini
(2.01 КБ) 1227 скачиваний
Значительно проще быть чуточку внимательней, чем долгое время пускать деньги на ветер
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: 4-я ось - позиция/скорость

Сообщение Nick »

Изменения в hal

loadrt stepgen step_type=0,0,0,0,0 ctrl_type=p,p,p,p,v

.....

setp stepgen.4.position-scale [AXIS_3]SCALE
setp stepgen.4.steplen 1
setp stepgen.4.stepspace 0
setp stepgen.4.dirhold 35000
setp stepgen.4.dirsetup 35000
setp stepgen.4.maxaccel [AXIS_3]STEPGEN_MAXACCEL

net avel-cmd <= motion.analog-out-00
net avel-cmd => stepgen.4.velocity-cmd
net avel-step <= stepgen.4.step
net avel-dir <= stepgen.4.dir

похоже, что переключать пины вывода на уровне hal просто так не получится :(. Либо нужно переписывать компонент mux2, чтобы он работал с битовыми пинами и не требовал floating point thread либо придется написать маленький скрипт. Я думаю скрипт будет проще и в итогде работать должно стабильнее, т.к. не будет перегружать base thread.

Итак, нам нужен скритп, который будет выбирать пины вывода со stepgen.3 или stepgen.4.

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

#включаем управление скоростью:
# отключаем пины LPT порта 
halcmd unlinkp parport.0.pin-09-out
halcmd unlinkp parport.0.pin-05-out

# подключаем их к stepgen.4
halcmd net avev-dir => parport.0.pin-09-out
halcmd net avel-step => parport.0.pin-05-out
halcmd setp stepgen.4.enable 1
exit 0

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

#включаем управление положением:
halcmd setp stepgen.4.enable 0
# отключаем пины LPT порта 
halcmd unlinkp parport.0.pin-09-out
halcmd unlinkp parport.0.pin-05-out

# подключаем их к stepgen.3
halcmd net adir => parport.0.pin-09-out
halcmd net astep => parport.0.pin-05-out
exit 0
Сохраняем эти скрипты в файлы с названиями M101 и M102 в каталог с ini. Выполняем chmod u+x M101 M102 для того, чтобы эти файлы стали исполняемыми.

Теперь если написать в Gкоде M101 включится режим скорости, M102 - режим положения. Управление скоростью настроено через motion.analog-out-00, а он управляется из Gкода через код M68 E0 Q[значение].

Как-то так. Попробуй все это сделать. По результатам пиши, наверняка с первого раза не заработает :freak: , но мы все исправим :).

ini изменять вроде не нужно, измененный hal в приложении, а второй хал вроде тоже не нужен.
Вложения
Proba1.hal
(4.59 КБ) 971 скачивание
Аватара пользователя
Serb01
Опытный
Сообщения: 107
Зарегистрирован: 04 июн 2012, 09:58
Репутация: 17
Настоящее имя: Сергей Беседин
Откуда: Новокузнецк
Контактная информация:

Re: 4-я ось - позиция/скорость

Сообщение Serb01 »

Nick спасибо большое за информацию!
Завтра выходной - буду пробовать.
Значительно проще быть чуточку внимательней, чем долгое время пускать деньги на ветер
Аватара пользователя
Serb01
Опытный
Сообщения: 107
Зарегистрирован: 04 июн 2012, 09:58
Репутация: 17
Настоящее имя: Сергей Беседин
Откуда: Новокузнецк
Контактная информация:

Re: 4-я ось - позиция/скорость

Сообщение Serb01 »

Nick извини за глупый вопрос:
Nick писал(а):Выполняем chmod u+x M101 M102 д
-это в терминале в дериктории /home/user/emc2/Proba1 выполнить эту команду?
Линух установил недавно поэтому плаваю во всём.
Значительно проще быть чуточку внимательней, чем долгое время пускать деньги на ветер
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: 4-я ось - позиция/скорость

Сообщение nkp »

Serb01 писал(а):Линух установил недавно поэтому плаваю во всём.
ПКМ по файлу--свойства--права--галочку"разрешить исполн файл как прог"
Аватара пользователя
Serb01
Опытный
Сообщения: 107
Зарегистрирован: 04 июн 2012, 09:58
Репутация: 17
Настоящее имя: Сергей Беседин
Откуда: Новокузнецк
Контактная информация:

Re: 4-я ось - позиция/скорость

Сообщение Serb01 »

Заменил файл Proba1.hal в текстовом редакторе создал 2 файла М101 и М102 вставил скрипты для включения режима управлением скоростью в файл М101, для включения режима управления положением в файл М102. После этого в терминале в директории /home/user/emc2/Proba выполнил chmod u+x M101 M102.
Запустил EMC2 появилась ошибка: неизвестная команда в строке 1 файла Proba1.hal - исправил строку, EMC2 запустилась, но на команду M101 ругается - Неизвестная М команда - может её нужно в каком-нибудь .ini прописать?
Значительно проще быть чуточку внимательней, чем долгое время пускать деньги на ветер
Аватара пользователя
Serb01
Опытный
Сообщения: 107
Зарегистрирован: 04 июн 2012, 09:58
Репутация: 17
Настоящее имя: Сергей Беседин
Откуда: Новокузнецк
Контактная информация:

Re: 4-я ось - позиция/скорость

Сообщение Serb01 »

nkp писал(а):ПКМ по файлу--свойства--права--галочку"разрешить исполн файл как прог"
nkp - спасибо!
Значительно проще быть чуточку внимательней, чем долгое время пускать деньги на ветер
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: 4-я ось - позиция/скорость

Сообщение nkp »

1. проверить стал ли файл исполняемым:
(ПКМ по файлу--свойства--права--галочку"разрешить исполн файл как прог") -должна стоять указан галочка
2. после любых изменений в М-файлах перезапускать емс
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: 4-я ось - позиция/скорость

Сообщение nkp »

первая строка в М-файле :

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

#!/bin/sh
или:

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

#!/bin/bash
Аватара пользователя
Serb01
Опытный
Сообщения: 107
Зарегистрирован: 04 июн 2012, 09:58
Репутация: 17
Настоящее имя: Сергей Беседин
Откуда: Новокузнецк
Контактная информация:

Re: 4-я ось - позиция/скорость

Сообщение Serb01 »

nkp писал(а):1. проверить стал ли файл исполняемым:(ПКМ по файлу--свойства--права--галочку"разрешить исполн файл как прог") -должна стоять указан галочка2. после любых изменений в М-файлах перезапускать емс
Галочка стоит.
nkp писал(а):первая строка в М-файле :

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

#!/bin/sh
или:

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

#!/bin/bash
Перезапускаю EMC2 - ругается на М101 и М102
Значительно проще быть чуточку внимательней, чем долгое время пускать деньги на ветер
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: 4-я ось - позиция/скорость

Сообщение nkp »

регается уже при запуске или при исполнении ж-кода?
где лежат М-файлы (я ложу в nc_files)
Аватара пользователя
Serb01
Опытный
Сообщения: 107
Зарегистрирован: 04 июн 2012, 09:58
Репутация: 17
Настоящее имя: Сергей Беседин
Откуда: Новокузнецк
Контактная информация:

Re: 4-я ось - позиция/скорость

Сообщение Serb01 »

Пытаюсь выполнить MDI
Значительно проще быть чуточку внимательней, чем долгое время пускать деньги на ветер
Ответить

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