ClassicLadder (CL)

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.

Re: ClassicLadder (CL)

Сообщение Alex-Shamilich » 16 апр 2015, 22:08

Вопрос к знатокам - прочитал описания ладдера и по русски, и по нерусски. Принцип понял, но не могу толком понять чего с этим делать в рамках домашнего 4D станка.
А может ли кто-то совсем на пальцах реальные (не абстрактно-тестовые) применения этого дела привести?
Аватара пользователя
Alex-Shamilich
Новичок
 
Сообщения: 18
Зарегистрирован: 30 мар 2015, 10:05
Откуда: Москва
Репутация: 14
Настоящее имя: Alex Shamilich

Re: ClassicLadder (CL)

Сообщение nkp » 16 апр 2015, 22:38

Alex-Shamilich писал(а):А может ли кто-то совсем на пальцах реальные (не абстрактно-тестовые) применения этого дела привести?

можно и на пальцах - но думаю это будет не во всех случаях понятно , и от того не интересно...
потому как ладдер - это упрощенно - релейные схемы (попродвинутей немного только)))
вот если бы у тебя появились конкретные задачи - тогда можно было бы продемонстрировать "выгоду" CL ;)
а так,как самый простой вариант , реально работающий на станках - смена инструмента на токарнике (поворотная голова на 6-8 инструментов)
эти примеры CL на форуме присутствуют...
=============
ну а совсем-совсем на пальцах:
вот стоит задача:
как закончиться программа , включить через 3 секунды ,ну допустим ,лампочку на 5 секунд...
можно это решить и в "железе" , но с CL это реализуется за пару минут:
ClassicLadder (CL) Выделение_080.png

в хал
коммутируем пин halui.program.is-running (пин показывает , что программа выполняется) с входом нашей схемы %I0 (в хал это
будет пин classicladder.0.in-00 )
а выход %Q0 (в хал это будет пин classicladder.0.out-00 ) коммутируем ,ну допустим ,в выходом парпорта parport.0.pin-03-out ,
на который вешаем реле с лампочкой...
пример конечно бесполезный , да еще и с ошибкой :hehehe: , но отвечает требованию - "на пальцах" :freak:
nkp
Мастер
 
Сообщения: 7066
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1113
Медальки:

Re: ClassicLadder (CL)

Сообщение nkp » 16 апр 2015, 22:49

Alex-Shamilich писал(а): (не абстрактно-тестовые)

а реальные...
ну вот ,к примеру работает такая у меня схемка:
ClassicLadder (CL) Выделение_081.png

но даже если опишу что да куда - это будет не совсем понятно и совсем не интересно...
так что ,имхо,лучше ставить свои задачи и пробовать их воплотить в CL...
а если что не получается - тут завсегда можно получить помощь...
nkp
Мастер
 
Сообщения: 7066
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1113
Медальки:

Re: ClassicLadder (CL)

Сообщение Alex-Shamilich » 16 апр 2015, 23:39

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

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

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

Re: ClassicLadder (CL)

Сообщение plotik » 13 авг 2015, 15:35

nkp писал(а):.Пользуем 0.8.010:
classicladder-0.8.010.zip

добавил в шапку

А как в debian we... установить и связать с реалтаймом(linuxcnc)?
"Ты не дрыгайся! Показывай свою гравицаппу. Если фирменная вещь — возьмём!"
"А этот паца́к все время говорит на языках, продолжения которых не знает!"
plotik
Мастер
 
Сообщения: 360
Зарегистрирован: 10 май 2012, 15:30
Откуда: Rostov-on-Don
Репутация: 32
Настоящее имя: Евгений

Re: ClassicLadder (CL)

Сообщение nkp » 13 авг 2015, 15:47

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

------------------
или ты про что то другое?
nkp
Мастер
 
Сообщения: 7066
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1113
Медальки:

Re: ClassicLadder (CL)

Сообщение Lexxa » 18 ноя 2015, 10:22

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 раз.
Комната залита кровью, я занимаюсь любовью!
Аватара пользователя
Lexxa
Мастер
 
Сообщения: 2310
Зарегистрирован: 16 дек 2011, 16:48
Откуда: ryazan
Репутация: 226
Медальки:
Настоящее имя: Алексей

