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

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

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

Сообщение Loituma » 04 апр 2017, 21:33

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

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

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

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

И так, идем в stepconf и во втором окне видим следующую картику:
Classic Ladder как работать? linux 1.jpg

В include ставим галочку, что нужен нам ladder
Blank ladder programm - я так понимаю, что стандартная релейная логика
inklude connection HAL - что все это значит? перевод в принципе понятен, а вот смысл явно нет... Зачем это?

Тыкаем Edit ladder program и попадаем в святую святых...
Classic Ladder как работать? linux 2.jpg
нажимая выделенные кнопки должны получить следующие панели (Vars тыкать несколько раз до получения нужного результата...
Classic Ladder как работать? linux 3.jpg

Окей, получили все панели и вот поехали ставить задачу, ну скажем абстрагированную от реальности но вполне показательную на мой взгляд:
на 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
Мастер
 
Сообщения: 443
Зарегистрирован: 28 ноя 2011, 21:45
Репутация: 42
Медальки:

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

Сообщение Loituma » 04 апр 2017, 21:40

Simbols names панель
Classic Ladder как работать? linux 4.jpg


Зачем она нужна? в ней можно менять названия во всех столбцах, по идее она должна отображать текущее значение сигнала.
Объясните пожалуйста, зачем именно эта панель.

Vars
Classic Ladder как работать? linux 5.jpg

Еще одна не понятная панель, по идее в ней я могу тестить логику включая определенные значения или выключая...
Аватара пользователя
Loituma
Мастер
 
Сообщения: 443
Зарегистрирован: 28 ноя 2011, 21:45
Репутация: 42
Медальки:

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

Сообщение nkp » 04 апр 2017, 21:45

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

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

Сообщение nkp » 04 апр 2017, 21:48

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

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

Сообщение Loituma » 04 апр 2017, 22:10

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

Напоминаю задачу: при появлении сигнала на ножке LPT 10 (вход) таймером отсчитываем 10 секунд и останавливаем станок по аварийному сигналу.
Classic Ladder как работать? linux 6.jpg

Путем неимоверных усилий я создал таки простейший кусок релейки, и вот что она значи на мой взгляд:
при появлении сигнала на контакте %I0 %I1 %I2 срабатывает реле %Q0
отлично, все просто, но есть но: что это за контакты? как их привязать к реальным контактам LPT порта?
Разъясните пожалуйста, после этого станет меньше вопросов...
Аватара пользователя
Loituma
Мастер
 
Сообщения: 443
Зарегистрирован: 28 ноя 2011, 21:45
Репутация: 42
Медальки:

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

Сообщение nkp » 04 апр 2017, 22:18

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

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

Сообщение nkp » 04 апр 2017, 22:30

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
nkp
Мастер
 
Сообщения: 6954
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1084
Медальки:

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

Сообщение Loituma » 05 апр 2017, 04:54

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
собрав всю кучку в предложение можно осмыслить данную строку даже если ты не программируешь на с++

Выше еще много вопросов, подсказывайте Уважаемые пожалуйста, я буду систематизировать и выкладывать в удобно пережевываемом виде
Аватара пользователя
Loituma
Мастер
 
Сообщения: 443
Зарегистрирован: 28 ноя 2011, 21:45
Репутация: 42
Медальки:

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

Сообщение dinkata » 05 апр 2017, 05:58

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

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

Думаю что ето шутка :lol: Ето так вьйглядит если хотите включит свет через три ключа :
Classic Ladder как работать? LADDER.JPG

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 раз.
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
Аватара пользователя
dinkata
Мастер
 
Сообщения: 738
Зарегистрирован: 05 сен 2014, 09:07
Откуда: Болгария
Репутация: 185
Настоящее имя: Диньо

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

Сообщение nkp » 05 апр 2017, 06:30

емс при загрузке читает 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
Мастер
 
Сообщения: 6954
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1084
Медальки:

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

Сообщение nkp » 05 апр 2017, 06:58

приведенная ТС выше схема - как бы логическое "И"
чтоб сработало реле Q0 - нужно чтоб замкнулся и I0,и I1,и I2
===================================================================
нарисуем логическое "ИЛИ":
Classic Ladder как работать? Выделение_129.png

чтоб сработало реле Q0 - нужно чтоб замкнулся (как минимум) или I0,или I1,или I2
nkp
Мастер
 
Сообщения: 6954
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1084
Медальки:

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

Сообщение dinkata » 05 апр 2017, 07:10

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

в ладер :
Classic Ladder как работать? Ladder.png

Хотя и не понял зачем на Авост задержка времени !!!???? :thinking:
Он же зато Авост сразу остановит машина , что то аварийное случилось !!
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
Аватара пользователя
dinkata
Мастер
 
Сообщения: 738
Зарегистрирован: 05 сен 2014, 09:07
Откуда: Болгария
Репутация: 185
Настоящее имя: Диньо

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

Сообщение Loituma » 05 апр 2017, 07:39

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

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

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

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

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

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

Вопрос по %B10 это некое обозначение виртуального реле которое можно использовать в программе? я к чему спрашиваю, у меня в девелопере используется буква M и за ней номер...
Аватара пользователя
Loituma
Мастер
 
Сообщения: 443
Зарегистрирован: 28 ноя 2011, 21:45
Репутация: 42
Медальки:

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

Сообщение dinkata » 05 апр 2017, 08:05

Loituma писал(а):1 строка: При верхнем фронте %i0 срабатывает некое реле %B10 (что это за реле и в чем его смысл?), ох нет, догнал, это команда Set? значит присваеваем реле статус замкнуто.

да , по переднему фронта сигнал на parport.0.pin-10-in устанавливаем в замкнутое состояние внутренное реле
или как поняли
виртуального реле
.
Зачем ето , чтоб только заметит сигнал на вход .
Loituma писал(а):2 строка: При сработке реле %B10 запускается таймер %tM0 10 секунд и включает катушку

и после истечение 10 секунд включает катушку которая дает сигнал на аварийной останов
Loituma писал(а):3 строка: по верхнему фронту %Q10 сбрасываем реле %b10

чтоб вернут все в исходное состояние
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
Аватара пользователя
dinkata
Мастер
 
Сообщения: 738
Зарегистрирован: 05 сен 2014, 09:07
Откуда: Болгария
Репутация: 185
Настоящее имя: Диньо

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

Сообщение Сергей Саныч » 05 апр 2017, 08:53

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, и служат исключительно для улучшения читабельности человеком - показывают направление передачи сигнала.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Сергей Саныч
Мастер
 
Сообщения: 7292
Зарегистрирован: 30 май 2012, 14:20
Откуда: Тюмень
Репутация: 2206
Медальки:


Вернуться в LinuxCNC

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

Зарегистрированные пользователи: Ale2, Alex05, Alex2x, Andy52280, Argon-11, Bing [Bot], Сергей Саныч, Cvazist, frezeryga, geanet, Google [Bot], Google Feedfetcher, GRUserman, Hanter, kfz, Lafayette, Malyarka74, nevkon, Nixon, Nonstopich, nva-tuning, parlaq, Piligrym, PKM, Гагарин, Rezus666, ruskama, SeReGa Sh, sima8520, Tonykei, ultrus, Umnik, valera321, vit_rus, Yahoo [Bot], Yandex [bot], Питерский, Валерий

Поделиться

Reputation System ©'