Стартовая страница › Форумы › Вопросы без категории › ТРМ202 (TRM Owen)
- В этой теме 14 ответов, 4 участника, последнее обновление 4 года, 8 месяцев назад сделано
a80808.
-
АвторСообщения
-
12.10.2021 в 11:09 #21034
kiakia
УчастникДВС!
Вопрос: Как увидеть регистр статуса «STAT» в SCADA-Коммуникаторе?
В редакторе шаблонов какой тип выбрать соответствующий «binary»
https://i.ibb.co/4tj9W6b/202.jpg
https://i.ibb.co/kB5VKDQ/202.jpg12.10.2021 в 11:15 #21035
manjey73УчастникПолучаете весь регистр, потом делаете дорасчетные каналы и нужные биты выдергиваете формулой GetBit
12.10.2021 в 11:19 #21036kiakia
УчастникА порядок байт, 2301 тот же или без него?
12.10.2021 в 11:42 #21037
manjey73УчастникПорядок байт зависит от прибора, какой у ТРМ я не знаю. А там что, два регистра в ТРМ ?
12.10.2021 в 12:17 #2103812.10.2021 в 14:28 #21039
MikhailМодераторДобрый день!
Какая длина регистра STAT в байтах?
Как он должен расшифровываться?12.10.2021 в 15:19 #21040
manjey73УчастникТак если он binary то видимо это биты и их описание должно быть в документации на прибор.
13.10.2021 в 05:52 #21041kiakia
УчастникДВС!
Пока не знаю как расшифровать.
Но понял логику статуса регистра:
1. 0 бит, выходные реле в состоянии покоя
2. при сработке уставки на первом канале выше нормы. 16 бит
3. при сработке уставки на втором канале выше нормы. 32 бит
4. при сработке уставки на обоих каналах выше нормы. 48 бит13.10.2021 в 09:55 #21042
a80808Участникdouble RegStats ()
{
if (GetBit (CnlNum, 0) == 1)
{
SetVal(101,1);
}
if (GetBit (CnlNum, 16) == 1)
{
SetVal(101,2);
}if (GetBit (CnlNum, 32) == 1)
{
SetVal(101,3);
}if (GetBit (CnlNum, 64) == 1)
{
SetVal(101,4);
}
}Вот если уж совсем быстро. В этом случае в дорасчетном канале 101 будет формироваться значение 1, 2, 3 или 4 в зависимости от состояния регистра. После этого сочиняете в «размерностях» новую размерность что то типа «Состояние регистра» «Покой;Уставка1;Уставка2;Уставка1+2» и «навешиваете» эту размерность как «Текст перечисления» на канал 101. В этом случае на схеме будет отображаться в зависимости от состояния нужное значение. А если еще поставить «птичку» на «Событие по изменению» то в событиях тоже это будет отображаться
На ошибки не проверял, на коленке написано 🙂13.10.2021 в 10:04 #21043
a80808УчастникP.S. не помню, поддерживает ли интерпретатор конструкцию «case» а то можно было бы проще написать…
13.10.2021 в 10:27 #21044
manjey73УчастникА если ошибки одновременно 2 ? 🙂
13.10.2021 в 11:25 #21045
a80808УчастникНу по логике программы (:)) результатом будет «нижняя» ветка анализа…
Вариант — каждой уставке назначать свой дорасчетный канал…13.10.2021 в 11:28 #21046
a80808Участник…и занулять его если нет ошибки. Вопрос насколько актуально появление такой ситуации. Я бы еще «завел» канал в котором был бы «расшифрован» статусный регистр и отображал бы его на схеме. Тогда при любом изменении видно было бы какие биты сработали…
13.10.2021 в 14:16 #21049
MikhailМодераторcase поддерживается в формулах, но в данном случае не подходит, т.к. может быть несколько ошибок.
Простой способ извлечения битов: использовать функцию GetBit в дорасчётных каналах как написал @manjey73 вначале. Для каждого дорасчётного канала свой GetBit в поле формулы.Но прежде чем извлекать биты, нужно считать регистр в виде числа и посмотреть как меняется значение в зависимости от аварий. Извлекать биты вслепую — мало вероятно угадать их номера.
-
Ответ изменён 4 года, 8 месяцев назад пользователем
Mikhail.
13.10.2021 в 15:00 #21051
a80808УчастникЯ бы вообще использовал три дорасчетных канала, в которые писал «1» при ошибке и «0» в остальных случаях — для первых трех значений. На схеме привязал бы два «фонаря» (динамический рисунок) к уставкам 1 и 2, а первый канал использовал как общий аларм (когда он не ноль). На схеме два квадратика с номерами 1 и 2 зеленый/красный в зависимости от значения канала плюс по OR значение канала 4. А канал «Простой» пусть отображается например как зеленая/красная рамка вокруг этих квадратов и наименования что это.
Согласен, что сначала нужен эксперимент по определению точных значений -
Ответ изменён 4 года, 8 месяцев назад пользователем
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.