Re: ClassicLadder (CL)

Сообщение nkp » 18 ноя 2015, 10:30

компонент CL работает в реалтайме...
его же GUI - нет...
nkp
Мастер
 
Сообщения: 7066
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1113
Медальки:

Re: ClassicLadder (CL)

Сообщение Lexxa » 18 ноя 2015, 10:37

Lexxa писал(а):upd:
Если SERVO_PERIOD = 1000000 нс, то servo-thread = 1000000*10^-9 с = 0.001 c = 1 мкс?
"loadusr classicladder custom.clp" загрузит программу custom.clp "когда нибудь" и будет выполнять ее каждый интервал servo_thread, т.е. 1 мкс, но поскольку это не компонент RT, то могут быть "зависания"?
Комната залита кровью, я занимаюсь любовью!
Аватара пользователя
Lexxa
Мастер
 
Сообщения: 2310
Зарегистрирован: 16 дек 2011, 16:48
Откуда: ryazan
Репутация: 226
Медальки:
Настоящее имя: Алексей

Re: ClassicLadder (CL)

Сообщение nkp » 18 ноя 2015, 10:56

Lexxa писал(а): но поскольку это не компонент RT

мы не можем строить предположения на ложном высказывании :)
CL - реалтайм компонент...
мы можем загрузить его ,со всеми объявленными элементами(на скрине обведены) без строки
loadusr ...
имхо,этой строкой мы единожды загружаем пользовательский файл соеденений элементов CL(схему)
кстати ,время выполнения всех секций мы можем наблюдать в верхнем правом углу gui
ClassicLadder (CL) Выделение_062.png
Последний раз редактировалось nkp 18 ноя 2015, 11:27, всего редактировалось 1 раз.
nkp
Мастер
 
Сообщения: 7066
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1113
Медальки:

Re: ClassicLadder (CL)

Сообщение Lexxa » 18 ноя 2015, 11:12

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
Комната залита кровью, я занимаюсь любовью!
Аватара пользователя
Lexxa
Мастер
 
Сообщения: 2310
Зарегистрирован: 16 дек 2011, 16:48
Откуда: ryazan
Репутация: 226
Медальки:
Настоящее имя: Алексей

Re: ClassicLadder (CL)

Сообщение nkp » 18 ноя 2015, 11:22

Lexxa писал(а):по идее там должна быть 1 мс

в таком случае - когда выполнять другие компоненты?
nkp
Мастер
 
Сообщения: 7066
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1113
Медальки:

Re: ClassicLadder (CL)

Сообщение solo » 31 окт 2016, 19:18

чета попробовал ладдер все понравилось и почти получило , только вот при загрузке в LinuxCNC ладдера увидил, что все пины (входные, выходные) формата S32, а мне надо чтоб были БИТ , это все пины нада конвертировать в хел файле в бит или можно изменить в настройках ладдера чтобы все пины были "бит"
Аватара пользователя
solo
Мастер
 
Сообщения: 965
Зарегистрирован: 20 окт 2011, 18:39
Откуда: Украина Харьков
Репутация: 172
Настоящее имя: Юрий Соловьев

Re: ClassicLadder (CL)

Сообщение nkp » 31 окт 2016, 19:53

solo писал(а): все пины (входные, выходные) формата S32, а мне надо чтоб были БИТ

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

%W0 выход classicladder.0.s32out.00
nkp
Мастер
 
Сообщения: 7066
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1113
Медальки:

Re: ClassicLadder (CL)

Сообщение solo » 01 ноя 2016, 11:19

спасибо
просто когда запустил ладдер в LinuxCNC и посмотрел пины classicladder то понял что пины S32 и бит создаются ладдером все автоматически не зависимо от того используютя ли эти пины в схеме ладдера или нет
Как только ладдер облегчает процесс расширения возможностей LinuxCNC :good: :cheesy:
Аватара пользователя
solo
Мастер
 
Сообщения: 965
Зарегистрирован: 20 окт 2011, 18:39
Откуда: Украина Харьков
Репутация: 172
Настоящее имя: Юрий Соловьев

