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

Тема: сохранение значений переменных

  1. #1

    По умолчанию сохранение значений переменных

    здравствуйте, у меня есть программа с множеством параметров, значение которых пользователь меняет в ходе работы. есть ли какая-нибудь возможность сохранять эти значения в режиме онлайн и присваивать их параметрам в следующем сеансе? либо подскажите как сделать перезагрузку изменённого проекта без обнуления переменных.

  2. #2
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,144

    По умолчанию

    объявите эти переменные как Retain

  3. #3

    По умолчанию

    почитайте стр.5-4, 5-5 руководства "Руководство пользователя
    по программированию ПЛК в CoDeSys 2.3".

  4. #4

    По умолчанию

    Я использую переменные MODBUS (Slave), а они на сколько я знаю являются переменными RETAIN. И когда я отключаю питание и произвожу сброс их значения остаются, а вот если я хочу загрузить новую программу отличающуюся от старой даже двумя строчками, они сбрасываются. К слову у меня 2 модуля, для каждого модуля по 8 рецептов, в каждом рецепте по 26 параметров итого 26х8х2=416.

  5. #5

    По умолчанию

    а что мешает перед загрузкой нового проекта сохранить файл с ретейн переменными на компе, а после загрузки проекта - залить обратно?

  6. #6

    По умолчанию

    Это возможно, только если конфигурация переменных в slave не меняется.
    Наиболее полное управление сохранением retain можно достичь только если вы сами будете это делать.
    В Вашем случае рекомендую использовать доп. файл, в который вы по известному событию будете сохранять память из slave, а при старте восстанавливать.

  7. #7

    По умолчанию

    я так и делаю, для каждого параметра (26шт) у меня создан массив Retain переменных состоящий из 2 строк (на каждый модуль по строке) и 8 столбцов ( на каждый рецепт по столбцу), при каждом изменении значения параметра, он сохраняется в массиве, а когда перезаливаю программу массив пуст!!!

  8. #8

    По умолчанию

    Retain действует именно так. И это описано в документации и является стандартом.
    Если Вам необходимо иное поведение - надо его сделать самому.
    Берете указатель на первый параметр slave, считываете массив данных, записываете его в файл.
    Если надо - восстанавливаете из файла. В этом случае - все в Ваших руках.

  9. #9

    По умолчанию

    видимо тогда мой вопрос должен звучать так: " а как сохранить массив данных в файл ?"

  10. #10

    По умолчанию

    даете в функцию FileWrite адрес массива и его размер.

Ваши права

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