ПЛК (Arduino Mega 2560 + W5100)

Модератор: Alex

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

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

Сообщение uni » Пн окт 24, 2016 12:15 pm

Я пишу примерно те же вещи с использованием uClinux (ARM LPC2468) на C++. И что с того? Да, некоторые вещи стали проще, а вот сопровождение всего этого хозяйства гораздо, гораздо сложнее. Не говоря уже о том, что чем "больше" ОС, тем дольше она загружается. Я не хочу ждать минуту, пока моё устройство загрузится. Для одних решений это не принципиально, но мне лично хочется, чтобы моё устройство стартовало с задержкой порядка нескольких секунд. С линуксом это сделать практически невозможно (нужно быть очень большим гуру, чтобы отключить всё ненужное при старте).

Это только кажется, что большие и мощные камни дадут вам подавляющее преимущество. Вы попробуйте отладить всё это дело или сделать так, чтобы сопровождение было несложным. За всё надо платить.

Меня вполне устроит реализация на avr, т.к. с ней просто проще работать, если не требовать чего-то действительно невозможного.
Россия навсегда!
alexsis_76
Сообщения: 792
Зарегистрирован: Пт янв 22, 2016 10:08 am
Благодарил (а): 6 раз
Поблагодарили: 63 раза

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

Сообщение alexsis_76 » Пн окт 24, 2016 12:22 pm

Это только кажется, что большие и мощные камни дадут вам подавляющее преимущество
это точно,если что то пойдет не так(а оно так и бывает)на отладке можно повеситься.
я вот сейчас пытаюсь(еще не начал)подключить usb камеру к микроконтроллеру.
Аватара пользователя
nightwind
Сообщения: 333
Зарегистрирован: Вс июн 26, 2016 4:42 pm
Откуда: Барановичи
Благодарил (а): 28 раз
Поблагодарили: 52 раза
Контактная информация:

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

Сообщение nightwind » Пн окт 24, 2016 2:03 pm

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

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

Сообщение uni » Пн окт 24, 2016 2:11 pm

Хороший репозиторий с freemodbus. Я пробовал только демку с LinuxTCP (tcp slave). Работает.

Давно искал нечто похожее, чтобы шлюз сделать на Arduino Mega 2560 (tcp <-> modbus rtu). Теперь, похоже, будет гораздо легче это сделать.

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

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

Сообщение uni » Ср окт 26, 2016 3:10 pm

Кстати, modbus можно использовать в качестве отладчика. Как-то не пришло раньше в голову, ведь у меня операционка и я могу один процесс задействовать под modbus pull. В регистры загнать все интересующие меня состояния и читать специальной программой (ibaPDA). Таким образом можно следить за изменениями с точностью n*10 мс (посмотрю по факту).

Выглядеть это будет так:

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

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

Сообщение alexsis_76 » Ср окт 26, 2016 11:34 pm

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

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

Сообщение uni » Чт ноя 10, 2016 8:03 am

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

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

Сообщение uni » Ср ноя 23, 2016 12:28 pm

Новости. Мне удалось собрать picoc для AVR. Первая черновая сборка требует следующие ресурсы:

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

AVR Memory Usage
----------------
Device: atmega2560

Program:   72236 bytes (27.6% Full)
(.text + .data + .bootloader)

Data:       8679 bytes (105.9% Full)
(.data + .bss + .noinit) 
Я выбросил части кода, которые требуют для себя реализацию работы с файловой системой. Также выкинул код, для которого нет функций в библиотеках для avr мк. Практически я теперь могу промоделировать работу интерпретатора в Proteus, нужно только пересобрать код с поддержкой внешнего ОЗУ. Постепенно, просматривая код в отладчике можно уменьшить требования к ОЗУ, перенеся все строки во флеш. Не оценивал ещё сколько это освободит памяти. Далее нужно разобраться каким образом происходит интерпретация. Я не могу исходник загрузить в ОЗУ целиком, поэтому нужно будет переписать ту часть кода, которая работает с исходником как с целым, если это так на самом деле.
Россия навсегда!
Аватара пользователя
uni
Сообщения: 191
Зарегистрирован: Вс июл 26, 2015 9:21 pm
Откуда: Екатеринбург
Благодарил (а): 4 раза
Поблагодарили: 7 раз
Контактная информация:

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

Сообщение uni » Вс мар 26, 2017 7:36 pm

Давно меня не было. Занимался адаптацией modbus-rtu, petitfs и scmRTOS. Очень тяжело сводить всё в одно. Пока могу доложить, что выпилил часть строк из ОЗУ, но места свободного всё равно мало. Буду пробовать исполнять простейшие Си-программы из нескольких команд. Petitfs завёлся с моим сборочным окружением, так что буду исполнять программы прямо с SD-карты, в виде файлов исходников.
Далее нужно поднять простейший web-сервер с поддержкой ajax post-запросов на сокетах, чтобы компактней было.
Тогда я получаю гибкое решение, где могу хоть и примитивно, но хранить всю логику во внешних си-файлах, а состояние системы я могу получать через ajax-запросы, считывая значения глобальных переменных из контекста интерпретатора.

В общем, к чему всё и шло: загружаем сценарии прямо в ПЛК и он автономно их исполняет. Можно по аналогии со старшими системами называть скрипты задачами и где-то прописать их цикличность. Останется только развести плату с внешней ОЗУ.

Что касается логики работы парсера. Его придётся немного переделать с учётом того, что он работает с файлом, считанным в ОЗУ полностью. Ясно, что это не вариант для мк и я переделаю его под работу с файлом определённой длины. Все операции чтения из ОЗУ превратятся в чтение файла с карточки с буфером в 512 байт.
Россия навсегда!
alexsis_76
Сообщения: 792
Зарегистрирован: Пт янв 22, 2016 10:08 am
Благодарил (а): 6 раз
Поблагодарили: 63 раза

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

Сообщение alexsis_76 » Пн мар 27, 2017 2:27 am

Да,титанический труд,а зачем си код если он будет храниться в виде исходников,с таким же успехом можно использовать любой другой язык.
Тогда я получаю гибкое решение, где могу хоть и примитивно
в том то и дело что примитивно, возможности будут сильно ограничены, ну и скорость?
может лучше посмотреть в сторону LINUX на малине или апельсине,там и памяти вагон и частота высокая и интерпретаторы готовые, сервер настоящий?
Ответить