Перенос ПЛК и его тегов на Коммуникатор

Стартовая страница Форумы Взаимодействие с устройствами Modbus Перенос ПЛК и его тегов на Коммуникатор

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

    В рамках перехода от MasterScada3 переношу проекты на RapidScada.

    Возник вопрос о переносе всех данных ПЛК с текущей реализации через MasterOPC Universal Modbus Server по протоколу modbus, на используемый в RapidScada Коммуникатор.

    В MasterOPC адреса имеют вид: 0x000, 0x002, 0x004, — что соответствует типу float (2 регистра на значение, 4 байта). При выставлении типа float в шаблоне для драйвера modbus в RapidScada все значения становятся 0.

    При изменении на любой другой тип, появляются непонятные значения, отличающееся от того, что выдает ПЛК на выходе для OPC. Перестановка битов — 10325476. На выходе с ПЛК тип данных — REAL (т.е. float).

    Как правильно перенести ПЛК и его теги с текущего OPC на RapidScada Коммуникатор?

    Также вопрос: для некоторых значений, используемые как контрольные флаги, установлены статичные адреса в памяти. При изучении шаблона modbus в rapidscada стало понятно, что свой адрес выставить нельзя. Может есть какой-то другой драйвер для modbus, который позволяет это сделать, или лучше переписать сам драйвер (На CodeSys 2.3), чтобы все значения ПЛК были в одной области памяти?

    #41644
    manjey73
    Участник

    0x000 — HEX отображение регистров? в настройках шаблона выбрать адресацию HEX
    Так же указать начало адресации с 0 или с 1

    для float для перестановки надо указать только 4-ре цифры, пример 2301 например (перестановка только регистров)

    #41645
    manjey73
    Участник

    Что значит свой адрес выставить нельзя? еще как можно.
    Вы создаете группу — в начальном элементе группы задается стартовый адрес группы.

    Группа — значит будет групповой опрос, все банально.
    Если у вас есть разрывы, соответственно делаете несколько групп и все.
    Так же указывается тип регистров, Holding, Input, Discrete

    #41646
    pascal_rustacean
    Участник

    Старые проекты (на Master OPC) делал не я, и я не совсем понимаю почему у них для float указано 8 цифр перестановки. Проекты делали где-то 5-6 лет назад, и я просто пытаюсь их хоть как-то обновить и осовременить на новом ПО.

    #41647
    pascal_rustacean
    Участник

    Да, спасибо, увидел! Сейчас попробую еще раз.

    #41648
    manjey73
    Участник

    1032 попробуйте, если выбран float то должно быть достаточно. (получается переставляются байты в регистрах, старшим байтом вперед.)

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

    Добрый день.
    Если не заработает, присылайте примеры пакетов Modbus и описание регистров, которые нужно из них извлечь.

    #41650
    pascal_rustacean
    Участник

    Посидел сам поразбирался с нарезкой пакетов modbus (после подсказки Mikhail) и вот что выяснилось:

    1. Перестановка байтов не требуется, адресация начинается с 0, а смещение равно 3

    2. В старом MasterOPC стояла перестановка байтов 10325476 скорее всего по причине того, что он не мог обработать данные получаемые с ПЛК, поэтому были выбрана такая перестановка.

    3. Сейчас данные отображаются корректно. То что выводит из себя ПЛК, и то что видит коммуникатор полностью совпадает.

    Отдельное спасибо за подсказку с указанием отдельного адреса, через создание новой группы

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

    Хорошо, что всё получилось 🙂

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