Перейти к публикации

Smith2007

ПРОФИ
  • Публикации

    185
  • Зарегистрирован

  • Посещение

  • Дней в лидерах

    13

Все публикации пользователя Smith2007

  1. Пришли комплектующие. Спасибо Александру, очень помог в подборе комплектующих. За кронштейн - отдельная благодарность.
  2. И так ... продолжение. Проснулся как-то я утров в выходной день и подумал, что где-то валяется ПЛК с панелью оператора и не законченной работой. И вот с новыми силами решился таки я погрузится в релейную логику и попытать счастье получить стабильную, заявленную частоту 100 кГц. Первое с чем столкнулся это опять с разрывом мозга. Ну не могу понять я эту релейную логику. Ладно. Набрался терпения и шаг за шагом начал постигать и вдруг... читаю в описании... судя по описанию это именно то, что мне необходимо. А что если поиском по хелпу? Опаньки! Нашел! Это оказывается не функциональный блок, а функция DRVA/DRVI Дай-ка я ее вызову как привык, из ST Бинго! Я получил стабильную частоту! Действительно 100 кГц! Пришлось правда подтяжку к +24В сделать в виде резистора 1 кОм иначе форма сигнала совсем не походила ни на что вразумительное. При этом сама функция получает 4 параметра: Выход импульсов (Это Y0) Выход направления Y4 Частоту следования импульсов Количество импульсов. И так же нужно отметить, что функция не сразу выдает 100 кГц. Сначала плавно нарастает, затем плавно снижает перед торможением. Воодушевившись я бросился писать прошивку. Из неудобств с которыми я столкнулся: Программирование ПЛК и подключение панели оператора через один и тот-же интерфейс, что делает отладку несколько сложнее. Ниже привожу листинг прошивки. (******************************************************************************************* Входы/Выходы X0 - Сигнал датчику нуля оси Z Y0 - STEP. Выход на драйвер ШД Y4 - DIR. Выход на драйвер ШД Регистры M0 Bit Запускает/останавливает движение по заданным координатам M1 Bit Ручное движение вверх M2 Bit Ручное движение вниз M3 Bit Режим скорости ручного перемещения (0 - медленно S1, 1 - быстро S) M4 Bit Корректировка высоты заготовки M5 Bit Поимк нулевой точки D9 DWORD Уставка Z в импульсах D128 INT Высота стола (0.1 мм) D132 INT Высота заготовки (0.1 мм) D136 INT Количество импульсов на 1 мм перемещения по оси Z D140 INT Скорость движения по оси Z (мм/сек). Автоматический режим D142 INT Скорость движения по оси Z (мм/сек). Ручное управление D144 INT Текущая координата Axis Z (0.1 мм) D148 INT Текущая высота от заготовки до линзы Work Z (0.1 мм) D152 INT Текущий номер линзы Lens (1..4) D156 INT Фокусное расстояние линзы F1 (0.1 мм) D160 INT Фокусное расстояние линзы F2 (0.1 мм) D164 INT Фокусное расстояние линзы F3 (0.1 мм) D168 INT Фокусное расстояние линзы F4 (0.1 мм) D172 INT MaxZ. Максимальное значение Z D176 INT Фокусное расстояние выбранной линзы D8140 DWORD Текущее значение координаты Z в импульсах M8029 Bit Сигнал завершения позиционирования (в одном цикле) M8147 Bit 1 - происходит перемещение (Занято), 0 - ожидание команды ********************************************************************************************) IF M8002 = 1 THEN (* Выполняется однократно при старте программы *) M0 := FALSE; M1 := FALSE; M2 := FALSE; M4 := FALSE; END_IF; (* Вычисляем чатсоту импульсов *) dK := INT_TO_DINT(D136); (* K *) HiSpeed := INT_TO_DINT(D140); (* Hi Speed *) HiFreq := (dK * HiSpeed) / 10; LoSpeed := INT_TO_DINT(D142); (* Lo Speed *) LoFreq := (dK * LoSpeed) / 10; CASE D152 OF 1: (* Линза 1 *) D176 := D156; FLeanse := INT_TO_DINT(D156); 2: (* Линза 2 *) D176 := D160; FLeanse := INT_TO_DINT(D160); 3: (* Линза 3 *) D176 := D164; FLeanse := INT_TO_DINT(D164); 4: (* Линза 4 *) D176 := D168; FLeanse := INT_TO_DINT(D168); ELSE D176 := 0; FLeanse := 0; END_CASE; (* Вычисляем заданную координату Z в импульсах *) TableH := INT_TO_DINT(D128); (* Высота стола *) Mesure := INT_TO_DINT(D132); (* Высота заготовки *) MaxZ := INT_TO_DINT(D172 ); (* MaxZ смещение*) DestZ := MaxZ - (TableH + Mesure + FLeanse) ; (* Значение Z в 0,1 мм с учетом смещения MaxZ*) DestPulsZ := DestZ * (dK/10); (* Вычисляем количество импульсов для смещения *) DMOV( TRUE, DestPulsZ , D9); (* Вычисляем текущую координату Z в 0,1 мм*) DMOV( TRUE, D8140 , HardZ); AxisZ := MaxZ - (HardZ * 10) / dK; D144 := DINT_TO_INT(AxisZ); (* Вычисляем текущее расстояние от заготовки до линзы Z1 в 0,1 мм*) WorkZ := AxisZ - (TableH + Mesure); D148 := DINT_TO_INT(WorkZ); (* Soft Limit max *) IF AxisZ > MaxZ THEN M0 :=FALSE; M1 := FALSE; END_IF; (* Soft Limit min *) IF (AxisZ <= (TableH + Mesure)) THEN M0 := FALSE; M2 := FALSE; END_IF; (* По сигналам ручного управления отключить автоматическое M0 *) IF M1 OR M2 THEN M0 := FALSE; M5 := FALSE; END_IF; DDRVA( M0 , DestPulsZ, HiFreq, Y0 , Y4); (* Переключение скорости перемещения в ручном режиме *) IF M3 THEN HandSpeed := HiFreq; ELSE HandSpeed := LoFreq; END_IF; DDRVI( M1 , -80000 , HandSpeed , Y0 , Y4 ); DDRVI( M2 , 80000 , HandSpeed , Y0 , Y4 ); Y7 := M8147; (* Поиск референтной точки/ мащинный 0 по датчику *) DZRN( M5 , HiFreq, MaxZ * dK, X0 , Y0 ); (* Сброс M0 по оканчании позиционирования *) IF M8029 THEN M0 := FALSE; M5 := FALSE; END_IF; После отладки прошивки решил добавить некоторые плюшки, а именно: корректировку высоты заготовки при выставлении оси Z. И для этого мне нужно было привязать один маркер М4 к выполнению кода вычисляющего эту саму корректировку IF M4 THEN D0 := код; END_IF; И на этих 3-х строках я потерял 10 часов. При старте ПЛК, последний упорно выполнял вычисления D0 := .... даже если непосредственно перед условием поставить M4 := FALSE; Перелопатил десятки форумов, включая буржуйские и наткнулся на описание подобной ошибки. Оказывается при компиляции ST при первом цикле создаются какие-то не верные ссылки как раз на условных операторах Добавил еще одну задачу на ПЛК, но уже описанной в виде функциональной логики (оно несколько ближе чем релейная). И о чудо! Условие стало выполнятся как положено! Собственно на этом разработка прошивки завершилась. Осталось дождаться прихода комплектующих и смонтировать все на станок.
  3. Посмотрите тут на форуме есть топик про управление воздухом (вытяжка и продувка). Как раз реализация на ПЛК, который подключается к 6445g и управляет ею. Там есть сигнал старт и сигнал об окончании обработки. При желании можно подключиться к ПЛК по modbus и дописав программу управлять им удаленно. Сигнал "Окончание обработки" появляется после того как завершено задание и голова находится в исходном положении.
  4. Подниму тему. А если возложить это на постпроцессор? Что бы не заниматься построением вспомогательных траекторий?в посте есть команда Rotation onона выполняется когда меняется ось А. Или в настройках nc файла: сначала поворот, затем переход
  5. Нет. Софтовым методом не получится. Я сделал только одну задачу с 1 строкой Y0 := NOT Y0; Частота что-то около 2,5 кГц и частота не стабильная. Внутри меня все сопротивляется такому подходу Это не просто разрывает принципы - это разрывает мозг! Надо разобрать как эти инструкции из ST вызывать. Должен же быть способ.
  6. Добрый день. Есть задача автоматизировать подъемную колонну волоконного маркера. С кинематикой все понятно. Есть ШД, есть переходная пластина и есть крепление на вал ШВП. Снимаю штурвал (ручной) и на его место прикручиваю ШД. Что бы сильно не заморачиваться с электроникой решил воспользоваться готовыми ПЛК и простенькой панелью оператора. В качестве ПЛК взял на пробу китайский клон FX1N и панель оператора OP320A. Судя по описанию FX1N поддерживает импульсный вывод с частотой до 100 кГц на выходах Y000, Y001. Два дня пытаюсь понять как запустить этот самый генератор импульсов но пока безрезультатно. Язык релейной логики мне как-то совсем не понятен, а в инете только о нем и упоминается в связке с термином DRVA. Вопрос: Как сие чудо заставить выдать пачку импульсов? Знаком с языком ST. Он отдаленно напоминает смесь бейсика паскаля и Си. Кто либо пробовал сделать нечто подобное? И как воспользоваться этой DRVA из ST? зы. С контроллерами СТМ32 знаком. Но на ПЛК есть уже своя среда.
  7. Потому что первым он именно с релюшками мне попался и я его сразу купил. Через неделю уже пришел с транзисторными выходами. Думаю разницы ни какой нет.
  8. Это было первой идеей. Но что бы спрятать в короб с электроникой нужно было очень низкий профиль. Расстояние, которым располагал - около 30 мм. А так да, согласен, что это очень удобно.
  9. Завершающий этап - подключение кнопок. Старался уже ночью завершить работу по монтажу и кнопки просто подпаял к проводам. Когда работу закончил (2:30 на часах), заглянул под панель и ужаснулся. Клубок проводов который торчит во все стороны. Даже имея понимание что и куда подключено ... разобрать сложно. Т.е. не практично и просто ужасно. Лег спать. На следующий день в голове созрела идея как все упорядочить. Много писать не буду, просто фотки. станет все понятно. Изготовил сборный клемник из 3-х слоев оргстекла. На среднем слое вставил гайки М4. Слои склеил. Получил удобную монтажную панель. Размеры и габариты монтажной панели ровно по размеру бокса с электроникой на станке.
  10. Вырезал новую панель для кнопок из нержавки, выгравировал надписи. Получилось не плохо. Хотя косяк позже заметил Надпись "Регулировка давления" оказалась немного перекрыта гайкой редуктора. Не учел Работа узлов подсвечивает кнопки
  11. Тут все просто. Ситуация. Выполняем на сианке длинное задание. Компрессор (большой) используется не только для лащера. Фрезер пользует, просто колеса накачиваю или продуваю, крашу. В общем просадил давление. И сам нахожусь за стенкой и не вижу чего там происходит. При этом произойдет приостановка выполнения программы. Как только компрессор справится с расходом и поднимет давление - программа продолжит выполнение. Сегодня жду кнопки. Это даст возможность просто в ручном режиме всем упраалять игнорируя давления и пр. Какие минусы вижу: Как минимум это усложнение всей конструкции и как следствие снижение надежности. Контроллеры тоже горят. Через 2 дня работы в автоматическом режими у меня пропал реылекс "не забудь включить воздух и вытяжку" но получил и плюсы: запустил резку фанеры, а кран на компрессоре не отрыл (для магистрали лазера). Программа в стоп встала. Не пойму.. шо случилось??!! ах ну да! Автоматика отрубила. Кран открой И да... Можно выставить D204 в 0 или в 3 (в зависимости от того как низкое давление формируем) и будет ровно так, как Вы предлагаете
  12. Если что-то делать - делать нужно основательно и так, что бы было практично. Или не делать совсем. Я выбрал первый вариант. Первое чем занялся это снял размеры будущей панели на которой будет все смонтировано. Смоделировал включая расстановку компонентов. Вырезал из стали 1,5мм. С одной стороны довольно легко гнуть, с другой достаточно, что бы нарезать резьбу. покрыл порошковой окраской. Для управления вытяжкой использую реле плавного пуска Для включения мембранного компрессора - твердотельное реле. Для переключения воздуха - электромагнитные клапана на 24В На станке запресовал заклепки-гайки и закрепил новую панель Схема подключения За вечер написал прошивку на контроллер, еще вечер ушел на отладку. Немного описания... Принимаем за правило, что отключать полностью воздух при обработке нельзя. Хоть небольшая продувка но все же должна быть иначе очень вероятно попасть на сгоревшую линзу. В настройках слоев параметром blow управляем переключением воздуха. При установленном параметре в Yes - подача высокого давления. При No - подаем низкое давление. При завершении обработки вытяжка должна отключиться с задержкой. Время задержки настраиваемое с панели (параметр D200) При завершении работы, в кабинете может быть еще сильно задымлено и поэтому продувку так же отключаем с некоторой задержкой. Воздух низкого и высокого давления можно обеспечить двумя способами 1. 2 компрессора. Один производительный и с высоким давлением, второй - обычный мембранный. 2. Один производительный компрессор и дополнительный редуктор, что бы снизить давление во второй магистрали. Оба приведенных способа имеют некоторые различия в настройках. Контроллер позволяет следить за подачей воздуха и в зависимости от настройки - меняет свое поведение. (чаще его поведение хорошее. Не балует) Рассмотрим настройки для схемы с двумя источниками воздуха. Производительный компрессор на магистраль высокого давления и мембранный на магистраль низкого давления. 1. Параметр D204=0 При выполнении программы требуется подача воздуха высокого давления (Blowing = Yes). Если давление в магистрали ниже нормы - то произойдет останов программы. Для продолжения - нужно восстановить давление до нормы и нажать на панели RUIDA - "Start". 2. Параметр D204=1 При выполнении программы требуется подача воздуха высокого давления (Blowing = Yes). Если давление в магистрали ниже нормы - то программа продолжит выполнение с низким давлением. 3. Параметр D204=2 При выполнении программы требуется подача воздуха высокого давления (Blowing = Yes). Если давление в магистрали ниже нормы - то программа приостановится. Как только давление восстановится - программа продолжит выполнение (не требуется нажимать какие либо кнопки на RUIDA. Например у Вас был большой расход воздуха и давление снизилось ниже критичного. Станок приостановит программу. Как только давление будет востановлено - продолжит обработку. Если у Вас только 1 источник воздуха (производительный компрессор), а магистраль низкого давление формируется дополнительным редуктором тогда следующие варианты настроек: 4. Параметр D204=3 Если давление в магистрали ниже нормы - то произойдет останов программы. Для продолжения - нужно восстановить давление до нормы и нажать на панели RUIDA - "Start". Т.е. при недостатке давления - программа не будет выполнятся совсем. Ну а как же без воздуха то? 5. Параметр D204=4 Если давление в магистрали ниже нормы - то произойдет останов программы. Если давление восстановится - программа автоматически продолжит выполнение. Ну и немного видео Перечень компонентов АлиЭкспресс: ПЛК АлиЭкспресс: Датчик давления АлиЭкспресс: Панель оператора АлиЭкспресс: Твердотельное реле АлиЭкспресс: Реле плавного пуска Естественно шланги, фитинги и пр мелочевка, которая доступна в любом автомагазине запчастей грузовых авто.
  13. Пришли еще некоторые компоненты. Добавил ручное управление узлами (вытяжка, подача воздуха). На очереди будет взаимодействие с живой RUIDA и отладка алгоритмов в работе. Очень надеюсь в ближайшее время получить оставшиеся компоненты. И еще панель вырезать, согнуть и закрепить. Что бы все было "правильно"
  14. Модель станка видел, а пост не нашел.
  15. Подниму тему. Портальный станок с поворотной осью А. Поворотная ось вдоль Y. Перепробовал разные варианты постов для PowerMill. У всех ось А вдоль Х. Пробовал изменить кинематику станка но после указания, что А вдоль Y - пост падает при обработке УП. Собственно вопрос возник: Как же правильно создать пост у которого ось А будет вдоль Y? Или это не верный путь? Вдоль Y поворотку обозначают как правило осью B, но на станке она в настройках как A. Вторые сутки - результат нулевой.
  16. Хорошая идея. Это действительно более безопасный способ. Еще вот такой есть сигнал
  17. Это возможно добавить. ПЛК имеет дискретных 13 входов (задействовано только 3) и 8 выходов (задействовано 3). Любой алгоритм можно с легкостью реализовать. Я не указал еще, что контролирую сигнал "Авария". При этом я останавливаю и вытяжку и подачу воздуха. Так же думал, что при снижении допустимого давления можно выставить сигнал ошибки и остановить программу. Но мне показалось это не лучшим вариантом. Хотя можно внести в качестве настройки. Т.е продолжать работу с воздухом низкого давления или остановить работу по сигналу ошибки. На Руиде можно зацепить сигнал защиты трубки. Итоговая схема, кроме всего прочего, предполагает прежнее "Ручное" управление всеми узлами. На все случаи жизни не сделать алгоритм. Но это после монтажа всего проекта.
  18. В процессе эксплуатации станка пришел к выводу о необходимости модернизации системы управления вытяжкой и подачей воздуха. Почему я сделал такой вывод? На станке работает длинная программка, чередующая как резку так и гравировку. При этом для резки и гравировки необходима подача воздуха разного давления. Например при резке нужно подавать максимальное давление, а при гравировке достаточно не большого. Кроме того длительная программа приводит к тому, что оператор в это время свободно может заниматься другими делами и даже не всегда в одном помещении (за станком в таких случаях наблюдаю по видео). Вы можете сказать, что на контроллере Ruida большинство функций уже реализовано. Но мне штатный алгоритм нравится не очень. Во первых при завершении работы программы в зоне реза как правило еще может быть довольно дымно и по окончании программы вентилятор вытяжки должен еще какое-то время отработать. Во вторых, по окончании работы и продувка некоторое время так же должна продолжаться во избежании попадания продуктов горения на линзу. И в третьих, как уже писал выше, при работе программы я хочу оперативно (в зависимости от программы) менять давление воздуха в зону обработки. Для этого я использую 2 источника: 1. Мембранный компрессор АСО500 и большой, 3-х фазный компрессор с системой фильтров и редуктором. Так же нужна защита при которой если вдруг запросили высокое давление продувки, а давления не достаточно (например забыли включить компрессор) - произойдет подключение магистрали низкого давления. Для реализации этих алгоритмов не достаточно штатных возможностей контроллера Ruida. И я начал поиск решения. Первой идей было собрать все на чистом STM32. Но как-то все останавливала потребность в разводке печатной платы, пайке радиодеталей, отладке и пр. И тут по подсказке Павла я обратил внимание на недорогие ПЛК, которые в общем-то имеют на своем борту все необходимое. Заказл комплектующие. Часть их, включая ПЛК и дисплей приехали и я ринулся писать прошивку. Благо имеется некоторый опыт с Codesys. Спустя пару часов появилась рабочая прошивка. Осталось дождаться оставшихся комплектующих и собрать весь проект воедино. Продолжение следует....
  19. Резиночки только в одном месте - это дросель 3-х портовый. Заказал сейчас похожий но для масла. Придет - переставлю и проверю.
  20. Да, у меня подтекает немного.И затягивал по разному - не помогает. Течет совсем по капле но не приятно. Регулятор интересен. Возьму, попробую. Собирал из того, что было. По ссылке дроссель на максимальное давление 1 МПа. Насос качает больше. Вот такое нашел
  21. Ссылки на используемые компоненты: Маслостанция Полиуретановая трубка Тавотница угловая М4 Регулируемый распределитель Дозатор 3 мл
  22. Многие сталкиваются с тем, что всегда не хватает времени на нормальную смазку направляющих станка. Я не исключение. Всегда находятся более срочные дела. Решился исправить данную ситуацию и заодно поделиться с сообществом. Любую конструктивную критику приветствую. И так. Началось все с вопроса "А что делать?". Поиск по инету сразу отправил меня на алиэкспресс. Маслостанция с довольно вменяемой ценой и с разными объемами бака. Я выбрал литровый бак ибо больше мне кажется излишним. Маслостанция имеет 2 настройки. Первая - количество секунд в течении которых насос будет работать, после чего отключиться. Вторая - период времени через который будет запускаться цикл работы насоса. Вроде как все просто и понятно. На станке нужно смазывать 3 основных, линейных подшипника по осям X, Y. Z у меня хоть и моторизована, но использую ее крайне редко и смысла заморачиваться с автоматической смазкой 4-х винтов Z я не увидел. Тем более там не ШВП, а простая трапеция с пластиковыми гайками. Там же на али нашел дозатор. Они бывают на разное количество портов. На выходе каждого порта имеем фиксировано расход 3 мл после каждого цикла работы маслостанции. Для себя выбрал дозатор на 3 порта. Для подвода смазки к подшипникам так же приобрел ПВХ трубку D 4мм. Забегая вперед скажу сразу, что трубку пришлось покупать дважды ибо 10 метров категорически не хватает для 3-х магистралей. По приходу компонентов, собрал на столе (как на фото выше), залил масло и .... ничего не происходит. Насос включился, накачал давление. И давление не падает. Дозатор же работает иначе. При подаче давления масло отжимает подпружиненный поршень и закрывает выходное отверстие порта. Когда давление на входе падает - пружина выдавливает ровно 3 мл масла в порт. Т.е нужно думать над системой сброса давления. Решение нашлось сразу. Вместе с дозатором брал 3-х портовый распределитель с регулируемым протоком. Включил его для сброса давления отрегулировав проток таким образом, что бы давление падало в течении 30 секунд. На набор давления в таком виде не влияет. Когда разобрался со схемой подключения - начал искать место для размещения этих узлов. Что бы избежать случайного попадания масла в отсек электроники - решено изготовить отдельную панель с другой стороны станка. Моделируем панель Вырезаю из листового металла 1,5 мм (листогиб в наличии до 1,5 мм работает) и отдаю на порошковую окраску. Для крепления панели к станку, запресовываю заклепки-шайки. Для крепления элементов в панели вырезаны отверстия. Рассверлил их под резьбу М3, М4, М5 и нарезал ее. Что бы провода и трубки не болтались, изготовил из оргстекла органайзеры для крепления и наклеил на одну сторону двухсторонний скотч. Для подвода смазки к дальнему подшипнику оси Y, трубку проложил внутри балки. В балке высверлил отверстие в которое вставил резиновое уплотнительное кольцо (от какого-то авто, от системы омывателей). Две другие трубки проложил через штатные трассы. И собственно трасса с трубками Для прокачки масла в трубках подключаю каждую трубку по очереди напрямую к насосу и принудительно включаю насос (есть такая опция). Тавотница при этом выкручена. Как только масло начало выливаться из тавотницы - вкручиваю данную трубку в дозатор. Трубки промаркировал как A, B, C.
  23. Добрый день,Павел! Спустя время, что можете сказать о работе под линуксом?
  24. Установилось, но при попытке запуска - ошибка. Нужен ключ Сейчас вроде нашел нужный постпроцессор, но опять не понятно как его загрузить
  25. Smith2007

    Оптоволокно на СО2 базу

    Аналогичным вопросом занимался. Для волоконника нужна более жесткая механика. И радиусы изгибов существенно больше чем для трубок и проводков. Волновод не любит перегибов сильных. А это все ведет к более жесткой раме. 1390 есть такие станки, но цена их начинается от 2,5 млн.р. И габариты у них примерно 2*2,5*2,2 м Как пример Цена, что указана на али - не верная. Я связался с разными продаванами.
×
×
  • Создать...