Pull to refresh

Comments 63

Сейчас озабочен вопросом снятия данных по Modbus TCP с контроллера и сохранением их в базу. Данные счетчиков продукции надо сохранять в базу для последующего использования в ERP системе. Попробовал использовать Advanced TCP/IP Data Logger. Имеет гибкие настройки, Modbus поддерживается плагином. В триальной версии все вроде бы работает, но запросов можно сделать только 100. Собираюсь купить и проверить в боевых условиях.
Если я правильно понял вашу задачу, тогда по-моему проще своими силами решить ее на том же C#. К тому же, если в последствии вам понадобиться расширить функционал, то свой софт вы просто допишите.
Для решения подобной задачи на С++/boost у меня ушло две недели. Есть готовое решение но оно имеет реализацию другоо протокола, прикрутить туда модбас будет очень просто, могу расшарить на github если кому интересно.
Я, конечно, изобретать свое не буду, потому что, как всегда, все должно уже работать вчера, но с удовольствием посмотрел бы на ваш проект. По поводу FreeScada, не хотелось бы тянуть скаду или ОРС сервер ради того чтобы вытянуть три счетчика в базу. Хочется чего-либо попроще.
Да, совсем забыл FreeSCADA имеет поддержку мобас, и сохраняет данные в SQLITE базу.
Кстати, та же MasterSCADA, отмеченная в статье, поддерживает Modbus TCP. Если что-то по быстрому нужно, то на ней можно реализовать. Но нужно помнить, что бесплатно предоставляется только 32 тега.
Купил, запустил. Все работает нормально. Данные с контроллера собирает и пишет в базу. Получил работающее решение в течение 3 дней, 2 из которых потратил на покупку. Для тех, кто не хочет заморачиваться с реализацией собственного решения — отличный вариант. Хотя, если есть время, то реализовать собственное решение не составит большого труда, протокол не сложный.
Писать свое не имея опыта разработки на C# в кратчайшие сроки — рисковое дело. А рисковать на производстве очень не хочется.
Совсем не имея опыта программирования в C# (только с++ на непонятно каком уровне :( ), написание конвертера modbus — dde заняло очень мало времени. Приложение консольное, легко переделывается в службу.
Если ПО занимается сбросом данных куда-либо для последующего анализа, то да, можно и самому писать. Если же участвует в управлении тех. процессом, а опыта разработки мало, то лучше десять раз подумать, прежде чем браться, наверное лучше попробовать найти уже готовое, работающее решение.
Управление — это совсем другая тема… А у меня было просто задача забрать данные из контроллера и отдать их в сеть… я и подсунул данные своей SCADA. Это оказалось самым простым способом… Собственно говоря, для работы с modbus есть очень приятная библиотека — nmodbus умеет очень много.
(оно называется Master или Client)… (они называются Slave или Server)
Нет ли тут ошибки?
Нету тут все верно — в контексте ModBus — Slave это тот кто предоставляет данные, то есть он же Server а slave он потому, что предоставляет данные только по запросу, а вот как и когда запрашивать как раз решает Master который фактически является клиентом тех данных которые предоставляет Slave/Server.
Спасибо за статью про АСУ ТП!
А тут закралась опечатка
>ведущего устройства в сети (оно называется Master или Client(!)) и от 1 до 247 ведомых (они называются Slave или Server(!))
Пожалуйста! ))
Опечатки здесь нет, пояснение дал A1ien чуть выше!
Он упомянут:
"… В таком случае вам пригодится сниффер для последовательного порта, желательно, с поддержкой протокола Modbus. В качестве примера можно привести Free Serial Analyzer, COM Port Toolkit… "
Из программ можно посоветовать QmodMaster. Бесплатна, кросплатформенна.
Так же здорово помогает ipython и modbus_tk.

Ещё pymodbus. Особенно удобно при необходимости реализации кастомного стека или эмуляции другого устройства при отладке.

Есть еще неплохой Modbus Tester от НПФ «АГРОСТРОЙ». Только RTU, однако автозапрос, удобный интерфейс, представление в различных типах данных итд. Freeware. С помощью этой программы имел первое знакомство с многими устройствами, которые потом успешно поддерживал в АСУТП. Взять утилиту можно здесь.
Вы ссылку не разместили!
Надысь ещё про такую штуку выяснили: http://www.ardsoft.ru/mEmulator.html — достаточно неплохо, бесплатное, умеет симулировать несколько слейвов на одном айпишнике, ещё заявлены ОРС и скрипты.
Описание из-под ссылки для ленивых
Эмулятор Modbus устройств предназначен для создания виртуальной сети Modbus RTU или Modbus TCP устройств.

