Oakim

Ответы в темах

Просмотр 15 сообщений - с 76 по 90 (из 136 всего)
  • Автор
    Записи
  • в ответ на: Измерения Pt100 #22478
    Oakim
    Участник

    Если через Modbus Pool отправляю строку 01 04 01 00 00 01 30 36
    то получаю такой же ответ 01 04 02 00 00 B9 30

    в ответ на: Измерения Pt100 #22473
    Oakim
    Участник

    Так что то не то после коммуникатора, а это может быть только формула GetBit

    в ответ на: Измерения Pt100 #22472
    Oakim
    Участник

    Адрес МодБас правильный, тип short тоже, так как если меняю хоть один параметр на что то другое, то сразу получаю ошибку «02 Неправильный адрес данных»

    в ответ на: Измерения Pt100 #22468
    Oakim
    Участник

    Это для примера, с номерами бита от 0 до 7.

    я тут в другой ветке нашел инструкцию по настройке канала под мой случай
    Считывание битовой маски с Овен МВ110

    А может ли Тип входного Канала влиять на GetBit?

    в ответ на: Измерения Pt100 #22466
    Oakim
    Участник

    Понял попробую

    в ответ на: Измерения Pt100 #22463
    Oakim
    Участник

    Запрос к Контроллеру

    Формат short перестановка бит 10325476 (такая же была в InSAT OPC)

    Запрос значений группы элементов "Diskret Inputs"
    Отправка (8): 01 04 01 00 00 01 30 36
    Приём (5/5): 01 04 02 00 00
    Приём (2/2): B9 30
    OK!

    Modbus Parser

    
    Part of Data Package	Description	Value
    01	                Slave address	0x01 (1)
    04	                Function code	0x04 (4) - Read Input Registers
    02	                Byte count	0x02 (2)
    00 00	                Register value	0x0000 (0)
    B9 30	                CRC	0xB930 (47408)

    То есть приходит 00 00 два байта равных нулю

    но после GetBit(Вх.канал,0-7) я получаю — 10101001

    в ответ на: Измерения Pt100 #22425
    Oakim
    Участник

    Возможно проблема в перестановке битов и еще в чем не знаю, для этого и хочу вывести промежуточные данные что бы разобрать что к чему.

    Вывод в файл меня тоже вполне устроит. Буду пробовать.

    в ответ на: Измерения Pt100 #22422
    Oakim
    Участник

    Это не для оператора, а для разработчика.

    Я попробовал Console.WriteLine(); компилируется, но не в одну консоль данные не выводятся.

    GetBit как по мне работает некорректно, в MasterSCADA у меня приходил Int16 в OPC он преобразовывался в Int32 после чего разбирался на биты состояния ТС.

    В Rapid SCADA я указываю в Коммуникатере получить данные типа short после чего разбираю формулой GetBit (в формуле входной формат double) и получаю вместо «0», что то непонятное.

    в ответ на: Измерения Pt100 #22416
    Oakim
    Участник

    Такой вопрос, а можно через WriteLine() организовать вывод диагностической информации при вычислении формул в консоль Сервера?

    в ответ на: Измерения Pt100 #22398
    Oakim
    Участник

    Понятно, спасибо, буду пробовать.

    в ответ на: Измерения Pt100 #22396
    Oakim
    Участник

    Так же мне непонятно, что такое «Статус канала» в Rapid SCADA и как это выражается и на что влияет?

    Например в другой СКАДЕ у меня если с объекта идут «подозрительные» данные, то на показаниях появляется «желтый треугольничек».

    в ответ на: Измерения Pt100 #22393
    Oakim
    Участник

    «Val() — Текущее значение входного канала вычисляемой формулы»
    может я не русский, но мне это выражение не понятно, текущее значение до вычисления формулы, текущее значение после вычисления формулы.

    К сожалению во многих местах подобные разночтения и непонятки

    в ответ на: Измерения Pt100 #22391
    Oakim
    Участник

    Теперь понятно, буду пробовать. А в документации об этом где то есть?

    А можно в Формулу передать данные входного канала до расчета и потом этому каналу присвоить результат вычисления?

    А то я в СКАДЕ сделал через два канала.

    в ответ на: Измерения Pt100 #22388
    Oakim
    Участник

    manjey73 я вас не понимаю 🙁 Я еще плохо знаю RapidSCADA и еще C#.

    в ответ на: Измерения Pt100 #22385
    Oakim
    Участник

    Написал функцию, вроде работает!

    В параметрах канала тип «Дорасчетный ТИ» ставлю галку «Исп.формулу» пишу ResToTemp(Val(401))

    public double ResToTemp(double Resist)
    { 
    //Пересчет сопротивления в температура для Pt100       
       double Tmp, Temp;
       double A = 3.9083E-3;
       double B = -5.775E-7;
       if (Resist >= 100.0)
       {
          Temp=(Math.Sqrt(Math.Pow(A,2)-(4*B*(1.0-(Resist/100.0))))-A)/(2.0*B);
       }
       else
       {
          Tmp = (Resist/100.0)-1;
          Temp = (Tmp*255.819)+(Math.Pow(Tmp,2)*9.14550)+(Math.Pow(Tmp,3)*(-2.92363))+(Math.Pow(Tmp,4)*(1.7909));
       }
       return Temp;
    }
Просмотр 15 сообщений - с 76 по 90 (из 136 всего)