ClassicLadder (CL)

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Alex-Shamilich
Новичок
Сообщения: 18
Зарегистрирован: 30 мар 2015, 10:05
Репутация: 14
Настоящее имя: Alex Shamilich
Откуда: Москва
Контактная информация:

Re: ClassicLadder (CL)

Сообщение Alex-Shamilich »

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

Re: ClassicLadder (CL)

Сообщение nkp »

Alex-Shamilich писал(а):А может ли кто-то совсем на пальцах реальные (не абстрактно-тестовые) применения этого дела привести?
можно и на пальцах - но думаю это будет не во всех случаях понятно , и от того не интересно...
потому как ладдер - это упрощенно - релейные схемы (попродвинутей немного только)))
вот если бы у тебя появились конкретные задачи - тогда можно было бы продемонстрировать "выгоду" CL ;)
а так,как самый простой вариант , реально работающий на станках - смена инструмента на токарнике (поворотная голова на 6-8 инструментов)
эти примеры CL на форуме присутствуют...
=============
ну а совсем-совсем на пальцах:
вот стоит задача:
как закончиться программа , включить через 3 секунды ,ну допустим ,лампочку на 5 секунд...
можно это решить и в "железе" , но с CL это реализуется за пару минут:
Выделение_080.png (4824 просмотра) <a class='original' href='./download/file.php?id=48215&sid=13aca7a494d2bb2c96981a6240524da9&mode=view' target=_blank>Загрузить оригинал (101.41 КБ)</a>
в хал
коммутируем пин halui.program.is-running (пин показывает , что программа выполняется) с входом нашей схемы %I0 (в хал это
будет пин classicladder.0.in-00 )
а выход %Q0 (в хал это будет пин classicladder.0.out-00 ) коммутируем ,ну допустим ,в выходом парпорта parport.0.pin-03-out ,
на который вешаем реле с лампочкой...
пример конечно бесполезный , да еще и с ошибкой :hehehe: , но отвечает требованию - "на пальцах" :freak:
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: ClassicLadder (CL)

Сообщение nkp »

Alex-Shamilich писал(а): (не абстрактно-тестовые)
а реальные...
ну вот ,к примеру работает такая у меня схемка:
Выделение_081.png (4823 просмотра) <a class='original' href='./download/file.php?id=48216&sid=13aca7a494d2bb2c96981a6240524da9&mode=view' target=_blank>Загрузить оригинал (66.4 КБ)</a>
но даже если опишу что да куда - это будет не совсем понятно и совсем не интересно...
так что ,имхо,лучше ставить свои задачи и пробовать их воплотить в CL...
а если что не получается - тут завсегда можно получить помощь...
Аватара пользователя
Alex-Shamilich
Новичок
Сообщения: 18
Зарегистрирован: 30 мар 2015, 10:05
Репутация: 14
Настоящее имя: Alex Shamilich
Откуда: Москва
Контактная информация:

Re: ClassicLadder (CL)

Сообщение Alex-Shamilich »

Спасибо за обстоятельный ответ :)

Про релейные схемы я вроде понял. Как скогфигурировать HAL в целом тоже понятно. Раньше даже мог более менее понять как работает механическая АТС в дотранзисторные времена.
Сейчас вот столкнулся с проблемой - мануал читаю, вроде инструмент есть, интерсный, но куда и зачем его реально прикрутить/использовать пока не соображу.
То что я чего то пока не вижу совсем не значит что этого нет :)

Т.е. в итоге получается инструмент для автоматизации чего-то, в зависимости от чего то еще.
Конвейерную линию какую-нибудь автоматизировать - да вполне, а для пока хобби-домашних мелких задач - оно нужно ?
plotik
Мастер
Сообщения: 428
Зарегистрирован: 10 май 2012, 15:30
Репутация: 33
Настоящее имя: Евгений
Откуда: Rostov-on-Don
Контактная информация:

Re: ClassicLadder (CL)

Сообщение plotik »

nkp писал(а):.Пользуем 0.8.010:
classicladder-0.8.010.zip
добавил в шапку
А как в debian we... установить и связать с реалтаймом(linuxcnc)?
"Ты не дрыгайся! Показывай свою гравицаппу. Если фирменная вещь — возьмём!"
"А этот паца́к все время говорит на языках, продолжения которых не знает!"
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: ClassicLadder (CL)

