Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 17

Тема: Инициализация сетевых переменных

  1. #1

    По умолчанию Инициализация сетевых переменных

    Планирую в энергонезависимой памяти хранить настройки с возможностью менять их по Modbus. Создал переменные-настройки. Создал сетевые переменные. Теперь необходимо при запуске скопировать значения из энергонезависимых переменных в сетевые. А затем копировать из сетевых в энергонезависимые.

    Сделал следующим образом:
    Снимок.PNG

    Расчитывал, что сетевым переменным сначала присвоится значение энергонезависимых переменных, а затем "Инициализация" станет равна 1 и больше сетевым переменным значения присваиваться не будут

    Работает не так как ожидалось. Переменная "Инициализация" сразу равна 1. Почему так и как это переделать? Неэнергонезависимая переменная может иметь значение по умолчанию?

  2. #2
    Пользователь Аватар для Василий Кашуба
    Регистрация
    20.11.2011
    Адрес
    Ставрополь
    Сообщений
    2,514

    По умолчанию

    Цитата Сообщение от dzukp Посмотреть сообщение
    Планирую в энергонезависимой памяти хранить настройки с возможностью менять их по Modbus. Создал переменные-настройки. Создал сетевые переменные. Теперь необходимо при запуске скопировать значения из энергонезависимых переменных в сетевые. А затем копировать из сетевых в энергонезависимые.

    Сделал следующим образом:
    Снимок.PNG

    Расчитывал, что сетевым переменным сначала присвоится значение энергонезависимых переменных, а затем "Инициализация" станет равна 1 и больше сетевым переменным значения присваиваться не будут

    Работает не так как ожидалось. Переменная "Инициализация" сразу равна 1. Почему так и как это переделать? Неэнергонезависимая переменная может иметь значение по умолчанию?
    Вставьте между константой "1" и "Инициализацией", таймер TON с временем 0.1 сек.

  3. #3
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    3,877

    По умолчанию

    Можно линию задержки на цикл и на выход добавить блок выходной энергонезависимой переменной! Иначе при каждом включении будет значение по умолчанию внутренней переменной, а не только при первом включении, как требуется для инициализации!

    Инициализация_2.PNG
    Последний раз редактировалось Сергей0308; 16.07.2019 в 19:47.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  4. #4

    По умолчанию

    Сергей0308 Извиняюсь. но переспрошу тут, поскольку тема вполне соответствует. ты предложил варианты с изменением по сети и локально, а как мне правильно передать обратно в сеть текущее состояние переменной, если оно изменилось локально? неужели просто выход локальной переменной соединить со входом сетевой?
    и еще для варианта выбора bool можно ли поправить макрос так, чтобы он не "желтил" я попробывал в хамскую заменить желтые линии на линии задержки, но естественно это не заработало и свалилось в циклическую перезапись...

  5. #5
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    3,877

    По умолчанию

    Цитата Сообщение от bayk Посмотреть сообщение
    Сергей0308 Извиняюсь. но переспрошу тут, поскольку тема вполне соответствует. ты предложил варианты с изменением по сети и локально, а как мне правильно передать обратно в сеть текущее состояние переменной, если оно изменилось локально? неужели просто выход локальной переменной соединить со входом сетевой?
    и еще для варианта выбора bool можно ли поправить макрос так, чтобы он не "желтил" я попробывал в хамскую заменить желтые линии на линии задержки, но естественно это не заработало и свалилось в циклическую перезапись...
    Поправил макрос в проекте, наверно лучше было попросить автора, так сказать "виновника торжества", кстати он недавно заходил на форум, Василий это сразу заметил, надеюсь он не обидится, что его макрос поправил! Я так и не понял в чём трудность, заменить жёлтые линии связи на задержку на цикл! С сетевыми переменными Вы правильно понимаете, в смысле передачи туда данных, но есть свои нюансы в виде передачи по изменению и по команде(булевой переменной)!
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  6. #6

    По умолчанию

    Сергей0308 я попробовал ваш измененный вариант для битовой переменной, но он зацикливается при попытке изменить переменную.
    приложил дооснащенный тестовыми переменными вариант, может это я чего-то не понимаю?
    Вложения Вложения
    Последний раз редактировалось bayk; 19.07.2019 в 21:24.

  7. #7
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    3,877

    По умолчанию

    Цитата Сообщение от bayk Посмотреть сообщение
    Сергей0308 я попробовал ваш измененный вариант для битовой переменной, но он зацикливается при попытке изменить переменную.
    приложил дооснащенный тестовыми переменными вариант, может это я чего-то не понимаю?
    Не понятно, что Вы там соорудили, просто напомню для чего это создавалось: для автоматически переключаемого мультиплексора и выбора входа, который изменялся последним, можно например и так сделать(я над этим не думал, голову не заморачивал):

    Изменение переменной_1.PNG

    Изменение переменной_1.owl

    Я кстати(или не кстати) предпочитаю разово по изменению присваивать значения входных переменных выходной и отпускать последнюю в свободное плавание(Вы наверно такое хотите?)! В предложенном варианте это невозможно, всегда один из входов "соединён" с выходом!

    Как-то так, применительно к целочисленным переменным:


    Изменение переменной_7.PNG

    Или так, для булевых переменных:

    Изменение переменной_8.PNG

    Изменение переменной_5.owl
    Последний раз редактировалось Сергей0308; 20.07.2019 в 01:21.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  8. #8

    По умолчанию

    у меня стоит следующая задача. по тяжелому стечению обстоятельств у меня нет возможности использовать панель мастером. в итоге приходится весь обмен с панелью организовывать на стороне контроллера. кроме этого я не могу хранить энергонезависимые переменные только в панели, на случай, если панель выйдет из строя, чтобы можно было продолжать работу.
    еще я хочу иметь возможность изменять переменные как внутри ПЛК через среду отладки, чтобы при их изменении они вносились в панель, а если их меняли з панели, то они переносились в контроллер.
    для пары булевых переменных ситуация немного другая: для них есть возможность активировать их через панель и через определенную последовательность операций с помощью переключателей, которые заходят на дискретные входы контроллера. при этом после одного технологического цикла эти переменные должны сбрасываться, соответственно эта переменная на экране ИПП тоже должна дезактивироваться для ее повторной инициализации, если это потребуется. я уже оставляю за кадром, что автоматический обмен ПЛК с панелью идет чтением из одного регистра, а записью в другой (в ПЛК)

  9. #9
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    3,877

    По умолчанию

    Цитата Сообщение от bayk Посмотреть сообщение
    у меня стоит следующая задача. по тяжелому стечению обстоятельств у меня нет возможности использовать панель мастером. в итоге приходится весь обмен с панелью организовывать на стороне контроллера. кроме этого я не могу хранить энергонезависимые переменные только в панели, на случай, если панель выйдет из строя, чтобы можно было продолжать работу.
    еще я хочу иметь возможность изменять переменные как внутри ПЛК через среду отладки, чтобы при их изменении они вносились в панель, а если их меняли з панели, то они переносились в контроллер.
    для пары булевых переменных ситуация немного другая: для них есть возможность активировать их через панель и через определенную последовательность операций с помощью переключателей, которые заходят на дискретные входы контроллера. при этом после одного технологического цикла эти переменные должны сбрасываться, соответственно эта переменная на экране ИПП тоже должна дезактивироваться для ее повторной инициализации, если это потребуется. я уже оставляю за кадром, что автоматический обмен ПЛК с панелью идет чтением из одного регистра, а записью в другой (в ПЛК)
    Не так давно была подобная тема, там дублировали экран ПР200 с помощью ИПП120, может Вам подойдёт?!

    https://owen.ru/forum/showthread.php?t=28579&page=3
    Последний раз редактировалось Сергей0308; 20.07.2019 в 02:21.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  10. #10

    По умолчанию

    Сергей0308 я собрал ваш вариант с булевой переменной в макрос и дооформил ниже работой с битом из сети. правильно ли я все это сделал? и правильно ли понял вашу идею
    в этом же проекте присоединил хвосты к selchgb. в итоге если активируешь переменную на первом входе она непрерывно меняет свое значение. в варианте без линий задержек такого не происходило, но "желтило"
    Вложения Вложения

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Буферизация сетевых переменных
    от anthrwpos в разделе Среда программирования OWEN Logic
    Ответов: 12
    Последнее сообщение: 22.08.2018, 08:50
  2. Инициализация Modbus slave (Retain) переменных
    от Спорягин Кирилл в разделе ПЛК1хх [М02]
    Ответов: 20
    Последнее сообщение: 14.03.2016, 08:17
  3. Ответов: 17
    Последнее сообщение: 15.09.2015, 06:05
  4. Энергонезависимость сетевых переменных
    от max_etf в разделе Программируемые реле
    Ответов: 19
    Последнее сообщение: 07.09.2012, 10:03
  5. Ответов: 19
    Последнее сообщение: 09.02.2011, 09:15

Ваши права

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