PDA

Просмотр полной версии : Интерпретация событий в Owen Cloud



Максим_Р
28.12.2025, 01:17
Доброго времени суток.
Не однократно сталкиваюсь с проблемой обработки аварий в Owen Cloud полученных с устройства УЗД-1.
В частности, устройством зафиксирована аварийная ситуация которая успешно передана в OwenCloud.
Так же, если верить журналу регистрации событий (таблицы), она успешно получена, но каким то непонятным образом эта авария не корректно интерпретирована.
Вероятно, что не правильно вычисляется порядковый номер бита(ов) в числе, значение которого является текущим состоянием прибора, передаваемым устройством УЗД-1.
Во вложенных файлах снимки экранов таблицы, событий и руководства по настройке устройства.
Из за этой ошибки мне пришлось отправлять заведомо исправное устройство на завод изготовитель.
Убедительная просьба к специалистам Owen исправить эту ошибку.

melky
28.12.2025, 11:54
4-й! я сказал 4-й!, теперь ты будешь ПЯТЫМ :)

Максим_Р
28.12.2025, 12:46
Не понятно зачем на третьем рисунке подчеркнули максимальное напряжение в сети если у Вас минимальное в событиях
На третьем рисунке подчеркнул реальное событие, которое произошло (4 бит кода аварии).
На первом рисунке видно, что в столбце "текущие аварии" стоит число 16.
Если его конвертировать в двоичное, то получим тот самый 4-й бит (0000 0000 0000 0000 0000 0000 0001 0000).
UID1807104 это параметр, значением которого является код аварии, формируемый устройством УЗД-1.
UID1807104.1, UID1807104.2 и т.д. до 32 го это номера бит которые изменяют свое значение с 0 на 1 в параметре UID1807104.
Мой вопрос в том, что по факту не корректно происходит вычисление номеров бит числа UID1807104, со смещением на одну позицию влево.
По предложенной вами схеме нужно будет создать 10 518 300 записей для полной расшифровки всех возможных комбинаций аварийных ситуаций.

Максим_Р
28.12.2025, 13:32
87439

пока что не понятно какое отношение имеет параметр UID1835520 к этой проблеме
Параметр UID1835520 никакого отношения к проблеме не имеет. Это вы его "притянули" зачем то.

Максим_Р
28.12.2025, 13:39
Могу предположить, что 0 бит в OwenCloud считается первым, тогда как быть с UID1807104.1.
Какое значение должно быть UID1807104 для этого бита?

Максим_Р
28.12.2025, 13:55
с чего это вдруг столько. 25 записей на прибор

Всего аварий 24.
Появиться может как одна, две, три и т.д. до 24 одновременно (последнее мало вероятно).
Для каждой такой ситуации в код аварии будет генерироваться свое число.
Всего таких чисел, если более точно подсчитать, получается 16777215 шт.

Максим_Р
28.12.2025, 14:07
Могу предположить, что 0 бит в OwenCloud считается первым
по счёту.
Если это так, то решением будет переименование параметров UID1807104.1 .... UID1807104.24 с учетом этой особенности.

capzap
28.12.2025, 14:19
Для каждой такой ситуации в код аварии будет генерироваться свое число.
Всего таких чисел, если более точно подсчитать, получается 16777215 шт.
как считаете зачем в предложенном мной варианте используется побитовое И (&)? И если не понятно зачем там 16, вот еще раз вариант для конкретной аварии в четвертом разряде числа ('UID1807104' & 2 * 2 * 2 * 2) > 0

Максим_Р
28.12.2025, 15:06
Ваш вариант мне понятен.
UID1807104.1 .... UID1807104.24 так и должны рассчитываться. (их ведь не просто так обозначили в конфигурации).
Однако значения в UID1807104.1 .... UID1807104.24 получаются со смещением на один бит, что не совсем корректно.

capzap
28.12.2025, 17:09
Ваш вариант мне понятен.
UID1807104.1 .... UID1807104.24 так и должны рассчитываться. (их ведь не просто так обозначили в конфигурации).
Однако значения в UID1807104.1 .... UID1807104.24 получаются со смещением на один бит, что не совсем корректно.

ну не знаю что Вы поняли, еще раз: для УЗД-1 есть 25 аварий с первого разряда по 25, нулевой разряд не используется, таблицу Вы сами выкладывали, как у Вас получается 24 неясно
если Вы считаете что непросто так автоопределяемый прибор начинает выделенные биты с единицы и это как то связано что аварии на УЗД идут с единицы, то как быть например с модулями дискретного ввода-вывода МК210-302 и МК210-312 у которых битовая маска имеет диапазон 0...4095 что соотвествует заполнению по максимуму единицами с 0 по 11 разряд но в облаке они идут так же с единицы 87440. Так что надо определиться что все подобные маски будут начинаться с .1 и тогда смещение есть и его надо учитывать. Если хочется соответствовать разрядам числа, тогда мой вариант

Максим_Р
28.12.2025, 17:51
Если хочется соответствовать разрядам числа, тогда мой вариант
За подсказку спасибо.
Я уже переделываю по вашему варианту.
Аварий в УЗД действительно 25, первая и последняя меня не интересует, так как не наступят никогда (AI не используется).
Мне важно было понять как ведется счет битов в OwenCloud.

Максим_Р
28.12.2025, 18:54
Если хочется соответствовать разрядам числа, тогда мой вариант
Я уже переделываю по предложенному вами методу.
За подсказку спасибо.
Правильнее было бы 'UID1807104.1' назвать 'UID1807104.0' и путаницы ни у кого и ни когда не возникло бы.