ПЛК (Arduino Mega 2560 + W5100)

Модератор: Alex

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

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

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

Можно исполнить Arduino Mega2560 + W5500 и вот в таком стиле.

Это китайская простенькая панель оператора OP320 с наклейкой ОВЕН. Тем не менее, экраны для неё формируются внешним конфигуратором (тоже китайской программой, только русифицированной) в виде полноценного проекта.

Ссылки:

1. Руководство на ИП320 (pdf).
2. Руководство на оригинальную китайскую панель OP320 (pdf).
Вложения
2017-04-01 18-58-09 rp_ip320.png
2017-04-01 18-58-09 rp_ip320.png (166.38 КБ) 7563 просмотра
Россия навсегда!
Аватара пользователя
uni
Сообщения: 191
Зарегистрирован: Вс июл 26, 2015 9:21 pm
Откуда: Екатеринбург
Благодарил (а): 4 раза
Поблагодарили: 7 раз
Контактная информация:

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

Сообщение uni » Вс апр 02, 2017 11:34 am

Собрал таки наконец-то сервер ftp. Проверил, работает с Total Commander'ом: вход с паролем, копирование, замена, удаление файлов, просмотр списка файлов, чтение файлов.

Тестовый пример требует следующие библиотеки: SPI, Ethernet, FatFs, FatLib, Streaming, SdFat, FtpServer.

Едем дальше.

П.С. По идее, сервер ftp должен быть составной частью AMS. У меня есть исходники ams 0.14, я их посмотрел, так просто вставить ftp сервер не получится. Нужно переписывать всю работу с sd-картой либо у ams, либо у ftp сервера, т.е. они не совместимы по используемой библиотеке работы с карточкой. Чем мне и не нравится Arduino Framework вообще и почему я стараюсь собирать код отдельно от него. Отдельные проекты разных товарищей используют разное окружение и собрать их вместе потом как правило невозможно. Слишком всё наворочено и взаимосвязано. Ещё у мня есть подозрение, что те, кто пишут библиотеки, имеют фирменный atmel'овский отладчик и специальное отладочное железо. Поэтому другим товарищам будет трудно что-то исправить.

Код: Выделить всё

C:/Arduino/hardware/tools/avr/bin/avr-size --mcu=atmega2560 -C --format=avr build-mega/FtpServer.elf
AVR Memory Usage
----------------
Device: atmega2560

Program:   42740 bytes (16.3% Full)
(.text + .data + .bootloader)

Data:       2878 bytes (35.1% Full)
(.data + .bss + .noinit) 
Ссылки:

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

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

Сообщение uni » Вс апр 02, 2017 7:13 pm

Удалось добраться до чтения тестового скрипта с sd-карты. Пока picoc что-то не может найти функции main(), причину выясняю. К сожалению, железный отладчик с большим трудом бродит по коду, поэтому буду разбираться с проблемой в Proteus. Победа близка.
Если удастся запустить хотя бы какой-то скрипт, то дальше возьмусь за исследования доступных возможностей интерпретатора в текущей ограниченной конфигурации. Нужно будет добавить оболочку, которая запускала бы picoc из терминала с параметром в виде имени файла скрипта.

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

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

Сообщение uni » Вт апр 04, 2017 11:12 am

У кого есть желание поиграться с picoc я собрал его для Windows. Жаль сразу не обратил внимания на проект в Visual Studio, там смотреть как всё работает гораздо проще, чем под avr.
Вложения
picoc.7z
PicoC и тесты
(45.64 КБ) 146 скачиваний
Россия навсегда!
Аватара пользователя
uni
Сообщения: 191
Зарегистрирован: Вс июл 26, 2015 9:21 pm
Откуда: Екатеринбург
Благодарил (а): 4 раза
Поблагодарили: 7 раз
Контактная информация:

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

Сообщение uni » Вт апр 04, 2017 7:19 pm

Ура, товарищи. Первый "Hello, world!" был исполнен. Как в Proteus, так и в реальном железе. Не думал, что смогу сделать это без внешней ОЗУ. Она, правда, всё равно нужна, но вполне реально, оказывается выполнить скрипт на Arduino Mega2560. Но не будем расслабляться. Не плохо бы замутить командную оболочку, которая бы понимала команду picoc файл аргументы.
В ближайшее время займусь обзором возможностей текущей сборки. Вряд ли они конечно обширны. Прежде всего меня интересует (де)фрагментация памяти. Желательно научиться запускать скрипт при одинаковых условиях, иначе вся память может улетучиться после нескольких запусков. Ещё можно думать о API, который будет представлять из себя периферию мк и будет доступен внутри скрипта.

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

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

Сообщение Alex » Ср апр 05, 2017 6:06 pm

Тестовая плата AMS Home поступила в лабораторию Hi-Lab.ru для испытаний и заселения Arduino Mega Server в новый дом.
Вложения
ams-home-mega.jpg
AMS Home vs Arduino Mega
ams-home-mega.jpg (194.02 КБ) 7387 просмотров
Аватара пользователя
uni
Сообщения: 191
Зарегистрирован: Вс июл 26, 2015 9:21 pm
Откуда: Екатеринбург
Благодарил (а): 4 раза
Поблагодарили: 7 раз
Контактная информация:

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

Сообщение uni » Пт апр 07, 2017 9:32 am

Немного видео о процессе отладки интерпретатора. Пытаюсь запустить его в Proteus с внешней SRAM. Пока не получается.

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

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

Сообщение uni » Пт апр 07, 2017 7:03 pm

Блин, оказывается всё уже сделано до нас:

Ссылки:

1. MegaD-2561 - новая ступень в развитии проекта MegaD .
2. Ардуино-совместимый ПЛК CONTROLLINO, часть 1 .
Вложения
megad-2561-size.jpg
megad-2561-size.jpg (60.47 КБ) 7307 просмотров
2017-04-07 20-59-22 CONTROLLINO PLC (ARDUINO compatible).png
2017-04-07 20-59-22 CONTROLLINO PLC (ARDUINO compatible).png (264.39 КБ) 7307 просмотров
Россия навсегда!
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

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

Сообщение Alex » Пт апр 07, 2017 9:30 pm

Почитал я — интересно. Особенно понравилась самоидентификация MegaD, цитата: «Контроллер MegaD-2561 по своей сути является исполнителем указаний центральной управляющей системы (сервера).» Коротко и ясно.
SolarW
Сообщения: 179
Зарегистрирован: Вс июл 31, 2016 11:24 pm
Благодарил (а): 35 раз
Поблагодарили: 24 раза

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

Сообщение SolarW » Пт апр 07, 2017 10:35 pm

Alex писал(а):«Контроллер MegaD-2561 по своей сути является исполнителем указаний центральной управляющей системы (сервера).»
Что не мешает ему и некоторые автономные сценарии исполнять - самостоятельно включить свет при нажатии на кнопку даже в случае недоступности управляющего сервера, термостат там и т.д.
И вообще - за шесть лет Андрей с помощью сообщества неплохой продукт сделал.
Ответить