Страница 3 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 21 по 30 из 33

Тема: Архивы на flash ПЛК

  1. #21

    По умолчанию

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

  2. #22

    По умолчанию

    Добавлю свои сто грамм.
    Я сделал архив следующим образом:
    -первые 4 байта это UDINT переменная, в которой храню положение последней записи,
    -запись имеет фиксированный размер, устанавливается максимальное количество записей в архиве,
    -при добавлении новой записи,если номер последней записи меньше максимального размера, новая запись помещается в конец архива,
    счетчик записей увеличивается на 1, при достижении максимального размера счетчик записей обнуляется, новая запись затирает первую запись, следующая вторую и т.д.
    - при чтении архива задается номер искомой записи относительно последней, зная размер архива, положение последней записи и её размер определяется положение начала запрашиваемой записи относительно начала архива и её чтение.
    - файл открывается в постоянно в режиме 'w' при первом обращении на запись после старта и закрывается при отключении питания.
    Сейчас на объекте используется архив размером 1024 записи, длинна записи 200 байт. периодичность записей - в среднем 10 раз в час.
    Какой ресурс флеш- памяти будет в таком режиме?

  3. #23

    По умолчанию

    Будет определяться частотой записи в первые 4 байта. В Вашем случае надолго хватит.

  4. #24

    По умолчанию

    Цитата Сообщение от Евгений Пашигоров Посмотреть сообщение
    Тут какое-то противоречие. Или нет контроля свободного места (тогда мы не узнаем, когда перезаписывать или останавливать запись), или все-таки контроль есть. Меня собственно волнует, возможно ли, записывая файл, залезть куда-нибудь в программную память (то есть, куда не следует)?

    При перезапуске (reset) файлы автоматически не закрываются?
    Контроль есть! Андрей Николаев немного ошибся.
    При перезагрузке всего ПЛК файлы закрваются, но при перезагрузке программы ПЛК - нет, т.к. файлы -не часть ядра CoDeSys и используются не только им.

    Так что в начале программы просто закройте все файлы, к-е используете.

  5. #25

    По умолчанию

    Еще вопрос:
    - данные пишутся на flash при выполнении sysfilewrite или при закрытии файла?

  6. #26

    По умолчанию

    Спасибо. И еще один вопрос: как определить оставшееся место для файлов?

  7. #27

    По умолчанию

    Уважаемые, коллеги для считывания АРХИВОВ из ОВЕН ПЛК на уровне прошивки ПЛК поддерживается: модуль архивирования и модуль передачи по 20-ой функции Modbus!!! как-то данный аспект был опущен нашими специалистами.. И не какого кода, сплошные клики пкм: Инструкция по конфигурированию ПЛК
    "ОВЕН"
    тел.: (495) 221-60-64 доб. 1224
    e-mail: i.karetkin@owen.ru

  8. #28

    По умолчанию

    Цитата Сообщение от Илья Кареткин Посмотреть сообщение
    на уровне прошивки ПЛК поддерживается: модуль архивирования и модуль передачи по 20-ой функции Modbus!!! И не какого кода, сплошные клики пкм: Инструкция по конфигурированию ПЛК
    Правда, везде скромно умалчивается о максимально допустимом размере файла архива в 30 килобайт!
    Для меня, так это насмешка над понятием архив. При том, что размер флеш-памяти контроллера допускает объемы в десятки раз больше.

    Приходится все делать самому. Да и ладно, лишь бы заявленный функционал работал так, как описано. А то постоянно на какие-то грабли натыкаешься.

    Так и не получил ответа на свой вопрос, имеется ли возможность узнать, сколько осталось места на флешке под файл?

  9. #29

    По умолчанию

    Плк 150 запись и чтение

    зап:
    dwHandle := SysFileOpen('Pr_XX.t','w');
    SysFileWrite(dwHandle,ADR(Pr_XX),SIZEOF(Pr_XX));
    SysFileClose(dwHandle);

    tmp:=REAL_TO_WORD((cc+10)*10);
    dwHandle := SysFileOpen('cc.t','w');
    SysFileWrite(dwHandle,ADR(tmp),SIZEOF(tmp));
    SysFileClose(dwHandle);

    Чтение:
    dwHandle := SysFileOpen('Pr_XX.t','r');
    SysFileRead(dwHandle,ADR(Pr_XXf),SIZEOF(Pr_XXf)-1);
    SysFileClose(dwHandle);

    dwHandle := SysFileOpen('cc.t','r');
    SysFileRead(dwHandle,ADR(tmp),SIZEOF(tmp)-1);
    SysFileClose(dwHandle);
    ccf:=WORD_TO_REAL(tmp);
    ccf:=ROUND((ccf / 10 - 10),1);

    Все это работает, но ЧУЮ что как то через Ж*ПУ.
    подскажите?

    Запись у меня проходит редко 1 раз в месяц а может и в год.
    Просто настохринело менять аккумуляторы.
    У меня 8-12 плк150 и сенсорная панель (так 8 раз с тремя типами панелей), с панели поменяли уставку в одном из плк, плк видит что значение изменилось и делает запись.
    Последний раз редактировалось nalnik; 20.02.2012 в 20:26.

  10. #30

    По умолчанию

    Ayyyy--
    Тут черная дыра что ли?

Страница 3 из 4 ПерваяПервая 1234 ПоследняяПоследняя

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •