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

B&R ModbuRTU

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

Ответить

Автор темы
Gienon
здесь недавно
здесь недавно
Сообщения: 27
Зарегистрирован: 10 янв 2019, 17:13
Имя: Алексей
Благодарил (а): 19 раз
Поблагодарили: 4 раза

B&R ModbuRTU

Сообщение Gienon »

Доброго времени суток! Есть необходимость считывания данных с модуля X20CS1030 (который также настраиваем мы) по ModbusRTU RS485. Для этого будет использоваться контроллер фирмы не B&R. Как сформировать таблицу регистров для считывания на стороне X20CS1030?
Что сделано:
1) Полностью прописана "хардвара", включая модуль X20CS1030;
2) Реализована программа считывания/преобразования аналоговых и дискретных входных сигналов;
3) Реализован алгоритм работы установки по заданному ТЗ алгоритму;
4) Добавлена библиотека DRV_mbus;
5) В конфигурации модуля X20CS1030 прописаны нужные настройки (RS485, 19200, 8бит, паритет);
Дальше начинаются сложности.
6)Из библиотеки DRV_mbus в инициализационную часть добавили MBSOpen (т.к. модуль X20CS1030 будет выступать Slave-ом,а посторонний ПЛК - мастер).
Как правильно настроить блок и прописать таблицу регистров, которую будем считывать другим контроллером??
Нашел, что параметры протокола задаются в файле Dataobject. Откуда взять это самый "DataObject"??
Благодарю за помощь.
Аватара пользователя

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

B&R ModbuRTU

Сообщение keysansa »

Я все через код делал (на X20CP0291).
[+]
VAR
MClose : MBMClose;
MSlave : MBSlave;
MOpen : MBSOpen;
S1 : BOOL;
END_VAR
[+]
PROGRAM _INIT
MB0[0]:= TRUE;
MB1[0]:= TRUE;

MOpen.enable:= TRUE;
MOpen.pDevice:= ADR('IF1');
MOpen.pMode:= ADR('RS232,57600,E,8,1');
MOpen.pCoilStat:= ADR("MB0");
MOpen.pInputStat:= ADR("MB1");
MOpen.pInputReg:= 0;//ADR("MB3");
MOpen.pHoldingReg:= 0;//ADR("MB4");
MOpen.own_ID:= 2;
MOpen.timeout:= 1000;
MOpen();
END_PROGRAM


PROGRAM _CYCLIC
MSlave.enable:= TRUE;
MSlave.ident:= MOpen.ident;
MSlave();
IF(S1=1)THEN
MClose.enable:=TRUE;
MClose.ident:=MOpen.ident;
MClose();
END_IF
END_PROGRAM
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.

Автор темы
Gienon
здесь недавно
здесь недавно
Сообщения: 27
Зарегистрирован: 10 янв 2019, 17:13
Имя: Алексей
Благодарил (а): 19 раз
Поблагодарили: 4 раза

B&R ModbuRTU

Сообщение Gienon »

Благодарю за ответ! Если я настрою модуль через MOpen.pMode:= ADR('RS485,19200,E,8,1'), что будет с параметрами связи, заданными в конфигурации модуля X20CS1030? Они буду игнорироваться?

b3g1nasutp
здесь недавно
здесь недавно
Сообщения: 64
Зарегистрирован: 29 авг 2022, 06:28
Имя: Александр Дубинин
Страна: Россия
город/регион: Абинск
Благодарил (а): 58 раз
Поблагодарили: 5 раз

B&R ModbuRTU

Сообщение b3g1nasutp »

Всем привет! Ожидает примерно тоже самое. keysansa, не могли бы Вы пояснить, допустим я имею в глобальных переменных тэги TIRSA01 (REAL),TIRSA02 (REAL), TIRSA03 (REAL). Как мне поместить значения тэгов в карту регистров, например в MB3[0], MB3[1], MB3[2]?
Спасибо.
Аватара пользователя

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

B&R ModbuRTU

Сообщение keysansa »

Gienon писал(а): 08 фев 2024, 05:14 Благодарю за ответ! Если я настрою модуль через MOpen.pMode:= ADR('RS485,19200,E,8,1'), что будет с параметрами связи, заданными в конфигурации модуля X20CS1030? Они буду игнорироваться?
Будут перезаписаны на указанные в коде, с момента отработки данной команды.
b3g1nasutp писал(а): 08 фев 2024, 05:26 TIRSA01 (REAL),TIRSA02 (REAL), TIRSA03 (REAL).
Необходимо разбить каждый REAL (4 байта) на 2 WORD (2 байта).
Либо, как я обычно делаю:
* Имеем датчик температуры, с одним значащим (для условий установки) знаком после запятой. Значение, к примеру: 4.5674 градуса.
* Округляю до 1 знака (4.7) умножаю на 10 (47) и записываю в массив MB3[1], например.
Но я в целом стараюсь внутри программы считать именно в целых числах. В вещественные перевожу только на визуализации. Поэтому, мне нет необходимости часто выполнять такие преобразования.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.