Эмулятор полезен в первую очередь специалистам разрабатывающим программное обеспечение опроса Modbus устройств, системным интеграторам, студентам, для отладки Modbus клиентов, OPC/DDE серверов, тестирования оборудования, проверки SCADA проектов, создания стендов имитации технологического оборудования, систем обучения оперативного персонала, диагностики каналов связи и для многих других задач.

Эмулятор позволяет создавать виртуальные modbus сети без ограничения по количеству устройств и количеству параметров внутри одного устройства.

Встроенный скриптовый язык позволяет имитировать технологические процессы любой сложности.

Встроенный OPC клиент позволяет масштабировать данные с любого OPC сервера в Modbus пространство с последующей передачей по сети, что позволяет исключить настройку DCOM.

Ключевые особенности эмулятора:

— работа по протоколам Modbus RTU и Modbus TCP;

— встроенный скриптовый язык позволяющий имитировать любой алгоритм;

— встроенный OPC клиент для масштабирования OPC тегов в Modbus;

— масштабирование OPC тегов в Modbus позволяет исключить настройку DCOM;

— нет ограничений по конфигурированию;

— нет ограничений при подключениии к OPC серверам;

— бесплатен для коммерческого использования;

— работа во всех версиях ОС Microsoft Windows, начиная с Windows 2000;

— работа в ОС Microsoft Windows 7 Embedded

Версия: 2.32.53.929 от 24.03.2016

ОС Windows: 2000, XP, Vista, 7, 7 Embedded, 8.x, 10 Technical Preview.

Цена: бесплатно.
А порты снифать ещё можно с помощью PortMon https://technet.microsoft.com/ru-ru/sysinternals/portmon.aspx
Оно, правда, своеобразоное, работает через раз)
Не, PortMon работает великолепно! И помошник замечательный! Может вы его «не умеете готовить» ;-)? Его надо запускать ДО любых программ, которые общаются по ком.порту. Во всяком случае, пока не подводил.
Может, и не умею. Версия 3.02 иногда принципиально отказывается подключаться, в версии 3.03 вообще пропало меню Connect.
UFO just landed and posted this here
К сожалению, в современных реалиях на производстве (особенно на шахтах и рудниках) весь верхний уровень — это Windows. А наладку, тестирование и диагностику, зачастую, приходится вести именно «сверху», поэтому приходится использовать софт под эту платформу.
UFO just landed and posted this here
Ну, глючный софт бывает и открытым. WinServer или Embedded вполне стабильны. ОРС на линукс… ну, понятно. Я бы вообще ОРС выпилил бы из стека пром протоколов.
И самый важный момент: нет, практически, скада-систем под UNIX-подобные системы. В наше время тенденция меняется в сторону открытых технологий, но очень медленно. Спецов тоже нет.
Да и сбои чаще бывают не из-за винды, а из-за кривого софта скады итд.
UFO just landed and posted this here
А можно поподробнее про «Шкафы с Honeywell-ами»? Работаю с различным оборудованием от этого вендора более 20 лет и вроде не помню проблем именно с контроллерами.

Ну если не секрет конечно. Или в личку.
UFO just landed and posted this here
Насчёт цен это истинная правда, на каждую софтовую мелочь лицензию надо брать, но конкретно к железу первый раз слышу чтобы были такие претензии. Предыдущее поколение (TDC3000 / TPS) вообще неубиваемое.

А материть инженер должен не Хоневелл, а электриков/проектантов, это ж как возможно чтобы питание «упало»? Тут любая железка может помереть. Резервный ввод UPS + батарея часов на 6, не?
UFO just landed and posted this here

Посмотрите ещё на pymodbus, на мой взгляд для многих задач оно существенно удобнее использования libmodbus напрямую.

UFO just landed and posted this here
гитхаб — это какой-то кошмар, а не система управления версиями

Он никогда и не был VCS, равно как и sourceforge.


Выбор github/bitbucket/sf/whatever — на вкус и цвет — но sf с точки зрения пользователя, ИМХО, крайне неудобен. Не говоря уже про невозможность отправить pull request.