Сообщение nkp »

plotik писал(а):А как в debian we... установить и связать с реалтаймом(linuxcnc)?
в linuxcnc classicladder есть по умолчанию...
в хал файл прописываешь примерно такие строки:

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

loadrt classicladder_rt numPhysInputs=15 numPhysOutputs=15 numS32in=10 numS32out=10 numFloatIn=10 numFloatOut=10
loadusr classicladder твой_файл_ладдера.clp
addf classicladder.0.refresh servo-thread
------------------
или ты про что то другое?
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: ClassicLadder (CL)

Сообщение Lexxa »

nkp писал(а):loadrt classicladder_rt numPhysInputs=15 numPhysOutputs=15 numS32in=10 numS32out=10 numFloatIn=10 numFloatOut=10
loadusr classicladder твой_файл_ладдера.clp
addf classicladder.0.refresh servo-thread
Вопрос такой.
Команда "loadrt" загружает компонент HAL реального времени. Функции компонента реального времени должны быть добавлены в поток, чтобы они обновлялись со скоростью потока. Вы не можете загрузить компонент пользовательского пространства в пространство реального времени.

Команда "loadusr" компонент HAL пользовательского пространства. Программы пользовательского пространства это отдельные процессы, который опционально может общаться с другими компонентами HAL через пины и параметры. Вы не можете загрузить компоненты реального времени в пользовательское пространство.

Теперь, что такое classicladder_rt и classiclader?

Я правильно понимаю, что программа ЭА работает не в real-time, а работает в пользовательском пространстве?
upd:
Если SERVO_PERIOD = 1000000 нс, то servo-thread = 1000000*10^-9 с = 0.001 c = 1 мкс?
"loadusr classicladder custom.clp" загрузит программу custom.clp "когда нибудь" и будет выполнять ее каждый интервал servo_thread, т.е. 1 мкс, но поскольку это не компонент RT, то могут быть "зависания"?
Последний раз редактировалось Lexxa 18 ноя 2015, 10:36, всего редактировалось 1 раз.
:bender:
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: ClassicLadder (CL)

Сообщение nkp »

компонент CL работает в реалтайме...
его же GUI - нет...
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: ClassicLadder (CL)

Сообщение Lexxa »

Lexxa писал(а):upd:
Если SERVO_PERIOD = 1000000 нс, то servo-thread = 1000000*10^-9 с = 0.001 c = 1 мкс?
"loadusr classicladder custom.clp" загрузит программу custom.clp "когда нибудь" и будет выполнять ее каждый интервал servo_thread, т.е. 1 мкс, но поскольку это не компонент RT, то могут быть "зависания"?
:bender:
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: ClassicLadder (CL)

Сообщение nkp »

Lexxa писал(а): но поскольку это не компонент RT
мы не можем строить предположения на ложном высказывании :)
CL - реалтайм компонент...
мы можем загрузить его ,со всеми объявленными элементами(на скрине обведены) без строки
loadusr ...
имхо,этой строкой мы единожды загружаем пользовательский файл соеденений элементов CL(схему)
кстати ,время выполнения всех секций мы можем наблюдать в верхнем правом углу gui
Выделение_062.png (4404 просмотра) <a class='original' href='./download/file.php?id=63867&sid=13aca7a494d2bb2c96981a6240524da9&mode=view' target=_blank>Загрузить оригинал (136.42 КБ)</a>
Последний раз редактировалось nkp 18 ноя 2015, 11:27, всего редактировалось 1 раз.
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: ClassicLadder (CL)

Сообщение Lexxa »

nkp писал(а): верхнем правом углу gui
classicladder.0.refresh FP
The rung update rate. Add this to the servo thread. You can added it to a faster thread but it Will update no faster than once every 1 millisecond (1000000 ns).
по идее там должна быть 1 мс если

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

classicladder.0.refresh servo_thread
:bender:
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: ClassicLadder (CL)

Сообщение nkp »

Lexxa писал(а):по идее там должна быть 1 мс
в таком случае - когда выполнять другие компоненты?
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

Re: ClassicLadder (CL)

Сообщение solo »

чета попробовал ладдер все понравилось и почти получило , только вот при загрузке в LinuxCNC ладдера увидил, что все пины (входные, выходные) формата S32, а мне надо чтоб были БИТ , это все пины нада конвертировать в хел файле в бит или можно изменить в настройках ладдера чтобы все пины были "бит"
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: ClassicLadder (CL)

