Стартовая страница › Форумы › Ошибки в работе › Ошибки Сервера › Ошибка при компилировании исходного кода формул
- В этой теме 62 ответа, 9 участников, последнее обновление 1 год, 9 месяцев назад сделано
Mikhail.
-
АвторСообщения
-
31.07.2019 в 12:19 #13024
Andrew174
УчастникНо, несмотря на эти временные неудобства (отсутствие толкового «талмуда» по формулам), считаю RapidSCADA лучшей прикладной SCADA-системой.
Ну а HELP по формулам — это дело времени …
Думаю, что когда нибудь Михаилу надоест отвечать на одинаковые вопросы в форуме и он его сделает …
😉
31.07.2019 в 14:18 #13037Mikhail
МодераторСпасибо 🙂
Ну, документация всё же улучшается постепенно.12.08.2019 в 14:42 #13199puhel
УчастникДобрый день!
Получил такую ошибку:
Строка 514, колонка 34: error CS0102: Класс «Scada.Server.Engine.CalcEngine» уже содержит определение для «MonthBegDict»В файле CalcEngine.cs действительно, в двух строках — 440 и 514 один и тот же код:
public Dictionary<int, DateTime> MonthBegDict = new Dictionary<int, DateTime>();Не подскажете ли, в чем может быть причина?
12.08.2019 в 15:40 #13201puhel
УчастникПохоже, разобрался в чем дело. Импортировал Formula.xml из предыдущей версии, что привело к ошибке. Заменил на тот, что в текущей версии, и ошибка пропала.
12.08.2019 в 16:26 #13204Mikhail
МодераторСпасибо за информацию.
20.08.2019 в 04:39 #13303Taw
УчастникМогу ли я записать формулу в канале (канал 201 или 203) который получает данные с датчиков чтобы он выводил уже рассчитанные по формуле значения? Или нужно обязательно делать дополнительный расчетный канал с номером после канала, данные которого хотим пересчитать?
Я сделал отдельным вычислительным каналом, но формула не работает. Где посмотреть лог или в чем может быть ошибка?20.08.2019 в 08:42 #13304manjey73
УчастникДа, можно формулу писать сразу во входном канале ТИ, необходимо использовать Cnl
Смотрите документацию по формулам.Лог смотреть в логе сервера ScadaServer\Log\ScadaServerSvc.log, он ругается на строку и столбец файла CalcEngine.cs куда попадают все формулы.
На первый взгляд формула правильная, не должно быть ошибок.
-
Этот ответ был изменен 4 года, 3 месяца назад от
manjey73.
20.08.2019 в 08:49 #13306manjey73
УчастникЭто вы преобразовываете аналоговый датчик или что ?
Есть описание самой формулы ? например из документации на Adam или мотор ?-
Этот ответ был изменен 4 года, 3 месяца назад от
manjey73.
20.08.2019 в 17:55 #13309Mikhail
МодераторЕсли Сервер не стартует, то уточните подробности ошибки из лога.
21.08.2019 в 06:35 #13315Taw
УчастникДа, я пытаюсь принять в Rapid Scada аналоговый сигнал с АДАМ-6017. Но там проблема тоже, вместо 5.4 В (которые я подаю на вход аналогового порта) получаю что-то вроде 0.8 В.
и сервер и коммуникатор работают нормально. Но формулы не считаются. Почему?
21.08.2019 в 09:19 #13316manjey73
УчастникTaw Ошибки в формуле у вас нет, код формул был успешно скомпилирован. Возможно сама формула неправильная, или неправильное представление чисел… Судя по значениям 32769 и около них у вас датчики за пределами диапазона.
21.08.2019 в 09:38 #13317manjey73
Участникout1:= in1 * 20 / 32767; (* для 0..20 мА *)
out2:= (in1 * 16 / 32767) + 4; (* для 4..20 мА *)Вот по Siemens пример, но на самом деле он не совсем корректен думаю будет.
Например 33769*20/32767 = 20.61159093 а это выше 20 мА. Насколько помню, там еще есть зона нечувствительности, хотя возможно она для обработки ошибок самого модуля предназначена, не помню. А если использовать вторую формулу то получается 24 мА, что еще больше. У вас в формуле непонятно откуда взялось 65536, это беззнаковое число. и у вас там получается значение почти равное нулю, что неестественно.
-
Этот ответ был изменен 4 года, 3 месяца назад от
manjey73.
21.08.2019 в 09:54 #13319manjey73
Участникз.ы. вообще зависит от модуля. Если он измеренное значение выдает в целочисленной форме от 0 до 32767, еще может быть зона нечувствительности и по факту от 0 до 27644
нужна правильная формула масштабирования для приведения сигнала к реальным значениям.
В разделе формулы я выкладывал Scaler. Но для токовых сигналов или еще каких, согласно мануалам производителя модуля можно применять и более простые формулы, аналогичные как у Сименс например…21.08.2019 в 10:53 #13320Taw
УчастникНо самая странная вещь, когда значение каналов перевожу на mqtt протокол (mqtt протокол просто берет данные из канала и размещает их в интернете на брокере). То из интернета я получаю уже нормальные данные, пересчитанные по формуле. Что вообще за прикол?
Вот и покупай автоматические модули и т.д. Если что то всплывет то ж….есть полная со всей системой. и все будет в логах показывать, что работает. Я против закрытого кода вообще.
Я измеряю напряжение. И проблема там, что в самом модуле АДАМ тоже можно уже увидеть значение реальное. оно то и есть 0.8 — очень маленькое. А в скада я хочу просто считать значения из датчиков. Я сначала проверяю на стороннем ПО а только потом перевожу в Rapid Scada.
Не понимаю — в веб-станции показывает что вообще нет значений в расчетных каналах, а в линии коммуникатора АДАМ-6017 не реагирует вообще на формулу и представляет данные с модуля минуя формулу.21.08.2019 в 11:16 #13321Taw
УчастникКроме того обнаружил что в конфигурационном файле для mqtt драйвера номера команд вообще никакой роли не играют (являются избыточными данными). Работает просто по номеру выходного канала и номеру КП и оттуда берет номер команды. Этот конфигурационный файл явно содержит избыточные данные, которые в придачу и не используются.
-
Этот ответ был изменен 4 года, 3 месяца назад от
-
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.