Стартовая страница › Форумы › Взаимодействие с устройствами › Modbus › Перенос ПЛК и его тегов на Коммуникатор
- В этой теме 8 ответов, 3 участника, последнее обновление 3 недели, 1 день назад сделано
Mikhail.
-
АвторСообщения
-
14.01.2026 в 10:22 #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), чтобы все значения ПЛК были в одной области памяти?
14.01.2026 в 11:44 #41644
manjey73Участник0x000 — HEX отображение регистров? в настройках шаблона выбрать адресацию HEX
Так же указать начало адресации с 0 или с 1для float для перестановки надо указать только 4-ре цифры, пример 2301 например (перестановка только регистров)
14.01.2026 в 11:46 #41645
manjey73УчастникЧто значит свой адрес выставить нельзя? еще как можно.
Вы создаете группу — в начальном элементе группы задается стартовый адрес группы.Группа — значит будет групповой опрос, все банально.
Если у вас есть разрывы, соответственно делаете несколько групп и все.
Так же указывается тип регистров, Holding, Input, Discrete14.01.2026 в 11:50 #41646
pascal_rustaceanУчастникСтарые проекты (на Master OPC) делал не я, и я не совсем понимаю почему у них для float указано 8 цифр перестановки. Проекты делали где-то 5-6 лет назад, и я просто пытаюсь их хоть как-то обновить и осовременить на новом ПО.
14.01.2026 в 11:50 #41647
pascal_rustaceanУчастникДа, спасибо, увидел! Сейчас попробую еще раз.
14.01.2026 в 12:17 #41648
manjey73Участник1032 попробуйте, если выбран float то должно быть достаточно. (получается переставляются байты в регистрах, старшим байтом вперед.)
14.01.2026 в 16:53 #41649
MikhailМодераторДобрый день.
Если не заработает, присылайте примеры пакетов Modbus и описание регистров, которые нужно из них извлечь.15.01.2026 в 11:33 #41650
pascal_rustaceanУчастникПосидел сам поразбирался с нарезкой пакетов modbus (после подсказки Mikhail) и вот что выяснилось:
1. Перестановка байтов не требуется, адресация начинается с 0, а смещение равно 3
2. В старом MasterOPC стояла перестановка байтов 10325476 скорее всего по причине того, что он не мог обработать данные получаемые с ПЛК, поэтому были выбрана такая перестановка.
3. Сейчас данные отображаются корректно. То что выводит из себя ПЛК, и то что видит коммуникатор полностью совпадает.
Отдельное спасибо за подсказку с указанием отдельного адреса, через создание новой группы
15.01.2026 в 16:08 #41651
MikhailМодераторХорошо, что всё получилось 🙂
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.