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

Modicon Premium обмен по Modbus

Unity Pro (Control Expert), Quantum, Premium, M340, M580, Hybrid DCS, Process Expert, Zelio, Twido, M17*, M2**, SCADAPACK, SoMachine, MachineExpert, ZelioSoft, TwidoSoft, TwidoSuite, TelePace

Модератор: Специалисты SE

Ответить

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

Modicon Premium обмен по Modbus

Сообщение Ivan_P »

Здравствуйте, уважаемые коллеги!
Возникла проблемка при дописания программы для обмена данными по 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
завсегдатай
завсегдатай
Сообщения: 576
Зарегистрирован: 02 дек 2015, 06:57
Имя: Огородников Сергей
Страна: РФ
Благодарил (а): 120 раз
Поблагодарили: 103 раза

Modicon Premium обмен по Modbus

Сообщение ogorsv »

Добрый день!

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

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
У вас нет необходимых прав для просмотра вложений в этом сообщении.
СВ

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

Modicon Premium обмен по Modbus

Сообщение Ivan_P »

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
завсегдатай
завсегдатай
Сообщения: 576
Зарегистрирован: 02 дек 2015, 06:57
Имя: Огородников Сергей
Страна: РФ
Благодарил (а): 120 раз
Поблагодарили: 103 раза

Modicon Premium обмен по Modbus

Сообщение ogorsv »

Добрый день!

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

Успехов!
СВ

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

Modicon Premium обмен по Modbus

Сообщение Ivan_P »

Здравствуйте!

Возникла проблема с алгоритмом обработки обмена. Перестали идти данные, в репорте Zelio_para[1] (GEST) значение "11", по таблице значений ошибок это Request Missing. Что это может быть?

ogorsv
завсегдатай
завсегдатай
Сообщения: 576
Зарегистрирован: 02 дек 2015, 06:57
Имя: Огородников Сергей
Страна: РФ
Благодарил (а): 120 раз
Поблагодарили: 103 раза

Modicon Premium обмен по Modbus

Сообщение ogorsv »

Добрый день!

Я, наверно, переформулировал бы вопрос:

1. Ни с того, ни с сего (или после изменения ...)
2. Перестала корректно выполняться функция ...
3. Во втором слове Zelio_para[1] отображается значение ...
Ivan_P писал(а): 17 фев 2020, 09:52 Zelio_para[1] (GEST) значение "11"
- тут иногда бывает путаница из-за использования шестнадцатеричного кода
Приведите, пожалуйста, полностью значение Zelio_para[1] в шестнадцатеричном коде (правая кнопка - Display format - Hex)
Т.к. слово содержит два кода ошибки: Communication и Operation report

4. Сколько функций READ_VAR/WRITE_VAR используется в программе? Добавляли IOScanning? Что меняли в сетевом обмене?
СВ

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

Modicon Premium обмен по Modbus

Сообщение Ivan_P »

1. Ни с того ни с сего... работало и "вдруг" перестало.
2. Был простой обмен по модбасу.
3. Значение Zelio_para[1] в шестнадцатеричном 16#000B по коду это получается "no processor system resources"... нет системных ресурсов процессора? А раньше почему было? :crazy0to:
4. IOScanning выключен. Для данного устройства используется 1 функция read_var на чтение 4 переменных см. выше.
А всего в программе используется ещё 2 функции read_var и 3 - write_var.

Отправлено спустя 8 минут 25 секунд:
Кстати сейчас заметил, что 3 функции write_var можно удалить, т.к. устройства куда выводилась информация сняты. В этом же не может быть проблема, что write_var записывается вникуда?
Другая функция read_var работает же... а с зелио не читается.

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

Modicon Premium обмен по Modbus

Сообщение Ivan_P »

ogorsv,
Описался выше

ogorsv
завсегдатай
завсегдатай
Сообщения: 576
Зарегистрирован: 02 дек 2015, 06:57
Имя: Огородников Сергей
Страна: РФ
Благодарил (а): 120 раз
Поблагодарили: 103 раза

Modicon Premium обмен по Modbus

Сообщение ogorsv »

Ivan_P писал(а): 19 фев 2020, 07:46 в шестнадцатеричном 16#000B по коду это получается
No system resources: the number of simultaneous communication EFs exceeds the maximum that can be managed by the processor
Количество соединений больше допустимого

Я бы убрал (или закомментировал) неиспользуемые вызовы Write_var
Как вы вызываете остальные функцональные блоки?

Для проверки проблем с коммуникационным буфером попробовал бы читать Zelio по одиночной команде, если обмен идёт - попробовать раз в секунду (в три, в пять...), тем более, что аналоговые сигналы как правило не требуют сверхбыстрого обновления
Не получится (при наличии ping с Zelio) - убрать весь обмен, оставив только обмен с Zelio
Убедитесь,что с Zelio никаких изменений не происходило (аппаратных и программных)

Как пойдёт обмен - добавляйте убранные функции, локализуйте место ошибки

Надеюсь, "физику" проверяли при получении ошибок? Иногда самообжатые кабели через какое-то время (вибрация, влажность, тепло и т.д.) дают ошибки. Коммуникационное оборудование, наличие источников помех вдоль кабеля и пр....
Был простой обмен по модбасу
По modbus или таки по Modbus TCP?
СВ

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

Modicon Premium обмен по Modbus

Сообщение Ivan_P »

Ivan_P писал(а): 29 апр 2019, 14:52 По modbus или таки по Modbus TCP?
По modbus TCP.

От премиума зелио пингуется.
Поеду сегодня на объект и попробую разные варианты по месту, в том числе и проверю физику.
Спасибо!
Ответить

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