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

Тема: OPC UA, опрос переменных

  1. #1

    По умолчанию OPC UA, опрос переменных

    Здравствуйте!

    Прошу подсказать по следующей проблеме с использованием OPC UA на ПЛК 210. Есть контроллер ПЛК 210 и панель Weintek. В контроллере есть булевая переменная X, которая включена в символьную конфигурацию, и доступна к обмену по OPC. В интерфейсе панели weintek есть битовый переключатель, через него меняется и отображается значение данной переменной X. Предположим на контроллер приходит внешний сигнал, о необходимости задать X=false. Теперь каждый цикл в контроллере записывается X=false. Значение на панели соответственно изменилось, условный тумблер выключен. Но когда на панели я включаю данный тумблер (задаю X=true), он не выключается автоматически, то есть тумблер остается включенным, при том что он вроде бы должен автоматически выключиться (так как в контроллере задается X=false). При этом в памяти контроллера X=false, получается значение битового переключателя и переменной в этот момент "не связаны". Подскажите, в чем может быть причина?

  2. #2

    По умолчанию

    Цитата Сообщение от nikutuzov Посмотреть сообщение
    Здравствуйте!

    Прошу подсказать по следующей проблеме с использованием OPC UA на ПЛК 210. Есть контроллер ПЛК 210 и панель Weintek. В контроллере есть булевая переменная X, которая включена в символьную конфигурацию, и доступна к обмену по OPC. В интерфейсе панели weintek есть битовый переключатель, через него меняется и отображается значение данной переменной X. Предположим на контроллер приходит внешний сигнал, о необходимости задать X=false. Теперь каждый цикл в контроллере записывается X=false. Значение на панели соответственно изменилось, условный тумблер выключен. Но когда на панели я включаю данный тумблер (задаю X=true), он не выключается автоматически, то есть тумблер остается включенным, при том что он вроде бы должен автоматически выключиться (так как в контроллере задается X=false). При этом в памяти контроллера X=false, получается значение битового переключателя и переменной в этот момент "не связаны". Подскажите, в чем может быть причина?
    Любое изменение в панели или в ПЛК, приводит к перезаписи булевой переменной. Это нормально.
    Если вам нужен другой порядок работы кнопки, сделайте не инверсию, а включение пока нажато. Так же можно сделать и в ПЛК, например через таймер PT.
    Вот видео по OPC UA и символьной конфигурации https://www.youtube.com/watch?v=z3lIr7cyWb4
    Последний раз редактировалось kondor3000; 16.09.2024 в 19:26.

  3. #3

    По умолчанию

    Благодарю, но дело то тут в том что в плк значение X=false, а переключатель показывает True. Представьте что X - включение выключение нагрева. Первоначально нагрев был включен, с панели. Затем по сигналу с датчика температуры (превышение температуры) нагрев отключается в программе плк (и выключается тумблер на панели). Но когда я вновь включаю тумблер, он встаёт в положение True, при том что в плк значение X = false, так как сигнал с датчика температуры автоматически каждый цикл сбрасывает resetом значение X. Собственно это можно видеть при отладке на плк. Таким образом в плк X=false, а на панели X = true, то есть значение битового переключателя не соответствует плк. Такое происходит только если значение X регулярно сбрасывается (если скажем X сбросить по фронту бита превышения температуры, то все нормально).
    Я подумал, что здесь дело в выставлении флагов изменения переменных в opc ua, Я значение записываю, оно тут же сбрасывается и флаг не выставляется, и на панели значение не меняется и не соответствует истинному.
    Собственно вот хочу понять, правильно ли я догадываюсь

  4. #4

    По умолчанию

    Цитата Сообщение от nikutuzov Посмотреть сообщение
    Благодарю, но дело то тут в том что в плк значение X=false, а переключатель показывает True. Представьте что X - включение выключение нагрева. Первоначально нагрев был включен, с панели. Затем по сигналу с датчика температуры (превышение температуры) нагрев отключается в программе плк (и выключается тумблер на панели). Но когда я вновь включаю тумблер, он встаёт в положение True, при том что в плк значение X = false, так как сигнал с датчика температуры автоматически каждый цикл сбрасывает resetом значение X. Собственно это можно видеть при отладке на плк. Таким образом в плк X=false, а на панели X = true, то есть значение битового переключателя не соответствует плк. Такое происходит только если значение X регулярно сбрасывается (если скажем X сбросить по фронту бита превышения температуры, то все нормально).
    Я подумал, что здесь дело в выставлении флагов изменения переменных в opc ua, Я значение записываю, оно тут же сбрасывается и флаг не выставляется, и на панели значение не меняется и не соответствует истинному.
    Собственно вот хочу понять, правильно ли я догадываюсь
    Ну проверить это можно, отвязать переменную от сброса на время или сделать сброс через R_trig например. Постоянно сброс не должен работать, а должен сбросить разово, поэтому с панели и не управляется.

  5. #5
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,409

    По умолчанию

    Цитата Сообщение от nikutuzov Посмотреть сообщение
    Благодарю, но дело то тут в том что в плк значение X=false, а переключатель показывает True. Представьте что X - включение выключение нагрева. Первоначально нагрев был включен, с панели. Затем по сигналу с датчика температуры (превышение температуры) нагрев отключается в программе плк (и выключается тумблер на панели). Но когда я вновь включаю тумблер, он встаёт в положение True, при том что в плк значение X = false, так как сигнал с датчика температуры автоматически каждый цикл сбрасывает resetом значение X. Собственно это можно видеть при отладке на плк. Таким образом в плк X=false, а на панели X = true, то есть значение битового переключателя не соответствует плк. Такое происходит только если значение X регулярно сбрасывается (если скажем X сбросить по фронту бита превышения температуры, то все нормально).
    Я подумал, что здесь дело в выставлении флагов изменения переменных в opc ua, Я значение записываю, оно тут же сбрасывается и флаг не выставляется, и на панели значение не меняется и не соответствует истинному.
    Собственно вот хочу понять, правильно ли я догадываюсь
    Добрый день.
    Чтобы добиться того поведения, которое вы ожидаете - в EasyBuilder в расширенных настройках OPC UA (они скрываются за кнопкой Безопасность, Аутентификация) установите Режим обновления = Режим запроса.

    2024-09-17_6-13-40.png

  6. #6

    По умолчанию

    Цитата Сообщение от nikutuzov Посмотреть сообщение
    Здравствуйте!

    Прошу подсказать по следующей проблеме с использованием OPC UA на ПЛК 210. Есть контроллер ПЛК 210 и панель Weintek. В контроллере есть булевая переменная X, которая включена в символьную конфигурацию, и доступна к обмену по OPC. В интерфейсе панели weintek есть битовый переключатель, через него меняется и отображается значение данной переменной X. Предположим на контроллер приходит внешний сигнал, о необходимости задать X=false. Теперь каждый цикл в контроллере записывается X=false. Значение на панели соответственно изменилось, условный тумблер выключен. Но когда на панели я включаю данный тумблер (задаю X=true), он не выключается автоматически, то есть тумблер остается включенным, при том что он вроде бы должен автоматически выключиться (так как в контроллере задается X=false). При этом в памяти контроллера X=false, получается значение битового переключателя и переменной в этот момент "не связаны". Подскажите, в чем может быть причина?
    Предлагаю добавить ещё пару переменных "Включить нагрев" и "Выключить нагрев", которые будут управлять состоянием переменной нагрева (управление импульсное, по фронту сигнала). На панели можно управлять видимостью кнопок "Включить нагрев" и "Выключить нагрев" по состоянию Х.
    Данный режим более однозначен при использовании и избавляет от подобных проблем с "обратной связью"

  7. #7

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Добрый день.
    Чтобы добиться того поведения, которое вы ожидаете - в EasyBuilder в расширенных настройках OPC UA (они скрываются за кнопкой Безопасность, Аутентификация) установите Режим обновления = Режим запроса.

    2024-09-17_6-13-40.png
    А можете пожалуйста подробнее объяснить разницу между этими двумя режимами

  8. #8
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,409

    По умолчанию

    Цитата Сообщение от korben_um Посмотреть сообщение
    А можете пожалуйста подробнее объяснить разницу между этими двумя режимами
    Режим запроса - клиент (панель) циклически отправляет запрос на чтение переменных, сервер (ПЛК) в ответ отправляет их значения (даже если они не изменились с момента предыдущего запроса).

    Подписка - сервер (ПЛК) с заданным периодом (см. скриншот) отправляет клиенту (панели) информацию об изменившихся с момента предыдущей отправки переменных (т. е. если у переменных изменились значения или статус).

Похожие темы

  1. Ответов: 3
    Последнее сообщение: 29.10.2016, 12:39
  2. Ответов: 8
    Последнее сообщение: 28.12.2014, 23:07
  3. Опрос переменных ПЛК 160 сохранение данных на ПК
    от Vasiliy Jabil в разделе Помощь Разработчикам
    Ответов: 1
    Последнее сообщение: 13.03.2014, 10:13
  4. Опрос переменных
    от ramilgim в разделе Master SCADA 3
    Ответов: 3
    Последнее сообщение: 19.04.2013, 16:49
  5. Опрос переменных
    от ck1zy в разделе Master SCADA 3
    Ответов: 9
    Последнее сообщение: 10.06.2011, 10:27

Ваши права

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