Формула изменения канала при изменении второго канала.

Стартовая страница Форумы Понять, как работает ПО Формула изменения канала при изменении второго канала.

Просмотр 12 сообщений - с 1 по 12 (из 12 всего)
  • Автор
    Сообщения
  • #7344
    p001p
    Участник

    День добрый.

    Есть канал управления 1 (КУ1), он производит запись в какую-то переменную на контроллере.
    Есть входной канал 2 (ВК2), который меняется в зависимости от значения приходящего на него внутри ПЛК.

    Задача,
    1. Проверить что канал КУ1 != ВК2 и записать в КУ1 значение с ВК2.

    Вопрос, как реализовать при помощи формул? Я так понимаю надо делать доп. входной канал Дорасчетный ТС?

    #7349
    manjey73
    Участник

    В корне неправильная постановка вопроса. Надо согласно ВК2 записывать в КУ1 ?
    Какой смысл проверять, что КУ1 не равен входному каналу ?
    Скажем так, либо постоянно писать в КУ1 значение ВК2, если оно не меняется, то ничего и не произойдет ужасного. В любом случае нужен Модуль автоматического управления, так как просто Формулы не влияют на каналы управления.

    #7353
    Mikhail
    Модератор

    Канал управления не хранит значение, он только описывает, как отправляется команда.

    Правильно ли я понял, что нужно при изменении входного канала, передавать новое значение на контроллер? Если да, то в новом Модуле автоматического управления есть триггер на изменение. Правда, новая версия пока не выложена, но могу прислать.

    #7357
    p001p
    Участник

    Да, ситуация складывается такая, что контроллер, Segnetics SMH2G(i) и Segnetics Pixel, не поддерживает сквозную запись в переменную.
    Т.е. ТОЛЬКО одна переменная MODBUS и ТОЛЬКО одна перменная вводимая с экрана контроллера, тем самым мы получаем смешную ситуацию, когда введёное повтороно значение в перменную Modbus — не записывается.
    Тем самым надо организовать что-то вроде «обратной связи»
    Если изменилось значение ВК2, то оно должно записаться через КУ1 в переменную на контроллере.

    Если хотите почувствовать всю «костыльность» решения на данном контроллере.

    Правильно ли я понял, что нужно при изменении входного канала, передавать новое значение на контроллер? Если да, то в новом Модуле автоматического управления есть триггер на изменение. Правда, новая версия пока не выложена, но могу прислать.

    Совершенно верно! Отследить изменение входного канала, который считывает значение с переменной в контроллере — передать его на контроллер через канал управления, но в другую переменную =)

    #7360
    manjey73
    Участник

    Я так понимаю, программу в ПЛК писали не вы ? обычно предусматривают такие вещи программно в ПЛК, чтобы менять уставку можно было как с экрана, так и через сетевую переменную. Это проблема не только Pixel но и других ПЛК при подключении панели. Если программно не предусмотрели, тогда только через Модуль авто управления.

    #7361
    manjey73
    Участник

    Почитал тему, но регистрироваться там нет желания, поэтому напишу здесь.
    Вся проблема возможно кроется не в невозможности записать или считать переменную из разных источников, а в том, что программа ПЛК крутится несколько мс и в некоторых случаях программно переписывается переменная, которую вы пытаетесь изменить по сети. А сетевой обмен куда дольше, чем цикл программы.
    Обычно используют разные переменные для чтения и записи и разделяют их по времени….

    #7362
    manjey73
    Участник

    Честно, не знаю программную часть Сигнетика. На Овен с подключенной панелью реализовывал программно контроль переменной. Пнель пишет и читает свою переменную. По сети пишется и читается своя переменная. В программе ПЛК происходит сравнение, если пришла переменная по сети, отправить ее в панель. Если пришла переменная от панели и она отличается от сетевой, отправить ее в сеть.
    Делал через ENO блоков

    #7366
    Mikhail
    Модератор

    В любом случае ссылка на новую версию модуля http://rapidscada.ru/download/mod_auto_control/mod_auto_control_5.2.1.0_ru.zip

    Надеюсь, на следующей неделе выйдет новая версия Rapid SCADA. Настоятельно рекомендую обновиться, т.к. в Сервере была обнаружена ошибка, которая заключается в том, что функция Val() кратковременно возвращает 0.

    #7368
    manjey73
    Участник

    Михаил, эта ошибка могла влиять на периодический сброс в 0 переменных в моих формулах Retain ?

    #7370
    Mikhail
    Модератор

    Если версия сервера 5.1.0.0 и при этом Вы использовали функцию Val(), то да.
    Фикс: https://yadi.sk/d/Mpk9D0l13N8ADw

    #7372
    manjey73
    Участник

    Да, версия 5.1.0.0 на Raspberry
    Я так понимаю это не для версии Mono, а для Windows ?

    #7374
    Mikhail
    Модератор

    Да. Скоро выйдет официальная версия, в том числе для Моно.

Просмотр 12 сообщений - с 1 по 12 (из 12 всего)
  • Для ответа в этой теме необходимо авторизоваться.