Всё, чему я учусь самостоятельно, стараюсь не только воплощать в жизнь, но и заставлять это работать дольше одного дня, приносить долгосрочную пользу.
Однажды нам понадобилось организовать управление для самодельной штамповочной линии. Линия самодельная, а значит и управление, сделаем самодельное. Мы не использовали промышленные стандарты для передачи данных. Было решено, всё сделать из подручных материалов и ненужного старого компьютера. Главные условия: просто, дёшево, быстро. Надёжность – как получиться. Расскажу, как мы это сделали.
Штамповочная линия
Штамповочная линия представляет собой четыре блока с гидроцилиндрами (основное движение) и два блока с пневмоцилиндрами (подача заготовки). Не буду описывать конструктив. Отмечу только то, что цилиндры управляются при помощи 24 вольтовых распределителей.
Управление
Задача, заставить цилиндры работать по заданному алгоритму. Рабочий ход, пауза и так далее. Нам необходимо получить пять управляющих сигналов (4 гидро и 1 пневмо). Решили использовать микроконтроллер Atmega8 в качестве связующего элемента между компьютером и всем железом.
Схема получилась такая:
Все цилиндры имеют маркировку от A до E. Поэтому было решено, не мудрствуя лукаво, посылать на контроллер буквы. Он слушает ПО, и если пришла буква A, то даёт сигнал для цилиндра A и так далее для всех цилиндров. Так же добавили возможность контроля температуры масла в баке гидростанции. Летом в цехе жарко, масло иногда перегревается, поэтому решили добавить такой функционал. Взяли обычный DS1820 и на термопасту прикрепили к металлическому баку. Разницу температуры масла и бака словили на программном уровне. Погрешность измерения около 2 С. Для нас – самое то.
Накидали простое ПО. Самое сложное в нём – передача данных через com порт. Программу управления, если так это можно назвать, храним в обычном txt.
Вот так выглядит интерфейс ПО.
Процесс составление программы до безобразие прост. Оператор прямо в программе нажимает кнопки, привязанные к конкретным цилиндрам. Между ходами выставляет паузы в мс. Паузы необходимы, чтобы цилиндр успел вернуться в исходное состояние после рабочего хода. Да, обратной связи нет. Не нужна.
Сама программа управления выглядит так:
A 1000 E 1250 E 1250…
Ход цилиндра A | Пауза 1000 мс | Ход цилиндра E | …
После того, как оператор нажал пуск, запускается цикл. Цикл бесконечный, либо привязанный к любому счётчику ходов цилиндров, либо просто задано время, через которое он должен завершиться. Программа парсит текстовый файл и шлёт буквы в микроконтроллер.
Я уверен, что большинство читателей умеют/представляют как дёргать ногами mega и ей подобных. Описывать прошивку контроллера не буду.
Заключение
Самоделка работает 2 года. Сбоев не наблюдается. Один раз от вибрации отвалилась плата с микроконтроллером от переходника USB-Com. Устранили по старой русской традиции — скотчем и изолентой.
Работая более 10 лет на частном (малом) производстве, а так же наблюдая за подобными соседними организациями, я прихожу к выводу, что у нас очень плохая связь самоделкиных, например которых очень много на Хабре, с реальным производством. Нам ужасно не хватает автоматизации и инноваций на малых предприятиях. Все увлекаются силиконовыми стартапами, пытаются делать сложных роботов и обучать машины думать. Мне кажется, что вы куда больше принесёте пользы родным цехам и заводам, которые ждут вас и ваши изобретения, и которым всё сложнее и сложнее конкурировать с братским Китаем.
Автор: Comlan