Стартовая страница › Форумы › Понять, как работает ПО › Как создать кнопку в Редакторе схем
Помечено: команды, редактор схем
- В этой теме 44 ответа, 11 участников, последнее обновление 6 лет, 3 месяца назад сделано
Mikhail.
-
АвторЗаписи
-
25.04.2020 в 09:41 #15800
manjey73УчастникНапример Cmd*NOT(Val(1317)) — у меня такая формула умножает отправляемую команду на инверсию канала 1317 а на самом деле формула может быть любой, с проверкой требуемых каналов на те или иные значения…
25.04.2020 в 09:42 #15801Romiros
УчастникВопрос не в том, что отправить в команде, а как ее инициировать без всяких кнопок.
25.04.2020 в 09:48 #15802
manjey73УчастникБез кнопок только Модулем автоуправления. Без действий Оператора только так.
А если именно кнопкой, то можно все что угодно сделать через формулы
25.04.2020 в 09:49 #15803Romiros
УчастникО том и речь.
25.04.2020 в 09:52 #15804
manjey73УчастникSeliverstoff.yu вообще то пишет об управлении ОДНОЙ кнопкой в зависимости от состояния 2-х каналов. То есть все таки по кнопке, а это действие Оператора.
Тут Модуль не нужен, можно сделать формулой.25.04.2020 в 10:00 #15805
manjey73УчастникБлин, писать по новой тяжко… Надо учитывать, что вложенные формулы обязательно должны возвращать double и работать с double. Иначе будет ошибка формул и остановка сервера.
Пример моего NOT.
public double NOT(double val) { bool boolVal = val > 0; return Convert.ToDouble(!boolVal); }Это особенность обработчика формул в Scada. Если применяете в канале в единственном варианте, то формула может быть такой public bool «ИМЯ_Формулы»
Но стоит ее встроить в другую формулу, произойдет ошибка.-
Ответ изменён 6 лет, 3 месяца назад пользователем
manjey73.
25.04.2020 в 10:13 #15807Romiros
УчастникЯ выше писал формулу для канала управления, которой по идее достаточно. Я стараюсь не использовать справочник формулы, если без него можно обойтись.
25.04.2020 в 10:44 #15808Seliverstoff.yu
УчастникRomiros
Давайте для начала проверим что работают условия 1 и 2
Впишите следующую формулу в канал управления
Val(X)>0?(Val(Y)==0?2Попробовал формулу, работает по первому второму пункту отлично, как еще много я не знаю))))
Но без проверки по первому пункту при нажатии на кнопку сначала выводит насос из режима автомата, но все так же запущен, следующее нажатие останавливает насос, следующее запускает сразу в режим автомат. Оно в принципе и так можно работать, просто можно ли условие в условии формулу написать работает такое?
Огромнейшее спасибо!25.04.2020 в 11:07 #15809
manjey73УчастникВот тут и потребуется Формула в справочнике. Они более гибкие, чем просто запись в канале.
25.04.2020 в 11:26 #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.
25.04.2020 в 11:28 #15812Seliverstoff.yu
Участника мне такие формулы без использования справочника тоже больше понравились и пишутся проще, по крайней мере если это возможно. Вобщем чуть изменил предложенную формулу Romiros Val(139)==0?(Val(131)==0?2:1):(Val(131)==0?2:1) Получается теперь если в автоматическом режиме насос работает то формула включает либо выключает насос, а если не в автоматическом то так же проверяет запущен или остановлен насос и включает либо выключает его, а кнопку включения автоматического режима вывел отдельно, чтобы как раз и показывать в автоматическом режиме работает насос или нет. Большое спасибО!
25.04.2020 в 11:31 #15813
manjey73УчастникЕсли насос работает в АВТО, то им управляет кто-то (ПЛК например), а не вы. А вы его с мнемосхемы при режиме Авто переключаете — Зачем ?
говорю же, что-то с логикой не лады 🙂
У вас может быть команда с перечислением Авто; Стоп; Пуск (Справочник — Значения команд) соответственно это кнопки со значениями 0, 1 и 2
Вот посылая такую команду в ПЛК вы и переводите насос из Авто в ручной режим с указанием либо останова, либо пуска сразу.
А уже потом кнопка, которая будет проверять статус режима и статус насоса и посылать команду, но пока вы не переключите насос из Авто, будет посылаться 0 для того же ПЛК… Хотя что у вас там напридумано не понятно 🙂-
Ответ изменён 6 лет, 3 месяца назад пользователем
manjey73.
25.04.2020 в 11:42 #15815Seliverstoff.yu
УчастникДа все уже работает норм. Из режима авто иногда тоже надо выключить или включить без участия регулятора)
Будут новые задачи будут новые решения, и со справочником придутся разбираться уверен))25.04.2020 в 12:13 #15816
manjey73Участникиз справочника Формул можно даже с файлами работать 🙂 Михаил вроде давно увеличил количество символов для справочника. Непосредственно из канала это не получится, есть отличия в подходах и ограничение по количеству символов.
27.04.2020 в 09:41 #15839
MikhailМодераторСейчас в таблице Формулы размер поля до 10000 символов. Если этого не достаточно (обычно достаточно), то формулу надо разбить на несколько.
-
Ответ изменён 6 лет, 3 месяца назад пользователем
-
АвторЗаписи
- Для ответа в этой теме необходимо авторизоваться.