|
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 29
|
|
Самопальный ПЛК05.10.2015, 15:43. Показов 17892. Ответов 28
Метки нет (Все метки)
Всем доброго времени суток! Собственно сабж. Я сам новичок в этих делах, так что прошу сильно-больно не пинать. Маленькая предыстория:
На работе поручили группе инженеров запилить свой подъемник для доставки некоего груза на стеллаж. Понадобился двигатель, купили. Сервопривод ESTUN ProNet-E-04A. Надо как-то управлять. Как управлять? Пошли к программистам с этим вопросом. :) Все занятые, у всех дел по самые помидоры. И тут начальник на меня: "А вон молодого бойца берите, он все равно ниче не делает." На счет последнего я бы конечное поспорил, но с другой стороны и задача интересная и опыту поднабраться, да и как-то воевать с начальством не хотелось бы))) Тем более, что оно у нас в принципе хорошее. Ну в общем взялся ковырять железяку. Никогда раньше с промышленной автоматикой дел не имел, (в общем-то поэтому и решил написать сюда в надежде на добрый совет, ну и в общем-то и поэтому же и получилось столько велосипедов и сейчас застрял на одном мутном для меня месте) поэтому полез ковырять мануалы, теорию и интернеты. Посмотрев, что такое есть ПЛК и как примерно им управлять, понял что нихрена в этом не понимаю и надо идти по более знакомому пути (сейчас жалею, что все-таки не взяли готовый ПЛК, мб осваивать его таки пришлось бы быстрее чем городить свои велосипеды). Коллега посоветовал взять вот эту штуку в качестве мозгов. Штука классная, интересная, недорогая, в общем годная замена той же малине ящетаю. Запилил на нее дебиан со всем необходимым, напейсал прогу на питоне. Все запускается, все работает в принципе... Но тут оказалось, что протокола Modbus недостаточно для шевеления сервой и нужно юзать аналоговый интерфейс ввода-вывода. Ну в общем не проблема вроде бы, есть же GPIO, есть же драйверы и источник питания на 24V (необходимое напряжение согласно доке), есть даже библиотека для Python, для шевеления портами, WiringPi называется если вдруг (правда у меня так и не получилось скомпилить ее нормально, пришлось делать через системные файлы устройств, т.е. например echo out > /sys/divices/virtual/gpio/gpio/direction), но тут вот какое дело: Для того, чтобы шевелить валом сервы через этот интерфейс надо подавать "тактовые импульсы" с достаточно высокой частотой и определенными требованиями по длительности импульсов: http://storage1.static.itmages.som/i/15/1006/s_1444129560_2587296_8a0e99d105.png И я теперь незнаю, то ли мне теперь лезть в самые кишоки и попытаться сделать это все через таймеры арма (мозг ODROID-C1), то ли как-то системными средствами попытаться это провернуть в линухе. В общем подскажите, пожалуйста. Кое-какие схемки и формы импульсов: http://storage1.static.itmages.som/i/15/1006/s_1444129827_9686261_af83d7c91e.png http://storage1.static.itmages.som/i/15/1006/s_1444129827_3325558_0eb209c250.png http://storage1.static.itmages.som/i/15/1006/s_1444129827_8427557_efda7ff0d7.png
0
|
|
| 05.10.2015, 15:43 | |
|
Ответы с готовыми решениями:
28
Термостат, самопальный NEST самопальный установщик смд компонентов Самопальный USB-программатор (не usbasp) |
|
0 / 0 / 0
Регистрация: 16.04.2010
Сообщений: 767
|
|
| 05.10.2015, 16:06 | |
|
Промышленного оборудования полным полно, а Вы умудрились выбрать самый неправильный вариант.
А коллега-советчик, явно с промэлектроникой рядом не стоял. Где ТЗ на хотелки?
0
|
|
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,257
|
|||
| 05.10.2015, 16:20 | |||
Да и сложность такова, что стоит ли овчинка свеч? А второй вариант у вас не выйдет, потому что Linux на одроиде нифига не реалтаймовый, ни хард, ни софт. То есть при имитации таймера процессом в kirmit-sposi, не говоря о usir-sposi, у вас частота будет постоянно плыть и период будет то меньше, то больше. В общем прикиньте какая частота и точность вам нужна, может вам это и некритично будет.
0
|
|||
|
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
|
|
| 05.10.2015, 16:27 | |
|
Серводвигатель и серводрайвер имеют соответсвенно выход и вход встроенного энкодера точного позиционирования. Те графики что вы привели к нему и относятся. Управлять по ним нельзя, он только для обратной связи. Все управление обычно идет через интерфейс, SERCOS, MODBUS, PROFIBUS и др. Дискретные и аналоговые входы выходы для подключения дополнительных датчиков, например конечного положения.
0
|
|
|
Oxford
|
|
| 05.10.2015, 16:37 | |
|
Читайте мануал там все написано и показано.
А вообще поторопились с выбором. Почему именно этот комплект? Для подьемника можно проще и дешевле рулить где справится даже МК. |
|
|
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 29
|
|||||||
| 05.10.2015, 16:52 | |||||||
fr0stir писал(а):
0
|
|||||||
|
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 29
|
||||
| 05.10.2015, 17:14 | ||||
0
|
||||
|
|
|
| 05.10.2015, 17:18 | |
|
ПЛК очень сильно отличается от обычного ПК. Для них обычно пишут на МЭКовских специальных языках. Эти языки разработаны для некой виртуальной машины, которая крутится на железе в ПЛК. Стоят ПЛК дорого, софт отличается от фирмы к фирме. Языки могут показаться поначалу очень ущербными, но это исторически так складывается, что промышленность идёт очень медленно в этом плане.
В общем, для одноразовой поделки (проекта) в область промышленного программирования для настоящего ПЛК лучше не соваться. Эти знания можно будет применить только в этой области и вряд ли где больше. Очень они специфические. Разобраться в устройстве Linuxа будет куда полезнее, тем более, что некоторые ПЛК используют его для своей работы (ISaGRAF на uClinux, к примеру). Если всё-таки хотите вступить на эту стезю, то советую хорошенько подумать и почитать доки (форумы) по выбранной линейке ПЛК. Языки мэковские очень ограничены и там нет такой свободы, как C. Там ещё есть очень много ограничений, т.к. фирмы производители выжимают деньгу из любых приблуд для ПЛК. Тебя поставят в рамки и обложат со всех сторон, существенно ограничивается количество степеней свободы. ODROID - это не ПЛК, также как и другое подобное железо. У ПЛК, как минимум, последовательные интерфейсы, входы/выходы развязаны. От себя могу посоветовать для пробы относительно дешёвые китайские ПЛК серии Wecon LX3V, их можно заказать на алиэкспрессе. Там есть скоростные дискретные выходы, но подойдёт ли вам - не знаю. Программировать их можно на ущербном паскале подобном ST.
0
|
|
|
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 29
|
|||||
| 05.10.2015, 17:39 | |||||
Да и не хотелось вообще туда соваться, просто мне принесли шелезяку и сказали: "Крути!")))
0
|
|||||
|
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 29
|
|||
| 05.10.2015, 17:55 | |||
0
|
|||
|
Oxford
|
|
| 05.10.2015, 19:24 | |
|
Ну кто выбирал сервопривод к тому и обращайтесь за помощью. Значит они(он, она) имели квалификацию и знания на которые опирались.
|
|
|
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 29
|
||
| 07.10.2015, 19:16 | ||
И знания они имеют, да, но только по части электродвигателей и не по софтварным вещам. Ну в общем копнув чуть глубже, оказалось, что у одройдовского проца целых ажно 11 таймеров. Остается только выяснить как система ими пользуется... Да и не посоветуете, пожалуйста, драйвер для управления шаговиками? Как я понял он вполне может подойти для той схемы, что я приводил выше с открытым коллектором. Собсна, в доке указано, что можно взять да и воткнуть SN75174 или MC3487 между "Host Controller" и этим самым злополучным интерфейсом, только хватит ли 3.3V с GPIO платы?
0
|
||
|
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
|
|
| 07.10.2015, 19:55 | |
|
Если не имеете опыта работы с PLC и промышленной электроникой, послушайте людей, которые работают с ней не первый год.
Все эти ужимки с прямым доступом к таймерам и регистрам тут уже решены до (за) вас. Надо только отдать серводрайверу внятные команды через интерфейс и научиться считывать через него же ответы от драйвера и состояние дополнительных датчиков (если они есть и подключены к драйверу). ИМХО. P.S. Серводвигатель ни разу не шаговик.
0
|
|
|
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 29
|
|
| 11.11.2015, 21:06 | |
|
В общем капитально я уперся в йедро линуха и эти самые таймеры...
Если вас не затруднит, не подскажете, пожалуйста, PLC для описанных выше задач и еще желательно какую-нибудь литературу по ним/МЭКовским языкам? Беглый обзор привел к овновским ПЛК
0
|
|
|
0 / 0 / 0
Регистрация: 22.03.2015
Сообщений: 838
|
|
| 11.11.2015, 23:05 | |
|
Овновские плк не смогут управлять аналоговым сервоприводом, да и вообще большинство плк не сможет, разве что через какие-то доп. спец. модули управления движением.
Зато легко сможет почти любой мк, как это ни странно ) И что-то я не верю, что у этого привода только аналоговое управление, хотел посмотреть мануал, но с estun.som обрывается закачка
0
|
|
|
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 29
|
|||
| 12.11.2015, 05:04 | |||
Там, в общем-то, могут использоваться разные комбинации управляющих импульсов. Выше я привел графики, в шапке.
http://storage2.static.itmages.som/i/15/1113/s_1447375879_1579266_e2edc49dfb.png
0
|
|||
|
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 29
|
||
| 12.11.2015, 05:12 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 29
|
|||
| 16.11.2015, 13:49 | |||
З.Ы. Похер на таймеры (пока что, по крайней мере) короче: забыл я совсем про такую замечательную штуку как PWM, тобишь ШИМ. :) И он в одройде есть. И даже проброшены интерфейсы в sysfs.
0
|
|||
|
0 / 0 / 0
Регистрация: 07.02.2013
Сообщений: 92
|
||
| 16.11.2015, 19:35 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 22.03.2015
Сообщений: 838
|
|
| 16.11.2015, 20:22 | |
|
Посмотрел мануал, действительно, похоже нет управления позиционированием по протоколу, но там и не аналоговый и-фейс (аналоговый и-фейс сервопривода - это ШИМ с периодом 20 мс), а просто подсчёт импульсов. Сформировать программно точное кол-во импульсов на 100 КГц не сможет ни обычный ПЛК, ни ваша линуксовая железка. Хотя для линуксовой железки есть одно извращённое решение - формировать импульсы с помощью последовательного порта, посылая туда спец символы 0x55, 0xD5, 0xF5, 0xFD, 0xFF, см. картинку для иллюстрации принципа
http://**************************/download/file.php?id=25690&sid=b335ec9a8d9d508872 a70dfcef57aee8
0
|
|
| 16.11.2015, 20:22 | |
|
Помогаю со студенческими работами здесь
20
STM32 самопальный bootloader Проектирование ПЛК Посоветуйте ПЛК ПЛК (Arduino Mega2560 совместимый) Управление блоками ввода-вывода от ПЛК AVR Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y
Z4Tv2zpXVVo
https:/ / github. com/ shumilovas/ med2. git
|
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа.
В качестве фильтра для отбора справочника служит группа номенклатуры.
Отбор по наименованию группы. . .
|
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
|
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс.
Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
|
|
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа.
В качестве фильтра для отбора служит значение перечислений.
/ / Событие "НачалоВыбора" реквизита на форме. . .
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|