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

Тема: Вопросы по MasterSCADA 4D

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Коллеги, приветствую! Есть MasterSCADA 4D + ОВЕН110 MS4
    Есть внешний канал modbus связанный с переменной InOut BOOL (свойство сохранять - выключено).
    По приходу 1 выполняется некая подпрограмма, после ее выполнения регистр нужно обнулить. Никак не получается этого сделать, упрощенный пример:
    R_TRIG_5(CLK:= MB_ALL_OFF );
    IF R_TRIG_5.Q THEN
    MB_ALL_OFF:= FALSE; (*Для сквозных переменных отключить свойство сохранять*)
    END_IF
    Переменная сбрасывается и сразу возвращается в TRUE.
    Пробовал добавлять локальную промежуточную переменную и по ней в следующем цикле обнулять, эффект тот же.
    Вероятно я упускаю что-то простое, тыкните носом пожалуйста.

  2. #2

    По умолчанию

    Цитата Сообщение от lutig Посмотреть сообщение
    Коллеги, приветствую! Есть MasterSCADA 4D + ОВЕН110 MS4
    Есть внешний канал modbus связанный с переменной InOut BOOL (свойство сохранять - выключено).
    По приходу 1 выполняется некая подпрограмма, после ее выполнения регистр нужно обнулить. Никак не получается этого сделать, упрощенный пример:
    R_TRIG_5(CLK:= MB_ALL_OFF );
    IF R_TRIG_5.Q THEN
    MB_ALL_OFF:= FALSE; (*Для сквозных переменных отключить свойство сохранять*)
    END_IF
    Переменная сбрасывается и сразу возвращается в TRUE.
    Пробовал добавлять локальную промежуточную переменную и по ней в следующем цикле обнулять, эффект тот же.
    Вероятно я упускаю что-то простое, тыкните носом пожалуйста.
    Это во внешних каналах или в протоколе?
    Не до конца понятно где хотите обнулить, в протоколе или программе?

  3. #3

    По умолчанию

    Цитата Сообщение от VladGC Посмотреть сообщение
    Это во внешних каналах или в протоколе?
    Не до конца понятно где хотите обнулить, в протоколе или программе?
    Через внешний канал модбас приходит 1, к каналу привязана переменная с типом InOut "MB_ALL_OFF".
    По тригеру на этой переменной в программе исполняется код, в конце него обнуляю переменную. Что бы внешнее устройство увидело 0 в регистре.
    Соответственно переменная обнуляется, но на следующем цикле она снова 1. Ощущение, что она не записывается в регистр.

  4. #4

    По умолчанию

    Цитата Сообщение от lutig Посмотреть сообщение
    Через внешний канал модбас приходит 1, к каналу привязана переменная с типом InOut "MB_ALL_OFF".
    По тригеру на этой переменной в программе исполняется код, в конце него обнуляю переменную. Что бы внешнее устройство увидело 0 в регистре.
    Соответственно переменная обнуляется, но на следующем цикле она снова 1. Ощущение, что она не записывается в регистр.
    Тогда получается что это самое внешнее устройство опять посылает 1

    Опять же не понятно,
    Где и как идет опрос.
    В masterscada4D стоит протокол modbus, по нему читаете регистры, которые в плк 110 находятся во внешних каналах?
    Screenshot_3.png

  5. #5

    По умолчанию

    Цитата Сообщение от VladGC Посмотреть сообщение
    Тогда получается что это самое внешнее устройство опять посылает 1

    Опять же не понятно,
    Где и как идет опрос.
    В masterscada4D стоит протокол modbus, по нему читаете регистры, которые в плк 110 находятся во внешних каналах?
    Screenshot_3.png
    Проверял через qmodmaster, из него посылал единицу на нужный внешний канал плк 110 через ModbusTCP.
    Протокол Modbus в данном конкретном примере исключил, да и вообще выкинул все. Оставил встроенный DI и DO и один внешний канал.
    2021-03-01_13-05.png

  6. #6

    По умолчанию

    Цитата Сообщение от lutig Посмотреть сообщение
    Проверял через qmodmaster, из него посылал единицу на нужный внешний канал плк 110 через ModbusTCP.
    Протокол Modbus в данном конкретном примере исключил, да и вообще выкинул все. Оставил встроенный DI и DO и один внешний канал.
    2021-03-01_13-05.png
    Попробуйте создать переменную вне программы, либо в узле либо в объеке, далее перетащите ее во внешние каналы, а затем связать на чтение и запись в программеScreenshot_4.png

  7. #7

    По умолчанию

    Цитата Сообщение от VladGC Посмотреть сообщение
    Попробуйте создать переменную вне программы, либо в узле либо в объеке, далее перетащите ее во внешние каналы, а затем связать на чтение и запись в программеScreenshot_4.png
    И правда, так работает. Спасибо огромное за помощь!
    Интересно, с чем это связано.

Похожие темы

  1. Вопросы по СИ-8
    от aleksandr87 в разделе Эксплуатация
    Ответов: 2
    Последнее сообщение: 11.06.2016, 18:56
  2. Вопросы новичка по MasterScada
    от MrNobody в разделе Master SCADA 3
    Ответов: 4
    Последнее сообщение: 04.09.2014, 14:39
  3. MasterScada v3.6 Основные вопросы
    от colorprint2008 в разделе Master SCADA 3
    Ответов: 7
    Последнее сообщение: 24.12.2013, 15:50
  4. конвертация проекта из Masterscada 3.5 в Masterscada 3.4
    от Сергей_SPB в разделе Master SCADA 3
    Ответов: 2
    Последнее сообщение: 01.04.2013, 16:56
  5. Вопросы по трендам MasterSCADA
    от 42ia в разделе Master SCADA 3
    Ответов: 9
    Последнее сообщение: 26.06.2012, 10:58

Ваши права

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