Модуль | Имя | Версия | Лицензия | Источник | Языки | Платформы | Тип | Автор |
---|---|---|---|---|---|---|---|---|
Siemens | Сбор данных Siemens и Beckhoff | 4.5 | GPL2 | daq_Siemens.so | en,uk,ru,de | x86,x86_64,ARM | DAQ | Роман Савоченко |
Описание | ||||||||
Обеспечивает поддержку источников данных ПЛК Siemens с помощью карт HILSCHER CIF (протоколом MPI) и библиотеки LibnoDave (или собственной реализации) для остального. Также поддерживаются источники данных фирмы Beckhoff для протокола TwinCAT ADS/AMS, поскольку он также работает с блоками данных.
|
Первоочередной целью создания модуля было обеспечение поддержки промышленных контроллеров фирмы Siemens серии S7 (S7-200,300,400,1200). Исторически сложилось, что доступ к контроллерам указанной фирмы в сети ProfiBus производился только посредством собственных коммуникационных процессоров (CP5412, CP5613 и т.д.) и собственного протокола S7. Указанные коммуникационные процессоры и API к протоколу S7 достаточно дорогостоящие, кроме того, драйвера к коммуникационным процессорам и S7 API закрыты, а также доступны только для платформы Intel + MS Windows (встречалась некоторая информация о возможности купить для Linux).
В качестве альтернативы коммуникационным процессорам от фирмы Siemens, которые позволяют полноценно работать с контроллерами фирмы Siemens, выступает спектр коммуникационных продуктов фирмы Hilscher в лице коммуникационных процессоров CIF серии ProfiBus (PB) и библиотека LibnoDave.
Особенностью продуктов Hilscher является полностью открытая спецификация протокола обмена с коммуникационным процессором, унифицированный драйвер для всех плат CIF, наличие драйвера для многих распространённых операционных систем (ОС) и открытость драйвера для ОС Linux (GPL).
В основу данного модуля положен драйвер версии 2.621 фирмы Hilsher, любезно предоставленный фирмой Hilsher в лице Devid Tsaava для ядер серии 2.6 ОС Linux. Все необходимые для сборки файлы включены в модуль и он не требует удовлетворения специальных зависимостей. Драйвер версии 2.621 для плат CIF можно загрузить тут.
Платы фирмы Hilsher семейства CIF и унифицированный драйвер поддерживают широкий спектр оборудования. Заложить поддержку всех этих возможностей в данном модуле, не имея всего этого оборудования на руках, не представляется возможным. Поэтому поддержка того или иного оборудования будет добавляться по мере надобности и наличия оборудования. По состоянию на версию 2.0.0 модулем предоставляется поддержка источников данных в сети ProfiBus или MPI, посредством протокола MPI, на скоростях сети от 9600Бод до 12МБод. В частности поддерживаются и выполнена проверка на контроллерах фирмы Siemens семейства S7 (S7-200,300,400).
Библиотека LibnoDave является реализацией, путём реверсинжениринга, протоколов MPI, S7, ISO-TSAP и других, которые используются при взаимодействии с контроллерами фирмы Siemens. Библиотекой поддерживаются многие MPI и USB адаптеры, а также ProfiNet. Коммуникационные процессоры фирмы Siemens, на платформах отличных от MS Windows, библиотекой не поддерживаются. Посредством библиотеки LibnoDave, на данном этапе, модулем обеспечена поддержка протокола ISO-TSAP(ProfiNet). Библиотека LibnoDave полностью включена в данный модуль и не требует разрешения зависимостей как при сборке, так и при исполнении.
В коде библиотеки LibnoDave присутствуют сложно-уловимые ошибки, которые в основном воспроизводятся под большой нагрузкой и в момент подключений, что приводит к порче памяти процесса и падениям в непредсказуемых местах. В связи с этим, с версии 2 этого модуля, начат процесс переписывания нужных функций и код связи ISO-TCP уже готов к использованию.
Также, модулем реализуются функции горизонтального резервирования, а именно — совместной работы с удалённой станцией этого-же уровня. Кроме синхронизации значений и архивов атрибутов параметров, модулем осуществляется синхронизация значений вычислительных шаблонов, с целью безударного подхвата алгоритмов.
Драйвером плат семейства CIF поддерживается возможность установки до 4 CIF плат. С целью контроля за наличием плат в системе и возможности их конфигурации, модуль содержит форму контроля и конфигурации CIF-плат (рис.1).
С помощью этой формы можно проконтролировать наличие коммуникационных процессоров, их конфигурацию, а также настроить параметры сети ProfiBus в виде PB адреса коммуникационного процессора и скорости шины ProfiBus. В другой вкладке модуля (рис.2) можно проконтролировать наличие различных станций в сети ProfiBus.
Для добавления источника данных создаётся и конфигурируется объект контроллера OpenSCADA. Пример вкладки конфигурации объекта контроллера данного типа изображен на рисунке 3.
Using this tab you can set:
Модуль сбора данных предоставляет два типа параметра: "Логический (Prm)" и "Простой (PrmS)". Дополнительными конфигурационными полями параметров данного модуля являются:
Учитывая высокую интеллектуальность источников данных, в лице промышленных контроллеров фирмы Siemens S7-200,300,400,1200, объекты типа параметра выполняются на основе шаблонов. Данный подход позволяет не ограничиваться жёстким перечнем типов параметров, что ограничивает и возможности контроллеров, а предоставить возможность пользователю формировать нужные ему типы параметров самостоятельно или использовать библиотеки уже разработанных ранее типов параметров — шаблонов.
Дополнительными конфигурационными полями типа параметров (рис.4) является поле выбора шаблона параметра.
Для конфигурации шаблона параметра предоставляется соответствующая вкладка, содержимое которой определяется конфигурацией шаблона, т.е формируются соответствующие ссылочные поля и поля установки постоянных.
Конечный адрес Siemens-БД записывается в форме "(DB{N}|F).{off}[.[{tp}]{SzBit}]", где:
Примеры конечных адресов:
Типы ссылок обычно определяются типом параметра в шаблоне (Логический, Целый, Вещественный и Строковый) и определением значения ссылки (для групповых ссылок). Определение групповой ссылки в шаблоне записывается в формате: "{LnkName}|{OffDB}[.{bit}][|[{tp}]{sz}]", где:
Примеры типов связи:
Наглядный пример общего процесса конфигурации параметра от шаблона и до значений приведен на рисунках от 5 до 8.
Модулем поддерживается адресация только к блокам данных (БД) контроллеров.
Модулем предусмотрена особая обработка ряда атрибутов шаблона:
Главная страница конфигурации параметра простого типа представлена на рисунке 9.
Линия атрибута в параметре списка атрибутов записывается как "(DB{N}|F).{off}.{tp}{SzBit}:{flg}:{id}[:{name}]".
Где:
Примеры конечных адресов:
Линия, которая начинается с символа '#', считается комментарием и не обрабатывается.
В соответствии с указанным списком атрибутов выполняется опрос и создание атрибутов параметра (рис.10).
Стандартным режимом записи для SCADA-систем, взаимодействующих с PLC, является синхронный, поскольку он позволяет контролировать корректность завершения операции записи. Однако, в случае записи множества параметров сразу, такой подход не оправдан в виду отправки множества мелких запросов в контроллер, что его перегружает и занимает большой интервал времени. Решением этой проблемы является асинхронная запись смежных значений одним блоком. Такой режим поддерживается этим модулем и позволяет записывать все параметры сразу смежными блоками по 240 байт. Чтение и запись в таком режиме производится смежными блоками с периодичностью опроса контроллера.
В виду поддержки параметров логического типа, имеет смысл предоставление ряда функций пользовательского API для их вызова из шаблона логического параметра.
Объект "Параметр" [this]
Название | Код | Элемент примера(Немецкое) | Элемент примера(Английское) |
---|---|---|---|
Блоки данных | 132 | DB3.DBD4 | DB3.DBD4 |
Флаги/Маркеры | 131 | MW4 | FW4 |
Образ входной памяти | 129 | EB2 | IB2 |
Образ выходной памяти | 130 | AD8 | QD8 |
Таймеры | 29 | T2 | T2 |
Счётчики | 28 | Z2 | C2 |
Прямой В/В | 128 | PEW4 | PIW4 |
Системная информация семейства 200 | 3 | ||
Данные (V-память) у S7-200 | 132 | VW1234 | VW1234 |
Область системных флажков семейства 200 | 5 | SMB0 | SFB0? |
Слова аналоговых входов семейства 200 | 6 | AEW0 | AIW0? |
Слова аналоговых выходов семейства 200 | 7 | AAW0 | AQW0? |
IEC Таймеры | 31 | T2 | T2 |
IEC Счётчики | 30 | Z2 | C2 |
После целенаправленного поиска было обнаружено несколько решений проблемы коммуникации с промышленными контроллерами фирмы Siemens посредством различных коммуникационных интерфейсов:
Некоторые специфические проблемы и их решения около коммуникаций с ПЛК Siemens:
Проблема | Решение |
---|---|
Подключение сбрасывается в ПЛК | Ошибочно определённый слот ЦП ПЛК, попробуйте какой-то другой. |
Подключение похоже установлено, но данные с ПЛК не читаются. | Похоже на то, что Вы используете S7-1200, который имеет различные изменения в политике безопасности:
|
Modules/Siemens/ru - GFDL | March 2024 | OpenSCADA 0.9.7 |