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