- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Modicon Premium обмен по Modbus
Модератор: Специалисты SE
-
- здесь недавно
- Сообщения: 18
- Зарегистрирован: 06 май 2015, 08:43
- Имя: Ivan Pavluchenko
Modicon Premium обмен по Modbus
Здравствуйте, уважаемые коллеги!
Возникла проблемка при дописания программы для обмена данными по 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.
Возникла проблемка при дописания программы для обмена данными по 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.
-
- завсегдатай
- Сообщения: 577
- Зарегистрирован: 02 дек 2015, 06:57
- Имя: Огородников Сергей
- Страна: РФ
- Благодарил (а): 120 раз
- Поблагодарили: 103 раза
Modicon Premium обмен по Modbus
Добрый день!
Давайте с самого начала всё уточним.
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
Давайте с самого начала всё уточним.
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
У вас нет необходимых прав для просмотра вложений в этом сообщении.
СВ
-
- здесь недавно
- Сообщения: 18
- Зарегистрирован: 06 май 2015, 08:43
- Имя: Ivan Pavluchenko
Modicon Premium обмен по Modbus
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 не получится. приходиться по-новой перезаливать всю прогу.
Сделал чтение через 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 не получится. приходиться по-новой перезаливать всю прогу.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- завсегдатай
- Сообщения: 577
- Зарегистрирован: 02 дек 2015, 06:57
- Имя: Огородников Сергей
- Страна: РФ
- Благодарил (а): 120 раз
- Поблагодарили: 103 раза
Modicon Premium обмен по Modbus
Добрый день!
Конфигурационные изменения в режиме онлайн редко получаются, никуда не деться)
Успехов!
Конфигурационные изменения в режиме онлайн редко получаются, никуда не деться)
Успехов!
СВ
-
- здесь недавно
- Сообщения: 18
- Зарегистрирован: 06 май 2015, 08:43
- Имя: Ivan Pavluchenko
Modicon Premium обмен по Modbus
Здравствуйте!
Возникла проблема с алгоритмом обработки обмена. Перестали идти данные, в репорте Zelio_para[1] (GEST) значение "11", по таблице значений ошибок это Request Missing. Что это может быть?
Возникла проблема с алгоритмом обработки обмена. Перестали идти данные, в репорте Zelio_para[1] (GEST) значение "11", по таблице значений ошибок это Request Missing. Что это может быть?
-
- завсегдатай
- Сообщения: 577
- Зарегистрирован: 02 дек 2015, 06:57
- Имя: Огородников Сергей
- Страна: РФ
- Благодарил (а): 120 раз
- Поблагодарили: 103 раза
Modicon Premium обмен по Modbus
Добрый день!
Я, наверно, переформулировал бы вопрос:
1. Ни с того, ни с сего (или после изменения ...)
2. Перестала корректно выполняться функция ...
3. Во втором слове Zelio_para[1] отображается значение ...
Приведите, пожалуйста, полностью значение Zelio_para[1] в шестнадцатеричном коде (правая кнопка - Display format - Hex)
Т.к. слово содержит два кода ошибки: Communication и Operation report
4. Сколько функций READ_VAR/WRITE_VAR используется в программе? Добавляли IOScanning? Что меняли в сетевом обмене?
Я, наверно, переформулировал бы вопрос:
1. Ни с того, ни с сего (или после изменения ...)
2. Перестала корректно выполняться функция ...
3. Во втором слове Zelio_para[1] отображается значение ...
- тут иногда бывает путаница из-за использования шестнадцатеричного кода
Приведите, пожалуйста, полностью значение Zelio_para[1] в шестнадцатеричном коде (правая кнопка - Display format - Hex)
Т.к. слово содержит два кода ошибки: Communication и Operation report
4. Сколько функций READ_VAR/WRITE_VAR используется в программе? Добавляли IOScanning? Что меняли в сетевом обмене?
СВ
-
- здесь недавно
- Сообщения: 18
- Зарегистрирован: 06 май 2015, 08:43
- Имя: Ivan Pavluchenko
Modicon Premium обмен по Modbus
1. Ни с того ни с сего... работало и "вдруг" перестало.
2. Был простой обмен по модбасу.
3. Значение Zelio_para[1] в шестнадцатеричном 16#000B по коду это получается "no processor system resources"... нет системных ресурсов процессора? А раньше почему было?
4. IOScanning выключен. Для данного устройства используется 1 функция read_var на чтение 4 переменных см. выше.
А всего в программе используется ещё 2 функции read_var и 3 - write_var.
Отправлено спустя 8 минут 25 секунд:
Кстати сейчас заметил, что 3 функции write_var можно удалить, т.к. устройства куда выводилась информация сняты. В этом же не может быть проблема, что write_var записывается вникуда?
Другая функция read_var работает же... а с зелио не читается.
2. Был простой обмен по модбасу.
3. Значение Zelio_para[1] в шестнадцатеричном 16#000B по коду это получается "no processor system resources"... нет системных ресурсов процессора? А раньше почему было?
4. IOScanning выключен. Для данного устройства используется 1 функция read_var на чтение 4 переменных см. выше.
А всего в программе используется ещё 2 функции read_var и 3 - write_var.
Отправлено спустя 8 минут 25 секунд:
Кстати сейчас заметил, что 3 функции write_var можно удалить, т.к. устройства куда выводилась информация сняты. В этом же не может быть проблема, что write_var записывается вникуда?
Другая функция read_var работает же... а с зелио не читается.
-
- здесь недавно
- Сообщения: 18
- Зарегистрирован: 06 май 2015, 08:43
- Имя: Ivan Pavluchenko
-
- завсегдатай
- Сообщения: 577
- Зарегистрирован: 02 дек 2015, 06:57
- Имя: Огородников Сергей
- Страна: РФ
- Благодарил (а): 120 раз
- Поблагодарили: 103 раза
Modicon Premium обмен по Modbus
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?Был простой обмен по модбасу
СВ
-
- здесь недавно
- Сообщения: 18
- Зарегистрирован: 06 май 2015, 08:43
- Имя: Ivan Pavluchenko
Modicon Premium обмен по Modbus
По modbus TCP.
От премиума зелио пингуется.
Поеду сегодня на объект и попробую разные варианты по месту, в том числе и проверю физику.
Спасибо!