UFO just landed and posted this here
  1. git != github, также как svn != sourceforge/googlecode
  2. Публичный доступ может быть к любому репозиторию и cvs/svn/hg/git — роли не играет. Стоит также отметить, что на github'е полными правами на репозиторий обладает создатель, на чтение — все (если это не закрытый репозиторий; эта фича относится к платным), а другим он может давать доступ на запись по желанию. Или принимать патчи из pull request'ов, как обычно делают.
  3. Возможно, есть некоторое непонимание. В svn термин commit означает отправку патча в централизованное хранилище. В git/hg — в локальное. Поэтому коммит в dvcs не требует никаких дополнительных прав кроме прав доступа к локальной файловой системе. При этом опубликование изменений выполняется с помощью git push, который является объектом авторизации. И по умолчанию на сервисах типа github'а этот самый push в чужой репозиторий можно сделать только с разрешения владельца.

Если вы хотите закрытый код, то другой вопрос, смотрите ToS конкретного сервиса (того же sf) и, если разрешает, — в путь. Правда я не вижу никаких бонусов в закрытии кода утилит типа описанных выше.

UFO just landed and posted this here
Дополню авторский список:

1. MDBUS for Windows — умеет вообще всё и очень удобная в работе, единственный недостаток — цена в 180$, но если не нужна самая последняя версия и молчит совесть, то сборка 3.31 лежит в сети в некоторых местах.

2. PeakHMI — бесплатная, эмулирует все 247 slaves, лежит в разделе «Slave Simulators»

3. modpoll — классика, консольный вариант, странно что никто не упомянул. В отличии от многих других мастеров позволяет выбирать количество стоп битов. Уникальная фишка — поддержка encapsulated modbus, требуется при работе с терминальными серверами типа Digi или Systech. Есть бинарник под линукс.

Из преобразователей рекомендую Trendnet TU-S9, есть только RS-232, но и цена в районе 1200 рублей. Для Ethernet/RS-485 попробуйте Digi One SP, поддерживает в том числе UDP и Raw Sockets, цена вопроса около 13 тыс. рублей, но это самый лучший вариант по соотношению цена/качество. Пользуюсь обоими уже года два, замечаний нет.
Благодарю за дополнение!
Может, добавите в статью софт из комментариев?
Да, добавлю, сегодня-завтра!
У Modscan есть одна уникальная особенность для программ данного типа — это возможность создания форм (своего рода мнемосхем).

Да ладно??? Пожалуйста, ткните меня — где там такое есть??? Аж интересно стало.
Выбираем File->Custom Form->Create
image
Открывает «Дизайнер» форм. Здесь можно разместить простой текст, bargraph, trend, данные из Modbus регистров и т.д.
image
Список возможных элементов конечно очень скудный, с нормальной SCADA не сравнить, но поиграть можно. Лично мое мнение, для нормальной работы пока не годится.
Мда, век живи, век учись, все равно дураком помрешь… Спасибо за наводку, сколько лет пользовались этой софтиной а слона так и не приметили. :)
Вы серьезно? Это статья для хабра? Я когда увидела название надеялась на какое-то откровение, интересное решение по отладке modbus. А в итоге статья о том, что есть переходники из 485 и терминалки. Слабовато.
Я когда увидела название надеялась на какое-то откровение, интересное решение по отладке modbus.

Наверное просто ваш уровень уже настолько высок, что материал статьи для вас просто не интересен и скучен. Те, у кого таких знаний не достаточно, смогут найти, что-то полезное для себя. Modbus довольно прост и узкоспециализирован, и я пока не вижу темы, которая содержала бы «откровения», кроме как вопросы непосредственной реализации протокола своими силами. Но это уже за рамками тематики статьи.
А в итоге статья о том, что есть переходники из 485 и терминалки.

Ммм… название «Программное обеспечение для тестирования и наладки устройств и сетей на базе MODBUS» и предполагает обзор «терминалок» и прочего ПО предназначенного работы с Modbus, с остановкой на определенных моментах, которые важны в при решении конкретных задач. Не вижу противоречия.

Вы мне очень помогли своей статьей.

Из конвертеров usb-rs485 могу посоветовать delta ifd6500, цена ~$65. Нормально работает и на винде, и на linux'е (на винде требует установки дров, ессно).

Попытка хорошая, но статья получилась больше для начинающих.
Можно было пошарить на форумах асушников (которых более-менее живых штуки три на русском), там темы на подобные вопросы возникают периодически и достаточно подробно обсуждаются.
asutpforum.ru, например, довольно сильный в этом плане.

Добавлю, что Modbus бегает не только на RS 485, но и на 422 и 232.
Спасибо, внесу в статью.

Так ведь это надо шарить, отделять зерна от плевел так сказать. А на это зачастую нет ни времени ни квалификации.

ссылка на Temite нерабочая. исправьте на s2-team.ru
Sign up to leave a comment.

Articles