1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Чтение регистров modbus tcp с LP 8841 (LinPAC)

PLC, прочие контроллеры, промышленные компьютеры, операторские панели
Ответить
Аватара пользователя

Автор темы
petr2off
эксперт
эксперт
Сообщения: 1614
Зарегистрирован: 06 янв 2016, 19:45
Имя: Петров В.Л.
Страна: Россия
город/регион: Красноярск
Благодарил (а): 70 раз
Поблагодарили: 189 раз

Чтение регистров modbus tcp с LP 8841 (LinPAC)

Сообщение petr2off »

Добрый день. Поднял я на LP 8841 Modbus TCP server (slave). В Isagraf 6.5 завел 3 тестовых регистра с адресами 0,1,2. Собрал проект, загрузил - все ОК. В отладчике увидел эти регистры, залокировал их со значениями 11,12,13.
Пытаюсь прочитать (пробовал EasyBuilder PRO, MasterScada4D, MbPoll) Читается 0. Причем - никакой клиент никаких ошибок не выдает, такое ощущение что из какого то другого адресного пространства он эти регистры берет.
Там и менять то в настройках особенно нечего. Уже (как в старой доброй песне поется) - Кипит разум возмущенный.
Может кто то имел дело с этой темой ?
Аватара пользователя

Автор темы
petr2off
эксперт
эксперт
Сообщения: 1614
Зарегистрирован: 06 янв 2016, 19:45
Имя: Петров В.Л.
Страна: Россия
город/регион: Красноярск
Благодарил (а): 70 раз
Поблагодарили: 189 раз

Чтение регистров modbus tcp с LP 8841 (LinPAC)

Сообщение petr2off »

Добрый день. Получилось. Просто всяких тонкостей оказалось много.
Общая схема такая. Задача - подговить в контроллере карту Modbus регистров для взаимодействия со Скада клиентом по Modbus TCP.
1) Задача - разместить в "Устройствах в/в" правильные драйвера. Так как контроллер в данном случае пассивное устройство - его терзают различные SCADA клиенты (в данном случае Weintek и MasterScada4D. То выбирается MB:SL:ip_server, он должен быть создан первым. FIORD сделал плагин для конфигурации серверов и клиентов) У него есть плюс, что выбрав направление все остальные устройства ты не видишь, минус - он недоделанный, в нем можно только создавать и удалять устройства и регистры (каналы в терминологии ACP). Сервер создается один раз, и все регистры вешаются на него. Причем явно это никак не регулируется. Просто ID каналов должен быть больше ID сервера. Из параметров - IP интерфейса по которому Скады будут ломится к контроллеру и порт (по умолчанию 502).
2) Создаем каналы. Прикол тут в том что нужно аккуратно выбирать тип, скажем мне потребовались каналы для чтения регистров, поэтому правильным оказался канал - MB:SL:ao, здесь настроек чутка побольше. Тот же порт (502), номер узла, тип адреса - определяет на какой адрес будет откликаться сервер 1,30001 или 40001., собственно сам адрес модбус регистра (1) ну и флаг свопа байтов)
3) В принципе можно работать с "сырыми адресами" типа %QD8.0 но правильней завести нормальные переменные и "смонтировать" их на канал соответствующий. Т.е. в начале заводится переменная с нужным типом и направление в/В, а затем в настройках канала щелкаешь по "сырому" адресу и выбираешь в списке переменную для монтажа, если слегка накосячил не правильные атрибуты переменной назначил она предложит поправить.
4) Ну с контроллером в общем то все, нужно конечно еще программулечку написать для загрузки значений в сделанные переменные, но это уже другая история.
5) По панели Weintek - В системных параметрах создаем устройство -Modbus TCP/IP (Zero-based Addressing) в настройках задаешь соответствующий IP Ну а дальше велком - либо напрямую с регистрами -либо через библиотеку меток.
Уфф. Сколько много букв получилось. Ну может кому и пригодится.
Ответить

Вернуться в «Средний уровень автоматизации (управляющий)»