PDA

Просмотр полной версии : Регистрация событий с осциллографированием на СПК107. Получится?



Герасим
20.11.2019, 09:20
Здравствуйте!



Смотрю на СПК107. Задача:

1) По Modbus RTU получить данные одного устройства (128 регистров, около 100 параметров с типами данных bit, u16, s16, float) скорость всегда 115200

2) показать часть полученных мгновенных значений на главном экране

3) Логгирование: ВСЕ полученный данные (дамп) с максимальной частотой записи (сколько дампов в 1 сек примерно получится?) сохранить на SD-карте или на внешней флэшке. Хранилище должно быть организовано по принципу кольцевого буфера, новые данные затирают самые старые.

4) Показать юзеру данные логгера за выбранный им интервал времени (естественно устаревшие данные могут отсутствовать) в виде графиков ВСЕХ параметров.

5) и (по мелочи) возможность редактировать некоторых параметров и уставок на отдельном экране

Главный упор в моей задаче на регистрация на носителе всех получаемых параметров с частотой не менее 10 раз в сек, данные должны быть доступны за 3-2 суток (должно быть зависимым от объема накопителя)

1) Смогу ли я реализовать это на СПК107?

2) Возможно есть библиотеки решающие эту задачу (думаю тема популярная)

3) Реакцию на возможное внезапное отключение питания (или извлечение носителя) во время записи самому программировать? Например, есть ли в СПК оперативная память поддерживаемая батарейкой, куда можно записывать текущее состояние логгера, чтобы после включения питания (установки носителя) продолжить писать примерно с того места где процесс записи прервался?

Евгений Кислов
20.11.2019, 14:09
Добрый день.

1), 2), 5) - возможно
3) - стандартный компонент архивации (OwenArchiver) позволяет производить запись в файл не чаще раза в секунду. Если организовать запись файла через библиотеки - то добиться записи указанной порции в данных с периодом 100 мс - возможно.
4) - стандартных компонентов для этого нет. Сама по себе задача решаемая, но не относится к числу самых простых.


3) Реакцию на возможное внезапное отключение питания (или извлечение носителя) во время записи самому программировать? Например, есть ли в СПК оперативная память поддерживаемая батарейкой, куда можно записывать текущее состояние логгера, чтобы после включения питания (установки носителя) продолжить писать примерно с того места где процесс записи прервался?

Извлечение накопителя "на горячую" (без размонтирования) - это некорректная ситуация, и обработать ее нельзя.
По поводу состояния логгера (позицию последней записи) - да, можно записывать его в энергонезависимую память.