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

ModBus RTU Slave

Модераторы: Глоб.модераторы, специалисты B&R

Ответить

Автор темы
Dinar21
здесь недавно
здесь недавно
Сообщения: 5
Зарегистрирован: 11 май 2021, 13:23
Имя: Динар
Поблагодарили: 1 раз

ModBus RTU Slave

Сообщение Dinar21 »

Добрый день.

Насколько я зная, здесь можно указывать название массива, которая будет являться картой регистров. В данный момент модбас в системе определяется фиксированным именем MB4, MB0 и т.д, так как стоят нули напротив ModBus Variable Type.

Знает ли кто-нибудь, каким образом мы можем присвоить holding регистру название массива?

Slave.MBSOpen_1.enable := TRUE;
Slave.MBSOpen_1.pDevice := ADR('IF6.ST8.IF1'); (* Device description string *)
Slave.MBSOpen_1.pMode := ADR('/PHY=RS485 /PA=N /DB=8 /SB=1 /BD=9600'); (* Mode description string *)
Slave.MBSOpen_1.pCoilStat := 0; (* Coil Status (Modbus simulation variable) *)
Slave.MBSOpen_1.pInputStat := 0; (* Input Status (Modbus simulation variable) *)
Slave.MBSOpen_1.pInputReg := 0; (* Input Register (Modbus simulation variable) *)
Slave.MBSOpen_1.pHoldingReg := 0; (* Holding Register (Modbus simulation variable) *)
Slave.MBSOpen_1.own_ID := 1; (* Own node number *)
Slave.MBSOpen_1.timeout := 2000; (* Timeout in milliseconds (the value must be a multiple of 10 and >250ms) *)
Slave.MBSOpen_1();
Аватара пользователя

keysansa
эксперт
эксперт
Сообщения: 2469
Зарегистрирован: 20 дек 2018, 04:45
Имя: Сергей
Страна: РБ/РФ
город/регион: РФ Сергиев Посад
Благодарил (а): 2119 раз
Поблагодарили: 207 раз

ModBus RTU Slave

Сообщение keysansa »

Dinar21 писал(а): 20 окт 2021, 15:01 Знает ли кто-нибудь, каким образом мы можем присвоить holding регистру название массива?
Holding Register по спецификации Modbus - это регистр. 16 бит.
"p" в начале переменной, B&R обычно указывают, что это адрес переменной.
Вам для работы, вместо 0, нужно в pHoldingReg передать ADR(MyArrayOfHoldingReg);
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.

Автор темы
Dinar21
здесь недавно
здесь недавно
Сообщения: 5
Зарегистрирован: 11 май 2021, 13:23
Имя: Динар
Поблагодарили: 1 раз

ModBus RTU Slave

Сообщение Dinar21 »

Спасибо)
Ответить

Вернуться в «B&R Automation»