Classic Ladder как работать?

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Loituma
Мастер
Сообщения: 512
Зарегистрирован: 28 ноя 2011, 21:45
Репутация: 57
Контактная информация:

Classic Ladder как работать?

Сообщение Loituma »

Добрый день, Уважаемые.

Побудило меня создать тему, то что я ничего не понимаю в данном инструменте, поиски по форуму, по нету и ютубу не дали особых результатов, соответственно человеку который ничего не знает о данном инструменте приходится шибко туго. Хочу сразу заметить: я программирую ПЛК в LD очень даже сносно, у меня по производству больше десятка работает и набор программ от самых простых до крайне сложных достаточно...

Цель: создать алгоритм создания простых схем и добиться понимания элементарных вещейв ladder.

Задача: подключить штурвал.

И так, идем в stepconf и во втором окне видим следующую картику:
linux 1.jpg (6703 просмотра) <a class='original' href='./download/file.php?id=108116&sid=ef20cb22543f142c8d1574862cba61b2&mode=view' target=_blank>Загрузить оригинал (80.66 КБ)</a>
В include ставим галочку, что нужен нам ladder
Blank ladder programm - я так понимаю, что стандартная релейная логика
inklude connection HAL - что все это значит? перевод в принципе понятен, а вот смысл явно нет... Зачем это?

Тыкаем Edit ladder program и попадаем в святую святых...
linux 2.jpg (6703 просмотра) <a class='original' href='./download/file.php?id=108119&sid=ef20cb22543f142c8d1574862cba61b2&mode=view' target=_blank>Загрузить оригинал (153.77 КБ)</a>
нажимая выделенные кнопки должны получить следующие панели (Vars тыкать несколько раз до получения нужного результата...
linux 3.jpg (6703 просмотра) <a class='original' href='./download/file.php?id=108120&sid=ef20cb22543f142c8d1574862cba61b2&mode=view' target=_blank>Загрузить оригинал (234.94 КБ)</a>
Окей, получили все панели и вот поехали ставить задачу, ну скажем абстрагированную от реальности но вполне показательную на мой взгляд:
на 10 пин LPT порта при получении сигнала включается программное реле времени и через заданный интервал времени отключает станок по аварии.

Панель Bit Status, в целом понятна, там отображается текущий статус входа ( а может и выхода )
%I0 это входы при том весьма переменные, а переменные они по тому, что их назначаешь в HAl файле net sig0 parport.0.pin-10-in-not classicladder.0.in-00
%I1 - это classicladder.0.in-01
и тд
%Q0 - это classicladder.0.out-00 их так же назначаешь в файле Hal
%Q1 - это classicladder.0.out-01
Спасибо nkr за подсказки
Что обозначают этот %B0 ? Это входы выходы или что то еще? вообще суть этих параметров какова?
Я предполагаю, что это некие переменные относительно которых потом через HAL файл пишутся реальные выходы порта?

EDITOR: в целом панель понятна (ну по крайней мере когда ты уже программировал релейные схемы. Но по порядку:
1) object selector - выбиралка объекта ( тыкалка )))
2)Eraser - ластик (затиратель)
3) нормально разомкнутый контакт
4) Нормально замкнутый контакт
5) Верхний импульс ( для не знающих релейную логику поясню: это верхний импульс сигнала замыкания, то есть: нажали кнопку импульс появился и пропал)
6) Нижний импульс: ( для не знающих релейную логику поясню: это нижний импульс сигнала замыкания, то есть: нажали кнопку импульс не появился, отпустили кнопку импульс появился и пропал)
7) горизонтальная линия
8) вертикальная линия
9)Закончить строку прямой линией до конца ( я же прав? )
10) Timer Таймер
11) Counter - счетчик
12) Variable comparison - сравнение переменных ( вот не знаю нафига нужно, может дадут примеры)
13) Timer - какой то старый таймер
14) Monostable blok - виртуальное реле
15) N.O. Out - нормально разомкнутая катушка
16) N.C. Out - нормально замкнутая катушка
17) Set out -замкнуть выход
18) reset out - разомкнуть выход
19) jump coil - пружинящая катушка ( хрен его знает зачем нужна, опишите пример, я лично не встречал)
20) Call coil - вызывающая катушка ( хрен его знает зачем нужна, опишите пример, я лично не встречал)
21) Variable Assignment - присвоение переменной

Тем кто сталкивался с релейными программами затруднений не вызовет, остальным только на примерах которые я ниже накидаю при помощи участников форума.
Последний раз редактировалось Loituma 05 апр 2017, 04:46, всего редактировалось 1 раз.
Аватара пользователя
Loituma
Мастер
Сообщения: 512
Зарегистрирован: 28 ноя 2011, 21:45
Репутация: 57
Контактная информация:

