Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 21

Тема: ПР200. Изменение состояния по изменению сетевой переменной. Как?

  1. #1
    Пользователь
    Регистрация
    09.03.2024
    Адрес
    Ярославль
    Сообщений
    13

    По умолчанию ПР200. Изменение состояния по изменению сетевой переменной. Как?

    Имеется такой блок.
    Owl1.png

    На I1(2) импульсная кнопка, на Q7(2) реле включения/выключения света. Логика такая, одно нажатие включить свет, следующее выключить и т.д, т.е. схема toggle.

    Проблема в следующем. Если изменение состояния выхода Q7(2) происходит только по импульсу на входе I1(2), то все работает корректно. Но как видно, изменить состояние Q7(2) можно и с помощью изменения сетевой переменной. В этом случае на выходе макроса ON_OFF остается прежнее значение и чтобы опять все заработало корректно, нужно дернуть импульсную кнопку 2 раза.

    Пример проблемного состояния.
    Owl2.png

    Как можно сделать по другому? Чтобы по изменению сетевой переменной, состояние на выходе ON_OFF тоже устанавливалось в значение сетевой переменной?
    Последний раз редактировалось sokolov.sv; 09.03.2024 в 23:34.

  2. #2

    По умолчанию

    Цитата Сообщение от sokolov.sv Посмотреть сообщение
    Имеется такой блок.
    Owl1.png

    На I1(2) импульсная кнопка, на Q7(2) реле включения/выключения света. Логика такая, одно нажатие включить свет, следующее выключить и т.д, т.е. схема toggle.

    Проблема в следующем. Если изменение состояния выхода Q7(2) происходит только по импульсу на входе I1(2), то все работает корректно. Но как видно, изменить состояние Q7(2) можно и с помощью изменения сетевой переменной. В этом случае на выходе макроса ON_OFF остается прежнее значение и чтобы опять все заработало корректно, нужно дернуть импульсную кнопку 2 раза.

    Пример проблемного состояния.
    Owl2.png

    Как можно сделать по другому? Чтобы по изменению сетевой переменной, состояние на выходе ON_OFF тоже устанавливалось в значение сетевой переменной?
    Вам нужно синхронизировать все с сетевыми переменными, это сделать можно например вот так:

    Примерчик.jpg

    У Вас в качестве мастера что используется? Использовать целый регистр для управления одним устройствам по меньшей мере расточительно (в одном регистре можно передать 16 состояний с помощью битовой маски).
    Вложения Вложения
    Последний раз редактировалось Godlike_S; 10.03.2024 в 03:35.

  3. #3

    По умолчанию

    Прошу прощения! А я просто инвертирую бит в сетевой переменной.
    Owen.jpg

    Одна переменная 32 комнаты:
    Owen1.jpg

    Но мне больше по душе:
    Owen2.jpg
    Последний раз редактировалось EFrol; 10.03.2024 в 08:23.

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

    По умолчанию

    Цитата Сообщение от sokolov.sv Посмотреть сообщение
    Имеется такой блок.
    Owl1.png

    На I1(2) импульсная кнопка, на Q7(2) реле включения/выключения света. Логика такая, одно нажатие включить свет, следующее выключить и т.д, т.е. схема toggle.

    Проблема в следующем. Если изменение состояния выхода Q7(2) происходит только по импульсу на входе I1(2), то все работает корректно. Но как видно, изменить состояние Q7(2) можно и с помощью изменения сетевой переменной. В этом случае на выходе макроса ON_OFF остается прежнее значение и чтобы опять все заработало корректно, нужно дернуть импульсную кнопку 2 раза.

    Пример проблемного состояния.
    Owl2.png

    Как можно сделать по другому? Чтобы по изменению сетевой переменной, состояние на выходе ON_OFF тоже устанавливалось в значение сетевой переменной?
    Вот здесь подобное делали 2 года тому назад, в смысле, управление Т-триггерами локально, с кнопок ПР и по сети, с другого ПР:
    https://owen.ru/forum/showthread.php?t=26216&page=222

    32 Т-триггера + управление из нескольких мест(по сети).PNG
    Последний раз редактировалось Сергей0308; 10.03.2024 в 08:28.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  5. #5
    Пользователь
    Регистрация
    09.03.2024
    Адрес
    Ярославль
    Сообщений
    13

    По умолчанию

    Цитата Сообщение от Godlike_S Посмотреть сообщение
    Вам нужно синхронизировать все с сетевыми переменными, это сделать можно например вот так:

    Примерчик.jpg

    У Вас в качестве мастера что используется? Использовать целый регистр для управления одним устройствам по меньшей мере расточительно (в одном регистре можно передать 16 состояний с помощью битовой маски).
    В качестве мастера HomeAssistant через шлюз MODBUS TCP -> MODBUS RTU
    С регистрами согласен, расточительно, но пока переделывать не буду, т.к. даже в варианте 1 выключатель - 1 переменная еще есть приличный запас с учетом того, что вся схема уже реализована. Ну и в HomeAssistant для записи битовых масок в регистры нужно немного повозиться. За идею спасибо!

  6. #6
    Пользователь
    Регистрация
    09.03.2024
    Адрес
    Ярославль
    Сообщений
    13

    По умолчанию

    Цитата Сообщение от EFrol Посмотреть сообщение
    Прошу прощения! А я просто инвертирую бит в сетевой переменной.
    Owen.jpg

    Одна переменная 32 комнаты:
    Owen1.jpg

    Но мне больше по душе:
    Owen2.jpg
    Спасибо! Пожалуй третий вариант и возьму как основной. Тут макрос напрашивается, где на входе сигнал с кнопки + сетевая переменная (если битовую маску исопльзовать, то еще она).

  7. #7
    Пользователь
    Регистрация
    09.12.2013
    Адрес
    Ставрополь
    Сообщений
    1,138

    По умолчанию

    Цитата Сообщение от sokolov.sv Посмотреть сообщение
    Спасибо! Пожалуй третий вариант и возьму как основной. Тут макрос напрашивается, где на входе сигнал с кнопки + сетевая переменная (если битовую маску исопльзовать, то еще она).
    Ну, если вам не нужна битовая маска, то тогда так проще
    Безымянный.png

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

    По умолчанию

    В смысле, не нужна?
    Если кого-то, вследствие непонимания или принципа "и так сойдёт" это устраивает, то большинство пользователей это не устроит, в смысле, решение должно быть более-менее оптимальным.
    Сегодня у него одна лампочка, завтра захочет 8 или 16 лампочками управлять! Кроме, того, так это просто не логично, в смысле затратить в 16 раз больше ресурсов чем требуется!
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  9. #9
    Пользователь
    Регистрация
    09.03.2024
    Адрес
    Ярославль
    Сообщений
    13

    По умолчанию

    Делаю для себя, а не для заказчика. Вообще я всю сознательную жизнь программирую на императивных языках, с FBD после этого чуть сложнее работать. Иногда даже хочется многие блоки на ST. Так вот всегда придерживаюсь правила: преждевременная оптимизация - это зло. Исходные данные: ПР200 имеет 64 регистра, на данный момент в проекте задействовано 49, при том, что задействованы 24 DO (с 2хПРМ) и все 4xAI и расширения не предвидится. Ядро системы все таки HomeAssistant, а ПР200 для него периферия, которая обеспечивает проводную автоматизацию, а у меня на нем еще и ZigBee и LoRaWAN.

    Что там потребуется расширять, если все провода уже заложены и новых не будет? Это не условия предприятия, где в слаботочные лотки можно доложить кабеля ;-)

    Почему еще без явной необходимости не вижу смысла в битовых масках - усложнение понимания. Когда тебе нужно помнить за что отвечает тот или иной бит переменной. Это неважно, если ПР200 больше ни с чем не взаимодействует, но если взаимодействуте, то это может стать головной болью.
    Последний раз редактировалось sokolov.sv; 10.03.2024 в 16:24.

  10. #10

    По умолчанию

    Цитата Сообщение от sokolov.sv Посмотреть сообщение
    Делаю для себя, а не для заказчика. Вообще я всю сознательную жизнь программирую на императивных языках, с FBD после этого чуть сложнее работать. Иногда даже хочется многие блоки на ST. Так вот всегда придерживаюсь правила: преждевременная оптимизация - это зло. Исходные данные: ПР200 имеет 64 регистра, на данный момент в проекте задействовано 49, при том, что задействованы 24 DI (с 2хПРМ) и все 4xAI и расширения не предвидится. Ядро системы все таки HomeAssistant, а ПР200 для него периферия, которая обеспечивает проводную автоматизацию, а у меня на нем еще и ZigBee и LoRaWAN.

    Что там потребуется расширять, если все провода уже заложены и новых не будет? Это не условия предприятия, где в слаботочные лотки можно доложить кабеля ;-)

    Почему еще без явной необходимости не вижу смысла в битовых масках - усложнение понимания. Когда тебе нужно помнить за что отвечает тот или иной бит переменной. Это неважно, если ПР200 больше ни с чем не взаимодействует, но если взаимодействуте, то это может стать головной болью.
    Зря вы так думаете, вот пример, правда это справедливо если ПР мастер. У вас всё быстрее, так как ПР слейв.
    У вас 49 регистров передаются грубо по 100 ms на регистр итого 49*0.1 сек=4,9 секунд (у ПР мастера нет группового опроса),
    если вы уберёте 32 булевых переменных в 2 маски, останется 19 регистров и время передачи уменьшится до 1,9 секунды. В три раза быстрее !!!
    Последний раз редактировалось kondor3000; 10.03.2024 в 16:33.

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

Похожие темы

  1. Изменение константы сетевой переменной
    от shvitaliy в разделе Среда программирования OWEN Logic
    Ответов: 26
    Последнее сообщение: 27.12.2022, 17:43
  2. обнуление сетевой переменной при включении питания ПР200
    от ALEX_099 в разделе Программируемые реле
    Ответов: 37
    Последнее сообщение: 28.09.2019, 19:15
  3. Сброс сетевой переменной в ПР200
    от AlexVasil в разделе Программируемые реле
    Ответов: 4
    Последнее сообщение: 23.04.2019, 09:31
  4. ПР200 переход по изменению значения переменной
    от Orbes в разделе Среда программирования OWEN Logic
    Ответов: 2
    Последнее сообщение: 10.02.2017, 13:37
  5. Ответов: 10
    Последнее сообщение: 25.06.2014, 22:39

Ваши права

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