ПЛК (Arduino Mega 2560 + W5100)

Модератор: Alex

alexsis_76
Сообщения: 791
Зарегистрирован: Пт янв 22, 2016 10:08 am
Благодарил (а): 6 раз
Поблагодарили: 63 раза

Re: ПЛК (Arduino Mega 2560 + W5100)

Сообщение alexsis_76 » Сб апр 08, 2017 6:20 am

1. MegaD-2561 - новая ступень в развитии проекта MegaD .
2. Ардуино-совместимый ПЛК CONTROLLINO, часть 1 .
эти два устройства плк не являются,первое это продолжение сервера,для расширения его возможностей,имеет простейшие условия типа если-то,отсутствие какой либо сложной логики,второе просто ардуино в другой обертке.
Особенно понравилась самоидентификация MegaD
это без проблем реализуемо в вашей амс.
Не сравнивайте Овен с 32-разрядным ARM9, 200 MHz и атмега.
Си для интерпретатора это конечно хороше,но это повышает(иногда серьезно)порог вхождения,большинству людей си кажется слишком сложным ,надо читать книги для его освоения,си предполагает близкое знакомство с архитектурой контроллера(есть много аппаратнозависимого кода)когда как языки более высокого уровня скрывают от пользователя особенности аппаратной реализации.
И все таки мне кажется решения на линукс сильно облегчают жизнь,запустил у себя на апельсине LEMP стек и скрипты на питоне,PHP отвечает за формирование веб страницы,питон за работу с портами ввода вывода,обмен данными происходит через общую mysql.
пример
http://cxem.net/arduino/arduino48.php,только вместо sh скрипта ,python c подключаемыми си библиотеками,питон обеспечивает высокоуровневую логику,си библиотеки необходимую скорость и гибкость.
cg_shura
Сообщения: 110
Зарегистрирован: Пт авг 14, 2015 11:24 am
Благодарил (а): 3 раза
Поблагодарили: 6 раз

Re: ПЛК (Arduino Mega 2560 + W5100)

Сообщение cg_shura » Сб апр 08, 2017 10:24 am

alexsis_76 писал(а):
1. MegaD-2561 - новая ступень в развитии проекта MegaD .
2. Ардуино-совместимый ПЛК CONTROLLINO, часть 1 .
эти два устройства плк не являются
Да, а то задолбали все подряд называть ПЛК. ПЛК программируются на языках стандарта МЭК 61131-3. Не программируется на языках стандарта МЭК 61131-3 - не ПЛК.
alexsis_76 писал(а):Си для интерпретатора это конечно хороше,но это повышает(иногда серьезно)порог вхождения,большинству людей си кажется слишком сложным ,надо читать книги для его освоения,си предполагает близкое знакомство с архитектурой контроллера(есть много аппаратнозависимого кода)когда как языки более высокого уровня скрывают от пользователя особенности аппаратной реализации.
Для скриптового языка никто не выносит наружу для пользователя управления пинами. Пользователю не нужно знать МК, ему нужно писать формулы и скрипты по логике предменной области.
alexsis_76 писал(а):И все таки мне кажется решения на линукс сильно облегчают жизнь,запустил у себя на апельсине LEMP стек и скрипты на питоне,PHP отвечает за формирование веб страницы,питон за работу с портами ввода вывода,обмен данными происходит через общую mysql.
Вот это облегчение. Тут надо изучить целый стек технологий. А еще нанять линуск админа.
Аватара пользователя
uni
Сообщения: 191
Зарегистрирован: Вс июл 26, 2015 9:21 pm
Откуда: Екатеринбург
Благодарил (а): 4 раза
Поблагодарили: 7 раз
Контактная информация:

Re: ПЛК (Arduino Mega 2560 + W5100)

Сообщение uni » Сб апр 08, 2017 10:31 am

эти два устройства плк не являются,первое это продолжение сервера,для расширения его возможностей,имеет простейшие условия типа если-то,отсутствие какой либо сложной логики,второе просто ардуино в другой обертке.
Да, согласен.

Решение на линуксе кроме того, что стартует через 30-40 секунд, тоже требует порога вхождения. Его надо уметь администрировать. Если что настроено не так, то ты один на один с системой. По-моему это отпугивает больше, чем изучение C.

