Стартовая страница › Форумы › Ошибки в работе › Ошибки Сервера › Ошибка при компилировании исходного кода формул
- В этой теме 62 ответа, 9 участников, последнее обновление 2 года, 1 месяц назад сделано Mikhail.
-
АвторСообщения
-
21.08.2019 в 11:28 #13322manjey73Участник
Коммуникатор и не будет реагировать на формулу, по простой причине, он получает реальное значение из прибора. Если необходимо масштабирование, оно выполняется
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В и выдавать в вольтах он вам и отдает сразу нужное значение.21.08.2019 в 11:36 #13323manjey73УчастникА может быть ситуация, когда модуль всегда отдает значение от 0 до 65535 но при этом вы настроили его на измерение от -10V до +10V
Соответственно и формула будет другая. Возможно вы и получаете свои 0,8 В потому что формула больше похожа для измерения именно этого диапазона.22.08.2019 в 03:27 #13330TawУчастник“Коммуникатор и не будет реагировать на формулу, по простой причине, он получает реальное значение из прибора.” — хорошо, тогда почему дополнительный расчетный канал показывает что нет данных вообще? И как вообще делать перерасчет данных с датчика? И если коммуникатор не реагирует на формулу, то почему по протоколу mqtt (указываю канал данных с датчика) я получаю данные расчитанные по формуле а не реальные?
Я настроил модуль от -10V до +10V.
Это в модуле показывает маленькие данные, в Rapid Scada я вообще хочу чтобы хоть какой-то перерасчет данных с датчика был. Правильность формулы меня пока не интересует на этом этапе, главное чтобы формула вообще была задействована.22.08.2019 в 03:49 #13331TawУчастникВозможно была сделана неправильная калибровка модуля. Но сейчас вопрос о формулах в Rapid Scada.
22.08.2019 в 05:51 #13332TawУчастникЕсли я умножаю на 3.16 то получаю реальные значения.
22.08.2019 в 07:29 #13333TawУчастникЯ не знаю какая там формула. Я знаю реальные значения на входе, затем делю значения с датчика на реальное значение и получаю коэффициент.
Далее в Rapid Scada я данные с датчика делю на этот коэффициент и получается реальное значение, которое идет на вход модуля.
Но только вот почему то расчетные дополнительные каналы показывают что нет данных, хотя в веб-станции формула работает для канала данных приходящих с датчика.
- Этот ответ был изменен 4 года, 7 месяцев назад от Taw.
22.08.2019 в 09:04 #13335manjey73Участник» хорошо, тогда почему дополнительный расчетный канал показывает что нет данных вообще?» — Ну так надо смотреть ваши настройки БД и понять почему нет данных. В Коммуникаторе то значения из прибора вы видите, значит данные физически есть.
Проверьте связи каналов Сервера и Коммуникатора. Может быть надо было настройки передать конфигурацию Серверу и перегрузить его ? а без передачи вы работаете на старых настройках ?
Чтобы понимать, какую использовать формулу надо понимать диапазон значений, которые выдает прибор.
Устал уже повторять, вы везде причину видите в Scada, но это не всегда так.
Надо найти данные по вашему модулю Adam, в каком виде и что он дает.Укажите — 1 набор реальных напряжений которые вы подаете на прибор
2 — значение в DEC и HEX, согласно скрину в посте 13333Если не найдете данных в документации на ADAM, возможно можно будет понять диапазон значений при измерении.
22.08.2019 в 09:21 #13336manjey73УчастникВы в корне не верно поступаете вычисляя коэффициент, это как притянуть за уши значение называется.
22.08.2019 в 09:29 #13337manjey73УчастникСтранно, по документации ADAM 6017 должен уметь измерять 0-10В а по вашему скрину только +/-10В. ????
22.08.2019 в 09:57 #13338manjey73УчастникПопробуйте данную формулу Scaler
Использовать формулу в канале — Да, Scaler(Cnl, 0, 65535, -10.0, 10.0)
Пока нашел только упоминание в документации, что значение 32767 (0x7FFF) = 0.000V для диапазонов +/-10V и +/-5V
а значение 32766 = 0.0002V для диапазона +/-5V22.08.2019 в 10:11 #13342manjey73УчастникДля диапазона 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 должна быть правильной.- Этот ответ был изменен 4 года, 7 месяцев назад от manjey73.
22.08.2019 в 11:15 #13350manjey73Участник32766 = — 0.0002V для диапазона +/-5V
Поправка, на скрине утилиты от производителя минусовое значение. Значит диапазон от 0 до 65535 где середина это 0 В
22.08.2019 в 11:39 #13351TawУчастникВы в корне не верно поступаете вычисляя коэффициент, это как притянуть за уши значение называется. — Да, я знаю, но напряжения берутся с источников питания на 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.
Проверьте связи каналов Сервера и Коммуникатора. Может быть надо было настройки передать конфигурацию Серверу и перегрузить его ? а без передачи вы работаете на старых настройках ? Я постоянно перезагружаю сервер и коммуникатор. Просто дополнительные каналы основаны на формуле, ошибок нет, а в веб-станции на тебе — нет данных. — а если нет данных в канале то вся система управления (включая модули автоматические) дают нулевой эффект.22.08.2019 в 11:56 #13352manjey73Участник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 в браузере или вообще перегрузить браузер через IISCnl*20/65536-10 — это как раз и есть для диапазона +/-10V если значение 0 = -10V а значение 65536 = +10V
22.08.2019 в 12:28 #13355TawУчастникЯ заметил, что у меня два канала одинаковых. Два канала входных для модуля АДАМ6017 и два выходных имеют одинаковые номера. И все работает. Это нормально? Я исправил номера каналов сделал разными. Но все равно почему то не выводит в веб-станцию значения расчетных дополнительных каналов. Закрывал администратор и открывал заново. Нет данных в дополнительных расчетных каналах. И ошибки нет.
-
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.