EMC2 - пояснялка от "чайника"
-
dansystems1
- Мастер
- Сообщения: 339
- Зарегистрирован: 23 апр 2012, 19:38
- Репутация: 10
- Откуда: Армения
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
Автору глубочайший респект, продалжайте, плс

- Ворон226
- Мастер
- Сообщения: 1923
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
КОМАНДЫ (продолжение).
3. С этой командой мы уже встречались - net - создает связь между сигналом и одним или несколькими пинами. Очень удобно, что если этой связи ещё не было (а ведь мы помним, что в Линуксе каждая связь имеет своё имя), то эта связь автоматически создаётся.
Например, нам нужно подать высчитанный программой сигнал Step на два контакта LPT-порта (мы пожелали управлять через отдельные драйвера двумя шаговиками по координате X). Для этого мы должны написать:
net xstep <= stepgen.0.step
net xstep => parport.0.pin-02-out
net xstep => parport.0.pin-03-out
или
net xstep <= stepgen.0.step => parport.0.pin-02-out => parport.0.pin-03-out
или
net xstep <= stepgen.0.step => parport.0.pin-02-out parport.0.pin-03-out
или
net xstep stepgen.0.step parport.0.pin-02-out parport.0.pin-03-out
или
net xstep parport.0.pin-02-out parport.0.pin-03-out stepgen.0.step
Т.е. главное в этой команде:
на первом месте - команда (net), затем название связи (xstep), а уже потом источник сигнала (выходной пин компонента - stepgen.0.step) и приёмник (приёмники) сигнала (входной или входные пины компонентов parport.0.pin-02-out и parport.0.pin-03-out).
Стрелочки => и <= Линуксом не воспринимаются и нужны только на удобства написания. Советую писать на начальных шагах, пока не привыкнете к названиям пинов и компонентам.
3. С этой командой мы уже встречались - net - создает связь между сигналом и одним или несколькими пинами. Очень удобно, что если этой связи ещё не было (а ведь мы помним, что в Линуксе каждая связь имеет своё имя), то эта связь автоматически создаётся.
Например, нам нужно подать высчитанный программой сигнал Step на два контакта LPT-порта (мы пожелали управлять через отдельные драйвера двумя шаговиками по координате X). Для этого мы должны написать:
net xstep <= stepgen.0.step
net xstep => parport.0.pin-02-out
net xstep => parport.0.pin-03-out
или
net xstep <= stepgen.0.step => parport.0.pin-02-out => parport.0.pin-03-out
или
net xstep <= stepgen.0.step => parport.0.pin-02-out parport.0.pin-03-out
или
net xstep stepgen.0.step parport.0.pin-02-out parport.0.pin-03-out
или
net xstep parport.0.pin-02-out parport.0.pin-03-out stepgen.0.step
Т.е. главное в этой команде:
на первом месте - команда (net), затем название связи (xstep), а уже потом источник сигнала (выходной пин компонента - stepgen.0.step) и приёмник (приёмники) сигнала (входной или входные пины компонентов parport.0.pin-02-out и parport.0.pin-03-out).
Стрелочки => и <= Линуксом не воспринимаются и нужны только на удобства написания. Советую писать на начальных шагах, пока не привыкнете к названиям пинов и компонентам.
Хочешь быть счастливым? Будь им!
- Ворон226
- Мастер
- Сообщения: 1923
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
4. Команда setp - устанавливает значение пина или параметра.
Если открыть ваш HAL-файл, то вы легко найдёте место, где прописываются параметры ваших шаговиков по координатам.
Например, по X:
setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 55000
setp stepgen.0.dirsetup 55000
setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
Тут даже переводить нечего - всё прозрачно! И мы видим, что команда setp может присваивать значения пинам и параметрам компонентов из INI-файла!!! Вот она связь между hal и ini...
Но, иногда, можно прописать значения не из ini, а непосредственно. А выглядеть это будет, например, так:
setp stepgen.0.position-scale 44.145839
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 55000
setp stepgen.0.dirsetup 55000
setp stepgen.0.maxaccel 150
Оба варианта работают.
Это основные команды. Другие будем изучать по мере встреч с ними
Если открыть ваш HAL-файл, то вы легко найдёте место, где прописываются параметры ваших шаговиков по координатам.
Например, по X:
setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 55000
setp stepgen.0.dirsetup 55000
setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
Тут даже переводить нечего - всё прозрачно! И мы видим, что команда setp может присваивать значения пинам и параметрам компонентов из INI-файла!!! Вот она связь между hal и ini...
Но, иногда, можно прописать значения не из ini, а непосредственно. А выглядеть это будет, например, так:
setp stepgen.0.position-scale 44.145839
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 55000
setp stepgen.0.dirsetup 55000
setp stepgen.0.maxaccel 150
Оба варианта работают.
Это основные команды. Другие будем изучать по мере встреч с ними
Хочешь быть счастливым? Будь им!
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
Отличная тема
! Ее сильно не хватало!
Несколько комментариев:
В принципе, несколько связей к одному сигналу не нужны, т.к. на них всегда будет одно и тоже значение.
addf stepgen.make-pulses base-thread
Вторая и третья - более медленные, одна рассчитывает обратную связь (т.е. сколько сделано шагов), вторая рассчитывает частоту make-pulses на следующий период:
addf stepgen.capture-position servo-thread
addf stepgen.update-freq servo-thread
Несколько комментариев:
Так нельзя - скажет, что Pin 'motion.current-vel' was already linked to signal 'vel'. Т.е. к 1 пину можно подключить только 1 связь, но к 1 связи можно подключить несколько пинов. Правильный вариант - тот который на первом рисунке.Ворон226 писал(а):К выходному пину можно подключать несколько связей. ВАЖНО, чтобы каждая связь была присоединена к выходу и к входу (входам).
В записи это может выглядеть так:
net vel <= motion.current-vel => stepgen.3.vel
net velin <= motion.current-vel => sum2.0.in0 , что означает
выходной пин current-vel компонента motion подключен связью vel к входному пину vel компонента stepgen.3 и связью velin к входному пину in0 компонента sum2.0
В принципе, несколько связей к одному сигналу не нужны, т.к. на них всегда будет одно и тоже значение.
addf - добавляет не компонент, а функцию компонента, например тот же stepgen имеет три функции, первая быстрая она генерирует шаги с заданной частотой:Ворон226 писал(а):2. addf - добавляет компонент реального времени в поток. А по-русски, эта команда определяет, где будет находиться компонент: в высокоскоростном потоке (base-thread) или в низкоскоростном потоке (servo-thread).
Выглядит это как-то так:
addf stepgen.make-pulses base-thread
Вторая и третья - более медленные, одна рассчитывает обратную связь (т.е. сколько сделано шагов), вторая рассчитывает частоту make-pulses на следующий период:
addf stepgen.capture-position servo-thread
addf stepgen.update-freq servo-thread
- Ворон226
- Мастер
- Сообщения: 1923
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
Блин! А вот исправить-то я уже и не могу...
Ник! Не трудно исправить как нужно?
И спасибо за науку
Ник! Не трудно исправить как нужно?
И спасибо за науку
Хочешь быть счастливым? Будь им!
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
Я вот думаю, может эту статью целиком в вики перенести?
Там редактировать сможет каждый, и будет сохраняться история изменений.
Вот сюда:
http://cnc-club.ru/wiki/index.php/Linux ... 0%BE%D0%B2
Чтобы редактировать wiki надо залогиниться, пароль и логин такие же как в форуме.
Там редактировать сможет каждый, и будет сохраняться история изменений.
Вот сюда:
http://cnc-club.ru/wiki/index.php/Linux ... 0%BE%D0%B2
Чтобы редактировать wiki надо залогиниться, пароль и логин такие же как в форуме.
- Ворон226
- Мастер
- Сообщения: 1923
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
Вики не хочет мой логин брать - говорит "Вы не указали допустимого имени участника."!
Хочешь быть счастливым? Будь им!
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
Попробуй сейчас... вроде что-то исправил 
- Ворон226
- Мастер
- Сообщения: 1923
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
заработало - буду переносить материалы...
Хочешь быть счастливым? Будь им!
- solo
- Мастер
- Сообщения: 1374
- Зарегистрирован: 20 окт 2011, 18:39
- Репутация: 272
- Настоящее имя: Юрий Соловьев
- Откуда: Украина Харьков
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
А можно ссылку где можно прочитать продолжение данной темы
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
Вот тут, но там пока тоже самое, все ждем продолжения
http://cnc-club.ru/wiki/index.php/Linux ... 0%BE%D0%B2
http://cnc-club.ru/wiki/index.php/Linux ... 0%BE%D0%B2
- Ворон226
- Мастер
- Сообщения: 1923
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
Вместе с продолжением испытаний станка появится и продолжение... На этой неделе - точно!
Планирую следующее:
- Сообщения об ошибках (это очень здОрово, что Линукс проверяет за нами ошибки и сообщает о них!)
- Разбор hal на примере (примерах?)
- логические и арифметические операции в hal
- типы переменных и числовых значений...
А дальше посмотрим...
Планирую следующее:
- Сообщения об ошибках (это очень здОрово, что Линукс проверяет за нами ошибки и сообщает о них!)
- Разбор hal на примере (примерах?)
- логические и арифметические операции в hal
- типы переменных и числовых значений...
А дальше посмотрим...
Хочешь быть счастливым? Будь им!
- Ворон226
- Мастер
- Сообщения: 1923
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
Написал об ошибках (не забываем, что это "Пояснялка от "ЧАЙНИКА"". Потому она далеко не претендует на справочник - только помогает не утонуть в море новой информации.
Удачного плавания!
Удачного плавания!
Хочешь быть счастливым? Будь им!
- solo
- Мастер
- Сообщения: 1374
- Зарегистрирован: 20 окт 2011, 18:39
- Репутация: 272
- Настоящее имя: Юрий Соловьев
- Откуда: Украина Харьков
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
В своей пояснялке вы рассказываете о КОМПОНЕНТАХ (маленьких программах) из которых состоит Lcnc было бы не плохо, чтобы в такой доступной форме рассказали бы и об этом, дали ссылку на первоисточник. Просто манера изложения мне очень понятна и легко понимаема.
Большое ВАМ спасибо.
Большое ВАМ спасибо.
- Ворон226
- Мастер
- Сообщения: 1923
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
BIT или не BIT? Вот в чём вопрос!
Захотели, например, мы включать и выключать внешний двигатель, управляемый stepgen.2, командой из g-кода.
Выбрали motion.analog-out-00 (команда M68 E0 Q1 и M68 E0 Q0) , а управлять решили через stepgen.2.enable
Прописываем связь этих пинов в hal:
net upr motion.analog-out-00 stepgen.2.enable
(это означает: создаём связь upr для соединения выходного пина analog-out-00 компонента motion со входным пином enable компонента stepgen.2)
и ... НЕ РАБОТАЕТ!!!
А причина проста - несоответствие типа выходного и входного пинов:
motion.analog-out-00 (float, out)
(bit) stepgen.<chan>.enable
Выход из ситуации может быть таким:
Использовать motion.digital-out-00 (команды M64 P0 и M65 P0) - формат сигнала BIT
Захотели, например, мы включать и выключать внешний двигатель, управляемый stepgen.2, командой из g-кода.
Выбрали motion.analog-out-00 (команда M68 E0 Q1 и M68 E0 Q0) , а управлять решили через stepgen.2.enable
Прописываем связь этих пинов в hal:
net upr motion.analog-out-00 stepgen.2.enable
(это означает: создаём связь upr для соединения выходного пина analog-out-00 компонента motion со входным пином enable компонента stepgen.2)
и ... НЕ РАБОТАЕТ!!!
А причина проста - несоответствие типа выходного и входного пинов:
motion.analog-out-00 (float, out)
(bit) stepgen.<chan>.enable
Выход из ситуации может быть таким:
Использовать motion.digital-out-00 (команды M64 P0 и M65 P0) - формат сигнала BIT
Хочешь быть счастливым? Будь им!
- Ворон226
- Мастер
- Сообщения: 1923
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
Нужно ли изобретать велосипед или Компоненты реального времени
(часть первая)
Мы уже вполне осознанно начали лазить по файлам настройки и конфигурации CNC - самое время начать усовершенствовать работу нашего станка, придумать всякие удобства, "вкусности" и т.п.
Например, не запускать станок, пока точно не будет ясно, что оператор нажал две кнопки безопасности, разнесенные подальше друг от друга
Пропишем эти две кнопки:
net start1 <= parport.0.pin-10-in
net start2 <= parport.0.pin-11-in
а дальше нужно включать станок только если эти "кнопочки" (start1 и start2) нажаты (= 0). Сделаем это через пины
stepgen.0.enable
stepgen.1.enable
stepgen.2.enable
всех трех координат. Т.е. пока отрабатывается программа - держи руки на кнопках!
Т.е. условием включения станка должно быть:
start1 = 0
start2 = 0
stepgen.0.enable , stepgen.1.enable и stepgen.2.enable имеют уровень сигнала равный 1 или True
Мы, как электронщики, прекрасно знаем, что это легко реализовать через двух-входовый элемент ИЛИ-НЕ и двух-входовый И
(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 из стандартного набора компонентов?
Смотрим мануал:
6.5 Логические компоненты
6.5.3 or2
Компонент "or2" это двух вводовый вентиль "или" ("or").
6.5.2 not
Компонент "not" ("не") это битовый инвертор.
6.5.1 and2
Компонент "and2" это вентиль "и" ("and") с двумя вводами.
Пропишем всё в логике CNC (только одну координату для краткости):
net start1 => or2.0.in0
net start2 => or2.0.in1
net orout <= or2.0.out => not.0.in1
net notout <= not.0.out => and2.0.in0
net andin1 <= axis.0.amp-enable-out => and2.0.in1
net andout <= and2.0.out => stepgen.0.enable
Вроде всё... НЕТ! Опять забыли для начала "включить" компоненты и определить их в нужном потоке... Мы используем один компонент or2, один компонент not и один компонент and2 (для одной оси) или три компонента and2 (для трёх осей). Получается всё вместе:
loadrt or2
loadrt not
loadrt and2 count=3
addf or2.0 servo-thread
addf not.0 servo-thread
addf and2.0 servo-thread
addf and2.1 servo-thread
addf and2.2 servo-thread
net start1 <= parport.0.pin-10-in
net start2 <= parport.0.pin-11-in
net start1 => or2.0.in0
net start2 => or2.0.in1
net orout <= or2.0.out => not.0.in1
net notout <= not.0.out => and2.0.in0 => and2.1.in0 => and2.2.in0
net andin0 <= axis.0.amp-enable-out => and2.0.in1
net andout0 <= and2.0.out => stepgen.0.enable
net andin1 <= axis.1.amp-enable-out => and2.1.in1
net andout1 <= and2.1.out => stepgen.1.enable
net andin2 <= axis.2.amp-enable-out => and2.2.in1
net andout2 <= and2.2.out => stepgen.2.enable
Здесь loadrt and2 count=3 говорит о том, что мы будем использовать компонент 2-И трижды.
Это пример использования готовых компонентов для реализации "цифровой схемы". Но это далеко не все возможности компонентов реального времени.
(часть первая)
Мы уже вполне осознанно начали лазить по файлам настройки и конфигурации CNC - самое время начать усовершенствовать работу нашего станка, придумать всякие удобства, "вкусности" и т.п.
Например, не запускать станок, пока точно не будет ясно, что оператор нажал две кнопки безопасности, разнесенные подальше друг от друга
Пропишем эти две кнопки:
net start1 <= parport.0.pin-10-in
net start2 <= parport.0.pin-11-in
а дальше нужно включать станок только если эти "кнопочки" (start1 и start2) нажаты (= 0). Сделаем это через пины
stepgen.0.enable
stepgen.1.enable
stepgen.2.enable
всех трех координат. Т.е. пока отрабатывается программа - держи руки на кнопках!
Т.е. условием включения станка должно быть:
start1 = 0
start2 = 0
stepgen.0.enable , stepgen.1.enable и stepgen.2.enable имеют уровень сигнала равный 1 или True
Мы, как электронщики, прекрасно знаем, что это легко реализовать через двух-входовый элемент ИЛИ-НЕ и двух-входовый И
(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 из стандартного набора компонентов?
Смотрим мануал:
6.5 Логические компоненты
6.5.3 or2
Компонент "or2" это двух вводовый вентиль "или" ("or").
6.5.2 not
Компонент "not" ("не") это битовый инвертор.
6.5.1 and2
Компонент "and2" это вентиль "и" ("and") с двумя вводами.
Пропишем всё в логике CNC (только одну координату для краткости):
net start1 => or2.0.in0
net start2 => or2.0.in1
net orout <= or2.0.out => not.0.in1
net notout <= not.0.out => and2.0.in0
net andin1 <= axis.0.amp-enable-out => and2.0.in1
net andout <= and2.0.out => stepgen.0.enable
Вроде всё... НЕТ! Опять забыли для начала "включить" компоненты и определить их в нужном потоке... Мы используем один компонент or2, один компонент not и один компонент and2 (для одной оси) или три компонента and2 (для трёх осей). Получается всё вместе:
loadrt or2
loadrt not
loadrt and2 count=3
addf or2.0 servo-thread
addf not.0 servo-thread
addf and2.0 servo-thread
addf and2.1 servo-thread
addf and2.2 servo-thread
net start1 <= parport.0.pin-10-in
net start2 <= parport.0.pin-11-in
net start1 => or2.0.in0
net start2 => or2.0.in1
net orout <= or2.0.out => not.0.in1
net notout <= not.0.out => and2.0.in0 => and2.1.in0 => and2.2.in0
net andin0 <= axis.0.amp-enable-out => and2.0.in1
net andout0 <= and2.0.out => stepgen.0.enable
net andin1 <= axis.1.amp-enable-out => and2.1.in1
net andout1 <= and2.1.out => stepgen.1.enable
net andin2 <= axis.2.amp-enable-out => and2.2.in1
net andout2 <= and2.2.out => stepgen.2.enable
Здесь loadrt and2 count=3 говорит о том, что мы будем использовать компонент 2-И трижды.
Это пример использования готовых компонентов для реализации "цифровой схемы". Но это далеко не все возможности компонентов реального времени.
Последний раз редактировалось Ворон226 21 фев 2013, 20:27, всего редактировалось 1 раз.
Хочешь быть счастливым? Будь им!
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2858
- Откуда: Тюмень
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
Вот потому "электронщики не понимают программистов",
что логика работы вот такой схемы схватывается глазом за полторы секунды,
а об hal-описание ее работы "моск сломать можно".
Или у меня это с непривычки?
Кстати, не было попыток написать транслятор схемы логики работы в hal?
что логика работы вот такой схемы схватывается глазом за полторы секунды,
а об hal-описание ее работы "моск сломать можно".
Или у меня это с непривычки?
Кстати, не было попыток написать транслятор схемы логики работы в hal?
Чудес не бывает. Бывают фокусы.
- Ворон226
- Мастер
- Сообщения: 1923
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
Точно!
Самое простое и понятное - графическое изображение. Тут и говорить-то не нужно!
А схемку я "прикручу" к вики - сам не успел нарисовать...
Самое простое и понятное - графическое изображение. Тут и говорить-то не нужно!
А схемку я "прикручу" к вики - сам не успел нарисовать...
Хочешь быть счастливым? Будь им!
- Тима
- Почётный участник

- Сообщения: 3162
- Зарегистрирован: 01 мар 2012, 20:47
- Репутация: 1089
- Настоящее имя: Тимур
- Откуда: КБР
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
Serg-tmn писал(а):Вот потому "электронщики не понимают программистов",
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Я все пойму, Вы только дайте денег!!!
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
ИМХО лучше эти кнопки на Estop завести.
Но как пример использования компонентов - хорошо
.
Но как пример использования компонентов - хорошо
