УкраїнськаEnglishmRussian
Вход/Новый
В теме нет новых постов

Moxa Mgate и Openscada не дружат.


Автор Сообщение
Сообщение создано: 26. 04. 2013 [14:31]
irplanet
Евгений Калмыков
Создатель темы
Зарегистрирован(а) с: 26.04.2013
Сообщения: 16
Доброго времени суток. Разворачиваем в компании проект на OpenScada. Существует проблемма не решенная на сегодняшний день.

Контролллеры на объектах занимаются посылкой данных на OpenScad-у, т.е. OpenScada у нас Modbus TCP Server (клиентом она тоже является, но проблемма именно в Modbus-серверной части). Цепочка передачи:

Контроллер (Modbus RTU) ---> Moxa MGate MB3170 (Modbus TCP) ---> OpenScada

OpenScada не то что бы совсем не принимает данные, ОНА НЕ КОРРЕКТНО ОТПРАВЛЯЕТ ОТВЕТЫ конвертеру (RTU/TCP), по крайней мере получается, что так считает сам конвертер. Т.е. фактически данные в OpenScad-у записываются и значения постоянно обновляются, только вот конвертеру приходит в ответ что то не то, он в свою очередь не передает в RTU контроллеру, что мол типо сообщение не отправлено. Контроллер считает, что пересылки данных не произошло и инициализирует повторную передачу, и история повторяется. :bang:
Пробовали читать регистры таким же путем из OpenScad-ы, не получается.
Поставили Modbus Server на машине под WinXP, и рассылку с контроллеров заворачивали на неё. Такая связка работает.
Прошлись по этим разным машинам WireShark-ом чтобы проанализировать трафик. Смотрим картинки прикрепленные.

На скринах видно, что пересылка пакетов отличается., а именно на Виндовой машине сразу после отправки TCP пакета контроллером (10.50.1.58) Modbus Server (10.50.1.51) пересылает сразу в ответ сообщение контроллеру. А вот когда Openscada общается с контроллером, она отправляет перед пакетом с данными какой-то технический ??? пакет. Не совсем понятно откуда ноги растут.

И вот еще для примера скрин с пакетами, когда Modbus Pool-ом (из 10.50.1.51) пробую записать регистры в OpenScad-у (10.50.1.54). В результате данные записываются, но вот сам Modbus Pool через раз говорит, что "ошибка записи", но всетаки хоть как то пишет.

Вот такая хрень товарищи. Есть мысли какие-нибудь, знатоки-гуру?

Вложенный файл

Moxa-to-ModbusServer.JPG (Тип файла: image/jpeg, Размер: 563.12 килобайт) — 2226 загрузок
Moxa-to-OSCADA.jpeg (Тип файла: image/jpeg, Размер: 465.9 килобайт) — 2170 загрузок
modpool-to-OSCADA.jpeg (Тип файла: image/jpeg, Размер: 412.01 килобайт) — 2182 загрузок
Сообщение создано: 26. 04. 2013 [15:49]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3742
"irplanet" wrote:

Контролллеры на объектах занимаются посылкой данных на OpenScad-у, т.е. OpenScada у нас Modbus TCP Server (клиентом она тоже является, но проблемма именно в Modbus-серверной части). Цепочка передачи:

Контроллер (Modbus RTU) ---> Moxa MGate MB3170 (Modbus TCP) ---> OpenScada

OpenScada не то что бы совсем не принимает данные, ОНА НЕ КОРРЕКТНО ОТПРАВЛЯЕТ ОТВЕТЫ конвертеру (RTU/TCP), по крайней мере получается, что так считает сам конвертер.

Давайте начнём немного с сомнений, а именно:
- Осмысливаем факт того, что в приложениях ModBus/RTU/ASCII/TCP OpenSCADA давно и беспроблемно работает во множестве случаев.
- Если у Вас есть сомнения то открываем исходники и убеждаемся, что там всё нормально.
- OpenSCADA можно завязать на опрос через ModBus на саму себя, что кстати показывает, что там нет никаких проблем с этим. Эту возможность DemoDB можете использовать у себя для проверки!

Что касается MGate то у меня есть подозрение, что он работает через специальный драйвер на Linux, где возможны проблемы.
Возможна также некорректная конфигурация узла или транспорта, например, у узла стоит отвечать RTU или TCP фиксировано.

"irplanet" wrote:

На скринах видно, что пересылка пакетов отличается., а именно на Виндовой машине сразу после отправки TCP пакета контроллером (10.50.1.58) Modbus Server (10.50.1.51) пересылает сразу в ответ сообщение контроллеру. А вот когда Openscada общается с контроллером, она отправляет перед пакетом с данными какой-то технический ??? пакет. Не совсем понятно откуда ноги растут.

OpenSCADA ничего специфичного не отправляет, см в исходники!

Learn, learn and learn better than work, work and work.



0901