На форуме обязательно:
  1. Заполнить свой профиль НА РУССКОМ ЯЗЫКЕ КИРИЛИЦЕЙ. См. Правила, п.2.d.
  2. Не писать свой вопрос в первую попавшуюся тему, а вместо этого создать свою. См. Правила, п.3.a.

Рекламу мы не размещаем ни на каких условиях.

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

Ответить

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

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

Сообщение Pankistodor » 30 авг 2017, 10:21

Доброго времени суток. Только начал разбираться со средой 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»