Re: Classic Ladder как работать?

Сообщение Loituma »

Simbols names панель
linux 4.jpg (6701 просмотр) <a class='original' href='./download/file.php?id=108122&sid=ef20cb22543f142c8d1574862cba61b2&mode=view' target=_blank>Загрузить оригинал (39.36 КБ)</a>
Зачем она нужна? в ней можно менять названия во всех столбцах, по идее она должна отображать текущее значение сигнала.
Объясните пожалуйста, зачем именно эта панель.

Vars
linux 5.jpg (6701 просмотр) <a class='original' href='./download/file.php?id=108123&sid=ef20cb22543f142c8d1574862cba61b2&mode=view' target=_blank>Загрузить оригинал (92.27 КБ)</a>

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

Re: Classic Ladder как работать?

Сообщение nkp »

кмк гораздо удобней схемы рисовать в ладдере "отдельном" от емс
вот здесь в шапке ссылки есть
http://www.cnc-club.ru/forum/viewtopic.php?f=15&t=1925
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Classic Ladder как работать?

Сообщение nkp »

CL был написан одним парнем из Франции как отдельная программа...
потом ее встроили в емс
некоторые окна не могут априори работать полноценно в емс
попробуй отдельно ладдер - некоторые вопросы отпадут...
Аватара пользователя
Loituma
Мастер
Сообщения: 512
Зарегистрирован: 28 ноя 2011, 21:45
Репутация: 57
Контактная информация:

Re: Classic Ladder как работать?

Сообщение Loituma »

На данном этапе вроде разобрали основные панели ladder

Напоминаю задачу: при появлении сигнала на ножке LPT 10 (вход) таймером отсчитываем 10 секунд и останавливаем станок по аварийному сигналу.
linux 6.jpg (6686 просмотров) <a class='original' href='./download/file.php?id=108138&sid=ef20cb22543f142c8d1574862cba61b2&mode=view' target=_blank>Загрузить оригинал (64.49 КБ)</a>
Путем неимоверных усилий я создал таки простейший кусок релейки, и вот что она значи на мой взгляд:
при появлении сигнала на контакте %I0 %I1 %I2 срабатывает реле %Q0
отлично, все просто, но есть но: что это за контакты? как их привязать к реальным контактам LPT порта?
Разъясните пожалуйста, после этого станет меньше вопросов...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Classic Ladder как работать?

Сообщение nkp »

%I0 - это classicladder.0.in-00
%I1 - это classicladder.0.in-01
....................
%Q0 - это classicladder.0.out-00
%Q1 - это classicladder.0.out-01
...........................
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Classic Ladder как работать?

Сообщение nkp »

net sig0 parport.0.pin-10-in-not classicladder.0.in-00
net sig1 parport.0.pin-11-in-not classicladder.0.in-01
net sig2 parport.0.pin-12-in-not classicladder.0.in-02
net estop classicladder.0.out-00 halui.estop.activate
Аватара пользователя
Loituma
Мастер
Сообщения: 512
Зарегистрирован: 28 ноя 2011, 21:45
Репутация: 57
Контактная информация:

Re: Classic Ladder как работать?

Сообщение Loituma »

nkr подскажи пожалуйста поэтапно куда это все писать? в hal файл или в отдельный файл и как то подключать его? напиши алгоритм....

Пока он пишет, разберем синтаксис языка:
net sig0 parport.0.pin-10-in-not classicladder.0.in-00
net - присвоить
sig0 - наверно переменная опять же которую можно в дальнейшем использовать
parport 0 - скорее всего LPT с номером порта
pin 10 in not - это 10 пин работающий на вход при этом нормально открытый? что означает not?
classicladder.0.in-00 - наша переменная %I0
собрав всю кучку в предложение можно осмыслить данную строку даже если ты не программируешь на с++

Выше еще много вопросов, подсказывайте Уважаемые пожалуйста, я буду систематизировать и выкладывать в удобно пережевываемом виде
Аватара пользователя
dinkata
Мастер
Сообщения: 1025
Зарегистрирован: 05 сен 2014, 09:07
Репутация: 389
Настоящее имя: Диньо
Откуда: Болгария
Контактная информация:

Re: Classic Ladder как работать?

Сообщение dinkata »

