Модуль: | Siemens |
Имя: | Siemens DAQ |
Тип: | DAQ |
Источник: | daq_Siemens.so |
Версия: | 1.5.0 |
Автор: | Роман Савоченко |
Описание: | Предоставляет источник данных ПЛК Siemens посредством карт Hilscher CIF, с использованием протокола MPI, и библиотеки Libnodave для остального. |
Лицензия: | GPL |
Первоочередной целью создания модуля является обеспечение поддержки промышленных контроллеров фирмы Siemens серии S7 (S7-300, S7-400). Исторически сложилось, что доступ к контроллерам указанной фирмы в сети Profibus производился только посредством собственных коммуникационных процессоров (CP5412, CP5613 и т.д.) и собственного протокола S7. Указанные коммуникационные процессоры и API к протоколу S7 достаточно дорогостоящие, кроме того драйвера к коммуникационным процессорам и S7 API закрыты, а также доступны только для платформы Intel+Windows (встречалась информация о возможности купить для Linux).
В качестве альтернативы коммуникационным процессорам от фирмы Siemens, которая позволяет полноценно работать с контроллерами фирмы Siemens, является спектр коммуникационных продуктов фирмы Hilscher (http://hilscher.com) в лице коммуникационных процессоров CIF серии PB(Profibus) и библиотека Libnodave( http://libnodave.sourceforge.net ).
Особенностью продуктов Hilscher является полностью открытая спецификация протокола обмена с коммуникационным процессором, унифицированный драйвер для всех плат CIF, наличие драйвера для многих распространённых операционных систем(ОС) и открытость драйвера для ОС Linux (GPL).
В основу данного модуля положен драйвер версии 2.621 фирмы Hilsher, любезно предоставленный фирмой Hilsher в лице Devid Tsaava для ядер серии 2.6 ОС Linux. Все необходимые для сборки файлы включены в модуль и не требуется удовлетворения специальных зависимостей. Драйвер версии 2.621 для плат CIF можно загрузить здесь.
Спектр плат фирмы Hilsher семейства CIF и унифицированный драйвер поддерживают широчайший спектр оборудования. Заложить поддержку всех этих возможностей в данном модуле, не имея всего этого оборудования на руках, не представляется возможным. Поэтому поддержка того или иного оборудования будет добавляться по мере надобности и наличия оборудования. По состоянию на версию 1.1.0 модулем предоставляется поддержка источников данных на сети Profibus или MPI посредством протокола MPI на скоростях сети от 9600Бод до 12МБод. В частности поддерживаются и выполнена проверка на контроллерах фирмы Siemens семейства S7 (S7-300, S7-400).
Библиотека Libnodave является реализацией путём реверсинжениринга протоколов MPI, S7, ISO-TSAP и других, которые используются при взаимодействии с контроллерами фирмы Siemens. Библиотекой поддерживаются многие MPI и USB адаптеры, а также ProfiNet. Коммуникационные процессоры фирмы Siemens, на платформах отличных от Windows, библиотекой не поддерживаются. На данном этапе модулем обеспечена поддержка протокола ISO-TSAP(ProfiNet) посредством библиотеки Libnodave. Библиотека Libnodave полностью включена в данный модуль и не требует разрешения зависимостей как при сборке, так и при исполнении.
Также модулем реализуются функции горизонтального резервирования, а именно совместной работы с удалённой станцией этого-же уровня. Кроме синхронизации значений и архивов атрибутов параметров модулем осуществляется синхронизация значений вычислительных шаблонов, с целью безударного подхвата алгоритмов.
Драйвером плат семейства CIF поддерживается возможность установки до 4 CIF плат. С целью контроля за наличием плат в системе и возможности их конфигурации, модуль содержит форму контроля и конфигурации CIF-плат (рис.1).
С помощью этой формы можно проконтролировать наличие коммуникационных процессоров, их конфигурацию, а также настроить параметры сети Profibus в виде PB адреса коммуникационного процессора и скорости шины Profibus. В другой вкладке модуля (рис.2) можно проконтролировать наличие различных станций в сети Profibus.
Для добавления источника данных создаётся и конфигурируется контроллер в системе OpenSCADA. Пример вкладки конфигурации контроллера данного типа изображен на рис.3.
С помощью этой вкладки можно установить:
Учитывая высокую интеллектуальность источников данных в лице промышленных контроллеров фирмы Siemens S7-300 и S7-400, параметры выполняются на основе шаблонов?. Данный подход позволяет не ограничиваться жёстким перечнем типов параметров, что ограничивает и возможности контроллеров, а предоставить возможность пользователю формировать нужные ему типы параметров самостоятельно или использовать библиотеки уже разработанных ранее типов параметров (шаблонов).
Исходя из этого, модуль предоставляет только один тип параметров — "Логический". Дополнительными конфигурационными полями параметров данного модуля (рис.4) является поле выбора шаблона параметра.
Для конфигурации шаблона параметра предоставляется соответствующая вкладка. Содержимое этой вкладки определяется конфигурацией шаблона, т.е формируются соответствующие ссылочные поля и поля установки постоянных.
Типы ссылок определяются типом параметра в шаблоне (Логический, Целый, Вещественный и Строковый) и определением значения ссылки (для групповых ссылок). Определение групповой ссылки в шаблоне записывается в формате: "<Имя ссылки>|<Смещение в БД>|<Размер значения>", где:
Наглядный пример общего процесса конфигурации параметра от шаблона и до значений приведен в рисунках от 5 до 8.
Модулем поддерживается адресация только к блокам данных (БД) контроллеров!
Модулем предусмотрена особая обработка ряда атрибутов шаблона:
Стандартным режимом записи для SCADA-систем, взаимодействующих с PLC, является синхронный поскольку позволяет контролировать корректность завершения операции записи. Однако в случае записи множества параметров сразу такой подход не оправдан в виду отправки множества мелких запросов в контроллер, что перегружает PLC и занимает большой интервал времени. Решением этой проблемы является асинхронная запись смежных значений одним блоком. Такой режим поддерживается этим модулем и позволяет записывать все параметры сразу смежными блоками по 240 байт. Чтение и запись в таком режиме производится смежными блоками с периодичностью опроса контроллера.
После целенаправленного поиска было обнаружено несколько решений проблемы коммуникации с промышленными контроллерами фирмы Siemens посредством различных коммуникационных интерфейсов:
Драйвер фирмы Hilscher для плат семейства CIF: file:cif2621.tgz
Патч для сборки драйвера для ядра Linux 2.6.29: file:lastkernels.patch