Скрипты для linux cnc

Crafting.be

When engineering is in blood

Show menu Hide menu

@Graveraider Играет песня Гражданской обороны — Некрофилия

@hobbyworld_twit a world war of cthulhu чей?

@turbojedi Клаву хардварную была попытка сделать?

@001iz @Graveraider Всегда был вопрос а как у Evil персонажей могут быть романтики. Там скорее как в KoToR прогибание под свою сторону силы.

@Graveraider @001iz Q: Есть ли в игре романы? A: Да. Вы можете завести роман с 4 компаньонами, 2 из которых бисексуальны.

@001iz Заметки натуралиста, наплыв народу в комиксшопы вот произошел, после теории большого взрыва, где ненавязчиво подавалась идея что у задрота есть деньги, главное втереться к нему в доверие) Но только с хардкором тяжело.

Советуем посмотреть также Сайт Некроманта

Метки

Погружение в LinuxCNC

Статья для тех кто плохо знает английский и не любит читать километры форумов

Недавно я участвовал в проекте одной перспективной молодой команды Jamlab , как видно я там есть)) Это статья скорее как фиксация некоего этапа работы , показывающая что я cделал, это важно иногда фиксировать навыки в виде балов в Skills, или новых выученных трюков в Feats(Передаю привет всем ролевикам).

Table of Contents

Что такое LinuxCNC?

Linux обладает замечательными свойствами, его можно поставить куда хочешь даже на ATmega микроконтроллер. Или с помощью него можно сделать из обычного компьютера что то специфичное. Например на заре Linux его любили за то что он позволяет на дешевом оборудование создавать небольшие сервера, программно маршрутизировать пакеты и.т.д.

LinuxCNC — набор утилит который позволяет сделать из вашего компьютера стойку управления ЧПУ. Он позволяет программно генерировать шаги в случае управление по типу STEP-DIR-ENABLE, обрабатывать информацию с датчиков, позволяет вам собрать собственную заточенную под ваш станок — панель управления.

Ну а также LinuxCNC поддерживает работу с промышленными платами с аппаратной обработкой G-code — так называемые Mesa платы.

Состав LinuxCNC

RealTime Linux ядро

Простое ядро(ванильное) в тех.процессах связанных с реальным временем. Реализаций real time в linux несколько, конкретно linuxcnc использует RTAI и хотя RTAI ушел далеко вперед(3.9 версия реализована) , на данный момент поддерживаются ядра 2.4 и 2.6 , вы скажите фи, а я отвечу что на производстве железо меняется крайне медленно, что большинство софта использует DOS а также что современный многоядерный монстр может показать… результаты на jitter time хуже чем одноядерный комп.

Драйвера

На данный момент хорошо реализованы и опробованы на практике, с работой в реальном времени , это параллельный порт(до 3-х штук) а также RS232 или COM-PORT.

Также ведутся работы(не могу оценить степень их активности), по реализации real time управления через Ethernet.

USB — использует буфферицацию и и говорить о настоящем real time не получается, в общем, с этим все сложно.

Итак представьте что вы делает сложную дугу, дугу можно представить как набор ступенчатых шажков.

Чем меньше размер шагов тем ближе мы к реальному изображению кривой, конечно это зависит и от минимального шага станка.. ну да ладно. В общем если наша задача увеличить частоту с которой компьютер передает сигналы управляющей плате, то нужно уменьшать параметр jitter time, один из способов это увеличение частоты процессора, также можно избавляться от «лишних» процессов в системе, ну там браузер выключить, музыку на этом компьютере не слушать, compiz отрубить, network demon-а развеять…. ИЗБАВИТСЯ ОТ ГРАФИЧЕСКОГО СЕРВЕРА, но это совсем хардкор и теоретически linuxcnc предполагает клиент-серверную модель, так что интерфейс будет работать на компе с браузерами и прочими кофеварками, а преобразователь G-code и вся управляющая логика на другом.

Другой вариант использовать другой вариант и на железе с помощью ПЛИС преобразовывать G-code в управляющие сигналы, количество читаемых/передаваемых компьютером команд заметно уменьшиться, для этого и существуют MESA платы стоят они дороже чем PCI-parrport переходник.

Главная и самая интересная часть linuxcnc — Hardware Abstraction Layer. Это такая специальная прослойка которая позволяет обычному пользователю получать доступ к оборудованию(ядру) Linux. Раньше был ещё один HAL , который потом заменил проект udev , так вот это разные вещи, HAL Linuxcnc нужен только для linuxcnc.

