Ошибка при компилировании исходного кода формул

Стартовая страница Форумы Ошибки в работе Ошибки Сервера Ошибка при компилировании исходного кода формул

Просмотр 15 сообщений - с 31 по 45 (из 63 всего)
  • Автор
    Сообщения
  • #13322
    manjey73
    Участник

    Коммуникатор и не будет реагировать на формулу, по простой причине, он получает реальное значение из прибора. Если необходимо масштабирование, оно выполняется
    1. в ПЛК или модуле ввода если это предусмотрел производитель
    2. в Scada системе..

    Мне тогда непонятно, почему вы умножаете канал на 20 если измеряете напряжение, у вас диапазон модуля 0-20 Вольт ?

    Еще может зависеть от настроек самого модуля, может вы настроили некорректно.

    Если вход по напряжению у модуля 0-10V то если сравнивать документацию на Siemens при измерении не дифферинцированного напряжения 0-10V значения в целочисленном будут 0-32767 (или ниже, если верхний диапазон предназначен для измерения выше 10 Вольт) ИЛИ 0-65535 если так прибор отдает. Если до 65535 измеряет то формула тогда должна быть Cnl*10/65535
    У вас одно значение 35267*10/65535 = 5,38139925 Вольт.

    Поймите, что работая с разными модулями надо еще понимать как они работают, от этого зависят формулы.
    Самый идеал, это когда масштабирование выполняется сразу в модуле ввода и потом не надо ничего придумывать. Сказали модулю измерять 0-10В и выдавать в вольтах он вам и отдает сразу нужное значение.

    #13323
    manjey73
    Участник

    А может быть ситуация, когда модуль всегда отдает значение от 0 до 65535 но при этом вы настроили его на измерение от -10V до +10V
    Соответственно и формула будет другая. Возможно вы и получаете свои 0,8 В потому что формула больше похожа для измерения именно этого диапазона.

    #13330
    Taw
    Участник

    “Коммуникатор и не будет реагировать на формулу, по простой причине, он получает реальное значение из прибора.” — хорошо, тогда почему дополнительный расчетный канал показывает что нет данных вообще? И как вообще делать перерасчет данных с датчика? И если коммуникатор не реагирует на формулу, то почему по протоколу mqtt (указываю канал данных с датчика) я получаю данные расчитанные по формуле а не реальные?
    Я настроил модуль от -10V до +10V.

    Это в модуле показывает маленькие данные, в Rapid Scada я вообще хочу чтобы хоть какой-то перерасчет данных с датчика был. Правильность формулы меня пока не интересует на этом этапе, главное чтобы формула вообще была задействована.

    #13331
    Taw
    Участник

    Возможно была сделана неправильная калибровка модуля. Но сейчас вопрос о формулах в Rapid Scada.

    #13332
    Taw
    Участник

    Если я умножаю на 3.16 то получаю реальные значения.

    #13333
    Taw
    Участник

    Я не знаю какая там формула. Я знаю реальные значения на входе, затем делю значения с датчика на реальное значение и получаю коэффициент.

    Далее в Rapid Scada я данные с датчика делю на этот коэффициент и получается реальное значение, которое идет на вход модуля.
    Но только вот почему то расчетные дополнительные каналы показывают что нет данных, хотя в веб-станции формула работает для канала данных приходящих с датчика.

    • Этот ответ был изменен 3 года, 1 месяц назад от Taw.
    #13335
    manjey73
    Участник

    » хорошо, тогда почему дополнительный расчетный канал показывает что нет данных вообще?» — Ну так надо смотреть ваши настройки БД и понять почему нет данных. В Коммуникаторе то значения из прибора вы видите, значит данные физически есть.

    Проверьте связи каналов Сервера и Коммуникатора. Может быть надо было настройки передать конфигурацию Серверу и перегрузить его ? а без передачи вы работаете на старых настройках ?

    Чтобы понимать, какую использовать формулу надо понимать диапазон значений, которые выдает прибор.
    Устал уже повторять, вы везде причину видите в Scada, но это не всегда так.
    Надо найти данные по вашему модулю Adam, в каком виде и что он дает.

    Укажите — 1 набор реальных напряжений которые вы подаете на прибор
    2 — значение в DEC и HEX, согласно скрину в посте 13333

    Если не найдете данных в документации на ADAM, возможно можно будет понять диапазон значений при измерении.

    #13336
    manjey73
    Участник

    Вы в корне не верно поступаете вычисляя коэффициент, это как притянуть за уши значение называется.

    #13337
    manjey73
    Участник

    Странно, по документации ADAM 6017 должен уметь измерять 0-10В а по вашему скрину только +/-10В. ????

    #13338
    manjey73
    Участник

    Scaler

    Попробуйте данную формулу Scaler

    Использовать формулу в канале — Да, Scaler(Cnl, 0, 65535, -10.0, 10.0)

    Пока нашел только упоминание в документации, что значение 32767 (0x7FFF) = 0.000V для диапазонов +/-10V и +/-5V
    а значение 32766 = 0.0002V для диапазона +/-5V

    #13342
    manjey73
    Участник

    Для диапазона 0-10V из документации на Адам
    When input range is set to 0~10 V, the voltages for these inputs are as follows:
    Analog Input 1 = (17097/65535) * 10 V = 2.608 V
    Analog Input 2 = (0/65535)*10 V = 0 V

    а вот для +/-10V непонятно, не нашел…

    Откалибруйте модуль. Убедитесь что перемычка стоит на напряжение (вход должен быть сконфигурирован)
    По идее для +/-10V формула
    (Значение * 20(полный диапазон)/65535)-10V должна быть правильной.

    • Этот ответ был изменен 3 года, 1 месяц назад от manjey73.
    #13350
    manjey73
    Участник

    32766 = — 0.0002V для диапазона +/-5V

    Поправка, на скрине утилиты от производителя минусовое значение. Значит диапазон от 0 до 65535 где середина это 0 В

    #13351
    Taw
    Участник

    Вы в корне не верно поступаете вычисляя коэффициент, это как притянуть за уши значение называется. — Да, я знаю, но напряжения берутся с источников питания на 12 В. Они как бы постоянные. Поэтому и значение совпадает с реальным. Но это я не рассматривал всерьез.

    Использовать формулу в канале — Да, Scaler(Cnl, 0, 65535, -10.0, 10.0)
    Имя «Scaler» отсутствует в текущем контексте.

    По идее для +/-10V формула
    (Значение * 20(полный диапазон)/65535)-10V должна быть правильной.
    — Формула правильная. Получается как по формулам в модуле АДАМ. Но это в 3.16 меньше реальных напряжений. Просто модуль АДАМ барахлит и получает какие-то искаженные данные и отправляет их, в 3.16 раз меньше. Как будто замаштабированы. Здесь скада не причем, я это понимаю (данные поврежденные приходят с модуля). Скада их принимает хорошо.
    Как Михаил описал
    Пусть требуемое вещественное значение изменяется в диапазоне от A до B, X — полученное от устройства целое значение. Тогда пересчёт выполняется по следующей формуле: X * (B — A) / 65536 + A.
    Формулу следует ввести в поле Формула входного канала в базе конфигурации, установив для данного канала признак Исп. формулу. Например, значение измеряемого параметра изменяется в диапазоне от -40 до 160. Тогда формула для ввода в базу конфигурации получится:Cnl*200/65536-40

    Устал уже повторять, вы везде причину видите в Scada.
    Проверьте связи каналов Сервера и Коммуникатора. Может быть надо было настройки передать конфигурацию Серверу и перегрузить его ? а без передачи вы работаете на старых настройках ?
    Я постоянно перезагружаю сервер и коммуникатор. Просто дополнительные каналы основаны на формуле, ошибок нет, а в веб-станции на тебе — нет данных. — а если нет данных в канале то вся система управления (включая модули автоматические) дают нулевой эффект.

    #13352
    manjey73
    Участник

    AI floating point value (IEEE754) Смотрите документацию на прибор, почему бы не читать значение аналоговых входов уже после преобразования во float формате а не в виде сырых данных ?

    _              Канал
    40031~40032     0
    40033~40034     1 
    40035~40036     2
    40037~40038     3 
    40039~40040     4 
    40041~40042     5 
    40043~40044     6 
    40045~40046     7 
    40047~40048 Average 0~7 Read

    Конечно у вас нет Scaler, я дал ссылку на форум, где выкладывал формулу, ее необходимо добавить в Справочник — Формулы.

    Передать Конфигурацию Серверу — потом Рестарт.
    Сделать Ctrl+F5 в браузере или вообще перегрузить браузер через IIS

    Cnl*20/65536-10 — это как раз и есть для диапазона +/-10V если значение 0 = -10V а значение 65536 = +10V

    • Этот ответ был изменен 3 года, 1 месяц назад от manjey73.
    • Этот ответ был изменен 3 года, 1 месяц назад от manjey73.
    #13355
    Taw
    Участник

    Я заметил, что у меня два канала одинаковых. Два канала входных для модуля АДАМ6017 и два выходных имеют одинаковые номера. И все работает. Это нормально? Я исправил номера каналов сделал разными. Но все равно почему то не выводит в веб-станцию значения расчетных дополнительных каналов. Закрывал администратор и открывал заново. Нет данных в дополнительных расчетных каналах. И ошибки нет.

Просмотр 15 сообщений - с 31 по 45 (из 63 всего)
  • Вы должны авторизироваться для ответа в этой теме.