Как видно, простой скрипт запустился. Но вот заставить работать функции пользователя пока не получается. Я добавил в образ системы библиотеку из двух функций sbi() и cbi() и пока не получается заставить интерпретатор понять что я от него хочу. Он тыкает в них пальцем и пишет, что что-то не так. Я хотел с их помощью меандр вывести, чтобы узнать что-то о быстродействии.

Кстати, судя по содержимому ОЗУ, интерпретатор не исполняет код непосредственно. Похоже, что он сканирует исходник, переводит его в промежуточное представление и уже его исполняет. Получается, что какой-нить бесконечный цикл будет работать быстрее, так как промежуточное представление заведомо корректное и оптимизированное. Но это пока только догадки, т.к. в полном объёме пока разобраться очень трудно даже имея отладчики. Видимо придётся всё-таки изучать его устройство в Visual Studio.

Есть ещё один интересный проект: OpenPLC. Часть исходников доступна на github. Там есть компилятор из lad в С, т.е. можно писать программу в "ПЛК-стиле", преобразовывать её в C, собирать и заливать на целевое устройство. Можно в raspberry всякие заливать и прочие клоны за 500 р. Пока всё сыровато, но некоторые ролики на youtube по использованию PLCOpenEditor'а впечатляют.

Так вот, автор проекта ответил мне, что вряд ли runtime получившийся будет влезать в ATmega2560. Я вот усомнился на этот счёт, я собрал его компилятор lad и посмотрел на получающийся код C (без привязки к железу). Вроде бы вполне всё может влезть и ещё останется. Идея в том, что можно использовать его программу как IDE для Arduino Mega2560, чтобы писать программы на МЭК языках, а компилировать их скрытно, как это делает Arduino IDE.

Если будет время, то попробую и этот вариант тоже. Итого, можно сделать одну плату, на которой можно делать проекты тремя способами:
- через Arduino IDE, чтобы сохранить армию ардуинщиков как пользователей;
- используя интерпретатор C;
- используя PLCOpenEditor, собирая прошивку налету.

Жалко только то, что этот редактор МЭК языков сделан на python'е, насколько я понял. Я не знал, что он позволяет графический интерфейс пользователя сделать. Интересно, что за IDE используется для разработки. Так бы если на чём другом, я бы посмотрел как там всё устроено внутри.
Россия навсегда!
alexsis_76
Сообщения: 791
Зарегистрирован: Пт янв 22, 2016 10:08 am
Благодарил (а): 6 раз
Поблагодарили: 63 раза

Re: ПЛК (Arduino Mega 2560 + W5100)

Сообщение alexsis_76 » Сб апр 08, 2017 11:30 am

Пользователю не нужно знать МК
тут я с Вами не соглашусь,если человек не знает как настроить порт на выход и установить там лог 1 манипулируя регистрами процессора PORT,DDR о каком серьезном програмировании может идти речь?только о копировании чужего кода и чужих ошибок заодно,армия ардуинщиков копирует друг у друга не поймешь что и у всех одни и те же ошибки.
тоже требует порога вхождения. Его надо уметь администрировать. Если что настроено не так, то ты один на один с системой. По-моему это отпугивает больше, чем изучение C.
я за линукс сел месяца полтора назад,до этого меня вгоняла в ступор упоминание о командной строке,оказалось все не так сложно,со скриптами еще проще если начать изучение с утра то примерно к обеду можешь писать не плохие программы(скрипты)серьезно.
Жалко только то, что этот редактор МЭК языков сделан на python'е
питон есть и для windows.
. Похоже, что он сканирует исходник, переводит его в промежуточное представление и уже его исполняет
да наверное что то типа байткода.
Он тыкает в них пальцем и пишет, что что-то не так
а что именно пишет?
А еще нанять линуск админа.
так станьте линукс админом.
Если что настроено не так, то ты один на один с системой
как будто в windows по другому ;)
Аватара пользователя
uni
Сообщения: 191
Зарегистрирован: Вс июл 26, 2015 9:21 pm
Откуда: Екатеринбург
Благодарил (а): 4 раза
Поблагодарили: 7 раз
Контактная информация:

Re: ПЛК (Arduino Mega 2560 + W5100)

Сообщение uni » Сб апр 08, 2017 1:31 pm