Итак каждый компонент в HAL представлен черным ящиком с некоторым количеством ножек, каждая ножка обладает такими свойствами, как вход/выход а также тип передаваемого по ней сигнала. Ещё есть псевдо ножки, это константы, параметров компонента.

Все это похоже на блоксхемы и в итоге можно представить как вот такую вот схему(чем-то напоминает LabView, но увы удобного редактора нет).

Ещё стоит заметить что в HAL всегда работают два типа компонентов ,работают они в разных потоках loadrt загружает компоненты работающие в real time потоке, loadusr загружает компоненты работающие не real time т.е. с периодом >=200 мс … это например интерфейс или джойстик подключенный по USB.

Также с помощью специального синтаксиса макросов и языка С, можно создавать свои компоненты, с помощью утилиты comp.

Также можно вручную вводить команды с помощью halcmd , с поддержкой автодополнения, ведь файлы с расширением .hal всего лишь сценарии написанные на этом языке.

Подсветка синтаксиса

Для того чтобы .hal файлы настроек не выглядели однообразно, сделал подсветку для Emacs

Внутренняя архитектура

Здесь представлены компоненты HAL а также их деления на real time и non real time

в linuxcnc входит свой собственный интерпретатор G-code RS274NGC , который можно дополнять пользовательскими M-кодами, написанными на bash и .hal.

Читайте также:  Буфер обмена windows office

Набор графических интерфейсов

  • Главный интерфейс который часто изображен называется — AXIS , можно дополнять этот интерфейс с помощью python , а также графических элементов из Tk/Gtk библиотек.
  • TkLinux — по проще и менее жрущий
  • Touchy интерфейс для планшетов
  • Keystick самое минимальное из минимально возможного.

В общем, AXIS это основной интерфейс и его можно расширять PyVCP и GladeVCP , второе краше и Gtk виджеты лучше приспособлены для touch интерфейсов.

Измерительные и вспомогательные утилиты.

halmeter и halscope позволяют отслеживать сигналы проходящие между компонентов, разница такая же как между вольтметром и осциллографом.

Есть ещё Latency Test , которые измеряет минимальное время в которое может откликаться система — jitter time

Источник

LinuxCNC

LinuxCNC (EMC2) — программное обеспечение для управления оборудованием с ЧПУ, созданное на базе Linux.

Содержание

Руководства и приложения

Для более удобной структуризации информации воспользуйтесь ссылками на связанные темы:

Введение

Что такое Craftex? Craftex — нельзя назвать отдельной системой управления ЧПУ. Craftex — интерфейс, созданный компанией CNC-Technology, построенный на базе LinuxCNC. Накопив опыт работы с разными системами управления ЧПУ (такими как Mach3, NC-Stuido, автономные пульты DSP RichAuto и другие) мы позаимствовали положительные качества каждой из них и сократили недостатки. Ниже мы постарались описать идеологию, которую мы преследовали.

Почему мы сделали это?

Одними из самых популярных систем управления ЧПУ, можно считать NC-Stuido, Mach3, различные автономные пульты управления. В чем преимущества и недостатки каждой из них? И почему мы сделали выбор в пользу LinuxCNC? Для этого давайте проведем сравнение этих систем?