Сообщение nkp »

solo писал(а): все пины (входные, выходные) формата S32, а мне надо чтоб были БИТ
БИТ - это самые распространенные пины ладдера :
%I0 входы --||-- classicladder.0.in-00
%Q0 выходы --()-- classicladder.0.out-00
===============
S32 пины в хал имеют вид :
%W0 вход classicladder.0.s32in.00

%W0 выход classicladder.0.s32out.00
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

Re: ClassicLadder (CL)

Сообщение solo »

спасибо
просто когда запустил ладдер в LinuxCNC и посмотрел пины classicladder то понял что пины S32 и бит создаются ладдером все автоматически не зависимо от того используютя ли эти пины в схеме ладдера или нет
Как только ладдер облегчает процесс расширения возможностей LinuxCNC :good: :cheesy:
MGG
Мастер
Сообщения: 3673
Зарегистрирован: 08 фев 2016, 16:33
Репутация: 1010
Настоящее имя: Манн Геннадий Геннадьевич
Откуда: Москва
Контактная информация:

Re: ClassicLadder (CL)

Сообщение MGG »

Прочитал тему, мало что понял, попробовал снова, ситуация повторилась.
Подскажите как через CL укзать, что датчик нормально замкнутый? (в моем контроллере этой команды нет, изготовитель говорит, можно попробовать через CL)
http://www.cnc-club.ru/forum/viewtopic. ... 76#p304076 Поставки оборудования для ваших станков
https://www.instagram.com/dtw.moscow/
dtw.moscow@gmail.com
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

Re: ClassicLadder (CL)

Сообщение solo »

MGG писал(а):Подскажите как через CL укзать, что датчик нормально замкнутый?
наверное через CL не как не узнать (хота межет и можно но я не знаю ) , узнать состояние датчика можно если запустить чпу и зайти в станок - хал метр , или показать установки хел и там выбрать нужный пин и посмотреть в каком состоянии пин сейчас находится , а как по мне если просто надо инвертировать пин то проще это сделать используя компонент нот Re: EMC2 Integrators Manual Перевод на русский язык #37
MGG
Мастер
Сообщения: 3673
Зарегистрирован: 08 фев 2016, 16:33
Репутация: 1010
Настоящее имя: Манн Геннадий Геннадьевич
Откуда: Москва
Контактная информация:

Re: ClassicLadder (CL)

Сообщение MGG »

solo писал(а):аверное через CL не как не узнать (хота межет и можно но я не знаю ) , узнать состояние датчика можно если запустить чпу и зайти в станок - хал метр , или показать установки хел и там выбрать нужный пин и посмотреть в каком состоянии пин сейчас находится , а как по мне если просто надо инвертировать пин то проще это сделать используя компонент нот Re: EMC2 Integrators Manual Перевод на русский язык #37
Спасибо! Ковыряю этот компонент, вечером попробую.
http://www.cnc-club.ru/forum/viewtopic. ... 76#p304076 Поставки оборудования для ваших станков
https://www.instagram.com/dtw.moscow/
dtw.moscow@gmail.com
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

Re: ClassicLadder (CL)

Сообщение solo »

в хел файл добавь вот так если мне память не изменяет

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

#загружаешь компонент 
loadrt not count=1 

#добавляем компонент в сервоцикл , чтоб работал в LinuxCNC 
addf not.0 servo-thread

# соединяем пин входа "нет" с датчиком 
net not_in not.0.in 
net not_in (через пробел пин куда подключен датчик)

# соединаем пин выхода"нет" с входом LinuxCNC 
net not_out not.0.out 
net not_out (через пробел пишеш куда в LinuxCNC заводишь сигнал с датчика )
jo_key
Почётный участник
Почётный участник
Сообщения: 262
Зарегистрирован: 19 сен 2011, 14:49
Репутация: 30
Настоящее имя: Евгений
Откуда: Украина, Харьков
Контактная информация:

Re: ClassicLadder (CL)

Сообщение jo_key »

%IFxx - Word memory xx (Float in pin) (converted to S32 in Classic Ladder)

Это, что получается, о нормальной работе с плавающей точкой можно забыть? (((
Ответить

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