Начал тут копать исходники picoc и обнаружил, что я пользуюсь двумя разными их версиями. Та, что на github'е - это несколько улучшенный вариант, т.к. там состояние интерпретатора собрано в одно целое, но с другой стороны разработчик, который это всё правил, не учёл всех возможных вариантов сборки, коих там много. Из-за этого очередное препятствие к цели.

Что касается скриптов, то действительно, пользователю не нужно знать как программировать для мк. У него будут библиотеки как у пользователя ПЛК. В ней будут алгоритмы (фильтр, шим, пид, ...) и функции высокого уровня для работы с периферией. Работу с i2c, spi, uart и пр. знать не нужно, достаточно знать open, read, write, close. То же касается работы с экранами. Должна бы реализована поддержка известных типов драйверов, их не так много. Графическая библиотека - встроенная. Поддержка иерархического меню - встроенное и т.д. У меня есть наработки по всем этим направлениям. Чего нет, можно подсмотреть в Arduino Framework.
Россия навсегда!
Аватара пользователя
uni
Сообщения: 191
Зарегистрирован: Вс июл 26, 2015 9:21 pm
Откуда: Екатеринбург
Благодарил (а): 4 раза
Поблагодарили: 7 раз
Контактная информация:

Re: ПЛК (Arduino Mega 2560 + W5100)

Сообщение uni » Вс апр 09, 2017 8:37 am

Почитал тут про аналог CoDeSyS'а и ISaGRAF'а в виде свободно распространяемых исходников, впечатлился. Оказывается наши соотечественники не стоят на месте и используют эту систему.

