Форум программистов, компьютерный форум, киберфорум
Электроника и радиотехника
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.68/91: Рейтинг темы: голосов - 91, средняя оценка - 4.68
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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.10.2015, 15:43
Ответы с готовыми решениями:

Термостат, самопальный NEST
Маленькая преамбула. Занимаюсь разработкой мозгов для умных котлов - в принципе, вполне обычный котел для отопления и горячей воды, но...

самопальный установщик смд компонентов
казалось бы сложная штука, но вот работающий образец из принтера http://www.morsohod.org/index.php/projects/138-cloning интересно,...

Самопальный USB-программатор (не usbasp)
Верх: http://eax.me/files/2017/02/avr-programmer-top.jpg Низ: http://eax.me/files/2017/02/avr-programmer-bottom.jpg

28
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
Цитата Сообщение от poromoyrmod
Коллега посоветовал взять вот эту штуку в качестве мозгов. Штука классная, интересная, недорогая, в общем годная замена той же малине ящетаю.
Что вы коллеге сделали, что он так иезуитски отмстил? :)

Цитата Сообщение от poromoyrmod
И я теперь незнаю, то ли мне теперь лезть в самые кишоки и попытаться сделать это все через таймеры арма (мозг ODROID-C1), то ли как-то системными средствами попытаться это провернуть в линухе.
Оба варианта кривые. Если вы полезете в таймеры и это у вас получится, у вас полетит ядро линукса и все прикладное, что там крутится.
Да и сложность такова, что стоит ли овчинка свеч? А второй вариант у вас не выйдет, потому что 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
Что вы коллеге сделали, что он так иезуитски отмстил? :)
Да неее, просто он:
Цитата Сообщение от mrKyrytt
...явно с промэлектроникой рядом не стоял.
:)

Цитата Сообщение от fr0stir
Если вы полезете в таймеры и это у вас получится, у вас полетит ядро линукса и все прикладное, что там крутится.
Ну вот я это и подозревал. Печально, конечно.

Цитата Сообщение от fr0stir
А второй вариант у вас не выйдет, потому что Linux на одроиде нифига не реалтаймовый, ни хард, ни софт.
Какой бы он там ни был по умолчанию, разве нельзя его туда поставить нужный или пропатчить например? Да и приоритеты всякие есть специльные ЕМНИП.

Цитата Сообщение от fr0stir
То есть при имитации таймера процессом в kirmit-sposi, не говоря о usir-sposi, у вас частота будет постоянно плыть и период будет то меньше, то больше.
Вот этого я и боюсь, тащемта)

fr0stir писал(а):
В общем прикиньте какая частота и точность вам нужна, может вам это и некритично будет.
Может быть и нет. Спасибо, буду экспериментировать дальше)
0
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 29
05.10.2015, 17:14
Цитата Сообщение от omokost
Серводвигатель и серводрайвер имеют соответсвенно выход и вход встроенного энкодера точного позиционирования.
это другой разъем на сервоусилителе и он подключен
Цитата Сообщение от omokost
Те графики что вы привели к нему и относятся.
не относятся 100%
Цитата Сообщение от omokost
Управлять по ним нельзя, он только для обратной связи.
ну если через разъем для энкодера, то да, нельзя)))
0
 Аватар для уни
368 / 146 / 17
Регистрация: 06.03.2010
Сообщений: 327
Записей в блоге: 1
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
Цитата Сообщение от уни
ПЛК очень сильно отличается от обычного ПК. Для них обычно пишут на МЭКовских специальных языках. Эти языки разработаны для некой виртуальной машины, которая крутится на железе в ПЛК. Стоят ПЛК дорого, софт отличается от фирмы к фирме. Языки могут показаться поначалу очень ущербными, но это исторически так складывается, что промышленность идёт очень медленно в этом плане.
В общем, для одноразовой поделки (проекта) в область промышленного программирования для настоящего ПЛК лучше не соваться. Эти знания можно будет применить только в этой области и вряд ли где больше. Очень они специфические.
Спасибо за краткий экскурс. :)
Да и не хотелось вообще туда соваться, просто мне принесли шелезяку и сказали: "Крути!")))

Цитата Сообщение от уни
Разобраться в устройстве Linuxа будет куда полезнее, тем более, что некоторые ПЛК используют его для своей работы (ISaGRAF на uClinux, к примеру).
Ну вот это я и пытаюсь сделать. Но товарищ fr0stir предупреждает, что там все будет плавать несмотря ни на что.

Цитата Сообщение от уни
ODROID - это не ПЛК, также как и другое подобное железо. У ПЛК, как минимум, последовательные интерфейсы, входы/выходы развязаны.
Да это я уже понял. Просто не хочется выкидывать то, что уже сделано, тем более, что к срокам мы сильно-то и не привязаны. А если брать именно готовый ПЛК, то это же придется там все с нуля осваивать.

