ПЛК (Arduino Mega 2560 + W5100)

Модератор: Alex

Аватара пользователя
uni
Сообщения: 191
Зарегистрирован: Вс июл 26, 2015 9:21 pm
Откуда: Екатеринбург
Благодарил (а): 4 раза
Поблагодарили: 7 раз
Контактная информация:

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

Сообщение uni » Пн сен 19, 2016 5:07 pm

Arduino Mega2560 основан на мк Atmega2560, который имеет ограниченное количество интерфейсов. Я думаю, можно написать некоторое количество универсальных драйверов для них. Драйвер W5100, к примеру, очень небольшой. Его не надо писать, он уже есть в Ethernet библиотеке. Нужно только его поправить, чтобы он поддерживал многозадачность. Точнее поправить нужно даже не его, а SPI библиотеку, которую он использует.

В проекте TelnetServer уже используется ОСРВ scmRTOS. Там две задачи, одна - сам telnet сервер, а вторая пустая, которая пишет в терминал (железный) сообщения через определённое время.

Я совместил Arduino Framework и scmRTOS. Только совмещение это частичное, т.к. Arduino Framework не предназначен для работы в многозадачной среде, но для тестирования мне этого достаточно. Если знать что можно, а что нельзя делать, то двигаться вперёд получится.

Ещё можно заметить, что я выкладываю hex файлы. Их можно загрузить и проверить работу прошивки. Нужно только знать что проверять, куда и как подключаться.
Россия навсегда!
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

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

Сообщение Alex » Пн сен 19, 2016 5:19 pm

Так более-менее понятно. Ждём вашу систему. Но без обучающих материалов (с самых азов) мало кто сможет ею воспользоваться :) и оценить — для народа даже АМС кажется слишком сложным.
Аватара пользователя
uni
Сообщения: 191
Зарегистрирован: Вс июл 26, 2015 9:21 pm
Откуда: Екатеринбург
Благодарил (а): 4 раза
Поблагодарили: 7 раз
Контактная информация:

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

Сообщение uni » Вт сен 20, 2016 6:24 pm

Собрал picoc, но для другой железки, работает. Правда, весит около 230 КБ. Если его не порезать, то пользоваться им не получится. Жалко, конечно, но жирноват этот интерпретатор. Чисто для интереса можно его просто попробовать собрать как прошивку для Arduino Mega 2560. Получится Arduino Mega-picoc-интерпретатор.
Россия навсегда!
alexsis_76
Сообщения: 791
Зарегистрирован: Пт янв 22, 2016 10:08 am
Благодарил (а): 6 раз
Поблагодарили: 63 раза

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

Сообщение alexsis_76 » Ср сен 21, 2016 10:54 am

вот , правда давно было
зачатки виртуальной машины(регистровой)
Чисто для интереса можно его просто попробовать собрать как прошивку для Arduino Mega 2560. Получится Arduino Mega-picoc-интерпретатор
тоже об этом думал, помещать где нибудь в конце карты память, контроллер будет выполнять как отдельную подпрограмму, правда надо решить вопрос получения бин файла из текста скрипта
Вложения
SSS.rar
(3.82 КБ) 196 скачиваний
Аватара пользователя
uni
Сообщения: 191
Зарегистрирован: Вс июл 26, 2015 9:21 pm
Откуда: Екатеринбург
Благодарил (а): 4 раза
Поблагодарили: 7 раз
Контактная информация:

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

Сообщение uni » Ср сен 21, 2016 11:55 am

Спасибо, я посмотрю.
Россия навсегда!
Аватара пользователя
uni
Сообщения: 191
Зарегистрирован: Вс июл 26, 2015 9:21 pm
Откуда: Екатеринбург
Благодарил (а): 4 раза
Поблагодарили: 7 раз
Контактная информация:

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

Сообщение uni » Ср сен 21, 2016 4:33 pm

Вот человек тоже пошёл путём LDmicro: SoapBox Snap.

Можно попробовать обернуть его движок в процесс и использовать совместно с моим кодом.
Россия навсегда!
Geban
Сообщения: 136
Зарегистрирован: Вс июл 14, 2013 2:42 pm
Благодарил (а): 6 раз
Поблагодарили: 26 раз

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

Сообщение Geban » Ср сен 21, 2016 5:36 pm

А может не стоит в ПЛК пихать rtOS...
Те же ОВНЫ в младших версиях работаю без ОС. Но там ARM ядро..со всеми вытекающими типа DMA...
В старших версиях там уже линукс. Есть довольно забавная штука, называется Node-Red... рисуется что-то вроди алгоритма из блоков(как CFC ). В конце это дело можно экспортировать в формате JSON. Вам останется только написать модули нижнего уровня(modbus-tcp, modbus-rtu/ascii и т.д всякие там ацп, шим и прочие прелести) и сделать прослойку между схемой из node-red и вашим слоем драйверов железа. А вообще ПЛК на ардуине (кстати почему ардуина то? Имхо гораздо кошернее взять подходящий avr или тот же stm32(дешевле,быстрее и жирнее по начинке) сделать нормальное устройство. А так получается что вы полностью зависимы от того что придумали итальянцы..форм-фактор,проц, разводка платы и т.д...) сильно. )
Аватара пользователя
uni
Сообщения: 191
Зарегистрирован: Вс июл 26, 2015 9:21 pm
Откуда: Екатеринбург
Благодарил (а): 4 раза
Поблагодарили: 7 раз
Контактная информация:

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

Сообщение uni » Ср сен 21, 2016 6:09 pm

Почему ОС? Потому что в сложной программе вы всё равно пишите ОС, либо теряете контроль над кодом. Наличие ОС позволяет делить задачи на почти независимые участки. Такое деление позволяет не думать о программе в целом. Это просто декомпозиция большого кода. На прикладном уровне писать код проще.

Почему Arduino? На самом деле я не привязан к Arduino и Arduino Framework'у. Если присмотреться к коду, то можно понять, что его точно так же можно запустить (с небольшими доработками) на ATmega2560 со своей обвязкой. Я компилирую код отдельно от Arduino IDE, у меня свой Makefile и свой программатор. Загрузчиком их я также не пользуюсь. Arduino - просто дешёвая легкодоступная плата. Я мог бы и своё развести, но это целая эпопея. Потом я так и сделаю, т.к. хочу поставить внешнюю память.

Почему AVR? На работе я делаю почти то же на ARM'е под uClinux. Поверьте, это на порядок сложнее во всём. Если будет простая дешёвая плата с uClinux'ом на борту, то я буду и её использовать. Ещё есть вариант использовать роутер с OpenWRT, но там слишком долгая загрузка, порядка 30 секунд на TL-MR3020, и слишком сложные средства разработки (либо комп с Линуксом, либо виртуальная машина). Роутер бы меня устроил, если бы можно было уменьшить время загрузки и была поддержка удалённой отладки.

Так что для целей очень малой автоматизации можно использовать и Arduino.
Россия навсегда!
Аватара пользователя
uni
Сообщения: 191
Зарегистрирован: Вс июл 26, 2015 9:21 pm
Откуда: Екатеринбург
Благодарил (а): 4 раза
Поблагодарили: 7 раз
Контактная информация:

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

Сообщение uni » Ср сен 28, 2016 10:07 am

На заметку (тоже попробуем).

Библиотека microrl (github), предназначена для организации консольного интерфейса в разного рода встраиваемых железках на микроконтроллерах.

Статья на хабре: консоль в микроконтроллере с micro readline.
Россия навсегда!
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

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

Сообщение Alex » Ср сен 28, 2016 10:37 am

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