Самое интересное по ссылке 4. Это и есть применение "openplc" на отечественной элементной базе. Они, кстати, объяснили это так:
На данный момент существует ряд широко известных инструментов разработки прикладных программ для ПЛК на языках стандарта IEC 61131-3, например ISaGRAF, CoDeSyS и т.д. Но в процессе адаптации таких сред разработки для ПЛК с аппаратной частью на новой, нестандартной, архитектуре может возникнуть ряд проблем. Например, отсутствие необходимых компиляторов под конкретную архитектуру или невозможность внесения изменений, требующих доступа к исходному коду определённого компонента среды. Кроме того, данные инструменты являются коммерческим продуктом и для их применения необходимо пройти процесс лицензирования, требующий больших финансовых вложений. Существует и ряд других инструментов, одним из которых является свободно-распространяемая среда с открытым исходным кодом Beremiz (http://www.beremiz.org). Возможность иметь доступ ко всем её компонентам и вносить любые изменения даёт преимущества для адаптации данного инструмента под конкретную аппаратную архитектуру, поэтому для написания прикладных программ на языках IEC 61131-3 для вычисли-тельных комплексов на базе отечественных микропроцессоров с архитектурой SPARC предлагается адаптировать среду разработки Beremiz.
Про коммерческие системы - это правда. И платить надо и проблемы есть (я сам занимаюсь такого рода адаптацией CoDeSyS'а). Что интересно, можно попробовать всё это перенести на мк, как бы странным это со стороны не показалось. Я попробую собрать этот matiec компилятор и сформировать с его помощью набор исходников, а затем и скомпилирую при помощи avr-gcc. Посмотрим что получится. Но это как-нибудь попозже.

Ссылки:

1. Beremize Overview.
2. ЯЗЫКИ СТАНДАРТА IEC-61131 ДЛЯ ВЫЧИСЛИТЕЛЬНЫХ КОМПЛЕКСОВ НА БАЗЕ ОТЕЧЕСТВЕННЫХ МИКРОПРОЦЕССОРОВ С АРХИТЕКТУРОЙ SPARC (doc).
3. ПОДХОДЫ К РАЗРАБОТКЕ ЧЕЛОВЕКО-МАШИННОГО ИНТЕРФЕЙСА КОНТРОЛЯ И УПРАВЛЕНИЯ ПРИКЛАДНЫМИ ПРОГРАММАМИ ДЛЯ ВК С МИКРОПРОЦЕССОРАМИ SPARC И «ЭЛЬБРУС» В ОБЛАСТИ АСУТП (doc).
4. Программные средства поддержки языков программирования высокого уровня стандарта IEC 61131-3 для ПЛК семейства СМ1820М. Руководство программиста (213 стр) (pdf).

*** Сообщение запрещено. Сообщение похоже на спам. ***
Последний раз редактировалось uni Пн апр 10, 2017 10:36 am, всего редактировалось 2 раза.
Россия навсегда!
alexsis_76
Сообщения: 791
Зарегистрирован: Пт янв 22, 2016 10:08 am
Благодарил (а): 6 раз
Поблагодарили: 63 раза

Re: ПЛК (Arduino Mega 2560 + W5100)

Сообщение alexsis_76 » Вс апр 09, 2017 1:01 pm

Что касается скриптов, то действительно, пользователю не нужно знать как программировать для мк.
ну у меня так и сделано,допустим создать дисплей ili9341,CREATE_DISPLAY(mode);
инициализирует и подготавливает к работе ili9341;
PRINT_DISPLAY("Text",x,y); выведет на экран слово Text c координатами x,y;
cg_shura
Сообщения: 110
Зарегистрирован: Пт авг 14, 2015 11:24 am
Благодарил (а): 3 раза
Поблагодарили: 6 раз

Re: ПЛК (Arduino Mega 2560 + W5100)

Сообщение cg_shura » Вс апр 09, 2017 9:25 pm

alexsis_76 писал(а):
тоже требует порога вхождения. Его надо уметь администрировать. Если что настроено не так, то ты один на один с системой. По-моему это отпугивает больше, чем изучение C.
я за линукс сел месяца полтора назад,до этого меня вгоняла в ступор упоминание о командной строке,оказалось все не так сложно,со скриптами еще проще если начать изучение с утра то примерно к обеду можешь писать не плохие программы(скрипты)серьезно.
С языком С в этом случае все еше намного проще.
alexsis_76 писал(а):
Жалко только то, что этот редактор МЭК языков сделан на python'е
питон есть и для windows.
А на чем там сделан GUI? Окна, кнопки прочие контролы.
alexsis_76 писал(а):
А еще нанять линуск админа.
так станьте линукс админом.
Не люблю ремонтировать и администрировать.
alexsis_76 писал(а):
Если что настроено не так, то ты один на один с системой
как будто в windows по другому ;)
А речь вроде о МК, где есть полный контроль над кодом.
alexsis_76
Сообщения: 791
Зарегистрирован: Пт янв 22, 2016 10:08 am
Благодарил (а): 6 раз
Поблагодарили: 63 раза

Re: ПЛК (Arduino Mega 2560 + W5100)

Сообщение alexsis_76 » Пн апр 10, 2017 11:24 am

С языком С в этом случае все еше намного проще.
так там тоже си есть причем полноценный и не урезанный для avr.
А речь вроде о МК, где есть полный контроль над кодом.
так там такой же мк только побыстрее.
интерпретаторы требуют быстрых контроллеров,по сути интерпретатор является виртуальной машиной на которой выполняется код скрипта и создает хорошую нагрузку на процессор,помимо исполнения кода интерпретатора контроллер еще должен обслуживать периферийные устройства обрабатывать прерывания если есть ос выполнять ее код.
А на чем там сделан GUI? Окна, кнопки прочие контролы.
http://codeinlife.ru/python/pervoe-gui- ... -pyqt.html
Аватара пользователя
uni
Сообщения: 191
Зарегистрирован: Вс июл 26, 2015 9:21 pm
Откуда: Екатеринбург
Благодарил (а): 4 раза
Поблагодарили: 7 раз
Контактная информация:

Re: ПЛК (Arduino Mega 2560 + W5100)

Сообщение uni » Пн апр 10, 2017 11:36 am

Нашёл ещё один интересный проект: YAPLC. Здесь на основе Beremiz, упоминавшегося чуть выше, собран ПЛК, программируемый на МЭК языках, использующий в качестве платформы STM32.
Статус проекта

В данный момент система программирования YAPLC переходит на этап открытого тестирования.

Бесплатные образцы

ООО НПК "Нуклерон" приглашает специалистов по АСУТП принять участие в открытом тестировании YAPLC на программируемых реле NUC-243.

Желающим принять участие в тестировании системы преддлагаются бесплатные наборы инженерных образцов изделий линейки, включающие в себя программируемое реле NUC-243 и адаптер для программирования NUC-246.

Заявки принимаются по электронной почте pab@nucleron.ru
*** Сообщение запрещено. HTTP cсылки находятся в чёрном списке. Содержит контактную информацию. ***
Россия навсегда!
Ответить