Mach3 NC-Studio Автоном. пульты LinuxCNC
Количество осей При работе через LPT-DPTR 1.03: 4 оси.
При работе через ZKMotion: 6 осей
PCIMC-3D: 3 оси
PCIMC-3G: 3 оси
PM95A+Lambda4S: 4 оси (Примечание: стоимость более 1000$).
DSP RichAuto A11: 3 оси
DSP RichAuto A18: 4 оси
При работе через LPT-DPTR 1.03: 4 оси.
При работе через MESA: 6 осей
Максимальная частота При работе через LPT-DPTR 1.03: 60 kHz*.
При работе через ZKMotion: 1,5Mhz.
PCIMC-3D: 47 kHz.
PCIMC-3G: 120 kHz.
DSP RichAuto A11, A18: 1Mhz При работе через LPT-DPTR 1.03: 60kHz.
При работе через MESA: более 400 kHz.
Конфигурируемость (возможность изменения функционала или интерфейса под собственные задачи) Система скриптов на VB, легко изменяется интерфейс или функционал под задачи Интерфейс изменить невозможно, изменение функционала крайне ограничено Невозможно изменить не функционал, не интерфейс Легко изменить функционал и интерфейс, язык Python и другие
Удобность интерфейса Для рядового пользователя перенасыщен кнопками и функциями Минималистичный, удобный Недостаточно удобный, нет многих функций Минималистичный, нет некоторых удобных функций
Удобность настройки Легко настраивается из меню программы Почти не требует настройки, легко настраивается из меню программы Легко настраивается, но некоторые параметры не интуитивны Легко настраивается через файлы конфигурации
Работа с большим объемом G-кода Проблемы при загрузке больших управляющих программ Легко работает с большим объемом Легко работает с большим объемом но долго загружает управляющую программу Легко работает с большим объемом (однако иногда требуется выключить визуализацию)
Требовательность к ПК Очень требователен к ПК (не только к техническим характеристикам, но и к наличию сторонних программ на ПК) Не требователен (только тип операционной системы и битность) Не требует ПК Требователен только к техническим характеристикам ПК
Стабильность Не стабилен в ввиду требовательности к ПК Стабильная система Стабильная система Стабильная система
Итоги/выводы Интерфейс слегка перенасыщен и требует время для освоения системы у новичков, легко настраиваемая неопытным пользователем по созданным руководствам. Огромный плюс состоит в большом количестве информации о данной системе. Отличная гибкость под разные задачи. Однако существенным недостатком данной системы является не стабильная работа. В данном случае под нестабильностью стоит понимать «капризность системы». В особенности это проявляется на больших управляющих программах, которые исполняются на станке часами. Отличная надежность. Настройка крайне простая и можно легко сказать что данная система работает из коробки. Два больших недостатка не дают этой системе занять лидирующие позиции: 3 оси (существуют и 4-ех осевые версии, но стоимость контроллера не соизмерима — более 1000$) и полное отсутствие гибкости. Стабильны при работе, но статистике менее удобны в работе. Отсутствие визуализации, невозможность изменения интерфейса и прочее. Согласно статистике существует такая проблема: пульт проводной и находится в непостредственной близости к станку. Именно по этому 80% обращений в тех. поддержку — физические повреждения (разбит экран, клавиатура, перебит провод) Отличная гибкость, отличная надежность. Единственный недостаток скудный интерфейс в стандартном исполнении (интерфейс Axis). Некоторая сложность настройки на начальных этапах.

Какой вывод мы можем сделать исходя из этой сравнительной таблицы? По нашему мнению LinuxCNC является одной из надежных систем управления ЧПУ, сбоев при работе данной системы крайне мало. Однако стандартный интерфейс Axis недостаточно удобен и лишен некоторых возможностей (точнее говоря не лишен, но этот функционал не является интуитивным, удобным). При этом стоимость контроллеров, необходимых для работы с LinuxCNC очень доступная (к примеру контроллеры для работы через LPT — LPT-DPTR 1.03 или контроллеры MESA для работы через PCI или Ethernet). Именно поэтому мы постарались сделать интерфейс для LinuxCNC максимально удобным в работе (в частном случае, адаптированным под сенсорный экран). В итоге мы получили интуитивную, надежную, а самое главное доступную систему управления ЧПУ.

Как получить? Сколько это стоит?

Сама система управления LinuxCNC (вместе с интерфейсом Craftex) является полностью бесплатной и доступной каждому. Для того, чтобы получить образ диска с системой Craftex обратитесь в отдел продаж компании CNC-Technology или самостоятельно загрузите образы по ссылке.

Источник

LinuxCNC для чайников

Содержание

НАЧАЛО. ОПИСАНИЕ EMC2 или EMC2 Integrators Manual

И почему электронщики не понимают программистов? А ведь учились в соседних группах.

Начнём разборку тоже с этого описания.

Глава 1. Важные определения

Никаких проблем. Всё понятно. Идём дальше.

Глава 2. Аппаратное обеспечение (Hardware)

2.1 Latency Test

И опять всё понятно. Тест несложный. Данные записаны.

Глава 3. Конфигурационные файлы

И тут всё в порядке.

Дальше стал конфигурить систему, используя Stepconf. Столкнулся с проблемой, что Stepconf не дал мне возможности сконфигурировать систему такой, которая мне нужна. Испробовав несколько вариантов понял — нужно будет прописывать конфигурацию «ручками».

Читайте также:  Драйвера для принтера canon mg2240 для windows 10

Вот и подошел я к INI-файлу.

Глава 4. Файл INI

