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

B&R AS. Modbus TCP Master. AsMbTCP. Помощь с mbReadCoils()

Ответить

Автор темы
Pankistodor
новенький
новенький
Сообщения: 1
Зарегистрирован: 30 авг 2017, 09:28
Имя: Павлов Андрей Михайлович
Страна: Россия
город/регион: Раменское

B&R AS. Modbus TCP Master. AsMbTCP. Помощь с mbReadCoils()

Сообщение Pankistodor »

Доброго времени суток. Только начал разбираться со средой B&R Automation Studio 4.2 и попытался освоить работу с протоколом Modbus, используя стандартные библиотеки среды и их функциональные блоки. Проблема возникла при создании Modbus TCP мастера для считывания Сoils из имитатора "Modbus Slave". Прошу помочь найти ошибку.
Задача: На языке ST написать программу для считывания по Modbus TCP 10 coils с адреса 200 со "Слейва" имеющего IP: 172.20.124.50.
Имеется: В качестве контроллера используется X20CP3584. Порт IF2 (Ethernet) был сконфигурирован следующим образом: (Вложение 1.)
Подключены библиотеки: AsTCP для настройки порта (не уверен, что необходима) и AsMbTCP для функции считывания дискретов.
Текст программы на языке ST (All in one):

PROGRAM _INIT
OpenMBS.pIfAddr:= 0;
OpenMBS.port:=502;
ClientMBS.ident:=OpenMBS.ident;
ClientMBS.portserv := 502;
ClientMBS.pServer := ADR('172.20.124.50');
ReadCoilsMBS.pStation:= ADR('IF2.MODBUSMASTER_1');
ReadCoilsMBS.startAddress:= 200;
ReadCoilsMBS.nrCoils:= 10;
ReadCoilsMBS.pData:= ADR(DATA);
ReadCoilsMBS.dataSize:=64;
ERROR:=0;
END_PROGRAM

PROGRAM _CYCLIC
OpenMBS.enable:=1;
ClientMBS.enable:=1;
ReadCoilsMBS.enable:=1;
OpenMBS();
ClientMBS();
ReadCoilsMBS();
END_PROGRAM

PROGRAM _EXIT
(* Insert code here *)

END_PROGRAM

При мониторинге в "Watch" статуса выполнения функции (Вложение 2) получаю код возврата 34201 (mbERR_STATION_NOT_CONNECTED Specified station not connected ) - станция не на связи. При изменении значения в кавычках в строке кода "ReadCoilsMBS.pStation:= ADR('IF2.MODBUSMASTER_1')"; на любое другое код шибки меняется на 34200 (mbERR_STATION_NOT_EXIST Specified station doesn't exist), якобы станция вообще не существует.
На всякий случай прикреплю еще настройки сети ПК и программы Modbus Slave.

Прошу? по возможности? подсказать ибо в HELP примера использования функции не нашел, а смысл задания параметра pStation не очень ясен, как и синтаксис значения, которое ему необходимо присвоить. Заранее большое спасибо.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Ответить

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