Loituma писал(а): Хочу сразу заметить: я программирую ПЛК в LD очень даже сносно, у меня по производству больше десятка работает и набор программ от самых простых до крайне сложных достаточно...
Уважаемьй колега , смотря вопросов я не уверен что програмируете ПЛК.
Loituma писал(а):Путем неимоверных усилий я создал таки простейший кусок релейки
Думаю что ето шутка :lol: Ето так вьйглядит если хотите включит свет через три ключа :
LADDER.JPG (6647 просмотров) <a class='original' href='./download/file.php?id=108144&sid=ef20cb22543f142c8d1574862cba61b2&mode=view' target=_blank>Загрузить оригинал (18.1 КБ)</a>
Loituma писал(а):Пока он пишет, разберем синтаксис языка:
Прошу , не делайте инструкция , сначале посмотрите ето :
http://linuxcnc.org/docs/2.7/html/ladde ... adder.html
И хочу сказат что я программирую ПЛК в LD - Unitronics ; Lenze ; Controltehniques; Delta-electronics .....
Classicladder тоже мне нравится и такое отношение к его :wtf:
Последний раз редактировалось dinkata 05 апр 2017, 06:51, всего редактировалось 1 раз.
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Classic Ladder как работать?

Сообщение nkp »

емс при загрузке читает hal файлы те ,которые указаны в ini файле в разделе [HAL]...
это значит ,что можно все поместить в один файл,и с таким же успехом - разделить на несколько...
------------------------------
ладдер прописывается в hal примерно так:

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

loadrt classicladder_rt numPhysInputs=15 numPhysOutputs=15 numS32in=10 numS32out=10 numFloatIn=10 numFloatOut=10
loadusr classicladder custom.clp
addf classicladder.0.refresh servo-thread
"примерно" - потому как в первой строке перечисляется список требуемых элементов схемы и их желаемое количество...
если не прописывать - загрузится количество по дефолту...
очевидно - что созданный файл нашей схемы мы (в данном случае) должны именовать "custom.clp"
--------------------------
в любом месте файла ,но обязательно ниже этих строк ,пишем коммутацию наших пинов: строки с "net"
------------------------
dinkata писал(а):Думаю что ето шутка
ну почему шутка, ;)
просто за этим станком работает вероятно очень выдержанный оператор:
каждый из трёх входных контактов срабатывает при аварии своей оси(%I0 - авария осиX,%I1 - авария осиY,%I2 - авария осиZ)
так вот - все эти трусы и перестраховщики жмут грибок красный при первой же поломке...
наш же Герой-оператор не таков - авария одной оси ему нипочем: "-Подумаешь - всего одна!!"
ну и две не предел :freak:
вот только ,когда все три вылетают(тут работать уже нечем(оси просто кончились :thinking: )) - можно и сработать АВОСТу
вот потому что оператор-кремень - и приходится рисовать такие спецсхемы :)
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Classic Ladder как работать?

Сообщение nkp »

приведенная ТС выше схема - как бы логическое "И"
чтоб сработало реле Q0 - нужно чтоб замкнулся и I0,и I1,и I2
===================================================================
нарисуем логическое "ИЛИ":
Выделение_129.png (6636 просмотров) <a class='original' href='./download/file.php?id=108145&sid=ef20cb22543f142c8d1574862cba61b2&mode=view' target=_blank>Загрузить оригинал (25.02 КБ)</a>
чтоб сработало реле Q0 - нужно чтоб замкнулся (как минимум) или I0,или I1,или I2
Аватара пользователя
dinkata
Мастер
Сообщения: 1025
Зарегистрирован: 05 сен 2014, 09:07
Репутация: 389
Настоящее имя: Диньо
Откуда: Болгария
Контактная информация:

Re: Classic Ladder как работать?

Сообщение dinkata »

nkp писал(а):ну почему шутка,
я же за ето
Путем неимоверных усилий я создал таки простейший кусок релейки,
для человек которьй програмирует ПЛК ...... :controller: :controller: :controller: :controller: :controller:
А если сериозно для вопрос :
при появлении сигнала на ножке LPT 10 (вход) таймером отсчитываем 10 секунд и останавливаем станок по аварийному сигналу.
то по моему так в ....hal:

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

 net inavost parport.0.pin-10-in =>   classicladder.0.in-10
 net outavost classicladder.0.out-10 => halui.estop.activate
в ладер :
Ladder.png (6634 просмотра) <a class='original' href='./download/file.php?id=108146&sid=ef20cb22543f142c8d1574862cba61b2&mode=view' target=_blank>Загрузить оригинал (31.56 КБ)</a>
Хотя и не понял зачем на Авост задержка времени !!!???? :thinking:
Он же зато Авост сразу остановит машина , что то аварийное случилось !!
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
Аватара пользователя
Loituma
Мастер
Сообщения: 512
Зарегистрирован: 28 ноя 2011, 21:45
Репутация: 57
Контактная информация:

