1-wire на предприятии, программный уровень

    Первая статья этого цикла тут
    Вторая часть этого цикла тут
    Третья часть этого цикла тут

    Итак, продолжение темы про 1-wire, в предыдущих заметках, я рассказал об общих сведениях что такое 1-wire и с чем его едят, и также как мы строили большую сеть (кабельную структуру и общую идею). В этой статье, я попытаюсь рассказать о том из каких программ всё это состоит.



    Серверная часть


    У нас есть три сервера в трёх разных зданиях, к которым через RS-232 порт подключены адаптер и сеть 1-wire. На серверах крутится программа, которая через адаптер отдает команду на переключение веток микросхемам DS2409, опрашивает все найденные датчики в этой ветке, затем переключается на следующую ветку, и так по кругу.

    Изначально задумывалось выдавать данные о всех датчиках по интерфейсу OPC т.к. он де факто является промышленным стандартом и выведя данные на этот уровень мы получим простые и широкие возможности для интеграции практически с любыми SCADA. Изначально мы искали готовое решение OPC сервера для 1-wire, эти поиски принесли поистине печальные результаты… Несмотря на достаточную распространённость 1-wire, найти подходящий OPC не удалось, да и вообще практически не удалось найти готового.

    Зато нашли достаточно интересную штуку: Fastwel UniOPC. Под неё написали свою библиотеку, которая и реализует то что необходимо: сбор данных с датчиков по кругу и выдачу их через OPC, а также после каждого круга сохраняет текущие данные в таблицу на SQL-сервере.

    Лирическое отступление:
    Кстати, этот проект Fastwel'а, как мне кажется, давно заброшен и не сильно обновляется: поддерживает только OPC-DA, а весьма хотелось бы в нем видеть OPC-XML-DA, всё-таки время движется, технологии идут вперёд, а так — штука весьма простая и полезная.


    Раз уж мы рассказываем про программную часть, то сервера все у нас на базе Windows Server (версии кое-где отличаются), а базы данных соответственно MSSQL.

    image

    На картинке изображено, то что мы имеем: три сервера, отдают по OPC каждый свои датчики, а также складывают в SQL базу раз в какое-то время (примерно 3 минуты) текущие значения, для дальнейшего анализа истории.

    Как видно из рисунка, есть два типа клиентов этой системы:
    • 1. операторы — которые видят текущие значения и аварии при выходе параметров за какие-то границы.
    • 2. ответственные люди — которые хотят анализировать историю за разные промежутки времени и, например, сравнивать поведение разных объектов между собой.


    Операторская часть


    На рабочем месте оператора стоит обычный PC под управлением winXP на котором работает SCADA. Одним из первоначальных вариантов было использовать для операторского места панельный компьютер, но это показалось дороговато, да и особо бессмысленно, решили ограничится обычным PC.

    Дальше был долгий выбор какую же SCADA использовать. Мы перепробовали демо версии с десятка различных SCADA систем (и наши и не наши тут были и MasterSCADA и Genesis и мнного много различных...). В итоге остановились на LabView. (Для тех кто не знаком, поясню: LabView одна из древнейших разработок SCADA, до сих пор поддерживается и обновляется, умеет очень много чего, очень гибкая)
    Нарисовали проект, получилось вот что: пример экрана оператора .

    Собственно в реальном времени оператор видит текущие температуры, аварии отображаются красным, мигают, и очень противно чирикают в звуковуху.

    Ответственные люди


    Для этой группы пользователей было принято решение написать специальное приложение, которое может делать запрос к базе MSSQL и выбирать данный по объектам за заданный промежуток времени, сравнивать их с другим растягивать, масштабировать и всяко-разно анализировать.

    Приложение написано на VS2005 и использует весьма популярный компонент ZedGraph.

    image
    На этой картинке вы можете видеть один конкретный холодильник, для него два графика, т.к. контролируются два параметра, температура в морозильной камере и в самом холодильнике.

    Заключение


    В заключение, хочу сказать, что это не окончательный результат, а то что существует и работает на сегодняшний день. В дальнейших планах, мы думаем отказаться от SCADA и OPC потому, что эти технологии используют DCOM, и очень не дружелюбно настраиваются. Думаем перейти на Web-приложения, или просто создать свое приложение, которое будет работать непосредственно с базой. SCADA и OPC технология как решения себя не оправдывает.

    Если будут возникать вопросы, то — добро пожаловать )

    Средняя зарплата в IT

    110 000 ₽/мес.
    Средняя зарплата по всем IT-специализациям на основании 8 431 анкеты, за 2-ое пол. 2020 года Узнать свою зарплату
    Реклама
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее

    Комментарии 7

      +1
      Хороший цикл статей, некоторые вещи стали понятнее.

      Я 1-wire дома использую, контроллер самодельный спаял в корпусе RS-232 разьема, датчики те же DS18B20.
      Дома мониторится температура на машинке с Linux утилитой digitemp, графики рисует munin. При достижении пороговых температур шлет email и sms.



      Если бы делал то что сделали вы то наверное использовал бы Zabbix и несколько контроллеров подключенные через промышленные терминальные сервера (rs232 to lan) на каждом этаже.

      Хотел еще сделать мониторинг влажности, но никак немогу найти датчик HIH-4000. На ebay только у одного продавца есть они, но от него посылка дважды не дошла. Расскажите пожалуйста чем Вы данные о влажности снимаете.
        –1
        Для самоделкиных поделюсь ссылочкой www.benuks.ru/oborud.html. там довольно много схем и фотографий разных датчиков и исполнительных устройств. И еще одной www.ab-log.ru/smart-house/1-wire тоже очень много полезной информации, схем и кода.
          0
          мне кажется терминальные сервера это будет дорого, мы на этажах ставим всего одну микросхему-разветвитель.

          а по влажности: на сегодняшний день мы используем гигрохроны, таблетки такие, я про них писал, например DS1923, но это не совсем удобно. очень жаль, что у максима почему-то не существует в линейке простых датчиков влажности.

          как вариант на сегодняшний день мы рассматриваем идею использовать любой датчик влажности, ставить к нему обвязку с контролерром (например там ATtiny15) и чтобы контроллер по 1-wire отдавал показания влажности, это позволит включать такие штуки в уже существующую сетевую инфраструктуру.
            0
            а чем гигрохроны не удобны? нет реалтайм мониторинга влажности?

            Поискал по московским магазинам электронных компонентов, у многих оказалось есть датчик HIH-4000, к нему делается обвязка на DS2438Z. Если нужно схемой могу поделиться.
              0
              да, проблема как раз в том, что нет круглосуточного мониторинга.
              с удовольствием посмотрю на схему, шлите в личку…
          0
          У меня тоже дома используются DS18b20
          для мониторинга температуры, а так как один датчик висит снаружи — так еще видно и внешнюю температуру (и не надо гисметео).
          так же температура скидывается на север и ее можно увидеть в инете,
          тут fox.grodno.net/?page=term
            0
            Я уже года 3 как хобби пользуюсь шиной 1wire. Первую шину посртоил дома как полигон испытаний, видео вот http://8wires.com.ua/automation/. Второй рабочий и полезный полигон стал офис с большим кол-вом устройств, длинной шины и критическими данными в ближайшее время статью опубликаю у себя на сайте, сейчас делюсь данными с ВЕБ сервера логин и пароль 8wires.com.ua ПО для шины Benuks. показало себя стабильно в работе. К системе добавляю пульты ДУ, выведение инфы на монитор в виде фото рамок, платы видео наблюдения ILDVR и другое. Всё шустро работает при правильном проектировании! С удовольствием объеденюсь с людьми которые увлекаются автоматизацией на базе ПК и шиной 1wire для сотрудничества с целью дальнейшего построения объектов автоматизации в городе Харькове.

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

            Самое читаемое