Стартовая страница › Форумы › Понять, как работает ПО › События и несколько записей
- В этой теме 56 ответов, 4 участника, последнее обновление 2 года, 4 месяца назад сделано Mikhail.
-
АвторСообщения
-
12.05.2021 в 17:06 #19346MikhailМодератор
Формулы, которые устанавливают значение канала из формулы этого же канала, некорректны.
12.05.2021 в 17:16 #19352manjey73УчастникА что должно быть, чтобы были корректны? просто поведение может и не одинаковое, с применением Cnl или SetVal как-то не сильно отличаются. Сыпят по два раза непонятно что. Пишет Включен и тут же Откл
И я же не значение канала выставляю, а его статус меняю.
Получается прилетело значение — сработка
Потом я меняю статус и одновременно с этим еще раз меняется значение? или что происходит не так?12.05.2021 в 18:02 #19358manjey73УчастникНа другом ПК та же фигня.
Например использую в качестве статуса значения 112 и 14.Дорасчетный канал, в канале управления SetVal(Канал, Cmd)
Формула Val();Cnl или Val();Val()Вбиваю 112 — в уведомлениях предыдущее значение 14 и новое 112
Вбиваю 14 — в Уведомлениях предыдущее 112 и новое 14И так по кругу. Предыдущее значение каким образом появляется при смене значения ?
Галочки стоят только на смену значения.
- Этот ответ был изменен 2 года, 10 месяцев назад от manjey73.
13.05.2021 в 16:10 #19370MikhailМодераторСделайте скриншоты свойств входных каналов. Иначе целостная картина не складывается.
13.05.2021 в 16:29 #19372manjey73УчастникЭто по последнему, где менял статус по значениям. Retain могу убрать, в другом примере его все равно нет.
13.05.2021 в 16:36 #19373manjey73УчастникВот из другой системы. Вариации формул не влияют, все равно прилетает по два раза.
Последнее описание это канал 451, ввод значения из списка Типов событий, особенно зарегистрированных, видно что сперва прилетает событие, статус которого и так сейчас в канале, потом новое.
13.05.2021 в 16:37 #19374manjey73Участник13.05.2021 в 16:42 #19378manjey73Участник14.05.2021 в 16:12 #19388MikhailМодераторПо скриншотам рассмотрим 2 канала: 175 и 176.
Оба канала имеют некорректные формулы.Формула канала 175 некорректна, потому что она использует Cnl. Cnl — это значение, которое приходит от контроллера. Cnl не работает на дорасчётных каналах. Либо канал не должен быть дорасчётным.
Формула канала 176 некорректна, потому что он всё время ссылается сам на себя, вызывая Val(). А должен, вероятно ссылаться на другой канал. Либо опять же канал не должен быть дорасчётным.
14.05.2021 в 16:43 #19389manjey73УчастникИзначально было Val()
Суть канала — дорасчетный, в котором должно храниться некое значение, например параметры Гистерезиса
В канале управления запись значения в этот канал. То есть данные каналы просто хранят переменные, и не берут их ни из устройства ни из других каналов.Как в таком случае записать в канал значение, и чтобы оно сохранялось на Linux ?
Вся байда, насколько помню, это хранение параметров из-за того, что текущие данные пишутся в оперативную память и при перезагрузках пропадают.Подскажите тогда выход из ситуации, чтобы и сохранение канала работало и формула не создавала двойного дубля.
И да, при перезагрузке сервера тоже дубли событий происходят.
- Этот ответ был изменен 2 года, 10 месяцев назад от manjey73.
17.05.2021 в 09:52 #19461manjey73Участник;Val() > 0 ? 116 : 115
Даже такая формула вызывает два срабатывания событий по каналу. То есть какой-то части в формуле значения нет вообще.
Канал Дорасчетный, формула выше, Текст перечисления, Размерность с 3-им параметром чтобы избавиться от красного цвета. Тут Зеленый и черный. Запись событий только по изменению.
- Этот ответ был изменен 2 года, 10 месяцев назад от manjey73.
17.05.2021 в 11:44 #19463RomirosУчастникА что-то описание какое-то корявое Отключен: вкл. И т.д. Или так нужно? Как будто два раза проверяется. Может неправильно размерности используете?
- Этот ответ был изменен 2 года, 10 месяцев назад от Romiros.
17.05.2021 в 11:54 #19465manjey73УчастникRomiros так я Михаилу и толдычу, что повтор идет и непонятно с чем он связан.
Сперва прилетает то значение, которое БЫЛО в канале и тут же Новое. Потом сново, то, что было и тут же новое.Если взять коды событий «Поставить на охрану», «Снять с охраны» то описания будут соответствовать.
17.05.2021 в 12:05 #19466manjey73Участник1. При перезагрузке Сервера и смене формулы статусов на 11 и 15 происходит их сработка
2. при изменении дубль в таком виде.
Сперва отключал, должна быть только одна надпись «Аварийное отключение Откл»
Потом включал, соответственно только синяя надпись «Аварийное занижение ВКЛ»Формула сейчас такая
;Val() > 0 ? 11 : 15
17.05.2021 в 12:12 #19467RomirosУчастникНеправильно сделаны настройки в базе, тут не в формулах дело. С обеда посмотрю как реализовано у меня.
-
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.