Вопросы начали появляться, но житейское правило: Не трогай того, что не понимаешь — помогло прописать бОльшую часть ini-файла. Больше того, прописал четвертую ось (она у меня должна качать гель: шаговик-насос). Даже подвигал насос. Но КАК его запустить программой? Да еще в нужное время, с нужной скоростью!

Тут без понимания HAL-файла не обойтись.

Глава 5. EMC2 и HAL

И вот первая строка:

Motion загружается при помощи команды motmod. Родственные программы должны быть запущены до motion.

Перечитал пару раз. Непонятно. Пропустил и полез дальше. Ещё более непонятно. Открыл HAL у себя и стал читать, взирая на реальный текст реального HAL-а. Стал понимать структуру самого файла. Но что там написано.

После двух недель стало ясно следующее:

1. Система EMC2 или LinuxCNC — это огромный набор маленьких программок, которые определенным образом сконфигурированы в систему. Потому, чтобы начать самому прописывать свою систему своего станка — необходимо понять логику этой конфигурации. А она оказалась довольно простой. Только написана на ином языке, на языке программистов.

Итак, эти маленькие программки называют КОМПОНЕНТАМИ. У каждого компонента есть своё ИМЯ.

2. У каждого компонента есть контакты (клеммы, разъемы) входов и выходов. Их называют ПИНы. У каждого компонента пинов может быть различное количество. У каждого пина есть своё имя. Пины бывают входные и выходные. А записывать это имя пина договорились так:

(имя компонента).(имя пина)

, где motion- имя компонента, analog-out-00 — имя пина, этот пин выходной и его номер 00.

ВАЖНО! Не стоит верить имени пина в части входной он или выходной. Есть случаи, когда в названии пина есть «in» или «out@? а на самом деле всё обстоит совсем не так. Так где же узнать входной это пин или выходной?

Вариант 1. Почитать мануал (описание) EMC2. Там это выглядит как-то так:

— как мы уже разобрались, эта запись означает, что это выходной пин coolant-flood компонента iocontrol.0

Вариант 2. (мной пока слабо используемый) Смотреть на свойства пина можно и в емс — любой пин открываем в Halshow и смотрим.

Также компонент может иметь один или несколько параметров (это такие коэффициенты, которые используются при работе компонента). Тут нет проблем — такое есть в любой схеме (номиналы резисторов, например).

Компоненты могут «соединяться» между собой посредством связей (проводки между входами и выходами). Тут есть тоже свои правила: 1. Чтобы не путаться, договорились каждую связь обзывать своим именем.

В этом случае, запись «коммутации» двух компонентов будет выглядеть так:

, что означает создаём (команда net) связь (vel) между пином current-vel компонента motion и пином vel компонента stepgen.3 (тут 3 — это номер компонента с таким именем — ведь один компонент может использоваться одновременно несколько раз, но под разными порядковыми номерами). Стрелочки писать необязательно. С ними на начальном этапе овладения системой проще — понятно ОТКУДА и куда передается «сигнал».

Возможно эту запись сделать так:

— как вам будет удобнее и понятнее. Кстати, эти две строчки могут быть записаны в разных местах HAL-файла.

Есть и второе правило при записи связи:

2. К одному выходному пину можно подсоединить несколько входных пинов. Но один входной пин можно подсоединить только к одному выходному пину.

Глава 6. КОМАНДЫ

Вот приходите вы домой (вошли в систему), подошли к телевизору, нажимаете на пульте 5 канал (обращаетесь к компоненту) и. А экран-то тёмный! Оказывается телевизор-то не включили.

Так же происходит и с компонентами Линукса. В HAL-е нужно первым делом «включить» нужные компоненты — «загрузить компонент HAL реального времени»!

Так мы подошли к понятию КОМАНДЫ.

1. loadrt — загружает компонент HAL реального времени. Например,

, что означает: загружаем (loadrt) компонет stepgen с некоторыми установками (step_type=0,0,0,0), о которых поговорим позже.

2. addf — добавляет компонент реального времени в поток. А по-русски, эта команда определяет, где будет находиться компонент: в высокоскоростном потоке (base-thread) или в низкоскоростном потоке (servo-thread). А если ещё точнее, то определяет, где будет находится ФУНКЦИЯ компонента, так как один компонент может исполнять несколько функций, которые могут быть высокоскоростными и низкоскоростными. Это видно на примере:

