Показано с 1 по 9 из 9

Тема: Тренды реального времени в СП270

  1. #1

    Question Тренды реального времени в СП270

    Оказалось необходимо отображать тренды реального времени для дробных чисел в панели СП270.

    Дробные числа в панель передавать я могу. В контроллере имею переменную типа REAL, в Modbus(slave) переменную DWORD. В переменной REAL меняю старшее и младшее слова местами и записываю то что получилось по адресу переменной DWORD в Modbus(slave).

    Таким способом (он меня устраивает), без проблем передаю любые дробные числа (со знаком, если он есть) в панель.

    Попробовал использовать в панели Тренд реального времени... ничего не получается. Такое ощущение что при построении тренда содержимое двойного регистра рассматривается как целое число, даже если флажок выставлен на Float.

    Вопрос вот в чём: Как я могу построить адекватный тренд реального времени для параметра дробного типа? Хотелось бы обойтись наименьшими жертвами, т.е. продолжать хранить эти параметры в DWORD. Дело в том что проделано уже очень много работы и начинать с начала очень бы не хотелось.

    Если это невозможно предложите разные варианты.
    42 is the answer

  2. #2

    По умолчанию

    Опишу подробнее.
    Вот конфигурация ПЛК: одно двойное слово (поименованное как rr). Адрес Modbus - 4х0.
    Функция formatting, принимающая REAL и возвращающая DWORD.
    И программа PLC_PRG в которой объявленна переменная r1: REAL и в которой вызывается formatting(r1).


    А это кусок из конфигуратора СП200. Показан экран, и настройки для Графика реального времени и для Цифрового дисплея.


    Как всё это работает: Пишу в r1:=25. На Цифровом дисплее повляется значение "25". На графике ничего нет (видимо принимает это значение за 0 или < 0). В Modbus в это время rr=16840.
    Пишу в r1:=25.42. На Цифровом дисплее повляется значение "25.42". На графике появляеться линия задраная к верхней границе графика (видимо принимает это значение за 100 или > 100). В Modbus в это время rr=1546207691.

    Чего я ожидаю: На Тредне отображается тоже значение что и на Цифровом дисплее.

    Подскажите пожалуйста выход из этой ситуации.
    Последний раз редактировалось 42ia; 10.08.2011 в 10:08.
    42 is the answer

  3. #3

    По умолчанию

    Цитата Сообщение от Адрей Посмотреть сообщение
    СП270 читает и пишет Float без подмены смотрите мои примеры.
    Посмотрел ваши примеры. В общем понравилось. Шаманство конечно.

    Вопрос то вот в чём... Хотелось бы решить задачу не меняя программу в ПЛК. Т.е. я уже готовлю значения для передачи в панель. И вижу их в компоненте Цифровой дисплей. Почему я не могу тем же способом отобразить эти значения на Графиках?
    42 is the answer

  4. #4

    По умолчанию

    Простите, буду немного навязчев. Требуется срочное решение.
    Надо отобразть тренды по 49 параметрам.

    Есть такая идея:
    - в контроллере у меня переменная var1: REAL;
    - в модбасе (по адресу 0) переменная m_var1: DWORD;
    - В PLC_PRG я делаю m_var1 := REAL_TO_WORD(var1*100); т.е. передаю в модбас целое число
    - в панели добавляю "функциональную область" (общий компонент). Она делает "Непрерывно" "Вычисления" PSW256 = 4x0/100;
    - На хронологический график я вывожу PSW256.

    Вопросы:
    1. Это нормально вообще? (если ктонибудь знает лучший вариант, подскажите)
    2. Это подойдёт для 49 параметров? Могу я разместить след. параметр по адресу PSW257?
    3. Вообще, почему 256? Я подсмотрел это в чьёмто примере, но толком не понимаю...
    4. 1 параметр занимает 2 байта. Значит для хранения одной точки графика мне потребуется 2+6 байт?
    5. Мне чтонибудь нужно менять в меню Файл-Настройки-Панель-Установить параметр.
    6. Сколько всего точек я могу хранить в панели?
    42 is the answer

  5. #5
    Ельцов Андрей
    Гость

    По умолчанию

    Добрый день:
    Вообще вариант нормальный, не понятно только почему Вас не устаивает хранение ворда, он же занимает меньше места в памяти. Если нужно будет отображать в панели, там можно указать количество количество знаков после запятой.
    2. В Вашем варианте следующий адрес должен быть 258.
    3. Тема много раз обсуждалась. Все регистры до 256 заняты под внутренние ресурсы панели.
    4. да, все верно.
    5. лучше не менять.
    6. На этот и кстати другие перечисленные вопросы Вы сможете найти ответ в документе. Если коротко то для 49 параметров типа dword (float) Вы сможете сохранить (100*1024)/(49*2+6) около 1000 точек. Но тормозить будет страшно

    Но в конечном итоге соглашусь с Адреем: "Сдесь SCADA вам в помощь"
    Цитата без изменений
    Последний раз редактировалось Ельцов Андрей; 01.09.2011 в 21:22.

  6. #6

    По умолчанию

    Извените. Под конец рабочего дня поторопился. Я использую WORD.
    Сегодня пришла идея в панели ничего не делить на 100.
    Параметр у меня принемает значения от 0 до 100. Например 76,25. в контроллере умножаю на 100. Получается по модбасу я отправляю 7625.
    Тогда ведь можно в тренде просто поставить "Значение Макс" = 10000 вместо 100.

    Если использовать этот вариант, можно не переписывать параметр в память панели, а строить тренд из 4х0?
    42 is the answer

  7. #7

    По умолчанию

    есть реализованный проект с присутствием 5ти графиков по 2 параметра длительностью 144 точки каждый. панель не тормозит страшно, но чувствуется близость грани начала тормозов. теперь необходимо сделать почти копию проекта, только с 2мя графиками по 2 параметра, но уже по 360 точек в каждом. в случае такой нагрузки не начнет ли панель "потеть"?

  8. #8

    По умолчанию

    нет, реального времени

  9. #9

    По умолчанию

    понятно, спасибо

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •