• обязательно заполнить свой профиль на русском языке кириллицей
  • не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему
  • дублирование сообщений приравнивается к спаму
  • за поиск и предложение пиратского ПО - бан без предупреждения
  • рекламу и частные объявления мы не размещаем ни на каких условиях

Modicon Premium обмен по Modbus

Ответить

Автор темы
Ivan_P
здесь недавно
здесь недавно
Сообщения: 7
Зарегистрирован: 06 май 2015, 08:43
Имя: Ivan Pavluchenko

Modicon Premium обмен по Modbus

Сообщение Ivan_P » 29 апр 2019, 14:52

Здравствуйте, уважаемые коллеги!
Возникла проблемка при дописания программы для обмена данными по Modbus TCP c Premium и Zelio Logic. У Zelio стоит модуль SR3NET01. Все устройства находятся в одной сети, команда ping проходит от Premium до Zelio.
Прописал так:

IF NOT Zelio_para[0].0 THEN
(*Чтение данных*)
READ_VAR(ADDR('{192.168.124.245}1'),'%MW',20,1,Zelio_para,Zelio_data);
END_IF;

Данные не передаются, Zelio_para[0] всегда равен 3, хотя в норме должен быть 0...
Пробовал на M340 и данные получаются, но там другая функция для адреса используется:

IF NOT Zelio_para[0].0 THEN
(*Чтение данных*)
READ_VAR(ADDM('{192.168.124.245}1'),'%MW',20,1,Zelio_para,Zelio_data);
END_IF;

Подскажите, может я не так что-то пишу в ADDR? Или можно как-то посчитать адрес по другому?
Версия Unity Pro 4L, контроллеру лет 10 точно TSXP573634M. В библиотеках нет ADDM, Обновлять библиотеки не хочу, так как был уже печальный опыт... при переработке программы из Unity Pro 4L в Unity Pro 8XL перестал работать Modbus TCP.


ogorsv
здесь недавно
здесь недавно
Сообщения: 48
Зарегистрирован: 02 дек 2015, 06:57
Имя: Огородников Сергей
Благодарил (а): 4 раза
Поблагодарили: 11 раз

Modicon Premium обмен по Modbus

Сообщение ogorsv » 29 апр 2019, 17:14

Добрый день!

Давайте с самого начала всё уточним.

1. Zelio-программа написана на языке FBD
2. Посмотрим случай с М340
Zelio_para - должен быть массив из 4 слов (INT)
Уж скорее Zelio_para[1] равен 3 и это "16#03 Incorrect address format"
3. Ваш пример с М340:ADDM('{192.168.124.245}1' - это действительно неполный формат адреса для случая, когда устройство с Modbus-адресом 1 подключено к Ethernet-шлюзу, чей адрес 192.168.124.245. Конечно, это неверный вариант.
Как можно было бы написать: ADDM('Ethernet_1{192.168.124.245}'), где
Ethernet_1 - имя Ethernet-Network того порта, через который подключаетесь к Zelio

4. Посмотрим случай с Premium. Для модели TSXP573634M можно использовать IO SCANNING, думаю, это самый простой вариант,включив в опции Network для встроенного порта.

5. Если же хотите непременно Read Var по Modbus TCP - то
для Premium Read Var по Modbus TCP хитро конфигурируется

5.1. Выберите вкладку "messaging" в Network, через который читаете Zelio, и задайте "XWAY profile" (установите "галку", если не было). Введите адреса сети и станции: например, Network=2, Station=1
Это для Premium
5.2. Создайте связь между XWAY-адресом и IP-адресом в области "Сonnection configuration". XWAY-адрес состоит из адреса сети (0..127) и адреса станции (100..163 для Modbus TCP сообщений).
Для нашего случая XWAY-адрес Premium будет 2.101 и IP-адрес, скажем, 192.168.124.1 (не был указан в вопросе)
5.3. Добавьте строчку для Zelio. Для нашего случая XWAY-адрес Zelio будет 2.102 и IP-адрес 192.168.124.245
5.4. Подтвердите сделанные изменения и закройте окно настройки Ethernet.

6. Для функции ADDR попробуйте следующий адрес: ADDR('{2.102}SYS')

Успехов!

Отправлено спустя 4 минуты 41 секунду:
PS. На рисунке ошибся для Zelio. Должно было быть : XWAY 2.102, IP address 192.168.124.245
XWAY_correct.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.
С уважением,
Огородников Сергей
Центр обучения Schneider Electric


Автор темы
Ivan_P
здесь недавно
здесь недавно
Сообщения: 7
Зарегистрирован: 06 май 2015, 08:43
Имя: Ivan Pavluchenko

Modicon Premium обмен по Modbus

Сообщение Ivan_P » 27 май 2019, 13:40

ogorsv, спасибо! Всё получилось!
Сделал чтение через read var.
Получилась прога такого вида:

(*Получение аналоговых данных от Zelio_26.04.19*)

IF NOT Zelio_para[0].0 THEN

(*Чтение данных*)
READ_VAR(ADDR('{1.105}sys'),'%MW',20,4,Zelio_para,Zelio_data);
END_IF;

(*Если Zelio_para[1] больше нуля, значит нет связи*)

Оказывается тут уже было реализована связь с другими устройствами через Messaging, я просто добавил новую строчку, но фишка в том, что bild changes online не получится. приходиться по-новой перезаливать всю прогу.
Messaging.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.


ogorsv
здесь недавно
здесь недавно
Сообщения: 48
Зарегистрирован: 02 дек 2015, 06:57
Имя: Огородников Сергей
Благодарил (а): 4 раза
Поблагодарили: 11 раз

Modicon Premium обмен по Modbus

Сообщение ogorsv » 27 май 2019, 23:30

Добрый день!

Конфигурационные изменения в режиме онлайн редко получаются, никуда не деться)

Успехов!
С уважением,
Огородников Сергей
Центр обучения Schneider Electric

Ответить

Вернуться в «ПЛК»