ВАЖНО! Эти команды должны быть обязательно! Именно они определяют: какими компонентами мы собираемся пользоваться и какие требования к этим компонентам мы предъявляем по скорости.

ВАЖНО 2! Перед тем, как прописывать функции компонента в потоки — посмотрите описание компонента! Возможно у него есть НЕСКОЛЬКО ФУНКЦИЙ и у этих функций могут быть имена ОТЛИЧНЫЕ ОТ ИМЕНИ КОМПОНЕНТА. Эти функции нужно прописывать отдельно.

3. С этой командой мы уже встречались — net — создает связь между сигналом и одним или несколькими пинами. Очень удобно, что если этой связи ещё не было (а ведь мы помним, что в Линуксе каждая связь имеет своё имя), то эта связь автоматически создаётся.

Например, нам нужно подать высчитанный программой сигнал Step на два контакта LPT-порта (мы пожелали управлять через отдельные драйвера двумя шаговиками по координате X). Для этого мы должны написать:

Т.е. главное в этой команде:

на первом месте — команда (net), затем название связи (xstep), а уже потом источник сигнала (выходной пин компонента — stepgen.0.step) и приёмник (приёмники) сигнала (входной или входные пины компонентов parport.0.pin-02-out и parport.0.pin-03-out).

Стрелочки => и Ура Линуксу или ошибки, ошибки и ошибки.

Что бы мы делали, если бы LinuxCNC не проверял ошибки ДО начала работы? А ведь проверяет!

Изменили мы ini- и hal-файлы, запустили EMC2 и. Получили сообщение об ошибке. Что с ним делать? И ведь понаписано много! Разберёмся последовательно:

Понятно — тут всё важное о самой системе.

А вот тут уже поинтереснее. Например вот эта строка у меня не понравилась EMC2:

Расшифровка: в файле 333.hal в строке 105 прописан пин axis.3.amp-enable-out, которого просто нет. Забыл я подчистить остатки от четвертой оси, которую изничтожил на корню. Удалил и всё заработало!

Также система отслеживает ошибки с применением типа переменных и параметров (BIT или FLOAT), ошибки при применении связей между пинами компонентов и многое другое. И самое важное — указывает конкретное место, где эту ошибку нашла!

Читайте также:  Dll protected by windows

«И это меня радует!» («Килаграмм»)

BIT или не BIT? Вот в чём вопрос!

Захотели, например, мы включать и выключать внешний двигатель, управляемый stepgen.2, командой из g-кода.

Выбрали motion.analog-out-00 (команда M68 E0 Q1 и M68 E0 Q0) , а управлять решили через stepgen.2.enable

Прописываем связь этих пинов в hal:

(это означает: создаём связь upr для соединения выходного пина analog-out-00 компонента motion со входным пином enable компонента stepgen.2)

А причина проста — несоответствие типа выходного и входного пинов:

Выход из ситуации может быть таким — использовать motion.digital-out-00 (команды M64 P0 и M65 P0) — формат сигнала BIT

И самое главное — НЕ ЗАБЫВАЙТЕ ПРОВЕРЯТЬ ФОРМАТЫ пинов и параметров, а также переменных. Это несложно, но позволит избежать многих ошибок.

Нужно ли изобретать велосипед или Компоненты реального времени. Часть 1.

Мы уже вполне осознанно начали лазить по файлам настройки и конфигурации CNC — самое время начать усовершенствовать работу нашего станка, придумать всякие удобства, «вкусности» и т.п.

Например, не запускать станок, пока точно не будет ясно, что оператор нажал две кнопки безопасности, разнесенные подальше друг от друга 😉

Пропишем эти две кнопки:

а дальше нужно включать станок только если эти «кнопочки» (start1 и start2) нажаты (= 0). Сделаем это через пины

всех трех координат. Т.е. пока отрабатывается программа — держи руки на кнопках!

Т.е. условием включения станка должно быть:

Мы, как электронщики, прекрасно знаем, что это легко реализовать через двух-входовый элемент ИЛИ-НЕ и двух-входовый И

(start1 или start2), затем инвертируем и на первый вход элемента И, а на второй вход того же И — axis.0.amp-enable-out

Тогда на выходе, при start1 = 0 и start2 = 0, получим тот же уровень, что и axis.0.amp-enable-out и передаём его на stepgen.0.enable

И так по всем трем осям.

А, если хотя бы один start (хотя бы одна кнопка) равен 1 (отжата), то stepgen.0.enable равен 0 (False) и движение по осям прекращается.

