Шаблон КП для модбас

Помечено: 

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

    Не понял как получать дискретные значения в формате boolean из holding регистров устройства Modbus TCP.

    В редакторе шаблонов устройств нельзя выбрать тип «bool» для элемента, если в свойствах группы элементов для таблицы данных задан опрос input или holding регистров.
    Часто встречается ситуация когда производитель записывает различные флаги или состояния в холдинг регистры, откуда их следует взять побитово.

    Просто не хотелось бы городить ОРС-сервер между СКАДА системой о модбас сетью.

    • Эта тема была изменена 4 года, 8 месяцев назад от Gektor401.
    #12968
    Mikhail
    Модератор

    Просто не хотелось бы городить ОРС-сервер между СКАДА системой о модбас сетью.

    Да, это не стоит делать.

    как получать дискретные значения в формате boolean из holding регистров

    Нужно считать регистр целиком, а затем уже на уровне базы конфигурации получить нужные флаги.
    Потребуется для каждого флага создать отдельный входной канал типа дорасчётный ТИ и для него установить формулу GetBit(Cnl, n)
    n — номер бита от 0

    #13052
    Taw
    Участник

    Потребуется для каждого флага создать отдельный входной канал типа дорасчётный ТИ и для него установить формулу GetBit(Cnl, n)

    Это работает.
    Вопросы:
    1) Как математически узнать размер регистра целиком (количество битов в регистре) чтобы брать только последний бит (количество битов -1 это будет номер последнего бита)?
    2) С помощью GetBit(Cnl, n) я беру один бит. А если я хочу взять несколько битов (диапазон битов) за один раз и в один канал? (Cnl, начальный бит для чтения, конечный бит для чтения)?
    3) Имеется ли в Rapid scada возможность представления данных в канале типа String? Допустим я могу использовать функцию вырезки диапазона символов с помощью Substring, поиск символа и т.д.?

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

    1. Размер регистра в Modbus 16 бит, как вариант для Coils (редко с ними работаю) может быть байт — 8 бит
    2. Несколько бит имеет смысл выделять в один входной канал, если там формуриуется код ошибки, видел недавно в какой-то теме Михаил выкладывал пример.
    Если речь идет о состоянии Реле или контроля ошибок по отдельному биту, надо создавать нужное количество Дорасчетных каналов и в каждом настраивать выдергивание нужного бита из полученного значения.
    3. Да, имеется. Формат канала установить Текст ASCII, Текст Unicode, Текст перечисления
    для первых двух максимум 8 байт, так как значение канала хранится в double. Для Unicode это будет 4 символа, для ASCII 8 символов. Пока дополнительных БД для текста не появилось. Иногда надо применять формулы, чтобы преобразовать double предварительно в текст. Иногда эту процедуру надо внутри драйвера выполнить или дополнительными формулами самой Scada. там много условий может быть и вариаций.

    На счет Substring будет сложновато из-за существующего ограничения, как выше написал строка драйвером будет преобразована в double и в нее попадут только 8 первых символов в формате ASCII например. А что там искать то среди 8 символов ? 🙂 а специальных текстовых баз пока нет.

    Кстати если вы получаете код ошибки, то можно поиграться с перечислениями, но будет сложновато, если каждый бит это определенная ошибка…

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

    2. Потребуется написать свою функцию и добавить её в таблицу формул. Скорее всего, на форуме найдутся примеры.

    #24533
    SergeevVadim
    Участник

    Михаил Добрый день. Отправьте пожалуйста примеры если есть ссылка:)

    #24535
    SergeevVadim
    Участник

    Помогите пожалуйста получить или создать шаблон устройства КП
    Админ добра и позитива. Всем мир ребятки

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

    Конкретизируйте Ваш вопрос, пожалуйста.

    #24565
    SergeevVadim
    Участник

    Добрый день, спасибо большое за обратную связь. Я во всём разобрался, теперь проблема в другом.
    Посмотрите пожалуйста скрин Скрин с ошибками
    https://ibb.co/vmt2cng
    ОЧень нужна ваша поддержка, я сам я ещё молод очень, спасибо за понимание.

    #24566
    a80808
    Участник

    Так если бы еще хнать, что это за устройства…
    Приложите конфигурацию хотя бы одного КП. А так похоже (если тут TCP) что нет связи — IP не тот, порт не тот, файрволл (закрыты соединения по порту), протокол не тот…

    #24567
    a80808
    Участник

    знать конечно 🙂

    #24568
    SergeevVadim
    Участник

    Всё работало, не знаю что случилось. Добавил новый КП я его синхронизировал на сервер, он появился всё хорошо. Но Rapid Admin стал в журнале писать вот такие ошибки. Я подозреваю что компонент modbus simulator не установлен на этом ПК и ещё почему то перестал отвечать сервер http://scadasrv/Scada а сервер localhost работает и отображает все КП которые я создал. То что Вы написали спасибо конечно я проверю всё.

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

    Чтобы увидеть ошибку, нужно прокрутить журнал на то место, где выполняется попытка соединения. Все журналы можно найти на диске в виде текстовых файлов, если нужно.

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