Яндекс.Метрика

    Ни о чём

    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 технология как решения себя не оправдывает.

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