|
Вопросы о программировании Вопросы, касающиеся программирования на FBD |
|
Опции темы | Поиск в этой теме |
14.07.2019, 13:21 | #1 |
Member
Регистрация: Jun 2019
Адрес: Новосибирск
Сообщения: 76
Благодарил(а): 1 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
ARRAY II и флэш-память
Здравствуйте, коллеги!
Пилю проект на Trim5. В нём, кроме прочего, должны быть энергонезависимые счётчики наработки насосов. Поскольку флэш-память имеет ограниченный ресурс по записи (притом неизвестно какой), то я решил организовать ротацию памяти при сохранении значений счетчика. Принцип такой: создаём кольцевой буфер, и пишем значения каждый раз в следующий адрес. Таки образом, ресурс флэш-памяти умножается на емкость этого буфера. Для того, чтобы ротация была истинной, мы не должны использовать какие-либо указатели на текущую позицию в буфере, поэтому каждый раз при включении питания производится автоматический поиск ячейки с макс. значением. Я нарисовал макрос, который всё это делает, и ещё умеет стирать буфер, и всё это здорово работает. Но! У меня закрались подозрения, что я занимаюсь ерундой. А основания для подозрений следующие: у блока ARRAY II long максимальная емкость = 62 значения, что (по всей видимости) представляет собой одну страницу флэш-памяти без 8 байт. Вот эти 8 байт не дают мне покоя: очевидно, они участвуют во внутренней кухне блока, а именно - там хранятся какие-то указатели и они переписываются каждый раз при обращении к блоку. Соответсно, ресурс блока всё равно ограничивается ресурсом одной ячейки... Мои вопросы: 1. Прав ли я в своих подозрениях? 2. Какая память используется в Trim5, а точнее - каков её реальный ресурс? |
14.07.2019, 18:18 | #2 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 122
Благодарил(а): 15 раз(а)
Поблагодарили:
661 раз(а) в 605 сообщениях
|
Ответ: ARRAY II и флэш-память
Всё верно)
Вам прежде всего нужно определиться с реально необходимой частотой записи значений. Возможно проблема особо у вас и не существует. Если насосная станция не расположена на даче, то периода записи моточасов раз в час обычно достаточно для получения погрешности менее 1%. А ротацию ячеек Трим5 выполнит самостоятельно. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
Благодарность от: |
14.07.2019, 19:38 | #3 |
Member
Регистрация: Jun 2019
Адрес: Новосибирск
Сообщения: 76
Благодарил(а): 1 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: ARRAY II и флэш-память
Да, записывать раз в час, что соответствует примерно 10 тыс. записей в год.
Я сталкивался с разными чипами памяти с ресусом от 100 (ста) до 10 млн записей, и поскольку ничего не знаю именно про трим5, то предположил что 10 тыщ могут быть уже ощутимы. Вот это да! Зря нигде в доках об этом не написано (во всяком случае не видел). Хотелось бы знать подробности - если использую ARRAY на одну ячейку, как будет осуществляться авто-ротация? В пределах страницы? Если переформулировать, то каков будет эффективный ресурс этой ячейки (виртуально, с учетом ротации)? И обобщая на будущее: как оценить реальный эффективный ресурс FBD-блока? |
14.07.2019, 21:20 | #4 |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 163
Благодарил(а): 240 раз(а)
Поблагодарили:
165 раз(а) в 157 сообщениях
|
Ответ: ARRAY II и флэш-память
если сомневаетесь, используйте для записи моточасов исторические блоки и версию лоджика 3,30.
что до темы, в одном из проектов на 2Gi пишу моточасы и циклы старт/стоп макросом, который выкладывал Арсений, с начала 17 года. частота записи - 1/4часа. пока все пашет. кстати, вот тоже интересуюсь, если использовать смарт меню для записи моточасов, там так же справедливо ротация ячеек памяти и всё такое? |
15.07.2019, 10:33 | #5 | ||
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 122
Благодарил(а): 15 раз(а)
Поблагодарили:
661 раз(а) в 605 сообщениях
|
Ответ: ARRAY II и флэш-память
Цитата:
Цитата:
https://forum.segnetics.com/showthread.php?t=1533 https://forum.segnetics.com/showthread.php?t=2695 Обратите внимание на название раздела форума, откуда я дал вам ссылки __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
||
15.07.2019, 13:07 | #6 |
Member
Регистрация: Jun 2019
Адрес: Новосибирск
Сообщения: 76
Благодарил(а): 1 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: ARRAY II и флэш-память
Похоже, вы неправильно поняли мой вопрос, потому что по ссылкам вовсе не то. Я не имел в виду ни быстродействие, ни максимальный объём проекта.
Под "ресурсом FBD-блока" я подразумевал количество записей, которые выдерживает блок сохранения. Думал, что это будет ясно из темы и содержания ветки. Но сейчас уже догадываюсь, что на этот вопрос вы мне не ответите, ибо заведует ротацией системный уровень, а не фирменная надстройка. Но если можете хотя бы примерно, то скажите. |
15.07.2019, 13:21 | #7 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 122
Благодарил(а): 15 раз(а)
Поблагодарили:
661 раз(а) в 605 сообщениях
|
Ответ: ARRAY II и флэш-память
Цитата:
Выносливость самой памяти - дело вторичное. Древние SSD с более быстрой памятью типа MLC и ресурсом 10000 записей по факту менее выносливы и менее быстры, чем современные SSD с более медленной памятью типа TLC, ресурс которой 3000 записей. Алгоритмы коррекции, развитое кеширование и т.д. В результате наработка на отказ современных решений лучше, чем старых. Мы тестов на износ не выполняли. Выносливости достаточно для гарантированной работы штатных сервисов в течении 25 лет. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|