Re: Classic Ladder как работать?

Сообщение Loituma »

Уважаемый, Denkata.
Я очень давно программирую ПЛК и в моей схеме, если ее понимать буквально при нажатии трех клавишь срабатывает сигнал. Пример просто не удачный.
Если хотите я вам скину пару своих программ например от конвейера который автоматически красит изделия? ну или простенький станок по изготовлению однотипных изделий на энкодере и моторредукторе через частотник, может быть управление подачей под пресс (хотя там вообще просто)? трудности вызывает не знание интерфейса программы, например в fx developere от mitsubishi все проще, тут надо привыкать...
Не делайте выводов и не думайте что умнее всех, мы тоже такие

Я еще раз повторяю: цель сей темы понять простому обывателю (и конечно разобраться мне) как тупо вывести кнопку со станка, настроить ее на выполнение определенного действия, дальше подключить штурвал и все это понятно-доступным языком: подключи сюда, напиши это сюда и будет профит.

Если вы считаете, что у меня времени вагон писать, систематизировать и выкладывать, вы ошибаетесь... Добровольный труд...

Лирика прошла.

По делу: Denkata? объясните мне пожалуйста смысл вашей схемы, я опишу ее как я понял (попутно устанавливаю ХП что бы поставить девелопер и написать свой аналог схемы)
1 строка: При верхнем фронте %i0 срабатывает некое реле %B10 (что это за реле и в чем его смысл?), ох нет, догнал, это команда Set? значит присваеваем реле статус замкнуто.
2 строка: При сработке реле %B10 запускается таймер %tM0 10 секунд и включает катушку
3 строка: по верхнему фронту %Q10 сбрасываем реле %b10

я правильно понял? задача выстроилась не много по другому, но в целом вроде понятно стало. синтаксис у меня другой, установится покажу как это выглядит для меня )))

Вопрос по %B10 это некое обозначение виртуального реле которое можно использовать в программе? я к чему спрашиваю, у меня в девелопере используется буква M и за ней номер...
Аватара пользователя
dinkata
Мастер
Сообщения: 1025
Зарегистрирован: 05 сен 2014, 09:07
Репутация: 389
Настоящее имя: Диньо
Откуда: Болгария
Контактная информация:

Re: Classic Ladder как работать?

Сообщение dinkata »

Loituma писал(а):1 строка: При верхнем фронте %i0 срабатывает некое реле %B10 (что это за реле и в чем его смысл?), ох нет, догнал, это команда Set? значит присваеваем реле статус замкнуто.
да , по переднему фронта сигнал на parport.0.pin-10-in устанавливаем в замкнутое состояние внутренное реле
или как поняли
виртуального реле
.
Зачем ето , чтоб только заметит сигнал на вход .
Loituma писал(а):2 строка: При сработке реле %B10 запускается таймер %tM0 10 секунд и включает катушку
и после истечение 10 секунд включает катушку которая дает сигнал на аварийной останов
Loituma писал(а):3 строка: по верхнему фронту %Q10 сбрасываем реле %b10
чтоб вернут все в исходное состояние
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

Re: Classic Ladder как работать?

Сообщение Сергей Саныч »

Loituma писал(а): разберем синтаксис языка:
net sig0 parport.0.pin-10-in-not classicladder.0.in-00
net - присвоить
sig0 - наверно переменная опять же которую можно в дальнейшем использовать
parport 0 - скорее всего LPT с номером порта
pin 10 in not - это 10 пин работающий на вход при этом нормально открытый? что означает not?
classicladder.0.in-00 - наша переменная %I0
собрав всю кучку в предложение можно осмыслить данную строку даже если ты не программируешь на с++
hal - это язык описания схем, а не программы. Поэтому лучше рассматривать так:
net - цепь. Соединяет несколько входов и один выход. Можно записать в одну строку, можно разбить на несколько. Цепь всегда должна быть поименована (в отличие от обычной электросхемы).
sig0 - это как раз имя цепи. Если в нескольких строках присутствует одинаковое имя, то все контакты описанные в этих строках, соединяются вместе.
pin 10 in not - точнее, pin-10-in-not - это "контакт", описывающий состояние входа (10 ножки разъема LPT). Когда на этой ноге высокий уровень, контакт передает в цепь состояние false, то есть лог.0, и наоборот, потому и not.
Замечу, кстати, что 10 - здесь не номер цепи, а часть имени контакта. Поэтому, скажем, pin-01-in и pin-1-in - это не одно и то же.
Можно еще встретить всякие значки типа => или <= . Они не имеют никакого значения для hal, и служат исключительно для улучшения читабельности человеком - показывают направление передачи сигнала.
Чудес не бывает. Бывают фокусы.
NikSR
Новичок
Сообщения: 29
Зарегистрирован: 27 дек 2018, 16:39
Репутация: 12
Настоящее имя: Николай
Откуда: Москва
Контактная информация:

