Меня мучает вопрос. Может, кто-то смог в лоб решить задачу? Есть Овен "ПЛК-160", который на Codesys 2.3. Захотелось мне сделать уставку через Modbus и чтобы она сохранялась при отключении питания, имела начальное значение и изменялась через Holding Register. Если я в лоб пишу "Var retain a:word=10;", то переменная обнуляется, если прописана как переменная в Holding Register. Может есть какой-то более прямой путь, который не связан с отдельной программой, которая сохраняет переменную в retain и извлекает её на первом цикле ?

Комментарии: 6

  1. Yyriy

    Не знаю, что там на 160м, а на 110м холдинг переменная втыкась(копировалась) в ретейн и всё работало

  2. Vildan

    Если в общем опишите задачу - напишу в целом как лучше ( да конечно решал подобное ) Сколько слейвов мастеров и тд

    • Nikita

      Вот, допустим есть переменная, и используется следующим образом Мастеров там 1, как сделать, чтобы уставка сохранялась без танца с бубном ?

      • Vildan

        Объявить переменную в конфигурации модбас слейв - она ретайн Или у вас при вкл скада/мастер успевает перезаписать?

        • Nikita

          Она и объявлена в Modbus Slave. Там где-то ещё нужно добавить retain ? Скада там ленивая, она явно не пишет ничего пока оператор не дёрнется, да и даже при работающей СКАДА, т.е. когда запись уже была, проявляются 0 после перезагрузки. Лечу тем, что создаю ещё 1 переменную в retain, из которой забираю данные при запуске контроллера. Если бы это Scada хулиганила, то при перезагрузке СКАДА вылетали бы 0, а тут только при перезагрузке контролера

          • Vildan

            Это что то особенное - скиньте проект - гляну....

Не нашли ответ?

Вам также может быть интересно