Как создать кнопку в Редакторе схем

Стартовая страница Форумы Понять, как работает ПО Как создать кнопку в Редакторе схем

Просмотр 15 сообщений - с 31 по 45 (из 45 всего)
  • Автор
    Записи
  • #15800
    manjey73
    Участник

    Например Cmd*NOT(Val(1317)) — у меня такая формула умножает отправляемую команду на инверсию канала 1317 а на самом деле формула может быть любой, с проверкой требуемых каналов на те или иные значения…

    #15801
    Romiros
    Участник

    Вопрос не в том, что отправить в команде, а как ее инициировать без всяких кнопок.

    #15802
    manjey73
    Участник

    Без кнопок только Модулем автоуправления. Без действий Оператора только так.

    А если именно кнопкой, то можно все что угодно сделать через формулы

    #15803
    Romiros
    Участник

    О том и речь.

    #15804
    manjey73
    Участник

    Seliverstoff.yu вообще то пишет об управлении ОДНОЙ кнопкой в зависимости от состояния 2-х каналов. То есть все таки по кнопке, а это действие Оператора.
    Тут Модуль не нужен, можно сделать формулой.

    #15805
    manjey73
    Участник

    Блин, писать по новой тяжко… Надо учитывать, что вложенные формулы обязательно должны возвращать double и работать с double. Иначе будет ошибка формул и остановка сервера.

    Пример моего NOT.

    public double NOT(double val)
    {
        bool boolVal = val > 0;
        return Convert.ToDouble(!boolVal);
    }

    Это особенность обработчика формул в Scada. Если применяете в канале в единственном варианте, то формула может быть такой public bool «ИМЯ_Формулы»
    Но стоит ее встроить в другую формулу, произойдет ошибка.

    • Ответ изменён 6 лет, 3 месяца назад пользователем manjey73.
    #15807
    Romiros
    Участник

    Я выше писал формулу для канала управления, которой по идее достаточно. Я стараюсь не использовать справочник формулы, если без него можно обойтись.

    #15808
    Seliverstoff.yu
    Участник

    Romiros

    Давайте для начала проверим что работают условия 1 и 2
    Впишите следующую формулу в канал управления
    Val(X)>0?(Val(Y)==0?2

    Попробовал формулу, работает по первому второму пункту отлично, как еще много я не знаю))))
    Но без проверки по первому пункту при нажатии на кнопку сначала выводит насос из режима автомата, но все так же запущен, следующее нажатие останавливает насос, следующее запускает сразу в режим автомат. Оно в принципе и так можно работать, просто можно ли условие в условии формулу написать работает такое?
    Огромнейшее спасибо!

    #15809
    manjey73
    Участник

    Вот тут и потребуется Формула в справочнике. Они более гибкие, чем просто запись в канале.

    #15810
    manjey73
    Участник

    На самом деле у вас какая-то проблема с логикой… Вот смотрите, у вас насос в Авто
    Х=0, чтобы вы не придумали, если там 0, то и будет отправляться 0. То есть одной кнопкой дело не ограничивается. Нужна еще кнопка или окно переключения насоса в ручной режим. Тут как бы одной формулой или одной кнопкой не обойтись.

    для кнопки по сути то же самое формулой в справочнике

    public double UprNasos (double rezhim, double status)
    {
    if (rezhim > 0)
    {
    if (status > 0) return 1;
    else return 2;
    }
    else return 0;
    }
    • Ответ изменён 6 лет, 3 месяца назад пользователем manjey73.
    #15812
    Seliverstoff.yu
    Участник

    а мне такие формулы без использования справочника тоже больше понравились и пишутся проще, по крайней мере если это возможно. Вобщем чуть изменил предложенную формулу Romiros Val(139)==0?(Val(131)==0?2:1):(Val(131)==0?2:1) Получается теперь если в автоматическом режиме насос работает то формула включает либо выключает насос, а если не в автоматическом то так же проверяет запущен или остановлен насос и включает либо выключает его, а кнопку включения автоматического режима вывел отдельно, чтобы как раз и показывать в автоматическом режиме работает насос или нет. Большое спасибО!

    #15813
    manjey73
    Участник

    Если насос работает в АВТО, то им управляет кто-то (ПЛК например), а не вы. А вы его с мнемосхемы при режиме Авто переключаете — Зачем ?

    говорю же, что-то с логикой не лады 🙂

    У вас может быть команда с перечислением Авто; Стоп; Пуск (Справочник — Значения команд) соответственно это кнопки со значениями 0, 1 и 2

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

    • Ответ изменён 6 лет, 3 месяца назад пользователем manjey73.
    #15815
    Seliverstoff.yu
    Участник

    Да все уже работает норм. Из режима авто иногда тоже надо выключить или включить без участия регулятора)
    Будут новые задачи будут новые решения, и со справочником придутся разбираться уверен))

    #15816
    manjey73
    Участник

    из справочника Формул можно даже с файлами работать 🙂 Михаил вроде давно увеличил количество символов для справочника. Непосредственно из канала это не получится, есть отличия в подходах и ограничение по количеству символов.

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

    Сейчас в таблице Формулы размер поля до 10000 символов. Если этого не достаточно (обычно достаточно), то формулу надо разбить на несколько.

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