Re: Classic Ladder как работать?

Сообщение NikSR »

Поддержу тему. Восстанавливаю обрабатывающий фрезерный центр, у него карусельного типа автосменщик. С ориентацией шпинделя для ATC разобрался, с Ladder тоже. Есть вопрос- как из Ladder запустить команду g53 g0 z-30 для подвода шпинделя к ATC?
Также, большая просьба снабдить ссылкой на успешную реализацию АТС.
Решено: HAAS VF3 под LinuxCNC viewtopic.php?t=34302
Решено: MAHO MH400T под LinuxCNC viewtopic.php?f=15&t=7981&p=579916&hili ... 0t#p579916
Аватара пользователя
mikehv
Мастер
Сообщения: 2101
Зарегистрирован: 14 авг 2013, 10:10
Репутация: 1170
Откуда: Иваново
Контактная информация:

Re: Classic Ladder как работать?

Сообщение mikehv »

NikSR писал(а): 20 ноя 2022, 01:32 Поддержу тему. Восстанавливаю обрабатывающий фрезерный центр, у него карусельного типа автосменщик. С ориентацией шпинделя для ATC разобрался, с Ladder тоже. Есть вопрос- как из Ladder запустить команду g53 g0 z-30 для подвода шпинделя к ATC?
Также, большая просьба снабдить ссылкой на успешную реализацию АТС.
Я делал ремап на М6. В программе уже использовал цифровые входы и выходы для ладдера
Gosha7
Новичок
Сообщения: 4
Зарегистрирован: 22 апр 2014, 22:47
Репутация: 1
Настоящее имя: Igor
Откуда: Sochi
Контактная информация:

Re: Classic Ladder как работать?

Сообщение Gosha7 »

mikehv писал(а): Я делал ремап на М6. В программе уже использовал цифровые входы и выходы для ладдера
Тоже так хочу. Где почитать? В ПЛК нуб.
Аватара пользователя
mikehv
Мастер
Сообщения: 2101
Зарегистрирован: 14 авг 2013, 10:10
Репутация: 1170
Откуда: Иваново
Контактная информация:

Re: Classic Ladder как работать?

Сообщение mikehv »

Gosha7 писал(а): 24 ноя 2022, 09:52
mikehv писал(а): Я делал ремап на М6. В программе уже использовал цифровые входы и выходы для ладдера
Тоже так хочу. Где почитать? В ПЛК нуб.
Так здесь все и искал раньше. Тем очень много. Всё разбиралось уже. Если совсем непонятно, пиши в личку. Дам свой номер, в живую покажу как сделано у меня. Просто описывать все сейчас нет времени совсем
NikSR
Новичок
Сообщения: 29
Зарегистрирован: 27 дек 2018, 16:39
Репутация: 12
Настоящее имя: Николай
Откуда: Москва
Контактная информация:

Re: Classic Ladder как работать?

Сообщение NikSR »

mikehv писал(а): 24 ноя 2022, 13:35
Gosha7 писал(а): 24 ноя 2022, 09:52
mikehv писал(а): Я делал ремап на М6. В программе уже использовал цифровые входы и выходы для ладдера
Тоже так хочу. Где почитать? В ПЛК нуб.
Так здесь все и искал раньше. Тем очень много. Всё разбиралось уже. Если совсем непонятно, пиши в личку. Дам свой номер, в живую покажу как сделано у меня. Просто описывать все сейчас нет времени совсем
С радостью бы постучался в личку. Но поскольку на этом форуме я нуб, такой возможности у меня нет. Если бы на чипмейкере...
На https://linuxcnc.org/docs/html/remap/re ... #cha:remap как-то непонятно написано, причем с Python ну никак у меня дружбы не получается. А из Ladder не знаю как запустить перемещение оси.
Решено: HAAS VF3 под LinuxCNC viewtopic.php?t=34302
Решено: MAHO MH400T под LinuxCNC viewtopic.php?f=15&t=7981&p=579916&hili ... 0t#p579916
Ответить

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