Simple-Scada forum
Simple-Scada 2 => Ваши вопросы => Тема начата: Ivan_Vit от 30 Июля 2026, 13:31:13
-
Здравствуйте!
Описание задачи:
По переменной приходит аналоговое значение (Температура). Так как датчиков много, то мне необходимо сделать подробное описание каждого датчика температуры при достижении границы "-55".
Соответственно, созданы шаблоны, ниже предоставил скрин конкретного шаблона, где отображено подробное описание датчика (На скрине видны границы "-55..-53" , которые подобраны большим количеством итераций, чтобы это начало работать предсказуемо). Для моего момента, как я понимаю, чтобы правильно это всё работало и это будет работать - я уверен, необходимо установить границы "-56..-54" . ГЛАВНЫЙ вопрос почему так?
Объясню как я это выявил при отладке, если рассматривать границы "-55..-53"
Коротко и по сути. Через эмулятор я отправляю аналоговое значение "-53" - сообщение НЕ формируется на скаде.
Отправляю "-54" - сообщение формируется на скаде.
Отправляю "-55" - сообщение формируется на скаде.
Для проверки отправляю "-56" - сообщение НЕ формируется на скаде.
Мне важно уточнить, правильный ли я вывод делаю, что одна из границ в диапазоне "-55..-53" является не включённой, то есть [-55...-53)?
Дополню, что если ставить диапазон "-55..-55" то ничего не работает, что полагаю логичным.
-
Здравствуйте.
Для выделенной области сообщение формируется только при переходе значения переменной в эту область (включая границы), а изменение значения внутри области (включая границы) и выход из области не формирует сообщение. Выход из области добавляет время выхода в уже сформированное сообщение.
Мне важно уточнить, правильный ли я вывод делаю, что одна из границ в диапазоне "-55..-53" является не включённой, то есть [-55...-53)?
Дополню, что если ставить диапазон "-55..-55" то ничего не работает, что полагаю логичным.
Оба вывода неправильные, т.к. значения температуры задаются в вещественном виде от эмулятора, а границы - целыми числами.
Диапазон "-55..-55" правильно формирует сообщение, хотя судя по "Основному руководству/Свойства состояний сообщения", установить одинаковые граничные значения "от" и "до" нельзя.
Судя по:
Через эмулятор я отправляю аналоговое значение "-53" - сообщение НЕ формируется на скаде.
Отправленное значение на самом деле содержит ненулевую дробную часть например, -52.99999ххх.
Отправляю "-54" - сообщение формируется на скаде.
Это правильно, т.к. вещественное "около -54" стало первым попаданием в область.
Отправляю "-55" - сообщение формируется на скаде.
Весьма неожиданно, т.к. для сообщения значение должно было выйти из области и войти в неё вновь (либо Вы ошиблись, отправив перед этим значение вне области, либо такое значение отправил эмулятор).
Для проверки отправляю "-56" - сообщение НЕ формируется на скаде.
Правильно, любое новое значение после формирования сообщения НЕ приводит к формированию сообщения.
Реальное значение температуры можно контролировать объектом "поле", предварительно изменив формат переменной для увеличения числа значимых цифр после запятой, например так: 0.############.
И если уж "пытать" систему сообщений, то лучше исключить лишнее звено (эмулятор) и использовать для задания значения температуры целочисленную переменную, что гарантирует точное сравнение значения и области.