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

Re: ClassicLadder (CL)

Добавлено: 07 апр 2017, 07:25
nkp
jo_key писал(а):о нормальной работе
но всегда остается "ненормальная" ))
а это лучше чем ничего ;)
а если ее называть "нормальной" ,то и проблема исчезает :)

Re: ClassicLadder (CL)

Добавлено: 11 апр 2017, 10:30
jo_key
да, согласен, модно и scale-ом компенсировать

Re: ClassicLadder (CL)

Добавлено: 08 июн 2017, 12:46
mikehv
Подскажите люди. Делаю автосмену заготовок для одного станка. Управление пневмоцилиндрами и одной рабочей осью. Если с цилиндрами все элементарно, то вот с осью засада. Как из ладдера заставить сместиться ось Z в нужную координату? Или придется делать компонент HAL? Вот этого ни разу не делал.
И еще не определился с М кодом. Заготовок по сути бесконечное количество. Думал использовать М60.

Re: ClassicLadder (CL)

Добавлено: 08 июн 2017, 13:04
Serg
Из CL скорее всего никак.
Просто в HAL несложно:
на входы mux подаёшь значения координат куда надо перемещаться, управляющим входом будешь их переключать (например из CL), выход mux подаёшь на вход limit3, которым ограничиваешь скорость и ускорение, выход limit3 на вход pid или stepgen...

Re: ClassicLadder (CL)

Добавлено: 08 июн 2017, 13:56
mikehv
UAVpilot писал(а):на входы mux подаёшь значения координат куда надо перемещаться, управляющим входом будешь их переключать (например из CL), выход mux подаёшь на вход limit3, которым ограничиваешь скорость и ускорение, выход limit3 на вход pid или stepgen...
Ок спасибо. сейчас поковыряю.

Re: ClassicLadder (CL)

Добавлено: 08 июн 2017, 17:43
mikehv
Как то не очень понятно. Можете для примера строчку написать? С остальным вроде нормально получается. Меняю через М6Т0. По идее надо еще сигнал когда ось доедет до позиции.

Re: ClassicLadder (CL)

Добавлено: 09 июн 2017, 01:57
Serg

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

setp mux2.0.in0 10
setp mux2.0.in1 100
net M6T0 mux2.0.sel

net coord mux2.0.out => limit3.0.in

setp limit3.0.maxv VVVVV
setp limit3.0.maxa AAAAA

net cmd limit3.0.out => pid.0.command near.0.in1

net fb => pid.0.feedback near.0.in2

net in-position <= near.0.out
Как-то так. Не проверял и мелкие подробности опустил.

Re: ClassicLadder (CL)

Добавлено: 09 июн 2017, 10:35
mikehv
У меня управление через stepgen. При попытке подключить выход limit3 к stepgen.2.position-cmd естественным образом ругается, т.к. он уже подключен. Как это можно обойти?
Попробовал объединить через or2, но ругается т.к. тип сигнала float.

Re: ClassicLadder (CL)

Добавлено: 09 июн 2017, 13:06
Serg
Я не понял сразу, подумал, что разговор про совсем отдельную ось.
Если это обычная ось Z, то нужно переопределить M6 и внутри перемещать её обычными G0/G1.

Re: ClassicLadder (CL)

Добавлено: 09 июн 2017, 13:18
mikehv
У меня по М6 запускается программа Ладдера. С этим можно совместить? Есть еще MDI COMMАND может это можно использовать?
И как переопределить?

Re: ClassicLadder (CL)

Добавлено: 09 июн 2017, 13:26
Serg
mikehv писал(а):С этим можно совместить?
Да.
mikehv писал(а):Есть еще MDI COMMАND может это можно использовать?
MDI не работает при выполнении УП.
mikehv писал(а):И как переопределить?
http://linuxcnc.org/docs/2.7/html/remap/remap.html

Re: ClassicLadder (CL)

Добавлено: 09 июн 2017, 14:15
mikehv
Тоесть придется писать скрипт на Python?

Re: ClassicLadder (CL)

Добавлено: 09 июн 2017, 14:47
Сергей Саныч
mikehv писал(а):Тоесть придется писать скрипт на Python?
Не обязательно. Часто бывает достаточно подпрограммы в G-кодах.

Re: ClassicLadder (CL)

Добавлено: 09 июн 2017, 14:54
mikehv
А как это будет выглядеть? Для примера допустим надо ось Z довести до координаты 150.0 . Включается это движение пином из ладдера. По достижении позиции в ладдер желательно сигнал подать, хотя можно и по таймеру это сделать.
Уже голова кипит от информации. Ничего конкретного не могу найти.
Причем просто подпрограмму сделать для движения цилиндров и осей можно, но есть еще концевик и как его сигнал обработать G кодами ума не приложу

Re: ClassicLadder (CL)

Добавлено: 09 июн 2017, 16:19
Serg
Из G-кода можно читать и писать HAL-пины: M62 - M68.

Re: ClassicLadder (CL)

Добавлено: 10 июн 2017, 12:32
mikehv
Сделал через М62-68. Всем спасибо. Очень все просто оказалось. Единственный момент, такое ощущение, что программа не построчно выполняется, а вся сразу. Может синтаксис нарушен у меня.

Re: ClassicLadder (CL)

Добавлено: 04 янв 2019, 21:46
nkp
есть в жкодах емс очень нужная конструкция:

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

    M66 P1 L3 Q3 ;
    O151 if [#5399 LT 0]
        (abort, ожидалось:  ИМ)
    O151 endif
есть потребность "перевести" это на "язык" Hal (ладдер как вариант)
----------------
конструкций таких подряд с десяток , нужен и функционал и идентификация ошибок...

Re: ClassicLadder (CL)

Добавлено: 05 янв 2019, 01:55
Serg
А по русски можно написать с какого момента начинать ждать и что делать если случилось и что если не случилось?

Re: ClassicLadder (CL)

Добавлено: 05 янв 2019, 12:13
nkp
такая конструкция вроде выполняет то же самое:
Выделение_167.png (3700 просмотров) <a class='original' href='./download/file.php?id=153737&mode=view' target=_blank>Загрузить оригинал (71.8 КБ)</a>
================
B1-Q0 - включаем узел
подтверждение ждем (тамер ) на I0
если не дожидаемся - активируется Q1
с него наверно (учитывая,что подобных блоков будет много)нужно будет брать сигнал на компонент message
http://linuxcnc.org/docs/2.7/html/man/m ... age.9.html
здесь ,пожалуй,самое большое неудобство ;)
==============
если сигнал подтверждения пришел уже после таймаута, все равно ничего не включится(Q1 на самоподхвате)