Re: ClassicLadder (CL)

Сообщение MGG » 01 дек 2016, 13:36

Прочитал тему, мало что понял, попробовал снова, ситуация повторилась.
Подскажите как через CL укзать, что датчик нормально замкнутый? (в моем контроллере этой команды нет, изготовитель говорит, можно попробовать через CL)
http://www.cnc-club.ru/forum/viewtopic.php?f=164&t=13246&p=304076#p304076 Поставки оборудования для ваших станков
MGG
Мастер
 
Сообщения: 1227
Зарегистрирован: 08 фев 2016, 16:33
Откуда: Москва
Репутация: 178
Настоящее имя: Манн Геннадий Геннадьевич

Re: ClassicLadder (CL)

Сообщение solo » 01 дек 2016, 15:44

MGG писал(а):Подскажите как через CL укзать, что датчик нормально замкнутый?

наверное через CL не как не узнать (хота межет и можно но я не знаю ) , узнать состояние датчика можно если запустить чпу и зайти в станок - хал метр , или показать установки хел и там выбрать нужный пин и посмотреть в каком состоянии пин сейчас находится , а как по мне если просто надо инвертировать пин то проще это сделать используя компонент нот Re: EMC2 Integrators Manual Перевод на русский язык #37
Аватара пользователя
solo
Мастер
 
Сообщения: 965
Зарегистрирован: 20 окт 2011, 18:39
Откуда: Украина Харьков
Репутация: 172
Настоящее имя: Юрий Соловьев

Re: ClassicLadder (CL)

Сообщение MGG » 01 дек 2016, 16:18

solo писал(а):аверное через CL не как не узнать (хота межет и можно но я не знаю ) , узнать состояние датчика можно если запустить чпу и зайти в станок - хал метр , или показать установки хел и там выбрать нужный пин и посмотреть в каком состоянии пин сейчас находится , а как по мне если просто надо инвертировать пин то проще это сделать используя компонент нот Re: EMC2 Integrators Manual Перевод на русский язык #37


Спасибо! Ковыряю этот компонент, вечером попробую.
http://www.cnc-club.ru/forum/viewtopic.php?f=164&t=13246&p=304076#p304076 Поставки оборудования для ваших станков
MGG
Мастер
 
Сообщения: 1227
Зарегистрирован: 08 фев 2016, 16:33
Откуда: Москва
Репутация: 178
Настоящее имя: Манн Геннадий Геннадьевич

Re: ClassicLadder (CL)

Сообщение solo » 01 дек 2016, 17:01

в хел файл добавь вот так если мне память не изменяет
Код: Выделить всёРазвернуть
#загружаешь компонент 
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 заводишь сигнал с датчика )
Аватара пользователя
solo
Мастер
 
Сообщения: 965
Зарегистрирован: 20 окт 2011, 18:39
Откуда: Украина Харьков
Репутация: 172
Настоящее имя: Юрий Соловьев

Re: ClassicLadder (CL)

Сообщение jo_key » 06 апр 2017, 15:16

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

Это, что получается, о нормальной работе с плавающей точкой можно забыть? (((
jo_key
Почётный участник
Почётный участник
 
Сообщения: 241
Зарегистрирован: 19 сен 2011, 14:49
Откуда: Украина, Харьков
Репутация: 30
Медальки:
Настоящее имя: Евгений

Пред.След.

Вернуться в LinuxCNC

Кто сейчас на конференции

Зарегистрированные пользователи: Alex lamaka, alex998, amikhailov, Antony, artclonic, Bing [Bot], Chili, Cvazist, Dimka_almighty, DrDWoo, foto-boss, Google [Bot], Ifish, jo_key, key, kts, Lafayette, Leonid Vs, leprud, Lunatic, Majestic-12 [Bot], McNikolson, MGG, nik1, NKS, nva-tuning, peratron, Quark, Rion, Rom327, savo, scroober, SeReGa Sh, Smlua, softovik, sorter, SVP, toxakorzh, tsurika, Uda4LIVEc, verser, viael, Yahoo [Bot], Yandex [bot], Yarrr, ЧПУ-шник, шпиндель

Поделиться

Reputation System ©'