Ошибка при обновлении часовых данных

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

Просмотр 9 сообщений - с 1 по 9 (из 9 всего)
  • Автор
    Сообщения
  • #24569
    baur
    Участник

    Rapid SCADA 5.8.4

    Часовые данные не отображается

    выдает ошибку:

    Error processing request 'ClientApiSvc.svc/GetHourCnlData': 
    No number after minus sign in JSON at position 11909

    • Эта тема была изменена 1 год, 10 месяцев назад от baur.
    • Эта тема была изменена 1 год, 10 месяцев назад от baur.
    #24576
    Mikhail
    Модератор

    Такая ошибка возникает, если значение ячейки содержит некий символ, который не допустим для передачи в формате JSON.

    Что можно сделать:
    На закладке Сеть в инструментах браузера найти запрос часовых данных и скопировать ответ на него в формате JSON. Затем JSON вставить в парсер, например, https://jsonformatter.curiousconcept.com/ , чтобы найти какое место вызывает ошибку. Дальнейшее действие в зависимости от того, что за символ будет найден.

    #24577
    baur
    Участник

    формат не читабельный, отправил в почту

    #24578
    Mikhail
    Модератор

    В таком случае методом исключения из табличного представления найдите тот входной канал, на котором возникает ошибка.
    Либо нужно заменить все \" на "
    Техническая поддержка по емаил не входит в бесплатную поддержку.

    #24579
    baur
    Участник

    Нашел вот такай кусок, это влияет?

    Parse error on line 1:
    ...{"CnlNum":125,"Val":-Infinity,"Stat":1,"
    -----------------------^
    Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[', got 'undefined'
    #24580
    baur
    Участник

    канал 125 это расчетный

    ((Val(111)-Val(103))/(Val(119)-Val(103)))*(Val(119)/Val(111))*100

    как я понял надо исключить ситуацию divide by zero?

    #24592
    Mikhail
    Модератор

    Верно, проблема в -Infinity. Скорее всего, деление на 0.
    Я бы рекомендовал вынести расчёт в отдельную функцию, чтобы удобнее было добавить проверки и исключить деление на 0.

    #24593
    Mikhail
    Модератор

    Также можно сделать формулу для вычисления статуса канала, чтобы в случае нулевых делителей возвращать статус 0.

    #24628
    baur
    Участник

    Спасибо, формулу перепишем

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