Цитата Сообщение от уни
От себя могу посоветовать для пробы относительно дешёвые китайские ПЛК серии Wecon LX3V, их можно заказать на алиэкспрессе. Там есть скоростные дискретные выходы, но подойдёт ли вам - не знаю. Программировать их можно на ущербном паскале подобном ST.
Спасибо, будем знать на всякий пожарный :)
0
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 29
05.10.2015, 17:55
Цитата Сообщение от Oxford
Читайте мануал там все написано и показано.
И написано и показано. Только ман писан китайцами судя по всему (ибо изделие их же) на очень суровом техническом онглицком для суровых же инженеров АСУТП. :) И мне как нубу очень тяжело въехать...
Цитата Сообщение от Oxford
А вообще поторопились с выбором. Почему именно этот комплект?
Для подьемника можно проще и дешевле рулить где справится даже МК.
Ну я в процессе выбора, к сожалению, не участвовал. Если можете подсказать варианты, буду очень признателен.
0
Oxford
05.10.2015, 19:24
Ну кто выбирал сервопривод к тому и обращайтесь за помощью. Значит они(он, она) имели квалификацию и знания на которые опирались.
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 29
07.10.2015, 19:16
Цитата Сообщение от Oxford
Ну кто выбирал сервопривод к тому и обращайтесь за помощью. Значит они(он, она) имели квалификацию и знания на которые опирались.
Ну если б все было так здорово, то возможно мне бы и не пришлось писать сюда простыни.
И знания они имеют, да, но только по части электродвигателей и не по софтварным вещам.

Ну в общем копнув чуть глубже, оказалось, что у одройдовского проца целых ажно 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
Цитата Сообщение от vt340
Овновские плк не смогут управлять аналоговым сервоприводом, да и вообще большинство плк не сможет, разве что через какие-то доп. спец. модули управления движением.
Дык у него же есть режим импульсного управления положением. Собсна его-то я и пытаюсь сделать. Т.е., например, для того, чтобы провернуть вал на такой-то угол, нужно подать такое-то кол-во импульсов перемещения, где частота этих импульсов будет задавать скорость вращения. А чтобы задать направление вращения используется либо низкий уровень сигнала, либо высокий.
Там, в общем-то, могут использоваться разные комбинации управляющих импульсов. Выше я привел графики, в шапке.

Цитата Сообщение от vt340
И что-то я не верю, что у этого привода только аналоговое управление, хотел посмотреть мануал, но с estun.som обрывается закачка
Так он и не только аналоговое управление имеет.

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
Цитата Сообщение от vt340
хотел посмотреть мануал, но с estun.som обрывается закачка
Ну могу только так помочь
0
0 / 0 / 0
Регистрация: 02.10.2015
Сообщений: 29
16.11.2015, 13:49
Цитата Сообщение от omokost
Если не имеете опыта работы с PLC и промышленной электроникой, послушайте людей, которые работают с ней не первый год.
Все эти ужимки с прямым доступом к таймерам и регистрам тут уже решены до (за) вас. Надо только отдать серводрайверу внятные команды через интерфейс и научиться считывать через него же ответы от драйвера и состояние дополнительных датчиков (если они есть и подключены к драйверу). ИМХО.
Это мне все прекрасно понятно. И внятные команды я ему уже научился давать через интерфейс и получать ответы от него и о состоянии в том числе, ЧСХ в первую очередь. Речь о том, что по одному только протоколу Modbus не сделать того, чего хотим мы. И я не уверен, что выкидывать килотонны проделанной работы и с нуля изучать эти ваши ПЛК с МЭКовскими языками будет решением всех проблем и панацеей. Хотя конечно и интересно, но это уже решать не мне теперь.

Цитата Сообщение от omokost
P.S. Серводвигатель ни разу не шаговик.
Это я тоже прекрасно понимаю. Мне просто нужна была микросхема, которая способна сделать из 3.3V -> 24V, причем с сохранением временных характеристик сигнала, т.к. там требуются ВЧ импульсы со строгими требованиями к временным характеристикам же. И если я все правильно понял, то драйверы ака микросхемы управления шаговиками способны на такое.

З.Ы. Похер на таймеры (пока что, по крайней мере) короче: забыл я совсем про такую замечательную штуку как PWM, тобишь ШИМ. :)
И он в одройде есть. И даже проброшены интерфейсы в sysfs.
0
0 / 0 / 0
Регистрация: 07.02.2013
Сообщений: 92
16.11.2015, 19:35
Цитата Сообщение от poromoyrmod
Мне просто нужна была микросхема, которая способна сделать из 3.3V -> 24V.
Большинство драйверов серво управляются PUL И DIR от 5В, 12В и 24В опционально через резистор 1к и 2к...
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.11.2015, 20:22
Помогаю со студенческими работами здесь

STM32 самопальный bootloader
Здравствуйте. Прошу объяснить, что делаю не так.) Есть девайс с STM32f407VET6. С помощью USB CDC я подключаю его к ПК и записываю в память...

Проектирование ПЛК
Нужна помощь с курсовым проектом по Организации ЭВМ по проектированию ПЛК

Посоветуйте ПЛК
Друзья,стараюсь собрать умный

ПЛК (Arduino Mega2560 совместимый)
Начало тут: ПЛК (Arduino Miko 2560 + W5100) . ТЗ для устройства. Функционал: 0. Назначение: реализация схем автоматизации на...

Управление блоками ввода-вывода от ПЛК AVR
Управление блоками расширения ввода-вывода от ПЛК AVR. Например, MITSUBISHI, OMRON, OWEN. Пробовал кто-нибудь?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
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
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru