OpenSCADA

Модулі/Siemens

This page is a translated version of the page Modules/Siemens and the translation is 100% complete.

English • ‎mRussian • ‎Українська
Модуль Ім'я Версія Ліцензія Джерело Мови Платформи Тип Автор
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, оскільки він також працює з блоками даних.
  • Спонсорування, підтримки Простого типу, визначення областей даних та інші розширення на 1.6 ЛД[!]: INSERTEC LTDA
  • Завдання (To Do):
-

Першочерговою метою створення цього модуля становило забезпечення підтримки промислових контролерів фірми 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 повністю включено в цей модуль та вона не потребує вирішення залежностей як при збірці, так і при виконанні.

At.png У коді бібліотеки LibnoDave присутні складно-вловимі помилки, які переважно відтворюються під великим навантаженням та в момент підключень, що призводить до псування пам'яті процесу та падіння у непередбачених місцях. У зв'язку з цим, з версії 2 цього модуля, розпочато процес переписування потрібних функцій та код зв'язку ISO-TCP вже готовий до використання.

Також, модулем реалізуються функції горизонтального резервування, а саме — спільної роботи із віддаленою станцією цього-ж рівня. Крім синхронізації значень та архівів атрибутів параметрів, модулем здійснюється синхронізація значень обчислювальних шаблонів з метою безударного підхоплення алгоритмів.

Contents

1 Комунікаційні контролери CIF

Драйвером плат сімейства CIF підтримується можливість встановлення до 4 CIF плат. З метою контролю за наявністю плат у системі та можливості їх конфігурації, модуль містить форму контролю та конфігурації CIF-плат (рис.1).

Рис.1. Вкладка конфігурації CIF-плат.

За допомогою цієї форми можна проконтролювати наявність комунікаційних процесорів, їх конфігурацію, а також налаштувати параметри мережі ProfiBus у вигляді PB адреси комунікаційного процесору та швидкості шини ProfiBus. У другій вкладці модуля (рис.2) можна проконтролювати наявність різних станцій в мережі ProfiBus.

Рис.2. Вкладка моніторингу мережі ProfiBus.

2 Об'єкт контролеру

Для додання джерела даних створюється та конфігурується об'єкт контролеру OpenSCADA. Приклад вкладки конфігурації объекту контролеру даного типу наведено на рисунку 3.

Рис.3. Вкладка конфігурації об'єкту контролеру.

За допомогою цієї вкладки можна встановити:

At.png Ручний перезапуск ввімкненого об'єкту контролеру викликає примусове переформування блоків збору.

3 Параметри

Модуль збору даних надає два типи параметру: "Логічний (Prm)" та "Простий (PrmS)". Додатковими конфігураційними полями параметрів цього модуля є:

3.1 Логічний (Prm)

Враховуючи високу інтелектуальність джерел даних, в особі промислових контролерів фірми Siemens S7-200,300,400,1200, об'єкти типу параметру виконуються на основі шаблонів. Такий підхід дозволяє не обмежуватися жорстким переліком типів параметрів, що обмежує й можливості контролерів, а надати можливість користувачу формувати потрібні йому типи параметрів самостійно або використовувати бібліотеки вже розроблених раніш типів параметрів — шаблонів.

Додатковими конфігураційними полями типу параметрів (рис.4) є поле вибору шаблону параметра.

Рис.4. Вкладка конфігурації параметру.

Для конфігурації шаблону параметра надається відповідна вкладка, вміст якої визначається конфігурацією шаблона, тобто формуються відповідні поля посилань та встановлення постійних.

Кінцева адреса Siemens-БД записується у формі "(DB{N}|F).{off}[.[{tp}]{SzBit}]", де:

Приклади кінцевих адрес:

Типи посилань за звичай визначаються типом параметру у шаблоні (Логічний, Цілий, Реальний та Строковий) та визначенням значення посилання (для групових посилань). Визначення групового посилання у шаблоні записується у форматі "{LnkName}|{OffDB}[.{bit}][|[{tp}]{sz}]", де:

Приклади типів зв'язку:

Наочний приклад загального процесу конфігурації параметру від шаблону й до значень приведено на рисунках від 5 до 8.

Рис.5. Приклад шаблону із групуванням.
Рис.6. Вкладка конфігурації шаблону параметру.
Рис.7. Вкладка конфігурації шаблону параметра із визначенням параметрів окремо.
Рис.8. Значення параметру.

At.png Модулем підтримується адресація тільки до блоків даних (БД) контролерів.

Модулем передбачено особливу обробку низки атрибутів шаблону:

3.2 Простий (PrmS)

Головну сторінку конфігурації параметру простого типу представлено на рисунку 9.

Рис.9. Вкладка конфігурації параметру простого типу.

Лінія атрибуту у параметрі переліку атрибутів записується наступним чином "(DB{N}|F).{off}.{tp}{SzBit}:{flg}:{id}[:{name}]".
Де:

Приклади кінцевих адрес:

Лінія, що починається з символу '#', вважається коментарем та не обробляється.

Відповідно до визначеного переліку атрибутів здійснюється опитування та створення атрибутів параметру (рис.10).

Рис.10. Вкладка атрибутів параметру простого типу.

4 Асинхронний режим запису

Стандартним режимом запису для SCADA-систем, які взаємодіють із PLC, є синхронний, оскільки він дозволяє контролювати коректність завершення операції запису. Однак, у випадку запису множини параметрів одразу, такий підхід не виправданий у зв'язку із надсиланням безлічі мілких запитів у контролер, що його перевантажує та займає тривалий проміжок часу. Вирішенням цієї проблеми є асинхронний запис суміжних значень одним блоком. Такий режим підтримується цим модулем та дозволяє записувати всі параметри одразу суміжними блоками по 240 байт. Читання та запис у такому режимі здійснюється суміжними блоками із періодичністю опитування контролеру.

4.1 API користувацького програмування

У зв'язку із підтримкою параметрів логічного типу, має сенс надання низки функцій користувацького API для їх виклику із шаблону логічного параметру.

Об'єкт "Параметр" [this]


5 Додаток A. Області Даних підключень ISO_TCP (вихідна таблиця LibnoDave)

Назва Код Елемент прикладу(Німецька) Елемент прикладу(Англійська)
Блоки даних 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

6 Зауваження

Після цілеспрямованого пошуку було виявлено декілька рішень проблеми комунікації із промисловими контролерами фірми Siemens за посередництвом різних комунікаційних інтерфейсів:

Деякі специфічні проблеми та їх вирішення довкола комунікацій з ПЛК Siemens:

Проблема Рішення
Підключення скидається у ПЛК Помилково визначений слот ЦП ПЛК, спробуйте якийсь інший.
Підключення схоже встановлено, але дані з ПЛК не читаються. Схоже на те, що Ви використовуєте S7-1200, який має різні зміни у політиці безпеки:
  • Створіть блок даних у сумісності з S7-300/400 та/або вимкніть оптимізацію цього блоку для появи стовпчика зміщення. Вимкніть будь-який захист цього блоку даних.
  • Якщо Ви маєте LibnoDave повідомлення "error 33028 context is not supported. Step7 says: Function not implemented or error in telegram.", то Ви маєте S7-1200 V4.0 та мусите надати доступ для функцій інтерфейсу Get/Put у конфігурації ПЛК.

7 Посилання

Modules/Siemens/uk - GFDLNovember 2024OpenSCADA 1+r2996