Что нам может предложить CNC из стандартного набора компонентов?

Пропишем всё в логике CNC (только одну координату для краткости):

Вроде всё. НЕТ! Опять забыли для начала «включить» компоненты и определить их в нужном потоке. Мы используем один компонент or2, один компонент not и один компонент and2 (для одной оси) или три компонента and2 (для трёх осей). Получается всё вместе:

Здесь loadrt and2 count=3 говорит о том, что мы будем использовать компонент 2-И трижды.

Это пример использования готовых компонентов для реализации «цифровой схемы». Но это далеко не все возможности компонентов реального времени.

Компоненты реального времени. Часть 2.

Аналогично «цифровым» прототипам в LinuxCNC есть и «аналоговые» компоненты:

limit[N] — ограничитель сигнала между min и max

lowpass — низкочастотный фильтр

mux2, mux4, mux8 — коммутаторы сигналов на 2, 4, 8 коммутируемых входов

Своя панель. Первые шаги.

В процессе отладки своего станка часто возникает потребность визуального контроля процесса или оперативного изменения параметров работы станка. Как это реализовать, если на стандартной панели таких элементов нет? Конечно, сделать эти элементы самостоятельно!

Начнём с простого примера. Нужно контролировать состояние сигналов stepgen.0.enable, stepgen.1.enable и stepgen.2.enable.

Светодиоды! Вот что нам понадобится. Но не настоящие из кремния и пластика, а «нарисованные». 😉

1. Создаём файл с именем ledall.xml

Делаем его в обычном текстовом редакторе.

halpin — это процедура задания имени «светодиода» в .hal

Сохраняем файл как ledall.xml в папку с файлом нашего .ini файла!

2. Прописываем в .ini в разделе [DISPLAY]:

а в разделе [HAL]:

3. Создаём файл ledall.hal и прописываем в нём:

Как вы уже поняли, мы использовали СИГНАЛЫ xenable, yenable и zenable из нашего файла .hal:

, т.е. эти сигналы обязательно должны быть уже созданы в файле .hal

Теперь мы можем видеть состояние наших двигателей во время работы станка.

По умолчанию КРАСНЫЙ — это FALSE или 0, а ЗЕЛЕНЫЙ — это TRUE или 1.

Как «прикрутить» свою панель к «стандартной»?

Сразу оговорюсь, что «стандартной» панелью назвал панель AXIS — это самая распространенная панель у новичков.

Для начала: Файл, в котором будем прописывать связи пинов панели с пинами CNC называется posgui.hal и лежит он в папке конфигурации (в папке с настройками — там, где лежат файлы .ini и .hal)

Свою панель вырисовываем в Glade (это такая программа для создания визуальной панели) и сохраняем в папке конфигурации под именем mygui.ui При прорисовывании в Glade брать «кнопки» и «индикаторы», по возможности, из меню HAL_PYTHON

В .ini прописываем:

Теперь при запуске CNC mygui.ui мы увидим стандартную панель с прикрученной к ней справа нашей панелью. Если открыть в CNC Станок-Установки HAL — PINS — gladevcp, то можно посмотреть весь список пинов нашей панели.

Когда дополнительных кнопок и индикаторов много — лучше для себя сделать табличку соответствий: пин панели — пин компонента — действие (так будет всё понятно и запутаться будет труднее).

Как «связать» кнопки своей панели с CNC?

Для связи нашей панели с CNC используем пины различных компонентов.

ВНИМАНИЕ! Особо обратите внимание на компонент halui — в нём есть множество полезных пинов!

1. Прописываем в .ini , что мы будем использовать компонент halui:

2. В описании EMC2 внимательно читаем о пинах компонента halui Например, Мы хотим на своей панели поставить индикатор «E-STOP». Берем в Glade в разделе «HAL_PYTHON» индикатор LED (он, например, прописал свой пин как hal_led1 Ищем соответствующий пин в halui:

Прописываем в postgui.hal (связываем эти два пина):

Теперь у нас индикатор на панели показывает состояние E-STOP.

Как не запутаться в сложной схеме CNC?

Как только мы начинаем понимать основы LCNC, то начинаем творить!

И натыкаемся на вопрос: как не запутаться в множестве связей? А ведь каждая связь должна иметь своё имя!

Я поступаю так: Даю каждой связи имя по имени выхода компонента (ведь выходы компонентов в LCNC объединять нельзя!). Например:

Источник

Оцените статью