Показано с 1 по 3 из 3

Тема: модуль архиватор

  1. #1

    По умолчанию модуль архиватор

    около двух лет не работал с Овен ПЛК. в ходе работы с очередным проектом выяснилось, что размер архива уменьшили до 32 кб!

    На моем двухлетней давности проекте успешно создаются и используются архивы размером 200кб. Я очень рассчитывал примерно на такой же размер. Увы!
    Теперь проект надо сдавать, а архивов нет.

    Советую вообще выкинуть модуль архиватора из конфигурации ПЛК. Он в его нынешнем виде только вводит в заблуждение. Нигде в документации не указано, что размер архива не может превышать 32к. Кому нужны такие, с позволения сказать, архивы?

    Есть ли у кого программа архивации через syslibfile? Лучше бы на языке st (все эти прямоугольнички ФБ я воспринимаю с большим трудом), но пойдет любая.

  2. #2

    По умолчанию

    В общем, сделал я архиватор через файловую библиотеку.
    теперь вопрос, наверное, в техподдержку Овен.
    При работе со строковыми функциями возникает ошибка, приводящая к зависанию и перезапуску ПЛК.
    Если делаю так:
    mstring := REAL_TO_STRING(1000.0/(sec+1)); - то работает несколько минут и перезагружается.
    А если двойное преобразование:
    mstring := WORD_TO_STRING(REAL_TO_WORD(1000.0/(sec+1)));
    то работает сколько хочешь.
    Вот проект архиватор, в котором это обнаружилось.
    Последний раз редактировалось Евгений Пашигоров; 21.09.2010 в 09:32.

  3. #3

    По умолчанию

    Все, вероятно, очень просто.
    выражение 1000.0/(sec+1) может при преобразовании в к-то момент дать очень большую строку(маленькое число) или наоборот, деление на ноль.
    если приемная строка мала - будут проблемы. REAL_TO_WORD - сильно ограничивает диапазон изменений и доп. защищает от результата деления на ноль.
    К сожалению, штатные функции ХХХ_TO_STRING() очень ограниченны.

Ваши права

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