Автор темы
Gienon
здесь недавно
здесь недавно
Сообщения: 27
Зарегистрирован: 10 янв 2019, 17:13
Имя: Алексей
Благодарил (а): 19 раз
Поблагодарили: 4 раза

B&R ModbuRTU

Сообщение Gienon »

Что-то делаю не так.....при попытке считать данные через MOXA1150 на модуле X20CS1030 сигнализирует только индикатор Rx. Прошу помощи разобраться. Мои шаги:
1) Конфигурация модуля:
ConfModule.png
2) Инициализационная часть:
ProgramInit.png
Пояснения:

Код: Выделить всё

intT6_1:= REAL_TO_INT(T6_1.PV);
MB3[0]:= intT6_1;
Делаю преобразование REAL в INT,т.к. согласно хелпу:
MB3.png
Переменные int6_1, T6_1.PV, переменная в составе массива MB3[0] - являются глобальными.

3) Циклическая часть:
ProgramCyclic.png
=========================================================================================
MOXA1150 сконфигурирована на RS485.
=========================================================================================
Настройки ModbusPoll:
1)Connection:
MBPoll_connect.png
2) Настройки соединения:
Slave_ID указываю "2", т.к."own_ID:=2" в инициализационной части программы.
=========================================================================================
Подключение к модулю X20CS1030 согласно мануалу. Контакты 11 и 21 - Данные. Контакты 13 и 23 - GND.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя

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

B&R ModbuRTU

Сообщение keysansa »

Вроде все верно.
Проверьте, что настройки порта меняются в Online, ну и для цикла необходимо минимальное время выставить.
ЗЫ. В понедельник-вторник попробую найти проект, который работает (у вас какая студия? Я в 3.09 делал)
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.

Автор темы
Gienon
здесь недавно
здесь недавно
Сообщения: 27
Зарегистрирован: 10 янв 2019, 17:13
Имя: Алексей
Благодарил (а): 19 раз
Поблагодарили: 4 раза

B&R ModbuRTU

Сообщение Gienon »

Студия 4.12. Будет хорошо,если Вы скинете проект . Сравню со своим. Где проверить в aAS 4.12,что настройки порта меняются в Online?
Аватара пользователя

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

B&R ModbuRTU

Сообщение keysansa »

Вот, пришлось удалить папку AS (по размеру не проходила, но там runtime 3.09).
br_painter_20201016.7z
У вас нет необходимых прав для просмотра вложений в этом сообщении.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.

Автор темы
Gienon
здесь недавно
здесь недавно
Сообщения: 27
Зарегистрирован: 10 янв 2019, 17:13
Имя: Алексей
Благодарил (а): 19 раз
Поблагодарили: 4 раза

B&R ModbuRTU

Сообщение Gienon »

Благодарю! Завтра посмотрю

Автор темы
Gienon
здесь недавно
здесь недавно
Сообщения: 27
Зарегистрирован: 10 янв 2019, 17:13
Имя: Алексей
Благодарил (а): 19 раз
Поблагодарили: 4 раза

B&R ModbuRTU

Сообщение Gienon »

Добрый день, Ваша программа помогла! (Вроде сделано все то же самое, но не работает...)Теперь хоть видим status-ы. В режиме онлайн в MSlave status имеет код ошибки :
error_20220.png
Из справки:
error_20220v2.png
Встречались с таким? Как ее устранить?
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Автор темы
Gienon
здесь недавно
здесь недавно
Сообщения: 27
Зарегистрирован: 10 янв 2019, 17:13
Имя: Алексей
Благодарил (а): 19 раз
Поблагодарили: 4 раза

B&R ModbuRTU

Сообщение Gienon »

Данные по RS485 получаю! Что было сделано: с последней попытки опроса модуля контроллер простоял обесточенным сутки. Сегодня, ничего не меняя в настройках MBPoll-a и модуля, данные вытаскиваются (бывает проскакивает Timeout, но это уже, скорее всего, зависит от настройки программы опроса). Чудеса какие-то.....
ПыСы. keysansa, огромное спасибо за помощь!
Аватара пользователя

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

B&R ModbuRTU

Сообщение keysansa »

Gienon писал(а): 13 фев 2024, 13:15 Встречались с таким? Как ее устранить?
Надо проверить скорости обмена, паузы между запросом/ответом. Ну, и как я говорил, циклу с MBSlave - поставить минимальный тайминг.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
Ответить

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