Страница 1 из 1

Мигание диодом через LINUX CNC

Добавлено: 03 июн 2015, 09:23
chepe1988
Доброе утро товарищи.
1) Пытаюсь помигать диодом с LPT.
Запускаю через консоль halcmd следующее:

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

# components
loadrt trivkins 
loadrt probe_parport 
loadrt hal_parport cfg="0x378 out" 
loadrt stepgen step_type=0 ctrl_type=v
loadrt threads name1=fast fp1=0 period1=50000 name2=slow period2=1000000
# pin aliases
# param aliases
# signals
# nets
net proba2 => parport.0.pin-02-out
net proba2 <= stepgen.0.dir
# parameter values
setp parport.0.debug1   0x00000000
setp parport.0.debug2   0x00000000
setp parport.0.pin-01-out-invert        FALSE
setp parport.0.pin-01-out-reset        FALSE
setp parport.0.pin-02-out-invert        FALSE
setp parport.0.pin-02-out-reset        FALSE
setp parport.0.pin-03-out-invert        FALSE
setp parport.0.pin-03-out-reset        FALSE
setp parport.0.pin-04-out-invert        FALSE
setp parport.0.pin-04-out-reset        FALSE
setp parport.0.pin-05-out-invert        FALSE
setp parport.0.pin-05-out-reset        FALSE
setp parport.0.pin-06-out-invert        FALSE
setp parport.0.pin-06-out-reset        FALSE
setp parport.0.pin-07-out-invert        FALSE
setp parport.0.pin-07-out-reset        FALSE
setp parport.0.pin-08-out-invert        FALSE
setp parport.0.pin-08-out-reset        FALSE
setp parport.0.pin-09-out-invert        FALSE
setp parport.0.pin-09-out-reset        FALSE
setp parport.0.pin-14-out-invert        FALSE
setp parport.0.pin-14-out-reset        FALSE
setp parport.0.pin-16-out-invert        FALSE
setp parport.0.pin-16-out-reset        FALSE
setp parport.0.pin-17-out-invert        FALSE
setp parport.0.pin-17-out-reset        FALSE
setp parport.0.read.tmax            0
setp parport.0.reset-time   0x00001388
setp parport.0.reset.tmax            0
setp parport.0.write.tmax            0
setp parport.read-all.tmax            0
setp parport.write-all.tmax            0
# realtime thread/function links
addf stepgen.update-freq slow
addf stepgen.make-pulses fast
addf parport.0.write fast
Затем запускаю потоки с помощью start.
Мигаю светодиодом посредством изменения вручную setp parport.0.pin-02-out-invert со значения FALSE на TRUE - работает.
Но совершенно не понятно а как можно автоматизировать этот процесс?
Как программно мигать без моего участия?

2) Совершенно не понимаю как G-код перевести в генерацию сигналов на pin.
То есть хочу выполнить какой-нибудь G-код и увидеть по светодиоду, что он выполняется.

Re: Мигание диодом через LINUX CNC

Добавлено: 03 июн 2015, 10:20
verser
chepe1988 писал(а):..Совершенно не понимаю как G-код перевести в генерацию сигналов на pin.
То есть хочу выполнить какой-нибудь G-код и увидеть по светодиоду, что он выполняется.
Берем, например, виртуальный пин digital-out №0, соединяем

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

net dout-00 motion.digital-out-00 => parport.0.pin-02-out-invert 
тогда, не вдаваясь в подробности какой физический уровень является логическим нулем,
из g-code управляем так
M64 P0 - включит диод
M65 P0 - выключит

Re: Мигание диодом через LINUX CNC

Добавлено: 03 июн 2015, 13:24
chepe1988
А как мне запустить этот G-код?
Просто вбить его в консоли?

Re: Мигание диодом через LINUX CNC

Добавлено: 03 июн 2015, 14:10
NightV
где ты видел чтобы Gcode запускали из консоли?
это обычный код программы, типа G1 G0

Re: Мигание диодом через LINUX CNC

Добавлено: 03 июн 2015, 15:57
chepe1988
Откуда я могу запустить его не используя сторонних приложений?
Другими словами как мне запустить функцию интерпретатора G-кода, которая переведёт его в последовательность импульсов.

Re: Мигание диодом через LINUX CNC

Добавлено: 03 июн 2015, 17:19
Nick
Вообще стандартный способ мигания пином - компонент siggen.
http://linuxcnc.org/docs/2.5/html/man/m ... gen.9.html

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

loadrt siggen 
addf siggen.0.update servo-thread
Пин siggen.N.clock bit out будет моргать на частоте siggen.N.frequency float in Гц

А какая общая задача? Сдается мне это не самое главное диодом моргать....

Re: Мигание диодом через LINUX CNC

Добавлено: 03 июн 2015, 17:42
chepe1988
С siggen тоже пробовал помигать светодиодом. Но почему-то ничего не вышло с ним. Возможно потому, что я не выставил frequency, а оставил всё по умолчанию.
Пробный код для siggen приведу позже, так как удалил его.
Хочу управлять шаговым двигателем в последствии, а потом можно над чем-нибудь более серьёзным задуматься.

Готовые программы совершенно не дают мне понимания, что происходит. Как G-код переводится в последовательность, и как определяется сколько времени генерировать сигналы.

Re: Мигание диодом через LINUX CNC

Добавлено: 03 июн 2015, 17:43
tooshka
Я так понимаю человек ПЛК из Лснс делает? Интересно!

Re: Мигание диодом через LINUX CNC

Добавлено: 03 июн 2015, 17:46
Nick
chepe1988 писал(а):Хочу управлять шаговым двигателем
Ага, уже лучше, для шаговиков есть stepgen:
http://linuxcnc.org/docs/2.5/html/man/m ... gen.9.html
chepe1988 писал(а):Готовые программы совершенно не дают мне понимания, что происходит. Как G-код переводится в последовательность, и как определяется сколько времени генерировать сигналы.
Все определяется настройками, открывай стандартную конфигурацию на три оси и смотри. Там все прописано, скорости, ускорения, длины сигналов.

А по поводу Gкода - так это отдельная тема, иго интерпретирует интерпретатор, вычисляет траекторию, потом планировщик вычисялет скорости и выдает задания приводам.

А какая всетаки самая конечная задача?

Re: Мигание диодом через LINUX CNC

Добавлено: 03 июн 2015, 19:04
Serg
tooshka писал(а):Я так понимаю человек ПЛК из Лснс делает? Интересно!
Больше похоже на то, что из LinuxCNC пытается сделать LinuxCNC старательно избегая использования штатных функций...

Re: Мигание диодом через LINUX CNC

Добавлено: 03 июн 2015, 19:32
torvn77
tooshka писал(а):Я так понимаю человек ПЛК из Лснс делает? Интересно!
Чего тут интересного или не обычного,я это понял как только конфигурацию hal'а выучил.

Re: Мигание диодом через LINUX CNC

Добавлено: 07 июн 2015, 22:29
chepe1988
verser, Nick - спасибо огромное - получилось мигать вашими способами.
Запускал G-код через StepConf.

Re: Мигание диодом через LINUX CNC

Добавлено: 08 июн 2015, 13:20
Nick
chepe1988 писал(а):Запускал G-код через StepConf.
Интересно, как ты умудрился Gкод через stepconf запустить? :)

ЗЫ если ты таким образом хотел увидеть как мигает диод воткнутый в LPT - то так скорее всего ничего не увидишь, только если воткнуть его в пин dir, т.к. step включается только на 0,0005с или около того...