Штука для намотки трансформаторов. Без Arduino

в 9:42, , рубрики: arduino, diy или сделай сам, plc, plc контроллер, s7-1200, намотка, никто не читает теги, плк, программирование микроконтроллеров, промышленная автоматизация, Промышленное программирование, трансформатор
Штука для намотки трансформаторов. Без Arduino - 1

В одном из проектов понадобилось намотать под сотню трансформаторов. Это стало поводом пересмотреть нелюбовь к моточным изделиям, которая тянулась ещё со школы, где, помогая в кабинете физики, вручную перематывал большую катушку для опытов Фарадея. Зелёную, как сейчас помню.

Поэтому вместо поиска трансформаторного завода меня манил ящик с деталями от старых проектов.

Видео

Проектирование

Быстрый поиск показал, что большая часть комплектующих в нём уже есть. Нашёлся даже шаговый мотор с винтом на ось укладчика, который достался в наследство с 3Д принтером.

Пока шли недостающие драйверы и шаговый мотор со сквозным валом, прикидывал конструкцию во Fusion 360 и печатал детали импровизированного укладчика.

Первая версия механики
Первая версия механики

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

Когда все детали оказались на столе, оставалось просто собрать всё в одну конструкцию.

Так за выходные получилось Мотало.

Управление

Сразу встал вопрос с управлением. Рядом с Ардуино нашёлся стенд с ПЛК Siemens, который показался более интересной альтернативой. Тем более в нём уже был экран для простого пользовательского интерфейса. Ещё нашлась плата управления 3D принтером под Marlin, но экран победил.

Штука для намотки трансформаторов. Без Arduino - 3

Первый запуск показал работоспособность изделия: катушка мотается, проволока укладыватся, но держатель катушки, казавшийся ровным на экране, в реальности оказался не таким из-за своей конструкции и особенностей FDM печати.

Вторая версия держателя, спроектированная под фотополимерный принтер, получилась удачнее. Появилась поддержка катушки с другой стороны: сверло, как ровный калиброванный вал нашедшийся под рукой, вращается в подшипниках и пружиной зажимает катушку между двумя половинами держателя. Это сильно улучшило повторяемость установки и стабильность катушки на высоких скоростях.

Вторая версия механики
Вторая версия механики

Программирование

ПЛК можно рассматривать как большую Ардуину в которой решены вопросы корпусирования, защиты портов ввода-вывода и связи с внешним миром. Как Controllino, только для промышленного применения. Вместо breadboard и «DuPont» — плоская отвёртка и провода с наконечниками.

Controllino, Arduino и ПЛК S7-1200
Controllino, Arduino и ПЛК S7-1200

В среде TIA Portal, через которую происходит программирование ПЛК, многие параметры конфигурируются мышкой, как в CubeMX от STM. Настраивается не только низкоуровневая периферия, но и высокоуровневые объекты-«библиотеки».

Для намотки потребовалось два таких технологических объекта для управления осями. В каждом объекте выбирается выход, куда подключён драйвер шагового двигателя, количество импульсов на оборот и задаются динамические характеристики. Даже джерки из коробки.

Настройка параметров оси
Настройка параметров оси

Программирование похоже на программирование микроконтроллеров. Только вместо C — Паскале-подобный МЭК язык. Например Blink в одну строчку:

"LED_Out" := "Clock_1Hz";

LED_Out — это выход ПЛК, а Clock_1Hz — системная переменная типа Bool, которая меняет своё значение раз в секунду.

Вначале код намотки был тривиален — после каждого слоя расчёт движения последующего и запуск на исполнение. Но в процессе эксплуатации захотелось дополнительных возможностей: отвода укладчика с одновременным медленным поворотом катушки в обратном направлении для более удобного отрезания и закрепления проволоки, режима ручной укладки тейпа и замедления на сменах направления движения укладчика. Показалось интересным добавить функцию растягивания неполного слоя на два, чтобы конец обмотки оказался там же, где и начало для соединения с контактами.

После таких доработок изначальный код превратился в стейт-машину под сотню строк.

CASE "Control_DB".state OF
// …
    "STATE_IDLE":
        IF "Control_DB".doRun THEN
            "Control_DB".doRun := FALSE;
            "Control_DB".state := "STATE_WINDING_PREPARE";
            "Control_DB".isAxisEnable := TRUE;
            
        ELSIF "Control_DB".doSetHome THEN
            "Control_DB".doSetHome := FALSE;
            #home := true;
        END_IF;
        
        
    "STATE_WINDING_PREPARE":
        #_rodPosition_mm := 0;
        #_rodVelocity_mms := 2;
        
        #_coilRotations := 0;
        #_coilVelocity_rps := 1;
        
        #_doExecuteCoil := TRUE;
        #home := true;
        
        "Control_DB".state := "STATE_WINDING_RUN_NEXT";
    "STATE_WINDING":
// …
    "STATE_WINDING_RUN_NEXT":
// …
    "STATE_MOVE_ROD_PREPARE":
// …
    "STATE_MOVE_ROD":
// …
    "STATE_TAPING_PREPARE":
// …
    "STATE_TAPING":
// …
    "STATE_RETURN_ROD_PREPARE":
// …
    "STATE_RETURN_ROD":
// …    
END_CASE;

А ведь ещё хочется автоматического закрепления и отрезания проволоки на выводах. Но это пока больше вопрос механики.

Интерфейс для экрана собирается мышкой, почти как WinForms в VisualStudio. Похожие свойства и события в элементах управления:

Визуальный редактор GUI
Визуальный редактор GUI

В получившемся интерфейсе задаётся количество витков, диаметр проволоки, ширина катушки и скорость намотки. Также есть кнопки остановки, запуска, начала намотки тейпа и обнуления.

Мотало в действии

Теперь нужно ввести параметры намотки, вставить корпус трансформатора, закрепить проволоку и запустить намотку. А в конце сделать несколько оборотов специальной лентой.

Штука для намотки трансформаторов. Без Arduino - 8

Режим с растягиванием слоя на два сработал только на тонкой проволоке. На более толстой два слоя вместо одного не влезли на катушку — они не дают катушке сесть на плату.

Итоги

Укладчик делался без серьёзных исследований, поэтому не получается виток-к-витку на тонком проводе, хотя и позволяет наматывать на скорости 10-15 об/сек и получать готовый трансформатор примерно за пять минут.

Моточные изделия теперь кажутся чуть менее страшными. Но, пожалуй, нужно всё-таки искать завод.

Штука для намотки трансформаторов. Без Arduino - 9

В качестве послесловия

Как так же просто сделать аналогичное устройство на отечественных аналогах — пока не знаю.

Надеялся на ОВЕН, но у них в ПЛК нет похожих удобных штук для управления осями (хотя, на ПЛК 110 можно извернуться и сделать руками в прерывании), а о разрабатываемом модуле управления перемещением МП210-601 поддержка сказала, что приоритеты сменились и планов по выпуску оного пока нет. И даже в  АСУТП-шной группе в Телеграм не нашлось подходящего ответа. Если кто-то знает удобную штуку для управления осями — поделитесь, пожалуйста, в комментариях.

Автор:
TehDmitry

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js